目录
1.什么是STP技术
STP(Spanning Tree Protocol)即生成树协议,是一种用于构造无环路拓扑结构进行工作的网络协议。它的主要思想是当网络中存在备份链路时,只允许主链路结合,当主链路因故障而被断开后,备用链路才会开启。同时,它还能实现链路备份和路径最优化。
STP 协议中定义了桥协议数据单元(BPDU)、桥 ID、端口 ID 和路径成本(Path Cost)等概念,以及根交换机(Root Bridge)、根端口(RootPort)、指定端口(Designated Port)等端口角色。其目的在于通过构造一个自然树的方法达到阻塞冗余环路的目的,同时实现链路备份和路径最优化。
1.1.STP选举过程及规则
如下依次选举
1)选举根交换机(Root Bridge)规则:比较桥 ID(由16位的桥优先级(Bridge Priority)和48位的MAC地址构成)大小,越小越优先。总结:选举根桥:优先级>MAC地址
2)选举根端口(RootPort)规则:先比较路径成本(Path Cost)如果相同,再比较端口 ID(由48位的MAC地址和端口号构成)大小,越小越优先。总结:选举根端口:开销>MAC地址>端口号
3)选举定端口(Designated Port)规则:先比较路径成本(Path Cost)如果相同,再比较端口 ID(由48位的MAC地址和端口号构成)大小,越小越优先。总结:选举指定端口:开销>MAC地址>端口号
如图所示,根据上述STP选举规则
1)LSW2为根桥,GigabitEthernet0/0/1~3口都是指定端口
2)LSW1的Gi 0/0/1为根端口,Gi 0/0/3为阻塞端口
3)LSW3的Gi 0/0/2为根端口,Gi 0/0/3~4为指定端口
4)LSW4的Gi 0/0/3为根端口,Gi 0/0/4为阻塞端口;并作为与LSW5的根桥,Gi 0/0/1~2为指定端口
5)LSW5的Gi 0/0/1为根端口,Gi 0/0/2为阻塞端口
1.2.STP的端口状态
1、Disabled禁用状态:端口既不处理和转发BPDU报文,也不转发用户流量。端口会在这种状态下停留10秒钟时间。
2、Blocking/Discarding阻塞状态:端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。在默认情况下,端口会在这种状态下停留20秒钟时间。
3、Listening侦听状态:可以转发BPDU报文,但不能转发用户流量。在默认情况下,该端口会在这种状态下停留15秒钟。
4、Learning学习状态:端口处于学习状态,可根据收到的用户流量构建MAC地址表,但不转发用户流量。在默认情况下,端口会在这种状态下停留15秒钟。
5、Forwarding转发状态:本接口状态可以处理业务数据帧,也可以进行BPDU的处理,只有根端口或者指定端口才可以是转发状态。
注:从阻塞状态切换到转发状态,需要经过侦听状态的15秒然后经过学习状态的15秒,也就是需要30秒的恢复时间
1.3.抓包分析
如图所示,解释如下
Spanning Tree Protocol
Protocol Identifier: Spanning Tree Protocol (0x0000) --> 协议标识符:生成树协议(0x0000)
Protocol Version Identifier: Spanning Tree (0) --> 生成树(0)--> (0代表STP)
BPDU Type: Configuration (0x00) --> BPDU类型:配置(0x00)(配置BPDU用于根桥同步信息,TCN BPDU 拓扑变更时更新信息)
BPDU flags: 0x00 --> BPDU标志:0x00
Root Identifier: 32768 / 0 / 4c:1f:cc:12:63:6f --> 根标识符:32768/0/4c:1f:cc:12:63:6f --> 根桥:优先级/0/MAC地址
Root Path Cost: 0 --> 根网桥优先级:32768
Bridge Identifier: 32768 / 0 / 4c:1f:cc:12:63:6f --> 网桥标识符:32768/0/4c:1f:cc:12:63:6f
Port identifier: 0x8002 --> 端口标识符:0x8001
Message Age: 0 --> 达根桥的跳数
Max Age: 20 --> 20S内没收到BPDU报文会被网桥确认故障
Hello Time: 2 --> 根网桥连续发送的BPDU之间的时间间隔,默认2s
Forward Delay: 15 --> 转发延迟,在侦听和学习状态所停留的时间间隔,默认15s
如果发生拓扑变更时
Spanning Tree Protocol
Protocol Identifier: Spanning Tree Protocol (0x0000) --> 协议标识符:生成树协议
Protocol Version Identifier: Spanning Tree (0) --> 生成树(0)--> (0代表STP)
BPDU Type: Topology Change Notification (0x80) --> BPDU类型:TCN(0x80)--> 拓扑更改通知
2.什么是RSTP技术
RSTP协议,全称为"快速生成树协议" (Rapid Spanning Tree Protocol)在STP的基础上发展而来的,当交换网络拓扑结构发生变化时, RSTP可以通过Proposal/Agreement机制更快地恢复网络的连通性。有三个端口状态:Discarding、Learning、Forwarding,四个端口角色:根端口、指定端口、Alternate端口、Backup端口
2.1RSTP选举选举过程及规则
1.首先选举根桥,然后选举根端口。选举规则与STP一致。
2.选举完Alternate端口与STP阻塞端口一致
3.Backup端口同一链路的备份指定端口
2.2RSTP的三个快速收敛机制
边缘端口:边缘端口:连接终端的接口,需手动配置
根端口快速切换:新的根端口对端的指定端口如果处于forwarding状态,这个根端口可以直接进入forwarding状态,不需要等30秒
指定端口快速切换:P/A机制,只适合点到点链路,逐链路收敛。
2.3抓包分析
如图所示
解释如下
Spanning Tree Protocol
Protocol Identifier: Spanning Tree Protocol (0x0000) --> 生成树协议(0x0000)
Protocol Version Identifier: Rapid Spanning Tree (2) --> 协议版本标识符:快速生成树(2)
BPDU Type: Rapid/Multiple Spanning Tree (0x02) --> BPDU类型:快速/多生成树(0x02)
BPDU flags: 0x7c, Agreement, Forwarding, Learning, Port Role: Designated --> BPDU标志:0x7c,协议,转发,学习,端口角色:指定
Root Identifier: 32768 / 0 / 4c:1f:cc:12:63:6f --> 根标识符:32768/0/4c:1f:cc:12:63:6f
Root Path Cost: 0 --> 根路径成本:0
Bridge Identifier: 32768 / 0 / 4c:1f:cc:12:63:6f --> 网桥标识符:32768/0/4c:1f:cc:12:63:6f
Port identifier: 0x8001 端口标识符:0x8001
Message Age: 0 --> 去往根桥的跳数
Max Age: 20 --> 20S内没收到BPDU报文会被网桥确认故障
Hello Time: 2 --> 根网桥连续发送的BPDU之间的时间间隔,默认2s
Forward Delay: 15 --> 状态延迟15s
Version 1 Length: 0 --> 版本长度
3.什么是MSTP技术
为了解决了STP和RSTP所有有的VLAN共享一棵生成树无法在VLAN间实现数据流量的负载均衡问题,MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。 每棵生成树叫做一个多生成树实例MSTI(Multiple Spanning Tree Instance)也就是多个VLAN的一个集合。每个域内的选举过程及规则与RSTP一致
3.1抓包分析
如图所示
解释如下
Spanning Tree Protocol
Protocol Identifier: Spanning Tree Protocol (0x0000) --> 协议标识符:生成树协议(0x0000)
Protocol Version Identifier: Multiple Spanning Tree (3) --> 协议版本标识符:多生成树(3)
BPDU Type: Rapid/Multiple Spanning Tree (0x02) --> BPDU类型:快速/多生成树(0x02)
BPDU flags: 0x7c, Agreement, Forwarding, Learning, Port Role: Designated --> BPDU标志 (与RSTP一致)
Root Identifier: 32768 / 0 / 4c:1f:cc:7a:11:8e --> 根标识符:32768/0/4c:1f:cc:7a:11:8e
Root Path Cost: 0 --> 根路径成本:0
Bridge Identifier: 32768 / 0 / 4c:1f:cc:7a:11:8e --> 网桥标识符:32768/0/4c:1f:cc:7a:11:8e
Port identifier: 0x8001 --> 端口标识符:0x8001
Message Age: 0 --> 去往根桥的跳数
Max Age: 20 --> 20S内没收到BPDU报文会被网桥确认故障
Hello Time: 2 --> 根网桥连续发送的BPDU之间的时间
Forward Delay: 15 --> 正向延迟:15
Version 1 Length: 0 --> 版本1长度:0
Version 3 Length: 96 --> 版本3长度:96
MST Extension --> MST扩展
MST Config ID format selector: 0 --> MST配置ID格式选择器:0
MST Config name: huawei --> MST配置名称:huawei
MST Config revision: 0 --> MST配置修订版:0
MST Config digest: e821ccee7501115289b37c79a72e07c9 --> MST配置摘要
CIST Internal Root Path Cost: 0 --> CIST内部根路径成本:0
CIST Bridge Identifier: 32768 / 0 / 4c:1f:cc:7a:11:8e --> CIST网桥标识符:32768/0/4c:1f:cc:7a:11:8e
CIST Remaining hops: 20 --> CIST剩余跃点:20
MSTID 1, Regional Root Identifier 0 / 4c:1f:cc:8a:02:8e --> MSTID 1,区域根标识符0/4c:1f:cc:8a:02:8e
MSTID 2, Regional Root Identifier 0 / 4c:1f:cc:a7:30:65 --> MSTID 2,区域根标识符0/4c:1f:cc:a7:30:65
4.总结
1.由报文得出:STP协议版本标识符为0,RSTP协议版本标识符为2,MSTP协议版本标识符为3
2.STP从阻塞端口到转发端口需要经过侦听、学习过程的30秒时间才能进入转发状态。而RSTP新增Alternate端口、Backup端口定义了快速收敛机制从而快速恢复网络。MSTP进一iSTP&RSTP的单个生成树瓶颈,利用MSTI划分多生成树实现多个冗余路径及数据的负载均衡
3.所有状态选举越小越优先,优先级>MAC地址>开销>端口号
4.基础配置
华为-------------------------------------------------------------------------------------
stp enable --> 启用STP/RSTP/MSTP --> 华为默认自动开启是MSTP
stp mode <stp> <rstp> <mstp> --> 定义生成树模式
stp priority <0-61440> --> 配置交换机的STP优先级
interface GigabitEthernet0/0/X
stp cost <1-200000000> --> 修改当前端口stp的cost值
stp edged-port enable --> 配置当前端口为边缘端口
stp bpdu-protection --> 配置当前端口为BPDU保护端口(默认开启)
华三配置STP功能除了边缘端口&BPDU保护端口配置不一样,其余与华为配置一样
interface GigabitEthernet1/0/X
stp edged-port --> 配置当前端口为边缘端口
stp port bpdu-protection enable --> 配置当前端口为BPDU保护端口(默认关闭)
#MSTP配置
stp region-configuration --> 进入MST域视图
region-name XXXX --> 配置MST域的域名
instance 1 vlan 10 30 --> 配置多生成树实例 <1> 和 VLAN 10 30 的映射关系
instance 2 vlan 20 40 --> 配置多生成树实例 <2> 和 VLAN 20 40 的映射关系
active region-configuration --> 激活MST域的配置
#以上所有MSTP交换机需要配置
#以下配置MSTP实例的主备桥
LSW1:
stp instance 1 root primary --> 设置多生成树实例 <1> 为主桥
stp instance 2 root secondary --> 设置多生成树实例 <2> 为备桥
LSW2:
stp instance 2 root primary --> 设置多生成树实例 <2> 为主桥
stp instance 1 root secondary --> 设置多生成树实例 <1> 为备桥
注:一般情况下配置在核心交换机(网关处)
锐捷---------------------------------------------------------------------------------------
spanning-tree mode <stp> <rstp> <mstp> --> 启用STP/RSTP/MSTP --> 锐捷默认不开启STP功能
spanning-tree priority <0-61440> --> 配置交换机的STP优先级
interface GigabitEthernet0/X
spanning-tree cost <1-200000000> --> 修改当前端口stp的cost值
spanning-tree portfast --> 配置当前端口为边缘端口
spanning-tree bpduguard enable --> 配置当前端口为BPDU保护端口
spanning-tree bpdufilter enabled --> 配置当前端口为BPDU拦截端口
#MSTP配置
spanning-tree mst configuration --> 进入MST域视图
name XXXX --> 配置MST域的域名
instance 1 vlan 10,30 --> 配置多生成树实例 <1> 和 VLAN 10 30 的映射关系
instance 2 vlan 20,40 --> 配置多生成树实例 <2> 和 VLAN 20 40 的映射关系
#以上所有MSTP交换机需要配置
#以下配置MSTP实例的主备桥
SW1:
spanning-tree mst 1 priority 0 --> 设置多生成树实例 <1> 的优先级
spanning-tree mst 2 priority 4096 --> 设置多生成树实例 <2> 的优先级
SW2:
spanning-tree mst 1 priority 4096 --> 设置多生成树实例 <2> 的优先级
spanning-tree mst 2 priority 0 --> 设置多生成树实例 <2> 的优先级
注:一般情况下配置在核心交换机(网关处)