STP的拓扑计算过程如下:设备通过比较不同端口收到的BPDU报文的优先级高低,选举出根桥、根端口、指定端口,完成生成树的计算,建立对应的树形拓扑。
各设备的各端口在初始时会生成以本设备为根桥的BPDU,根路径开销为0,指定桥ID为自身设备ID,指定端口为本端口。
网络初始化时,需要在网络中所有的STP设备中选择一个根桥,根桥的选择方式有以下两种:
· 自动选举:网络初始化时,网络中所有的STP设备都认为自己是“根桥”,根桥ID为自身的设备ID。通过交换BPDU,设备之间比较根桥ID,网络中根桥ID最小的设备被选为根桥。
· 手工指定:用户手工将设备配置为指定生成树的根桥或备份根桥。
¡ 在一棵生成树中,生效的根桥只有一个,当两台或两台以上的设备被指定为同一棵生成树的根桥时,系统将选择MAC地址最小的设备作为根桥。
¡ 用户可以在每棵生成树中指定一个或多个备份根桥。当根桥出现故障或被关机时,如果配置了一个备份根桥,则该备份根桥可以取代根桥成为指定生成树的根桥;如果配置了多个备份根桥,则MAC地址最小的备份根桥将成为指定生成树的根桥。但此时若配置了新的根桥,则备份根桥将不会成为根桥。
根端口和指定端口的选择过程如表1-3所示。
表1-3 根端口和指定端口的选择过程
步骤 | 内容 |
1 | 非根桥设备将接收最优BPDU(最优BPDU的选择过程如表1-4所示)的那个端口定为根端口 |
2 | 设备根据根端口的BPDU和根端口的路径开销,为每个端口计算一个指定端口BPDU: · 根桥ID替换为根端口的BPDU的根桥ID; · 根路径开销替换为根端口BPDU的根路径开销加上根端口对应的路径开销; · 指定桥ID替换为自身设备的ID; · 指定端口ID替换为自身端口ID。 |
3 | 设备将计算出的BPDU与角色待定端口自己的BPDU进行比较: · 如果计算出的BPDU更优,则该端口被确定为指定端口,其BPDU也被计算出的BPDU替换,并周期性地向外发送; · 如果该端口自己的BPDU更优,则不更新该端口的BPDU并将该端口阻塞。该端口将不再转发数据,且只接收不发送BPDU。 |
当拓扑处于稳定状态时,只有根端口和指定端口在转发用户流量。其他端口都处于阻塞状态,只接收STP协议报文而不转发用户流量。
表1-4 最优BPDU的选择过程
步骤 | 内容 |
1 | 每个端口将收到的BPDU与自己的BPDU进行比较: · 如果收到的BPDU优先级较低,则将其直接丢弃,对自己的BPDU不进行任何处理; · 如果收到的BPDU优先级较高,则用该BPDU的内容将自己BPDU的内容替换掉。 |
2 | 设备将所有端口的BPDU进行比较,选出最优的BPDU |
BPDU优先级的比较规则如下:
· 根桥ID较小的BPDU优先级较高;
· 若根桥ID相同,则比较根路径开销:将BPDU中的根路径开销与本端口对应的路径开销相加,二者之和较小的BPDU优先级较高;
· 若根路径开销也相同,则依次比较指定桥ID、指定端口ID、接收该BPDU的端口ID等,上述值较小的BPDU优先级较高。
一旦根桥、根端口和指定端口选举成功,整个树形拓扑就建立完毕了。
(0)
• STP 消除环路的思想:
○ 将网络拓扑修剪为树形
○ 选择树根节点ROOT;
○ 确定最短路径;
○ 阻塞冗余链路。
• 桥ID :
○ 用于在STP 中唯一的标识一个桥。
○ 桥ID:【桥优先级:2字节】【桥MAC地址:6字节】
• 路径开销(Path Cost):
○ 路径开销用于衡量桥与桥之间路径的优劣;
○ STP 中每条链路都具有开销值;
○ 路径开销等于路径上全部链路开销之和。
• 链路开销标准:
○ 单端口下(H3C私有标准):10M=2000,100M=200。1G=20。10G=2。
• 配置BPDU:
○ 网桥通过交互配置BPDU 获取STP 计算所需要的参数;
○ 配置BPDU 基于二层组播方式发送,目的地址为01-80-C2-00-00-00;
○ 配置BPDU 由根桥周期发出,发送周期为Hello Time;
○ 配置BPDU 老化时间为Max Age。
• 配置BPDU 格式:(网桥协议数据单元(Bridge Protocol Data Unit))
• STP 计算方法:
○ 1、配置BPDU 处理:
网桥将各个端口收到的配置BPDU 和自己的配置BPDU 做比较,得出优先级最高的配置BPDU;
网桥用优先级最高的配置BPDU 更新本身的配置BPDU ,用于选举根桥和确定端口角色;
网桥从指定端口发送新的配置BPDU。
○ 2、配置BPDU 比较原则——优先级向量最小者最优:
首先比较Root Bridge ID--->
其次比较Root Path Cost--->
再次比较Designate Bridge ID--->
再其次比较Designate Port ID--->
最后比较Bridge Port ID。
• 根桥选择:
○ 起始各个交换机都认为自己是根桥,然后进行互发帧进行根桥PK,最终优先级向量最小者胜出。
• 确定端口角色的标准:
◊ 根端口:网桥上到根桥最近的端口(到根桥的开销最小);
◊ 指定端口:端口的配置BPDU 在其所属链路上是最优的(端口拥有该链路上最优的配置消息);
◊ Alternate端口:端口的配置BPDU 在其所属链路上不是最优的,且端口不是根端口。
• 等路径开销计算:
◊ 当路径开销相等时,则根据顺序比较Designate Bridge ID,越不优者相连或与之相连的端口为Alternate 端口。
◊ 而对于链路聚合的模型,两条链路开销相等时,则要比较Designate Port ID,端口越不优者为Alternate 端口。
• 收到低优先级配置BPDU时的处理
○ 收到低优先级配置BPDU的网桥会立即回应一个配置BPDU消息
• STP 为端口定义了五种状态:
○ Disabled、Blocking、Listening、Learning、Forwarding。
• 各端口状态对配置BPDU 收发、MAC 地址学习以及数据收发的处理有所不同:
• Forward Delay 延时:
○ 从中间状态Listening 经过一个延时进入另一个中间状态Learning;
○ 从Learning 状态再经过一个延时进入Forwarding 状态;
○ 延时长度为Forward Delay;
○ 默认为15秒。
• 网桥发送TCN BPDU 的条件为:
○ 有端口转变为Forwarding 状态,且该网桥至少包含一个指定端口;
○ 有端口从Forwarding 状态或Learning 状态转变为Blocking 状态。
• 当根桥故障后:
○ 指定根桥等待Max Age Timer 后没收到消息,则判断为根桥down 掉了
• STP拓扑改变处理过程
○
○ 网桥发现拓扑变化(Down或新加入网桥),产生TCN的BPDU从RP发出,以通知根桥。如上游网桥不是根桥,则上游网桥会将下一个要发送的配置BPDU中TCA位置位,作为收到TCN的确认。发送给下游网桥。上游网桥从根端口发送TCN的BPDU直到根桥收到TCN BPDU,收到后,根桥会将下一个要发送的配置BPDU中的TCA位置位作为对收到的TCN确认。并将该配置BPDU中TC位置位,用于通知网络中所有网桥网络拓扑发生了变化。根桥在Max Age+Forward Delay(20s+15s)内,将发送的配置BPDU中的TC置位,当网桥收到后会将自身的MAC地址老化时间由300秒缩短为Forward Delay(15s)。网桥发送TCN的周期为Hello Time,如果没收到TCA置位则重复发送TCN,收到TCA后停止从RP发TCN。
• TCN产生的条件:
○ 网桥上有端口转变为Forwarding状态,且至少包括包含一个DP。
○ 网桥上有端口从Forwarding或Learning状态转变为Block状态。
• TCN的BPDU:
○ 包括三部分:Protocol ID、Protocol version(这两个和配置BPDU一样)、BPDU Type(这个有区别)。
○ BPDU Type表示为:0x80为TCN的BPDU。
○ 标志位:76543210。第7位置位表示为TCA,第0位置位表示和TC置位BPDU。
• STP 协议的不足:
○ 收敛时间长:缺省情况下一个端口从Blocking 状态过渡到Forwarding 状态至少需要30 秒钟(两倍的ForwardDelay)。对于一个拓扑不稳定网络,会导致网络的长时间中断。(两倍:Listening--->Learning--->Forwarding)
○ 拓扑变化收敛机制不灵活:主机频繁上下线时,网络会产生大量TCN。
(0)
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论