路由更新方法和路由更新装置制造方法

文档序号:7807763阅读:85来源:国知局
路由更新方法和路由更新装置制造方法
【专利摘要】本发明提供一种路由更新方法和路由更新装置,应用于网关设备,该方法包括:与对端设备建立一个或多个邻居关系;当接收到对端设备通过指定邻居关系发送的预设报文时,将所述指定邻居关系对应的路由作为优选路由;仅通过所述优选路由对应的邻居关系,向对端设备发送更新报文。通过本发明的技术方案,可以减少更新报文的收发量,提高设备CPU和链路带宽的利用率。
【专利说明】路由更新方法和路由更新装置
【技术领域】
[0001 ] 本发明涉及通信【技术领域】,尤其涉及路由更新方法和路由更新装置。
【背景技术】
[0002]BGP(Border Gateway Protocol,边界网关协议)是一种既可以用于不同AS (Autonomous System,自治系统)之间,又可以用于同一 AS内部的动态路由协议。当BGP运行于同一 AS内部时,被称为IBGP(Internal BGP);当BGP运行于不同AS之间时,称为EBGP (External BGP)。AS是拥有同一选路策略,属于同一技术管理部门的一组路由器。
[0003]当BGP邻居发生变化或本地存在路由更新时,需要通过“更新(update)报文”在对等体(即构成BGP邻居的两台设备)之间交换路由信息,可以发布具有相同路径属性的多条可达路由,也可以同时撤销多条不可达路由。
[0004]在相关技术中,当两台设备之间建立了多个BGP邻居时,每个邻居都会向对端对等体发送更新报文,使对端重新进行路由的迭代、优选,然后对优选的路由重新下刷路由管理、下刷FIB (Forwarding Informat1n Base,转发信息库)指导流量转发。
[0005]然而,由于对端设备存在对路由的优选操作,使得流量仅通过优选路由来转发,若每个邻居都发送更新报文,将导致本端设备的报文开销较高,同时在设备的BGP邻居和路由较多的情况下,可能导致对端设备的CPU占用率过高,甚至在GR(Graceful Restart,平滑重启)过程中导致流量中断的情况。

【发明内容】

[0006]有鉴于此,本发明提供一种新的技术方案,可以减少更新报文的收发量,提高设备CPU和链路带宽的利用率。
[0007]为实现上述目的,本发明提供技术方案如下:
[0008]根据本发明的第一方面,提出了一种路由更新方法,应用于网关设备,包括:
[0009]与对端设备建立一个或多个邻居关系;
[0010]当接收到对端设备通过指定邻居关系发送的预设报文时,将所述指定邻居关系对应的路由作为优选路由;
[0011]仅通过所述优选路由对应的邻居关系,向对端设备发送更新报文。
[0012]根据本发明的第二方面,提出了一种路由更新装置,应用于网关设备,包括:
[0013]建立单元,与对端设备建立一个或多个邻居关系;
[0014]确定单元,当接收到对端设备通过指定邻居关系发送的预设报文时,将所述指定邻居关系对应的路由作为优选路由;
[0015]发送单元,仅通过所述优选路由对应的邻居关系,向对端设备发送更新报文。
[0016]由以上技术方案可见,本发明通过仅通过优选路由对应的邻居关系,执行更新报文的发送,从而可以减少更新报文的收发量,提高设备CPU和链路带宽的利用率。【专利附图】

