网络应用技术

生成树协议原理

2017-08-20  本文已影响0人  mik1th0n

本文首次发布于 Mlin Blog简书CSDN,作者 @木林(Mlin) ,转载请保留原文链接。

前言

正文

一、STP

为了提高网络可靠性,交换网络中通常会使用一些冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。

1 STP出现背景

1.1 广播风暴

1.2 MAC地址表震荡

2 STP的基本概念

2.1 一般概念

2.2 重要概念

2.3 配置BPDU

2.4 STP的作用

3 STP报文格式

字段内容 含义
Protocol Identifier 协议ID=“0”
Protocol Version Identifier 协议版本标识符,STP为0,RSTP为2,MSTP为3。
BPDU Type BPDU类型,MSTP为0x02。 0x00:STP的Configuration BPDU 0x80:STP的TCN BPDU(Topology Change Notification BPDU) 0x02:RST BPDU(Rapid Spanning-Tree BPDU)或者MST BPDU(Multiple Spanning-Tree BPDU)
Flags 标识位,对于“标记域”(Flags),第一个bit(左边、高位bit)表示“TCA(拓扑改变响应)”,最后一个bit(右边、低位bit)表示“TC(拓扑改变)”。
Root Identifier 根桥BID,网桥ID都是8个字节——前两个字节是网桥优先级,后6个字节是网桥MAC地址。
Root Path Cost 根路径开销,本端口累计到根桥的开销。
Bridge Identifier 发送者BID,本交换机的BID。
Port Identifier 发送端口PID,发送该BPDU的端口ID。
Message Age 该BPDU的消息年龄。
Max Age 消息老化年龄。
Hello Time 发送两个相邻BPDU间的时间间隔。
Forward Delay 控制Listening和Learning状态的持续时间。

4 STP拓扑计算

4.1 STP操作过程

  1. 选举一个根桥。
  2. 每个非根交换机选举一个根端口。
  3. 每个网段选举一个指定端口。
  4. 阻塞非根、非指定端口。

4.2 选举根桥

4.3 最优配置BPDU

为了计算生成树,交换机之间需要交换相关的信息和参数,这些信息和参数被封装在BPDU(Bridge Protocol Data Unit)中。

4.4 选举根端口和指定端口

4.4.1 根端口选举
4.4.2 指定端口选举

4.7 计时器

STP协议中包含一些重要的时间参数,这里举例说明如下:

  1. Hello Time是指运行STP协议的设备发送配置BPDU的时间间隔,用于检测链路是否存在故障。交换机每隔Hello Time时间会向周围的交换机发送配置BPDU报文,以确认链路是否存在故障。当网络拓扑稳定后,该值只有在根桥上修改才有效。
  2. Message Age是从根桥发送到当前交换机接收到BPDU的总时间,包括传输延时等。如果配置BPDU是根桥发出的,则Message Age为0。实际实现中,配置BPDU报文每经过一个交换机,Message Age增加1。
  3. Max Age是指BPDU报文的老化时间,可在根桥上通过命令人为改动这个值。Max Age通过配置BPDU报文的传递,可以保证Max Age在整网中一致。非根桥设备收到配置BPDU报文后,会将报文中的Message Age和Max Age进行比较:如果Message Age小于等于Max Age,则该非根桥设备会继续转发配置BPDU报文。如果Message Age大于Max Age,则该配置BPDU报文将被老化掉。该非根桥设备将直接丢弃该配置BPDU,并认为是网络直径过大,导致了根桥连接失败。

5 STP端口状态

5.1 标准端口状态

5.2 华为端口状态

5.3 端口状态机

6 STP拓扑变化

6.1 TCN消息

6.1.1 TCN BPDU
6.1.2 TCN消息处理

6.2 收敛时长

STP时长最长可达30秒或者50秒

链路失效或者链路增加均需要经历30秒,才能恢复故障。

6.3 根桥故障

6.4 直连链路故障

6.5 非直连链路故障

6.6 拓扑改变导致MAC地址表错误

