在一个复杂的网络环境中,难免会出现环路。由于冗余备份的需要,网络设计者都倾向于在设备之间部署多条物理链路,其中一条作主用链路,其他链路作备份,这样都有可能会导致环路产生。交换机根据MAC地址表转发数据帧,如果地址未知,则广播,当网络中存在物理环路,会产生网络风暴。
STP(Spanning Tree Protocol)(生成树协议)可以从逻辑上断开环路,防止广播风暴的产生。运行该协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某个端口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在环形网络中不断循环,避免设备由于重复接收相同的报文造成处理能力下降。若线路出现故障,断开的接口会被激活,恢复通信,起到备份线路的作用。
STP将一个环形网络生成无环拓朴的步骤:
第一步:选择根网桥(Root Bridge)
第二步:选择根端口(Root Ports)
第三步:选择指端口(Designated Ports)
网桥的选择:根据网桥ID(BID)选择根网桥,谁的优先级小,谁就是根桥。如果优先级相同,谁的MAC地址小谁就是根桥。
每个网络只能有一个根桥,根桥具有最低的桥ID,根桥上的所有端口都是指派端口,选择根网桥的目的是为了给将生成的树形结构确定一个树根。
例:
在非根网桥上选择一个到根网桥最近的端口作为根端口 选择根端口的依据是:
根路径成本(cost值)【从端口出发到根桥】最低
直连网桥的网桥ID最小
直连网桥的端口ID最小
cost值:根路径成本是网桥到根网桥的路径上所有链路的成本之和。
根路径成本表
例
在每个网段上,选择1个指定端口,根桥上的端口全是指定端口。
非根桥上的指定端口:
根路径成本【从非根桥到根桥】最低
端口所在的网桥的ID值较小
直连网桥的端口ID值较小
例:
状态 | 用途 |
转发(Forwarding) | 发送和接收用户数据 |
学习(Learning) | 构建网桥表 |
侦听(Listening) | 构建“活动”拓扑选举根桥、根端口、指定端口 |
阻塞(Blocking) | 只有接收BPDU |
禁用(Disable) | 强制关闭 |
定时器类型 | 说明 |
Hello Time | Hello Timer定时器时间的大小控制配置BPDU发送间隔 |
Forward Delay Timer | Forward Delay Timer定时器时间的大小控制端口在Listening和Learning状态的持续时间。 |
Max Age | Max Age定时器时间的大小控制存储配置BPDU的超时时间,超时认为根桥连接失败。 |
1)BPDU是什么
交换机怎么知道其他交换机的网桥ID?怎么知道哪个端口的根路径成本最小?
是因为交换机之间使用BPDU来交换STP信息,BPDU(Bridge Protocol Data Unit)使用组播发送BPDU,组播地址为:01-80-c2-00-00-00。
BPDU分为2种类型:
配置BPDU - 用于生成树计算
拓朴变更通告(TCN)BPDU - 用于通告网络拓朴的变化
2)STP使用BPDU选择根网桥
交换机启动时,假定自己是根网桥,在向外发送的BPDU中,
根网桥ID字段填写自己的网桥ID。
当接收到其他交换机发出的BPDU后,比较网桥ID,选择较小的添加到根网桥ID中。
3)STP使用BPDU计算根路径成本
根网桥发送根路径成本为0的BPDU
其他交换机接收到根网桥的BPDU后,在根路径成本上添加接收接口的路径成本,然后转发。