快速生成树协议(Rapid Spanning Tree Protocol,RSTP)是一种用于在局域网中防止二层环路的协议。它通过在交换机之间交换 BPDU(Bridge Protocol Data Unit)报文来实现拓扑的计算和收敛。
与STP相比,RSTP有哪些优势:
与 STP(Spanning Tree Protocol,生成树协议)相比,RSTP(Rapid Spanning Tree Protocol,快速生成树协议)具有以下优势:
- 更快的收敛速度:RSTP 能够更快地检测和响应网络拓扑的变化,从而实现更快的收敛速度。在 STP 中,端口状态的转换需要经过多个步骤,而 RSTP 则通过引入新的端口角色和状态,减少了端口状态转换的时间,从而提高了网络的收敛速度。
- 更好的兼容性:RSTP 与 STP 兼容,这意味着可以在现有的 STP 网络中逐步引入 RSTP,而无需对网络进行大规模的改造。此外,RSTP 还支持与其他生成树协议(如 PVST+和 MSTP)的互操作,从而提高了网络的灵活性和可扩展性。
- 更强的可靠性:RSTP 引入了一些新的机制,如 BPDU 保护和根保护,来增强网络的可靠性。BPDU 保护可以防止攻击者向交换机发送伪造的 BPDU 报文,从而导致网络拓扑的混乱。根保护则可以防止其他设备冒充根桥,从而导致网络拓扑的不稳定。
- 更好的负载均衡:RSTP 支持多实例生成树,可以为不同的 VLAN 或流量类型创建独立的生成树实例,从而实现更好的负载均衡。这有助于提高网络的性能和可靠性。
- 更简单的配置:RSTP 的配置相对简单,只需要在交换机上启用 RSTP 并进行一些基本的配置即可。相比之下,STP 的配置相对复杂,需要进行更多的参数设置和调整。
RSTP 的主要特点包括:
- 快速收敛:RSTP 能够快速检测到拓扑变化,并在短时间内完成收敛,从而减少网络中断的时间。
- 边缘端口:RSTP 支持边缘端口的概念,这些端口可以直接从丢弃状态转换为转发状态,而无需经过生成树的计算,从而提高了网络的性能。
- BPDU 保护:RSTP 可以配置 BPDU 保护功能,防止攻击者向交换机发送伪造的 BPDU 报文,从而导致网络拓扑的混乱。
- 环路保护:RSTP 可以配置环路保护功能,防止由于链路故障或其他原因导致的网络环路。
PVST+协议的特点
- 每个 VLAN 一个生成树:PVST+为每个 VLAN 独立地计算生成树,这意味着不同 VLAN 之间的拓扑结构可以不同,从而提高了网络的灵活性和可靠性。
- 支持负载均衡:PVST+可以根据 VLAN 的流量情况,自动调整生成树的拓扑结构,以实现负载均衡,提高网络的性能。
- 快速收敛:PVST+采用了一些优化措施,如快速端口转换和快速链路故障检测,从而提高了生成树的收敛速度,减少了网络中断的时间。
- 兼容性好:PVST+与 Cisco 的其他网络协议和设备兼容性好,可以与 Cisco 的其他网络产品无缝集成。
- 支持 VLAN 修剪:PVST+支持 VLAN 修剪功能,可以减少不必要的广播流量,提高网络的效率。
RSTP 的应用场景包括:
总之,在 RSTP 配置中,可以通过配置根保护、BPDU 过滤和 BPDU 保护等功能来防止网络中的其他设备冒充根桥。
在 RSTP(快速生成树协议)中,端口的状态有以下几种:
- 禁用(Disabled):端口被关闭,不参与生成树的计算。
- 阻塞(Blocking):端口处于阻塞状态,不能转发数据帧,但可以接收 BPDU(网桥协议数据单元)。
- 侦听(Listening):端口正在侦听网络,以确定是否可以转发数据帧。
- 学习(Learning):端口正在学习 MAC 地址表,以便能够转发数据帧。
- 转发(Forwarding):端口处于转发状态,可以转发数据帧。
在RSTP配置中,如何配置根保护功能?
- 局域网:RSTP 可以用于构建局域网,防止二层环路的产生,提高网络的可靠性和稳定性。
- 数据中心:RSTP 可以用于数据中心的网络构建,确保服务器之间的通信畅通无阻,提高数据中心的可用性和性能。
- 企业网络:RSTP 可以用于企业网络的构建,防止二层环路的产生,提高网络的可靠性和稳定性,保障企业的业务正常运行。
- 我们将配置一下交换机。
配置启用和禁用RSTP。
• 配置边缘端口。
• 配置RSTP BPDU保护功能。
• 配置RSTP环路保护功能。
在一个复杂的网络中,网络规划者由于冗余备份的需要,一般都倾向于在设备之间部署多条物理链路,其中一条作主用链路,其他链路作备份。这样就难免会形成环形网络,若网络中存在环路,可能会引起广播风暴和MAC桥表项被破坏。
网络规划者规划好网络后,可以在网络中部署RSTP协议预防环路。当网络中存在环路,RSTP通过阻塞某个端口以达到破除环路的目的。如图1所示,当前网络中存在环路,SwitchA、SwitchB、SwitchC和SwitchD都运行RSTP,通过彼此交互信息发现网络中的环路,并有选择的对某个端口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在环形网络中不断增生和无限循环,避免设备由于重复接收相同的报文造成处理能力下降。
- 步骤一 环境准备
如果STP被禁用,则需执行stp enable命令启用STP。 -
<Huawei>system view Enter system view, return user view with Ctrl+Z. [Huawei]sysname S1 [S1]stp enable [S1]system view Enter system view, return user view with Ctrl+Z. [Huawei]sysname S2 [S2]stp enable [S2]
步骤二 配置 RSTP 并验证 RSTP 配置
执行stp mode rstp命令配置S1和S2的STP模式为RSTP。 -
[S1]stp mode rstp [S2]stp mode rstp
执行display stp命令查看RSTP的简要信息。
-
[S1]display stp [CIST Global Info][Mode RSTP]CIST Bridge :32768.d0d0 4ba6 aab0 Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20CIST Root/ERPC :32768.d0d0 4ba6 aab0 / 0 (This bridge is the root)CIST RegRoot/IRPC :32768.d0d0 4ba6 aab0 / 0 CIST RootPortId :0.0 BPDU Protection :DisabledTC or TCN received :362TC count per hello :0 STP Converge Mode :Normal Share region configuration :EnabledTime since last TC :0 days 0h:0m:45s……output omit…… [S2]display stp [CIST Global Info][Mode RSTP]CIST Bridge :32768.d0d0 4ba6 ac20 Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20CIST Root/ERPC :32768.d0d0 4ba6 aab0 / 20000CIST RegRoot/IRPC :32768.d0d0 4ba6 ac20 / 0 CIST RootPortId :128.34 (GigabitEthernet0/0/9)BPDU Protection :Disabled TC or TCN received :186 TC count per hello :0 STP Converge Mode :Normal Share region configuration :EnabledTime since last TC :0 days 0h:3m:55s……output omit……
步骤三 配置边缘端口
配置连接用户终端的端口为边缘端口。边缘端口可以不通过RSTP计算直接由
Discarding状态转变为Forwarding状态。在本示例中,S1和S2上的G0/0/1端口都连接的是一台路由器,可以配置为边缘端口,以加快RSTP收敛速度。 -
[S1]interface GigabitEthernet 0/0/1 [S1 GigabitEthernet0/0/1]undo shutdown [S1 GigabitEthernet0/0/1]stp edged port enable [S2]interface GigabitEthernet 0/0/1 [S2 GigabitEthernet0/0/1]undo shutdown [S2 GigabitEthernet0/0/1]stp edged port enable
步骤四 配置 BPDU 保护功能
边缘端口直接与用户终端相连,正常情况下不会收到BPDU报文。但如果攻击者向交换机的边缘端口发送伪造的BPDU报文,交换机会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。在交换机上配置BPDU保护功能,可以防止该类攻击。
执行stp bpdu-protection命令,在S1和S2上配置BPDU保护功能。 -
[S1]stp bpdu protection [S2]stp bpdu protection
执行display stp brief命令查看端口上配置的保护功能。
-
<S1>display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING BPDU 0 GigabitEthernet0/0/9 DESI FORWARDING NONE 0 GigabitEthernet0/0/10 DESI FORWARDING NONE <S2>display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING BPDU 0 GigabitEthernet0/0/9 ROOT FORWARDING NONE 0 GigabitEthernet0/0/10 ALTE DISCARDING NONE
配置完成后,从上述回显的灰色部分可以看出,S1和S2上的G0/0/1端口已经配置BPDU保护功能。
-
步骤五 配置环路保护功能
在运行RSTP协议的网络中,交换机依靠不断接收来自上游设备的BPDU报文维持根端口和Alternate端口的状态。如果由于链路拥塞或者单向链路故障导致交换机收不到来自上游设备的BPDU报文,交换机会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而会引起网络环路。可以在交换机上配置环路保护功能,避免此种情况发生。
首先在S2上查看端口角色。 -
[S2]display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING BPDU 0 GigabitEthernet0/0/9 ROOT FORWARDING NONE 0 GigabitEthernet0/0/10 ALTE DISCARDING NONE
可以看到S2上的G0/0/9和G0/0/10端口分别为根端口和Alternate端口。在这两个端口上配置环路保护功能。
-
[S2]interface GigabitEthernet 0/0/9 [S2 GigabitEthernet0/0/9]stp loop protection [S2 GigabitEthernet0/0/9]quit [S2]interface GigabitEthernet 0/0/10 [S2 GigabitEthernet0/0/10]stp loop protection
执行display stp brief命令查看端口上配置的保护功能。
-
<S2>display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING BPDU 0 GigabitEthernet0/0/9 ROOT FORWARDING LOOP 0 GigabitEthernet0/0/10 ALTE DISCARDING LOOP
因为S1是根桥,S1上的所有端口都是指定端口,无需配置环路保护功能。配置完成后,如果您把S2配置为根桥,可以使用相同的步骤在S1的根端口和Alternate端口上配置环路保护功能。
-
配置文件
-
<S1>display current configuration # !Software Version V200R008C00SPC500sysname S1 # stp mode rstp stp bpdu protection # interface GigabitEthernet0/0/1undo shutdownstp edged port enable #interface GigabitEthernet0/0/2shutdown # interface GigabitEthernet0/0/3shutdown # interface GigabitEthernet0/0/13 shutdown # interface GigabitEthernet0/0/14shutdown # user interface con 0user interface vty 0 4 # return <S2>display current configuration # !Software Version V200R008C00SPC500sysname S2 # stp mode rstp stp bpdu protection # interface GigabitEthernet0/0/1undo shutdownstp edged port enable # interface GigabitEthernet0/0/2shutdown # interface GigabitEthernet0/0/3shutdown # interface GigabitEthernet0/0/6shutdown # interface GigabitEthernet0/0/7shutdown # interface GigabitEthernet0/0/9stp loop protection # interface GigabitEthernet0/0/10stp loop protection # user interface con 0 user interface vty 0 4 # return <S3>display current configuration # !Software Version V200R008C00SPC500sysname S3 # interface GigabitEthernet0/0/1shutdown # interface GigabitEthernet0/0/13shutdown # interface GigabitEthernet0/0/7shutdown # user interface con 0 user interface vty 0 4 # return <S4>display current configuration # !Software Version V200R008C00SPC500sysname S4 # interface GigabitEthernet0/0/14shutdown # interface GigabitEthernet0/0/1shutdown # interface GigabitEthernet0/0/6shutdown # user interface con 0 user interface vty 0 4 # return
在RSTP配置中,如何防止网络中的其他设备冒充根桥?
-
在 RSTP 配置中,可以通过以下方式防止网络中的其他设备冒充根桥:
- 配置根保护:在交换机上配置根保护功能,当交换机的端口收到更优的 BPDU 时,该端口会进入阻塞状态,从而防止其他设备冒充根桥。
- 配置 BPDU 过滤:在交换机上配置 BPDU 过滤功能,当交换机的端口收到 BPDU 时,该端口会进入阻塞状态,从而防止其他设备冒充根桥。
- 配置 BPDU 保护:在交换机上配置 BPDU 保护功能,当交换机的端口收到非法的 BPDU 时,该端口会进入阻塞状态,从而防止其他设备冒充根桥。
在 RSTP 配置中,可以通过以下步骤配置根保护功能:
进入交换机的全局配置模式:
Switch# configure terminal
以上是一些常见的防止二层环路的协议,不同的协议适用于不同的网络环境和需求,用户可以根据自己的实际情况选择合适的协议。
复制重新生成
- 进入需要配置根保护的端口:
-
Switch(config)# interface interface-type interface-number
- 启用根保护功能:
Switch(config-if)# spanning-tree guard root
- 退出接口配置模式:
Switch(config-if)# exit
- 保存配置:
Switch(config)# end Switch# write memory
通过以上步骤,就可以在 RSTP 配置中配置根保护功能了。当交换机的端口启用了根保护功能后,如果该端口收到了更优的 BPDU,那么该端口将会进入阻塞状态,从而防止其他设备冒充根桥。
-
除了RSTP协议,还有哪些协议可以防止二层环路?
- STP(Spanning Tree Protocol):STP 是最早的生成树协议,它通过阻塞某些端口来防止二层环路的产生。STP 协议的缺点是收敛速度较慢,可能会导致网络中断时间较长。
- MSTP(Multiple Spanning Tree Protocol):MSTP 是在 STP 基础上发展而来的协议,它可以将多个 VLAN 映射到一个生成树实例中,从而提高网络的利用率和可靠性。
- PVST+(Per-VLAN Spanning Tree Plus):PVST+是 Cisco 专有的生成树协议,它可以为每个 VLAN 独立地计算生成树,从而提高网络的灵活性和可靠性。
- RRPP(Rapid Ring Protection Protocol):RRPP 是一种快速环网保护协议,它可以在环网中快速检测到故障,并通过切换到备用链路来恢复网络的正常运行。
- SEP(Smart Ethernet Protection):SEP 是华为专有的以太网保护协议,它可以在环网中快速检测到故障,并通过切换到备用链路来恢复网络的正常运行。
- 配置 RSTP协议
-
以下是在华为设备上配置 RSTP 协议的基本步骤:
- 进入系统视图:
-
plaintext
复制
<Huawei> system-view
- 启用 RSTP:
-
plaintext
复制
[Huawei] stp enable
- 配置交换机的优先级(可选):
-
plaintext
复制
[Huawei] stp priority priority-value
其中,
priority-value
是交换机的优先级,取值范围为 0 到 61440,默认为 32768。优先级值越小,交换机成为根桥的可能性越大。 - 配置端口的优先级(可选):
-
plaintext
复制
[Huawei] interface interface-type interface-number [Huawei-interface] stp port priority priority-value
其中,
interface-type
和interface-number
是端口的类型和编号,priority-value
是端口的优先级,取值范围为 0 到 240,默认为 128。优先级值越小,端口成为根端口或指定端口的可能性越大。 - 配置端口的路径开销(可选):
-
plaintext
复制
[Huawei] interface interface-type interface-number [Huawei-interface] stp cost cost-value
其中,
interface-type
和interface-number
是端口的类型和编号,cost-value
是端口的路径开销,取值范围为 1 到 200000000,默认为 200000。路径开销值越小,端口成为根端口或指定端口的可能性越大。 - 配置 BPDU 保护功能(可选):
-
plaintext
复制
[Huawei] interface interface-type interface-number [Huawei-interface] stp bpdu-protection
其中,
interface-type
和interface-number
是端口的类型和编号。启用 BPDU 保护功能后,如果端口收到非法的 BPDU 报文,端口将被关闭,从而防止网络攻击。 - 配置根保护功能(可选):
-
plaintext
复制
[Huawei] interface interface-type interface-number [Huawei-interface] stp root-protection
其中,
interface-type
和interface-number
是端口的类型和编号。启用根保护功能后,如果端口收到更优的 BPDU 报文,端口将进入阻塞状态,从而防止其他设备成为根桥。 - 配置环路保护功能(可选):
-
plaintext
复制
[Huawei] interface interface-type interface-number [Huawei-interface] stp loop-protection
其中,
interface-type
和interface-number
是端口的类型和编号。启用环路保护功能后,如果端口在一段时间内没有收到 BPDU 报文,端口将进入阻塞状态,从而防止网络环路的产生。 - 查看 RSTP 状态
-
plaintext
复制
[Huawei] display stp brief
该命令可以查看交换机的 RSTP 状态,包括交换机的角色、端口的角色和状态等信息。
1.STP生成树生成过程
1.在刚开始时,每一个交换机都会把自己当做根桥然后发送BPDU报文,通过相互对比各自的BID直至选出一台BID最小的作为桥根
2.在完成桥根的选举后,交换机会通过对比各自的BID来选举根接口,并且这个根接口一定是唯一且最优的,交换机会比对自己的BID(自身优先级 默认32768 必须是4096的倍数) ,或者PID(交换接口 G0/0/0等),RPC(路径开销:接口带宽越大,路径开销越小)
3.被“淘汰”下来的接口将会作为堵塞端口,既不学习也不转发BPDU仅仅只处理
4.在完成生成树之后,每隔两秒发送bpdu报文,交换机会等待20秒的时间。若未收到,则强制认为根端口损坏或者拓扑图变更,则重新进行选举
5.路径开销对应如下
接口带宽 路径开销(IEEE802.1t 标准)
10bit/s-2000000
100bit/s-200000
1000bit/s-20000
10Gbit/s-2000
STP报文类型
STP的BPDU报文结构分为两种 STP的BPDU(0x00)和TCN BPDU(0x80)
BPDU报文的作用 1.选举桥根和端口类型 2.通过定期发送BPDU报文维护端口状态 3.用于确认接收到的TCN BPDU报文 4.选举端口以及桥根
报文内容 1.message age BPDU 存活时间 根桥为0,每经过一台交换机增加
2.max age BPDU 老化时间 默认20秒 最大40秒
3.如果max age <24s 每经过一台交换机加1 2. max age 24~39之间 则加2 3.max age =40 则加3
如果message age =max age 则认为该bpdu 失效
4.hello time BPDU发送间隔 默认两秒
5.forwrding delay 等待延迟 默认15秒
2.TCN BPDU STP BPDU用于选举根桥 根端口 TCN 则恰恰相反,告知交换机 拓扑图变化或者根桥故障需要重新选举根桥 此处有内容条填充
1.交换机感知到网络拓扑图发生变化之后 会不间断的发送 TCN BPDU 报文
2.其他交换机转发的TCN 报文
STP 中TCN工作原理--
1.首先是清空该接口的MAC地址表 ,将Mac地址表300 秒的老化时间改为15秒
2.网络拓扑发生变化时,由变更点向全网发送TCN报文 变更交换机所有非边缘交换机启动
TC while timer(两倍于hello的两秒时间)在此时间范围内清空所有端口学习到的Mac地址表
3.同时 非边缘端口向外发送RSTBPDU 由TC置换,当TC while timer时间结束,则停止转发RST BPDU
4.当其他交换设备收到TC位置的BPDU之后 也为非边缘接口启动TC while timer
重点!!!判断拓扑变化的标准 只要当非边缘端口迁移到Forwarding状态,就会认为拓扑图变化