网络工程师必懂:STP/RSTP协议(二)

描述

  一.RSTP的端口角色

  根端口(ROOT)

  根端口是每台非根桥,到达根桥的距离最近的端口,每台交换机上只能有一个根端口,根端口属于活动拓扑的一部分,可以转发数据帧,发送和接收BPDU消息(STP根端)

  指定端口(DESIGN)------端口刚启用时默认是指定端口

  在活动拓扑中,交换机会从指定端口对应的网段上接收去往根桥的数据帧,每个网段上只能存在一个指定端口

  较STP新增了两个端口概念,替代接口和备份接口。但同样都是阻塞起来的,只是为了指定端口或根端口出故障时可以快速收敛。

  替代端口(alternate—从不同交换机收到BPDU,处于劣势的BPDU为替换端口)

  替代端口是一个提供了去往根桥替代路径的交换机端口,活动拓扑中的替代端口处于Discarding状态。当现有的指定端口链路发生故障之后,替代端口会过渡成为指定端口

  备份端口(backup)----去往同一个交换机有两个端口

  一台设备上收到了自己所发送的BPDU从而被阻塞的接口。

  备份端口是指定交换机上的一个额外的交换机端口,其作用是为指定交换机提供一份备份链路。备份端口在活动拓扑中处于Discarding状态。当现有的根端口发生故障之后,替代端口会过渡成为根端口

  STP

  如图,LSW2上的GE 0/0/3阻塞,因为是收到了LSW3的BPDU报文,形成了环路,且收到的BPDU报文比自己的优,从而阻塞,就变成了替代接口。而LSW2上的GE 0/0/5。

  因为收到的是自己发送过来的BPDU报文且端口id较大被阻塞,从而变成备份接口。

  边缘端口:如果端口位于整个交换区域边缘,不与任何交换设备连接,这种端口叫做边缘端口。边缘端口一般与用户终端设备直接连接。

  边缘端口的特点

  1. 边缘端口会节省30S的延时,端口UP后会立即进入转发状态。 2. 边缘端口的UP/DOWN不会触发拓扑改变。 3. 边缘端口收的TC置为的配置BPDU报文不会将MAC地址的老化时间设置为15s。 4. 边缘端口如果收到配置的BPDU报文会马上变为一个普通端口,进行STP的收敛。 5. 边缘端口也会发送配置BPDU报文。 6. PA协商不会阻塞边缘端口。

  禁用端口(disabled)

  禁用端口不担任角色

  替代端口和备份端口 Discarding状态

  二.RSTP的端口状态

  Discarding(丢弃):Discarding状态的端口只接收BPDU报文,有时可以发送BPDU(视角色而定)

  Learning(学习)-----Listening状态:这是一种过渡状态。在Learning下,交换设备会根据收到的用户流量,构建MAC地址表,但不转发用户流量,所以叫做学习状态。Learning状态的端口处理BPDU报文,不转发用户流量。

  Forwarding(转发):在这种状态下,端口既转发用户流量又处理BPDU报文。

  三.RSTP链路状态类型

  非边缘端口可以分为两类链路状态

  点到点P2P:端口工作在全双工模式下,此类型会假设端口与点到点链路相连,链路对端只有一台交换机

  共享:端口工作在半双工模式下,此类型会假设端口与共享链路相连,共享介质上可能存在多台交换机

  根端口:不使用链路状态类型参数,一旦处于同步状态,根端口会立马过渡到Forwarding状态。

  替代与备份端口:大多数情况下,也不考虑链路类型参数。

  四.RSTP针对STP的改进

  BPDU 格式和处理的改变

  标志位增加了更多的标志功能:提议位,端口角色位,学习位,转发位,同意位

  STP中只有根交换机才会发送BPDU,而在RSTP中非根交换机也可以发送BPDU,BPDU的内容是基于根端口上的信息得来得。这样交换机就可以让BPDU快速得超时,当三个HELLO间隔时间内没有收到最优BPDU得话,端口就会让该BPDU超时。

  与STP不同,RSTP中,网段上得指定交换机得指定端口发送的次优BPDU会直接被交换机接收(而不是忽略等待超时后再处理),立刻代替之前保存的BPDU,交换机会根据一般得规则重新计算自己在网段上的端口角色状态和端口状态。这种行为使得交换机能够在邻居交换机和根交换机之间的连接(间接连接)出现问题时,能够快速的响应。

  发送次优BPDU的情况:根端口DOWN掉或三个HELLO时间内没有 从对端收到最优BPDU。若无其他替换端口,声明自己是根桥,若有替换端口,发送与那个接口有关的BPDU(主要是开销)

  STP

  RSTP的提议同意机制(重!!!)

  前提条件:必须是点到点的链路,如果是半双工端口会识别为共享(share)链路,在共享链路上不能使用P/A协商。

  网络拓扑变更后,大约需要3个hello time时间,即6秒。

  P/A提议快速收敛机制:

  新链路连接时候,链路两端的端口初始都为指定端口并处于阻塞的状态。

  proposing:当一个指定端口处于Discarding或Learning状态时,该变量置位,并向下游交换设备传递Proposal位被置位的RST BPDU。

  Proposed:当端口收到对端的指定端口发来的携带proposal的RST BPDU时,该变量置位。该变量指示本网段上的指定端口希望尽快进入forwarding状态。

  Sync:当proposed被置位以后,收到proposal的根端口会依次为自己的其他端口置位sync变量,而收到proposal的非边缘端口则会进入discarding状态。

  Synced:当端口转到discarding状态后,会将自己的synced变量置位。Alternate端口、backup端口和边缘端口会马上置位该变量。根端口监视其他端口的synced,当所有其他端口的synced全被置位,根端口会将自己的synced置位,然后传回RST BPDU,其中agreement位被置位。

  Agreed:当指定端口接收到一个RST BPDU时,如果该BPDU中的agreement位被置位且端口角色字段是跟端口,该变量被置位。Agreed变量一旦被置位,指定端口马上转入forwarding状态。

  STP

  P/A提议机制实例:

  p0和p1两个端口马上都先成为指定端口,发送RST BPDU。

  A的p1口收到更优的RST BPDU,马上意识到自己将成为根端口,而不是指定端口,停止发送RST BPDU。

  ROOT的p0进入discarding状态,于是发送的RST BPDU中把proposal置1.

  A收到根桥发送来的携带proposal的RST BPDU,开始将自己的所有端口进入sync变量置位。

  P2已经阻塞,状态不变;p4是边缘端口,不参与运算;所以只需要阻塞费边缘指定端口p3.

  P2,p3,p4都进入discarding状态之后,各端口的synced变量置位,根端口p1的synced也置位,于是便向p0返回agreement位置位的回应RST BPDU。该RST BPDU携带和刚才根桥发过来的BPDU一样的信息,除了agreement位置位之外(proposal位清零)。

  当s1判断出这是对刚刚发出的proposal的回应,于是端口p0马上进入forwarding状态。

  PS:如果指定端口发出Proposal置位的BPDU后没有收到Agreement BPDU报文,则该端口需要等待30s(两个延迟时间)才会进入转发状态。因为用户主机没有RSTP功能,所以需要配置边缘端口(可以忽略Forward Delay时间直接进入Forwarding状态,无时延),如果不配置,用户会有明显的网络中断,这样RSTP的性能可能比STP还要差。

  RSTP中收敛时间的优化:

  P/A协商:可以让交换机的RP和DP的互联接口快速进入转发状态。

  直连故障:AP口变为RP并快速进入转发状态,不需要30s延时。

  非直连链路故障:连续丢失3个RST BPDU包,端口角色就需切换,最长时间为6s。

  次优场景:AP口收到次优的RST BPDU包后会马上变为DP口,并向该端口发送最优的RST BPDU包。

  RSTP中TC置位的RST BPDU包所有桥设备都可以发送,连续发送4s(TC while时间)。

  在RSTP中非根桥也会每隔hello timer 主动发送RST BPDU报文,不是由根桥来发。

  在RSTP中DP口shutdown后BP口的角色会马上变为DP口,并经过30s的转发延时进入到转发状态。

  在RSTP中什么情况下才会发送TC BPDU包?

  新的指定端口进入到转发状态。

  MAC地址表的清除:

  TC发送者:清除除了边缘端口以外的其它端口的MAC地址绑定条目。

  TC接受者:清除除了TC报文接口端口和边缘端口以外的其它端口的MAC地址绑定条目。

  RSTP的拓扑变化方案

  在STP中,端口变为Forwarding状态或从Forwarding变为Blocking状态均会触发拓扑改变处理过程,而RSTP只在非边缘端口转为Forwarding状态时才会触发处理过程。

  在RSTP中,当交换机由非边缘端口转变为Forwarding状态时,网桥会在两倍的Hello Time时间内向根端口以及指定端口发送TC置位为1的RST BPDU,同时清除这些端口学习到的MAC地址。

  其他交换机收到TC置位的RST BPDU时候,会清除接收TC报文的端口以及边缘端口之外的其余端口MAC地址,并同样会在两倍的Hello Time时间内向根端口以及指定端口发送TC置位为1的RST BPDU报文。

  交换机收到TC置位的RST BPDU后不需要在Max Age+Forward Delay时间内将MAC地址老化时间设置为Forward Delay,而是直接清除端口MAC地址,重新进行学习,从而实现更快的收敛。

  五.RSTP保护功能

  BPDU(Bridge Protocol Data Unit)保护

  应用场景:边缘端口在收到BPDU以后端口状态将变为非边缘端口,此时就会造成生成树的重新计算,如果攻击者伪造配置消息恶意攻击交换设备,就会引起网络震荡。

  功能:交换设备上启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down,但是边缘端口属性不变,同时通知网管系统。被error-down的边缘端口只能由网络管理员手动恢复。如果用户需要被error-down的边缘端口可自动恢复,可通过配置使能端口自动恢复功能,并可设置延迟时间。

  防TC-BPDU报文攻击保护

  应用场景:交换设备在接收到拓扑变化报文后,会执行MAC地址表项和ARP表项的删除操作,如果频繁操作则会对CPU的冲击很大。

  功能:启用防TC-BPDU报文攻击功能后,在单位时间内,交换设备处理拓扑变化报文的次数可配置。如果在单位时间内,交换设备在收到拓扑变化报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。对于其他超出阈值的拓扑变化报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项和ARP表项,从而达到保护设备的目的。

  Root保护

  应用场景:由于维护人员的错误配置或网络中的恶意攻击,根桥收到优先级更高的BPDU,会失去根桥的地位,重新进行生成树的计算,并且由于拓扑结构的变化,可能造成高速流量迁移到低速链路上,引起网络拥塞。

  功能:对于启用Root保护功能的指定端口,其端口角色只能保持为指定端口。一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。

  环路保护

  应用场景:在运行RSTP协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游交换设备的RST BPDU维持。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的RST BPDU时,此时交换设备会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中可能产生环路。

  功能:在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游的RST BPDU时,则向网管发出通知信息(如果是根端口则进入Discarding状态)。而阻塞端口则会一直保持在阻塞状态,不转发报文,从而不会在网络中形成环路。直到根端口或Alternate端口收到RST BPDU,端口状态才恢复正常到Forwarding状态。 说明: 环路保护功能只能在根端口或Alternate端口上配置生效。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分