CN105721321B - 一种等价多路径的出接口更新方法及装置 - Google Patents

一种等价多路径的出接口更新方法及装置 Download PDF

Info

Publication number
CN105721321B
CN105721321B CN201410720211.2A CN201410720211A CN105721321B CN 105721321 B CN105721321 B CN 105721321B CN 201410720211 A CN201410720211 A CN 201410720211A CN 105721321 B CN105721321 B CN 105721321B
Authority
CN
China
Prior art keywords
hop
ecmp
routing
layers
arp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410720211.2A
Other languages
English (en)
Other versions
CN105721321A (zh
Inventor
杜旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing ZTE New Software Co Ltd
Original Assignee
Nanjing ZTE New Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing ZTE New Software Co Ltd filed Critical Nanjing ZTE New Software Co Ltd
Priority to CN201410720211.2A priority Critical patent/CN105721321B/zh
Priority to PCT/CN2015/091128 priority patent/WO2016086713A1/zh
Publication of CN105721321A publication Critical patent/CN105721321A/zh
Application granted granted Critical
Publication of CN105721321B publication Critical patent/CN105721321B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种等价多路径的出接口更新方法及装置。本发明通过周期性更新无效的ECMP链路的下一跳地址,触发ARP学习流程,获取链路出接口,从而快速更新了ECMP的FIB表项。本发明具有较高的灵活性,便于网络发现、运维和管理,保证了路由FIB表的有效性,有效利用了ECMP多路径的带宽,为负载均衡和带宽控制的实现提供了保障。

Description

一种等价多路径的出接口更新方法及装置
技术领域
本发明涉及数据通信技术领域,具体涉及一种等价多路径(ECMP,Equal-CostMulti-Path)的出接口更新方法及装置。
背景技术
随着网际协议(IP,Internet Protocol)业务的高速发展,以及以太网在城域网中的广泛应用,三层网络的规模越来越大,使得网络的带宽以及可靠性保活成了电信运营商们越来越关注的焦点。在传统的分层网络中,汇聚层网络接入到核心网的环境中,学习到大量路由条目,上行流量大,为了保证流量的负载均衡以及保护,经常建立ECMP路由作为接入上行的链路路由。
在传统的路由技术中,发往目的路由的数据包只能利用其中的一条链路,其它链路处于备份状态或者无效状态,并且在动态路由环境下的相互切换需要一定时间。而等价多路径路由协议可以在该网络环境下同时使用多条路由,如图1所示,R1可以通过自身两个出接口将去往同一目的地址的不同数据报文路由至R2和R3,从而不仅增加了传输带宽,而且可以无延时无丢包地备份失效链路的数据传输。目前,开放式最短路径优先(OSPF,OpenShortest Path First)、中间系统到中间系统(IS-IS,Intermediate System toIntermediate System Routing Protocol)和边界网关协议(BGP,Border GatewayProtocol)等动态路由协议中都已支持ECMP功能。
ECMP路由表项中,同一个目的地址可能对应于多个出接口。然而发明人发现,在实际应用中,在获得ECMP路由表项后,设备本地可能尚未生成某个出接口的二层转发信息,进而导致路由转发信息表(FIB,Forward Information Base)中一直无法更新该出接口,导致无法实现流量的负载均衡,并且,在特定环境下可能导致业务流量的中断,不能满足网络的高可靠性需求。
发明内容
本发明实施例要解决的技术问题是提供一种等价多路径的出接口更新方法及装置,通过及时更新ECMP路由表项对应的出接口信息,为实现流量的负载均衡和链路带宽的有效利用提供了保证,并提高了网络的可靠性。
为解决上述技术问题,本发明实施例提供的一种等价多路径的出接口更新方法,包括:
获得新生成的ECMP路由,并确定所述ECMP路由的所有下一跳;
判断所述ECMP路由的各个下一跳对应的二层转发信息是否在本地已存在,并根据判断结果,仅将本地已存在二层转发信息的下一跳的路由信息下发至转发信息表FIB中,以及,在一数据库中为所述ECMP路由的各个下一跳设置一对应的标志位,其中,所述标志位有效时表示本地已存在该下一跳的二层转发信息,无效时表示本地不存在该下一跳的二层转发信息;
周期性遍历所述数据库中的每个下一跳,直至所有下一跳均遍历完成,其中,若当前遍历的下一跳的标志位为有效,则继续遍历下一个下一跳;若当前遍历的下一跳的标志位为无效,则触发该下一跳的ARP学习过程,以及,在通过所述ARP学习过程学习到该下一跳对应的二层转发信息后,更新该下一跳的标志位为有效,并将该下一跳的路由信息下发至所述FIB中。
其中,上述方法中,所述判断所述ECMP路由的各个下一跳对应的二层转发信息是否在本地已存在,包括:
根据各个下一跳,查询本地的ARP表;
若未查询到该下一跳,则判断本地不存在该下一跳的二层转发信息;
若查询到该下一跳,则进一步根据该下一跳对应的MAC地址查询本地的MAC表:若查询到该下一跳对应的MAC地址时,则判断本地存在该下一跳的二层转发信息,否则,判断本地不存在该下一跳的二层转发信息。
其中,上述方法中,进一步通过设置一定时器进行计时,当所述定时器计时到预定门限后,触发所述遍历所述数据库的下一跳的操作,并重置所述定时器重新开始计时。
其中,上述方法中,所述通过所述ARP学习过程学习到该下一跳对应的二层转发信息后,更新该下一跳的标志位,并将该下一跳的路由信息下发至所述FIB中,包括:
在新生成第一ARP表项时,根据该第一ARP表项的第一IP地址,判断所述数据库是否存在与该第一IP地址相同的下一跳;
若存在与该第一IP相同的下一跳,且该下一跳的标志位为无效,则更新该下一跳的标志位为有效,并解析得到该下一跳的出接口,将该下一跳及其出接口信息下发至所述FIB中。
其中,上述方法中,在从ARP表中删除一第二ARP表项时,所述方法还包括:
根据该第二ARP表项的第二IP地址,判断所述数据库是否存在与该第二IP地址相同的下一跳,并在存在与该第二IP相同的下一跳时,将该下一跳及其出接口信息从所述FIB中删除。
其中,上述方法中,还包括:
在所述ECMP路由被删除时,将所述ECMP路由的所有下一跳的信息,从所述数据库中删除;以及,
将所述FIB中存在所述ECMP路由的下一跳的路由信息均删除。
本发明实施例还提供了一种等价多路径ECMP的出接口更新装置,包括:
获得单元,用于获得新生成的ECMP路由,并确定所述ECMP路由的所有下一跳;
判断单元,用于判断所述ECMP路由的各个下一跳对应的二层转发信息是否在本地已存在;
处理单元,用于根据所述判断单元的判断结果,仅将本地已存在二层转发信息的下一跳的路由信息下发至转发信息表FIB中,以及,在一数据库中为所述ECMP路由的各个下一跳设置一对应的标志位,其中,所述标志位有效时表示本地已存在该下一跳的二层转发信息,无效时表示本地不存在该下一跳的二层转发信息;
遍历单元,用于周期性遍历所述数据库中的每个下一跳,直至所有下一跳均遍历完成,其中,若当前遍历的下一跳的标志位为有效,则继续遍历下一个下一跳;若当前遍历的下一跳的标志位为无效,则触发该下一跳的ARP学习过程,以及,在通过所述ARP学习过程学习到该下一跳对应的二层转发信息后,更新该下一跳的标志位为有效,并将该下一跳的路由信息下发至所述FIB中。
其中,上述装置中,所述判断处理单元具体用于:
根据各个下一跳,查询本地的ARP表;
若未查询到该下一跳,则判断本地不存在该下一跳的二层转发信息;
若查询到该下一跳,则进一步根据该下一跳对应的MAC地址查询本地的MAC表:若查询到该下一跳对应的MAC地址时,则判断本地存在该下一跳的二层转发信息,否则,判断本地不存在该下一跳的二层转发信息。
其中,上述装置中,还包括:
定时单元,用于设置一定时器进行计时,当所述定时器计时到预定门限后,触发所述遍历单元遍历所述数据库的下一跳,并重置所述定时器重新开始计时。
其中,上述装置中,还包括:
ARP表项处理单元,用于新生成一第一ARP表项;
所述遍历单元,进一步用于在所述ARP表项单元生成所述第一ARP表项时,根据该第一ARP表项的第一IP地址,判断所述数据库是否存在与该第一IP地址相同的下一跳;若存在与该第一IP相同的下一跳,且该下一跳的标志位为无效,则更新该下一跳的标志位为有效,并解析得到该下一跳的出接口,将该下一跳及其出接口信息下发至所述FIB中。
其中,上述装置中,所述ARP表项处理单元,还用于从ARP表中删除一第二ARP表项;
所述遍历单元,还用于在所述ARP表项处理单元删除所述第二ARP表项时,根据该第二ARP表项的第二IP地址,判断所述数据库是否存在与该第二IP地址相同的下一跳,并在存在与该第二IP相同的下一跳时,将该下一跳及其出接口信息从所述FIB中删除。
其中,上述装置中,所述遍历单元,还用于在所述ECMP路由被删除时,将所述ECMP路由的所有下一跳的信息,从所述数据库中删除;以及,将所述FIB中存在所述ECMP路由的下一跳的路由信息均删除。
与现有技术相比,本发明实施例提供的等价多路径的出接口更新方法及装置,至少具有以下有益效果:
本发明实施例通过周期性更新无效的ECMP链路的下一跳地址,触发地址解析协议(ARP,Address Resolution Protocol)学习流程,通过发送ARP请求报文,收集链路邻居信息,获取链路出接口,快速更新路由FIB表项,具有较高的灵活性,便于网络发现、运维和管理,保证路由FIB表的有效性,有效利用了ECMP多路径的带宽,为负载均衡和带宽控制的实现提供了保障,并且,本发明实施例的实现过程不会过于加重系统负担,能够保证链路的快速收敛,满足网络的可靠性需求。
附图说明
图1为现有技术的一种ECMP聚合链路的示意图;
图2为本发明实施例提供的ECMP的出接口更新方法的流程示意图;
图3为本发明实施例提供的ECMP的出接口更新装置的结构示意图;
图4为本发明实施例中ECMP路由更新FIB时维护ECMP下一跳信息数据库的流程示意图;
图5为本发明实施例中循环定时器触发更新ARP学习的流程示意图;
图6为本发明实施例中ARP学习更新流程中更新ECMP下一跳信息数据库的处理流程示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
在中间系统到中间系统(IS-IS)路由协议中,一台交换机就是一个中间系统,交换机用来进行相互宣告的协议称为IS-IS协议。IS-IS路由协议是通过交换Hello PDU报文来发现邻居并形成邻接关系的,路由的公告则使用链路状态PDU报文。路由协议报文的交互不会触发邻居设备地址解析协议(ARP)的学习,因此通过路由拓扑计算处理的路由下一跳地址可能在ARP表项中不存在,路由在转发面生成的FIB表项可能没有实际的出接口。这样,只要等到匹配路由的数据流量来到时,数据流量上送TCP/IP协议栈,触发ARP表项的生成,才能学习到出接口,进而重新更新路由FIB表,最终实现线速转发流量。
对于BGP4+路由协议来说,也存在同样下一跳表项无法更新问题。对于该路由协议来说,keepalive保活报文使用全球单播地址作为保活报文的地址,但是发布路由中使用的下一跳地址为本地链路地址,两个地址同时属于同一个接口,但是却不一致,因此会导致报文无法更新本地链路地址。
由此可见,图1所示,在设备(如路由器或三层交换机等)启用IS-IS、BGP4+路由协议的情况下,若使能ECMP功能,一个路由可能会对应等价的多个下一跳。通过路由协议学习到的多条下一跳出接口中,如果其中某一条下一跳出接口的IP地址在ARP表项中不存在,在转发的FIB表项出接口就不会添加该下一跳的出接口。同时,由于流量可以继续从FIB表项中存在的其它接口转发,导致无法通过流量触发该下一跳的ARP表项学习。对于IS-IS,BGP4+路由协议,也不会触发下一跳ARP表项的学习,从而导致该下一跳的出接口一直无法更新,在路由转发FIB中也一直无法更新这条链路接口,导致流量无法在该出接口与其他接口之间负载均衡,并且在特定环境下(如流量超出已有链路带宽)可能导致业务流量的中断,可能难以满足网络的高可靠性需求。
有鉴于此,本发明实施例提供一种ECMP的出接口更新方法,用于在基于IS-IS、BGP4+路由协议的ECMP拓扑网络中,自动触发ARP的学习,实现等价路由多出接口的快速更新,从而保证路由FIB表的有效性,以便于负载均衡和带宽控制,同时该方法本身不会过于加重系统负担,保证链路的快速收敛,满足网络的可靠性需求。
本发明实施例提供的ECMP的出接口更新方法,应用于一三层转发设备中,该三层转发设备可以是中间系统(IS)、路由器或三层交换机等设备。该设备上使能了IS-IS或BGP等动态路由协议,且使能了ECMP功能。通过上述动态路由协议以及ECMP协议,该设备的协议控制层面能够生成ECMP路由表项,具体生成方式可与现有技术相同或类似,此处不再赘述。在生成新的ECMP路由时,本发明实施例提供的ECMP的出接口更新方法,通过以下步骤实现了等价路由多出接口的快速更新,请参照图2所示,包括:
步骤21,获得新生成的ECMP路由,并确定所述ECMP路由的所有下一跳。
这里,可以按照与现有技术的相同方式,由该设备的协议控制层生成新的ECMP路由,并下发至该设备的数据转发平面。在转发平面收到上述ECMP路由后,确定该路由的所有下一跳的信息。ECMP路由可能存在两条以上的下一跳,下一跳的信息通常是下一跳的IP地址。
步骤22,判断所述ECMP路由的各个下一跳对应的二层转发信息是否在本地已存在,并根据判断结果,仅将本地已存在二层转发信息的下一跳的路由信息下发至转发信息表FIB中,以及,在一数据库中为所述ECMP路由的各个下一跳设置一对应的标志位,其中,所述标志位有效时表示本地已存在该下一跳的二层转发信息,无效时表示本地不存在该下一跳的二层转发信息。
如前文所述,在生成ECMP路由时,设备本地可能尚未生成该ECMP路由某个下一跳对应的出接口信息,因此本实施例在步骤22中判断每一个下一跳对应的二层转发信息是否在设备本地已存在。二层转发信息包括下一跳对应的出接口以及下一跳对应的MAC地址(即下一跳IP地址对应的MAC地址),若设备本地不存在某个下一跳对应的出接口或该下一跳对应的MAC地址,则认为设备本地不存在该下一跳的二层转发信息,一种具体的判断方式如下:
步骤221,根据各个下一跳,查询设备本地的ARP表;
步骤222,若未查询到某个下一跳,则判断本地不存在该下一跳的二层转发信息;
步骤223,若查询到该下一跳,则进一步根据该下一跳对应的MAC地址查询本地的MAC表:若查询到该下一跳对应的MAC地址时,则判断本地存在该下一跳的二层转发信息,否则,判断本地不存在该下一跳的二层转发信息。
通过以上步骤221-223,可以确定出该ECMP路由的每个下一跳的二层转发信息是否存在:若本地存在某个下一跳的二层转发信息,则可以直接将该下一跳的路由信息下发至转发信息表FIB中,用以指导数据转发。另外,本实施例在上述步骤22中,还在一数据库(假设为ECMP下一跳信息数据库)中为所述ECMP路由的各个下一跳设置一对应的标志位,其中,所述标志位有效时表示本地已存在该下一跳的二层转发信息,无效时表示本地不存在该下一跳的二层转发信息。
步骤23,周期性遍历所述数据库中的每个下一跳,直至所有下一跳均遍历完成,其中,若当前遍历的下一跳的标志位为有效,则继续遍历下一个下一跳;若当前遍历的下一跳的标志位为无效,则触发该下一跳的ARP学习过程,以及,在通过所述ARP学习过程学习到该下一跳对应的二层转发信息后,更新该下一跳的标志位为有效,并将该下一跳的路由信息下发至所述FIB中。
这里,可以通过设置一定时器并计时,该定时器具有一计时门限。当所述定时器计时到预定门限后,触发步骤23中的遍历所述数据库的下一跳的操作,并重置所述定时器重新开始计时,以实现周期性的遍历处理,该周期即为定时器的计时门限。
在上述遍历过程中,逐个遍历所述数据库中的每一个下一跳。其中,在遍历到某个下一跳时,若该下一跳的指示信息为有效,则继续遍历下一个下一跳;若无效,则需要触发该下一跳的ARP学习过程,在ARP学习过程中发送针对该下一跳的IP地址的ARP请求报文,接收ARP响应报文,获得该下一跳的IP地址对应的MAC地址及出接口等信息,并在通过所述ARP学习过程学习到该下一跳对应的二层转发信息(包括该下一跳的IP地址对应的MAC地址及出接口等信息)后,则在所述数据库中更新该下一跳的标志位为有效,并将该下一跳的路由信息,如该下一跳及其对应的出接口等信息,下发至所述FIB中。
上述步骤中,在触发该下一跳的ARP学习过程后,即可以继续遍历所述数据库中的下一个下一跳,而不必等待ARP学习过程的结束。为了在APR学习到该下一跳的二层转发信息后,能够更新所述数据库以及FIB,本实施例在设备通过ARP学习过程学习到新的ARP表项(假设为第一ARP表项)时,根据该第一ARP表项中的IP地址(假设为第一IP地址),判断所述数据库是否存在与该第一IP地址相同的下一跳(即下一跳的IP地址与该第一IP地址相同),若存在,则进一步判断该下一跳的标志位是否为无效,若是,则更新该数据库中该下一跳的标志位为有效,并可以解析得到该下一跳的出接口,将该下一跳及其出接口信息下发至所述FIB中。具体的,可以先通过查找ARP表项确定该下一跳IP地址对应的MAC地址,然后根据所确定的MAC地址查找MAC表项,确定该MAC地址对应的出接口,从而解析得到该下一跳的出接口。
通过以上步骤,本发明实施例定时更新无效的ECMP链路的下一跳地址,触发ARP学习流程,通过发送ARP请求报文,收集链路邻居信息,获取链路出接口,快速更新路由FIB表项,具有较高的灵活性,便于网络发现、运维和管理,保证路由FIB表的有效性,有效利用了ECMP多路径的带宽,便于负载均衡和带宽控制,同时上述方法实现过程不会过于加重系统负担,同时保证链路的快速收敛,满足网络的可靠性需求。
本发明实施例中,设备在运行过程中,随着网络拓扑、设备自身环境的变化以及相关协议的要求,可能会针对设备的ARP表项进行老化,也可能对某个ECMP路由进行删除。
为适应以上变化,本发明实施例的上述方法中,在从设备的ARP表中删除某个ARP表项(假设为第二ARP表项)时,根据该第二ARP表项的第二IP地址,判断所述数据库是否存在与该第二IP地址相同的下一跳:若存在与该第二IP相同的下一跳,则将该下一跳及其出接口信息从所述FIB中删除;若不存在,则可以不执行任何动作。
这样,本实施例可以根据ARP表项的变化,动态更新ECMP路由的下一跳的状态,使之与实际网络状况相符。
类似的,本发明实施例的上述方法,在设备上的ECMP路由被删除时,需要将所述ECMP路由的所有下一跳的信息,从所述数据库中删除,并激昂设备FIB中存在所述ECMP路由的下一跳的路由信息均删除。
以上说明了本发明实施例的ECMP的出接口更新方法,下面将进一步提供一种ECMP的出接口更新装置,用以实现上述方法。该装置可以设置在一三层转发设备上,该三层转发设备可以是中间系统(IS)、路由器或三层交换机等设备。该设备上使能了IS-IS或BGP等动态路由协议,且使能了ECMP功能。如图3所示,本发明实施例提供的ECMP的出接口更新装置,包括:
获得单元31,用于获得新生成的ECMP路由,并确定所述ECMP路由的所有下一跳;
判断单元32,用于判断所述ECMP路由的各个下一跳对应的二层转发信息是否在本地已存在;
处理单元33,用于根据所述判断单元的判断结果,仅将本地已存在二层转发信息的下一跳的路由信息下发至转发信息表FIB中,以及,在一数据库中为所述ECMP路由的各个下一跳设置一对应的标志位,其中,所述标志位有效时表示本地已存在该下一跳的二层转发信息,无效时表示本地不存在该下一跳的二层转发信息;
遍历单元34,用于周期性遍历所述数据库中的每个下一跳,直至所有下一跳均遍历完成,其中,若当前遍历的下一跳的标志位为有效,则继续遍历下一个下一跳;若当前遍历的下一跳的标志位为无效,则触发该下一跳的ARP学习过程,以及,在通过所述ARP学习过程学习到该下一跳对应的二层转发信息后,更新该下一跳的标志位为有效,并将该下一跳的路由信息下发至所述FIB中。
其中,所述判断处理单元32具体用于:
根据各个下一跳,查询本地的ARP表;
若未查询到该下一跳,则判断本地不存在该下一跳的二层转发信息;
若查询到该下一跳,则进一步根据该下一跳对应的MAC地址查询本地的MAC表:若查询到该下一跳对应的MAC地址时,则判断本地存在该下一跳的二层转发信息,否则,判断本地不存在该下一跳的二层转发信息。
为实现周期性的遍历,上述装置还包括有:
定时单元,用于设置一定时器进行计时,当所述定时器计时到预定门限后,触发所述遍历单元34遍历所述数据库的下一跳,并重置所述定时器重新开始计时。
上述装置还可以包括有ARP表项处理单元,用于新生成一第一ARP表项;此时,所述遍历单元34,进一步用于在所述ARP表项单元生成所述第一ARP表项时,根据该第一ARP表项的第一IP地址,判断所述数据库是否存在与该第一IP地址相同的下一跳;若存在与该第一IP相同的下一跳,且该下一跳的标志位为无效,则更新该下一跳的标志位为有效,并解析得到该下一跳的出接口,将该下一跳及其出接口信息下发至所述FIB中。
上述装置中,所述ARP表项处理单元,还用于从ARP表中删除一第二ARP表项;所述遍历单元34,还用于在所述ARP表项处理单元删除所述第二ARP表项时,根据该第二ARP表项的第二IP地址,判断所述数据库是否存在与该第二IP地址相同的下一跳:若存在,则将该下一跳的标志位更新为无效,并将该下一跳及其出接口信息从所述FIB中删除。
上述装置中,所述遍历单元34,还用于在所述ECMP路由被删除时,将所述ECMP路由的所有下一跳的信息,从所述数据库中删除;以及,将所述FIB中存在所述ECMP路由的下一跳的路由信息均删除。
以上对本发明实施例提供的ECMP的出接口更新方法及装置进行了说明。综上所述,本发明实施例可以自动触发ARP表项的更新,以及时更新ECMP路由表项对应的出接口信息,为实现流量的负载均衡和带宽的有效利用提供了保证,并提高了网络的可靠性。
为帮助理解上述方案,下面将进一步通过一个示例并结合附图,对本发明实施例作进一步的描述。
本示例中,三层转发设备转发层面记录ECMP路由的下一跳信息,保存在一数据库(假设为ECMP下一跳信息数据库)中,同时解析实际出接口,如果出接口不存在,记录相应的下一跳标志为无效标志,通过循环定时,触发定时消息,遍历数据库信息,对标志位为无效的下一跳,触发ARP学习,发送ARP请求报文,以获取对应出接口,进而更新路由FIB表项。
具体的,三层转发设备在执行设备初始化时,配置启用一循环定时器,设置默认时间间隔,并且提供配置接口,保证定时器时间间隔可配置。
设备的协议控制层面生成ECMP路由表项,同步到数据转发层面。在转发层面,需要记录路由信息与相应的ECMP下一跳信息,保存到相应的数据库(假设为ECMP下一跳信息数据库)中,同时解析路由所有下一跳,得到物理出接口,如果物理出接口不存在,将对应下一跳的标志位置为无效,并且不下发此下一跳出接口到对应的FIB表项中。如果存在,则将对应下一跳的标志位置为有效,并下发此下一跳出接口到对应的FIB表项中。
循环定时器触发一消息更新,在定时消息被触发后,遍历ECMP下一跳信息数据库:当遍历到的某个下一跳的标志位为无效时,发送ARP请求报文,触发该下一跳的IP地址的ARP学习;当遍历到的某个下一跳的标志位为有效时,继续遍历下一个下一跳,直至遍历完所有的下一跳。然后,等下一次循环定时消息来到,再执行同样的遍历处理流程。
其中,若设备收到ARP响应报文,学习到新的ARP,则遍历ECMP下一跳信息数据库,如果该新的ARP的IP地址对应的下一跳的标志位为无效,则重置下一跳标志位为有效,同时解析出该下一跳的出接口,得到物理出接口,进而据此更新转发FIB表项,在FIB表项中增减该下一跳及出接口的信息。
本示例通过协议控制面下发ECMP路由下一跳信息,解析下一跳实际出接口,当出接口不存在时,设置出接口的无效标志,并且通过定时触发ARP请求报文,对链路出接口进行检测,一旦学习到对应的ARP表项,则重新更新出接口的标志位,并按照实际解开更新路由FIB表项,保证了负载均衡链路的可靠性,有效利用了链路带宽。本示例中为一新生成的ECMP路由创建一对应的ECMP组(ECMP GROUP)。
图4是本示例实现定时触发出接口学习的流程示意图,如图4所示,该流程包括以下步骤:
步骤401:设备运行的路由协议协商出ECMP路由,下发至数据转发层面,用以控制流量转发。数据转发层面判断该ECMP路由是添加还是删除。
步骤402:若是添加ECMP路由,则需要查找该ECMP路由对应的ECMP组中所有下一跳信息,通过下一跳IP地址查找相应的ARP表项以及MAC表项,得到实际的转发出接口。
步骤403:判断转发出接口是否实际存在,即,设备本地的ARP表中是否已生成有该下一跳IP地址对应的ARP表项,并且,设备本地的MAC转发表中是否已生成该下一跳IP地址对应的MAC地址的MAC表项。
步骤404:如果转发出接口存在,则在ECMP下一跳信息数据库中,将此下一跳的标志位置为有效标志,然后将该下一跳的路由信息同步到转发FIB表项中,用以指导流量转发。
步骤405:如果转发出接口不存在,即,设备本地的ARP表中未生成有该下一跳IP地址对应的ARP表项,或者,设备本地的MAC转发表中未生成有该下一跳IP地址对应的MAC地址的MAC表项,则在ECMP下一跳信息数据库中,将此下一跳的标志位置为无效标志。
步骤406:若是删除ECMP路由时,则首先查找ECMP下一跳信息数据库,得到该ECMP路由对应的ECMP组(ECMPGROUP),从ECMP下一跳数据库信息中删除该ECMP路由的所有下一跳信息。
步骤407:从路由FIB表项中删除该ECMP路由的所有下一跳的路由信息,以终止通过该ECMP路由进行流量转发。
参见图5,本示例中为ECMP下一跳地址定时触发ARP更新的流程:
步骤501:设备启动后,启动软件循环定时器,设置默认间隔,保证定时发送消息,同时提供配置接口,用户可以自行配置的定时器间隔。
步骤502:定时器超时,转步骤503,否则继续等待定时器超时。
步骤503:遍历所有ECMP的组数据库,查询对应ECMP下一跳信息数据库,判断下一跳标志位是否为无效,如果为无效,发送下一跳的ARP请求报文;否则,不执行任何动作。在遍历过程执行完成后,继续等待下一次定时器超时。
参见图6,本示例为设备的转发层面更新ARP表项的流程:
步骤601:IP协议栈学习到ARP表项后,同步到数据转发层面,判断是添加ARP表项操作还是删除ARP表项操作。
步骤602:若是添加ARP表项,则遍历所有ECMP组,在ECMP下一跳信息数据库中,查找是否有与该ARP表项的IP地址相同的下一跳,如果存在,则更新该下一跳的标志位为有效。
步骤603:将该下一跳的路由信息下发至对应的FIB转发表项。
步骤604:若是删除ARP表项,则遍历所有ECMP组,在ECMP下一跳信息数据库中,查找是否有与该ARP表项的IP地址相同的下一跳,如果存在该下一跳,转到步骤604处理。
步骤604:从路由FIB表项删除该下一跳的路由信息。
综上,本发明实施例通过定时更新无效ECMP链路的下一跳地址,触发ARP学习过程,发送ARP请求报文,收集链路邻居信息,获取链路出接口,从而快速更新路由FIB表项,具有较高的灵活性,便于网络发现、运维和管理,提高了网络的可靠性,有效的利用了链路带宽。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种等价多路径ECMP的出接口更新方法,其特征在于,包括:
获得新生成的ECMP路由,并确定所述ECMP路由的所有下一跳;
判断所述ECMP路由的各个下一跳对应的二层转发信息是否在本地已存在,并根据判断结果,仅将本地已存在二层转发信息的下一跳的路由信息下发至转发信息表FIB中,以及,在一数据库中为所述ECMP路由的各个下一跳设置一对应的标志位,其中,所述标志位有效时表示本地已存在该下一跳的二层转发信息,无效时表示本地不存在该下一跳的二层转发信息;
周期性遍历所述数据库中的每个下一跳,直至所有下一跳均遍历完成,其中,若当前遍历的下一跳的标志位为有效,则继续遍历下一个下一跳;若当前遍历的下一跳的标志位为无效,则触发该下一跳的ARP学习过程,以及,在通过所述ARP学习过程学习到该下一跳对应的二层转发信息后,更新该下一跳的标志位为有效,并将该下一跳的路由信息下发至所述FIB中。
2.如权利要求1所述的方法,其特征在于,所述判断所述ECMP路由的各个下一跳对应的二层转发信息是否在本地已存在,包括:
根据各个下一跳,查询本地的ARP表;
若未查询到该下一跳,则判断本地不存在该下一跳的二层转发信息;
若查询到该下一跳,则进一步根据该下一跳对应的MAC地址查询本地的MAC表:若查询到该下一跳对应的MAC地址时,则判断本地存在该下一跳的二层转发信息,否则,判断本地不存在该下一跳的二层转发信息。
3.如权利要求1所述的方法,其特征在于,进一步通过设置一定时器进行计时,当所述定时器计时到预定门限后,触发所述遍历所述数据库的下一跳的操作,并重置所述定时器重新开始计时。
4.如权利要求1所述的方法,其特征在于,
所述通过所述ARP学习过程学习到该下一跳对应的二层转发信息后,更新该下一跳的标志位,并将该下一跳的路由信息下发至所述FIB中,包括:
在新生成第一ARP表项时,根据该第一ARP表项的第一IP地址,判断所述数据库是否存在与该第一IP地址相同的下一跳;
若存在与该第一IP相同的下一跳,且该下一跳的标志位为无效,则更新该下一跳的标志位为有效,并解析得到该下一跳的出接口,将该下一跳及其出接口信息下发至所述FIB中。
5.如权利要求4所述的方法,其特征在于,
在从ARP表中删除一第二ARP表项时,所述方法还包括:
根据该第二ARP表项的第二IP地址,判断所述数据库是否存在与该第二IP地址相同的下一跳,并在存在与该第二IP相同的下一跳时,将该下一跳及其出接口信息从所述FIB中删除。
6.如权利要求1所述的方法,其特征在于,还包括:
在所述ECMP路由被删除时,将所述ECMP路由的所有下一跳的信息,从所述数据库中删除;以及,
将所述FIB中存在所述ECMP路由的下一跳的路由信息均删除。
7.一种等价多路径ECMP的出接口更新装置,其特征在于,包括:
获得单元,用于获得新生成的ECMP路由,并确定所述ECMP路由的所有下一跳;
判断单元,用于判断所述ECMP路由的各个下一跳对应的二层转发信息是否在本地已存在;
处理单元,用于根据所述判断单元的判断结果,仅将本地已存在二层转发信息的下一跳的路由信息下发至转发信息表FIB中,以及,在一数据库中为所述ECMP路由的各个下一跳设置一对应的标志位,其中,所述标志位有效时表示本地已存在该下一跳的二层转发信息,无效时表示本地不存在该下一跳的二层转发信息;
遍历单元,用于周期性遍历所述数据库中的每个下一跳,直至所有下一跳均遍历完成,其中,若当前遍历的下一跳的标志位为有效,则继续遍历下一个下一跳;若当前遍历的下一跳的标志位为无效,则触发该下一跳的ARP学习过程,以及,在通过所述ARP学习过程学习到该下一跳对应的二层转发信息后,更新该下一跳的标志位为有效,并将该下一跳的路由信息下发至所述FIB中。
8.如权利要求7所述的装置,其特征在于,所述判断单元具体用于:
根据各个下一跳,查询本地的ARP表;
若未查询到该下一跳,则判断本地不存在该下一跳的二层转发信息;
若查询到该下一跳,则进一步根据该下一跳对应的MAC地址查询本地的MAC表:若查询到该下一跳对应的MAC地址时,则判断本地存在该下一跳的二层转发信息,否则,判断本地不存在该下一跳的二层转发信息。
9.如权利要求7所述的装置,其特征在于,还包括:
定时单元,用于设置一定时器进行计时,当所述定时器计时到预定门限后,触发所述遍历单元遍历所述数据库的下一跳,并重置所述定时器重新开始计时。
10.如权利要求7所述的装置,其特征在于,还包括:
ARP表项处理单元,用于新生成一第一ARP表项;
所述遍历单元,进一步用于在所述ARP表项处理单元生成所述第一ARP表项时,根据该第一ARP表项的第一IP地址,判断所述数据库是否存在与该第一IP地址相同的下一跳;若存在与该第一IP相同的下一跳,且该下一跳的标志位为无效,则更新该下一跳的标志位为有效,并解析得到该下一跳的出接口,将该下一跳及其出接口信息下发至所述FIB中。
11.如权利要求10所述的装置,其特征在于,
所述ARP表项处理单元,还用于从ARP表中删除一第二ARP表项;
所述遍历单元,还用于在所述ARP表项处理单元删除所述第二ARP表项时,根据该第二ARP表项的第二IP地址,判断所述数据库是否存在与该第二IP地址相同的下一跳,并在存在与该第二IP相同的下一跳时,将该下一跳及其出接口信息从所述FIB中删除。
12.如权利要求7所述的装置,其特征在于,
所述遍历单元,还用于在所述ECMP路由被删除时,将所述ECMP路由的所有下一跳的信息,从所述数据库中删除;以及,将所述FIB中存在所述ECMP路由的下一跳的路由信息均删除。
CN201410720211.2A 2014-12-02 2014-12-02 一种等价多路径的出接口更新方法及装置 Active CN105721321B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410720211.2A CN105721321B (zh) 2014-12-02 2014-12-02 一种等价多路径的出接口更新方法及装置
PCT/CN2015/091128 WO2016086713A1 (zh) 2014-12-02 2015-09-29 一种等价多路径的出接口更新方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410720211.2A CN105721321B (zh) 2014-12-02 2014-12-02 一种等价多路径的出接口更新方法及装置

Publications (2)

Publication Number Publication Date
CN105721321A CN105721321A (zh) 2016-06-29
CN105721321B true CN105721321B (zh) 2019-09-06

Family

ID=56090974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410720211.2A Active CN105721321B (zh) 2014-12-02 2014-12-02 一种等价多路径的出接口更新方法及装置

Country Status (2)

Country Link
CN (1) CN105721321B (zh)
WO (1) WO2016086713A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209644B (zh) * 2016-07-25 2019-09-17 杭州迪普科技股份有限公司 一种基于等价路由的报文转发方法和装置
CN106470158B (zh) * 2016-09-13 2019-09-17 杭州迪普科技股份有限公司 报文转发方法及装置
CN106453091B (zh) * 2016-10-28 2019-04-30 烽火通信科技股份有限公司 路由器转发平面的等价路由管理方法和装置
CN107040468B (zh) * 2016-11-30 2020-05-12 新华三技术有限公司 一种通信设备及其fib表生成方法
CN108259346B (zh) * 2017-01-25 2020-08-04 新华三技术有限公司 一种等价路由表项建立方法和装置
CN109194575B (zh) * 2018-08-23 2021-08-06 新华三技术有限公司 路由选择方法及装置
CN109639581B (zh) * 2019-02-21 2021-05-28 杭州迪普科技股份有限公司 交换芯片的表项维护方法和装置
CN114268630B (zh) * 2021-12-14 2024-04-12 浪潮思科网络科技有限公司 基于静态arp表项实现随机负载均衡访问方法、装置及设备
CN114827052A (zh) * 2022-03-30 2022-07-29 阿里云计算有限公司 Ecmp节点健康状况的诊断方法及装置
CN115955434B (zh) * 2023-03-14 2023-05-30 苏州浪潮智能科技有限公司 Ecmp组失效的恢复方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414651A (zh) * 2013-08-02 2013-11-27 杭州华三通信技术有限公司 一种调整等价路由均衡分担的方法和网络设备
CN103905325A (zh) * 2012-12-26 2014-07-02 中兴通讯股份有限公司 二层网络数据传送方法及网络节点

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721800B1 (en) * 2000-04-10 2004-04-13 International Business Machines Corporation System using weighted next hop option in routing table to include probability of routing a packet for providing equal cost multipath forwarding packets
CN101404620B (zh) * 2008-11-17 2011-01-05 杭州华三通信技术有限公司 一种创建路由表项的方法和交换设备
US9736054B2 (en) * 2011-10-05 2017-08-15 Cisco Technology, Inc. Multicast active source discovery and management for layer-2 interconnect solutions
WO2013117166A1 (en) * 2012-02-08 2013-08-15 Hangzhou H3C Technologies Co., Ltd. Implement equal cost multiple path of trill network
CN103078804B (zh) * 2012-12-28 2015-07-22 福建星网锐捷网络有限公司 等价多路径表处理方法、装置及网络设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103905325A (zh) * 2012-12-26 2014-07-02 中兴通讯股份有限公司 二层网络数据传送方法及网络节点
CN103414651A (zh) * 2013-08-02 2013-11-27 杭州华三通信技术有限公司 一种调整等价路由均衡分担的方法和网络设备

Also Published As

Publication number Publication date
CN105721321A (zh) 2016-06-29
WO2016086713A1 (zh) 2016-06-09

Similar Documents

Publication Publication Date Title
CN105721321B (zh) 一种等价多路径的出接口更新方法及装置
CA2882535C (en) Control device discovery in networks having separate control and forwarding devices
CN105594185B (zh) 重复mac地址检测
CN104335537B (zh) 用于层2多播多路径传送的系统和方法
US9736263B2 (en) Temporal caching for ICN
US8934490B2 (en) Accelerated MAC address resolution for IPv6 traffic with IS-IS protocol
CN103546374B (zh) 一种边缘二层网络中转发报文的方法和装置
US10164872B2 (en) Explicit control of aggregation links via IS-IS
CN106664252A (zh) 实现业务链接的方法、设备及系统
JP5515649B2 (ja) 通信システム、経路制御装置、経路制御方法および経路制御用プログラム
WO2015109821A1 (zh) 一种管理业务链的方法、系统及装置
CN105634940A (zh) Sr信息获取方法及建立段路由网络的方法
WO2016059537A1 (en) Ccn name patterns
CN106656793B (zh) 一种sdn网络与ip网络的数据交互方法
EP2599270B1 (en) A network device and method of routing traffic
WO2017054770A1 (zh) 集群通信
KR20150121241A (ko) Ip/mpls 고속 재루트 방법 및 장치
EP3488568A1 (en) Efficient vpn route refresh mechanism for bgp based vpn technologies
CN105472486B (zh) 一种pon接入系统防止路由环路的处理方法
WO2017084448A1 (zh) 一种网络系统及网络运行方法
CN102377680A (zh) 路由收敛方法及设备
CN103297340A (zh) Mpls和bgp组网中的路由收敛方法和设备
WO2016123904A1 (zh) 路由收敛方法、装置及虚拟专用网vpn系统
WO2018047943A1 (ja) 通信システム、エッジノード、通信方法及びプログラム
CN106716870A (zh) 卫星设备处的本地分组交换

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190807

Address after: Yuhuatai District of Nanjing City, Jiangsu province 210012 Bauhinia Road No. 68

Applicant after: Nanjing Zhongxing New Software Co., Ltd.

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Applicant before: ZTE Corporation

GR01 Patent grant
GR01 Patent grant