目录
STP生成树协议
生成树协议
一、802.1D
1、根网桥
2、根端口
3、指定端口
4、非指定端口
5、接口状态
802.1D的收敛时间
802.1D算法的缺点
以上cost值的解释
二、PVST
三、PVST +
四、快速生成树
五、MSTP/MST/802.1S
STP生成树协议
网络三层架构,重点在于冗余,冗余是指在网络中提供额外的备用设备和资源,以保证网络在故障或者负载较大时仍然可以正常工作,并且因为路由器的路由表是有相对完善的计算所得,且存在防环规则;故路由器物理链路上实施备份时,一般不会出现环路;但交换转发数据依赖MAC表(CAM表),该表的生成规则非常简单(由记录产生),没有防环设计,故只要交换机使用链路备份,就将出现二层环路;
CAM:将MAC地址+接口编号+VLAN ID进行哈希运算后,以哈希值的方式进行存储,即以二进制格式保存;
二层环路导致的问题:
1、广播风暴:指在网络中发生的一种数据包洪泛现象,即网络中的某一个节点发送了大量广播数据包(Broadcast Packet),导致所有节点都接收到这些广播数据包并不断转发,最终造成网络拥塞和服务质量下降的现象。广播风暴可能会导致系统或网络运行异常,甚至崩溃。
2、MAC地址表翻滚:MAC地址在交换机中的刷新时间为5min,一个接口可以对应多个MAC地址;但一台交换机上同一MAC地址只能对应一个接口;
3、同一数据帧的重复拷贝:指在网络中出现了同一数据帧的多个副本。数据帧是网络中的基本传输单位,在数据链路层通过物理介质进行传输。在网络中,由于多种原因(例如网络拥塞、路由选择不当、错误的配置等),可能会导致同一数据帧在网络中出现多次复制。
生成树协议
在一个二层交换网络中,逻辑的阻塞部分接口;当最佳路径故障时,自动疏通逻辑阻塞部分接口来实现链路备份;
生成树:在一个二层交换网络中,生成一棵树型结构,逻辑的阻塞部分接口,使得从根到所有的节点仅存在唯一的路径;当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用;
生成树在生成过程中,应该尽量的生成一棵星型结构,且最短路径树;
协议的迭代:
802.1D ---> PVST/PVST+(CISCO) ---> RSTP(CISCO) /802.1W(公有) ---> MST=802.1S
一、802.1D
是第一代生成树协议,一个交换网络内仅存在一棵生成树实例;交换机间使用BPDU(桥协议数据单元)进行沟通,通过BPDU的交换,交换机之间可以相互交换自己的状态信息。
BPDU的数据包:
Protocol ID: 协议标识
Version: 协议版本
Message type: BPDU类型
Flags: 标志位
Root ID: 根桥ID,由两字节的优先级和6字节MAC地址构成
cost of path: 根路径的开销
Bridge ID: 桥ID,表示发送BPDU的桥的ID,由2字节优先级和6字节MAC地址构成
Port ID: 端口ID,标识发出BPDU的端口
Message age: BPDU生存时间
Max age: 当前BPDU的老化时间,即端口保存BPDU的最长时间
Hello time: 根桥发送BPDU的周期
Forward delay: 表示在拓扑改变后,交换机在发送数据包前维持在监听和学习状态的时间
配置BPDU:只有根网桥可以发送,在交换网络初始状态时,所有交换机均定义本地为根网桥,进行BPDU的发送;使得网络中所有交换机均收到其他设备的BPDU,之后基于数据中的参数进行比对,选举出根网桥;之后所有非根网桥不再发送BPDU,而是仅接收和转发根网桥的BPDU;周期2s发送,hold time 20s;
TCN --- 拓扑变更消息(也是BPDU): 本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老换时间修改为15s(默认的,转发延时)
在拓扑收敛中选举的角色:根网桥、根端口、指定端口、非指定端口(阻塞端口)
1、根网桥:
在每一棵生成树实例中,有且仅有一台交换机作为根桥;负责发送BPDU,计算和指挥整个树的收敛;作为树形结构的根部,交换网络部分的中心节点;通过对比BPDU中的桥ID进行选举;
桥ID= 网桥优先级 + MAC地址(本地背板池)
交换机作为网桥设备时,关注终端设备发送的数据帧中的MAC地址;但交换机本地无MAC;所以需要运行STP协议的交换机,必须在出厂时由厂家进行MAC的写入,并且存储于交换机的背板地址池中若交换的背板地址池中MAC地址为多个,将选择数值最小的地址来进行选举
先比较网桥优先级(0-65535,默认32768),小优;若优先级一致,比较MAC地址,数值小优;
2、根端口:
在每一台非根网桥上有且仅有一个接口;并且是本地离根网桥最近的接口,用于接收来自根网桥的BPDU,同时转发终端的数据帧;
选举规则:
1)比较从根网桥发出,之后通过该接口进入时最小的cost值,越小越优;
2)若入向的cost值相同,比较接口对端的设备的BID,越小越优;
3)若对端设备的BID相同,那么比较对端接口的PID,越小越优;
4)若对端设备的PID相同,那么比较本地的PID,小越小越优;
PID = 端口ID = 接口优先级(0-240,默认128 小优)+ 接口编号
先比较优先级,越小越优;若优先级相同比较接口编号,数值越小越优;
3、指定端口:
在每一段运行了STP的物理链路上有且仅有一个接口;转发来自根网桥的BPDU,同时转发终端的数据帧;根网桥上所有接口均为指定端口;根端口的对端一定为指定端口;
选举规则:
1)比较转发来自根网桥的BPDU是,出项的最小cost值,越小越优;
2)若出向cost值相同,比较本地的BID,越小越优;
3)若本地的BID相同,比较本地的PID,越小越优;
4)若本地PID相同,将直接阻塞该端口。
4、非指定端口:
以上所有角色选举完成后,剩余各个接口的角色;该接口处于阻塞状态;接口阻塞是逻辑上的,并不是接口被关闭;该接口处于可以接收到数据,但不进行转发的状态;
5、接口状态
Down :所有接口通电后进入下一状态
侦听:交换机收发BPDU,选出所有角色;根端口、指定端口15s后进入学习状态;非指定端口进入阻塞
学习:学习终端设备发出数据帧中的源mac地址,生成交换机的MAC表(CAM表);15s后进入转发状态
转发:根端口、指定端口可以开始转发终端的数据帧
阻塞:逻辑阻塞
802.1D的收敛时间:
1、初次收敛为30s,即15s的侦听时间+15s的学习时间
2、若结构变化,有两种情况:
1)存在直连检测:本地仅存在一个阻塞端口可以接收到来自根网桥的BPDU;需要30s收敛
2)无直连检测:需要20s hold time的等待时间+30s收敛时间=50s
802.1D算法的缺点:
1、收敛速度慢,收敛的时间相对较长,有很多的不必要时间
2、链路利用率低 ,备份链路正常不转发数据
注:在实际工程中,STP只要正常运算就会生成一个无环的网络结构;但角色位置不好,可能导致网络效率低下;至少应该保障根网桥的位置处于三层架构中的汇聚层; 在交换机连接AP时,应该保障AP所在接口不被其他物理接口阻塞;
以上cost值的解释:不同带宽 存在不同cost
802.1D标准 | 802.1T标准 |
10M = 100 | 10M = 2000000 |
100M=19 | 100M=200000 |
1000M=4 | 1000M= 20000 |
10000M=2 | 10000M=2000 |
>100000M=1 | >100000M=2 |
命令:
[SWA]stp pathcost-standard ? 默认华为使用802.1t标准
dot1d-1998 IEEE 802.1D-1998
dot1t IEEE 802.1T
legacy Legacy
802.1D配置命令:
[sw1]stp mode stp 修改为802.1d算法,当下华为默认为MSTP;
[sw1]stp priority 4096 修改网桥优先级
[sw1-GigabitEthernet0/0/1]stp cost ? 修改接口cost值
INTEGER<1-200000000> Port path cost
[sw1-GigabitEthernet0/0/1]stp port priority ? 修改接口优先级
INTEGER<0-240> Port priority, in steps of 16
二、PVST
基于VLAN的生成树协议,依然沿用了802.1D的运算规则;为思科的私有协议,和802.1D的区别在于,之前的是一棵树,而PVST是VLAN中存在一棵树;在每个vlan内,存在一棵树,每棵树的工作原理同802.1d一致;不同vlan的BPDU区别在于网桥优先级;
优先级=4096倍数+vlan id 人为仅可修改4096倍数备份,且只能修改为4096的整数倍,仅支持trunk干道封装为ISL(cisco私有封装)
三、PVST +
在PVST的基础上,兼容802.1q的trunk封装;且设计了部分的收敛加速:
端口加速(接入层连接用户的接口)、上行链路加速-针对直连检测(接入层设备方可配置)、骨干加速,针对次优BPDU省去20s的hold time,所有交换机均可配置
但是缺点:1、收敛慢(加速不彻底) 2、树多(仅cisco存在单独的芯片,友商无法负荷)
四、快速生成树
cisco的RSTP:基于vlan的快速生成树,仍旧是一个vlan一棵树,是pvst+的升级版本,为思科的私有协议。
公有RSTP(802.1w):整个交换网络一棵树,是802.1d协议的升级
快速的原理:
- 取消了计时器,即是在一个状态工作完成后,直接进入下一状态;
- 分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位
- BPDU的保活为6s;hello time 2s;
- 将端口加速(边缘接口)、上行链路加速、骨干加速集成了
- 兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速;当tcn消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表;
切记:接口默认为半双工时,即便运行RSTP,依然基于慢速的802.1D算法来收敛;
[sw1]stp mode rstp
边缘接口:用于连接PC的接口,一旦被设定为边缘接口;将不再进行BPDU的发送,且不进行STP的收敛,直接为转发状态; 但若该接口收到了对端的BPDU,将失去边缘特性,重新正常收敛;
[sw1]interface GigabitEthernet 0/0/1
[sw1-GigabitEthernet0/0/1]stp edged-port enable
[sw1]stp priority ? 修改网桥优先级
INTEGER<0-61440> Bridge priority, in steps of 4096
[sw1]stp root ? 快速定义根网桥角色
primary Primary root switch
secondary Secondary root switch
[sw1-GigabitEthernet0/0/1]stp port priority ? 修改接口优先级
INTEGER<0-240> Port priority, in steps of 16
[sw1-GigabitEthernet0/0/1]stp cost ? 修改接口cost
INTEGER<1-200000000> Port path cost
五、MSTP/MST/802.1S
华为设备默认使用该协议,继承了快速生成树的基础;将多个vlan放置于一个组内,基于每个组生成一棵生成树;不同组间的BPDU中优先级= 4096倍数+组号
[r1]stp mode mstp
默认存在组0,且所有vlan默认处于该组;优先级= 32768+0
分组:
[sw1]stp enable
[sw1]stp region-configuration
[sw1-mst-region]region-name a 所有设备应在一个域内
[sw1-mst-region]instance 1 vlan 1 to 5
[sw1-mst-region]instance 2 vlan 6 to 10
[sw1-mst-region]active region-configuration 激活当前配置(必须配置该指令)
切记:若将创建某个组,但该组内的vlan,在本交换机上没有创建,同时没有为该vlan服务的接口;该组将没有任何信息;整个交换网络中所有设备的分组信息必须完全一致;
定义本地为组1 的主根,组2 的备份根
[sw1]stp instance 1 root primary 优先级修改为0
[sw1]stp instance 2 root secondary 优先级修改为4096
修改组1的优先级
[sw1]stp instance 1 priority ?
INTEGER<0-61440> Bridge priority, in steps of 4096
修改组1的cost值
[sw1]interface GigabitEthernet 0/0/1
[sw1-GigabitEthernet0/0/1]stp instance 1 cost ?
INTEGER<1-200000000> Port path cost
修改组1的端口优先级
[sw1-GigabitEthernet0/0/1]stp instance 1 port priority ?
INTEGER<0-240> Port priority, in steps of 16