在三层网络中查找路由下一跳的方法

文档序号:7813560阅读:3340来源:国知局
专利名称:在三层网络中查找路由下一跳的方法
技术领域
本发明涉及一种在三层网络中查找路由下一跳的方法,属于数据通信技术领域。
为了在路由器A上访问到网络M,可以在路由器A上配置如下路由项,每一个路由项由“目的地址”、“出接口”、“下一跳设备”这3项组成。

无论采用何种具体的网络层协议,路由项的形式都是类似的。网络层协议可能会是IPv4,也可能会是IPX或者IPv6。对于最常见的IPv4协议作为三层网络协议,路由器A上路由项可能表现成如下形式

路由器A中可能存在很多这样的路由项,用于指示A如何通向各个不同的网络。当路由器A收到一个数据报文时,将首先判断这个报文是否是送给自己的,如果不是给自己的报文,路由器A将在路由项中查找最为匹配的路由项,然后将报文送给下一跳所指定的路由器。
在传统的三层网络设备中,路由项中指定的“下一跳设备”必须是和本设备直接相邻的。这是因为,对于非直接相邻设备,通过传统方法无法找到路由项在转发过程中的出接口,这样数据报文就无法发送出去,因而导致数据流中断。
传统方法,即在路由项中指定直接相邻“下一跳设备”,将导致组网配置复杂。假设有一个由多台路由器相连的配置网络,那么就必须逐台配置、逐台依次指定到达各个目标网络的相邻下一跳设备。并且在网络拓扑发生变化时,还必须逐台更改配置,因此网络维护的工作量将非常大。
本发明提出的三层网络中查找路由下一跳的方法,包括如下各步骤(1)为三层网络设备的每一个路由项,设置一个位置存放状态标记;(2)检查每一个路由项的下一跳设备,是否与本设备的一个接口直接相邻,若下一跳设备与本设备直接相邻,则将此路由项标记为“有效”,若不直接相邻,则将该路由项标记为“等待迭代”;(3)检查标记为“等待迭代”的第i个路由项,若该路由器项的“下一跳设备”处于一个“有效”或者“迭代成功”状态的第j个路由项的“目的地址”范围内,则路由项i迭代了路由项j;(4)将路由项i标记为“迭代成功”,并在路由项i中记录“迭代了路由项j”;(5)使用路由项j的出接口转发路由项i的报文。
上述方法中,位置存放状态标记为“有效”、“等待迭代”和“迭代成功”。
上述方法中,判断是否与本设备的一个接口直接相邻的方法是,判断“下一跳设备”与本路由器的某一个接口是否属于同一个网络前缀,若相同,则下一跳设备与本设备直接相邻。
本发明的方法,如果因为某种原因,例如人工配置的改变,或链路的改变时,则该方法还应包括以下步骤1、若将一条“有效”或者“迭代成功”的第j个路由项删除,则重新遍历所有处于“迭代成功”的路由项;2、遍历中若发现第i个路由项迭代了第j个路由项,则将该路由项i重新标记为“等待迭代”;3、路由项i的出接口被置空,路由项不再参加转发,直到重新变成“迭代成功”。
上述情况下,当第j个路由项由“迭代成功”变成“等待迭代”后,需要重新遍历所有处于“迭代成功”的路由项;遍历中若发现第i个路由项迭代了第j个路由项,则将该路由项i重新标记为“等待迭代”;路由项i的出接口被置空,路由项不再参加转发,直到重新变成“迭代成功”。
本发明的方法,如果因为某种原因,例如人工配置的改变,或链路的改变时,则该方法还应包括以下步骤1、当增加一个新的“有效”路由项j时,则遍历所有处于“等待迭代”的路由项,检查是否有路由项需要进行迭代;2、遍历中若发现路由项i的“下一跳设备”处于一个“有效”或者“迭代成功”状态的第j个路由项的“目的地址”范围内,则路由项i迭代了路由项j;3、将路由项i标记为“迭代成功”,并在路由项i中记录“迭代了路由项j”;
4、使用路由项j的出接口转发路由项i的报文。
上述情况下,当一个“等待迭代”的路由项j变成了“迭代成功”后,则遍历所有处于“等待迭代”的路由项,检查是否有路由项需要进行迭代。遍历中若发现路由项i的“下一跳设备”处于一个“有效”或者“迭代成功”状态的第j个路由项的“目的地址”范围内,则路由项i迭代了路由项j;将路由项i标记为“迭代成功”,并在路由项i中记录“迭代了路由项j”;使用路由项j的出接口转发路由项i的报文。
本发明提出的三层网络中通过多重迭代查找路由下一跳的方法,具有以下优点1、使用“多重迭代”的方式在三层网络设备上可以极大地简化网络配置,网络管理员可以指定非相邻设备作为路由的下一跳设备,然后依赖“多重迭代”的功能自动寻找转发的出接口。
2、当三层网络设备的周边拓扑发生变化时,网络路由项配置可以不改变,“多重迭代”功能会自动调整实际进行转发的出接口来适应网络变化,从而大大的减少了网络管理的工作量。
3、配置的路由项可以迭代到动态路由协议生成的路由项上,这样可以利用动态路由协议连通到远端网络,而不必考虑动态路由协议运行的具体网络拓扑。
4、“多重迭代”是一个本地路由配置和转发选择的功能,并不需要整个网络的设备支持,因此可以方便通过逐个升级网络设备软件来实现。
图2和图3为本发明的两个实施例的网络示意图。
本发明提出的三层网络中通过多重迭代查找路由下一跳的方法,包括如下各步骤1、为三层网络设备的每一个路由项,设置一个位置存放状态标记;可能有3种标记“有效”、“等待迭代”、“迭代成功”。每一个路由项同时有且只可能有其中一个标记。只有标记为“有效”、“迭代成功”的路由项才会有“出接口”,才能够指导报文转发。处于“等待迭代”状态的路由项出接口为“空”,不可以指导报文转发;2、检查每一个路由项的下一跳设备,是否与本设备的一个接口直接相邻;可以根据“下一跳设备”是否和本路由器的某一个接口属于同一个网络前缀来判断;3、若下一跳设备与本设备直接相邻,则将此路由项标记为“有效”;4、若下一跳设备与本设备不直接相邻,则将该路由项标记为“等待迭代”;5、检查标记为“等待迭代”第i个路由项,若该路由器项的“下一跳设备”处于一个“有效”或者“迭代成功”状态第j个路由项的“目的地址”范围内,则路由项i迭代了路由项j;然后将路由项i标记为“迭代成功”,并将路由项j的“出接口”作为路由项i的“出接口”,也就是使用路由项j的出接口来指导路由项i的报文转发,在路由项i中记录“迭代了路由项j”。
如果因为某种原因,例如人工配置的改变,或链路的改变,而将一条“有效”或者“迭代成功”的路由项j删除,则需要重新遍历所有处于“迭代成功”的路由项,如果发现某一个路由项i迭代了路由项j,则将这样的路由项i重新标记为“等待迭代”,路由项i的出接口被置空,路由项不再参加转发,直到重新变成“迭代成功”。
由于上述情况,而使一个“迭代成功”的路由项j变成“等待迭代”,则需要重新遍历所有处于“迭代成功”的路由项,即当发现某一个路由项i迭代了路由项j时,则将该路由项i重新标记为“等待迭代”,路由项i的出接口被置空,路由项不再参加转发,直到重新变成“迭代成功”。
如果因为某种原因,例如人工配置的改变,或链路的改变时,则该方法还应包括以下步骤1、当增加一个新的“有效”路由项j时,则遍历所有处于“等待迭代”的路由项,检查是否有路由项需要进行迭代;2、遍历中若发现路由项i的“下一跳设备”处于一个“有效”或者“迭代成功”状态的第j个路由项的“目的地址”范围内,则路由项i迭代了路由项j;3、将路由项i标记为“迭代成功”,并在路由项i中记录“迭代了路由项j”;4、使用路由项j的出接口转发路由项i的报文。
上述情况下,当一个“等待迭代”的路由项j变成了“迭代成功”后,则遍历所有处于“等待迭代”的路由项,检查是否有路由项需要进行迭代。遍历中若发现路由项i的“下一跳设备”处于一个“有效”或者“迭代成功”状态的第j个路由项的“目的地址”范围内,则路由项i迭代了路由项j;将路由项i标记为“迭代成功”,并在路由项i中记录“迭代了路由项j”;使用路由项j的出接口转发路由项i的报文。
上述迭代过程可以是一个多重迭加的过程,也就是说,可能存在第一路由项被第二路由项迭代,第二路由项又可能被第三路由项迭代,形成一个迭代链。
本发明方法中的三层网络设备可以是路由器或三层交换机。
上述方法中的路由项可以是人工配置的路由项,也可以是动态路由协议生成的路由项。
下面以图2为例说明本发明“多重迭代”的过程,如图2所示,有A、B、C这3台三层网络设备,C连接了一个网络N,设备A具有“多重迭代”功能。
一)在A上配置如下路由项

