STP

PPT

09 UPWEN-PPT-ruijie-生成树协议原理与应用.pdf

STP 实验

STP1

STP 选举

STP 选举【越小越好】
1.选举根桥
比较桥 id
桥 id=优先级 +MAC
先比较优先级,一样再比 MAC 地址

2.选举根端口
【所有的非根交换机,选出一个端口作为根端口】
1.比较每台设备上每个端口到达根桥的开销
2.比较接口对端的桥 id
3.比较对端设备的端口 id
【端口 id=优先级 + 端口号】

3.选举指定端口
每条链路上都有一个端口为指定端口,根桥上的端口 都为指定端口。
1.比较每台设备到达根桥的开销
2.比较自身的桥 id
3.比较自己的端口 ID

4.剩下的将成为拥塞端口


无标题

1.R D

2.RP 2 10 5

3.DP 7 8 4 9

4.拥塞 1 3


1.R C

2.RP 1 5 7

3.DP

4.拥塞


屏幕截图 2024-07-09 114028

  1. R 根桥:SW1
  2. RP 根端口:SW3 0/23----SW4 0/23----SW5 0/23----SW2 0/48-----SW6 0/2
  3. DP 指定端口:
  4. 阻塞:

STP 端口状态

STP 生成树收敛完成的过程中,接口会出现的五种状态,分别是:Disable、Blocking、ListeningLearning 和 Forwarding

整个收敛过程大概需要 30s+

==被拥塞的接口会监听,但是不会发送 BPDU==

被拥塞的接口长时间接收不到 BPDU,会切换到 Listening 状态

  • Disable 状态:此时交换机端口没有激活,丢弃所有收到的帧,不学习 mac 地址,不接收 BPDU 报文 Blockinq 状态:监听 BPDU,但是不转发 BPDU,丢弃所有收到的数据帧,不学习 mac 地址也不产生任何 MAC 地址表项;
  • Listening 状态:==持续 15s==,==接受并发送 BPDU,不转发用户数据==,不产生该端口的 MAC 地址表项,==在该状态下完成 STP 的收敛==,此状态下交换机能决定根桥,并可以选择根端口、指定端口和非指定端口;(进行运算)
  • Learning 状态:持续 15s,==接受并发送 BPDU,不转发用户数据==,==完成部分端口的 MAC 地址表项==,目的是为了减少当用户开始转发数据时,带来的大规模广播包泛洪;
  • Forwarding 状态:接受并发送 BPDU,==转发用户数据==。

屏幕截图 2024-07-09 140947

TCN-BPDU

==IEEE 802.1D 协议规定,TCN-BPDU(下文简称 TC 报文)的产生条件有两个:==

  • 网桥上有端口转变为 Forwarding 状态,且该网桥至少包含一个指定端口;
  • 网桥上有端口从 Forwarding 状态或 Learning 状态转变为 Blocking 状态;

若上述两个条件之一满足,就说明网络拓扑发生了变化,网桥就需要使用 TC 报文将拓扑发生变化的情况通知根桥。

==在日常维护中,TC 报文的产生通常有以下几种情况:==

  • 设备或链路出现故障,引发 STP 重新计算,产生 TC 报文;
  • STP 配置参数更改,引发 STP 重新计算,产生 TC 报文;
  • 连接终端的端口使能了 STP,但没有配置为边缘端口,当终端发生重启等情况导致该端口链路状态变化时,该端口产生 TC 报文;
  • 来自用户设备的攻击 TC 报文也可能传入其所接入的二层网络。

TCN-BPDU 交互实例

TCN---TCA 确认

屏幕截图 2024-07-09 141648

  1. 网桥感知到拓扑变化,产生 TCN-BPDU,从根端口发出,通知根桥;
  2. 如果上游网桥不是根桥,则上游网桥会将下一个要发送的配置 BPDU 中的 TCA 位置为 1,作为对 TCN 的确认,发送给下游网桥;
  3. 上游网桥从根端口发送 TCN-BPDU,通知根桥;
  4. 重复第 2、3 步,直到根桥收到 TCN-BPDU
  5. 根桥收到 TCN-BPDU 后,会将下一个要发送的配置 BPDU 的 TCA 位置为 1 作为对 TCN 的确认。同时根桥会将自己的 MAC 地址表老化时间由 300 秒修改为 Forward Delay 即 15 秒,同时根桥还会发出 TCN 位置 1 的配置 BPDU,用来通知网络中所有网桥网络拓扑发生了变化。根桥在之后的 Max Age+Forward Delay 时间内,将发送 TCN 置为 1 的配置 BPDU,当网桥收到该配置 BPDU 后,会将自己 MAC 地址老化时间由 300s 缩短为 Forward Delay 即 15 秒。

