STP协议分类
BPDU,网桥协议数据单元
STP路径开销,以链路带宽为准,两个标准,现在主要以NEW为准
在网络刚开始运行的阶段,所有交换机都会从所有端口发送BPDU,大家都认为自己是root,随着BPDU泛洪和收集,根据BPDU中所含信息,大家PK出来个结果,root被选举出来了。在此之后由Root 以默认2S为周期发送BPDU,所有的非root交换机从自己的根端口收到BPDU,再从自己的指定端口产生bpdu发出去。这就有点像我们从root倒一盆水下来,水顺着这颗无环的树从上往下不断的流。另外,被 block的非指定端口会源源不断的收到链路上的bpdu并一直侦听,当其在一定时间内没有再收到 bpdu,则认为链路出现了故障,开始进入新的收敛阶段。
STP的选举步骤:
一、选择根桥
1、BridgeID (桥优先级(默认32768)+MAC),越小越优
二、每个非根桥上选择一个根端口(设备自身端口对比)
1、端口到达ROOT的开销(越小越优)
2、如果端口到达ROOT的开销相同,比较发送方的BridgeID(越小越优)
3、如果发送方的BridgeID相同,比较发送方的port ID(端口优先级(默认128)+端口号)(越小越优)
三、每个段选择一个指定端口(设备之间对比)
1、端口所在设备到达ROOT的开销(越小越优)
2、如果端口到达ROOT的开销相同,比较所在交换机的BridgeID(越小越优)
四、阻塞剩下端口
需考虑的因素:
最低的根桥ID
到根桥的最低路径成本
最低的发送者网桥ID
最低的发送者端口ID
需要注意:
根桥的角色是可抢占的
桥ID中的MAC是交换机的背板MAC,端口ID中的MAC是交换机端口的MAC。 Show int | in bia 可查看所有MAC,第一个就是背板MAC
选择根端口:比较接收到的BPDU;
选择指定端口:比较发送出BPDU
根桥向自身的所有接口发送BPDU,非根交换机会从自己的根端口接收BPDU,并从自身的指定端口转发出去,非指定端口不转发BPDU,只会侦听,默认20秒没收到BPDU包,则开始发送BPDU;
案例一:
1、选举Root
比较所有网桥的优先级,优先级一致,比较MAC地址,SW1成为Root,Root所有端口为指定端口
2、非根交换机选举跟端口
如图所示,SW2的F0/1(连接SW1的接口) 与SW3的F0/1为Root Port,因为这些端口到达跟桥的Cost值最小
3、每个段选举指定端口
Root所有端口为DP。比较SW2与SW3相连的接口,SW2会收到SW3发来的BPDU,SW3也会都到SW2发来的BPDU,各自比较自己和收到的BPDU报文中到根路径成本,也就是COST值,发现都为19,然后比较桥ID(比较发送者桥ID),明显SW2的MAC比较小,故成为DP,而SW3的F0/0被Block。
注意,这时如果试图在SW3上,将F0/1的COST调大,比如调整为200,那么在SW3上,F0/0就会成为RP。
一般在需改变的交换机上的端口做操作:
(config-if)#spanning-tree cost 10 //修改接口COST值,如果想让阻塞端口成为转发端口,
(config-if)#spanning-tree vlan 1 cost 10 //只针对某个vlan 修改接口COST值
案例二:
1、选举Root
不再赘述
2、非根交换机选举跟端口
如图所示,SW2的两个接口都会收到BPDU报文,都是来自SW1,因此,两份BPDU中到Root的开销都是0,接着比较发送者桥ID,都是来自SW1,因此也比较不出来,再比较两份BPDU报文中的端口ID,假设SW1的端口优先级都相等,则比较接口ID,明显SW1的F0/1接口ID比较小,故SW2的F0/1接口成为RP。
3、每个段选举指定端口
Root的每个端口都是指定端口,SW2的F0/1接口为RP,故SW2的F0/2接口被Block。
注意,这时如果试图在SW2上将F0/2的接口优先级改小,也是没用的,因为比较的是发送者的端口ID,所以如果在SW1上,将F0/2的端口优先级调小,那么在SW2上,F0/2就会成为RP。
当然,如果将SW2的F0/2 Cost值调小,也可以让F0/2成为RP。
修改接口优先级,一般在需改变的交换机上联设备接口下做操作:
(config-if)#spanning-tree port-priority 64 //修改接口优先级,必须是16的倍数, Cisco默认128,
spanning-tree vlan 1 port-priority 64 //只针对某个vlan 修改接口优先级
SW1
配置Vlan的主根桥:
(config)#spanning-tree vlan 1 priority 0 //将vlan 1 的优先级配置为0,默认为32768
SW2
配置Vlan的次根桥:
(config)#spanning-tree vlan 1 priority 4096 //将vlan 1 的优先级配置为4096,比主根桥小
关注公众号↑↑↑:IT运维大本营,获取60个G的《网工大礼包》