因为现在C不是A的直接相邻路由器,所以此路由被标记为等待迭代。
二)再在A上配置一条路由项j

根据“多重迭代”功能,路由项j被路由项i迭代。路由项i变成

三)如果因为网络变化,路由项j被删除,同时添加了路由项k

根据“多重迭代”功能,路由项i不需要重新配置,将自动改变为

这样数据流将不受影响,仍然可以通过路由项i进行转发。
在网络中存在动态路由协议时,“多重迭代”功能将更加具有实际使用价值。
动态路由协议(如OSPF、RIP等)根据各自的算法,生成“动态路由项”,这样的路由是一种处于“有效”状态的路由项。“动态路由项”一般可以维持一个区域范围内的连通性。
在图3所示的网络中,网络设备A通过一个网络M和网络设备B相连,网络设备B连接着一个目标网络N。A有多个接口连接到网络M上,网络M中运行OSPF动态路由协议来维持网络的连通性,也维持着A-B之间的连通性。
那么在A上可以配置这样的一条路由项i

因为现在B不是A的直接相邻路由器,所以此路由被标记为等待迭代。
因为网络N中的动态路由协议维持着A和B之间的连通性,即网络M中的动态路由协议可以发现了从A到达B的路由项j,那么路由项j马上可以被路由项i迭代,路由项i成为“迭代成功”,获得了有效的出接口,可以指导报文转发。

