STP、RSTP、MSTP工作原理及配置---网络通信原理
STP由来
最开始的网络结构简单,PC之间的互通链路只有一条单一的链路,随着网络的不断扩大,单一的链路压力也来越大,任何一个设备或链路出现问题,PC之间都会无法通信
为了避免无法通信问题,往往会在交换机之间增加冗余/备份链路来保证PC之间的通信。
- 数据环路导致广播风暴
- 每条链路都是互通的
- 交换机收到无法识别的数据帧后进行广播,
- 数据环路导致广播风暴
- 广播帧在交换机之间一直循环下去,从而消耗系统资源,降低传输质量
- 广播帧的不断增多,还会导致设备宕机重启
STP概述
STP-Spanning Tree Protocol(生成树协议)
- 逻辑上断开环路,防止广播风暴的产生。即阻塞某些接口,破除环路
- 当主线路故障,阻塞接口被激活;主线路恢复,备份线路再次阻塞
- 实现物理线路备份
- 实现逻辑无环
STP工作原理
步骤一:确定交换机角色
- 根交换机
- 非根交换机
步骤二:确定端口角色
- 根端口
- 非根端口
- 非指定端口
步骤三:确定端口状态
- 禁用:接口没有启动STP,或者接口处于关闭状态
- 侦听:正在比较STP报文,确定交换机和端口角色
- 学习:正在学MAC地址表、
- 转发:可以正常接收和发送数据包
- 阻塞:阻塞端口,不能转发用户数剧包
确定交换机角色
网桥ID
STP协议为交换机取得名字,用于在交换网络中唯一标识该设备
通过比较每个交换机的BID,来选举根交换机:BID越小越好
根据网桥ID,选择根交换机
确定端口角色
- 选举根端口:每一个非根交换机上,有且只有一个,距离根交换机最近的端口
- 确定指定端口:每一个链路上,有且只有一个,距离根交换机最近的端口
- 最后确定非指定端口:除了根端口和指定端口,剩余所有端口都是非指定端口
端口角色选举规则
首线比较端口到根交换机的开销,越小越好
开销一样,比较端口坐在交换机的BID,越小越好
若BID一样,比较端口的PID,越小越好
选举根端口
选举指定端口
- 在每个网段上,选择一个指定端口
- 距离根网桥的路径成本开销较小
- 网桥ID较小
- 根交换机上的端口全是指定端口
选取非指定端口
最后剩下德端口,被阻塞
生成树算法结果
- 最终形成数据‘转发路径’:
- 被阻塞的链路,作为备份链路
归纳STP工作原理:
- 选择根网桥
- 网桥ID最小
- 选择根端口(非根网桥)
-此端口到大根网桥路径成本最低 - 选择指定端口
- 根网桥上所有端口都是指定端口
- 此端口所在交换机到达根网桥成本最低
- 地端口所在交换机网桥ID最小
STP协议通信报文-----BPDU
- Bridge Protocol Data Unit–桥协议数据单元 ,STP协议的报文
- 通过这种报文,STP协议实现了自己所有的功能
BPDU类型
- 配置BPDU
- 拓扑变更通知
BPDU选择根网桥
当交换机启动时,会假定自己是根网桥,在向外发送的BPDU中根网桥ID字段填写自己的网桥ID ,当接收到其它交换机发出的BPDU后,比较网桥ID,选择较小的的添加到根网桥ID中。当全网所有的交换机收到全部的BPDU并做比价后,就可以选择出唯一的一个根网桥
STP端口的五种状态
- 禁用(DIsabled):强制关闭,没有启用STP协议
- 阻塞(Blocking):只接受BPDU,不能发送BPDU
- 帧听(Listening):比较BPDU,确定交换机端口和角色
- 学习(Learning):基于端口上收到的数据帧,学习MAC地址表
- 转发(Forwarding):端口的最终完美状态,发送和接收用户数据
STP的三种计时器,用于维护STP转发路径以及恢复STP故障链路
Hello时间:一个端口上发送BPDU的时间间隔,默认为2S
转发延时(Forward delay):端口在转发和学习状态,分别停留的时间
最大老化时间(Max age):一个端口最大的没有转发BPDU的时间
STP配置命令
默认情况下交换记得STP功能处于开启状态
[Huawei]stp { enable | disable } //开启或关闭STP功能
[Huawei]stp mode { stp | rstp | mstp }
修改交换机的STP优先级,默认值为32768步长为4096
[Huawei]stp priority 4096
修改端口的 STP cost ,在端口开启/关闭STP功能
[Huawei]interface g0/0/1
[Huawei-GigabitEthernet0/0/1]stp cost 100
[Huawei-GigabitEthernet0/0/1]stp {enable | disable}
配置优先级,优先级低的为根交换机,LSW1由非根交换机变为根交换机
根交换机的接口全为指定接口。
RSTP概述
STP存在许多弊端
- 收敛时间慢:30s-50s
- 设备利用率低
RSTP,即Rapid STP,快速生成树协议,在STP的基础上优化而来
RSTP相对于STP优化的部分
STP | RSTP | |
---|---|---|
端口角色 | 根端口、指定端口、阻塞端口 | 根端口、指定端口、替代端口(替代根端口)、备份端口(备份指定端口) |
端口状态 | 禁用disabled、侦听listening、学习learning、转发forwarding、阻塞blocking | 失效discarding、学习learning、转发forwarding |
改变拓扑机制 | 会将变化的信息告诉根网桥,根网桥再向全网交换设备通告拓扑变化的信息 | 直接将变化的信息通告给网络的其他设备 |
引入P/A机制–请求确认机制,设备启动时都向对端发送请求,请求自己为根,收到对方的请求信息,发现对方的桥ID比自己小,那么就认为对方为根 |
STP和RSTP存在的弊端
当设备上运行了STP/RSTP,阻塞一个端口,意味着所有的VLAN都不能通过这个阻塞端口转发信息—导致阻塞端口的线路一直空闲,降低设备的使用率
MSTP多实例生成树协议
端口状态:
discarding丢弃,相当于STP中的禁用、侦听、阻塞、不转发用户数据
Learning学习,类比STP中学习状态
Forwarding转发,类比STP中转发状态
MSTP案例
1、配置PC机IP地址
2、创建VLAN
每台叫换机都要配置VLAN 10 20
<Huawei>u t m
Info: Current terminal monitor is off.
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname SW2
[SW2]VLAN batch 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW2]
配置Trunk和Access
交换机与交换机之间使用trunk,PC机与交换机使用access
交换机SW1
[SW1]port-group group-member g0/0/1 g0/0/2
[SW1-port-group]port link-type trunk
[SW1-port-group]port trunk allow-pass vlan all
[SW1-port-group]
交换机SW2
[SW1]port-group group-member g0/0/1 g0/0/2
[SW1-port-group]port link-type trunk
[SW1-port-group]port trunk allow-pass vlan all
[SW1-port-group]
交换机3
......
交换机4
......
将对应接口加入到VLAN中
SW1:
interface GigabitEthernet0/0/10
port link-type access
port default vlan 10
SW2:
interface GigabitEthernet0/0/10
port link-type access
port default vlan 10
SW2:
interface GigabitEthernet0/0/10
port link-type access
port default vlan 20
SW2:
interface GigabitEthernet0/0/10
port link-type access
port default vlan 20
MSTP配置:所有交换机一致
stp region-configuration //进入MSTP 域配
region-name A1 //配置域名A1-一个区域的交换机域名要一致
instance 1 vlan 10 //将vlan10 加入到实例1 (组1)
instance 2 vlan 20 //将vlan20 加入到实例2(组2)
active region-configuration //激活域配
实例的根网桥配置
[SW1]dis stp region-configuration //查看 实例信息
SW2
[sw2]stp instance 1 priority 4096 //指定实例1 的根 在SW2上
[SW2]dis stp instance 1 brief
MSTID Port Role STP State Protection
1 GigabitEthernet0/0/1 DESI FORWARDING NONE
1 GigabitEthernet0/0/2 DESI FORWARDING NONE
1 GigabitEthernet0/0/10 DESI FORWARDING NONE
[SW2]
SW3
[sw3]stp instance 2 priority 4096 //指定实例2 的根 在SW3上
[SW3]dis stp instance 2 brief
MSTID Port Role STP State Protection
2 GigabitEthernet0/0/1 DESI FORWARDING NONE
2 GigabitEthernet0/0/2 DESI FORWARDING NONE
2 GigabitEthernet0/0/10 DESI LEARNING NONE
[SW3]
对于实例1:
对于实例2: