本发明的目的就是解决快速转换引起的临时环路问题,提供一种 在快速生成树协议下快速状态转换时,防止产生临时环路的方法。
RSTP快速转换的基本原理就是在点对点(全双工)的链路上, 如果指定端口和与之相连的桥就网络拓扑达成一致,也就是相连桥除 了根端口外,所有其他端口都处于阻塞状态(discarding),指定端口 就可以快速转换为转发状态(forwarding)。这一过程通过提议 (proposing)、被提议(proposed)、同步(sync)、已同步(synced) 和同意(agreed)这5个协议标记进行协商。
快速状态转换基本原理中synced标记为真的条件为:
(1)对于非根端口(指定端口、可选端口、备份端口),端口状态必 须处于阻塞状态;
(2)对于根端口,必须其他端口的synced标记全部为真,即其他端 口都处于转发状态。
在实施RSTP协议的时候,常用冗余备份的组网环境下,改变网 络拓扑就可能造成网络临时环路。实际组网环境中常使用的冗余备份 拓扑,其中生成树的根桥优先级最高,其他桥采用默认配置,所有端 口都是点对点链路,当
修改根桥的优先级为所有桥中最低或者根桥断 电的时候,就可以导致网络发生临时环路,发生广播风暴。
上述产生广播风暴的原因是,当网络拓扑环境发生变化的时候, 协商标记的语义可能不存在了,如果协商标记的语义不符合要求,就 可能会发生不正确的快速协商,造成指定端口在网络拓扑没有达成一 致的情况下,快速进入转发状态,导致网络临时环路。
因此在快速生成树协议下快速状态转换时,防止临时环路产生的 解决方案就是,网络拓扑发生变化的时候需要确保协商标记符合语 义。当端口角色发生变化的时候,协商标记的语义可能发生变化。此 时需要根据情况恢复协议标记,简单的解决方法就是在端口角色发生 变化的时候,复位所有协商标记,即复位proposing、proposed、sync、 synced和agreed标记。当端口状态发生变化的时候,协商标记语义可 能发生变化。最直接的就是synced标记的语义,由于根端口的synced 标记管理所有其他端口的synced标记,表示所有其他端口都处于阻塞 状态,当存在其他端口不处于阻塞状态的时候,根端口的synced标记 应该复位以保持语义,同时proposing、agreed也要进行相应的处理以 保持正常的语义。
附图说明
下面结合附图对本发明进一步详细地说明:
图1是快速协商
流程图;
图2常用网络拓扑图示意图;
图3不正确的协商过程示意图;
图4快速协商流程在状态机中的变迁流程图。
最佳
实施例详细描述
下面参照本发明的附图,更详细的描述出本发明的最佳实施例。
图1显示了桥B1和桥B2进行快速协商的流程。其中桥B1的B1p0 端口是指定端口;桥B2的B2p0端口是根端口,B1p1、B2p2端口为上 文提到的其他端口。当协商完成以后,桥B1的B1p0端口就可以直接 进入转发状态了,而不需要延迟一段时间才能进入转发状态。
RSTP快速转换的基本原理就是在点对点(全双工)的链路上, 如果指定端口和与之相连的桥就网络拓扑达成一致,也就是相连桥除 了根端口外,所有其他端口都处于阻塞状态,指定端口就可以快速转 换为转发状态。具体通过以下5个协议标记进行协商,具体协商步骤 如下:
(1)proposing如图中1s所示,期望快速转发的指定端口发起提议, 并把该标记2s(proposal)设置在报文中发送给相连的根端口。
(2)proposed如图1中的3s所示,根端口从点对点的链路上接收到 指定端口的
请求,设置为proposed标记。
(3)sync如图1中的5s所示,当proposed标记设置后,根端口设置所 有其他端口的sync标记,希望它们进行同步4s,进入discarding 状态7s。
(4)synced如图1中的6s所示:
i)其他端口收到sync请求进行响应,转发的端口转换为阻塞 状态,设置synced标记;本来处于非转发状态的端口直接 设置synced标记。
ii)根端口管理所有其他端口的synced标记。如果所有其他端 口都设置了synced标记,那么根端口也设置synced标记,认 为其他端口都进入了阻塞状态8s。
iii)根端口设置了synced标记,就发送协商同意(agreement) 的报文,同意指定端口快速转发9s。
(5)agreed如图1中的11s所示,指定端口收到根端口的协商同意标 记10s,设置agreed标记,就可以直接进入转发状态,无需延 迟。
端口快速协商不一定需要所有其他端口都进入阻塞状态。对于某 些具有特殊性质的端口,如不与任何交换机相连的边界(edge)端口, 可以处于转发状态。文中说需要进入阻塞状态,主要是针对大多数情 况而言,避免总提及特殊情况的处理。
图2是实际组网环境中常使用的冗余备份拓扑。其中桥B3优先级 最高,是生成树的根桥(生成树的树根),其他桥采用默认配置,所 有端口都是点对点链路。执行如下两种操作之一就可以导致网络发生 临时环路,发生广播风暴:
(1)修改桥B3的优先级为所有桥中最低;
(2)桥B3断电。
广播风暴发生的原因是,当网络拓扑发生变化后(如桥B3断电), 指定端口和与之相连的端口发生了不正确的协商。图3为不正确的协 商过程示意图,不正确的协商过程如下:
(1)桥B2上的指定端口B2p1发送proposing请求;
(2)桥B4根端口收到proposing,设置proposed标记;
(3)桥B4根端口的synced标记为真,直接回应了agreement标记;
(4)桥B2收到agreement报文,设置agreed标记,直接进入转发状 态。
问题的原因就是桥4根端口直接回应了agreement标记,但是此时 网络拓扑并没有形成一致。通过分析桥B4上协商标记的值,特别是 synced标记的值,发现设置synced的时候,不满足快速状态转换基本 原理中synced标记为真的条件:
(1)桥B4上的指定端口B4p2设置了synced标记,但是处于转发状 态;
(2)桥B4上的根端口B4p1设置了synced标记,但是存在其他端口 为转发状态。
RSTP通过一系列状态机来控制协议状态变迁。涉及到协商标记 的状态机主要有四个,下面简单介绍一下这些状态机的功能:
(1)端口信息状态机
处理报文信息、时间信息;
(2)角色转换状态机
负责端口角色(指定端口、根端口、可选端口、备份端口等)
发生变化时的处理;
(3)状态转换状态机
端口状态变化的处理,即端口转发、阻塞的处理;
(4)发送状态机
发送STP报文的状态机;
图4所示为快速协商流程在状态机中的变迁过程:从图4中可以清 楚的看出各协商标记具有明确的语义,特别是synced标记的语义最为 重要,这里详细论述一下各协商标记:
(1)proposing.代表指定端口进行协商请求。当端口角色发生变化, 或者端口已经处于转发状态,proposing应该恢复;
(2)proposed.根端口收到协商请求。当端口角色发生变化, proposed应该恢复;
(3)sync.根端口同步其他端口。角色发生变化后改语义发生变;
(4)synced.
i)非根端口处于阻塞状态设置改标记。当端口角色发生变化、 或者端口进入转发状态,该synced标记应该复位;
ii)根端口的synced表项表示所有其他端口的synced标记都为 真。当端口角色发生变化,或者其他端口有端口进入转发状 态,synced语义发生变化,应该复位;
(5)agreed.指定端口收到协商成功的标记。当端口角色不是指定端 口,agreed应该复位。
其中synced的语义和端口角色相关。对于非跟端口(指定端口、 可选端口、备份端口),表示端口处于阻塞状态;对于根端口,表示 所有其他端口都处于阻塞状态。因此如果端口角色发生,或者端口状 态发生变化,synced的语义也发生了变化,正常的情况下应该把synced 标记复位,避免语义的混淆。
从协议标记语义分析中,可以看到各个协商标记的语义非常明 确。当网络拓扑环境发生变化的时候,协商标记的语义可能不存在了。 如指定端口设置了proposing标记希望快速进入转发状态,但是如果端 口角色发生重新选举,变成了根端口,那么端口的proposing标记为真 的语义就失去了,此时需要复位proposing标记,使proposing符合语义。
当拓扑发生变化的情况下,如果协商标记的语义不符合要求,可 能就会发生不正确的快速协商,造成指定端口在网络拓扑没有达成一 致的情况下,快速进入转发状态,导致网络临时环路。
具体来说,就是网络拓扑发生变化的时候需要确保协商标记符合 语义。这里详细说明端口角色变化和端口状态转换的时候保证协商标 记的语义(协议实现的其他地方也需要保证协商标记的语义,这里不 一一列举)。
当端口角色发生变化的时候,协商标记的语义可能发生变化。此 时需要根据情况恢复协议标记。如指定端口设置了synced标记,当端 口角色转换为根端口后synced标记如果没有复位,则根端口可能认为 其他端口处于阻塞状态而在协商的时候直接回应agreement。简单的解 决方法就是在端口角色发生变化的时候,复位所有协商标记,即复位 proposing、proposed、sync、synced和agreed标记。
当端口状态发生变化的时候,协商标记语义可能发生变化。最直 接的就是synced标记的语义:
(1)端口进入转发状态后,没有能够复位本端口的synced标记,此 时synced标记不符合语义。
如指定端口转发后,应该不处于阻塞状态,此时synced标记应该 复位以保持语义。
(2)指定端口转发后,没有复位根端口的synced标记。
由于根端口的synced标记管理所有其他端口的synced标记,表示 所有其他端口都处于阻塞状态。当存在其他端口不处于阻塞状态的时 候,根端口的synced标记应该复位以保持语义。同时proposing、agreed 复位以保持正常的语义。
本发明针对RSTP协议的快速状态转换的
缺陷进行修改。在不改 变快速切换机制的情况下,很好的避免了端口快速转换过程中可能导 致的临时环路问题,保证了局域网正常的通信。
尽管为说明目的公开了本发明的最佳实施例和附图,但是本领 域的技术人员可以理解:在不脱离本发明及所附的
权利要求的精神和 范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限 于最佳实施例和附图所公开的内容。