目录
为了更好的保证RSTP协议在网络不稳定的情况下,尽可能的保证流量的正常转发,在标准协议中新增了4种保护功能。
保护机制 | 应用端口 | 作用 |
BPDU保护 | 边缘端口 | 边缘端口收到BPDU后,把边缘端口shutdown。 |
根保护 | 指定端口 | 一旦收到更优的BPDU,把端口进入Discarding。 |
环路保护 | 根端口或 预备端口 | 如果根端口或预备端口长时间收不到来自上游设备的BPDU报文时,端口会进入Discarding状态,角色切换为指定端口,不转发报文,从而不会在网络中形成环路。 |
TC保护 | 全局 | 在单位时间内,只处理指定次数的TC BPDU报文。 |
命令 | 说明 |
stp bpdu-protection | 开启交换设备边缘端口的BPDU保护功能 |
error-down auto-recovery cause bpdu-protection interval 30 | 配置错误关闭自动恢复时间,默认关闭 |
display error-down recovery | 验证错误关闭自动恢复 |
BPDU保护机制为什么是在系统模式下配置的?
如果交换机配置了边缘端口, 交换机系统能够自动检测到哪些端口是边缘端口。
缺省情况下,交换设备的BPDU保护功能处于禁用状态。
如果用户希望被error-down的边缘端口可自动恢复,可通过配置使能端口自动恢复功能,并设置延迟时间,即在系统视图下执行命令error-down auto-recovery cause bpdu-protection interval interval-value,使能端口自动恢复为Up的功能,并设置端口自动恢复为Up的延时时间。使被关闭的端口经过延时时间后能够自动恢复。配置时需要注意:
命令 | 说明 |
stp root-protection | 开启交换设备的Root保护功能,只在指定端口上生效。 |
缺省情况下,端口的Root保护功能处于去使能状态。当端口的角色是指定端口时,配置的Root保护功能才生效。配置了根保护的端口,不可以配置环路保护。
环路的产生
在运行RSTP协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游交换设备的BPDU维持。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的BPDU时,交换设备会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中可能产生环路。为了防止以上情况发生,可部署环路保护功能。
环路保护机制
在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在阻塞状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。
配置了环路保护的端口,当接收不到上游设备发送的BPDU报文时,环路保护生效。如果该端口参与了STP计算,则不论其角色如何,该端口在所有实例都将处于Discarding状态。
命 令 | 说 明 |
stp loop-protection | 开启端口环路保护功能。 |
缺省情况下,端口的环路保护功能处于关闭状态。
由于Alternate端口是根端口的备份端口,如果交换设备上有Alternate端口,需要在根端口和Alternate端口上同时配置环路保护。
配置了根保护的端口,不可以配置环路保护。
命令 | 说明 |
stp tc-protection | 开启TC保护功能。 |
stp tc-protection interval 10 | 配置TC保护处理阈值所需的时间,默认为2。 |
stp tc-protection threshold 5 | 配置TC保护阀值,默认为1。 |
单位时间通过执行命令stp tc-protection interval进行配置。
开启交换设备边缘端口的BPDU保护功能
[Huawei]sysname SW1 -->设置交换机名为SW1
[SW1]stp mode rstp -->设置STP模式为RSTP
其他交换机和SW1交换机配置一样。
如上图所示,进行如下操作:①先不开启SW5交换机,②设置SW3交换机Ethernet 0/0/3端口为边缘端口[SW3-Ethernet0/0/3]stp edged-port enable ,③开启SW3交换机边缘端口BPDU保护功能[SW3]stp bpdu-protection ,④开启SW5交换机,⑥查看SW3交换机Ethernet 0/0/3端口是否会down掉。
此边缘端口Ethernet0/0/3启用BPDU保护将关闭,因为它收到BPDU数据包!
SW3交换机Ethernet 0/0/3端口收到来自SW5交换机的BPDU后直接down掉,边缘端口Ethernet0/0/3启用BPDU保护成功。
配置bpdu保护导致错误关闭自动恢复间隔30秒[SW3]error-down auto-recovery cause bpdu-protection interval 30 。
[SW3]display error-down recovery验证错误关闭自动恢复命令要在配置error-down auto-recovery cause bpdu-protection interval 30命令之后才能生效。
如上图所示,进行如下操作:①SW1交换机为根交换机(优先级配置为4096[SW1]stp priority 4096),②不接入SW5交换机,③查看SW3交换机STP端口状态信息。
④接入SW5交换机后,查看根交换机是谁?
⑤SW5交换机优先级设置为0([SW5]stp priority 0),比现根交换机SW1优先级高,查看SW5抢占根交换机是否成功?
⑥在不连接SW5交换机的情况下,在SW3交换机Ethernet 0/0/3端口上配置根保护([SW3-Ethernet0/0/3]stp root-protection ),⑦连接SW5交换机,查看SW5能否抢占为根交换机?
在SW3交换机Ethernet 0/0/3端口上配置根保护后,如果要在此端口下抢占根交换机,SW3交换机Ethernet 0/0/3端口的STP端口状态就会迁移为Discarding状态。
在根端口上配置环路保护,当收不到上游设备的BPDU时,根端口(如此示例的SW4交换机Ethernet 0/0/1端口)变为Disdiscarding状态,预备端口(如此示例的SW4交换机Ethernet 0/0/2端口)按照RSTP规则会成为新的根端口,处于Forwarding状态,这样不会导致根端口和预备端口都为Forwarding状态而导致网络环路。
在预备端口上配置环路保护,当收不到上游设备的BPDU时,预备端口(如此示例的SW4交换机Ethernet 0/0/2端口)处于Disdiscarding状态,不会转变为新的根端口,根端口(如此示例的SW4交换机Ethernet 0/0/1端口)按照RSTP规则进行P/协商,这样不会导致根端口和预备端口都为Forwarding状态而导致网络环路。
在根端口和预备端口都配置环路保护,当收不到上游设备的BPDU时,根端口(如此示例的SW4交换机Ethernet 0/0/1端口)变为Disdiscarding状态,预备端口(如此示例的SW4交换机Ethernet 0/0/2端口)处于Disdiscarding状态,不会转变为新的根端口,这样不会导致根端口和预备端口都为Forwarding状态而导致网络环路。
[SW1]stp tc-protection
[SW1]stp tc-protection threshold ?
INTEGER<1-255> The threshold of TC-BPDU protection, default is 1---TC-BPDU保护的阈值,默认为1