STP 重新收敛过程

直连故障切换也要 30s

屏幕截图 2024-07-09 142227

STP 高级特性

Port Fast

交换机的某端口如果接入了用户终端,那么常规配置下,==该端口需要经过 2 个 Forwarding Delay 才能够进入转发状态==(Listening 和 Learning,共计 30 秒),很明显这是==不合理==的;==可以将接入用户终端的接口配置为 Port Fast==,这样该接口可以==跳过 30 秒==的等待时间,直接进入转发状态;==如果设置了 Port Fast 的端口还收到了 BPDU,则该端口会经过 2 个 Forwarding Delay 后进入转发状态;(指连接上交换机,因为 PC 不会发送 BPDU),此时 PORT FAST 会失效==

下图表示了一个设备的哪些端口可以配置为 Port Fast:

屏幕截图 2024-07-09 143055

Ruijie(config)#interface gigabitEthernet 0/1
Ruijie(config-if-GigabitEthernet 0/1)#spanning-tree portfast

BPDU Guard

BPDU Guard 的意义就是一个不该接收 BPDU 的端口(比如 portfast 端口)一旦收到 BPDU 报文,那么该功能将会立即关闭该端口,并将端口状态置为 error-disabled 状态,该模式下,接口可以发出 BPDU;
↑ 防止恶意攻击

BPDU Guard 的两种配置模式:

  • ==全局==模式启用:全局模式启用该功能之后,==会在所有配置了 portfast 的接口生效==。如果某个接口打开了 Port Fast,而该接口收到了 BPDU,那么该端口就会进入 Error-disabled 状态,表示网络中可能被非法用户增加了一台网络设备,使网络拓朴发生改变。

    • 配置命令:
    • Ruijie(config)#spanning-tree portfast bpduguard default
  • ==接口==模式启用:打开单个接口的 BPDU Guard(==与该端口是否配置 portfast 无关==)。在这个情况下如果该端口收到了 BPDU,就会进入 Error-disabled 状态

    • 配置命令:
    • Ruijie(config)#interface gigabitEthernet 0/1 Ruijie(config-if-GigabitEthernet 0/1)#spanning-tree bpduguard enable
  • 如何关闭(Error-disabled 如何恢复)

    • 接口模式下,shutdown 然后 no shutdown 	←相当于重启
      全局模式下,errdisable recovery interval 300s	←设置300s后恢复,如果300s内收到BPDU就重复300s
      

BPDU Filter

BPDU Filter 可以过滤掉接口上收到或发出的 BPDU;

BPDU Guard 的两种配置模式:

  • ==全局模式==启用:打开全局的 BPDU Filter 功能,在这种状态下,开启 Port Fast 的接口将既不收 BPDU,也不发出 BPDU,连到 portfast 端口的主机就收不到 BPDU。而如果开启 portfast 的端口收到了 BPDU,那么该端的 portfast 属性将失效,同时 BPDU Filter 也自动失效。

    • 命令:Ruijie(config)#spanning-tree portfast bpdufilter default
  • ==接口模式==启用:在接口模式下,开启单个接口的 BPDU Filter(与该端口 是否打开 Port Fast 无关)。在这个情况下该接口既不收 BPDU,也不发 BPDU,相当于关闭了该接口的 STP 功能,接口直接进入转发状态。

    • 命令:
      Ruijie(config)#interface gigabitEthernet 0/1
    • Ruijie(config-if-GigabitEthernet 0/1)#spanning-tree bpdufilter enable

Tc-protection

TC-BPDU 报文是指携带 TC 标志的 BPDU 报文,交换机收到这类报文表示网络拓扑发生了变化,会进行 MAC 地址表的删除操作。对三层交换机,还会引发快转模块的重新打通操作,并改变 ARP 表项的端口状态。

为避免交换机受到伪造 TC-BPDU 报文的恶意攻击时频繁进行以上操作,设备 CPU 负荷过重,影响网络稳定,可以使用 TC-protection 功能进行保护:

  • 在打开相应功能时,收到 TC-BPDU 报文后的一定时间内(一般为 4 秒),只进行一次删除操作,同时监控该时间段内是否收到 TC-BPDU 报文。
  • 如果在该时间段内收到了 TC-BPDU 报文,则设备在该时间超时后再进行一次删除操作。这样可以避免频繁的删除 MAC 地址表项和 ARP 表项,保护设备 CPU 资源。