这种情况下,“多重迭代”的重要意义在于无论网络M中的拓扑结构如何变更,只要动态路由协议仍然可以维持A-B之间的连通性,那么路由项i就不需要重新配置,不需要人工进行管理。“多重迭代”将自动维护路由项i的有效性,自动获得正确的出接口来进行报文转发。
权利要求
1.一种三层网络中查找路由下一跳的方法,其特征在于该方法包括如下各步骤(1)为三层网络设备的每一个路由项,设置一个位置存放状态标记;(2)检查每一个路由项的下一跳设备,是否与本设备的一个接口直接相邻,若下一跳设备与本设备直接相邻,则将此路由项标记为“有效”,若不直接相邻,则将该路由项标记为“等待迭代”;(3)检查标记为“等待迭代”的第i个路由项,若该路由器项的“下一跳设备”处于一个“有效”或者“迭代成功”状态的第j个路由项的“目的地址”范围内,则路由项i迭代了路由项j;(4)将路由项i标记为“迭代成功”,并在路由项i中记录“迭代了路由项j”;(5)使用路由项j的出接口转发路由项i的报文。
2.如权利要求1所述的方法,其特征在于其中所述的位置存放状态标记为“有效”、“等待迭代”和“迭代成功”。
3.如权利要求1所述的方法,其特征在于判断是否与本设备的一个接口直接相邻的方法是判断“下一跳设备”与本路由器的某一个接口是否属于同一个网络前缀,若相同,则下一跳设备与本设备直接相邻。
4.如权利要求1所述的方法,其特征在于该方法还包括以下步骤(1)若将一条“有效”或者“迭代成功”的第j个路由项删除,则重新遍历所有处于“迭代成功”的路由项;(2)遍历中若发现第i个路由项迭代了第j个路由项,则将该路由项i重新标记为“等待迭代”;(3)路由项i的出接口被置空,路由项不再参加转发,直到重新变成“迭代成功”。
5.如权利要求4所述的方法,其特征在于该方法还包括以下步骤(1)当第j个路由项由“迭代成功”变成“等待迭代”后,重新遍历所有处于“迭代成功”的路由项;(2)遍历中若发现第i个路由项迭代了第j个路由项,则将该路由项i重新标记为“等待迭代”;(3)路由项i的出接口被置空,路由项不再参加转发,直到重新变成“迭代成功”。
6.如权利要求1所述的方法,其特征在于该方法还包括(1)当增加一个新的“有效”路由项j时,则遍历所有处于“等待迭代”的路由项,检查是否有路由项需要进行迭代;(2)遍历中若发现路由项i的“下一跳设备”处于一个“有效”或者“迭代成功”状态的第j个路由项的“目的地址”范围内,则路由项i迭代了路由项j;(3)将路由项i标记为“迭代成功”,并在路由项i中记录“迭代了路由项j”;(4)使用路由项j的出接口转发路由项i的报文。
7.如权利要求6所述的方法,其特征在于该方法还包括(1)当一个“等待迭代”的路由项j变成了“迭代成功”后,则遍历所有处于“等待迭代”的路由项,检查是否有路由项需要进行迭代。(2)遍历中若发现路由项i的“下一跳设备”处于一个“有效”或者“迭代成功”状态的第j个路由项的“目的地址”范围内,则路由项i迭代了路由项j;(3)将路由项i标记为“迭代成功”,并在路由项i中记录“迭代了路由项j”;(4)使用路由项j的出接口转发路由项i的报文。
8.如权利要求1所述的方法,其特征在于其中的三层网络设备为路由器或三层交换机。
9.如权利要求1所述的方法,其中的路由项为人工配置,或由动态路由协议生成。
全文摘要
本发明涉及一种三层网络中通过多重迭代查找路由下一跳的方法,属于数据通信技术领域。该方法首先在三层网络设备的路由项中设置一个状态标记;再检查路由项的下一跳设备是否与本设备的接口直接相邻,若直接相邻,则将此路由项标记为“有效”,若不直接相邻,则将该路由项标记为“等待迭代”;再将路由项根据根据不同状态进行跌代,使用跌代成功的路由项转发报文。本发明的方法,依赖“多重迭代”的自动寻找转发的出接口,极大地减少了网络管理的工作量,而且配置的路由项可以迭代到动态路由协议生成的路由项上,因此可以利用动态路由协议连通到远端网络,而不必考虑动态路由协议运行的具体网络拓扑。
文档编号H04L12/54GK1479496SQ02141749
公开日2004年3月3日 申请日期2002年8月27日 优先权日2002年8月27日
发明者刘炜刚 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1