DAY7 RSTP
一、STP 回顾
1.STP技术背景
为了保证网络的健壮性,部署链路和设备冗余
冗余带来了问题是二层环路,环路导致了三个问题:
- 广播风暴
- 重复的数据帧
- MAC地址表不稳定
2.概念
既想要有冗余,要要去除环路带来的危害: 使用 STP (Spanning Tree Protocol) IEEE 802.1d
STP能够从逻辑上去阻塞一个端口,当非阻塞链路出现单点故障的时候,这个被阻塞的端口恢复到转发数据的状态。
3.工作原理
STP选举过程:
终极目标就是要找到那个被阻塞的接口
- 选出根桥
选举开始的时候,网络中所有的交换机都会认为自己是根桥,都会向外发送 BPDU,BPDU上记录着交换机的选举的依据。
越小越优先
最后选举出根桥,只有根桥才能在网络中发送BPDU,其他的非根桥负责接收和转发根桥产生的BPDU。
- 在非根交换机上选出根端口
根端口
每一台交换机在它自己的所有端口中,选择出一个端口作为根端口:
1. 所有端口中选择出一个 离根桥最近的端口作为根端口 【到达根桥的路径开销(cost)最小】
2. 如果Cost值相同,比较该接口收到的BPDU中的 Sender-BID
3. 如果Send-BID也相同,则比较接口收到的BPDU中 Sender-PID
4. 如果Sender-PID也相同,则比较自身接口的PID。
- 选出指定端口
一般情况下,根端口对面的接口都是指定端口
在剩余的链路中(这段链路没有根端口和指定端口)选举出指定端口
1. 比较端口自身的交换机到达根桥的路径开销
2. 如果开销值相同,则比较自身交换机的 BID
3. 如果BID也相同,则比较交换机的PID
- 最后剩下的就是要被阻塞的那个端口
最后从逻辑上去掉阻塞的链路,就能看到一个无环的树
术语:
1.BPDU
Bridge protocol data unit 桥协议数据单元
STP在交换机之间运行,交换配置信息是靠BPDU实现的,BPDU用于进行各种选举。
交换机或者网桥之间周期性地发送: 每2s发送一次,当选举结束以后,根桥会以每2s一次的频率发送自己的BPDU
BPDU的关键字段:
Root BID:根桥的BID
根桥选举,依靠BPDU中的BID:优先级 + MAC地址
优先级的范围:0-65535 但是只能设置为4096的倍数
如果优先级一致,就比较MAC地址
MAC地址是唯一的,不可能相同
Root Path:达到根桥的开销,当交换机接收到BPDU的时候,会根据自己的链路带宽,修改 Root Path(cost)
COST值:
10MBps 100
100MBps 19
1GBps 4
10GBps 2
Sender BID:当根桥发出的BPDU,经过一台交换机的时候,这台交换机会把自己的 BID 写到 Sender-BID的位置
Port ID:端口的ID
Port id : 优先级+端口号 0-255 默认值128
2.交换机接收BPDU
当交换机接收了一个更优的BPDU(有最小的 Root-BID或者 Root Path),接收的端口就会保存这个BPDU。
4.STP的状态机
启动【Disable】:最初始的状态
阻塞【Blocking】:如果端口被选举成为了 阻塞端口,则这个端口就不能转发数据了
被阻塞的端口,不能往外转发BPDU,只能接收BPDU
也不能学习MAC地址。
侦听【Listening】:完成选举过程
能够接收和转发BPDU
不能学习MAC地址
也不能转发数据
学习【Learning】:学习MAC地址,用来完善交换机自己的MAC地址表
能够学习MAC地址
能够接收和转发BPDU
不能转发数据
转发【Forwarding】:能够进行转发数据了
能够接收换发送BPDU
能够学习MAC地址
能够转发数据
端口的状态切换过程:
5.STP的计时器
发延时:15s forward delay
从 Listening 到 Learning,需要经历15s
从 Learning到 Forwarding,需要经历 15s5
阻塞计时器:被阻塞的端口,需要从 BLK—> LSN ,需要经历最大20s的时间。
6.STP的拓扑变更
https://support.huawei.com/enterprise/zh/doc/EDOC1100092149
二、RSTP
IEEE - 802.1W Rapid STP
1.STP协议存在的一些问题
问题一: 设备运行STP从初始化,到完全能够进行数据转发—> 至少要经历 30s的时间 【收敛慢】
问题二:交换机有BP端口,RP端口down掉场景
SWC与SWA的直连链路down掉,其BP端口切换成RP端口并进入转发状态至少需要经过30s
问题三:交换机无BP端口,RP端口down掉场景
SWB与SWA的直连链路down掉,则SWC的BP端口切换成DP端口并进入转发状态大约需要50s
问题四:运行STP的交换机连接用户终端的场景
末梢交换机连接终端的链路进入转发需要经过30s-50s
问题五:STP的拓扑变更机制
机制复杂,效率低下
问题六:STP的其他不足之处 - 端口角色
端口角色太少了,对于一些场景中,当根端口故障,blocked端口一定会成为根端口,或者指定端口故障,blocked端口一定会成为指定端口的场景,这些端口需要在额外的定义角色
目前阻塞端口就是 block,blocked端口到转发状态,至少要经历两个转发延时 15+15
问题七:STP的其他不足之处 - 端口状态
disable、blocking、listening状态的端口,都不能学习MAC地址,也都不能转发数据
2.RSTP对STP的改进
针对问题一:收敛慢
快速收敛机制
P/A机制 proposal 提议 Agreement 同意
P置位的BPDU表示:我提议让我当根桥
A置位的BPDU表示:我同意你当根桥
针对问题二:
前提:有了更多的端口角色 AP为 RP的替代端口,它也会一直接收来自根桥的BPDU
当SWC的RP失效以后,SWC的AP端口会立即成为新的根端口,并进入转发状态。
针对问题三:次等BPDU处理机制
SWB与SWA的直连链路down掉,SWC的AP端口切换成DP端口并进入转发状态可在秒级时间内完成:当SWC的RP
失效以后,SWC的AP端口会立即成为新的根端口,并进入转发状态。
针对问题四:引入边缘端口
在RSTP中,交换机连接终端的链路可立即进入转发状态
针对问题五:拓扑变更机制的优化
网络发生拓扑变化时,变更点交换机直接向全网发送TC置位的BPDU报文,而不是先通知到根桥,然后由根桥向全网
发送TC报文,这样在一定程度上节省了收敛时间
交换设备接收到TC置位的BPDU后,会清空除了收到报文外的其他所有非边缘端口学习到的MAC地址
RSTP的保护功能:
当边缘端口接收到BPDU以后,这个边缘端口就要进行RSTP的运算,而不再是一直处于Forwarding状态
BPDU保护:当边缘端口收到配置BPDU,边缘端口变成关闭的状态
根防护:防止根桥地位丢失,导致错误的网络拓扑变更(不该阻塞的端口被阻塞了!)
TC-BPDU:防止大量的TC-BPDU传递到网络中,导致交换机频繁删除MAC地址表,引起网络的震荡。
针对问题六:
RSTP定义了两种新的端口角色:备份端口(Backup Port)和预备端口(Alternate Port)。
预备端口(Alternate Port)作为根端口的备份。
备份端口(Backup Port) 作为指定端口的备份。
针对问题七:
端口状态的重新划分:RSTP的状态规范把原来的5种状态缩减为3种
3.RSTP配置
# 方法1:将交换机的角色设置为 primary 主根桥 Secondary 备根桥,当交换机被指定成根桥或备根桥,它的优先级不能被修改了
[SW1]stp root ?
primary Primary root switch # 将交换机的优先级改成0
secondary Secondary root switch # 将交换机的优先级改成4096
# 手工设置交换机的桥优先级
[SW1]stp priority ?
INTEGER<0-61440> Bridge priority, in steps of 4096
华为的 x7交换机 STP默认开启 RSTP模式
stp enable
stp mode rstp
配置边缘端口
[SW2-GigabitEthernet0/0/3]stp edged-port enable
将接口配置为边缘端口,当接口连接终端设备时,会立即进入转发状态。
但是当接口接收到BPDU后,接口会丢失边缘端口特性,成为一个正常的STP端口。
根桥攻击实验:
# 启动yersinia
yersinia -G
防护手段: 在交换机上,开启根保护
[SW2-GigabitEthernet0/0/4]stp root-protection
TCb-BPDU泛洪攻击,会引起交换机频繁删除MAC地址表信息:
网络中充斥着大量的 TCN BPDU:
进入转发状态。
但是当接口接收到BPDU后,接口会丢失边缘端口特性,成为一个正常的STP端口。
根桥攻击实验:
[外链图片转存中...(img-fyDkjZPM-1679831015247)]
启动yersinia
yersinia -G
[外链图片转存中...(img-5xFe5q0I-1679831015248)]
防护手段: 在交换机上,开启根保护
[SW2-GigabitEthernet0/0/4]stp root-protection
TCb-BPDU泛洪攻击,会引起交换机频繁删除MAC地址表信息:
[外链图片转存中...(img-LmWNCdLS-1679831015248)]
网络中充斥着大量的 TCN BPDU:
[外链图片转存中...(img-PcGHg2NA-1679831015248)]