【温馨提示】需要资料或者需要进扣群交流划到最底部
1.STP的原理
- 选举一个根桥
每一台交换机启动STP后,都认为自己是根桥,此时交换机通过网桥ID进行选举
网桥ID =网桥优先级+ mac地址
网桥优先级:0-65535,默认32768,可以修改但是要为4096的倍数,越小越优
mac地址:网桥优先级一样,比较mac地址越小越优
- 每个非根交换机上选举一个根端口(依次比较)
根路径开销
对端BID
对端PID
本端PID
- 每个网段选举一个指定端口(依次比较)
根路径开销
BID
PID
- 阻塞非根,非指定端口
2.STP端口状态
Disabled:禁用状态,端口状态为Down,不接收BPDU,不转发用户流量。
Blocking:阻塞状态,阻塞端口的最终状态,接收并处理BPDU,不转发用户流量。
Listening:侦听状态,接收并处理BPDU进行生成树角色选举,不转发用户流量。
Learning:学习状态,接收并处理BPDU进行MAC地址学习,不转发用户流量防止临时环路。
Forwarding:转发状态,根端口和指定端口的最终状态,既处理BPDU报文也转发用户流量。
3.BPFU报文
Root ID: 根网桥ID
RPC: 路径开销
Bridge ID: 网桥ID
Port ID: 端口ID
Message Age:消息寿命时间,每经过一个交换机都会+1
Message Age>MAX Age 非根桥会丢弃该BPDU
MAX Age: 最大老化时间–20s
Hello Time: hello周期,2s发一次BPDU
Fwd Delay: 转发延时–15s
4.STP拓扑的变化
拓扑改变导致MAC地址表错误
在交换网络中,交换机依赖MAC地址表转发数据帧。缺省情况下,MAC地址表项的老化时间是300秒。
如果生成树拓扑发生变化,交换机转发数据的路径也会随着发生改变,此时MAC地址表中未及时老化掉的表项会导致数据转发错误,因此在拓扑发生变化后需要及时更新MAC地址表项。
本例中,SWB中的MAC地址表项定义了通过端口GigabitEthernet 0/0/3可以到达主机A,通过端口GigabitEthernet 0/0/1可以到达主机B。
由于SWC的根端口产生故障,导致生成树拓扑重新收敛,在生成树拓扑完成收敛之后,从主机A到主机B的帧仍然不能到达目的地。这是因为MAC地址表项老化时间是300秒,主机A发往主机B的帧到达SWB后,SWB会继续通过端口GigabitEthernet 0/0/1转发该数据帧。
拓扑改变导致MAC地址表变化
拓扑变化过程中,根桥通过TCN BPDU报文获知生成树拓扑里发生了故障。根桥生成TC用来通知其他交换机加速老化现有的MAC地址表项。
拓扑变更以及MAC地址表项更新的具体过程如下:
SWC感知到网络拓扑发生变化后,会不间断地向SWB发送TCN BPDU报文。
SWB收到SWC发来的TCN BPDU报文后,会把配置BPDU报文中的Flags的TCA位设置1,然后发送给SWC,告知SWC停止发送TCN BPDU报文。
SWB向根桥转发TCN BPDU报文。
SWA把配置BPDU报文中的Flags的TC位设置为1后发送,通知下游设备把MAC地址表项的老化时间由默认的300秒修改为Forward Delay的时间(默认为15秒)。
最多等待15秒之后,SWB中的错误MAC地址表项会被自动清除。此后,SWB就能重新开始MAC表项的学习及转发操作。
我还有很多整理好的资料文档和视频文件,获得更多资料文档
往期教学视频,主要也是想给新手小白少走点弯路。想要全套视频,资料,答疑,或华为,H3C,相关认证学习资料+Q群:787295480资料有点多 我就不全列出来了,先写到这,如果有什么问题欢迎留言、私信交流讨论~