HCIA速通-网络工程师 -3-生成树协议

特辑专属BGM-Hacknet原声集

生成树

STP生成树协议

根桥:在以太网络中,以某台交换机的某个端口为根的生成。此端口为

此外其他交换机为非根

  • 消除环路:通过阻断冗余链路来消除网络中可能存在的环路。

  • 链路备份:当活动路径发生故障时, 激活备份链路, 及时恢复网络连通性。

  • 选举根端口

  • 阻塞非根端口

  • 非根交换机在选举端口时分别根据该端口的根路径开销、对端BID、对端PID和本端PID选择

  • 一个周期内的状态变迁时间为15秒

根桥选举过程

  1. 首先对比桥优先级,桥优先级最高(数值最小的)的设备会被选举为根桥。
  2. 如果桥优先级相同,则会比较MAC地址,MAC地址越小则越优先。

根端口选举

  • 非根交换机在选举根端口时依据的先后顺序为该端口的根路径开销、对端BID(Bridge ID)、对端PID(Port ID)和本端PID。

STP端口角色

STP中定义了三种端口角色:指定端口,根端口和预备端口。

指定端口(Design):是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口。一般情况下,根桥的每个端口总是指定端口。

根端口(Root):是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。

预备端口(Alternate):如果一个端口既不是指定端口也不是根端口,则此端口为预备端口。预备端口将被阻塞。

Tips:一台交换机有且仅有一个根端口(根桥除外),一条链路有且仅有一个指定端口。

STP端口状态

Blocking(阻塞状态):二层端口为非指定端口,也不会参与数据帧的转发。

Listening(侦听状态):生成树会根据交换机所接收到的BPDU而判断出了这个端口应该参与数据帧的转发。

Learning (学习状态):这个二层端口准备参与数据帧的转发,并开始填写MAC表。在默认情况下,端口会在这种状态下停留15秒钟时间。

Forwarding(转发状态):这个二层端口已经成为了活动拓扑的一个组成部分,它会转发数据帧,并同时收发BPDU。

Disabled(禁用状态):这个二层端口不会参与生成树,也不会转发数据帧。

Bridge Protocol Data Unit

  • BPDU保护桥ID、路径开销、端口ID、计时器等参数
  • stp稳定状态下只由根端口发送bpdu
  • 在初始状态下个交换机端口都发送bpdu信息以决定端口状态来选择指定端口

标准生成树的bpdu参数

message age&&max age: 20 sec

hello time :2 sec

STP拓扑变化处理过程

  1. T点接口发生变更后,下游设备会不间断地向上游设备发送TCN BPDU报文。
  2. 上游设备收到下游设备发来的TCN BPDU报文后,只有指定端口处理TCN BPDU报文。其它端口也有可能收到TCN BPDU报文,但不会处理。
  3. 上游设备会把配置BPDU报文中的Flags的TCA位设置1,然后发送给下游设备,告知下游设备停止发送TCN BPDU报文。
  4. 上游设备复制一份TCN BPDU报文,向根桥方向发送。
  5. 重复步骤1、2、3、4,直到根桥收到TCN BPDU报文。
  6. 根桥把配置BPDU报文中的Flags的TC位置1后发送,通知下游设备直接删除桥MAC地址表项。

STP配置

1
2
3
4
5
[Huawei]stp mode ?
mstp Multiple Spanning Tree Protocol (MSTP) mode
rstp Rapid Spanning Tree Protocol (RSTP) mode
stp Spanning Tree Protocol (STP) mode
[Huawei]stp mode stp

配置交换机优先级

1
[Huawei]stp priority 4096

配置交换机路径开销

1
2
3
4
5
6
[Huawei]stp pathcost-standard ?
dot1d-1998 IEEE 802.1D-1998
dot1t IEEE 802.1T
legacy Legacy
[Huawei]interface GigabitEthernet 0/0/0
[Huawei-GigabitEthernet0/0/0]stp cost 2000

验证

1
2
[Huawei]display stp


RSTP快速生成树

  • 网络拓扑快速收敛

RSTP相对于标准STP增加了Backup端口和边缘端口

  • Backup:作为指定端口的备份端口,提供另外一条从根桥到非根桥的备份链路
  • 边缘端口Edge port:不接收处理BPDU、不参与RSTP运算
    • 边缘端口在端口UP之后立即进入转发状态;不需等待2倍的转发延时就可转发流量
    • P/A机制中,边缘端口不阻塞,可持续进行流量转发
    • 边缘端口UP时,不触发TC机制

RSTP端口状态

RST BPDU

  • STP的配置BPDU中的Flag字段的中间6位在RSTP中的到应用
  • 非根桥设备无论是否收到根桥发送的配置BPDU,都会按照Hello Timer规定的时间间隔发送配置BPDU

收敛过程

  • 每一台交换机启动RSTP后,都认为自己是”根桥”,并且发送RST BPDU。所以端口都为指定端口,处于Discarding状态

  • SWB收到了更优的RST BPDU,于是停止发送RST BPDU,并开始执行同步

  • 阻塞所以非边缘端口后,SWB会发送一个Agreement位置的RST BPDU

  • P/A进程向下游继续传递,SWB和SWC会继续进行收敛

RSTP拓扑变化处理

  • 其他交换设备接收到rst bpdu后,清空所有其他端口学习到的mac地址,除了收到rst bpdu的端口
  • 非根桥在3个hello时间内未收到RST BPDU即认为根桥出现故障,随即进行重新选举

STP兼容

  • 运行rstp的交换设备在某个端口接收到运行stp的设备发出的bdpu,会把该端口转到stp模式
  • 等待2个hello时间

RSTP配置

1
[Huawei]stp mode rstp 

验证

1
[Huawei]display stp 

边缘端口配置

1
[Huawei-GigabitEthernet0/0/0]stp edged-port enable
  • 边缘端口可以由disabled直接转到forwarding状态,不经历时延

全局配置边缘端口

!!!

1
stp	edged-port default

根保护

1
[Huawei-GigabitEthernet0/0/0]stp root-protection
  • 根保护确保了根桥的指定端口不会因为一些网络问题而改变端口角色

BPDU保护

假设边缘端口意外收到BPDU,则端口变成普通端口,会参与STP计算,这时会触发TC,重新刷新mac地址表,造成网络震荡,我们就可以进行BPDU保护配置

1
[huawei]stp bdpu-protection
  • 配置bdpu保护后,如果边缘端口收到bdpu报文,会立即关闭,并通知网管系统,被关闭的端口只能通过手动恢复
意外shutdown的恢复
1
error-down auto-recovery cause bpdu-protection interval 30    //30秒自动恢复
1
2
3
//手动恢复
interface g0/0/0
undo shutdown

环路保护

1
[Huawei-GigabitEthernet0/0/0]stp loop-protection
  • 根端口如果长时间收不到来自上游的bdpu,则进入discarding状态,避免在网络中形成环路