2021.5.17 HCIA的课堂笔记与线下整理

一、RSTP:实现了网络拓扑快速收敛

出现原因:

STP能够提供无环网络,但是收敛速度较慢。如果STP网络的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断。RSTP使用了Proposal/Agreement机制保证链路及时协商,从而有效避免收敛计时器在生成树收敛前超时。如图所示,在交换网络中,P/A过程可以从根桥向下游级联传递。

RSTP的端口角色共有4种:根端口指定端口Alternate端口Backup端口

预备端口AP,是由于学习到其它网桥发送的更优配置BPDU报文而阻塞的端口;备份端口BP,是由于学习到自己发送的更优配置BPDU报文而阻塞的端口。(也可理解为,AP位于网段的非指定交换机上,BP位于指定交换机上)

运行RSTP的交换机使用了两个不同的端口角色来实现冗余备份。当到根桥的当前路径出现故障时,作为根端口的备份端口,Alternate端口提供了从一个交换机到根桥的另一条可切换路径。Backup端口作为指定端口的备份,提供了另一条从根桥到相应LAN网段的备份路径。当一个交换机和一个共享媒介设备例如Hub建立两个或者多个连接时,可以使用Backup端口。同样,当交换机上两个或者多个端口和同一个LAN网段连接时,也可以使用Backup端口。

RSTP里,位于网络边缘的指定端口被称为边缘端口。边缘端口一般与用户终端设备直接连接,不与任何交换设备连接。边缘端口不接收配置BPDU报文,不参与RSTP运算,可以由Disabled状态直接转到Forwarding状态,且不经历时延,就像在端口上将STP禁用了一样。但是,一旦边缘端口收到配置BPDU报文,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。

端口状态

RSTP把原来STP的5种端口状态简化成了3种。 Discarding状态,端口既不转发用户流量也不学习MAC地址。 Learning状态,端口不转发用户流量但是学习MAC地址。 Forwarding状态,端口既转发用户流量又学习MAC地址。

二、收敛过程

BPDU、

STP中,当网络拓扑稳定后,根桥按照Hello Timer规定的时间间隔发送配置BPDU报文,其他非根桥设备在收到上游设备发送过来的配置BPDU报文后,才会触发发出配置BPDU报文,此方式使得STP协议计算复杂且缓慢。RSTP对此进行了改进,即在拓扑稳定后,无论非根桥设备是否接收到根桥传来的配置BPDU报文,非根桥设备都会仍然按照Hello Timer规定的时间间隔发送配置BPDU,该行为完全由每台设备自主进行。

RSTP收敛遵循STP基本原理。网络初始化时,网络中所有的RSTP交换机都认为自己是“根桥”,并设置每个端口为指定端口。此时,端口为Discarding状态。

每个认为自己是“根桥”的交换机生成一个RST BPDU报文来协商指定网段的端口状态,此RST BPDU报文的Flags字段里面的Proposal位需要置位。当一个端口收到RST BPDU报文时,此端口会比较收到的RST BPDU报文和本地的RST BPDU报文。如果本地的RST BPDU报文优于接收的RST BPDU报文,则端口会丢弃接收的RST BPDU报文,并发送Proposal置位的本地RST BPDU报文来回复对端设备。

交换机使用同步机制来实现端口角色协商管理。当收到Proposal置位并且优先级高的BPDU报文时,接收交换机必须设置所有下游指定端口为Discarding状态。如果下游端口是Alternate端口或者边缘端口,则端口状态保持不变。本例说明了下游指定端口暂时迁移到Discarding状态的情形,因此,P/A进程中任何帧转发都将被阻止。

当确认下游指定端口迁移到Discarding状态后,设备发送RST BPDU报文回复上游交换机发送的Proposal消息。在此过程中,端口已经确认为根端口,因此RST BPDU报文Flags字段里面设置了Agreement标记位和根端口角色。

在P/A进程的最后阶段,上游交换机收到Agreement置位的RST BPDU报文后,指定端口立即从Discarding状态迁移为Forwarding状态。然后,下游网段开始使用同样的P/A进程协商端口角色。

三、链路故障/根桥失效

在STP中,当出现链路故障或根桥失效导致交换机收不到BPDU时,交换机需要等待Max Age时间后才能确认出现了故障。而在RSTP中,如果交换机的端口在连续3次Hello Timer规定的时间间隔内没有收到上游交换机发送的RST BPDU,便会确认本端口和对端端口的通信失败,从而需要重新进行RSTP的计算来确定交换机及端口角色。

RSTP拓扑变化的处理类似于STP拓扑变化的处理,但也有些细微差别。 本例里面,SWC发生链路故障。SWA和SWC立即检测到链路故障并清除连接此链路的端口上的MAC地址表项。接下来SWC选举出新的根端口并立即进入Forwarding状态,因此触发SWC向外发送TC置位的BPDU报文(以下简称TC报文)。通知上游交换机清除所有其他端口上的MAC地址表项,除了接收到TC报文的端口。TC报文周期性地转发给邻居,在此周期内,所有相关接口上MAC地址表项将会被清除,重新学习MAC地址表项。图形里面红色X表示由于拓扑变化导致端口上的MAC地址表项被清除。

RSTP是可以与STP实现后向兼容的,但在实际中,并不推荐这样的做法,原因是RSTP会失去其快速收敛的优势,而STP慢速收敛的缺点会暴露出来。 当同一个网段里既有运行STP的交换机又有运行RSTP的交换机时,STP交换机会忽略接收到的RST BPDU,而RSTP交换机在某端口上接收到STP BPDU时,会等待两个Hello Time时间之后,把自己的端口转换到STP工作模式,此后便发送STP BPDU,这样就实现了兼容性操作。

四、RSTP的配置

