三、基本概念
1、桥ID/网桥ID (Bridege ID,BID)
每一台运行STP的交换机都拥有一个唯一的桥ID(BID),BID(Bridge ID/桥ID)。在STP里我们使用不同的桥ID标识不同的交换机。
(2)BID(桥ID)组成
BID(桥ID)组成(8个字节):由16位(2字节)的桥优先级和48位(2字节)的MAC地址构成。(上右图)
1)桥优先级(Bridge Priority,BP)的值可以修改,但是修改值必须为4096的倍数。优先级部分中低12位用来标识VLAN信息,高4位才是真正优先级。(上右边图)
优先级范围:取值范围是0~65535,为4096倍数,越小越优先。优先级默认32768(0x8000)。
2)桥的MAC地址:通常是交换机默认VLAN1的MAC地址。一个桥有多个转发端口,每个端口都有一个MAC地址,端口编号最小的那个端口的MAC地址作为整个桥的MAC地址,越小越优先。
MAC地址的长度是48比特(6字节),48位二进制数,12位16进制数组成,即0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f。从左至右,逐位比较。
比如:00:01:10:00:11:11 和00:10:00:00:00:00前者比后者要小。如果比较位相同,则往后推一位再比较,最小的即为MAC地址最小。
2、根桥(Root Bridge,RB)
根桥是一个生成树(STP)交换网络中的"树根"。具有最小桥ID的交换机是根桥。树形的网络结构必须有树根,于是STP引入了根桥(Root Bridge)概念。(下左图)
根桥(Root Bridge) 在STP中,根桥是整个网络的起点,其他所有交换机都会尝试通过最直接的路径连接到根桥,所有数据包的旅行都是从这里开始的。
根桥设备上没有根端口。根桥上的接口,都是指定端口(DP:Designated Ports)。
(2)树根主要作用
是在一个交换网络中计算出一棵无环的STP树。
在一个交换网络中,有且只能有一个根桥(根交换机),它是整个网络的逻辑中心,但不一定是物理中心。根桥会根据网络拓扑的变化而动态变化。
(3)优先级
交换机的桥优先级越高,才有可能成为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。在STP网络中,BID(桥ID)最小的设备会被选举为根桥。
(上图)在该网络中选举根桥,首先比较三台交换机的桥优先级,桥优先级都为4096,再比较三台交换机的MAC地址,谁小谁优先,最终选择SW1为根桥。
3、非根桥
非根桥:除了根桥,其他的交换都是非根桥。这些非根桥之间可以互相通信,但是它们都要遵循从根桥出发的规则。
4、端口/接口ID(Port ID,PID)
运行STP交换机的每个端口都有一个端口ID(Port ID),端口ID可以用来确定端口角色,标识每个端口。端口ID(PID)就是端口编号 例如e0/0/5,ID就是5。
主要作用:在特定场景下选举指定接口。
(1) PID(端口ID)组成
端口ID(PID)(2个字节)=优先级(1个字节).端口索引号(1个字节)
为了避免端口索引号不够用,把优先级中的低4位保留用于端口索引号,一般取值为0000。高4位优先级默认二进制取值为1000。端口索引号是端口在交换机上的唯一编号。
(2) PID优先级(Port Priority)
数值范围从0到240,缺省情况下(默认值),端口的优先级为128,步长为16,即取值必须为16的整数倍。
在进行比较时,先比较端口优先级,值越小端口的优先级就越高。在优先级相同时,再比较端口编号,编号小的端口优先。
通常情况下,端口编号无法改变,用户可以根据实际需要,通过命令修改该优先级。通过设置端口优先级来影响生成树的选路。
注意:最终如果收到的BPDU报文所有参数都一样,此时交换机会比较本端接口ID(PID)。
5、开销(Cost)
每一个激活了STP的接口都维护着一个开销(Cost)值。接口带宽越大,则开销(Cost)值越小。可以通过命令调整接口的开销(Cost)。
(2)开销(Cost)计算方法
接口开销(Cost)是已经激活了STP的接口所维护的一个开销值,该值存在默认值,与接口的速率有关联、工作模式,并且交换机设备使用不同的算法时,相同的接口速率对应不同的开销值。
(4)本地路径开销/端口开销(Port Cost)
本地路径开销/端口开销:指从当前交换机到连接的设备(比如终端设备)之间的路径开销。
特点:
(1)本地路径开销就是端口开销,交换机的每个端口都有一个端口开销(Port Cost)参数,此参数表示该端口在STP中的开销值。默认情况下,端口的开销和端口的带宽有关,带宽越高,开销越小。
(2)本地路径开销是路径开销中的一个组成部分,它代表了到达某个设备的成本。
接口开销主要作用:计算根路径开销,就是到达根的开销。
(3)路径开销(Path Cost)
路径开销(Path Cost):从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口)。
特点:
(1) 路径开销决定了整个网络中每条可能路径的成本。从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,这就是路径开销。通常,直接连接的路径(比如根端口)开销较低,而需要经过多个中间节点的路径开销较高。
(2)交换机的每个端口都有一个端口开销(Port Cost)参数,此参数表示该端口在STP中的开销值。默认的开销值取决于链路的带宽,带宽越大,开销越小。开销值越小,越可能被选为指定端口的路径。
例如:IEEE标准的开销,链路速度为10Gbps开销为2,速度为100Mbps时开销为19,速度为10Mbps时候开销为100。
(5)根路径开销(Root Path Cost,RPC)
STP交换机每一个端口都对应一个开销值,这个值表示数据通过端口发送时的开销,这个值与端口带宽有关,带宽越高,开销值越小。
对于端口开销值的定义有不同的标准,通常设备默认使用IEEE 802.1t中定义的开销值,同时还支持其它标准,以便兼容不同厂家的设备。
根路径开销(Root Path Cost,RPC):非根桥到达根桥可能有多条路径,每条路径都有一个总开销值,被称为RPC(根路径开销)。
STP不会计算入端口的开销,只在数据通过端口发出时,才计算这个端口的开销。对于根桥来说,根路径开销是0。
即累计根路径开销最小的端口就是根端口。端口收到一个BPDU报文后,抽取该BPDU报文中累计根路径开销字段的值,加上该端口本身的路径开销即为累计根路径开销。
(上左图)SW3从GE0/0/1接口到达根桥的RPC,等于接口1的Cost加上接口2的Cost。
(上右图)s2中eth0/0/1端口的根路径开销,就是20+18=38,eth0/0/2端口的根路径开销就是39.所以0/0/1是根端口。
特点:
(1) 根路径开销这个值越小,说明到达根桥的路径越优。
(2) 根路径开销最终的目标,是从任何端口到根桥的最短路径的总成本。
根路径开销是根据交换机之间的网段来说的,本地路径的开销也叫端口开销是针对本地的物理链路来说的相关的IETF的规定为
6、端口角色分类
在STP中,端口角色共有三种分别为:根端口RP(Root Port)、指定端口DP(Designated Port)、阻塞端口AP(Alternate Port)。
注:以上三种角色都是在非根桥设备上的概念,它们是用来确保网络中的数据包能够通过最优路径传输,同时避免环路的产生。
(1)根端口(Root Port,RP)
根端口(Root Port): 每个非根桥都有且只有一个根端口,但它并不一定是用来与根桥直接连接的端口,而是用来确定到达根桥的最短路径的端口。
在一个非根桥设备上,根端口是所有到达根桥路径中,路径成本最低的那个端口。如果这个端口的路径,不是直接连接到根桥,而是通过其他交换机连接到根桥,那么它仍然是该非根桥设备上的根端口。
1)根端口选举
如果有多条链路到根桥,就通过检查每条链路的带宽来决定端口的开销,开销最低的端口就成为根端口。
如果多条链路的开销相同,就使用桥ID小的那个桥。
如果多条链路来自同一设备,就使用端口号最低的那条链路。
2)根端口的作用
在非根桥上,根端口是选择用来接收来自距离根桥最近的路径上的数据包的端口。
每个非根桥都会有一个根端口,它通过比较到达根桥的路径成本来确定,根路径开销最小者,就是根端口。
3)根端口与其他端口的关系
根桥的所有端口都是指定端口,指定端口被标记为转发端口。
非根交换机的根端口RP,每个非根交换机有且只有一个RP。
既非根端口又非指定端口的为阻塞端口AP。
(2)指定端口(Designated Port,DP)
指定端口(Designated Port):在每个连接点(比如两个交换机之间的连接),会有一条被指定的道路作为主要通道,这条道路就是指定端口。它负责在这个连接点上转发数据包。
(下左图)Device B和Device C与LAN直接相连。如果Device A通过Port A1向Device B转发BPDU,则Device B的指定桥就是Device A,指定端口就是Device A上的Port A1;如果Device B负责向LAN转发BPDU,则LAN的指定桥就是Device B,指定端口就是Device B上的Port B2。
1)指定端口的特性
(1)根桥上每个端口都是指定端口,非根桥上需要转发数据的端口,也是指定端口。
(2)只有非根桥设备上的端口会被选为指定端口。桥ID较小的交换机的端口当选为指定端口。
(3)并不是每个非根桥设备上都有一个指定端口,而是每个局域网段中只有一个指定端口,由STP协议根据一定的规则选举出来。
2)指定端口的作用
是在网络中实现无环路的传输,避免广播风暴和网络瘫痪。
3)指定端口的选举过程
在STP中,指定端口的选举过程是通过比较各个端口的路径开销(Path Cost)和发送方的桥ID(Bridge ID)来进行的。
具体来说,首先会在每个物理网段上选举出一个根端口(Root Port),然后在每个网段上选举出一个指定端口。
根端口是连接到根桥的链路所在的端口,或者到根桥的路径最短的端口。指定端口则是从根端口开始,沿着两个不同方向的端口到达根桥,累计途经的带宽开销,开销最小的那个端口。
(3)候补/预备端口(Alernate Port,AP)
预备端口(Alternate):是指定端口的“替补”当指定端口出现问题时预备端口就会“上场”。
如果一个端口既不是指定端口也不是根端口,则此端口为预备端口,预备端口将被阻塞。
每个非根桥设备上可以有一个或多个预备端口,它们是备用的端口,用于在指定端口或根端口出现问题时接管其职责。并不是每个非根桥设备上只有一个预备端口,而是根据需要可以有多个预备端口,它们都处于待命状态,直到被激活。
1)预备端口的主要作用
在网络拓扑发生变化时,参与选举新的根端口和指定端口的过程。这样做可以确保网络中的冗余链路不会形成环路,从而避免了广播风暴和MAC地址表震荡等问题。
2)预备端口的选举
当网络拓扑发生变化时,预备端口会参与选举新的根端口和指定端口的过程。
选举的原则是,根端口是到达根桥路径最优的端口,而指定端口是发送/转发BPDU报文的端口。预备端口会根据根路径开销、对端BridgeID、对端PortID和本端PortID等因素进行比较,选出最佳的根端口和指定端口。
```
根桥 (Root Bridge)
|
| (路径开销)
|
非根桥 (Non-Root Bridge) -- 根端口 (Root Port)
|
| (本地路径开销)
|
指定端口 (Designated Port) -- 预备端口 (Alternate Port)
|
| (路径开销)
|
非根桥 (Non-Root Bridge) -- 指定端口 (Designated Port)
```
(4)端口不同
三种端口的异同如下:
整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun 暗号:CSDN】