CN110601982B - 路由传递方法、装置及路由器 - Google Patents
路由传递方法、装置及路由器 Download PDFInfo
- Publication number
- CN110601982B CN110601982B CN201910940150.3A CN201910940150A CN110601982B CN 110601982 B CN110601982 B CN 110601982B CN 201910940150 A CN201910940150 A CN 201910940150A CN 110601982 B CN110601982 B CN 110601982B
- Authority
- CN
- China
- Prior art keywords
- routing information
- dual
- bgp
- ipv6
- router
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/20—Hop count for routing purposes, e.g. TTL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/52—Multiprotocol routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种路由传递方法、装置及路由器,涉及网络通讯的技术领域,能够使第一路由器在监测到本地存在待发送路由信息时,查询当前建立的BGP邻居是否有双栈路由发送能力,如果查询到当前建立的BGP邻居有双栈路由发送能力时,生成BGP更新报文,并将该BGP更新报文发送至BGP邻居对应的第二路由器,在该路由传递的过程中,第二路由器能够从BGP更新报文中解析出待发送路由信息。本公开提供的路由传递方法、装置及路由器,能够有效简化对BGP的配置过程,提高了路由传递的效率。
Description
技术领域
本公开涉及网络通讯的技术领域,尤其是涉及一种路由传递方法、装置及路由器。
背景技术
BGP(Border Gateway Protocol,边界网关协议)是一种既可以用于不同AS(Autonomous System,自治系统)之间,又可以用于同一AS内部的动态路由协议。运行BGP协议的路由器称为BGP发言者。BGP发言者可以接收或产生路由信息,并将路由信息发布给其他BGP发言者。
通常,基于BGP协议传递IPv4(Internet Protocol Version4,互联网协议版4)路由信息和IPv6(Internet Protocol Version6,互联网协议版6)路由信息时,需要分别建立相应的BGP邻居,以实现IPv4路由信息和IPv6路由信息的传递,使得路由信息的传递过程需要大量的BGP配置,导致路由传递的效率较低。
发明内容
有鉴于此,本公开的目的在于提供一种路由传递方法、装置及路由器,以简化BGP的配置,提高路由信息传递效率。
第一方面,本公开实施方式提供了一种路由传递方法,该方法应用于第一路由器,该方法包括:如果监测到本地存在待发送路由信息,查询当前建立的BGP邻居是否有双栈路由发送能力;如果是,生成BGP更新报文;其中,BGP更新报文携带有预先设置的双栈属性标识和待发送路由信息;发送BGP更新报文至BGP邻居对应的第二路由器,以使第二路由器根据双栈属性标识从BGP更新报文中解析出待发送路由信息。
结合第一方面,本公开实施方式提供了第一方面的第一种可能的实施方式,其中,生成BGP更新报文的步骤包括:如果待发送路由信息为包括IPv4路由信息和IPv6路由信息的混合路由,获取预先设置的第一双栈属性标识,其中,第一双栈属性标识为表征待发送路由信息为混合路由的双栈属性标识;将第一双栈属性标识和包含有待发送路由信息的网络层可达信息添加至BGP更新报文;查询第一路由器的IPv4地址对应接口下的IPv6地址,将IPv6地址填充至BGP更新报文中IPv6路由信息的下一跳字段。
结合第一方面,本公开实施方式提供了第一方面的第二种可能的实施方式,其中,生成BGP更新报文的步骤包括:如果待发送路由信息为IPv4路由信息,获取预先设置的第二双栈属性标识;将第二双栈属性标识和包含有IPv4路由信息的网络层可达信息添加至BGP更新报文。
结合第一方面,本公开实施方式提供了第一方面的第三种可能的实施方式,其中,生成BGP更新报文的步骤包括:如果待发送路由信息为IPv6路由信息,获取预先设置的第三双栈属性标识;将第三双栈属性标识和包含有IPv6路由信息的网络层可达信息添加至BGP更新报文;查询第一路由器的IPv4地址对应接口下的IPv6地址,将IPv6地址填充至BGP更新报文中IPv6路由信息的下一跳字段。
第二方面,本公开实施方式还提供一种路由传递方法,该方法应用于第二路由器,该方法包括:接收第一路由器发送的BGP更新报文;其中,BGP更新报文携带有预先设置的双栈属性标识和路由信息;提取BGP更新报文中携带的双栈属性标识;基于双栈属性标识确定路由信息的类型和路由信息对应的下一跳信息。
结合第二方面,本公开实施方式提供了第二方面的第一种可能的实施方式,其中,基于双栈属性标识确定路由信息的类型和路由信息对应的下一跳信息的步骤包括:如果双栈属性标识为预先设置的第一双栈属性标识,确定路由信息的类型为包括IPv4路由信息和IPv6路由信息的混合路由;根据混合路由分别确定IPv4路由信息和IPv6路由信息的下一跳信息。
结合第二方面的第一种可能的实施方式,本公开实施方式提供了第二方面的第二种可能的实施方式,其中,基于双栈属性标识确定路由信息的类型和路由信息对应的下一跳信息的步骤包括:如果双栈属性标识为预先设置的第二双栈属性标识,确定路由信息的类型为IPv4类型的路由信息;根据IPv4类型的路由信息确定下一跳邻居地址和出接口。
结合第二方面,本公开实施方式提供了第二方面的第三种可能的实施方式,其中,基于双栈属性标识确定路由信息的类型和路由信息对应的下一跳信息步骤包括:如果双栈属性标识为预先设置的第三双栈属性标识,确定路由信息为IPv6类型的路由信息;提取BGP更新报文中IPv6类型的路由信息的下一跳字段填充的IPv6地址;判断下一跳字段填充的IPv6地址与第二路由器从建立BGP邻居的对端学到的IPv6地址是否一致;如果一致,根据IPv6路由信息确定下一跳邻居地址和出接口。
第三方面,本公开实施方式还提供一种路由传递装置,该装置应用于第一路由器,该装置包括:查询模块,用于如果监测到本地存在待发送路由信息,查询当前建立的BGP邻居是否有双栈路由发送能力;生成模块,用于如果查询到当前建立的BGP邻居具有双栈路由发送能力时,生成BGP更新报文;其中,BGP更新报文携带有预先设置的双栈属性标识和待发送路由信息;发送模块,用于发送BGP更新报文至BGP邻居对应的第二路由器,以使第二路由器根据双栈属性标识从BGP更新报文中解析出待发送路由信息。
第四方面,本公开实施方式还提供一种路由传递装置,该装置应用于第二路由器,该装置包括:接收模块,用于接收第一路由器发送的BGP更新报文;其中,BGP更新报文携带有预先设置的双栈属性标识和路由信息;提取模块,用于提取BGP更新报文中携带的双栈属性标识;确定模块,用于基于双栈属性标识确定路由信息的类型和路由信息对应的下一跳信息。
第五方面,本公开实施方式还提供一种路由器,路由器包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现第一方面或第二方面的方法。
第六方面,本公开实施方式还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现第一方面或第二方面的方法。
本公开实施方式提供的路由传递方法、装置及路由器,能够使第一路由器在监测到本地存在待发送路由信息时,查询当前建立的BGP邻居是否有双栈路由发送能力,如果查询到当前建立的BGP邻居有双栈路由发送能力时,则生成携带有双栈属性标识和待发送路由信息BGP更新报文,并将该BGP更新报文发送至BGP邻居对应的第二路由器,以使第二路由器根据双栈属性标识从BGP更新报文中解析出相应的路由信息,在上述路由传递过程中,通过在BGP更新报文中携带双栈属性标识的方式,使得在传递路由信息过程中无需建立多个BGP邻居就可以完成路由信息的传递,从而有效简化了对BGP的配置过程,提高了路由传递的效率。
本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点在说明书以及附图中所特别指出的结构来实现和获得。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施方式提供的一种路由传递方法的流程图;
图2为本公开实施方式提供的另一种路由传递方法的流程图;
图3为本公开实施方式提供的一种BGP组网的示意图;
图4为本公开实施方式提供的一种混合路由的传递示意图;
图5为本公开实施方式提供的一种混合路由的传递流程图;
图6为本公开实施方式提供的一种路由传递装置的结构示意图;
图7为本公开实施方式提供的另一种路由传递装置的结构示意图;
图8为本公开实施方式提供的一种路由器的结构示意图。
具体实施方式
为使本公开实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本公开一部分实施方式,而不是全部的实施方式。基于本公开中的实施方式,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本公开保护的范围。
通常,当基于BGP协议传递IPv4路由信息时,两个路由器需要建立IPv4单播地址族邻居;当BGP传递IPv6路由信息时,两个路由器需要建立IPv6单播地址族邻居,并建立相应的BGP邻居,因此,当同时需要传递IPv4路由信息和IPv6路由信息,即路由器存在双栈路由待发送时,既需要使能IPv4单播地址族,建立IPv4 BGP邻居,又需要使能IPv6单播地址族,建立IPv6 BGP邻居,以达到分别传递IPv4路由信息和IPv6路由信息的目的,使得路由信息的传递过程需要增加大量的BGP配置,从而降低了路由传递的效率。基于此,本公开实施方式提供的一种路由传递方法、装置及路由器,可以简化BGP的配置,提高路由信息传递效率。
为便于对本实施方式进行理解,首先对本公开实施方式所公开的一种路由传递方法进行详细介绍。
在一种可能的实施方式中,本公开提供了一种路由传递方法,该方法应用于第一路由器,通常,该第一路由器为运行BGP协议的路由器,且,与一个第二路由器建立BGP邻居,第一路由器与第二路由器相互之间存在TCP(Transmission Control Protocol,传输控制协议)连接。第一路由器可以作为BGP发言者接收或产生路由信息,并将路由信息发布给其他BGP发言者,如第二路由器,相互交换路由信息的BGP发言者也互为BGP对等体。
具体地,如图1所示的一种路由传递方法的流程图,该方法包括以下步骤:
步骤S102,如果监测到本地存在待发送路由信息,查询当前建立的BGP邻居是否有双栈路由发送能力;
其中,双栈路由发送能力为建立BGP邻居时协商的;
在实际使用时,为了能够在路由器建立BGP邻居时协商双栈路由发送能力,上述第一路由器和对应的建立BGP邻居的第二路由器通常是运行有双栈路由协议的路由器,即,在第一路由器和第二路由器上同时运行这两个被动路由协议,以进行数据包的转换。其中,在本公开实施方式中,第一路由器和第二路由器上同时运行IPv4路由协议和IPv6路由协议。
此外,考虑到建立BGP邻居初期,BGP对等体之间会发送OPEN报文进行消息互通,因此,上述双栈路由发送能力的协商过程,可以在建立BGP邻居初期,通过在第一路由器和第二路由器之间发送OPEN报文的方式进行。
步骤S104,如果是,生成BGP更新报文;其中,BGP更新报文携带有预先设置的双栈属性标识和待发送路由信息;
在实际使用时,上述BGP更新报文可以通过BGP协议的Update报文实现。即,在第一路由器查询到当前建立的BGP邻居有双栈路由发送能力时,在与第二路由器交换路由信息时,可以在Update报文中添加双栈属性标识和待发送路由信息,以生成BGP更新报文。其中,待发送路由信息通常填充在Update报文的网络层可达信息字段(Network LayerReachability Information,NLRI)。
具体地,双栈属性标识通常需要预先设置,以便于在第一路由器查询到当前建立的BGP邻居有双栈路由发送能力时将该双栈属性标识添加到Update报文中。
步骤S106,发送BGP更新报文至BGP邻居对应的第二路由器,以使第二路由器根据双栈属性标识从BGP更新报文中解析出待发送路由信息。
本公开实施方式提供的路由传递方法,能够使第一路由器在监测到本地存在待发送路由信息时,查询当前建立的BGP邻居是否有双栈路由发送能力,如果查询到当前建立的BGP邻居有双栈路由发送能力时,则生成携带有双栈属性标识和待发送路由信息BGP更新报文,并将该BGP更新报文发送至BGP邻居对应的第二路由器,以使第二路由器根据双栈属性标识从BGP更新报文中解析出相应的路由信息,在上述路由传递过程中,通过在BGP更新报文中携带双栈属性标识的方式,使得在传递路由信息过程中无需建立多个BGP邻居就可以完成路由信息的传递,从而有效简化了对BGP的配置过程,提高了路由传递的效率。
通常,上述双栈属性标识可以是字段、字符,或者图形标识符等形式,具体可以根据实际使用情况进行设置,本公开实施方式对此不进行限制。
在实际使用时,上述待发送路由信息通常包括IPv4路由信息和/或IPv6路由信息,即,待发送路由信息既可以是仅包括IPv4路由信息或IPv6路由信息的单独类型的路由信息,也可以是同时包括IPv4路由信息和IPv6路由信息的混合路由。而对应于不同类型的路由信息,上述双栈属性标识也是不同的,因此,在上述步骤S104中,生成BGP更新报文时,还需根据路由信息的类型获取对应的双栈属性标识,进而将双栈属性标识和相应的路由信息添加至BGP更新报文中,以便于第二路由器在接收到第一路由器发送的BGP更新报文后,能够根据该双栈属性标识确定出BGP更新报文中的携带的路由信息类型,进而从BGP更新报文中解析出相应的路由信息。
因此,上述步骤S104中,生成BGP更新报文的过程可以包括以下步骤,其中,下述(1)为包含IPv4路由信息和IPv6路由信息的混合路由的清楚,下述(2)、(3)为仅包含一种路由信息的情况:
(1)如果待发送路由信息为包括IPv4路由信息和IPv6路由信息的混合路由,获取预先设置的第一双栈属性标识,其中,第一双栈属性标识为表征待发送路由信息为混合路由的双栈属性标识;将第一双栈属性标识和包含有待发送路由信息的网络层可达信息添加至BGP更新报文;查询第一路由器的IPv4地址对应接口下的IPv6地址,将IPv6地址填充至BGP更新报文中IPv6路由信息的下一跳字段。
具体实现时,上述BGP更新报文可以采用BGP协议的Update报文实现,即,在Update报文增加第一双栈属性标识,同时,使Update报文的网络层可达信息字段携带IPv4路由信息和IPv6路由信息,以生成上述BGP更新报文。
此外,当待发送路由信息为包括IPv4路由信息和IPv6路由信息的混合路由,即,待发送路由信息同时携带IPv4路由信息和IPv6路由信息时,还需要查询当前建立的BGP邻居的BGP会话的IPv4地址对应接口下的IPv6地址,并在IPv6路由的下一跳字段进行填充。
(2)如果待发送路由信息为IPv4路由信息,获取预先设置的第二双栈属性标识;将第二双栈属性标识和包含有IPv4路由信息的网络层可达信息添加至BGP更新报文。
(3)如果待发送路由信息为IPv6路由信息,获取预先设置的第三双栈属性标识;将第三双栈属性标识和包含有IPv6路由信息的网络层可达信息添加至BGP更新报文;查询第一路由器的IPv4地址对应接口下的IPv6地址,将IPv6地址填充至BGP更新报文中IPv6路由信息的下一跳字段。
具体地,对于上述(2)、(3)所示的待发送路由信息仅包含一种路由的情况,第一路由器在生成BGP更新报文时,也是在Update报文中增加相应的双栈属性标识,同时,使Update报文的网络层可达信息字段携带待发送路由信息,以生成上述BGP更新报文,进而在BGP对等体之间交换路由信息。
在实际使用时,为了便于在Update报文中添加上述双栈属性标识,通常将双栈属性标识设置成字段的形式,比如,设定包括IPv4路由信息和IPv6路由信息的混合路由对应的第一双栈属性标识的字段为160,设定仅包含IPv4路由信息时对应的第二双栈属性标识的字段为32,设定仅包含IPv6路由信息时对应的第二双栈属性标识的字段为128等等,以便于在Update报文中添加。
此外,对应于图1所示的应用于第一路由器的路由传递方法,本公开实施方式还提供了另一种路由传递方法,该方法应用于第二路由器,具体地,该第二路由器也为运行BGP协议的路由器,且,与第一路由器建立有BGP邻居。
如图2所示的另一种路由传递方法的流程图,该方法包括以下步骤:
步骤S202,接收第一路由器发送的BGP更新报文;其中,BGP更新报文携带有预先设置的双栈属性标识和路由信息;
具体地,BGP更新报文携带的路由信息,对于第一路由器来说是待发送路由信息,因此,当第二路由器接收到该BGP更新报文后,需对该BGP更新报文进行解析,以获取BGP更新报文携带的路由信息。具体地,第二路由器对该BGP更新报文的解析过程如以下步骤所示。
步骤S204,提取BGP更新报文中携带的双栈属性标识;
步骤S206,基于双栈属性标识确定路由信息的类型和路由信息对应的下一跳信息。
具体地,该下一跳信息通常包括下一跳和出接口。
由于上述第一路由器的待发送路由信息通常包括IPv4路由信息和/或IPv6路由信息,即,第一路由器的待发送路由信息既可以是仅包括IPv4路由信息或IPv6路由信息的单独类型的路由信息,也可以是同时包括IPv4路由信息和IPv6路由信息的混合路由,且,对应于不同类型的路由信息,上述双栈属性标识是不同的,因此,对应不同类型的路由信息,上述第二路由器的解析过程也是不同的。因此,上述步骤S204~S206中,第二路由器对BGP更新报文的解析过程可以包括以下步骤,其中,下述(1)为包含IPv4路由信息和IPv6路由信息的混合路由的清楚,下述(2)、(3)为仅包含一种路由信息的情况:
(1)如果双栈属性标识为预先设置的第一双栈属性标识,确定路由信息的类型为包括IPv4路由信息和IPv6路由信息的混合路由;根据混合路由分别确定IPv4路由信息和IPv6路由信息的下一跳信息。
具体地,第二路由器解析BGP更新报文时,如果确定出双栈属性标识为第一双栈属性标识,则认为该BGP更新报文携带了IPv4路由信息和IPv6路由信息,并分别确定IPv4路由信息和IPv6路由信息的下一跳信息。
(2)如果双栈属性标识为预先设置的第二双栈属性标识,确定路由信息的类型为IPv4类型的路由信息;根据IPv4类型的路由信息确定下一跳邻居地址和出接口。
(3)如果双栈属性标识为预先设置的第三双栈属性标识,确定路由信息为IPv6类型的路由信息;提取BGP更新报文中IPv6类型的路由信息的下一跳字段填充的IPv6地址;判断下一跳字段填充的IPv6地址与第二路由器从建立BGP邻居的对端学到的IPv6地址是否一致;如果一致,根据IPv6路由信息确定下一跳邻居地址和出接口。
为了便于理解,图3示出了一种BGP组网的示意图,包括路由器A、路由器B和路由器C,其中,路由器A的AS号为100,路由器B的AS号为100,路由器C的AS号为200,即,路由器A和路由器B之间建立了IBGP(Internal Border Gateway Protocol,内部边关网管协议)邻居,路由器B和路由器C之间建立了EBGP(External Border Gateway Protocol,外部边界网关协议)邻居,具体组网形式如图3所示。
基于上述图3所示的BGP组网,以路由器B和路由器C之间传递路由信息为例,对上述图1和图2的过程进行说明,假设路由器B和路由器C之间建立了IPv4 BGP邻居,且,第一双栈属性标识的字段为160,第二双栈属性标识的字段为32,第二双栈属性标识的字段为128,具体过程如下:
(1)路由器B和路由器C之间建立IPv4 BGP邻居时,协商双栈路由发送能力,使IPv4BGP邻居具有传递IPv4路由信息和IPv6路由信息的能力。
具体地,建立IPv4 BGP邻居时,路由器B和路由器C之间会由一方发出OPEN报文,此时,在OPEN报文里增加了双栈路由发送能力的字段,由于路由器B和路由器C是支持IPv4协议和IPv6协议的,因此,可以在建立IPv4 BGP邻居时,协商该双栈路由发送能力,互发OPEN报文使得路由器B和路由器C都具有双栈路由发送能力。
(2)当路由器B检测本地存在包括IPv4路由信息和IPv6路由信息的混合路由待发送,且,IPv4 BGP邻居具有双栈路由发送能力时,路由器B在BGP Update报文携带第一双栈属性标识,字段值为160,则Update报文的网络层可达信息字段可以携带IPv4路由信息和IPv6路由信息;同时,由于同时携带有IPv4路由信息和IPv6路由信息,路由器B还需要查询建立IPv4 BGP会话的IPv4地址对应接口下的IPv6地址,并在IPv6路由信息的下一跳字段填充,以生成BGP更新报文,并将该BGP更新报文发送至路由器C。
(3)路由器C接收BGP更新报文,即,携带双栈路由信息的Update报文后,解析该报文。如果解析出Update报文携带的双栈路由信息为第一双栈属性标识,即,字段值为160,则认为该Update报文携带了IPv4路由信息和IPv6路由信息,则依据图3所示的BGP组网形式,此时,IPv4路由的下一跳为邻居地址9.1.1.2/24,出接口为GE1/0/4;IPv6路由的下一跳则需要查询GE1/0/4接口从对端学到的IPv6地址,并与携带的下一跳IPv6地址比较,如果一致,则把该IPv6地址作为下一跳地址;如果不一致,则IPv6路由丢弃。
(4)当路由器B检测本地只有IPv4路由信息待发送,且,IPv4 BGP邻居具有双栈路由发送能力时,路由器B在BGP Update报文携带第二双栈属性标识,字段值为32,此时Update报文的网络层可达信息字段携带IPv4路由信息,进而生成BGP更新报文,并将该BGP更新报文发送至路由器C。
(5)路由器C接收BGP更新报文,解析该报文。此时,解析出的双栈属性标识为32,即,第二双栈属性标识,则认为该BGP更新报文只携带了IPv4路由信息,依据图3所示的BGP组网形式,IPv4路由的下一跳为邻居地址9.1.1.2/24,出接口为GE1/0/4。
(6)当路由器B检测本地只有IPv6路由信息待发送时,且IPv4 BGP邻居具有双栈路由发送能力时,路由器B在BGP Update报文携带第三双栈属性标识,字段值为128,此时Update报文的网络层可达信息字段携带IPv6路由信息,同时,路由器B还需要查询建立IPv4BGP会话的IPv4地址对应接口下的IPv6地址,并在IPv6路由信息的下一跳字段填充,以生成BGP更新报文,并将该BGP更新报文发送至路由器C。
(7)路由器C接收BGP更新报文,解析该报文,此时,解析出的双栈属性标识为128,即,第三双栈属性标识,则认为该BGP更新报文只携带了IPv6路由信息,此时,IPv6路由信息的下一跳则查询GE1/0/4接口从对端学到的IPv6地址,并与BGP更新报文携带的下一跳IPv6地址比较,若一致,把该IPv6地址作为下一跳地址,形成IPv6路由,出接口为GE1/0/4。
应当理解,以上过程是以路由器B和路由器C之间建立了IPv4 BGP邻居为例进行说明,如果路由器B和路由器C之间建立的BGP邻居为IPv6 BGP邻居时,也可以基于同样的原理实现,具体以实际使用情况为准,本公开实施方式对此不进行限制。
进一步,基于图3所示的BGP组网,图4示出了一种路由器B和路由器C之间传递包含IPv4路由信息和IPv6路由信息的混合路由的传递示意图,其中,为了便于说明,图4仅仅示出了包含路由器B和路由器C的BGP组网情况。
具体地,如图4所示,路由器B的接口地址9.1.1.2/24和路由器C的接口地址9.1.1.1/24建立IPv4 BGP会话,协商使能双栈路由发送能力,邻居成功建立。该IPv4 BGP会话具有双栈路由发送能力。同时,路由器B存在1.1.1.1/32和1::1/128路由,即包括IPv4路由信息和IPv6路由信息的混合路由,需要向路由器C发送。其具体处理流程图如图5所示,包括以下步骤:
步骤S502,BGP邻居建立时,路由器B和路由器C互发OPEN报文协商双栈路由发送能力;
步骤S504,路由器B检测出存在包括IPv4路由信息和IPv6路由信息的混合路由待发送时,在Update报文中添加第一双栈属性标识,以及混合路由,以生成BGP更新报文,同时,将建立IPv4 BGP会话接口下的IPv6地址填充至IPv6路由信息的下一跳字段;
具体地,下表1示出了一种BGP更新报文的报文信息,如表1所示,包括双栈属性标识160,且,网络层可达信息中添加有混合路由,即1.1.1.1/32,nexthop9.1.1.2和1::1/128,nexthop9::2。
步骤S506,路由器C接收BGP更新报文后,解析该BGP更新报文,并根据上述第一双栈属性标识确定BGP更新报文携带IPv4路由信息和IPv6路由信息;
步骤S508,路由器C判断BGP更新报文中IPv6路由信息的下一跳字段填充的IPv6地址与路由器C从建立BGP邻居的对端学到的IPv6地址是否一致;如果是,执行步骤S510;如果否,执行步骤S512;
步骤S510,确定BGP更新报文中携带的下一跳字段填充的IPv6地址为IPv6路由信息的下一跳;
步骤S512,丢弃上述IPv6路由信息。
进一步,如果步骤S508中的判断结果为是,则说明BGP更新报文中携带的IPv4路由信息和IPv6路由信息均为有效路由信息,此时,路由器C解析出的路由信息如下表2所示,包括路由前缀、下一跳和出接口信息。
路由前缀 | 下一跳 | 出接口 |
1.1.1.1/32 | 9.1.1.2 | GE1/0/4 |
1::1/128 | 9::2 | GE1/0/4 |
应当理解,图5所示的过程,也是以路由器B和路由器C之间建立了IPv4 BGP邻居为例进行说明,如果路由器B和路由器C之间建立的BGP邻居为IPv6 BGP邻居时,也可以基于同样的原理实现,具体以实际使用情况为准,本公开实施方式对此不进行限制。
上述传递路由信息的过程,通过在BGP邻居建立时协商双栈路由发送能力的机制,可以在BGP邻居只存在IPv4 BGP会话或IPv6 BGP会话时,同时传递IPv4路由信息和IPv6路由信息,使得在存在双栈路由时,简化BGP配置,进而提高了路由传递效率。
对应于上述图1所示的路由传递方法,本公开实施方式还提供了一种路由传递装置,该装置应用于第一路由器,如图6所示的一种路由传递装置的结构示意图,该装置包括:
查询模块602,用于如果监测到本地存在待发送路由信息,查询当前建立的BGP邻居是否有双栈路由发送能力;
其中,双栈路由发送能力为建立BGP邻居时协商的;
生成模块604,用于如果查询到当前建立的BGP邻居具有双栈路由发送能力时,生成BGP更新报文;其中,BGP更新报文携带有预先设置的双栈属性标识和待发送路由信息;
发送模块606,用于发送BGP更新报文至BGP邻居对应的第二路由器,以使第二路由器根据双栈属性标识从BGP更新报文中解析出待发送路由信息。
此外,对应于上述图2所示的路由传递方法,本公开实施方式还提供了另一种路由传递装置,该装置应用于第二路由器,如图7所示的另一种路由传递装置的结构示意图,该装置包括:
接收模块702,用于接收第一路由器发送的BGP更新报文;其中,所述BGP更新报文携带有预先设置的双栈属性标识和路由信息;
提取模块704,用于提取所述BGP更新报文中携带的双栈属性标识;
确定模块706,用于基于所述双栈属性标识确定所述路由信息的类型和所述路由信息对应的下一跳信息。
本公开实施方式提供的路由传递装置,与上述实施方式提供的路由传递方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本公开实施方式还提供了一种路由器,该路由器包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现上述隧道连通性检测方法。
进一步,本公开实施方式还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现上述隧道连通性检测方法。
参见图8,本公开实施方式还提供一种路由器的结构示意图,包括:处理器800,存储器801,总线802和通信接口803,所述处理器800、通信接口803和存储器801通过总线802连接;处理器800用于执行存储器801中存储的可执行模块,例如计算机程序。
其中,存储器801可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口803(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线802可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器801用于存储程序,处理器800在接收到执行指令后,执行所述程序,前述本公开任一实施方式揭示的路由传递装置所执行的方法可以应用于处理器800中,或者由处理器800实现。
处理器800可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器800中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器800可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器800读取存储器801中的信息,结合其硬件完成上述方法的步骤。
本公开实施方式所提供的路由传递方法、装置及路由器的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施方式中所述的方法,具体实现可参见方法实施方式,在此不再赘述。
此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施方式,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施方式对本公开进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施方式所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施方式技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (6)
1.一种路由传递方法,其特征在于,所述方法应用于第一路由器,所述方法包括:
如果监测到本地存在待发送路由信息,查询当前建立的BGP邻居是否有双栈路由发送能力;
如果是,生成BGP更新报文;其中,所述BGP更新报文携带有预先设置的双栈属性标识和所述待发送路由信息;
发送所述BGP更新报文至所述BGP邻居对应的第二路由器,以使所述第二路由器根据所述双栈属性标识从所述BGP更新报文中解析出所述待发送路由信息;
其中,所述待发送路由信息包括IPv4路由信息和/或IPv6路由信息;
所述生成BGP更新报文的步骤包括:
如果所述待发送路由信息为包括IPv4路由信息和IPv6路由信息的混合路由,获取预先设置的第一双栈属性标识,其中,所述第一双栈属性标识为表征所述待发送路由信息为混合路由的双栈属性标识;将所述第一双栈属性标识和包含有所述待发送路由信息的网络层可达信息添加至BGP更新报文;查询所述第一路由器的IPv4地址对应接口下的IPv6地址,将所述IPv6地址填充至所述BGP更新报文中所述IPv6路由信息的下一跳字段;
如果所述待发送路由信息为IPv4路由信息,获取预先设置的第二双栈属性标识;将所述第二双栈属性标识和包含有所述IPv4路由信息的网络层可达信息添加至BGP更新报文;
如果所述待发送路由信息为IPv6路由信息,获取预先设置的第三双栈属性标识;将所述第三双栈属性标识和包含有所述IPv6路由信息的网络层可达信息添加至BGP更新报文;查询所述第一路由器的IPv4地址对应接口下的IPv6地址,将所述IPv6地址填充至所述BGP更新报文中所述IPv6路由信息的下一跳字段。
2.一种路由传递方法,其特征在于,所述方法应用于第二路由器,所述方法包括:
接收第一路由器发送的BGP更新报文;其中,所述BGP更新报文携带有预先设置的双栈属性标识和路由信息;
提取所述BGP更新报文中携带的双栈属性标识;
基于所述双栈属性标识确定所述路由信息的类型和所述路由信息对应的下一跳信息;
其中,基于所述双栈属性标识确定所述路由信息的类型和所述路由信息对应的下一跳信息的步骤包括:
如果所述双栈属性标识为预先设置的第一双栈属性标识,确定所述路由信息的类型为包括IPv4路由信息和IPv6路由信息的混合路由;根据所述混合路由分别确定所述IPv4路由信息和所述IPv6路由信息的下一跳信息;
如果所述双栈属性标识为预先设置的第二双栈属性标识,确定所述路由信息的类型为IPv4类型的路由信息;根据所述IPv4类型的路由信息确定下一跳邻居地址和出接口;
如果所述双栈属性标识为预先设置的第三双栈属性标识,确定所述路由信息为IPv6类型的路由信息;提取所述BGP更新报文中所述IPv6类型的路由信息的下一跳字段填充的IPv6地址;判断所述下一跳字段填充的IPv6地址与所述第二路由器从建立BGP邻居的对端学到的IPv6地址是否一致;如果一致,根据所述IPv6路由信息确定下一跳邻居地址和出接口。
3.一种路由传递装置,其特征在于,所述装置应用于第一路由器,所述装置包括:
查询模块,用于如果监测到本地存在待发送路由信息,查询当前建立的BGP邻居是否有双栈路由发送能力;
生成模块,用于如果查询到当前建立的BGP邻居具有双栈路由发送能力时,生成BGP更新报文;其中,所述BGP更新报文携带有预先设置的双栈属性标识和所述待发送路由信息;
发送模块,用于发送所述BGP更新报文至所述BGP邻居对应的第二路由器,以使所述第二路由器根据所述双栈属性标识从所述BGP更新报文中解析出所述待发送路由信息;
其中,所述待发送路由信息包括IPv4路由信息和/或IPv6路由信息;
所述生成模块包括:
如果所述待发送路由信息为包括IPv4路由信息和IPv6路由信息的混合路由,获取预先设置的第一双栈属性标识,其中,所述第一双栈属性标识为表征所述待发送路由信息为混合路由的双栈属性标识;将所述第一双栈属性标识和包含有所述待发送路由信息的网络层可达信息添加至BGP更新报文;查询所述第一路由器的IPv4地址对应接口下的IPv6地址,将所述IPv6地址填充至所述BGP更新报文中所述IPv6路由信息的下一跳字段;
如果所述待发送路由信息为IPv4路由信息,获取预先设置的第二双栈属性标识;将所述第二双栈属性标识和包含有所述IPv4路由信息的网络层可达信息添加至BGP更新报文;
如果所述待发送路由信息为IPv6路由信息,获取预先设置的第三双栈属性标识;将所述第三双栈属性标识和包含有所述IPv6路由信息的网络层可达信息添加至BGP更新报文;查询所述第一路由器的IPv4地址对应接口下的IPv6地址,将所述IPv6地址填充至所述BGP更新报文中所述IPv6路由信息的下一跳字段。
4.一种路由传递装置,其特征在于,所述装置应用于第二路由器,所述装置包括:
接收模块,用于接收第一路由器发送的BGP更新报文;其中,所述BGP更新报文携带有预先设置的双栈属性标识和路由信息;
提取模块,用于提取所述BGP更新报文中携带的双栈属性标识;
确定模块,用于基于所述双栈属性标识确定所述路由信息的类型和所述路由信息对应的下一跳信息;
其中,所述确定模块用于:
如果所述双栈属性标识为预先设置的第一双栈属性标识,确定所述路由信息的类型为包括IPv4路由信息和IPv6路由信息的混合路由;根据所述混合路由分别确定所述IPv4路由信息和所述IPv6路由信息的下一跳信息;
如果所述双栈属性标识为预先设置的第二双栈属性标识,确定所述路由信息的类型为IPv4类型的路由信息;根据所述IPv4类型的路由信息确定下一跳邻居地址和出接口;
如果所述双栈属性标识为预先设置的第三双栈属性标识,确定所述路由信息为IPv6类型的路由信息;提取所述BGP更新报文中所述IPv6类型的路由信息的下一跳字段填充的IPv6地址;判断所述下一跳字段填充的IPv6地址与所述第二路由器从建立BGP邻居的对端学到的IPv6地址是否一致;如果一致,根据所述IPv6路由信息确定下一跳邻居地址和出接口。
5.一种路由器,其特征在于,所述路由器包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1~2任一项所述的方法。
6.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1~2任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910940150.3A CN110601982B (zh) | 2019-09-27 | 2019-09-27 | 路由传递方法、装置及路由器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910940150.3A CN110601982B (zh) | 2019-09-27 | 2019-09-27 | 路由传递方法、装置及路由器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110601982A CN110601982A (zh) | 2019-12-20 |
CN110601982B true CN110601982B (zh) | 2021-11-09 |
Family
ID=68865270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910940150.3A Active CN110601982B (zh) | 2019-09-27 | 2019-09-27 | 路由传递方法、装置及路由器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110601982B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023169364A1 (zh) * | 2022-03-11 | 2023-09-14 | 华为技术有限公司 | 路由生成方法、数据报文的转发方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783869A (zh) * | 2004-11-29 | 2006-06-07 | 中兴通讯股份有限公司 | 在TCP/IPv4协议栈中增加IPv6支持的方法 |
CN101155115A (zh) * | 2007-07-26 | 2008-04-02 | 杭州华三通信技术有限公司 | 一种自动隧道的实现方法及设备 |
CN101764813A (zh) * | 2009-12-16 | 2010-06-30 | 华为技术有限公司 | 一种ims网络通信方法及装置 |
US7764686B1 (en) * | 2002-12-19 | 2010-07-27 | Cisco Technology, Inc. | Migration to IPv6 using combination of globally significant and locally significant IPv4 addresses |
CN102098353A (zh) * | 2011-01-31 | 2011-06-15 | 北京邮电大学 | 基于分布式哈希表DHT实现IPv4和IPv6互通的系统和方法 |
CN103124216A (zh) * | 2011-11-18 | 2013-05-29 | 华为技术有限公司 | 一种Ipv4/Ipv6双栈用户计费方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100640005B1 (ko) * | 2005-10-13 | 2006-11-01 | 한국전자통신연구원 | DSTM을 이용한 Mobile IPv6 환경에서IPv6 이동 노드와 IPv4 기반 노드간 통신 방법 |
-
2019
- 2019-09-27 CN CN201910940150.3A patent/CN110601982B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7764686B1 (en) * | 2002-12-19 | 2010-07-27 | Cisco Technology, Inc. | Migration to IPv6 using combination of globally significant and locally significant IPv4 addresses |
CN1783869A (zh) * | 2004-11-29 | 2006-06-07 | 中兴通讯股份有限公司 | 在TCP/IPv4协议栈中增加IPv6支持的方法 |
CN101155115A (zh) * | 2007-07-26 | 2008-04-02 | 杭州华三通信技术有限公司 | 一种自动隧道的实现方法及设备 |
CN101764813A (zh) * | 2009-12-16 | 2010-06-30 | 华为技术有限公司 | 一种ims网络通信方法及装置 |
CN102098353A (zh) * | 2011-01-31 | 2011-06-15 | 北京邮电大学 | 基于分布式哈希表DHT实现IPv4和IPv6互通的系统和方法 |
CN103124216A (zh) * | 2011-11-18 | 2013-05-29 | 华为技术有限公司 | 一种Ipv4/Ipv6双栈用户计费方法及装置 |
Non-Patent Citations (5)
Title |
---|
"IPv6技术在互联网中的应用";张地;《电子技术与软件工程》;20190915;第4-5页 * |
"Performance comparison of Multimedia Applications over IPv4 and IPv6 Dual Stack technology";Ummi Suraya Shaharuddin,等;《2016 6th International Conference on System Engineering and Technology (ICSET)》;20170213;第1-7页 * |
"RFC4241";Y. Shirasaki,等;《IETF》;20051231;第1-10页 * |
"RFC8421";P. Martinsen,等;《IETF》;20180731;第1-9页 * |
"快速更新IPv4/IPv6双栈路由查找算法与实现";王振兴,等;《小型微型计算机系统》;20050831;第1281-1285页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110601982A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7499445B2 (en) | System and method for routing ISIS traffic through unidirectional links of a computer network | |
US10637794B2 (en) | Resource subscription method, resource subscription apparatus, and resource subscription system | |
JP6395867B2 (ja) | OpenFlow通信方法及びシステム、制御部、並びにサービスゲートウェイ | |
EP3190754B1 (en) | Method and apparatus for processing a modified packet | |
US20050157749A1 (en) | System and method for communication with an external network in an IPv6 MANET network | |
EP2479935A1 (en) | Method, system and communication terminal for implementing inter-communication between new network and internet | |
EP4191966A1 (en) | Method and device for processing data message, storage medium, and electronic device | |
US20230269164A1 (en) | Method and apparatus for sending route calculation information, device, and storage medium | |
CN113923161A (zh) | 一种报文转发方法及装置 | |
EP1727310A1 (en) | Method and apparatus for discovering a service in an AD-HOC network | |
CN113841363A (zh) | 用于在具有不同路由协议的网络和设备之间建立通信链路的系统和方法 | |
CN111327545B (zh) | 数据发送方法、装置、网络系统及交换机 | |
CN110601982B (zh) | 路由传递方法、装置及路由器 | |
EP3754933A1 (en) | Fault diagnosis method and apparatus therefor | |
CN111327530B (zh) | 数据发送方法、装置、网络系统及交换机 | |
CN107231249B (zh) | 转发节点的物理拓扑信息的获取方法、控制器和转发节点 | |
WO2022228090A1 (zh) | 路径学习方法、装置、业务节点及存储介质 | |
CN110932970B (zh) | 传输控制协议tcp会话的处理方法及装置 | |
CN112804141B (zh) | 发送报文的方法、网络设备及计算机存储介质 | |
WO2015131617A1 (zh) | 流表处理方法、装置、开放流控制器及开放流交换机 | |
CN113300998A (zh) | 实现数据加密传输的方法及装置、通信系统 | |
CN108259292B (zh) | 建立隧道的方法及装置 | |
CN111866046A (zh) | 一种实现集群的方法及相关设备 | |
CN112769698B (zh) | 一种路由实现方法和装置 | |
WO2023169364A1 (zh) | 路由生成方法、数据报文的转发方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |