路由更新方法、交换机及系统的制作方法

文档序号:7983627阅读:201来源:国知局
路由更新方法、交换机及系统的制作方法
【专利摘要】本发明公开了一种路由更新方法、交换机及系统,属于计算机网络领域。所述方法包括:当前设备探测至少两个邻居设备的链路状态;若所述当前设备探测到第一邻居设备的链路状态为不可达,则将内部路由表中与所述第一邻居设备对应的初始状态为可达的路由项置为不可达;所述当前设备还分别检测内部路由表中与每个目标子网所对应的所有路由项是否均为不可达,若是,则向不包括所述第一邻居设备的其它邻居设备发送路由更新消息。本发明通过在探测到邻居设备发生故障时,不计算而直接更新内部路由表和通知其他邻居设备更新内部路由表,达到了交换机仅需要通过简单地逻辑判断,就可以完成路由更新的效果。
【专利说明】路由更新方法、交换机及系统
【技术领域】
[0001]本发明涉及计算机网络领域,特别涉及一种路由更新方法、交换机及系统。
【背景技术】
[0002]路由协议,如OSPF (Open Shortest Path First,开放最短路径优先)协议、BGP(Border Gateway Protocol,边界网关协议)协议及ISIS (分级的链路状态路由协议)协议可以实现网络内任意两节点间的通信。例如,交换机可以通过所有的输出端口向所有相邻的交换机发送OSPF协议消息,该OSPF协议消息用于获取相邻交换机的链路状态,而每一个相邻的交换机又再将该OSPF协议消息发往其所有的相邻交换机,依次类推。这样,由于各交换机间频繁地交换链路状态信息,因此,所有的交换机最终都能建立一个链路状态数据库,这个链路状态数据库实际上就是整个网络的拓扑结构图。由此,每一个交换机都知道整个网络内共有多少个交换机,以及哪些交换机是相连的。这样,每一个交换机就可以根据该链路状态数据库中的数据采用最短路径路由算法来构建自己的路由表。
[0003]例如图1所示的数据中心网络架构,该数据中心网络架构中有两类交换机,由C标识的“核心交换机”及由A标识的“接入交换机”,其中,核心交换机仅与网络内的其他交换机相连,而接入交换机则用于连接所述核心交换机及具体网段内的终端设备。该数据中心网络中的核心交换机C的数量通常是2?4台,如图1中的C1、C2、C3及C4 ;而接入交换机A的数量至少在100台,如图1给出的AfAn。在图1所示的数据中心网络内的交换机运行OSPF路由协议后,C到A的转发路径正常情况下都是单跳(one hop)的,任意A之间的转发路径正常情况下都是两跳(two hops),有4条转发路径,如Al-[Cl I C2 | C3 | C4]_A4。
[0004]在网络运行的过程中,只要有一个交换机的链路状态发生了变化,整个网络就要重新通过OSPF协议来获取新的网络拓扑结构,网络中的所有交换机都要根据该新的网络拓扑结构重新计算转发路径。例如,如图1所示的Cl到Al间的链路中断后,所有交换机要重新计算至A4的转发路径,如Al重新计算出A1-C2-A4、A1-C3-A4和A1-C4-A4这3条至A4的转发路径,比故障前少了 I条。这种当网络内出现交换机的链路状态发生变化,所有交换机就要重新计算转发路径的情况,将会导致交换机计算资源的浪费,也不利于整个路由信息维护的收敛。具体以Cl为例来讲,Cl还会计算至A4的3hops (故障前是Ihop)绕行路径=Cl-[Al IA2 I A3 IA5 | An] - [C2 | C3 | C4] -A4,一共是 3* (n_2)条,当假设 n=102,那么 C1-A4链路故障后,Cl会计算出300条至A4的绕行路径,而实际上,没有任何一台A会选择Cl至A4的转发路径,因此Cl计算的绕行路径实际上是无效的,但这种无效计算会占用Cl大量的计算资源,最终造成交换机的设计变得较为复杂,成本高昂。

【发明内容】

