一.生成树技术概述
1.技术背景:二层交换机网络的冗余性与环路
2.二层环路带来的问题
3.初识生成树协议
在网络中部署生成树后,交换机之间会进行生成树协议报文的交互并进行无环拓扑计算,最终将网络中的某个(或某些)接口进行阻塞(Block),从而打破环路。
4.生成树能够动态响应网络拓扑变化调整阻塞接口
交换机上运行的生成树协议会持续监控网络的拓扑结构,当网络拓扑结构发生变化时,生成树能感知到这些变化,并且自动做出调整。
因此,生成树既能解决二层环路问题,也能为网络的冗余性提供一种方案。
5.问答:二层及三层环路
5.1三层环路( Layer 3 Loop )
- 常见根因:路由环路;
- 动态路由协议有一定的防环能力;
- IP报文头部中的TTL字段可用于防止报文被无止尽地转发。
5.2二层环路( Layer 2 Loop )
- 常见根因:网络中部署了二层冗余环境,或人为的误接线缆导致;
- 需借助特定的协议或机制实现二层防环;
- 二层帧头中并没有任何信息可用于防止数据帧被无止尽地转发。
6.主成树协议在园区网络中的应用位置
二.STP的基本概念及工作原理
1.桥ID
- IEEE 802.1D标准中规定BID由16位的桥优先级(Bridge Priority)与桥MAC地址构成。
- 每一台运行STP的交换机都拥有一个唯一的BID。
- BID桥优先级占据高16bit,其余的低48bit是桥MAC地址。
- 在STP网络中,BID最小的设备会被选举为根桥。
备注:此处网桥(Bridge),或者桥也就是交换机。
2.根桥
- STP的主要作用之一是在整个交换网络中计算出一棵无环的“树”(STP树)。
- 根桥是一个STP交换网络中的“树根”。
- STP开始工作后,会在交换网络中选举一个根桥,根桥是生成树进行拓扑计算的重要“参考点”,是STP计算得出的无环拓扑的“树根”。
- 在STP网络中,桥ID最小的设备会被选举为根桥。
- 在BID的比较过程中,首先比较桥优先级,优先级的值越小则越优先,拥有最小优先级值的交换机会成为根桥;如果优先级相等,那么再比较MAC地址,拥有最小MAC地址的交换机会成为根桥。
3.Cost(开销)
- 每一个激活了STP的接口都维护着一个Cost值,接口的Cost主要用于计算根路径开销,也就是到达根的开销。
- 接口的缺省Cost除了与其速率、工作模式有关,还与交换机使用的STP Cost计算方法有关。
- 接口带宽越大,则Cost值越小。
- 用户也可以根据需要通过命令调整接口的Cost。
3.1Cost计算方法
接口Cost是已经激活了STP的接口所维护的一个开销值,该值存在默认值,与接口的速率有关联,并且设备使用同的算法时,相同的接口速率对应不同的Cost值。
4.根路径开销(Root Path Cost)
- 在STP的拓扑计算过程中,一个非常重要的环节就是“丈量’交换机某个接口到根桥的“成本”,也即RPC。
- 一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有入方向接口的Cost累加。
- 在本例中,SW3从GE0/0/1接口到达根桥的RPC等于接口1的Cost加上接口2的Cost。
5.接口ID( Port ID,PID)
- 运行STP的交换机使用接口ID来标识每个接口,接口ID主要用于在特定场景下选举指定接口。
- 接口ID由两部分构成的,高4bit是接口优先级,低12bit是接口编号。
- 激活STP的接口会维护一个缺省的接口优先级,在华为交换机上,该值为128。用户可以根据实际需要,通过命令修改该优先级。
6.BPDU ( Bridge Protocol Data Unit,网桥协议数据单元)
-
BPDU是STP能够正常工作的根本。BPDU是STP的协议报文。
-
STP交换机之间会交互BPDU报文,这些BPDU报文携带着一些重要信息,正是基于这些信息,STP才能够顺利工作。
-
BPDU分为两种类型:
-
配置BPDU(Configuration BPDU)
-
TCN BPDU(Topology Change Notification BPDU)
-
-
配置BPDU是STP进行拓扑计算的关键;TCN BPDU只在网络拓扑发生变更时才会被触发。
6.1配置BPDU的报文格式
6.2配置BPDU的比较原则
对于STP而言,最重要的工作就是在交换网络中计算出一个无环拓扑。在拓扑计算的过程中,一个非常重要的内容就是配置BPDU的比较。在配置BPDU中,有四个字段非常关键,它们是“根桥ID”、“根路径开销”、“网桥ID”以及“接口ID”,这四个字段便是交换机进行配置BPDU比较的关键内容。
STP按照如下顺序选择最优的配置BPDU(越小越优):
- 最小的根桥ID
- 最小的RPC
- 最小的网桥ID
- 最小的接口ID
在这四条原则中(每条原则都对应配置BPDU中的相应字段),第一条原则主要用于在网络中选举根桥,后面的原则主要用于选举根接口及指定接口。
7.STP的计算过程
7.1.在交换网络中选举一个根桥
- STP在交换网络中开始工作后,每个交换机都会向网络中发送配置BPDU。配置BPDU中包含交换机自己的桥ID。
- 网络中拥有最小桥ID的交换机成为根桥。
- 在一个连续的STP交换网络中只会存在一个根桥。
- 根桥的角色是可抢占的。
- 为了确保交换网络的稳定,建议提前规划STP组网,并将规划为根桥的交换机的桥优先级设置为最小值0。
7.2.在每台非根桥上选举一个根接口
- 每一台非根桥交换机都会在自己的接口中选举出一个接口。
- 非根桥交换机上有且只会有一个根接口。
- 当非根桥交换机有多个接口接入网络中时,根接口是其收到最优配置BPDU的接口。
- 可以形象地理解为,根接口是每台非根桥上“朝向”根桥的接口。
7.3在每条链路上选举一个指定接口
- 根接口选举出来后,非根桥会使用其在该接口上收到的最优BPDU进行计算,然后将计算得到的配置BPDU与除了根接口
- 之外的其他所有接口所收到的配置BPDU进行比较:
- 如果前者更优,则该接口为指定接口;
- 如果后者更优,则该接口为非指定接口。
- 一般情况下,根桥的所有接口都是指定接口。
7.4非指定接口被阻塞
- 一台交换机上,既不是根接口,又不是指定接口的接口被称为非指定接口。
- STP操作的最后一步是阻塞网络中的非指定接口。这一步完成后,网络中的二层环路就此消除。
8.STP的接口状态
状态名称 | 状态描述 |
---|---|
禁用(Disable ) | 该接口不能收发BPDU,也不能收发业务数据帧,例如接口为down |
阻塞(Blocking) | 该接口被STP阻塞。处于阻塞状态的接口不能发送BPDU,但是会持续侦听BPDU |
侦听(Listening) | 当接口处于该状态时,表明STP初步认定该接口为根接口或指定接口,但接口依然处于STP计算的过程中,此时接口可以收发BPDU,但是不能收发业务数据帧,也不会进行MAC地址学习 |
学习(Learning) | 当接口处于该状态时,会侦听业务数据帧(但是不能转发业务数据帧),并且在收到业务数据帧后进行MAC地址学习 |
转发(Forwarding ) | 处于该状态的接口可以正常地收发业务数据帧,也会进行BPDU处理。接口的角色需是根接口或指定接口才能进入转发状态 |
9.STP的接口状态迁移
1接口初始化或激活,自动进入阻塞状态
2接口被选举为根接口或指定接口,自动进入侦听状态
3转发延迟计时器超时且接口依然为根接口或指定接口
4接口不再是根接口或指定接口或指定状态
5接口被禁用或者链路失效
10.拓扑变化
10.1根桥故障
根桥故障恢复过程
- SW1根桥发生故障,停止发送BPDU报文。
- 2.SW2等待Max Age计时器(20s)超时,从而导致已经收到
的BPDU报文失效,又接收不到根桥发送的新的BPDU报文
从而得知上游出现故障。 - 非根桥会互相发送配置BPDU,重新选举新的根桥。
- 经过重新选举后,SW3的A端口经过两个Forward Delay ( 15s)时间恢复转发状态。
- 非根桥会在BPDU老化之后开始根桥的重新选举。
- 根桥故障会导致50s左右的恢复时间。
10.2直连链路故障
直连链路故障恢复过程
当交换机SW2网络稳定时检测到根端口的链路发生故障,则其
备用端口会经过两倍的Forward Delay(15s)时间进入用户流
量转发状态。
- SW2检测到直连链路物理故障后,会将预备端口转换为根端口。
- 直连链路故障,备用端口会经过30s后恢复转发状态。
10.3非直连链路故障
- 非直连链路故障后,SW3的备用端口恢复到转发状态,非直连故障会导致50s左右的恢复时间。
10.4拓扑改变导致MAC地址表错误
三.STP的基础配置
1.配置生成树工作模式
[Huawei] stp mode { stp | rstp | mstp}
交换机支持STP、RSTP和MSTP( Multiple Spanning Tree Protocol)三种生成树工作模式,默认情况工作在MSTP模式。
2.(可选)配置根桥
[Huawei] stp root primary
配置当前设备为根桥。缺省情况下,交换机不作为任何生成树的根桥。配置后该设备优先级数值自动为0,并且不能更改设备优先级。
3.(可选)备份根桥
[Huawei] stp root secondary
配置当前交换机为备份根桥。缺省情况下,交换机不作为任何生成树的备份根桥。配置后该设备优先级数值为4096并且不能更改设备优先级。
4.(可选)配置交换机的STP优先级
[Huawei] stp priority priority
缺省情况下,交换机的优先级取值是32768。
5.(可选)配置接口路径开销
[Huawei] stp pathcost-standard { dot1d-1998| dot1t | legacy }
配置接口路径开销计算方法。缺省情况下,路径开销值的计算方法为IEEE 802.1t (dot1t )标准方法。
同一网络内所有交换机的接口路径开销应使用相同的计算方法。
[Huawei-GigabitEthernet0/0/1] stp cost cost
设置当前接口的路径开销值。
6.(可选)配置接口优先级
[Huawei-intf] stp priority priority
配置接口的优先级。缺省情况下,交换机接口的优先级取值是128。
7.启用STP/RSTP/MSTP
[Huawei] stp enable
使能交换机的STP/RSTP/MSTP功能。缺省情况下,设备的STP/RSTP/MSTP功能处于启用状态。
8.案例
- 在上述三台交换机上部署STP,以便消除网络中的二层环路。
- 通过配置,将SW1指定为根桥,并使SW3的GE0/0/22接口被STP阻塞。
8.1.SW1的配置如下:
[SW1] stp mode stp
[SW1] stp enable
[SW1] stp priority
8.2.SW2的配置如下:
[SW2] stp mode stp
[SW2] stp enable
[SW2] stp priority 4096
8.3.SW3的配置如下:
[SW3] stp mode stp
[SW3] stp enable
[SW3] stp priority 0
四.RSTP对STP的改进
1.STP的不足之处
- STP协议虽然能够解决环路问题,但是由于网络拓扑收敛慢,影响了用户通信质量。如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这是用户无法忍受的。
- STP没有细致区分接口状态和接口角色,不利于初学者学习及部署。
- 网络协议的优劣往往取决于协议是否对各种情况加以细致区分。
- 从用户角度来讲,Listening、Learning和Blocking状态并没有区别,都同样不转发用户流量。
- 从使用和配置角度来讲,接口之间最本质的区别并不在于接口状态,而是在于接口扮演的角色。
- 根接口和指定接口可以都处于Listening状态,也可能都处于Forwarding状态。
- STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢。
- STP算法要求在稳定的拓扑中,根桥主动发出配置BPDU报文,而其他设备进行处理,传遍整个STP网络。这也是导致拓扑收敛慢的主要原因之一。
2.RSTP概述
- IEEE 802.1w中定义的RSTP可以视为STP的改进版本,RSTP在许多方面对STP进行了优化,它的收敛速度更快,而且能够兼容STP。
- RSTP引入了新的接口角色,其中替代接口的引入使得交换机在根接口失效时,能够立即获得新的路径到达根桥。备份端口作为指定端口的备份,帮助链路上的网桥快速获得到根桥的备份路径。RSTP的状态规范根据端口是否转发用户流量和学习MAC地址把原来的5种状态缩减为3种。另外,RSTP还引入了边缘接口的概念,这使得交换机连接终端设备的接口在初始化之后能够立即进入转发状态,提高了工作效率。
3.RSTP对STP的其他改进
- 配置BPDU的处理发生变化:
- 拓扑稳定后,配置BPDU报文的发送方式进行了优化
- 使用更短的BPDU超时计时
- 对处理次等BPDU的方式进行了优化
- 配置BPDU格式的改变,充分利用了STP协议报文中的Flag字段,明确了接口角色
RSTP拓扑变化处理:相比于STP进行了优化,加速针对拓扑变更的反应速度
3.1端口角色不同
- 通过接口角色的增补,简化了生成树协议的理解及部署
3.2边缘端口
- 如果指定端口位于整个域的边缘,不再与任何交换设备连接,这种端口叫做边缘端口。
3.3端口状态不同
RSTP的状态规范把原来的5种状态缩减为3种。
- 如果不转发用户流量也不学习MAC地址,那么接口状态就是Discarding状态。
- 如果不转发用户流量但是学习MAC地址,那么接口状态就是Learning状态。
- 如果既转发用户流量又学习MAC地址,那么接口状态就是Forwarding状态。
STP接口状态 | RSTP接口状态 | 接口在拓扑中的角色 |
---|---|---|
Forwarding | Forwarding | 包括根接口、指定接口 |
Learning | Learning | 包括根接口、指定接口 |
Listening | Discarding | 包括根接口、指定接口 |
Blocking | Discarding | 包括Alternate接口、Backup接口 |
Disabled | Discarding | 包括Disable接口 |
五.生成树技术进阶
1.STP/RSTP的缺陷:所有的VLAN共享一棵生成树
- RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。
- 但RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡,链路被阻塞后将不承载任何流量,还有可能造成部分VLAN的报文无法转发。
2.VBST:基于VLAN的生成树
- 华为公司提出了VBST(VLAN-Based Spanning Tree)生成树解决方案。该解决方案中,生成树的形成是基于VLAN的,不同VLAN间可形成相互独立的生成树,不同VLAN内的流量沿着各自的生成树转发,进而可实现流量的负载分担。
3.MSTP :多生成树
- 为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1s标准定义了MSTP。
- MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
3.堆叠与园区网络树形结构组网形态
4.Smart Link
- Smart Link是一种为双上行组网量身定做的解决方案:
- 在双向行的设备上部署,当网络正常时,两条上行链路中,一条处于活跃状态,而另一条则处于备份状态(不承载业务流量)。如此一来二层环路就此打破。
- 当主用链路发生故障后,流量会在毫秒级的时间内迅速切换到备用链路上,保证了数据的正常转发。
- ”Smart Link配置简单,便于用户操作。无需协议报文交互,收敛速度及可靠性大大提升。