6.7 拓扑改变导致MAC地址表变化

  1. SWC感知到网络拓扑发生变化后,会不间断地向SWB发送TCN BPDU报文。
  2. SWB收到SWC发来的TCN BPDU报文后,会把配置BPDU报文中的Flags的TCA位设置1,然后发送给SWC,告知SWC停止发送TCN BPDU报文。
  3. SWB向根桥转发TCN BPDU报文。
  4. SWA把配置BPDU报文中的Flags的TC位设置为1后发送,通知下游设备把MAC地址表项的老化时间由默认的300秒修改为Forward Delay的时间(默认为15秒)。
  5. 最多等待15秒之后,SWB中的错误MAC地址表项会被自动清除。此后,SWB就能重新开始MAC表项的学习及转发操作。

二、RSTP

1 STP的不足

1.1 设备运行STP初始化场景

1.2 交换机有BP端口,RP端口down掉场景

1.3 交换机无BP端口,RP端口down掉场景

1.4 运行STP的交换机连接用户终端的场景

1.5 STP的拓扑变更机制

1.6 端口角色

1.7 端口状态

2 RSTP的基本概念

2.1 RSTP与STP的区别

2.2 端口角色

2.3 端口状态

2.4 BPDU中的Flag

image.png

2.5 配置BPDU的处理

BPDU处理发生的变化

3 RSTP快速收敛

3.1 基本方法

3.2 边缘端口机制

3.3 根端口快速门切换机制

3.4 P/A机制

3.4.1 P/A机制介绍
3.4.2 P/A机制传递过程

4 RSTP拓扑变化

5 RSTP保护功能

5.1 BPDU保护

5.2 根保护

5.3 TC-BPDU泛洪保护

6 RSTP与STP互操作

当一个网段里既有运行STP的交换设备又有运行RSTP的交换设备,STP交换设备会忽略RST BPDU,而运行RSTP的交换设备在某端口上接收到运行STP的交换设备发出的配置BPDU,在两个Hello Time时间之后,便把自己的端口转换到STP工作模式,发送配置BPDU。这样,就实现了互操作。

三、MSTP

  • RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但由于局域网内所有的VLAN共享一棵生成树,因此被阻塞后链路将不承载任何流量,无法在VLAN间实现数据流量的负载均衡,从而造成带宽浪费。
  • 为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1s标准定义了MSTP。MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。

1 单生成树的弊端

1.1 部分VLAN路径不通

1.2 无法实现流量分担

1.3 次优二层路径

2 MSTP基本概念

2.1 MSTP域

MSTP域,具有相同元素网桥的集合

2.2 CST/IST/CIST/总根/ 主桥

2.3 MSTI/MSTI域根

2.4 MSTP端口角色

由于网桥在不同MSTI上可以具有不同的角色,所以网桥端口在MSTI上可能有不同的角色。唯一例外的是Master端口,该端口在所有MSTI上的角色都相同,都为Master端口。

3 MSTP报文结构

4 MSTP拓扑计算

4.1 比较原则

如果端口接收到的BPDU内包含的配置消息优于端口上保存的配置消息,则端口上原来保存的配置消息被新收到的配置消息替代。端口同时更新交换设备保存的全局配置消息。反之,新收到的BPDU被丢弃。

4.2 CST计算

4.3 IST计算

5 MSTP与RSTP交互

6 MSTP快速收敛

缺省情况下,华为使用增强的快速迁移机制。如果华为设备与其他厂商的设备进行互通,而其他厂商的设备P/A机制使用普通的快速迁移机制,此时,可在华为设备上通过命令stp no-agreement-check设置P/A机制为普通的快速迁移机制,从而实现华为设备和其他厂商的设备进行互通。

7、生成树协议故障诊断

  1. MSTP拓扑变化导致业务中断
  1. 当某个生成树实例的拓扑发生改变时,和它建立映射关系的VLAN的转发路径也将发生变化。此时,交换机的ARP表中与这些VLAN相关的表项也需要更新。STP的收敛方式不同,交换机对ARP表项的处理方式不同:

结语

上一篇 下一篇

猜你喜欢

热点阅读