【附图说明】
[0017]图1示出了根据本发明的一示例性实施例的BGP组网环境示意图;
[0018]图2示出了 BGP协议中的OPEN消息的报文格式示意图;
[0019]图3示出了根据本发明的一示例性实施例的在设备间建立多个邻居关系的示意图;
[0020]图4示出了根据本发明的一示例性实施例的路由更新方法的示意流程图;
[0021]图5示出了 BGP协议中的route-refresh消息的报文格式示意图;
[0022]图6示出了根据本发明的一示例性实施例的在设备间建立单个邻居关系的示意图;
[0023]图7示出了根据本发明的另一示例性实施例的路由更新方法的示意流程图;
[0024]图8示出了根据本发明的一示例性实施例的与多个设备间分别建立邻居关系的示意图;
[0025]图9示出了根据本发明的一示例性实施例的在设备间建立两个邻居关系的示意图;
[0026]图10示出了根据本 发明的另一示例性实施例的路由更新方法的示意流程图;
[0027]图11示出了根据本发明的另一示例性实施例的路由更新方法的示意流程图;
[0028]图12示出了根据本发明的另一示例性实施例的路由更新方法的示意流程图;
[0029]图13示出了根据本发明的一示例性实施例的与多个设备间分别建立多个邻居关系的不意图;
[0030]图14示出了根据本发明的一示例性实施例的网络设备的结构示意图;
[0031]图15示出了根据本发明的一示例性实施例的路由更新装置的示意框图。
【具体实施方式】
[0032]以下结合具体的组网环境,以基于BGP协议创建的邻居关系为例,详细阐述本发明的技术方案。当然,本领域技术人员应该理解的是,对基于其他协议来创建邻居关系的情况下,显然也能够通过本发明的技术方案,即仅通过优选路由对应的邻居关系来发送更新报文,从而减少更新报文的收发量,
[0033]提高设备CPU和链路带宽的利用率。
[0034]请参见图1,假定组网内包括三个自治区域分别为AS100、AS200和AS300。在区域AS100中,包含两台网关设备分别为设备A和设备B ;在区域AS200中,包含网关设备C ;在区域AS300中,包含两台网关设备分别为设备D和设备E。在图1中,通过连线表明了各台网关设备之间的邻居关系,且邻居关系包括多种类型:对于处在同一自治区域内的网关设备之间,比如设备A与设备B、设备D与设备E,称为IBGP(Inter1r BGP,内部BGP)邻居;对于处在不同自治区域内的网关设备之间,比如设备A与设备C、设备D与设备C,称为EBGP (Exter1r BGP,外部BGP)邻居;建立邻居关系的网关设备之间互称为BGP对等体(BGPpeer)。
[0035]对于内部BGP邻居和外部BGP邻居,其邻居关系的建立过程是类似的。请参考图2,是基于BGP协议的OPEN消息的报文格式,包括:
[0036]?版本号(Vers1n):用于标识发送该OPEN报文的BGP设备上运行的BGP版本。如果接收该OPEN报文的BGP设备的版本比较旧,它会拒绝新版本的连接,于是发送方设备会降低版本号并重新进行协商,直到双方对版本达成一致为止。
[0037]?本地自治系统(My AS):用于标识发起建立邻居关系的BGP设备所属的AS号。根据本地自治系统的AS号,双方可以决定建立的邻居关系是IBGP邻居,还是EBGP邻居。
[0038]?保持时间(Hold Time):BGP设备通过定期发送KEEPALIVE(保活)消息,向对端通知本端的存在,以保持邻居。Hold Time是BGP设备收到一个KEEPALIVE之前允许经过的最大秒数。这个时间或者是O秒(不发送KEEPALIVE),或者是至少3秒。一般默认KEEPALIVE每60秒发送一次,Hold Time为180秒。协商时,采用OPEN消息中较小的那个Hold Time 作为双方的 Hold Time。
[0039].BGP标识(BGP Identifier):用于标识邻居BGP设备的IP地址。
[0040]?可选参数长度(OptParmLen, Opt1nal Parameters Length):用于标识可选参数的长度。如果为O则表示没有可选参数。
[0041]?可选参数(Opt1nal Parameters):用于公布作为发送方的BGP设备对一些可选功能的支持,如认证、多协议支持等等。 [0042]基于图2所示的OPEN报文,则BGP设备在建立邻居关系时,采用下述方式:首先,BGP设备尝试与对等体建立一个TCP连接;然后,如果TCP连接建立成功,BGP设备向对等体发送一个OPEN消息,并等待从对等体返回的OPEN消息;若收到对等体返回的OPEN消息,BGP设备会检查该消息的所有字段,如果没有发现错误,则向对等体发送一个KEEPALIVE消息并启动KEEPALIVE定时器;最后,若收到对等体返回的KEEPALIVE消息,则邻居关系建立。
[0043]由图2所示的OPEN消息的报文格式可知,作为邻居的BGP设备之间,通过“BGP标识”来识别相应的邻居关系,且该“BGP标识”具体为BGP设备上的IP地址。实际上,BGP设备之间可以通过任何IP地址来建立邻居关系,而不限于某个固定的接口 IP,使得两台BGP设备之间实际上可以通过多个IP地址来建立多个邻居关系。
[0044]两台BGP设备之间往往会存在建立多个邻居关系的需求。比如,针对多业务场景下,BGP设备可以为每项业务分配对应的邻居关系,以实现业务之间的独立性;或者,当两台BGP设备之间存在多条路径时,可以针对每条路径建立对应的邻居关系,从而在多条路径之间形成负载分担或者主备关系。然而,本领域技术人员应该理解的是,业务、路径、邻居关系之间并非一一对应的关系,下面结合图3对AS100内的设备A与设备B (如图1所示)之间的邻居关系为例进行说明。
[0045]请参考图3,假定设备A上同时需要维护多个业务,则设备A可以为每个业务分配对应的邻居关系。比如当设备A中维护了业务1、业务2、业务3和业务4时,可以为业务I分配IP地址为IPl对应的邻居关系P1、为业务2分配IP地址为IP2对应的邻居关系P2、为业务3分配IP地址为IP3对应的邻居关系P3、为业务4分配IP地址为IP4对应的邻居关系P4。
[0046]当结合邻居关系与路径之间的关系时,假定设备A与设备B之间存在三条路径分别为路径1、路径2和路径3,且这三条路径可以为等价路径或非等价路径。具体地,比如图3所不:邻居关系Pl和P2可以对应于路径1、邻居关系P3可以对应于路径2、邻居关系P4可以对应于路径3,即每条路径可以对应于一个或多个邻居关系。当然,邻居关系与路径之间显然也可以采用一一对应的方式。[0047]同时,业务与邻居关系之间并不一定一一对应。假定设备A中维护了业务1、业务2和业务3,则作为一示例性实施例,可以为业务I分配邻居关系Pl和邻居关系P2、为业务2分配邻居关系P3、为业务3分配邻居关系P4,则在图3所示的对应关系中,业务I对应于路径1、业务2对应于路径2、业务3对应于路径3 ;或者,作为另一示例性实施例,可以为业务I分配邻居关系P1、为业务2分配邻居关系P2、为业务3分配邻居关系P3和P4,则在图3所示的对应关系中,业务I和业务2对应于路径1、业务3对应于路径2和路径3,则对于业务3而言,可以通过路径2和路径3实现负载分担,或者在路径2和路径3之间形成主备关系。
[0048]此外,建立邻居关系的两台设备可以处于相同的网段内;或者,当两台设备处于不同网段时,也可以通过VPN技术实现设备间的相互访问。并且,建立BGP邻居关系的两台设备之间还可以支持跨协议。
[0049]图4示出了根据本发明一示例性实施例的路由更新方法的流程示意图。
[0050]如图4所示,根据本发明一示例性实施例的路由更新方法,应用于网关设备,包括:
[0051]步骤402,与对端设备建立一个或多个邻居关系;
[0052]在本实施例中,本端设备与对端设备之间的可以通过上述方式建立邻居关系,其具体过程不再赘述。
[0053]步骤404,当接收到对端设备通过指定邻居关系发送的预设报文时,将所述指定邻居关系对应的路由作为优 选路由;
[0054]在本实施例中,每个邻居关系存在对应的路由,在多个邻居关系对应的多个路由中,对端设备仅选择其中的一个或多个路由为优选路由,以用于本端设备向对端设备进行流量转发,而其他的非优选路由则相当于优选路由的“备份路由”,仅当优选路由不可用(DOWN)时,才将非优选路由替换为新的优选路由,以用于流量转发。
[0055]作为一示例性实施例,BGP设备在确定优选路由时,可以采取如下策略:
[0056]?丢弃下一跳(NEXTJTOP)不可达的路由;
[0057]?优选Preferred-value (优选值)最大的路由;
[0058]?优选本地优先级(L0CAL_PREF)最高的路由;
[0059]?优选聚合路由;
[0060]?优选AS路径(AS_PATH)最短的路由;
[0061]?依次选择0RIGIN(源)类型为IGP (说明路由产生于本AS内)、EGP (说明路由通过EGP (Exter1r Gateway Protocol,外部网关协议)学到)、Incomplete (说明路由的来源无法确定)的路由;
[0062]?优选MED值最低的路由;
[0063]?依次选择从EBGP、联盟、IBGP学来的路由;
[0064]?优选下一跳Cost值最低的路由;
[0065]?优选CLUSTER_LIST长度最短的路由;
[0066]?优选0RIGINAT0R_ID最小的路由;
[0067]?优选Router ID最小的路由器发布的路由。
[0068]?优选地址最小的对等体发布的路由。[0069]步骤406,仅通过所述优选路由对应的邻居关系,向对端设备发送更新报文。
[0070]在本实施例中,由于更新报文用于可达路由或不可达路由的通告和更新,则通过优选路由对应的邻居关系来发送更新报文,即可确保对端设备上相应的邻居关系能够实现路由更新,而由于非优选路由并不用于本端设备向对端设备的流量转发,则不通过非优选路由发送更新报文时,不会影响正常的流量转发。
[0071]由上述实施例可知,通过确定对端设备的优选路由及其对应的邻居关系,使得邻居关系发生变化等原因导致路由更新时,本端设备仅需要通过优选路由对应的BGP邻居向对端设备发送更新报文,有助于减少报文数量,降低带宽占用;同时,更新报文的数量减少,有助于减少占用对端设备处理更新报文的运算资源,并且避免邻居关系数量较多时可能导致的GR过程中流量中断等情况的发生。
[0072]在步骤404中,本端设备可以在从指定邻居关系接收到来自对端设备的预设报文时,确定所述指定邻居关系对应的路由为优选路由。具体地,比如在本端设备与对端设备之间共建立了 PU P2和P3这三个邻居关系,则当本端设备通过邻居关系P2接收到包含预设标识的报文时,即可确定对端设备选择了邻居关系P2的路由为优选路由。当然,优选路由可以为多个,则当本端设备同时从邻居关系P2、P3接收到包含预设标识的报文时,即可确定对端设备选择了邻居关系P2、P3的路由为优选路由。
[0073]其中,预设报文中可以为全新报文或对现有报文的改进,比如可以通过使其包含“预设标识”,从而区分于现有报文。具体地,该“预设标识”可以是预配置的任一标识,比如可以为该报文中的一个或多个标志位的置位方式。具体地,比如当报文中的第η个比特位被置位为“0”,则确定为上述“包含预设标识的报文”。作为一示例性实施例,如图5所示,BGP协议中定义了一种名称为“Route-refresh (路由更新)”的消息类型,包含了地址族(AFI, Address Family Identifier) (0-15 比特位,共 16 位)、保留域(Res.,Reserved)(16-23 比特位,共8位)和子地址族(SAFI, Subsequent Address Family Identifier) (24-31比特位,共8位),其中保留域均被置位为0。那么,在本发明的技术方案中,可以对现有的Route-refresh报文予以改进:将保留域的比特位均置位为1,则得到新的报文可以称之为“flag报文”,即上述的“包含预设标识的报文”。因此,本端设备可以通过检查来自对端设备的报文的16-23比特位,若均置位为1,则认为该报文为flag报文,并将用于传输该flag报文的BGP邻居关系对应的路由作为优选路由。
[0074]假定以flag报文来表示应用于本发明技术方案中的“包含预设标识的报文”,则对端设备可以主动向本端设备发送该flag报文,以告知其优选路由的选定情况;或者,对端设备可以在本端设备的请求下,执行对flag报文的发送。下面结合一典型应用场景,对本端设备请求flag报文以及相应的处理过程进行详细描述。假定在设备A和设备B之间建立BGP邻居,则基于BGP邻居的数量,可以采用不同的处理方式。
[0075]1、仅存在单个BGP邻居
[0076]请参考图6,假定在开始时,设备A和设备B之间仅建立了一个BGP邻居关系P1,则图7示出了根据本发明的一示例性实施例的路由更新方法的流程,包括:
[0077]步骤702,设备A和设备B之间建立BGP邻居关系。假定设备A和设备B之间仅建立了一个BGP邻居关系,即邻居关系P1。
[0078]步骤704,由于仅存在个邻居关系P1,则在该BGP邻居关系建立完成后,设备A直接通过邻居关系Pl向设备B发送update报文。
[0079]步骤706,设备B在接收到update报文后,确定优选路由。由于当前仅存在单个邻居关系P1,则优选路由即邻居关系Pl对应的路由。
[0080]在本实施例中,对于优选路由的确定,可以由开发者或用户预先配置,也可以在运行过程中实时配置,从而将任意一个或多个路由判定为优选路由。
[0081]步骤708,设备B通过优选路由(即邻居关系Pl的路由)向设备A发送flag报文。
[0082]步骤710,设备A基于报文中是否包含预设标识,识别出设备B通过邻居关系Pl发送的flag报文,从而确定邻居关系Pl的路由为优选路由。设备A创建对应于设备B的优选组G1,并将邻居关系Pl添加至该优选组Gl中,表明邻居关系Pl的路由是设备B选定的优选路由。
[0083]在本实施例中,通过在本端设备(即设备A)创建优选组,使得本端设备在需要发送update报文时,直接通过该优选组中所有的邻居执行update报文的发送即可;具体地,比如创建一个表,将优选路由对应的邻居的标识(比如名称“P1”等)添加至该表,以构成上述的优选组。其中,当本端设备同时与多个对端设备建立邻居时,可以分别为每个对端设备创建对应的优选组,并且可以通过为每个优选组设置对应的标识(比如名称“G1”等),以区分不同的优选组;具体地,比如图1所示的设备A与设备B之间建立的IBGP邻居关系,且设备A还与设备C建立了 EBGP邻居关系;具体地,比如图8不出了设备A与设备B建立了BGP邻居关系Pl,且设备A还与设备C建立了 BGP邻居关系SI,则设备A可以分别向设备B和设备C请求优选路由,并根据接收到的flag报文来分别创建对应的优选组,比如对应于设备B的优选组Gl、对应于设备C的优选组G2。
[0084]步骤712,当设备A与设备B的邻居发生变化或者设备A的本地路由存在更新时,直接调取对应于设备B的优选组Gl,并通过优选组Gl中的所有邻居关系(即邻居关系Pl)发送update报文。
[0085]需要说明的是:虽然在上述实施例中,仅示出了设备A向设备B请求优选路由、创建优选组以及根据优选组发送update报文的过程;但实际上,设备B也同样可以通过上述方式向设备A执行类似的操作,即设备B向设备A请求优选路由、创建优选组以及根据优选组发送update报文,具体过程不再赘述。
[0086]2、存在多个BGP邻居
[0087]请参考图9,假定在图6的基础上,设备A和设备B之间进一步建立了 BGP邻居关系P2,使得设备A和设备B之间存在Pl和P2两个BGP邻居关系,则基于优选路由的选择情况,图10-12分别示出了多种可能存在的实施方式,下面分别进行详细描述。
[0088]实施方式一:
[0089]如图10所示,根据本发明的一示例性实施方式的路由更新方法的流程包括:
[0090]步骤1002,设备A和设备B之间建立BGP邻居关系。假定设备A和设备B之间建立了两个BGP邻居关系,即邻居关系Pl和邻居关系P2。
[0091]步骤1004,由于存在多个邻居关系,则在所有邻居关系均建立完成后,并不直接发送update报文,而是由设备A通过邻居关系P1、P2分别向设备B发送优选路由探测报文,以探测设备B上的优选路由的情况。[0092]其中,优选路由探测报文中包含特定的路由,该路由并不应用于设备之间的正常交互过程,比如可以采用“0.0.0.0/30”等,则设备B在接收到优选路由探测报文后,能够根据其中的路由来准确判定该报文为“优选路由探测报文”。
[0093]步骤1006,设备B根据接收到的优选路由探测报文,确定优选路由。基于预配置或实时配置的情况,可以选择邻居关系Pl和邻居关系P2的路由中的一个或多个;举例而言,比如确定优选路由为邻居关系Pl的路由。
[0094]步骤1008,设备B通过优选路由(即邻居关系Pl的路由)向设备A发送flag报文。
[0095]步骤1010,若设备A识别出flag报文,则确定当前的优选路由对应的邻居关系(即邻居关系P1),并与对应于设备B的优选组Gl进行对照。在先前已经确定Pl的路由为优选路由的情况下(即基于图7所示的流程),优选组Gl中记录的邻居关系为邻居关系P1,与当前选取的优选路由一致,即优选组Gl无需变化。
[0096]步骤1012,由于设备A与设备B之间新添的邻居关系P2的路由并非优选路由,因而虽然设备A与设备B之间的邻居关系发生了变化,但并不需要触发通过邻居关系P2发送update报文的操作。同时,虽然邻居关系Pl的路由为优选路由,但在图7所示的流程中,设备A已经在步骤704中通过邻居关系Pl向设备B发送了 update报文,则此时可以不必再次通过邻居关系Pl发送update报文。
[0097]此后,当设备A的本地路由存在更新时,则可以直接调取对应于设备B的优选组G1,并通过优选组Gl中的所有邻居关系(即邻居关系Pl)发送update报文。
[0098]可见,在图4所示的步骤406中,并不意味着在确定了优选路由后,就一定要立即通过该优选路由对应的BGP邻居关系来发送update报文;实际上,基于确定了的优选路由,只有在需要发送update报文的情况下,才通过该优选路由对应的BGP邻居关系执行对update报文的发送,并避免通过其他的BGP邻居关系执行发送操作。
[0099]当然,出于逻辑上的简化,也可以不考虑本次发起update报文发送的原因,以及update报文的已发送情况,而是在优选组Gl发生变化时,直接基于优选组Gl中所有的邻居关系来触发对update报文的发送,且由于仅通过优选路由对应的邻居关系执行发送操作,因而不会引起对端设备B的CPU占用率和带宽占用的变化。
[0100]步骤1014,设备A通过邻居关系P1、P2分别向设备B发送优选路由探测报文的撤销报文,即由设备B删除接收到的优选路由探测报文,从而停止对路由优选情况的探测。
[0101]实施方式二:
[0102]如图11所示,根据本发明的一示例性实施方式的路由更新方法的流程包括:
[0103]步骤1102,设备A和设备B之间建立BGP邻居关系。假定设备A和设备B之间建立了两个邻居关系,即邻居关系Pl和邻居关系P2。
[0104]步骤1104,由于存在多个邻居关系,则在所有邻居关系均建立完成后,并不直接发送update报文,而是由设备A通过邻居关系P1、P2分别向设备B发送优选路由探测报文,以探测设备B上的优选路由的情况。
[0105]步骤1106,设备B根据接收到的优选路由探测报文,确定优选路由。基于预配置或实时配置的情况,可以选择邻居关系Pl和邻居关系P2的路由中的一个或多个;举例而言,比如确定优选路由为邻居关系P2的路由。[0106]步骤1108,设备B通过优选路由(即邻居关系P2的路由)向设备A发送flag报文。
[0107]步骤1110,若设备A识别出flag报文,则确定当前的优选路由对应的邻居关系(即邻居关系P2),并与对应于设备B的优选组Gl进行对照。在先前已经确定Pl的路由为优选路由的情况下(即基于图7所示的流程),优选组Gl中记录的邻居关系为邻居关系P1,与当前选取的优选路由不一致,则设备A需要对优选组Gl进行更新,将其中记载的邻居关系Pl更改为邻居关系P2。
[0108]步骤1112,由于设备A与设备B之间新添的邻居关系P2的路由为优选路由,则基于设备A与设备B之间邻居关系的变化,需要触发通过邻居关系P2发送update报文的操作。而由于邻居关系Pl的路由变化为非优选路由,则不触发通过邻居关系Pl发送update报文的操作。
[0109]此后,当设备A的本地路由存在更新时,则可以直接调取对应于设备B的优选组G1,并通过优选组Gl中的所有邻居关系(即邻居关系P2)发送update报文。
[0110]当然,出于逻辑上的简化,也可以不考虑本次发起update报文发送的原因,以及update报文的已发送情况,而是在优选组Gl发生变化时,直接基于优选组Gl中所有的邻居关系来触发对update报文的发送,且由于仅通过优选路由对应的邻居关系执行发送操作,因而不会引起对端设备B的CPU占用率和带宽占用的变化。
[0111]步骤1114,设备A通过邻居关系P1、P2分别向设备B发送优选路由探测报文的撤销报文,即由设备B删除接收到的优选路由探测报文,从而停止对路由优选情况的探测。
[0112]步骤1116,由于邻居关系Pl的路由从原来的优选路由变化为非优选路由,则设备A不会通过邻居关系Pl向设备B传输数据,因而设备A可以通过邻居关系Pl向设备B发送路由撤销报文,使得设备B删除对应于邻居关系Pl的路由。
[0113]实施方式三:
[0114]如图12所示,根据本发明的一示例性实施方式的路由更新方法的流程包括:
[0115]步骤1202,设备A和设备B之间建立BGP邻居关系。假定设备A和设备B之间建立了两个BGP邻居关系,即邻居关系Pl和邻居关系P2。
[0116]步骤1204,由于存在多个邻居关系,则在所有邻居关系均建立完成后,并不直接发送update报文,而是由设备A通过邻居关系P1、P2分别向设备B发送优选路由探测报文,以探测设备B上的优选路由的情况。
[0117]步骤1206,设备B根据接收到的优选路由探测报文,确定优选路由。基于预配置或实时配置的情况,可以选择邻居关系Pl和邻居关系P2的路由中的一个或多个;举例而言,比如确定优选路由为邻居关系Pl和邻居关系P2的路由。
[0118]步骤1208,设备B通过优选路由(即邻居关系P1、P2的路由)向设备A发送flag报文。
[0119]步骤1210,若设备A识别出flag报文,则确定当前的优选路由对应的邻居关系(即邻居关系PU P2),并与对应于设备B的优选组Gl进行对照。在先前已经确定Pl的路由为优选路由的情况下(即基于图7所示的流程),优选组Gl中记录的邻居关系为邻居关系P1,与当前选取的优选路由不一致,即需要对优选组Gl进行更新,将邻居关系P2添加至优选组Gl,使得更新后的优选组Gl包含邻居关系Pl和邻居关系P2。[0120]步骤1212,虽然邻居关系Pl的路由为优选路由,但在图7所示的流程中,设备A已经在步骤704中通过邻居关系Pl向设备B发送了 update报文,则此时可以不必再次通过邻居关系Pl发送update报文。同时,由于设备A与设备B之间新添的邻居关系P2的路由为优选路由,则基于设备A与设备B之间邻居关系的变化,需要触发通过邻居关系P2发送update报文的操作。
[0121]此后,当设备A的本地路由存在更新时,则可以直接调取对应于设备B的优选组G1,并通过优选组Gl中的所有邻居关系(即邻居关系Pl和邻居关系P2)发送update报文。
[0122]当然,出于逻辑上的简化,也可以不考虑本次发起update报文发送的原因,以及update报文的已发送情况,而是在优选组Gl发生变化时,直接基于优选组Gl中所有的邻居关系来触发对update报文的发送,且由于仅通过优选路由对应的邻居关系执行发送操作,因而不会引起对端设备B的CPU占用率和带宽占用的变化。
[0123]步骤1214,设备A通过邻居关系P1、P2分别向设备B发送优选路由探测报文的撤销报文,即由设备B删除接收到的优选路由探测报文,从而停止对路由优选情况的探测。
[0124]需要说明的是:虽然图7所示的流程中,当设备A与设备B之间仅存在一个BGP邻居关系Pl时,设备A直接通过该邻居关系Pl向设备B发送update报文,以触发设备B选定优选路由,但设备A显然也可以通过向设备B发送优选路由探测报文的方式,以触发设备B选定优选路由,并在确定了优选路由后,通过撤销报文撤销该优选路由探测报文,具体过程类似图10-12所示的方式,此处不再赘述。
[0125]此外,当设备A与设备B之间建立的BGP邻居关系数量更多时,比如图13所示的邻居关系P1、P2、P3……,同样可以通过类似于图10-12中描述的方式,执行确定优选路由、更新优选组、基于优选路由对应的BGP邻居关系发送update报文等操作。类似地,比如图13中设备A与设备C之间建立了 S1、S2、S3等BGP邻居关系时,也可以基于上述方式,执行确定优选路由、更新优选组、基于优选路由对应的BGP邻居关系发送update报文等操作。
[0126]对应于上述的路由更新方法,本发明提出了相应的网络设备。请参考图14,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成路由更新装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,执行主体也可以是硬件或逻辑器件。
[0127]请参考图15,在软件实施方式中,上述网络设备可以包括建立单元、确定单元和发送单元。其中:
[0128]建立单元,与对端设备建立一个或多个邻居关系;
[0129]确定单元,当接收到对端设备通过指定邻居关系发送的预设报文时,将所述指定邻居关系对应的路由作为优选路由;
[0130]发送单元,仅通过所述优选路由对应的邻居关系,向对端设备发送更新报文。
[0131]可选的,所述发送单元还用于:在接收到对端设备通过指定邻居关系发送的预设报文之前,通过与对端设备建立的邻居关系,向对端设备发送更新报文或优选路由探测报文,以触发对端设备选定所述优选路由。
[0132]可选的,所述发送单元还用于:[0133]当通过向对端设备发送优选路由探测报文,以触发对端设备选定所述优选路由时,在确定所述优选路由之后,通过与对端设备建立的邻居关系,向对端设备发送所述优选路由探测报文的撤销报文。
[0134]可选的,所述发送单元具体用于:
[0135]根据对端设备选定的优选路由,更新用于记录优选路由的优选组;
[0136]通过所述优选组中记录的优选路由对应的邻居关系,向对端设备发送更新报文。
[0137]可选的,还可以包括:
[0138]创建单元,用于当与多个对端设备分别建立邻居关系时,为每个对端设备创建对应的优选组,以用于记录该对端设备选定的优选路由。
[0139]可选的,所述发送单元还用于:
[0140]在更新所述优选组时,若该优选组中的原优选路由不属于对端设备当前选定的优选路由,则通过所述原优选路由对应的邻居关系,向对端设备发送路由删除报文,以由对端设备删除对应的所述原优选路由。
[0141]因此,本发明通过仅通过优选路由对应的邻居关系,执行更新报文的发送,从而可以减少更新报文的收发量,提高设备CPU和链路带宽的利用率。
[0142]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种路由更新方法,应用于网关设备,其特征在于,包括: 与对端设备建立一个或多个邻居关系; 当接收到对端设备通过指定邻居关系发送的预设报文时,将所述指定邻居关系对应的路由作为优选路由; 仅通过所述优选路由对应的邻居关系,向对端设备发送更新报文。
2.根据权利要求1所述的路由更新方法,其特征在于,在接收到对端设备通过指定邻居关系发送的预设报文之前,还包括: 通过与对端设备建立的邻居关系,向对端设备发送更新报文或优选路由探测报文,以触发对端设备选定所述优选路由。
3.根据权利要求2所述的路由更新方法,其特征在于,还包括: 若通过向对端设备发送优选路由探测报文,以触发对端设备选定所述优选路由,则在确定所述优选路由之后,通过与对端设备建立的邻居关系,向对端设备发送所述优选路由探测报文的撤销报文。
4.根据权利要求1所述的路由更新方法,其特征在于,仅通过所述优选路由对应的邻居关系,向对端设备发送更新报文,包括: 根据对端设备选定的优选路由,更新用于记录优选路由的优选组; 通过所述优选组中记录的优选路由对应的邻居关系,向对端设备发送更新报文。
5.根据权利要求4所述的路由更新方法,其特征在于,还包括: 当与多个对端设备分别建立邻居关系时,为每个对端设备创建对应的优选组,以用于记录该对端设备选定的优选路由。
6.根据权利要求4所述的路由更新方法,其特征在于,还包括: 在更新所述优选组时,若该优选组中的原优选路由不属于对端设备当前选定的优选路由,则通过所述原优选路由对应的邻居关系,向对端设备发送路由删除报文,以由对端设备删除对应的所述原优选路由。
7.—种路由更新装置,应用于网关设备,其特征在于,包括: 建立单元,与对端设备建立一个或多个邻居关系; 确定单元,当接收到对端设备通过指定邻居关系发送的预设报文时,将所述指定邻居关系对应的路由作为优选路由; 发送单元,仅通过所述优选路由对应的邻居关系,向对端设备发送更新报文。
8.根据权利要求7所述的路由更新装置,其特征在于,所述发送单元还用于:在接收到对端设备通过指定邻居关系发送的预设报文之前,通过与对端设备建立的邻居关系,向对端设备发送更新报文或优选路由探测报文,以触发对端设备选定所述优选路由。
9.根据权利要求8所述的路由更新装置,其特征在于,所述发送单元还用于: 当通过向对端设备发送优选路由探测报文,以触发对端设备选定所述优选路由时,在确定所述优选路由之后,通过与对端设备建立的邻居关系,向对端设备发送所述优选路由探测报文的撤销报文。
10.根据权利要求7所述的路由更新装置,其特征在于,所述发送单元具体用于: 根据对端设备选定的优选路由,更新用于记录优选路由的优选组; 通过所述优选组中记录的优选路由对应的邻居关系,向对端设备发送更新报文。
11.根据权利要求10所述的路由更新装置,其特征在于,还包括: 创建单元,用于当与多个对端设备分别建立邻居关系时,为每个对端设备创建对应的优选组,以用于记录该对端设备选定的优选路由。
12.根据权利要求10所述的路由更新装置,其特征在于,所述发送单元还用于: 在更新所述优选组时,若该优选组中的原优选路由不属于对端设备当前选定的优选路由,则通过所述原优选路由对应的邻居关系,向对端设备发送路由删除报文,以由对端设备删除对应的所述原优选 路由。
【文档编号】H04L12/751GK104038427SQ201410307057
【公开日】2014年9月10日 申请日期:2014年6月30日 优先权日:2014年6月30日
【发明者】刘永奎, 陆亦雄 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1