STP怎么选根桥和根端口

在这里插入图片描述

生成树三种标准(802.1d、802.1w、802.1s)的基本工作原理很相似,我们先来讨论802.1d。以下所说的STP,均指802.1d。

既然叫“树”,那就要先确定“树根”。

我们把STP中的“树根”叫做“根桥”。因为交换机还没有诞生时,STP在较古老的链路层设备“网桥”之间运行。现在,端口数量较少的网桥已经逐渐淘汰了,不过“根桥”的叫法沿用了下来,我们理解为“根交换机”就好了。

根桥由网络中“桥ID”最小的交换机担任!

每台交换机在STP中,都通过“桥ID(BID)”来标识自己。我们知道,每台交换机都有MAC地址,而且MAC地址是唯一的,用MAC地址来标识交换机是个不错的主意。可是,MAC地址不可修改,我们就没办法“走后门”,所以,加个“优先级”,让我们可以想让谁当谁就能当根桥。

BID=优先级.MAC地址。

BID共有8个字节,优先级占2个字节,MAC地址占6个字节。不过,优先级部分中低12位用来标识VLAN信息,高4位才是真正优先级。

在这里插入图片描述

默认情况下,优先级高4位取值为二进制1000,VLAN信息在STP和RSTP中都为全零,在MSTP中表示MSTID,这个后面再讨论。

所以,优先级默认为十进制32768,且取值必须为4096的整数倍。

STP的协议报文叫BPDU(Bridge Protocol Data Unit,桥协议数据单元),主要包含以下内容:

Root Bridge ID:根桥ID;

Root Path Cost:根路径开销。指定桥的端口去往根桥沿途经过的链路开销之和。

Designate Bridge ID:指定桥ID,转发根桥BPDU的桥ID;

Designate Port ID:上游交换机给我发BPDU的端口ID;

Bridge Port ID:本交换机收到BPDU的端口ID。

STP需要做两件事情:选举根桥、确定端口角色。

首先我们讨论选举根桥。交换机通电启动后,还不知道网络中有没有别人,所以认为自己是根桥,并把这个消息通过BPDU通告出去。如图中,每台交换机也会收到其他交换机发来的BPDU,比较一下其中的BID,即可选举出根桥。

在这里插入图片描述

BID比较办法:先比较优先级,优先级值越小,优先级越高。如果优先级相同,则比较MAC地址大小,越小越优。

在这里插入图片描述

根桥选出后,其他交换机都可以叫指定桥。指定桥不再主动发出BPDU,只会转发根桥的BPDU。根桥每间隔Hello Time(默认2秒)时间周期性发出BPDU。

根桥选举完成后,我们接下来确定端口角色。

在STP中,端口也有标识,我们叫PID(Port ID)。

PID=优先级.端口索引号。

PID共占2个字节,其中,优先级与端口索引号各占1字节。但为了避免端口索引号不够用,把优先级中的低4位保留用于端口索引号,一般取值为0000。高4位优先级默认二进制取值为1000,所以端口优先级默认为128,且取值必须为16的整数倍(低4位不能用于优先级),原理和桥优先级类似。端口索引号是端口在交换机上的唯一编号。

在STP中,端口角色共有三种,分别为根端口RP(Root Port)、指定端口DP(Designated Port)、阻塞端口AP(Alternate Port)。

什么是根端口?指定桥上所有端口中去往根桥最优的端口叫根端口。这话有两个意思,一是根桥上没有根端口,二是除根桥外,每台指定桥上的根端口有且仅有一个。

那么,指定桥上如何选举根端口呢?

由于交换机上接入网络的端口数量可能较多,谁是根端口,大家就要拉出来比比了。

首先比一比谁去根桥更近,也就是谁的RPC(Root Path Cost)最小。

STP中每条物理链路都有开销,开销值和链路带宽、聚合有关,值越小越优。

在这里插入图片描述
如图中,SWA为根桥,那么SWA上没有根端口。指定桥SWB端口E0/1的RPC为为10,端口E0/2的RPC为30+20=50(经过SWC),所以E0/1为RP。同理,SWC上的RP为端口E0/1。

可是,有时候开销一样:

在这里插入图片描述

如图中,SWB可以选出RP为E0/1。可是我们发现SWC两个端口的RPC都是10。

这种情况,当根路径开销比不出来时,我们就比较指定桥ID,也就是给你发BPDU的桥ID谁更优。

给SWC端口E0/1发送BPDU的是SWA,BID为0.MAC_A;

给SWC端口E0/2转发BPDU的是SWB,BID为4096.MAC_B;

显然SWA的BID更优,所以SWC的E0/1为根端口。

有没有指定桥ID也相同的情况呢?

在这里插入图片描述

如图中,两台交换机通过两条链路相连接,链路开销相同。SWA为根桥,SWB的端口E0/1和E0/2谁是根端口呢?

RPC相同,指定桥ID都是SWA,也相同!

这时,我们比较Designate Port ID,指定端口ID。这里的指定端口ID,是指给我发BPDU的交换机是用哪个端口发的!

很显然,SWA用E0/1端口给SWB的E0/2端口发BPDU,SWA用E0/2端口给SWB的E0/1端口发BPDU。SWA上的两个端口中,E0/1的PID较优(优先级相同,编号小的优)。

SWB一拍大腿,E0/2是根端口!

有没有可能指定端口ID也相同呢?

在这里插入图片描述

如上图,两台交换机间接了一台Hub,或是一台没有运行STP的交换机,并透传BPDU。

假设各链路开销均相同,那么,SWB的两个端口比RPC、指定桥ID以及指定端口ID,都无法比出高下,胜负难分。

这时,还有一个绝招,比Bridge Port ID,简单点说,就是比两个端口的PID谁更优。

先比PID中的优先级,越小越优,如果一样,端口编号越小越优。

清楚了,E0/1是根端口!

选举根端口就这四个办法,实际上,通常用前两个办法就搞定了。

每台交换机的根端口选出来后,接下来要选指定端口了。

注意,这里说的指定端口是一种端口的角色,跟刚才说的用来选根端口的指定端口不是一个意思。

参考连接:https://zhuanlan.zhihu.com/p/139844708

  • 15
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值