Loading

Loading

生成树协议STP/RSTP/MSTP

 

1. STP(802.1D)

环路危害

  • 广播风暴

  • MAC地址表震荡

STP主要作用

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

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

桥:交换机

桥的MAC地址:默认为端口编号最小的那个端口的MAC地址

桥 ID(BID):由两部分组成,前 2 个字节是桥的优先级默认32768,后 6 个字节为这个桥的MAC地址

端口 ID (PID):优先级+端口号,优先级默认128

BPDU:网桥协议数据单元

root-id :表示根交换机是谁,使用最优的BID表示

cost :表示发送该BPDU协议的交换机到达根交换的距离

BID :表示发送该BPDU的交换机的名字

Port-id :表示发送方交换机是在那个端口发送出来的,优先级+端口号,优先级默认128

1.1 STP树的生成过程

  • 选举根桥(Root)

    不断交换STP协议帧,这些协议帧的载荷数据为 BPDU(网桥协议数据单元),STP交换机初始启动均认为自己是根桥,并在发送给别的交换机的 BPDU 中宣告自己是根桥,接收到 BPDU 后比较 BID(取小) , 选举出一台 BID 最小的交换机作为根桥。

    当现有根桥产生故障时,非根桥之间会交互信息并重新选举根桥

  • 确定根端口(RP),每个非根交换机选举一个根端口(负责接收监听根桥的 BPDU)

    根端口是非根交换机去往根桥路径最优的端口,每个交换机最多只有一个根端口,根桥上没有根端口。

    端口开销和端口的带宽有关,带宽越大,开销越小,STP认为接受数据没有开销。

    累计根路径开销 RPC(Root Path Cost) 最小的端口为根端口 ,根据收到的 BPDU 报文再加上该端口本身的端口路径开销,即为累计根路径开销。

    RPC 相同时,选择收到发送者(对端)BID 最小的端口为根端口,如果两个端口连接到同一台交换机上(即 BID 相同)则选择收到发送者(对端)PID最小的端口为根端口。

  • 确定指定端口(DP,转发 BPDU的端口),每个网段选举一个指定端口(根端口的对端一定是指定端口)

    指定端口是交换机向所连网段转发配置 BPDU 的端口(抑制其他端口转发),每个交换网段有且只有一个指定端口,根桥的所有端口都是指定端口。

    同根端口选举,首先比较 RPC ,相同即比较 BID(本端),再是 PID(本端) 。

  • 阻塞备用端口(AP/BP,预备端口),阻塞非根、非指定端口

 

1.2 端口状态

  • Forwarding:转发状态

    端口既可转发用户流量也可转发BPDU报 文,只有根端口或指定端口才能进入Forwarding状态。

  • Learning:学习状态

    在该状态下可以发送和接收BPDU包。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning 状态是为了防止临时环路。该状态会维持一个forward delay(15S)的时间。超时后会过渡到forwarding状态。

  • Listening:侦听状态

    生成树选举的开始,端口可以转发BPDU报文,但不能转发用户流量,用于选举设备角色和端口角色。该状态会维持一个forward delay(15S)的时间。超时后会过渡到learning状态。

  • Blocking:阻塞状态

    端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。

  • Disabled:禁用状态

    端口既不处理和转发BPDU报文,也不转发用户流量。端口shutdown,端口UP后会从disable过渡到listening状态。

STP端口状态端口状态对应的行为
Disabled 不转发用户流量,不学习MAC地址
Blocking
Listening
Learning 不转发用户流量,学习MAC地址
Forwarding 转发用户流量,学习MAC地址

BPDU的作用

  • 用于STP的选举(配置BPDU)

  • 维护STP状态

  • 通告拓扑改变,刷新MAC地址表(TCN BPDU)

1.3 STP缺陷

  • 收敛太慢,一般需要30s~50s的时间,才能恢复连通性

  • 端口角色偏少,如根端口DOWN掉后,需要从其他端口中重新选举根端口,没有对应的备份接口

  • 端口状态复杂,如前三种状态从用户使用角度对应行为是一样的,呈现不同状态,增加了使用难度

2. RSTP(802.1W)

2.1 RSTP的改进

端口角色

  • 预备端口AP:根端口的备份(当RP口挂了,马上成为RP口进行转发)

    • 选举 比较RPC,BID,PID

  • 备份端口(Backup port):DP口的备份

  • 边缘端口(edge port):连接终端的端口,此端口马上进入forwarding端口

端口状态

STP端口状态RSTP端口状态端口状态对应的行为
Disabled Discarding 不转发用户流量,不学习MAC地址、  
Blocking Discarding
Listening Discarding
Learning Learning 不转发用户流量,学习MAC地址
Forwarding Forwarding 转发用户流量,学习MAC地址

2.2 快速收敛机制P/A

  • Proposal/Agreement机制,目的是使一个指定端口尽快进入Forwarding状态

  • 指定端口通过与相连的网桥进行一次握手,快速进入转发状态

  • P/A机制要求两台交换设备之间链路必须是点对点的全双工模式

  • 加入P/A确认机制后,就不再需要等待Forwarding Delay时间保证无环,协商一般秒级