[0005]有鉴于此,本发明实施例提供了一种路由更新方法、交换机及系统,以便解决现有的路由更新方法在出现链路故障后会导致部分交换机进行很多无效计算的问题。所述技术方案如下:[0006]一个方面,提供了一种路由更新方法,所述方法包括:
[0007]当前设备探测至少两个邻居设备的链路状态,所述邻居设备为所述当前设备一跳可达的上游设备或者下游设备;
[0008]若所述当前设备探测到第一邻居设备的链路状态为不可达,则所述当前设备将内部路由表中与所述第一邻居设备对应的所有路由项中初始状态为可达的路由项置为不可达;
[0009]所述当前设备在至少一个路由项的状态因链路状态改变被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括所述第一邻居设备的其它邻居设备发送路由更新消息,以便所述其它邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项置为不可达。
[0010]进一步地,所述当前设备探测邻居设备的链路状态之前,还包括:
[0011]所述当前设备存储内部路由表,在所述内部路由表中以二维坐标标识每个路由项,所述二维坐标中的一个坐标为所述邻居设备,另一个坐标为所述目标子网;对于每个路由项,若经过与所述路由项的坐标所对应的邻居设备通往与所述路由项的坐标所对应的目标子网的路径并非所述当前设备通往所述目标子网的所有路径中的最短路径,则所述路由项始终为不可达。
[0012]进一步地,所述方法,还包括:
[0013]若所述当前设备探测到所述第一邻居设备的链路状态由不可达变为可达,则所述当前设备将内部路由表中与所述第一邻居设备对应的所有路由项中初始状态为可达的路由项由不可达恢复为可达;
[0014]所述当前设备在至少一个路由项的状态因链路状态改变被恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第一邻居设备的其它邻居设备发送路由更新消息,以便所述邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项由不可达恢复为可达。
[0015]进一步地,所述方法,还包括:
[0016]所述当前设备接收第二邻居设备的路由更新消息,所述路由更新消息携带有所述第二邻居设备的标识、目标子网的标识和是否可达的标识;
[0017]所述当前设备将所述内部路由表中与所述第二邻居设备和所述目标子网两者均对应的路由项根据所述是否可达的标识进行更新,所述更新包括将路由项的状态有可达置为不可达,或者,由不可达恢复为可达;
[0018]所述当前设备在至少一个路由项的状态因路由更新被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括所述第二邻居设备的其它邻居设备发送路由更新消息,以便所述其它邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项置为不可达;
[0019]和/或,所述当前设备在至少一个路由项的状态因路由更新被恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第二邻居设备的其它邻居设备发送路由更新消息,以便所述邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项由不可达恢复为可达。
[0020]进一步地,所述方法,还包括:
[0021]所述当前设备向所述邻居设备针对同一路由项发送路由更新消息的时间间隔不小于预定阈值。
[0022]另一方面,提供了一种交换机,包括:
[0023]链路探测模块,用于探测至少两个邻居设备的链路状态,所述邻居设备为所述交换机一跳可达的上游设备或者下游设备;
[0024]路由更新模块,用于若所述链路探测模块探测到第一邻居设备的链路状态为不可达,则将内部路由表中与所述第一邻居设备对应的所有路由项中初始状态为可达的路由项置为不可达;
[0025]更新发送模块,用于在至少一个路由项的状态因链路状态改变被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括所述第一邻居设备的其它邻居设备发送路由更新消息,以便所述其它邻居设备将内部路由表中与所述交换机和所述目标子网两者均对应的路由项置为不可达。
[0026]进一步地,所述交换机,还包括:
[0027]路由表存储模块;
[0028]所述路由表存储模块,用于存储内部路由表,在所述内部路由表中以二维坐标标识每个路由项,所述二维坐标中的一个坐标为所述邻居设备,另一个坐标为所述目标子网;对于每个路由项,若经过与所述路由项的坐标所对应的邻居设备通往与所述路由项的坐标所对应的目标子网的路径并非所述当前设备通往所述目标子网的所有路径中的最短路径,则所述路由项始终为不可达。
[0029]进一步地,所述路由更新模块,还用于若所述链路探测模块探测到所述第一邻居设备的链路状态由不可达变为可达,则将内部路由表中与所述第一邻居设备对应的所有路由项中初始状态为可达的路由项由不可达恢复为可达;
[0030]所述更新发送模块,还用于在至少一个路由项的状态因链路状态改变被恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第一邻居设备的其它邻居设备发送路由更新消息,以便所述邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项由不可达恢复为可达。
[0031]进一步地,所述交换机,还包括:
[0032]消息接收模块;
[0033]所述消息接收模块,用于接收第二邻居设备的路由更新消息,所述路由更新消息携带有所述第二邻居设备的标识、目标子网的标识和是否可达的标识;
[0034]所述路由更新模块,还用于将所述内部路由表中与所述第二邻居设备和所述目标子网两者均对应的路由项根据所述是否可达的标识进行更新,所述更新包括将路由项的状态有可达置为不可达,或者,由不可达恢复为可达;[0035]所述更新发送模块,还用于在至少一个路由项的状态因路由更新被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括所述第二邻居设备的其它邻居设备发送路由更新消息,以便所述其它邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项置为不可达;
[0036]和/或,所述更新发送模块,还用于在至少一个路由项的状态因路由更新被恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第二邻居设备的其它邻居设备发送路由更新消息,以便所述邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项由不可达恢复为可达。
[0037]进一步地,所述更新发送模块,还用于向所述邻居设备针对同一路由项发
[0038]送路由更新消息的时间间隔不小于预定阈值。
[0039]又一发面,提供了一种网络系统,包括至少一个如另一方面所述的交换机,所述交换机组成两级或者两级以上的交换网络,每个交换机只与位于上一级的交换机或者位于下一级的交换机相连。
[0040]本发明实施例提供的技术方案带来的有益效果是:
[0041]当前设备通过在探测到邻居设备发生故障时,不计算而直接更新内部路由表和选择性地通知其他邻居设备更新内部路由表,解决了现有的路由更新方法在出现链路故障后会导致部分交换机进行很多无效计算的问题,达到了交换机仅需要通过简单地逻辑判断,就可以完成路由更新的效果。
【专利附图】