边缘端口完全不参与STP或RSTP计算。边缘端口的状态要么是Disabled,要么是Forwarding;终端上电工作后,它就直接由Disabled状态转到Forwarding状态,终端下电后,它就直接由Forwarding状态转到Disabled状态。 交换机所有端口默认为非边缘端口。 stp edged-port enable命令用来配置交换机的端口为边缘端口,它是一个针对某一具体端口的命令。 stp edged-port default命令用来配置交换机的所有端口为边缘端口。 stp edged-port disable命令用来将边缘端口的属性去掉,使之成为非边缘端口。它也是一个针对某一具体端口的命令。 需要注意的是,华为Sx7系列交换机运行STP时也可以使用边缘端口设置。

由于错误配置根交换机或网络中的恶意攻击,根交换机有可能会收到优先级更高的BPDU报文,使得根交换机变成非根交换机,从而引起网络拓扑结构的变动。这种不合法的拓扑变化,可能会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。交换机提供了根保护功能来解决此问题。根保护功能通过维持指定端口角色从而保护根交换机。一旦启用了根保护功能的指定端口收到了优先级更高的BPDU报文时,端口会停止转发报文并且进入Listening状态。经过一段时间后,如果端口一直没有再收到优先级较高的BPDU报文,端口就会自动恢复到原来的状态。根保护功能仅在指定端口生效,不能配置在边缘端口或者使能了环路保护功能的端口上。

正常情况下,边缘端口是不会收到BPDU的。但是,如果有人发送BPDU来进行恶意攻击时,边缘端口就会收到这些BPDU,并自动变为非边缘端口,且开始参与网络拓扑计算,从而会增加整个网络的计算工作量,并可能引起网络震荡。 为防止上述情况的发生,我们可以使用BPDU保护功能。使能BPDU保护功能后的交换机的边缘端口在收到BPDU报文时,会立即关闭该端口,并通知网络管理系统。被关闭的边缘端口可配置成自动恢复或管理员手动恢复。 如需使能BPDU保护功能,可在系统视图下执行stp bpdu-protection命令。

交换机通过从上游交换机持续收到BPDU报文来维护根端口和阻塞端口的状态。当由于链路拥塞或者单向链路故障时,交换机不能收到上游交换机发送的BPDU报文,交换机重新选择根端口。最初的根端口会变成指定端口,阻塞端口进入Forwarding状态,这就有可能导致网络环路。 交换机提供了环路保护功能来避免这种环路的产生。环路保护功能使能后,如果根端口不能收到上游交换机发送的BPDU报文,则向网管发出通知信息。根端口会被阻塞,阻塞端口仍然将保持阻塞状态,这样就避免了可能发生的网络环路。 如需使能环路保护功能,可在接口视图下执行stp loop-protection命令。

五、MSTP

RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡。另外,链路被阻塞后将不承载任何流量,造成了资源、带宽浪费,还有可能造成部分VLAN的报文无法转发和次优二层路径问题。为此,引入了MSTP,用以解决上述问题。

MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,每个生成树对应着多个结构相同的VLAN,生成树之间彼此独立。 每个域叫做一个MST域;每棵生成树叫做一个多生成树实例MSTI;VLAN与MSTI的对应关系叫做VLAN映射表。

如图所示,MSTP通过设置VLAN映射表,把VLAN和MSTI联系起来。每个VLAN只能对应一个MSTI(即同一VLAN的数据只能在一个MSTI中传输),而一个MSTI可能对应多个VLAN。经计算,最终生成两棵生成树:MSTI1以S4为根,转发VLAN2的报文;MSTI2以S6为根,转发VLAN3的报文。这样,不同VLAN的报文沿不同的路径转发,实现了负载分担,同时,解决了VLAN2内主机A和主机B的不互通问题。

MSTP与RSTP的端口状态是一样的

1、MSTP拓扑计算的过程

MSTP通过交互MST BPDU进行MSTP拓扑计算。MSTP拓扑计算过程可分为2大部分:CIST的计算和MSTI的计算。具体过程如下: (1)先选出总根,即CIST根桥。 (2)在每个MST域中选出IST域根,即主桥。 (3)在IST域根(即主桥)上选出RP端口,即主桥在CIST上的RP端口。 (4)计算出MST域间链路的DP和AP/BP端口。 (5)在每个MST域中,IST和MST上计算出相应角色的端口。

2、优先级向量及比较规则

CIST和MSTI都是根据优先级向量来计算的,而这些优先级向量信息都包含在MST BPDU中。各交换设备通过交互MST BPDU来生成MSTI和CIST。 参与CIST计算的优先级向量:{总根ID、ERPC、IST域根ID、IRPC、发送者ID、发送端口ID、接收端口ID}。 参与MSTI计算的优先级向量:{MSTI域根ID、IRPC、发送者ID、发送端口ID、接收端口ID}。 比较规则如下: 依次比较优先级向量内部的各个变量,值越小优先级越高,值相同比较下一个变量。 如果接口收到的BPDU优于接口缓存的BPDU,则接口缓存的BPDU被替换,同时,更新交换设备保存的全局BPDU;反之,新收到的BPDU被丢弃。

3、MSTI的特点

每个MSTI独立计算自己的生成树,互不干扰。 每个MSTI的生成树可以有不同的树根,不同的拓扑。 每个MSTI在自己的生成树内发送MST BPDU,进行维护。 每个MSTI的拓扑通过命令配置决定。 每个端口在不同MSTI上的生成树参数可以不同。 每个端口在不同MSTI上的角色、状态可以不同。 另外需要注意的是,在运行MSTP协议的网络中,一个VLAN报文将沿着如下路径转发:在MST域内,沿着其对应的MSTI转发,在MST域间沿着CST转发。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Doomer_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值