802.1D:也成为生成树协议(Spanning Tree Protocol,STP),是一种工作在数据链路层的通信协议
作用:防止交换机冗余链路产生的环路,确保以太网中无环路的逻辑拓扑结构,从而避免广播风暴和大量占用交换机的资源
工作原理:当交换机中存在到达根网桥的两条或两条以上的链路时,STP会根据算法选择其中一条作为活动链路,而将其余链路置于阻塞状态,确保任意两条交换机只有一条单一且尽量最短的活动链路。当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用。生成树在生成过程中,应该尽量的生成一棵星型结构且最短路径树。
当冗余链路导致二层的桥接环路时,会导致广播风暴、对统一数据帧反复拷贝、MAC地址表不断刷新翻滚,这三个问题会不断占用硬件资源,逐渐导致设备性能极限,设备过热保护,重启或关机
BPDU:网桥协议数据单元,是交换机间沟通互动收发的协议报文,用于确定网络拓扑结构和根网桥
BPDU主要有两种类型:配置BPDU和拓扑变更通知BPDU
1)配置BPDU:只有根网桥可以发送,在交换网络初始状态时,所有交换机均定义本地为根网桥,进行BPDU的发送;使得网络中所有交换机均收到其他设备的BPDU,之后基于数据中的参数进行比对,选举出根网桥。然后所有非根网桥不再发送BPDU,而是仅接收和转发根网桥的BPDU。周期2s发送,hold time 20s
2)拓扑变更通知BPDU(TCN BPDU):本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老化时间修改为15s(默认的,转发延时)
802.1D选举机制
选举角色:
- 根网桥(Root Bridge):整个树形结构中有且仅有一台交换机成为根网桥,其作用是周期发送BPDU并计算和指挥整棵树的收敛
- 根端口(Root Port):每台交换机上有且仅有一个接口成为根端口,为每个非根交换机上离根桥最近的端口,用于接收来自根的BPDU和转发用户的数据
- 指定端口(Designated Port):在每一条两端均运行STP的物理链路上,有且仅有一个接口成为指定端口,用于准发来自根桥的BPDU,也正常转发用户的数据
- 非指定端口(Blocking Port):无上面三种角色的端口都为非指定端口,只接收数据,不转发数据
1)根网桥选举:比较BID(小优),BID由优先级和MAC地址组成。即先比较优先级(默认为32768,取值范围为0-65535),如果优先级相同则比较MAC地址(小优)
支持STP的交换机,一定也支持SVI技术。因为SVI可以让交换机配置IP地址,因此能使用SVI技术的设备,自然出厂时会携带MAC地址,而STP技术就是借用该MAC地址
2)根端口选举:
- 比较从根网桥发出的BPDU,通过该接口进入时的最小cost值。
- 若入向cost值相同,则比较对端上级设备的BID,BID小的设备对应的接口为根端口
- 若上级设备的BID相同,则比较上级接口的PID
当cost值相同时,该选择两条链路的意义已经不大,所以比较上级设备的BID,来决定哪个设备更可能会成为新的根桥,当成为新根桥时,其链路的角色不会发生变化
PID由接口优先级(小优)和接口编号(小优)组成,先比较接口优先级(默认128,取值范围为0-255),再比较接口编号(如g/0/0/0)
3)指定端口选举:根端口对端为指定端口,根网桥上所有接口都为指定端口
- 比较从根网桥发出BPDU,通过该接口转发的最小cost值
- 比较本地BID(小优)
- 比较本地PID(小优)
- 直接阻塞(这种情况一般是同一根线插在了透明交换机的两个接口,即一根线的两端在同一边)
4)非指定端口选举:等待以上角色选举完成后,剩余没有角色的端口全部变成非指定端口
cost值计算:每条链路根据带宽决定它的cost值
802.1D标准 | 802.1T标准 |
10M = 100 | 10M = 2000000 |
100M = 19 | 100M = 200000 |
1000M = 4 | 1000M = 20000 |
10000M = 2 | 10000M = 2000 |
>100000M = 1 | 以此类推...... |
端口状态
1)down:STP未运行,没有BPDU收发,一旦可以进行BPDU收发进入下一状态
2)监听:强制15s,所有交换机进行BPDU收发,选举所有角色。接口角色为非指定端口直接进入阻塞状态。若为指定端口和根端口进入下一状态
3)学习:强制15s,指定端口和根端口学习所有接口连接设备的MAC地址,生成MAC表。之后进入下一状态
4)转发:指定端口和根端口只有进入转发状态后,才可以转发用户报文
5)阻塞:逻辑阻塞
注意:只有到接口进入到转发状态后,才能为用户转发数据报文,之前的30s不能转发任何数据
802.1D缺点:
- 收敛慢
- 链路利用率低
802.1D算法的收敛时长:
1)初次收敛:30S = 15S侦听 + 15S学习
2)结构变化:
- 30S
- 50S
存在直连检测:本地仅存在一个阻塞端口接收到根网桥的BPDU,其他端口已断开,该阻塞端口马上进入15是侦听(选举);结果若为启用,那么将再进入15s学习---总30s
没有直连检测:本地不存在阻塞端口,若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s hold time计时,到时阻塞接口进入15s侦听,15s学习=总50s
配置命令
1、修改为802.1D算法,当下华为默认为MSTP
[sw1]stp mode stp
2、修改网桥优先级,取值范围为0-61440
[sw1]stp priority 4096
3、修改接口cost值,取值范围为1-200000000
[sw1-GigabitEthernet0/0/1]stp cost 10
4、修改接口优先级,取值范围为0-240
[sw1-GigabitEthernet0/0/1]stp port priority 10