【附图说明】
[0042]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0043]图1是现有技术中的一种数据中心网络架构的结构示意图;
[0044]图2是本发明实施例一提供的路由更新方法的方法流程图;
[0045]图3A是本发明实施例二所涉及的实施环境的结构示意图;
[0046]图3B是本发明实施例二提供的路由更新方法的方法流程图;
[0047]图3C是本发明实施例二中若干交换机在初始状态下的内部路由表;
[0048]图3D是本发明实施例二中若干交换机在路由更新之后的内部路由表;
[0049]图4A是本发明实施例三所涉及的实施环境的结构示意图;
[0050]图4B是本发明实施例三提供的路由更新方法的方法流程图;
[0051]图4C是本发明实施例三中若干交换机在初始状态下的内部路由表;
[0052]图4D是本发明实施例三中若干交换机在路由更新之后的内部路由表;
[0053]图5是本发明实施例四提供的交换机的结构方框图;
[0054]图6是本发明实施例五提供的交换机的结构方框图;[0055]图7是本发明实施例六提供的网络系统的结构示意图。
【具体实施方式】
[0056]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0057]实施例一
[0058]请参考图2,其示出了本发明实施例一提供的路由更新方法的方法流程图。该路由更新方法可以用于由两级或者两级以上的设备组成的交换网络,每个设备只与位于上一级的设备或者位于下一级的设备相连。本文中,将与当前设备相连的且位于当前设备上一级的设备称之为“上游设备”;将与当前设备相连的且位于当前设备下一级的设备称之为“下游设备”。该路由更新方法,具体包括:
[0059]步骤201,当前设备探测至少两个邻居设备的链路状态,该邻居设备为当前设备一跳可达的上游设备或者下游设备;
[0060]步骤202,若当前设备探测到第一邻居设备的链路状态为不可达,则当前设备将内部路由表中与弟一邻居设备对应的所有路由项中初始状态为可达的路由项直为不可达;
[0061]步骤203,当前设备在至少一个路由项的状态因链路状态改变被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括第一邻居设备的其它邻居设备发送路由更新消息,以便其它邻居设备将内部路由表中与当前设备和目标子网两者均对应的路由项置为不可达。
[0062]综上所述,本实施例提供的路由更新方法中,当前设备通过在探测到邻居设备发生故障时,不计算而直接更新内部路由表和选择性地通知其他邻居设备更新内部路由表,解决了现有的路由更新方法在出现链路故障后会导致部分交换机进行很多无效计算的问题,达到了交换机仅需要通过简单地逻辑判断,就可以完成路由更新的效果。
[0063]为了更好地描述,在下述实施例中以路由更新方法应用于两级设备组成的交换网络中来举例说明。
[0064]实施例二
[0065]请参考图3A,其示出了本发明实施例二所涉及的实施环境的结构示意图。该实施环境是一个数据中心中由两级交换机组成的交换网络,每个交换机只与位于上一级的交换机或者位于下一级的交换机相连。本文中,将与当前交换机相连的且位于当前交换机上一级的交换机称之为“上游设备”;将与当前交换机相连的且位于当前交换机下一级的交换机称之为“下游设备”。具体地讲,该实施环境包括:
[0066]位于上一级的4个核心交换机Cl、C2、C3和C4 ;
[0067]位于下一级的η个接入交换机Al、Α2、A3、Α4、Α5和An ;其中,Α6至Alri未具体示出。每个接入交换机各自都分别与核心交换机相连,比如,Al分别与Cl、C2、C3和C4相连;Α2分别与Cl、C2、C3和C4相连;Α3分别与Cl、C2、C3和C4相连,等等。每个接入交换机分别对应一个子网,比如接入交换机Al的子网是数据中心内部具体的服务器接入网段subnetl ;接入交换机Α2的子网是数据中心内部具体的服务器接入网段subnet2,等等。
[0068]与接入交换机属于同一级的2个边界交换机BI和B2。边界交换机属于特殊的接入交换机,每个边界交换机对应的子网是default (默认路由),边界交换机在具有接入交换机的功能的基础上,同时运行传统的诸如OSPF的其它路由协议,以便和数据中心外部的网络互连互通。也即,边界交换机会将数据中心内部路由聚合后发布到外部,以实现数据中心和外部互连互通的要求。每个边界交换机也各自都与核心交换机相连,比如,BI分别与Cl、C2、C3和C4相连;B2分别与Cl、C2、C3和C4相连。
[0069]在上述网络拓扑中,同一级的设备互相之间并不直接相连。
[0070]请参考图3B,其示出了本发明实施例二提供的路由更新方法的方法流程图。本实施例以该路由更新方法应用于图3A所示实施环境为例来举例说明,在一个交换机被认为是当前设备时,与其相连的上游设备或者下游设备被称之为邻居设备。该路由更新方法,具体包括:
[0071]步骤301,当前设备存储内部路由表,在当前设备的内部路由表中以二维坐标标识每个路由项,二维坐标中的一个坐标为邻居设备,另一个坐标为目标子网。
[0072]对于每个路由项,若经过与该路由项的坐标所对应的邻居设备通往与该路由项的坐标所对应的目标子网的路径并非当前设备通往该目标子网的所有路径中的最短路径,则该路由项始终为不可达。
[0073]具体地讲,每个交换机中都事先存储一张内部路由表,该内部路由表中的转发路径并非是实时计算的最短路径,而是以最短路径为基础的固定路径。请结合参考图3C,其示出了若干交换机在初始状态下的内部路由表。
[0074]若当前设备为接入交换机Al,在Al的内部路由表中,以二维坐标标识每个路由项,二维坐标中的位于行的坐标为邻居设备Cl、C2、C3和C4,位于列的坐标为目标子网subnetl、subnet2、subnet3,、、、,以及default。对于每个路由项,路由项中的数字为I时,表示可达;路由项中的数字为O时,表示不可达;路由项中为空白时,表示始终不可达。比如,对于目标子网subnet3,当邻居设备为Cl、C2、C3和C4时,均为可达,而且都是最短的2hops路径;又比如,对于目标子网subnetl,从当前设备Al到目标子网subnetl的最短路径就是自身,所以不论是邻居设备为哪一个,经过邻居设备通往subnetl的路径均不是最短路径,所以第一行的路由项始终为不可达。
[0075]对于接入交换机A2至An,与接入交换机Al类似,不再赘述。
[0076]若当前设备为核心交换机Cl,在Cl的内部路由表中,以二维坐标标识每个路由项,二维坐标中的位于行的坐标为邻居设备A1、A2、A3,、、、,Αη、Β1和B2,位于列的坐标为目标子网subnetl、subnet2、subnet3,、、、,以及default。对于每个路由项,路由项中的数字为I时,表示可达;路由项中的数字为O时,表示不可达;路由项中为空白时,表示始终不可达。比如,对于目标子网subnet3,当邻居设备为A3时,经过A3通往与subnet3的路径为最短的Ihop路径,所以该路由项为可达,但是当邻居设备为Al时,虽然可以经过C1-A1-C2-A3之类的路径通往subnet3,但不是从Cl出发通往subnet3的最短路径,所以该路由项始终为不可达;又比如,对于目标子网default,当邻居设备为BI或者B2时,经过BI或者B2通往与default的路径为最短的Ihop路径,所以该路由项为可达,但是当邻居设备为Al至An时,虽然可以经过C1-A1-C2-B1之类的路径通往default,但不是从Cl出发通往default的最短路径,所以对应的路由项始终为不可达。
[0077]对于核心交换机C2至C4,与核心交换机Cl类似,不再赘述。[0078]若当前设备为边界交换机BI,在BI的内部路由表中,以二维坐标标识每个路由项,二维坐标中的位于行的坐标为邻居设备Cl、C2、C3和C4,位于列的坐标为目标子网subnetl、subnet2、subnet3,、、、,以及default。对于每个路由项,路由项中的数字为I时,表示可达;路由项中的数字为O时,表示不可达;路由项中为空白时,表示始终不可达。比如,对于目标子网subnet3,当邻居设备为Cl、C2、C3和C4时,均为可达,而且都是最短的2hops路径;又比如,对于目标子网default,从当前设备BI到目标子网default的最短路径就是自身,所以不论是邻居设备为哪一个,经过邻居设备通往default的路径均不是最短路径,所以最后一行的路由项始终为不可达。
[0079]对于边界交换机B2,与边界交换机BI类似,不再赘述。
[0080]步骤302,当前设备探测至少两个邻居设备的链路状态,该邻居设备为当前设备一跳可达的上游设备或者下游设备;
[0081]若当前设备为接入交换机Al,其Ihop可达的设备为位于上一级的核心交换机Cl、C2、C3和C4,所以Al分别探测Cl、C2、C3和C4的链路状态;
[0082]同理,A2至An也是分别探测Cl、C2、C3和C4的链路状态。
[0083]若当前设备为核心交换机Cl,其Ihop可达的设备为位于下一级的接入交换机Al至An和边界交换机B1、B2,所以Cl分别探测Al至An、BI和B2的链路状态;
[0084]同理,C2也是分别探测Al至An、BI和B2的链路状态。
[0085]若当前设备为边界交换机BI,其Ihop可达的设备为位于上一级的核心交换机Cl、C2、C3和C4,所以B I分别探测Cl、C2、C3和C4的链路状态;
[0086]同理,B2也是分别探测Cl、C2、C3和C4的链路状态。
[0087]也即,相邻的两个设备相互探测对方的链路状态。
[0088]步骤303,若当前设备探测到第一邻居设备的链路状态为不可达,则当前设备将内部路由表中与弟一邻居设备对应的所有路由项中初始状态为可达的路由项直为不可达;
[0089]第一邻居设备是当前设备的至少两个邻居设备中的某一个邻居设备。其中,“第一”仅为了便于区别描述,并不包含其他特殊含义。
[0090]若当前设备为接入交换机Al,假设Al探测到Cl的链路状态为不可达,则Al将内部路由表中与Cl对应的所有路由项中初始状态为可达的路由项置为不可达,如图3D所示。
[0091]若当前设备为核心交换机Cl,假设Cl探测到Al的链路状态为不可达,则Cl将内部路由表中与Al对应的所有路由项中初始状态为可达的路由项置为不可达,如图3D所示。
[0092]步骤304,当前设备在至少一个路由项的状态因链路状态改变被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括第一邻居设备的其它邻居设备发送路由更新消息,以便其它邻居设备将内部路由表中与当前设备和目标子网两者均对应的路由项置为不可达。
[0093]若当前设备为接入交换机Al,继续假设Al探测到Cl的链路状态为不可达,Al首先会将内部路由表中与Cl对应的所有路由项中初始状态为可达的路由项置为不可达;然后分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,检测发现没有哪一个目标子网所对应的所有路由项变成均为不可达(目标子网subnet2-default原来分别对应有四个路由项可达,现在变为分别对应三个路由项可达),所以不进行后续处理。
[0094]若当前设备为核心交换机Cl,继续假设Cl探测到Al的链路状态为不可达,则Cl将内部路由表中与Al对应的所有路由项中初始状态为可达的路由项置为不可达,也即将第一行第一列所对应的路由项由“I”变为“0”,如图3D所示;
[0095]此时,Cl分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,检测发现与subnetl所对应的所有路由项变成均为不可达(也即,第一行的路由项全部变成了不可达),则Cl向除Al之外的其它邻居设备发送路由更新消息,以便其它邻居设备将内部路由表中与Cl和subnetl两者均对应的路由项置为不可达,如图3D所示,A2至An、BI和B2中与Cl和subnetl两者均对应的路由项,全部由“ I”变为了 “O”。
[0096]步骤305,若当前设备探测到第一邻居设备的链路状态由不可达变为可达,则当前设备将内部路由表中与第一邻居设备对应的所有路由项中初始状态为可达的路由项由不可达恢复为可达;
[0097]若当前设备为核心交换机Cl,假设Cl探测到Al的链路状态由不可达恢复为可达,则Cl将内部路由表中与Al对应的所有路由项中初始状态为可达的路由项恢复为可达,也即将第一行第一列所对应的路由项由“O”恢复为“1”,如图3C所示;
[0098]步骤306,当前设备在至少一个路由项的状态因链路状态改变被恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第一邻居设备的其它邻居设备发送路由更新消息,以便邻居设备将内部路由表中与当前设备和目标子网两者均对应的路由项由不可达恢复为可达。
[0099]在上一步骤之后,Cl还分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,检测发现与subnetl所对应的所有路由项由均为不可达变成至少一个可达(也即,第一行第一列所对应的路由项变成了可达),则Cl向除Al之外的其它邻居设备发送路由更新消息,以便其它邻居设备将内部路由表中与Cl和subnetl两者均对应的路由项由不可达恢复为可达,如图3C所示,A2至An、BI和B2中与Cl和subnetl两者均对应的路由项,全部由“O”变为了 “ I”。
[0100]综上所述,本实施例提供的路由更新方法,当前设备通过在探测到邻居设备发生故障时,不计算而直接更新内部路由表和选择性地通知其他邻居设备更新内部路由表,解决了现有的路由更新方法在出现链路故障后会导致部分交换机进行很多无效计算的问题,达到了交换机仅需要通过简单地逻辑判断,就可以完成路由更新的效果。
[0101]实施例三
[0102]请参考图4A,其示出了本发明实施例三所涉及的实施环境的结构示意图。该实施环境是一个数据中心中由三级交换机组成的交换网络。具体地讲,该实
[0103]施环境包括:
[0104]位于最上一级的2个核心交换机Cl和C2。
[0105]位于中间一级的2个边界交换机BI和B2。边界交换机属于特殊的接入交换机,每个边界交换机对应的子网是default (默认路由),边界交换机在具有接入交换机的功能的基础上,同时运行传统的诸如OSPF的其它路由协议,以便和数据中心外部的网络互连互通。也即,边界交换机会将数据中心内部路由聚合后发布到外部,以实现数据中心和外部互连互通的要求。每个边界交换机也各自都与核心交换机相连,比如,BI分别与Cl和C2相连;B2分别与Cl和C2相连。
[0106]位于中间一级的4个汇聚点交换机G1、G2、G3和G4。每个汇聚点交换机各自都与核心交换机相连,比如,Gl分别与Cl和C2相连;G3分别与Cl和C2相连,等等。每个汇聚点交换机的下一级还设置有若干个接入交换机,其中,Gl和G2及下属接入交换机形成第一设备集群PODl ;G3和G4及下属接入交换机形成第二设备集群P0D2。
[0107]位于最低一级的8个接入交换机六1、六2、4334、45、46、47和八8。其中,A1、A2、A3和A4属于PODl,分别与Gl和G2相连;A5、A6、A7和A8属于P0D2,分别与G3和G4相连。每个接入交换机分别对应一个子网,比如接入交换机Al的子网是数据中心内部具体的服务器接入网段subnetl ;接入交换机A2的子网是数据中心内部具体的服务器接入网段subnet2,等等。
[0108]在上述网络拓扑中,同一级的设备互相之间并不直接相连。
[0109]请参考图4B,其示出了本发明实施例三提供的路由更新方法的方法流程图。本实施例以该路由更新方法应用于图4A所示实施环境为例来举例说明,在一个交换机被认为是当前设备时,与其相连的上游设备或者下游设备被称之为邻居设备。该路由更新方法,具体包括:
[0110]步骤401,当前设备存储内部路由表,在当前设备的内部路由表中以二维坐标标识每个路由项,二维坐标中的一个坐标为邻居设备,另一个坐标为目标子网。
[0111]对于每个路由项,若经过与该路由项的坐标所对应的邻居设备通往与该路由项的坐标所对应的目标子网的路径并非当前设备通往该目标子网的所有路径中的最短路径,则该路由项始终为不可达。
[0112]具体地讲,每个交换机中都事先存储一张内部路由表,该内部路由表中的转发路径并非是实时计算的最短路径,而是以最短路径为基础的固定路径。请结合参考图4C,其示出了若干交换机在初始状态下的内部路由表。
[0113]若当前设备为接入交换机Al,在Al的内部路由表中,以二维坐标标识每个路由项,二维坐标中的位于行的坐标为邻居设备Gl和G2,位于列的坐标为目标子网subnetl、subnet2、subnet3,、、、,subnet8以及default。对于每个路由项,路由项中的数字为I时,表示可达;路由项中的数字为O时,表示不可达;路由项中为空白时,表示始终不可达。比如,对于目标子网subnet3,不论邻居设备为Gl和G2,均为可达,而且都是最短的2hops路径;又比如,对于目标子网subnetl,从当前设备Al到目标子网subnetl的最短路径就是自身,所以不论邻居设备为哪一个,经过邻居设备通往subnetl的路径均不是最短路径,所以第一行的路由项始终为不可达。
[0114]对于接入交换机A2至AS,与接入交换机Al类似,不再赘述。
[0115]若当前设备为汇聚点交换机G1,在Gl的内部路由表中,以二维坐标标识每个路由项,二维坐标中的位于行的坐标为邻居设备Al、A2、A3、A4、Cl和C2,位于列的坐标为目标子网subnetl、subnet2、subnet3,、、、,subnet8以及default。对于每个路由项,路由项中的数字为I时,表示可达;路由项中的数字为O时,表示不可达;路由项中为空白时,表示始终不可达。比如,对于目标子网subnet3,当邻居设备为A3时,经过A3通往与subnet3的路径为最短的Ihop路径,所以该路由项为可达,但是当邻居设备为Al时,虽然可以经过G1-A1-G2-A3之类的路径通往subnet3,但不是从Gl出发通往subnet3的最短路径,所以该路由项始终为不可达;又比如,对于目标子网default,当邻居设备为Cl或者C2时,经过Cl或者C2通往default的路径为最短的2hop路径,所以该路由项为可达,但是当邻居设备为Al至A4时,虽然可以经过G1-A1-G2-C1-B1之类的路径通往default,但不是从Gl出发通往default的最短路径,所以对应的路由项始终为不可达。
[0116]对于汇聚点交换机G2、G3和G4,与汇聚点交换机Gl类似,不再赘述。
[0117]若当前设备为核心交换机Cl,在Cl的内部路由表中,以二维坐标标识每个路由项,二维坐标中的位于行的坐标为邻居设备Gl、G2、G3、G4、BI和B2,位于列的坐标为目标子网 subnetl、subnet2、subnet3,、、、,subnet n 以及 default。对于每个路由项,路由项中的数字为I时,表示可达;路由项中的数字为O时,表示不可达;路由项中为空白时,表示始终不可达。比如,对于目标子网subnet3,当邻居设备为Gl时,经过Gl通往与subnet3的路径为最短的2hop路径,所以该路由项为可达,但是当邻居设备为G3时,虽然可以经过C1-G3-C2-G1-A3之类的路径通往subnet3,但不是从Cl出发通往subnet3的最短路径,所以该路由项始终为不可达。
[0118]对于核心交换机C2,与核心交换机Cl类似,不再赘述。
[0119]若当前设备为边界交换机BI,在BI的内部路由表中,以二维坐标标识每个路由项,二维坐标中的位于行的坐标为邻居设备Cl和C2,位于列的坐标为目标子网subnetl、subnet2、subnet3,、、、,subnet η以及default。对于每个路由项,路由项中的数字为I时,表示可达;路由项中的数字为O时,表示不可达;路由项中为空白时,表示始终不可达。比如,对于目标子网subnet3,当邻居设备为Cl和C2时,均为可达,而且都是最短的3hops路径;又比如,对于目标子网default,从当前设备BI到目标子网default的最短路径就是自身,所以不论是邻居设备为哪一个,经过邻居设备通往default的路径均不是最短路径,所以第三行的路由项始终为不可达。
[0120]对于边界交换机B2,与边界交换机BI类似,不再赘述。
[0121]步骤402,当前设备探测至少两个邻居设备的链路状态,该邻居设备为当前设备一跳可达的上游设备或者下游设备;
[0122]若当前设备为接入交换机Al,其Ihop可达的设备为位于上一级的汇聚点交换机Gl和G2,所以Al分别探测Gl和G2的链路状态;
[0123]同理,A2至A4也是分别探测G1、G2的链路状态;而A5至A8则分别探测G3和G4的链路状态。
[0124]若当前设备为汇聚点交换机G1,其I hop可达的设备为位于上一级的汇聚点交换机Cl和C2,位于下一级的接入交换机A1、A2、A3和A4,所述Gl分别探测Al至A4、C1和C2的链路状态;
[0125]同理,G2也分别探测Al至A4、C1和C2的链路状态;而G3和G4则分别探测A5至A8、Cl和C2的链路状态;
[0126]若当前设备为核心交换机Cl,其Ihop可达的设备为位于下一级的汇聚点交换机Gl至G4和边界交换机B1、B2,所以Cl分别探测Gl至G4、B1和B2的链路状态;
[0127]同理,C2也是分别探测Gl至G4、BI和B2的链路状态。
[0128]若当前设备为边界交换机BI,其Ihop可达的设备为位于上一级的核心交换机Cl和C2,所以BI分别探测Cl和C2的链路状态;
[0129]同理,B2也是分别探测Cl和C2的链路状态。
[0130]也即,相邻的两个设备相互探测对方的链路状态。
[0131]步骤403,若当前设备探测到第一邻居设备的链路状态为不可达,则当前设备将内部路由表中与弟一邻居设备对应的所有路由项中初始状态为可达的路由项直为不可达;
[0132]第一邻居设备是当前设备的至少两个邻居设备中的某一个邻居设备。其中,“第一”仅为了便于区别描述,并不包含其他特殊含义。
[0133]下述步骤中,均以BI和BI的默认路由撤销来举例说明,比如,数据中心不需要接入外网了,BI和B2的默认路由撤销。对于其它路径发生故障或者撤销的情形,本领域技术人员可以容易及延伸思及,不再赘述。
[0134]若当前设备为核心交换机Cl,Cl探测到BI和B2的链路状态均为不可达,则Cl将内部路由表中与BI和B2对应的所有路由项中初始状态为可达的路由项置为不可达,也即将最后一行的路由项中初始状态为“ I”的路由项置为“0”,如图4D所示。
[0135]同时,核心交换机C2,也会将内部路由表中与BI和B2对应的所有路由项中初始状态为可达的路由项置为不可达,也即将最后一行的路由项中初始状态为“I”的路由项置为“0”,如图4D所示。
[0136]步骤404,当前设备在至少一个路由项的状态因链路状态改变被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括第一邻居设备的其它邻居设备发送路由更新消息,以便其它邻居设备将内部路由表中与当前设备和目标子网两者均对应的路由项置为不可达。
[0137]若当前设备为核心交换机Cl,Cl将内部路由表中与BI和B2对应的所有路由项中初始状态为可达的路由项置为不可达之后,此时,Cl分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,检测发现与default所对应的所有路由项变成均为不可达(也即,最后一行的路由项全部变成了不可达),则Cl向除BI和B2之外的其它邻居设备发送路由更新消息,以便其它邻居设备将内部路由表中与Cl和default两者均对应的路由项置为不可达,如图4D所示,G1、G2、G3和G4中与Cl和default两者均对应的路由项,由“I”变为了 “O”。
[0138]同理,核心交换机C2在将内部路由表中与BI和B2对应的所有路由项中初始状态为可达的路由项置为不可达之后,C2也分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,检测发现与default所对应的所有路由项变成均为不可达(也即,最后一行的路由项全部变成了不可达),则C2向除BI和B2之外的其它邻居设备发送路由更新消息,以便其它邻居设备将内部路由表中与C2和default两者均对应的路由项置为不可达,如图4D所示,GU G2、G3和G4中与C2和default两者均对应的路由项,由“I”变为了 “O”。
[0139]步骤402至步骤403是以当前设备通过探测邻居设备的链路状态来触发路由更新的。显然,当前设备也可以通过接收邻居设备的路由更新消息来触发路由更新。请参考如下步骤:
[0140]步骤405,当前设备接收第二邻居设备的路由更新消息,路由更新消息携带有所第二邻居设备的标识、目标子网的标识和是否可达的标识;
[0141]步骤406,当前设备将内部路由表中与第二邻居设备和目标子网两者均对应的路由项根据是否可达的标识进行更新,更新包括将路由项的状态有可达置为不可达,或者,由不可达恢复为可达;
[0142]步骤407,当前设备在至少一个路由项的状态因路由更新被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项均为不可达,则向不包括第二邻居设备的其它邻居设备发送路由更新消息,以便其它邻居设备将内部路由表中与当前设备和目标子网两者均对应的路由项置为不可达;
[0143]步骤408,当前设备在至少一个路由项的状态因路由更新被恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第二邻居设备的其它邻居设备发送路由更新消息,以便邻居设备将内部路由表中与当前设备和目标子网两者均对应的路由项由不可达恢复为可达。
[0144]具体地讲:
[0145]若当前设备为汇聚点交换机G1,G1可以接收到来自Cl的路由更新消息,该路由更新消息中包括Cl的标识、default的标识和不可达的标识;然后,Gl将内部路由表中与Cl和default两者均对应的路由项由“I”更新为“O”。
[0146]同理,Gl还会接收到来自C2的路由更新消息,该路由更新消息中包括C2的标识、default的标识和不可达的标识;然后,Gl将内部路由表中与C2和default两者均对应的路由项由“I”更新为“O”。
[0147]之后,Gl会分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,检测发现与default所对应的所有路由项变成均为不可达(也即,最后一行的路由项全部变成了不可达),则Gl向不包括Cl和C2的其它邻居设备Al至A4发送路由更新消息,以便Al至A4将内部路由表中与Gl和default两者均对应的路由项由“I”更新为“O”。
[0148]易于思及的,G2、G3和G4也会执行如Gl相同的操作,最终路由更新后的内部路由表如图4D所示。
[0149]如果数据中心又需要接入外网,恢复了 BI和B2的默认路由,则相应的路由更新过程基本为上述过程的逆过程,不再一一赘述。但是需要说明的是,在优选的方案中,当前设备向邻居设备针对同一路由项发送路由更新消息的时间间隔不小于预定阈值。也就是说,如果当前设备需要向邻居设备针对同一路由项发送路由更新消息,则两次路由更新消息的发送时间之间的时间间隔不小于预定阈值,这是为了避免产生路由震荡。该预定阈值可以是2秒,或者其它由设计者指定的数值。
[0150]综上所述,本实施例提供的路由更新方法,不仅具有上一实施例的优点,还通过接收第二邻居设备的路由更新消息,不计算而直接更新内部路由表和选择性地向不包含第二邻居设备的其它邻居设备反射路由更新消息,解决了现有的路由更新方法在出现链路故障后会导致部分交换机进行很多无效计算的问题,达到了交换机仅需要通过简单地逻辑判断,就可以完成路由更新的效果。[0151]下述实施例为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例。
[0152]实施例四
[0153]请参考图5,其示出了本发明实施例四提供的交换机的结构方框图。该交换机可以是核心交换机、汇聚点交换机、接入交换机和边界交换机中的某一种。该交换机包括链路探测模块520、路由更新模块540和更新发送模块560。
[0154]链路探测模块520,用于探测至少两个邻居设备的链路状态,所述邻居设备为所述交换机一跳可达的上游设备或者下游设备;
[0155]路由更新模块540,用于若所述链路探测模块520探测到第一邻居设备的链路状态为不可达,则将内部路由表中与所述第一邻居设备对应的所有路由项中初始状态为可达的路由项置为不可达;
[0156]更新发送模块560,用于在至少一个路由项的状态因链路状态改变被所述路由更新模块540置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括所述第一邻居设备的其它邻居设备发送路由更新消息,以便所述其它邻居设备将内部路由表中与所述交换机和所述目标子网两者均对应的路由项置为不可达。
[0157]综上所述,本实施例提供的交换机,通过在探测到邻居设备发生故障时,不计算而直接更新内部路由表和选择性地通知其他邻居设备更新内部路由表,解决了现有的路由更新方法在出现链路故障后会导致部分交换机进行很多无效计算的问题,达到了交换机仅需要通过简单地逻辑判断,就可以完成路由更新的效果。
[0158]实施例五
[0159]请参考图6,其示出了本发明实施例五提供的交换机的结构方框图。该交换机可以是核心交换机、汇聚点交换机、接入交换机和边界交换机中的某一种。该交换机包括路由表存储模块510、链路探测模块520、消息接收模块530、路由更新模块540和更新发送模块560
[0160]所述路由表存储模块510,用于存储内部路由表,在所述内部路由表中以二维坐标标识每个路由项,所述二维坐标中的一个坐标为所述邻居设备,另一个坐标为所述目标子网;对于每个路由项,若经过与所述路由项的坐标所对应的邻居设备通往与所述路由项的坐标所对应的目标子网的路径并非所述当前设备通往所述目标子网的所有路径中的最短路径,则所述路由项始终为不可达。
[0161]链路探测模块520,用于探测至少两个邻居设备的链路状态,所述邻居设备为所述交换机一跳可达的上游设备或者下游设备;
[0162]路由更新模块540,用于若所述链路探测模块520探测到第一邻居设备的链路状态为不可达,则将内部路由表中与所述第一邻居设备对应的所有路由项中初始状态为可达的路由项置为不可达;
[0163]更新发送模块560,用于在至少一个路由项的状态因链路状态改变被所述路由更新模块540置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括所述第一邻居设备的其它邻居设备发送路由更新消息,以便所述其它邻居设备将内部路由表中与所述交换机和所述目标子网两者均对应的路由项置为不可达。
[0164]所述路由更新模块540,还用于若所述链路探测模块520探测到所述第一邻居设备的链路状态由不可达变为可达,则将内部路由表中与所述第一邻居设备对应的所有路由项中初始状态为可达的路由项由不可达恢复为可达;
[0165]所述更新发送模块560,还用于在至少一个路由项的状态因链路状态改变被所述路由更新模块540恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第一邻居设备的其它邻居设备发送路由更新消息,以便所述邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项由不可达恢复为可达。
[0166]所述消息接收模块530,用于接收第二邻居设备的路由更新消息,所述路由更新消息携带有所述第二邻居设备的标识、目标子网的标识和是否可达的标识;
[0167]所述路由更新模块540,还用于将所述内部路由表中与所述第二邻居设备和所述目标子网两者均对应的路由项根据所述消息接收模块530接收到的是否可达的标识进行更新,所述更新包括将路由项的状态有可达置为不可达,或者,由不可达恢复为可达;
[0168]所述更新发送模块560,还用于在至少一个路由项的状态因路由更新被所述路由更新模块540置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括所述第二邻居设备的其它邻居设备发送路由更新消息,以便所述其它邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项置为不可达;
[0169]和/或,所述更新发送模块560,还用于在至少一个路由项的状态因路由更新被被所述路由更新模块540恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第二邻居设备的其它邻居设备发送路由更新消息,以便所述邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项由不可达恢复为可达。
[0170]所述更新发送模块560,还用于向所述邻居设备针对同一路由项发送路由更新消息的时间间隔不小于预定阈值。
[0171]综上所述,本实施例提供的交换机,不仅具有上一实施例的优点,还通过接收第二邻居设备的路由更新消息,不计算而直接更新内部路由表和选择性地向不包含第二邻居设备的其它邻居设备反射路由更新消息,解决了现有的路由更新方法在出现链路故障后会导致部分交换机进行很多无效计算的问题,达到了交换机仅需要通过简单地逻辑判断,就可以完成路由更新的效果。
[0172]实施例六
[0173]请参考图7,其示出了本发明实施例六提供的网络系统的结构示意图。该网络系统包括至少一个如实施例四或者实施例五所提供的交换机720,所述交换机720组成两级或者两级以上的交换网络,每个交换机只与位于上一级的交换机或者位于下一级的交换机相连。
[0174]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。[0175]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0176]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种路由更新方法,其特征在于,所述方法包括: 当前设备探测至少两个邻居设备的链路状态,所述邻居设备为所述当前设备一跳可达的上游设备或者下游设备; 若所述当前设备探测到第一邻居设备的链路状态为不可达,则所述当前设备将内部路由表中与所述第一邻居设备对应的所有路由项中初始状态为可达的路由项置为不可达;所述当前设备在至少一个路由项的状态因链路状态改变被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括所述第一邻居设备的其它邻居设备发送路由更新消息,以便所述其它邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项置为不可达。
2.根据权利要求1所述的路由更新方法,其特征在于,所述当前设备探测邻居设备的链路状态之前,还包括: 所述当前设备存储内部路由表,在所述内部路由表中以二维坐标标识每个路由项,所述二维坐标中的一个坐标为所述邻居设备,另一个坐标为所述目标子网;对于每个路由项,若经过与所述路由项的坐标所对应的邻居设备通往与所述路由项的坐标所对应的目标子网的路径并非所述当前设备通往所述目标子网的所有路径中的最短路径,则所述路由项始终为不可达。
3.根据权利要求1或2所述的路由更新方法,其特征在于,所述方法,还包括: 若所述当前设备探测到所述第一邻居设备的链路状态由不可达变为可达,则所述当前设备将内部路由表中与所述第一邻居设备对应的所有路由项中初始状态为可达的路由项由不可达恢复为可达; 所述当前设备在至少一个路由项的状态因链路状态改变被恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第一邻居设备的其它邻居设备发送路由更新消息,以便所述邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项由不可达恢复为可达。
4.根据权利要求1或2所述的路由更新方法,其特征在于,所述方法,还包括: 所述当前设备接收第二邻居设备的路由更新消息,所述路由更新消息携带有所述第二邻居设备的标识、目标子网的标识和是否可达的标识; 所述当前设备将所述内部路由表中与所述第二邻居设备和所述目标子网两者均对应的路由项根据所述是否可达的标识进行更新,所述更新包括将路由项的状态有可达置为不可达,或者,由不可达恢复为可达; 所述当前设备在至少一个路由项的状态因路由更新被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项均为不可达,则向不包括所述第二邻居设备的其它邻居设备发送路由更新消息,以便所述其它邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项置为不可达; 和/或,所述当前设备在至少一个路由项的状态因路由更新被恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第二邻居设备的其它邻居设备发送路由更新消息,以便所述邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项由不可达恢复为可达。
5.根据权利要求4所述的路由更新方法,其特征在于,所述方法,还包括: 所述当前设备向所述邻居设备针对同一路由项发送路由更新消息的时间间隔不小于预定阈值。
6.—种交换机,其特征在于,包括: 链路探测模块,用于探测至少两个邻居设备的链路状态,所述邻居设备为所述交换机一跳可达的上游设备或者下游设备; 路由更新模块,用于若所述链路探测模块探测到第一邻居设备的链路状态为不可达,则将内部路由表中与所述第一邻居设备对应的所有路由项中初始状态为可达的路由项置为不可达; 更新发送模块,用于在至少一个路由项的状态因链路状态改变被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括所述第一邻居设备的其它邻居设备发送路由更新消息,以便所述其它邻居设备将内部路由表中与所述交换机和所述目标子网两者均对应的 路由项置为不可达。
7.根据权利要求6所述的交换机,其特征在于,所述交换机,还包括: 路由表存储模块; 所述路由表存储模块,用于存储内部路由表,在所述内部路由表中以二维坐标标识每个路由项,所述二维坐标中的一个坐标为所述邻居设备,另一个坐标为所述目标子网;对于每个路由项,若经过与所述路由项的坐标所对应的邻居设备通往与所述路由项的坐标所对应的目标子网的路径并非所述当前设备通往所述目标子网的所有路径中的最短路径,则所述路由项始终为不可达。
8.根据权利要求6或7所述的交换机,其特征在于, 所述路由更新模块,还用于若所述链路探测模块探测到所述第一邻居设备的链路状态由不可达变为可达,则将内部路由表中与所述第一邻居设备对应的所有路由项中初始状态为可达的路由项由不可达恢复为可达; 所述更新发送模块,还用于在至少一个路由项的状态因链路状态改变被恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第一邻居设备的其它邻居设备发送路由更新消息,以便所述邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项由不可达恢复为可达。
9.根据权利要求6或7所述的交换机,其特征在于,所述交换机,还包括: 消息接收模块; 所述消息接收模块,用于接收第二邻居设备的路由更新消息,所述路由更新消息携带有所述第二邻居设备的标识、目标子网的标识和是否可达的标识; 所述路由更新模块,还用于将所述内部路由表中与所述第二邻居设备和所述目标子网两者均对应的路由项根据所述是否可达的标识进行更新,所述更新包括将路由项的状态有可达置为不可达,或者,由不可达恢复为可达; 所述更新发送模块,还用于在至少一个路由项的状态因路由更新被置为不可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否变成均为不可达,若检测到一个目标子网所对应的所有路由项变成均为不可达,则向不包括所述第二邻居设备的其它邻居设备发送路由更新消息,以便所述其它邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项置为不可达; 和/或,所述更新发送模块,还用于在至少一个路由项的状态因路由更新被恢复为可达之后,分别检测内部路由表中与每个目标子网所对应的所有路由项是否由均为不可达变成至少一个可达,若检测到一个目标子网所对应的所有路由项由均为不可达变成至少一个可达,则向不包括第二邻居设备的其它邻居设备发送路由更新消息,以便所述邻居设备将内部路由表中与所述当前设备和所述目标子网两者均对应的路由项由不可达恢复为可达。
10.根据权利要求9所述的交换机,其特征在于,所述更新发送模块,还用于向所述邻居设备针对同一路由项发送路由更新消息的时间间隔不小于预定阈值。
11.一种网络系统,其特征在于,包括至少一个如权利要求6至10任一所述的交换机,所述交换机组成两级或者两级以上的交换网络,每个交换机只与位于上一级的交换机或者位于下一级的交换机相连。`
【文档编号】H04L12/751GK103685035SQ201210362754
【公开日】2014年3月26日 申请日期:2012年9月26日 优先权日:2012年9月26日
【发明者】邱谆, 丁一, 陈平平, 钱波, 丘子隽 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1