配置命令:
Ruijie(config)#spanning-tree tc-protection


  1. STP

    PPT

    09 UPWEN-PPT-ruijie-生成树协议原理与应用.pdf

    STP 实验

    STP1

    STP 选举

    STP 选举【越小越好】
    1.选举根桥
    比较桥 id
    桥 id=优先级 +MAC
    先比较优先级,一样再比 MAC 地址

    2.选举根端口
    【所有的非根交换机,选出一个端口作为根端口】
    1.比较每台设备上每个端口到达根桥的开销
    2.比较接口对端的桥 id
    3.比较对端设备的端口 id
    【端口 id=优先级 + 端口号】

    3.选举指定端口
    每条链路上都有一个端口为指定端口,根桥上的端口 都为指定端口。
    1.比较每台设备到达根桥的开销
    2.比较自身的桥 id
    3.比较自己的端口 ID

    4.剩下的将成为拥塞端口


    无标题

    1.R D

    2.RP 2 10 5

    3.DP 7 8 4 9

    4.拥塞 1 3


    1.R C

    2.RP 1 5 7

    3.DP

    4.拥塞


    屏幕截图 2024-07-09 114028

    1. R 根桥:SW1
    2. RP 根端口:SW3 0/23----SW4 0/23----SW5 0/23----SW2 0/48-----SW6 0/2
    3. DP 指定端口:
    4. 阻塞:

    STP 端口状态

    STP 生成树收敛完成的过程中,接口会出现的五种状态,分别是:Disable、Blocking、ListeningLearning 和 Forwarding

    整个收敛过程大概需要 30s+

    ==被拥塞的接口会监听,但是不会发送 BPDU==

    被拥塞的接口长时间接收不到 BPDU,会切换到 Listening 状态

    • Disable 状态:此时交换机端口没有激活,丢弃所有收到的帧,不学习 mac 地址,不接收 BPDU 报文 Blockinq 状态:监听 BPDU,但是不转发 BPDU,丢弃所有收到的数据帧,不学习 mac 地址也不产生任何 MAC 地址表项;
    • Listening 状态:==持续 15s==,==接受并发送 BPDU,不转发用户数据==,不产生该端口的 MAC 地址表项,==在该状态下完成 STP 的收敛==,此状态下交换机能决定根桥,并可以选择根端口、指定端口和非指定端口;(进行运算)
    • Learning 状态:持续 15s,==接受并发送 BPDU,不转发用户数据==,==完成部分端口的 MAC 地址表项==,目的是为了减少当用户开始转发数据时,带来的大规模广播包泛洪;
    • Forwarding 状态:接受并发送 BPDU,==转发用户数据==。

    屏幕截图 2024-07-09 140947

    TCN-BPDU

    ==IEEE 802.1D 协议规定,TCN-BPDU(下文简称 TC 报文)的产生条件有两个:==

    • 网桥上有端口转变为 Forwarding 状态,且该网桥至少包含一个指定端口;
    • 网桥上有端口从 Forwarding 状态或 Learning 状态转变为 Blocking 状态;

    若上述两个条件之一满足,就说明网络拓扑发生了变化,网桥就需要使用 TC 报文将拓扑发生变化的情况通知根桥。

    ==在日常维护中,TC 报文的产生通常有以下几种情况:==

    • 设备或链路出现故障,引发 STP 重新计算,产生 TC 报文;
    • STP 配置参数更改,引发 STP 重新计算,产生 TC 报文;
    • 连接终端的端口使能了 STP,但没有配置为边缘端口,当终端发生重启等情况导致该端口链路状态变化时,该端口产生 TC 报文;
    • 来自用户设备的攻击 TC 报文也可能传入其所接入的二层网络。

    TCN-BPDU 交互实例

    TCN---TCA 确认

    屏幕截图 2024-07-09 141648

    1. 网桥感知到拓扑变化,产生 TCN-BPDU,从根端口发出,通知根桥;
    2. 如果上游网桥不是根桥,则上游网桥会将下一个要发送的配置 BPDU 中的 TCA 位置为 1,作为对 TCN 的确认,发送给下游网桥;
    3. 上游网桥从根端口发送 TCN-BPDU,通知根桥;
    4. 重复第 2、3 步,直到根桥收到 TCN-BPDU
    5. 根桥收到 TCN-BPDU 后,会将下一个要发送的配置 BPDU 的 TCA 位置为 1 作为对 TCN 的确认。同时根桥会将自己的 MAC 地址表老化时间由 300 秒修改为 Forward Delay 即 15 秒,同时根桥还会发出 TCN 位置 1 的配置 BPDU,用来通知网络中所有网桥网络拓扑发生了变化。根桥在之后的 Max Age+Forward Delay 时间内,将发送 TCN 置为 1 的配置 BPDU,当网桥收到该配置 BPDU 后,会将自己 MAC 地址老化时间由 300s 缩短为 Forward Delay 即 15 秒。

    STP 重新收敛过程

    直连故障切换也要 30s

    屏幕截图 2024-07-09 142227

    STP 高级特性

    Port Fast

    交换机的某端口如果接入了用户终端,那么常规配置下,==该端口需要经过 2 个 Forwarding Delay 才能够进入转发状态==(Listening 和 Learning,共计 30 秒),很明显这是==不合理==的;==可以将接入用户终端的接口配置为 Port Fast==,这样该接口可以==跳过 30 秒==的等待时间,直接进入转发状态;==如果设置了 Port Fast 的端口还收到了 BPDU,则该端口会经过 2 个 Forwarding Delay 后进入转发状态;(指连接上交换机,因为 PC 不会发送 BPDU),此时 PORT FAST 会失效==

    下图表示了一个设备的哪些端口可以配置为 Port Fast:

    屏幕截图 2024-07-09 143055

    Ruijie(config)#interface gigabitEthernet 0/1
    Ruijie(config-if-GigabitEthernet 0/1)#spanning-tree portfast
    

    BPDU Guard

    BPDU Guard 的意义就是一个不该接收 BPDU 的端口(比如 portfast 端口)一旦收到 BPDU 报文,那么该功能将会立即关闭该端口,并将端口状态置为 error-disabled 状态,该模式下,接口可以发出 BPDU;
    ↑ 防止恶意攻击

    BPDU Guard 的两种配置模式:

    • ==全局==模式启用:全局模式启用该功能之后,==会在所有配置了 portfast 的接口生效==。如果某个接口打开了 Port Fast,而该接口收到了 BPDU,那么该端口就会进入 Error-disabled 状态,表示网络中可能被非法用户增加了一台网络设备,使网络拓朴发生改变。

      • 配置命令:
      • Ruijie(config)#spanning-tree portfast bpduguard default
    • ==接口==模式启用:打开单个接口的 BPDU Guard(==与该端口是否配置 portfast 无关==)。在这个情况下如果该端口收到了 BPDU,就会进入 Error-disabled 状态

      • 配置命令:
      • Ruijie(config)#interface gigabitEthernet 0/1 Ruijie(config-if-GigabitEthernet 0/1)#spanning-tree bpduguard enable
    • 如何关闭(Error-disabled 如何恢复)

      • 接口模式下,shutdown 然后 no shutdown 	←相当于重启
        全局模式下,errdisable recovery interval 300s	←设置300s后恢复,如果300s内收到BPDU就重复300s
        

    BPDU Filter

    BPDU Filter 可以过滤掉接口上收到或发出的 BPDU;

    BPDU Guard 的两种配置模式:

    • ==全局模式==启用:打开全局的 BPDU Filter 功能,在这种状态下,开启 Port Fast 的接口将既不收 BPDU,也不发出 BPDU,连到 portfast 端口的主机就收不到 BPDU。而如果开启 portfast 的端口收到了 BPDU,那么该端的 portfast 属性将失效,同时 BPDU Filter 也自动失效。

      • 命令:Ruijie(config)#spanning-tree portfast bpdufilter default
    • ==接口模式==启用:在接口模式下,开启单个接口的 BPDU Filter(与该端口 是否打开 Port Fast 无关)。在这个情况下该接口既不收 BPDU,也不发 BPDU,相当于关闭了该接口的 STP 功能,接口直接进入转发状态。

      • 命令:
        Ruijie(config)#interface gigabitEthernet 0/1
      • Ruijie(config-if-GigabitEthernet 0/1)#spanning-tree bpdufilter enable

    Tc-protection

    TC-BPDU 报文是指携带 TC 标志的 BPDU 报文,交换机收到这类报文表示网络拓扑发生了变化,会进行 MAC 地址表的删除操作。对三层交换机,还会引发快转模块的重新打通操作,并改变 ARP 表项的端口状态。

    为避免交换机受到伪造 TC-BPDU 报文的恶意攻击时频繁进行以上操作,设备 CPU 负荷过重,影响网络稳定,可以使用 TC-protection 功能进行保护:

    • 在打开相应功能时,收到 TC-BPDU 报文后的一定时间内(一般为 4 秒),只进行一次删除操作,同时监控该时间段内是否收到 TC-BPDU 报文。
    • 如果在该时间段内收到了 TC-BPDU 报文,则设备在该时间超时后再进行一次删除操作。这样可以避免频繁的删除 MAC 地址表项和 ARP 表项,保护设备 CPU 资源。

    配置命令:
    Ruijie(config)#spanning-tree tc-protection

  • 网络
    138 引用 • 177 回帖 • 4 关注

相关帖子

回帖
STP

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...