文/王黎黎 王飓
图1显示了一个典型的IP网络图,目前很多行业网,如金融、教育都是采用这样的结构进行组网的。这样一个网络,现有的一些路由协议,如OSPF、ISIS、RIP等虽然能指导各路由器进行报文的转发,但是对于汇聚层为环形网这样的结构来讲,在收敛速度、计算复杂度等方面不具有任何优势。针对这个问题,H3C研发人员提出了一种专门用于环形网的路由协议,不仅简单,而且具有极好的收敛速度。
http://www.h3c.com.cn/res/200906/15/20090615_778523_image001_637501_30008_0.png
图1 一个典型的IP网络图
下面以汇聚层的环形网络为例,详细阐述本发明的设计思路。如图2,该环形网络包括R1、R2、R3和R4这四个路由器,中间分别通过链路L1、L2、L3和L4连接,并且每个路由器连接各自的IP网络。为了方便描述,我们定义:环上每个路由器称为一个环上节点,构成环的每条链路称为一个环上连接,每个节点都有两个连接,分别称为左手连接和右手连接;每个节点有一个ID,可以选该节点的IP地址作为其ID;选择环上的一个节点作为Master,其余节点作为Slave。
http://www.h3c.com.cn/res/200906/15/20090615_778524_image002_637501_30008_0.png
图2 环形网络
协议的运行包括以下过程:环路发现→路由交换→快速倒换→故障检测→故障恢复。以下按顺序介绍每个过程的运行情况。
1、环路发现
Master定期在环网上发送环路发现报文,该报文依次经过环网上的每一个节点,每一个节点将自身的相关信息记录在该报文中发送给下一个节点,最终该报文回到Master,此时Master就知道了整个环网的拓扑结构。Master将环网的拓扑结构通过环路公告报文发送给环上的每一个节点,其它节点接收到这些信息后也和Master一样获取了整个环网的拓扑信息。Master周期性的发送环路公告报文,环路上的各节点根据该报文检查网络状况,如果出现自己的ID发生变化或者自己是新加入的节点,那么就会通知Master环网的拓扑发生了改变,Master于是重新触发环路发现过程。
2、路由交换
路由交换过程我们以R2为例进行说明(R2 连接的环下网络路由信息为IP2)。R2从自己的左手连接向R3发送路由通告报文“S=ID-R2,跳数=1,IP2”。S=ID-R2表示路由发布源为R2节点;跳数表示路由通告报文经过的节点,初始值为1,以后每经过一个节点就加1;IP2代表了所有的路由信息。R3收到该路由通告报文后,建立一张表,记录所有R2发布的路由IP2,然后再把这个报文中的跳数加1,从R3的右手连接发向R4。R4收到该通告报文后也记录下R2发布的路由。同样地,R1也记录下R2发布的路由信息。最终该通告报文回到R2。这样,环上的每一个节点都学习到了R2发布的路由信息。类似地,R1、R3、R4也在环网上发布自己的路由信息,这样环上的每一个节点都学习到了其他节点发布的路由信息。
每个环上节点获知了环下的所有路由信息后,开始计算到达这些环下路由的最优路径。
仍然以R2为例。首先,它知道自己的非环上学来的路由IP2;其次,是从环上其他节点学来的路由,实际上这些路由既可以从R2的左手连接到达,又可以从R2的右手连接到达。比如去往IP1,R2既可以通过右手连接经过1跳到达,也可以通过左手连接经过3跳到达。而一般最优路径是指经过最少跳数能到达目的的路由。所以,R2将右手连接L1(或者说下一跳为R1)作为主用,将左手连接L2(或者说下一跳为R3)作为备份。这样,在R2上经过计算就可以形成下表:
路由
|
主用
|
备份
|
IP1
|
L1(下一跳为R1)
|
L2(下一跳为R3)
|
IP2
|
本地链路
|
——
|
IP3
|
L2(下一跳为R3)
|
L1(下一跳为R1)
|
IP4
|
L2(下一跳为R3)
|
L1(下一跳为R1)
|
表1 路由下一跳备份关系表
【其中,IP2是本地路由,在没有多点接入的情况下,只有本地的链路,没有备份;另外,到达IP4,左右跳数都是2,规定左手优先。】
3、快速倒换
当环网出现单点故障时,各个路由器需要根据自己掌握的拓扑,计算出链路倒换表。以R2为例,计算出的倒换表如下:
非直连下一跳
故障链路
|
[R1]
|
[R2]
|
[R3]
|
[R4]
|
L1
|
L1→L2主备倒换
|
不倒换
|
不倒换
|
不倒换
|
L2
|
不倒换
|
不倒换
|
L2→L1主备倒换
|
L2→L1主备倒换
|
L3
|
不倒换
|
不倒换
|
不倒换
|
L2→L1主备倒换
|
L4
|
不倒换
|
不倒换
|
不倒换
|
不倒换
|
表2 链路倒换表
判断链路倒换的原则为从R2到目的网络所连接的主路径上是否包含故障链路。如果包含,则进行主备倒换。例如,R2到IP1的网络,主路径是L1,当L1故障时,则进行主备倒换;又如,R2到IP4的网络,主路径是L2-L3,当L2或L3发生故障时,则进行主备倒换。故,当发生单点故障时,经过链路倒换,所有的报文都不再经过故障路径,网络的连通性得到保证。
R1、R3、R4和R2一样,计算出各自的链路倒换表。在链路出现故障时,根据链路倒换表快速进行倒换。
4、故障检测
环上节点检测到链路故障后,立刻向相反的方向发送故障通告报文。以R2为例,当发现L2出现故障,立刻向L1侧R1发送故障通告报文。R1收到报文后,将报文从其右手连接发送出去,并根据链路倒换表触发路由倒换。该故障通告报文一直传递到R3。同样的,R3也可以检测到这个故障,就向L3侧(R4)发送故障通告报文。该故障通告报文一直传递到R2。收到故障通告报文的节点,根据各自的链路倒换表进行链路倒换。
5、故障恢复
由于Master定期发送环路公告报文,当网络出现故障时,Master从其另一侧就收不到该环路公告报文,直到故障恢复。当Master收到链路公告报文后,它会发送一个链路恢复报文,通知环上各节点恢复倒换的路由,使网络恢复到正常状态。
按照如上协议运行,即可构成简单的环网协议,以较小的代价满足环网路由和快速收敛的需要。
【专利点评】
本发明利用环形网天然冗余备份的拓扑特点,结合IP快速重路由的思想,提出了一种简便有效的路由实现方案。本发明的环网路由方案算法极其简单,能够实现具有环形拓扑的整个网络的路由快速收敛。当环网任何一条链路出现故障时,故障检测时间、故障通告时间、尤其是快速倒换时间都可以控制在毫秒级,因而使得整个网络的路由收敛速度可以控制在毫秒级。
目前,H3C在路由技术方面已申请专利数百件,其中不乏像本篇这样的全新创作。
加载中,请稍候......