2.3 拓扑变更优化

  • 发现非边缘端口状态改变,马上发送TC报文给所有交换机,收到TC报文的交换机清空MAC地址(STP要等到根桥确认后由根桥发送TC报文)

  • 其他设备收到TC报文的端口重复上述过程

2.4 BPDU优化

  • 拓扑稳定后,STP只能根桥每Hello Time时间(默认2s)发送配置BPDU,其他非根桥收到后再进行转发,此方式使得STP计算缓慢。RSTP中,拓扑稳定后,所有设备均主动周期性Hello Time发送BPDU

  • 更短的BPDU超时计时

    如果一个端口连续3个Hello Time没有收到上游设备发送的BPDU,那么该设备认为与此邻居之间协商失败。而STP需要等待一个Max Age(20s)

2.5 BPDU保护功能

  • 在边缘端口新接入交换机,发送BPDU报文,引起其他交换机进行生成树计算,从而引起网络震荡

  • BPDU保护原理:边缘端口收到BPDU报文后,立即关闭该端口,从而有效防止网络震荡

  • 缺省情况下,交换设备的BPDU保护功能处于关闭状态

2.6 BPDU报文过滤

  • 在access接口使用,如果在其他接口会形成环路

  • 如果应用在交换机与交换机的端口上,一个物理网段连接的两端都是指定端口,所以会形成环路

  • 不接收BPDU,也不发送BPDU

2.7 根桥保护

  • 在二层环形网络中接入一台优先级更高的交换机,其他交换机收到更优的RST BPDU报文后,会重新进行生成树计算,使得之前的根桥失去根地位,引起网络拓扑结构错误变动

  • 根桥保护功能只能在指定端口上配置(一般是在新交换机接入的那个交换机的指定端口上配置)

  • 启用根桥保护的指定端口收到更优的RST BPDU时,端口状态进入Discarding状态,不再转发报文。一段时间后,如果一直没有再收到更优的RST BPDU报文,端口会自动恢复到Forwarding状态

  • 缺省情况下,端口的根桥保护功能处于关闭状态

2.8 环路保护

由于系统资源导致的BPDU发送延迟,使对端在发送BPDU周期的3倍过后,会更改端口的角色,从而会影响STP转发路径,可能会导致环路,所以在对端的根端口或者根端口的替换端口上配置

2.9 TC-BPDU泛洪保护

  • 边缘端口接入PC,不断伪造和发送TC-BPDU,交换机收到后频繁的删除MAC地址表项会给设备造成很大的负担,给网络稳定带来很大隐患

  • 保护原理

    在单位时间内,交换机处理TC报文并立即刷新转发表项的阈值,设备只会处理阈值指定的次数(默认单位时间为Hello Time=2s,立即处理一次)。对于其他超出阈值的TC报文,指定超时时间后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项,从而达到保护设备的目的。

2.10 RSTP不足

所有VLAN共享一棵树,无法实现负载分担

3. MSTP(802.1S)

  • 具备RSTP的快速收敛机制

  • 基于实例(Instance)进行生成树计算,并能把VLAN映射到实例中,从而实现基于VLAN的数据分流

  • 生成树实例就是一个或多个VLAN的集合。一个VLAN只能映射到一个实例中

  • 每个实例单独进行STP计算,不同实例的根桥可以不同,同一个端口在不同的实例中的端口角色和状态可以不同

3.1 MST域

  • MST域是多生成树域,由交换网络中的多台交换设备以及它们之间的网段所构成。同一个MST域的设备具有一下特征:

    • 都启动了MSTP

    • 具有相同的域名

    • 具有相同的VLAN到生成树实例映射配置

    • 具有相同的MSTP修订级别配置

  • 一个MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI

  • 每个MSTI都有一个标识(MSTID)。默认所有VLAN映射到MST Instan 0,实例0强制存在。

3.2 IST/CST/CIST

  • MSTI

    每个实例中的生成树叫做MSTI生成树

  • IST

    内部生成树,是MST区域内的一颗生成树,是一个特殊的MSTI,实例0被称为IST。IST是CIST在MST域中的一个片段。

  • CST

    公共生成树,是连接交换网络内部的所有MST区域的一个生成树。如果将MST区域看作一个网桥,那么CST就是这些网桥通过STP或RSTP计算出来的一个生成树。

  • CIST

    公共内部生成树,IST和CST共同构成了整个网络的CIST,所有MST域的IST加上CST就构成一颗完整的生成树,即CIST。

3.3 MSTP端口角色

  • 总根

    CIST的根桥

  • Master桥

    域内距离总根最近的交换设备

MSTP在RSTP的基础上新增了2中端口。MSTP端口角色共有7种:根端口、指定端口、Alternate端口、Backup端口、边缘端口、Master端口和域边缘端口。前面五种端口同RSTP

端口角色说明
Master端口 Master桥上和总根相连的端口,即域边界距离总根最近的接口。 Master端口是域中的报文去往总根的必经之路 Master端口是特殊的域边缘端口,Master端口在IST/CIST上的角色是Root Port,在其他各实例上的角色都是Master端口
域边缘端口 位于MST域的边缘并连接其他MST域的设备的端口。Master端口一定是域边界端口,但是域边界端口不一定是Master端口

 本文整理自超有趣虫虫老师网课

 

 

posted @ 2020-10-23 11:22  落十一  阅读(836)  评论(1编辑  收藏  举报