CN107347035B - 路由查找方法、装置、分配节点、查找节点及入口节点 - Google Patents
路由查找方法、装置、分配节点、查找节点及入口节点 Download PDFInfo
- Publication number
- CN107347035B CN107347035B CN201610298938.5A CN201610298938A CN107347035B CN 107347035 B CN107347035 B CN 107347035B CN 201610298938 A CN201610298938 A CN 201610298938A CN 107347035 B CN107347035 B CN 107347035B
- Authority
- CN
- China
- Prior art keywords
- node
- prefix
- field
- message
- distribution
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/748—Address table lookup; Address filtering using longest matching prefix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- 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/48—Routing tree calculation
Abstract
一种路由查找方法、装置、分配节点、查找节点及入口节点,该方法包括:分配节点接收入口节点发送的报文的目的IP地址;分配节点上的分配表包括匹配项字段以及查找节点号字段,匹配项字段为一个前缀子树的根节点对应的前缀,查找节点号字段为一个前缀子树的路由信息所在的查找节点的物理盒子号;分配节点根据目的IP地址按照LPM原则在分配表中进行匹配项字段的匹配;若目的IP地址与分配表中的第一匹配项字段匹配成功,分配节点获取第一匹配项字段对应的第一前缀子树的路由信息所在的第一查找节点的物理盒子号;分配节点将目的IP地址发送给第一查找节点。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种路由查找方法、装置、分配节点、查找节点及入口节点。
背景技术
路由器的主要任务是进行网络协议(英文:Internet Protocol,简称:IP)报文转发,即根据报文头中的目的IP地址将到达路由器输入端口的报文转发到正确的出端口。路由查找就是根据报文的目的IP地址,查找路由器中的路由表,得到报文的出端口信息的过程。
随着网络的发展,路由器的吞吐量的需求逐步提高。在现有技术中,一种提高路由器的吞吐量的方法为水平扩展(Scale Out),即整个路由器由多个盒子堆叠搭建而成,主要通过增加盒子数量来提升性能,容易实现规模效应从而降低成本。
以下描述一个现有技术中的水平扩展的分布式路由器以及路由查找方法。分布式路由器包括入口计算节点、反弹计算节点以及出口计算节点,进一步,还可以包括其它计算节点。入口计算节点接收网络报文,并确定将接收到的网络报文路由到哪个反弹计算节点。具体的,入口计算节点基于接收到的目的IP地址生成散列秘钥,每个散列密码与分布式路由器的不同计算节点(例如反弹计算节点)相对应,这样,入口计算节点确定具体的反弹计算节点之后,将网络报文发送给所确定的反弹计算节点而不执行路由查找。反弹计算节点基于目的IP地址确定将网络报文路由到哪儿。具体的,每个反弹计算节点存储不同的路由条目集合(例如子集、部分等)。反弹计算节点确定负责网络报文从分布式路由器的离开的具体的出口计算节点。
在该路由查找方法中,采用目的IP地址生成的散列秘钥进行路由表的分布式存放,会造成大量路由条目的重复,而且因为基于散列秘钥做分布式路由查找,所以会存在哈希(Hash)冲突,需要额外的机制来解决哈希冲突,另外还会造成虚假命中。因此,导致整个路由效率较低。
发明内容
本发明实施例提供一种路由查找方法、装置、分配节点、查找节点及入口节点,用以解决现有技术中分布式路由器的路由机制效率较低的技术问题。
第一方面,本发明实施例提供了一种路由查找方法,包括:
报文转发设备的分配节点接收所述报文转发设备的入口节点发送的报文的目的网络协议IP地址;所述分配节点上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;分配节点根据所述目的IP地址按照最长前缀匹配LPM原则在所述分配表中进行所述匹配项字段的匹配;若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,所述分配节点获取所述第一所述匹配项字段对应的第一前缀子树的路由信息所在的第一查找节点的物理盒子号;所述第一查找节点为所述报文转发设备的查找节点;所述分配节点将所述目的IP地址发送给所述第一查找节点;其中,所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的真实前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点。
在本发明实施例的方案中,路由表分布式存放在不同的查找节点上,所以可以使得路由表分布更均匀,而且降低了单个节点的路由表规格的压力。进一步,分配节点和查找节点在匹配时均采用LPM匹配原则,所以分配查找节点时,无冲突,也不会有虚假命中的情况,所以整体上路由查找效率较高。
结合第一方面,在第一方面的第一种可能的实现方式中,所述分配节点接收所述目的IP地址,包括:所述分配节点接收所述入口节点发送的所述报文。
结合第一方面,在第一方面的第二种可能的实现方式中,所述分配节点接收所述目的IP地址,包括:所述分配节点接收所述入口节点发送的控制消息,所述控制消息中包括所述目的IP地址、所述报文的标识ID以及所述入口节点的物理盒子号;相应的,所述方法还包括:所述分配节点将所述ID以及所述入口节点的物理盒子号发送给所述第一查找节点。通过该方法实现交换平面和查找平面的解耦,减少查找平面的互联负担以及交换拥塞。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;所述方法还包括:若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,所述分配节点将与所述第一所述匹配项字段对应的第一是否有默认路由标志位发送给所述第一查找节点;以及在所述第一是否有默认路由标志位为是时,所述第一分配节点将与所述第一所述匹配项字段对应的第一默认路由发送给所述第一查找节点。
结合第一方面或第一方面的第一种可能的实现方式至第一方面的第三种可能的实现方式种的任意一种,在第一方面的第四种可能的实现方式中,所述方法还包括:
所述分配节点接收所述报文转发设备的控制器下发的分配表项;
所述分配节点根据接收到的所述分配表项更新所述分配表。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第五种可能的实现方式中,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;所述方法还包括:所述分配节点接收所述报文转发设备的控制器下发的默认路由,所述下发的默认路由为所述第一前缀子树的默认路由;所述分配节点将所述下发的默认路由填充在所述第一匹配项字段对应的第一默认路由字段中,并且将与所述第一匹配项字段对应的第一是否有默认路由标志位设置为是。
第二方面,本发明实施例提供一种路由查找方法,包括:
报文转发设备的第一查找节点接收所述报文转发设备的分配节点发送的报文的目的网络协议IP地址;所述分配节点上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;所述第一查找节点为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点;所述第一查找节点根据所述目的IP地址按照所述LPM原则在所述路由表中进行所述前缀字段的匹配;所述第一查找节点根据匹配结果执行与所述匹配结果对应的操作。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第一查找节点接收所述目的IP地址,包括:所述第一查找节点接收所述分配节点发送的所述报文;相应的,所述第一查找节点根据匹配结果执行与所述匹配结果对应的操作,包括:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,所述第一查找节点将所述报文以及与所述第一前缀字段对应的第一出端口号发送给与所述第一前缀字段对应的第一出口节点。
结合第二方面,在第二方面的第二种可能的实现方式中,所述方法还包括:
所述第一查找节点接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;相应的,所述第一查找节点根据匹配结果执行与所述匹配结果对应的操作,包括:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,所述第一查找节点将所述ID、与所述第一前缀字段对应的第一出口节点的物理盒子号以及第一出端口处理为第一指令消息;所述第一查找节点将所述第一指令消息发送给所述入口节点。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第一指令消息还包括编辑指令,所述编辑指令用于指示所述入口节点对所述报文进行编辑。
结合第二方面,在第二方面的第四种可能的实现方式中,所述方法还包括:
所述第一查找节点接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;相应的,所述第一查找节点根据匹配结果执行与所述匹配结果对应的操作,包括:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,所述第一查找节点将所述ID、与所述第一前缀字段对应的第一出端口处理为第二指令消息;所述第一查找节点将所述第二指令消息以及所述入口节点的物理盒子号发送给与所述第一前缀字段对应的第一出口节点。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第二指令消息还包括编辑指令,所述编辑指令用于指示所述第一出口节点对所述报文进行编辑。
结合第二方面,在第二方面的第六种可能的实现方式中,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;所述方法还包括:所述第一查找节点接收所述第一分配节点发送的与所述第一前缀子树的第一是否有默认路由标志位;以及在所述第一是否有默认路由标志位为是时,第一查找节点接收所述第一分配节点发送的所述第一前缀子树的第一默认路由;相应的,所述第一查找节点根据匹配结果执行与所述匹配结果对应的操作,包括:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配未成功,所述第一查找节点确定所述第一是否有默认路由标志位是否为是;若第一是否有默认路由标志位为是,所述第一查找节点获取所述第一默认路由;所述第一查找节点获取与所述第一默认路由对应的第二出口节点的物理盒子号以及第二出端口。
结合第二方面或第二方面的第一种可能的实现方式至第二方面的第六种可能的实现方式中的任意一种,在第二方面的第七种可能的实现方式中,所述方法还包括:所述第一查找节点接收所述报文转发设备的控制器发送的路由表项;所述第一查找节点根据接收到的路由表项更新所述路由表。
结合第二方面,在第二方面的第八种可能的实现方式中,所述方法还包括:
所述第一查找节点接收所述报文转发设备的控制器下发的所述第一前缀子树的默认路由;所述默认路由为所述第一前缀子树的根节点之前的最长匹配前缀及其对应的路由信息;所述第一查找节点将所述第一前缀子树的默认路由更新至所述路由表中。
第三方面,本发明实施例提供一种路由查找方法,包括:
报文转发设备的入口节点接收报文;所述入口节点将所述报文的标识ID、所述报文的目的网络协议IP地址以及所述入口节点的物理盒子号处理为控制消息;所述入口节点将所述控制消息发送给所述报文转发设备的至少一个分配节点中的第一分配节点;其中,所述至少一个分配节点上存储有相同的分配表;所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;所述入口节点接收所述报文转发设备的至少一个查找节点的第一查找节点发送的第一指令消息,所述第一指令消息包括所述ID以及第一出口节点的物理盒子号以及第一出端口;其中,所述第一查找节点为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述入口节点根据所述ID获取所述报文并将所述报文以及所述第一出端口发送给所述第一出口节点。通过该方法实现交换平面和查找平面的解耦,减少查找平面的互联负担以及交换拥塞。
结合第三方面,在第三方面的第一种可能的实现方式中,所述方法还包括:所述入口节点将所述报文存储在本地,所述ID表征所述报文的存储地址。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,在所述入口节点将所述控制消息发送给所述报文转发设备的至少一个分配节点中的第一分配节点之前,所述方法还包括:所述入口节点根据所述目的IP地址在热点路由表中进行匹配并确定未匹配成功;其中,所述热点路由表的路由表项包括前缀字段以及出端口字段,所述出端口字段包括出口节点的物理盒子号以及出端口。通过该方法可以实现快速的报文转发,并且可以减少分配节点和查找节点的负担。
结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述第一指令消息还包括编辑指令,所述方法还包括:在将所述报文发送给所述第一出口节点之前,对所述报文按照所述编辑指令进行编辑。
第四方面,本发明实施例提供一种路由查找装置。具体的,该装置可以为分配节点。该装置具有实现上述方法设计中分配节点的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
在一个可能的设计中,作为分配节点的路由查找装置的具体结构可包括接收单元、处理单元以及发送单元。接收单元、处理单元以及发送单元可执行上述方法中的相应功能。
第五方面,本发明实施例提供一种路由查找装置。具体的,该装置可以为查找节点。该装置具有实现上述方法设计中查找节点的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
在一个可能的设计中,作为查找节点的路由查找装置的具体结构可包括接收单元、处理单元以及发送单元。接收单元、处理单元以及发送单元可执行上述方法中的相应功能。
第六方面,本发明实施例提供一种路由查找装置,具体的,该装置可以为入口节点。该装置具有实现上述方法设计中入口节点的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
在一个可能的设计中,作为入口节点的路由查找装置的具体结构可包括接收单元以及处理单元。接收单元以及处理单元可执行上述方法中的相应功能。
第七方面,本发明实施例提供一种分配节点。该分配节点包括:接收器、发送器,以及处理器,所述接收器、发送器以及处理器用于执行上述分配节点执行的方法。
第八方面,本发明实施例提供一种查找节点。该查找节点包括:接收器、发送器,以及处理器,所述接收器、发送器以及处理器用于执行上述查找节点执行的方法。
第九方面,本发明实施例提供一种入口节点。该分配节点包括:接收器、发送器,以及处理器,所述接收器、发送器以及处理器用于执行上述入口节点节点执行的方法。
第十方面,本发明实施例提供一种路由表项的配置方法,包括:
报文转发设备的控制器接收所述报文转发设备的入口节点上报的协议报文并对所述协议报文进行处理,获得路由表项的前缀、出口节点的物理盒子号以及出端口;所述出口节点为所述报文转发设备的出口节点;所述控制器为所述前缀在前缀树中划分前缀子树;若所述前缀子树为新建子树,所述控制器为所述路由表项分配查找节点并将所述路由表项下发给所述查找节点;所述查找节点为所述报文转发设备的查找节点;所述控制器生成分配表项,所述分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为所述前缀子树的根节点对应的前缀,所述查找节点号为所述查找节点的物理盒子号;所述控制器将所述分配表项下发给所述报文转发设备的所有分配节点。
结合第十方面,在第十方面的第一种可能的实现方式中,所述分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述前缀子树是否有默认路由,所述默认路由为所述前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息。
结合第十方面,在第十方面的第二种可能的实现方式中,所述方法还包括:
所述控制器判断所述根节点之前是否有前缀;若所述根节点之前有前缀,所述控制器将所述根节点之前的最长匹配前缀及其对应的路由信息作为所述前缀子树的默认路由下发给所述查找节点。
结合第十方面,在第十方面的第三种可能的实现方式中,若所述前缀子树已存在,所述控制器将所述路由表项下发给所述前缀子树对应的查找节点。
结合第十方面的第一种可能的实现方式,在第十方面的第四种可能的实现方式中,所述方法还包括:若所述前缀及其对应的路由信息为其它子树的默认路由,所述控制器更新所有分配节点上的所述其它前缀子树的默认路由字段以及是否有默认路由字段。
结合第十方面或第十方面的第三种可能的实现方式中,在第十方面的第五种可能的实现方式中,所述方法还包括:
若所述前缀及其对应的路由信息为其它子树的默认路由,所述控制器将所述前缀及其对应的路由信息下发给所述其它前缀子树对应的查找节点。
第十一方面,本发明实施例提供一种路由表项配置装置,具体的,该装置可以为控制器。该装置具有实现上述方法设计中控制器的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
在一个可能的设计中,作为控制器的路由表项配置装置的具体结构可包括接收单元、处理单元以及发送单元。接收单元处理单元以及发送单元可执行上述方法中的相应功能。
第十二方面,本发明实施例提供一种控制器。该控制器包括:接收器、发送器,以及处理器,所述接收器、发送器以及处理器用于执行上述控制器执行的方法。
第十三方面,本发明实施例提供一种计算机存储介质,用于存储上述第一方面、第二方面、第三方面、第十方面中任一方面所描述的方法或第四方面只第六方面所描述的路由查找装置所用的计算机软件指令,并包含用于执行上述方面所设计的程序。
第十四方面,本发明实施例提供一种报文转发设备,包括入口节点、分配节点、查找节点、出口节点以及控制器,
入口节点,用于接收一个报文并将所述报文的目的网络协议IP地址发送给所述报文转发设备的至少一个分配节点中的第一分配节点;其中,所述至少一个分配节点上存储有相同的分配表;所述分配表包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;
第一分配节点用于根据所述目的IP地址按照最长前缀匹配LPM原则在所述分配表中进行所述匹配项字段的匹配;若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,获取所述第一所述匹配项字段对应的第一前缀子树的路由信息所在的第一查找节点的物理盒子号;将所述目的IP地址发送给所述第一查找节点;其中,所述第一查找节点上存储有路由表,所述路由表包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;
第一查找节点用于根据所述目的IP地址按照所述LPM原则在所述路由表中进行所述前缀字段的匹配;根据匹配结果执行与所述匹配结果对应的操作。
结合第十四方面,在第十四方面的第一种可能的实现方式中,所述入口节点用于将所述报文发送给所述第一分配节点。
结合第十四方面的第一种可能的实现方式,在第十四方面的第二种可能的实现方式中,所述第一查找节点用于:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,将所述报文以及与所述第一前缀字段对应的第一出端口号发送给与所述第一前缀字段对应的第一出口节点;
所述第一出口节点用于通过所述第一出端口发送所述报文。
结合第十四方面,在第十四方面的第三种可能的实现方式中,所述入口节点还用于在所述入口节点将所述报文的目的IP地址发送给所述第一分配节点之前,提取所述报文的目的IP地址;将所述目的IP地址、所述报文的标识ID以及所述入口节点的物理盒子号处理为控制消息;将所述控制消息发送给所述第一分配节点。
结合第十四方面的第三种可能的实现方式中,在第十四方面的第四种可能的实现方式中,所述第一分配节点还用于:将所述ID以及所述入口节点的物理盒子号发送给所述第一查找节点;第一查找节点用于:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,将所述ID、与所述第一前缀字段对应的第一出口节点的物理盒子号以及第一出端口处理为第一指令消息;将所述第一指令消息发送给所述入口节点;
所述入口节点还用于根据所述ID获取所述报文并将所述报文以及所述第一出端口发送给所述第一出口节点;
所述第一出口节点还用于通过所述第一出端口发送所述报文。
结合第十四方面的第三种可能的实现方式,在第十四方面的第五种可能的实现方式中,所述第一查找节点用于:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,将所述ID、与所述第一前缀字段对应的第一出端口处理为第二指令消息;将所述第二指令消息以及所述入口节点的物理盒子号发送给与所述第一前缀字段对应的第一出口节点;所述第一出口节点还用于向所述入口节点发送请求消息,所述请求消息中包括所述ID;所述入口节点还用于根据所述ID获取所述报文并将所述报文发送给所述第一出口节点;所述第一出口节点还用于接收所述报文并通过所述第一出端口发送所述报文。
结合第十四方面的第三种可能的实现方式或第十四方面的第四种可能的实现方式或第十四方面的第五种可能的实现,在第十四方面的第六种可能的实现方式中,所述ID用于表征所述报文在所述入口节点上的存储位置。
结合第十四方面或第十四方面的第一种可能的实现方式或第十四方面的第三种可能的实现方式,在十四方面的第六种可能的实现方式中,所述分配表还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;所述第一分配节点还用于:若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,将与所述第一所述匹配项字段对应的第一是否有默认路由标志位发送给所述第一查找节点;以及在所述第一是否有默认路由标志位为是时,将与所述第一所述匹配项字段对应的第一默认路由发送给所述第一查找节点;
相应的,所述第一查找节点用于:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配未成功,确定所述第一是否有默认路由标志位是否为是;若第一是否有默认路由标志位为是,获取所述第一默认路由;获取与所述第一默认路由对应的第二出口节点的物理盒子号以及第二出端口。
结合第十四方面或第十四方面的第一种可能的实现方式至第十四方面的第六种可能的实现方式中任意一种,在十四方面的第七种可能的实现方式中,控制器用于接收所述入口节点上报的协议报文并对所述协议报文进行处理,获得路由表项的前缀、出口节点的物理盒子号以及出端口;为所述路由表项的前缀在前缀树中划分第二前缀子树;若所述第二前缀子树为新建子树,为所述路由表项分配查找节点;所述控制器还用于将所述路由表项下发给分配的查找节点;生成新的分配表项,所述分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为所述第二前缀子树的根节点对应的前缀,所述查找节点号为所述分配的查找节点的物理盒子号;所述控制器还用于将所述分配表项下发给所述至少一个分配节点。
结合第十四方面第七种可能的实现方式,在十四方面的第八种可能的实现方式中,分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述第二前缀子树是否有默认路由,所述默认路由为所述第二前缀子树的默认路由,所述默认路由为所述第二前缀子树的根节点之前的最长匹配前缀及其对应的路由信息。
结合第十四方面第七种可能的实现方式,在十四方面的第九种可能的实现方式中,所述控制器还用于判断所述第二前缀子树的根节点之前是否有前缀;若所述第二前缀子树的根节点之前有前缀,将所述第二前缀子树的根节点之前的最长匹配前缀及其对应的路由信息作为所述第二前缀子树的默认路由下发给所述查找节点。
结合第十四方面第七种可能的实现方式,在十四方面的第十种可能的实现方式中,若所述第二前缀子树已存在,所述控制器还用于将所述路由表项下发给所述第二前缀子树对应的查找节点。
结合第十四方面第九种可能的实现方式,在十四方面的第十一种可能的实现方式中,若所述前缀及其对应的路由信息为其它子树的默认路由,所述控制器更新所有分配节点上的所述其它前缀子树的默认路由字段以及是否有默认路由字段。
结合第十四方面第八种可能的实现方式或第十四方面的第十种可能的实现方式,在十四方面的第十二种可能的实现方式中,若所述前缀及其对应的路由信息为其它子树的默认路由,所述控制器还用于将所述前缀及其对应的路由信息下发给所述其它前缀子树对应的查找节点。
附图说明
图1a-图1b为本发明实施例提供的一种报文转发设备的结构图;
图2为本发明实施例提供的一种装置的结构图;
图3为本发明实施例提供的一种路由表项的配置方法的流程图;
图4a-图4c为本发明实施例提供的一种前缀子树的示意图;
图5为本发明实施例提供的一种路由查找方法的流程图;
图6为本发明实施例提供的一种路由查找装置的功能框图。
具体实施方式
本发明实施例提供一种路由查找方法、装置、分配节点、查找节点及入口节点,用以解决现有技术中分布式路由器的路由机制效率较低的技术问题。
以下将详细描述本发明实施例中方案的实施过程、目的。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
为便于说明本发明实施例中的路由查找方法,下面先介绍一种报文转发设备,本发明实施例中的路由查找方法可以应用在该报文转发设备中。请参考图1a和图1b所示,为本发明实施例提供的一种可能的报文转发设备的结构图。如图1a和图1b所示,该报文转发设备包括控制器、至少一个入口节点、至少一个分配节点、至少一个查找节点以及至少一个出口节点。在实际运用中,一个物理盒子可以只包括一种节点,也可以是多种节点的集合。例如,一个物理盒子可以既包括入口节点,也可以包括分配节点。一个物理盒子可以既包括入口节点,也可以包括查找节点。一个物理盒子可以既包括入口节点,也可以包括出口节点。一个物理盒子可以既包括分配节点,也可以包括查找节点。一个物理盒子可以既包括查找节点,也可以包括出口节点。一个物理盒子可以既包括入口节点,也可以包括分配节点和查找节点。一个物理盒子可以既包括入口节点,也可以包括分配节点和出口节点。一个物理盒子可以既包括入口节点,也可以包括查找节点和出口节点。一个物理盒子可以既包括分配节点,也可以包括查找节点和出口节点。一个物理盒子可以既包括入口节点,也可以包括分配节点、查找节点以及出口节点。控制器可以与各个节点是分开设置的,也可以是和任一种节点设置在同一物理盒子中。这些物理盒子堆叠形成路由器整机。当然,在实际运用中,这些物理盒子也可以是分散在不同的区域,由不同的厂商制造。
在图1a中所示的结构中,每种节点之间传递是报文,例如入口节点接收报文,然后将报文发送给任一个分配节点,该分配节点在进行查找之后,将报文再传递给查找出的查找节点,然后查找节点在确定该报文的出口节点之后,就将该报文传递给确定出的出口节点,然后出口节点再将该报文进行转发给其它网元。
在图1b所示的结构中,与图1a所示的结构不同的是,将查找与交换解耦,即入口节点和出口节点形成交换平面,入口节点可以传递报文给出口节点。分配节点和查找节点形成查找平面。入口节点在接收到报文之后,可以不将报文整体发送给分配节点,而是将该报文的目的IP地址给分配节点,类似的,在查找节点确定出口节点之后,是将确定的结果和报文的目的IP地址发送给入口节点或者出口节点。
应理解,图1a和图1b所示的结构中仅示出了报文转发设备一种可能的情形,但本发明并不限于此。该报文转发设备还可包括其它元器件,本发明实施例不做限定。
接下来请参考图2,图2为本发明实施例提供的装置的可能的结构图。该装置例如为上述入口节点、分配节点、查找节点、出口节点、控制器的一种可能的结构图。如图2所示,该装置包括:处理器10、发送器20、接收器30、存储器40。存储器40、发送器20和接收器30和处理器10可以通过总线进行连接。当然,在实际运用中,存储器40、发送器20和接收器30和处理器10之间可以不是总线结构,而可以是其它结构,例如星型结构,本申请不作具体限定。
可选的,处理器10具体可以是通用的中央处理器或特定应用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(英文:Field Programmable GateArray,简称:FPGA)开发的硬件电路,可以是基带处理器。
可选的,处理器10可以包括至少一个处理核心。
可选的,存储器40可以包括只读存储器(英文:Read Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)和磁盘存储器中的一种或多种。存储器40用于存储处理器10运行时所需的数据和/或指令。存储器40的数量可以为一个或多个。
可选的,发送器20和接收器30在物理上可以相互独立也可以集成在一起。发送器20可以通过天线50进行数据发送。接收器30可以通过天线50进行数据接收。
可选的,当该装置为出口节点时,还可以包括出端口,用于报文输出。
可选的,当该装置为入口节点时,还可以包括入端口,用于报文输入。
请参考如图3所示,为本发明实施例提供的一种路由表项的配置方法的流程图。如图3所示,该方法包括:
步骤101:控制器接收入口节点发送的协议报文。例如当入口节点接收到报文后,进行识别,发现是协议报文,则将协议报文上报给控制器。
步骤102:控制器对协议报文进行处理,获取路由表项的前缀、出口节点的物理盒子号以及出端口。
在实际运用中,控制器对协议报文进行处理,获取路由表项,可以有多种实施方式,例如如果是边界网关协议(英文:Border Gateway Protocol,简称:BGP)报文,则协议报文中给出了抵达某个前缀的路由信息,控制器则直接将前缀和路由信息作为路由表项。再例如如果是开放式最短路径优先(英文:Open Shortest Path First,简称:OSPF)协议报文,则该协议报文中会包括该报文转发设备与邻居设备之间的链路状态,控制器获取所有链路状态信息后,使用最短路径优先(英文:Shortest Path First,简称:SPF)算法计算出一颗最短路径树,这棵树给出了到各个网元的路由信息。
需要说明的是,对于不同的协议报文,该步骤的具体实现方式可能不同,对于现有的协议报文而言,获取路由信息为本领域技术人员所熟知的内容,所以在此不再赘述。
另外,在一个实际的例子中,前缀可以用“0”、“1”和“*”组成的三值位串表示。
在一个可能的例子中,路由表项包括前缀字段、出端口字段,例如表一所示。
前缀 | 出端口字段 |
0000* | 31-02 |
表一
在表一的例子中,假设在步骤102中获取到的前缀为0000*,出端口字段的内容为31-02,表示出口节点的物理盒子号为31,出端口号为02号。该路由表项表示前缀0000*匹配的报文需要从物理盒子号为31号的出口节点的02号出端口号进行转发。
步骤103:为所述前缀在前缀(Trie)树中划分前缀子树。前缀树可以是二叉树也可以是多叉树。前缀树为根据前缀中的位串建立起来的二叉树或多叉树。如果每次考虑一位,则建立一棵二叉树,也称为单位Trie树。图4a示出了一颗单位前缀树。其中,前缀树包含11个真实前缀,图4a中左侧p0~p10,在单位Trie树中对应的节点用黑色圆圈表示,连接点用白色圆圈表示。如果每次考虑多位,则建立一棵多位Trie树。每次考虑的位数一般是固定的,称为Trie树的步长(英文:stride)。
多位Trie树可以看作按stride把一个单位Trie树分成多个子树,并为每个子树创建一个Trie节点。每个Trie节点均有一个关联前缀,一个Trie节点的关联前缀是该Trie节点对应的子树的根节点上的前缀值。
图4b示出了基于图4a中的前缀建立的stride等于3的多位Trie树。该多位Trie树包括7个Trie节点,如图4b中所示的Trie Node T1~Trie Node T7,每个Trie节点即为一个前缀子树。每个前缀子树中均包含至少一个真实前缀。每个Trie节点配置有一个前缀节点,例如前缀子树T1的根节点对应的前缀为p0,前缀子树T2的根节点对应的前缀为000*,该前缀并非真实前缀。
以下介绍另一种可能的划分前缀子树的方法,该方法包括:
步骤1,选前缀树中任意一个叶子节点为当前处理节点N0,前缀个数初始化为0;
步骤2:N0的父亲节点如果有前缀,则前述个数增加为父亲节点的前缀个数;
步骤3:N0是否有兄弟节点,如果有,则视兄弟节点为N1;如果没有则跳到步骤7;
步骤4:如果N1如果有前缀,则前缀个数再增加N1的前缀个数;
步骤5:N1是否有子节点,如果有,则视子节点为N1,并执行步骤4-6;
步骤6:N是否有兄弟节点且尚未遍历,如果有,则视兄弟节点为N1执行步骤4-6;
步骤7:视父亲节点为N0,执行步骤2-7。
可选的,以上各步骤中前缀个数累加的过程中,如果前缀个数超过某个阈值,则停止迭代,将已经遍历到的节点看成一个子树。并将这些节点从原树中剔除。
举例来说,请参考图4c所示,以下将描述前缀子树T2的划分过程,子树的前缀个数阈值为4。
1.从叶子节点20开始迭代,包含前缀p9,前缀个数初始化为1;
2.p9的父亲节点17没有前缀,同时p9也没有兄弟节点;
3.17的父亲节点14没有前缀,但兄弟节点18有前缀p8,前缀个数增加1,变为2;
4.节点18没有子节点,于是继续向上遍历节点14的父亲节点10,有前缀p4,前缀个数为3;
5.节点10向上遍历,节点2之前都没有父亲节点或兄弟节点包含前缀;节点2包含前缀p1,于是前缀个数为4;
6.此时前缀个数达到前缀阈值4,于是将遍历过的节点2、4、7、10、14、17、18、20组合成子树T2,包含前缀p1、p4、p8、p9,并从原树中将这些节点剔除。
再举例来说,请参考图4c所示,以下将描述前缀子树T3的划分过程,子树的前缀个数阈值为4。
1.从叶子节点16开始遍历,包含前缀p7,前缀个数初始化为1;
2.父亲节点13无前缀,同时无兄弟节点;
3.节点13的父亲节点9包含前缀p3,前缀个数变为2;
4.节点13的兄弟节点12无前缀,有子节点15包含前缀p6,前缀个数变为3;
5.节点15有子节点19无前缀,19有子节点21包含前缀p10,前缀个数变为4;
6.此时前缀个数达到前缀阈值4,于是将遍历过的节点9、12、13、15、16、19、21组合成子树T3,包含前缀p3、p6、p7、p10,并从原树中将这些节点剔除。
需要说明的是,前缀子树可以事先按照规则划分好,当在步骤102中得到路由表项的前缀时,为该前缀划分前缀子树即确定该前缀位于哪一个前缀子树中,例如确定出位于前缀子树T2中。然后确定针对前缀子树T2是否已经下发过分配表项(如表二或表三所示)给分配节点,如果是的话,则表示前缀子树T2为已经存在的前缀子树,所以不需要再次下发分配表项。若针对前缀子树T2还未下发过分配表项,说明前缀子树T2为新建子树,需要下发分配表项,所以就会执行步骤步骤104至步骤106。
步骤104:若前缀子树为新建子树,则为步骤102中得到的路由表项分配查找节点。
通常来讲,每个子树中的所有真实前缀都保存在同一个查找节点中。当查找节点的数量大于1时,每个查找节点可以保存部分前缀子树的所有真实前缀。如此一来,每个查找节点只要维护部分真实前缀的路由表项,所以维护路由表所花费的资源就较少,而且也便于查找节点进行快速查找。
因此,在步骤104中,为该路由表项分配一个查找节点即可,或者一组查找节点。如果是一组查找节点,那么一组查找节点中的其中一个查找节点作为主查找节点,而其它查找节点可以作为备份查找节点。
在分配时,可以根据每个查找节点上已经保存的路由表项的量来决定分配哪个查找节点,例如分配所有查找节点中当前路由表项最少的那个查找节点给步骤102中获得的路由表项。
步骤105:控制器下发路由表项给分配好的查找节点,例如图3中的查找节点1。
步骤106:控制器生成分配表项,分配表项包括匹配字段以及查找节点号字段。所述匹配项字段为所述前缀子树的根节点对应的前缀,所述查找节点号为所述查找节点的物理盒子号。
在前缀子树为T4,并且步骤102中得到的前缀为p3的例子中,分配表项的格式如表二所示。
匹配项 | 查找节点号 |
111* | 10 |
表二
在表二中,匹配项字段为前缀子树T4的根节点(如图4b所示)对应的前缀111*,查找节点号为查找节点1的物理盒子号,例如为10。
可选的,分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述前缀子树是否有默认路由,所述默认路由为所述前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀(为真实前缀)对应的路由信息。具体如表三所示。
匹配项 | 是否有默认路由 | 默认路由 | 查找节点号 |
111* | 是 | *-20-03 | 10 |
表三
在表三中,因为在前缀子树T4的根节点之前,具有最长匹配前缀*,即p0,所以该最长匹配前缀对应的路由信息即为该前缀子树的默认路由,所以在是否有默认路由字段中填写“是”,而在默认路由字段填写“*20-03”,表示默认路由为前缀字段为*,出端口字段为物理盒子号为20的出口节点以及该出口节点的03号出端口。
步骤107:下发分配表项给所有分配节点,例如图3中的分配节点1至分配节点M。M为大于或等于1的整数。当分配节点的数量大于1时,每个分配节点保存的分配表项均是相同的。
步骤108:判断所述根节点之前是否有前缀;若所述根节点之前有前缀,控制器将所述根节点之前的最长匹配前缀(真实前缀)及其对应的路由信息作为所述前缀子树的默认路由下发给所述查找节点。
默认路由的含义与前述描述的相同,不过与前述描述的不同的是,在本例中,直接执行步骤109,将默认路由直接下发给分配好的查找节点,例如查找节点1,而可以不填充在分配表项中,所以分配表项的格式可以如表二所示即可。
查找节点在接收到该默认路由时,将默认路由保存在路由表中,增加一个新的路由表项。
步骤110:若所述前缀子树已存在,所述控制器将所述路由表项下发给所述前缀子树对应的查找节点,例如图3中的查找节点2。
举例来说,步骤102中得到的前缀为p6,为前缀p6分配的前缀子树为T4,而前缀子树在为前缀p3划分子树前缀子树时,已经得到了前缀子树T4,所以在前缀为p6时,前缀子树已经存在,因为前缀子树已经存在,说明该前缀子树中包含的真实前缀中已经有部分真实前缀对应的路由表项已经存储在某个查找节点上,所以根据同一个前缀子树包含的所有真实前缀对应的路由表项存储在同一个查找节点的原则,此时就不需要再重新为前缀p6的路由表项分配查找节点,而是直接执行步骤110,将前缀p6对应的路由表项下发给前缀子树对应的查找节点,例如查找节点1。
步骤111:若所述前缀及其对应的路由信息为其它子树的默认路由,控制器更新所有分配节点上的所述其它前缀子树的默认路由字段以及是否有默认路由字段。
在图4a和图4b的例子中,假设所述前缀为p2及其对应的路由信息,其为前缀子树T3的默认路由,那么控制器就指示所有分配节点进行分配表项的更新,对前缀子树T3的默认路由字段以及是否有默认路由字段进行修改,例如修改为表四所示。
匹配项 | 是否有默认路由 | 默认路由 | 查找节点号 |
100* | 是 | 10*-15-01 | 20 |
表四
可选的,若所述前缀及其对应的路由信息为其它前缀子树的默认路由,还可以执行步骤112,即将所述前缀及其对应的路由信息下发给其它前缀子树对应的查找节点。举例来说,假设所述前缀为p2及其对应的路由信息为15-01为前缀子树T3的默认路由,那么控制器就将p2和15-01下发给物理盒子号为20的查找节点。相应的,查找节点将默认路由p2和15-01分别更新在路由表项的前缀字段和出端口字段中。
相对应的,分配节点接收到控制器下发的分配表项,就将新接收到的分配表项进行保存,形成新的的分配表。分配表中包含至少一条前述的分配表项。类似的,查找节点接收到控制器下发的路由表项,就将新接收到的路由表项进行保存,形成新的路由表。路由表中包含至少一条前述的路由表项。
上述路由表项的配置步骤基本完成。
可选的,控制器还可以维护已经建立的前缀子树的信息,包括但不限于前缀子树的根节点对应的前缀、前缀子树内所有有效路由信息、前缀子树的默认路由、前缀子树与查找节点之间的对应关系,以及前缀子树与分配节点上的分配表项之间的关系。因此,在上述的步骤中,控制器可以查找到已存在的前缀子树对应的查找节点。
接下来将描述本实施例中的路由查找方法,该方法可以应用于图1a以及图1b所示的报文转发设备。如图5所示,该方法包括:
步骤201:入口节点接收报文。举例来说,入口节点从其它网元,例如路由器接收报文。通常报文包括报文头、报文正文以及校验码等。报文头中可以包括源IP地址,目的IP地址。
步骤202:入口节点根据目的IP地址查找热点路由表。热点路由表的路由表项可以和前述查找节点存储的路由表项包含的字段相同,例如可以包括前缀字段和出端口字段,前缀字段为真实前缀,出端口字段为出口节点的物理盒子号以及出端口号。
可选的,热点路由表中的前缀可以是通过统计,使用比较频繁的前缀,或者是通过其它规则确定出来的。
可选的,入口节点可以按照最长前缀匹配(英文:Longest Prefix Match,简称:LPM)原则进行查找。LPM原则是指在IP协议中被路由器用于在路由表中进行选择的一个算法。
因为路由表中的每个表项都指定了一个网络,所以一个目的IP地址可能与多个表项匹配。最明确的一个表项,即子网掩码最长的一个,就叫做最长前缀匹配。之所以这样称呼它,是因为这个表项也是路由表中,与目的IP地址的高位匹配得最多的表项。
例如,考虑下面这个IPv4的路由表:
192.168.20.16/28
192.168.0.0/16
在要查找地址192.168.20.19的时候,这两个表项都“匹配”。也就是说,两个表项都包含着要查找的地址。这种情况下,前缀最长的路由就是192.168.20.16/28,因为它的子网掩码(/28)比其它表项的掩码(/16)要长,使得它更加明确。
举例来说,热点路由表如表五所示。
前缀 | 出端口字段 |
0000* | 31-02 |
000011* | 40-02 |
1110100* | 50-01 |
表五
在匹配时,可以将IP地址转化为二进制比特值,当前,IP地址通常为32位,即32个比特,然后在表五中的前缀匹配字段进行LPM查找,即从最高位开始,向低位进行匹配,高位匹配最多的前缀即为第一前缀字段。举例来说,目的IP地址的二进制表示为000011001,然后在表五中进行匹配,前缀000011*即为匹配成功的前缀,那么第一出口节点即为物理盒子号为40的出口节点,出端口为第一出口节点的01号出端口。再例如,目的IP地址的二进制表示为111101101,在表五中进行匹配时,就不会有匹配成功的表项。
当匹配成功,即命中时,入口节点执行步骤203,即将报文发送给命中的路由表项对应的第一出口节点。
若未命中,则执行步骤204,即将报文的IP地址发送给任一分配节点,例如第一分配节点。入口节点可以考虑负载均衡,将报文的目的IP地址发送给当前工作量较小的分配节点。当然,在实际运用中,也可以是完全随机分配,也可以是轮流分配。
需要说明的是,在步骤202未可选的步骤,所以入口节点在接收到报文时,也可以直接将IP地址发送给第一分配节点。如果执行步骤202的话,通过该方法可以快速的进行报文转发,而且可以减轻分配节点和查找节点的负担。
另外,在实际运用中,入口节点将报文的目的IP地址发送给第一分配节点,可以包括但不限于两种方式。第一种方式,入口节点将整个报文发送给第一分配节点。第一分配节点读取报文头即可获得目的IP地址。该方式适用于图1a所示的报文转发设备。
对应的,在步骤207中,第一分配节点也是将整个报文发送给第一查找节点。第一查找节点读取报文头即可获得目的IP地址。
相应的,在步骤209中,第一查找节点将整个报文发送给第一出口节点。
第二种方式,在入口节点将目的IP地址发送给第一分配节点之前,该方法还包括:入口节点提取报文的目的IP地址;入口节点将目的IP地址、报文的标识(ID)以及所述入口节点的物理盒子号处理为控制消息。
其中,报文的ID是报文的唯一标识,一方面是用于唯一区别一个报文,另一方面也可以表征报文在入口节点的存储地址。因此,报文的ID可以是报文在入口节点上的存储地址,也可以是与存储地址唯一对应的其它类型的标识。
可选的,控制消息除了包括报文的ID、目的IP地址、入口节点的物理盒子号之外,还可以包括报文的长度、其它业务信息、转发类型。其它业务信息为在入口节点获取的其它业务信息,例如单播逆向路径转发(英文:Unicast Reverse Path Forwarding,简称:URPF)是否使能,是否使能路由查找后的访问控制列表(英文:Access Control List,简称:ACL)。转发类型例如为IPv4单播,IPv6单播等。
一种可能的控制消息的格式如表六所示。
表六
在表六中,目的IP地址段可以替换为报文头,因为报文头中也包含了目的IP地址。另外,入口节点的物理盒子号为接收到该报文的入口节点的物理盒子号,例如为12。
相应的,入口节点将所述报文的目的IP地址发送给所述第一分配节点,包括:入口节点将所述控制消息发送给所述第一分配节点。第一分配节点在接收到控制消息之后,可以读取该控制消息的目的IP地址字段,即可获得报文的目的IP地址。
该方法适用于如图1b所示的报文转发设备,通过该方法,可以减缓分布式路由查找带来的交换拥塞,减轻查找平面的互联负担,减少管脚占用。
在入口节点通过上述两种方式或者其它方式将报文的目的IP地址发送给第一分配节点时,第一分配节点执行步骤205,即根据目的IP地址按照LPM原则在分配表中进行匹配项字段的匹配。其中,分配表中的分配表项例如前述表二和表三所示。第一分配节点上存储的分配表例如是通过前述图3及其实施例所描述的方法配置的,当然,在实际运用中,也可以是通过其它方法配置的。
若第一匹配项未匹配成功,那么直接丢弃该报文(对应第一种方式),或者终止查找流程(对应第二种方式)。若与第一匹配项字段匹配成功,则执行步骤206,即第一分配节点获取第一匹配项字段对应的第一前缀字数的路由信息所在的第一查找节点的物理盒子号(对应表二所示的分配表项)。对应于表三所示的分配表项,第一分配节点还确定第一前缀子树是否有默认路由,如果是否有默认路由的字段为“是”,则获取默认路由字段中的默认路由。
需要说明的是,在实际运用中,分配表项还可以包括是否本地标志位字段,用于表征第一分配节点和第一查找节点的物理盒子号是否相同。因为第一分配节点和第一查找节点可能设置在同一个物理盒子中,所以如果分配表项中的第一出口节点的物理盒子号和第一分配节点所在的物理盒子号是相同的,那么是否是本地标志位字段就可以置0或者置1,或者采用“是”或“否”来表达。
接下来执行步骤207,即发送目的IP地址给第一查找节点。相应于第一种方式,在步骤207中,第一分配节点将报文发送给第一查找节点,如果有默认路由的话,还将默认路由发送给第一查找节点,具体可以是将默认路由添加在报文头中。
相应于第二种方式,在步骤207中,第一分配节点可以不用发送报文的内容,只发送目的IP地址或者报文头即可,相应的,第一分配节点还将报文的ID和入口节点的物理盒子号发送给第一查找节点。
步骤208:第一查找节点根据目的IP地址按照LPM原则在路由表中进行前缀字段的匹配。第一查找节点上存储的路由表的路由表项例如为前述表一所示的路由表项。第一查找节点上存储的路由表例如是通过前述图3及其实施例所描述的方式配置的,也可以是通过其它方式配置的。
然后,第一查找节点执行步骤209,即根据匹配结果执行与匹配结果对应的操作。该步骤在实际运用中,可以有多种实施方式,以下将详细进行描述。
对应于第一种方式,步骤209包括:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,所述第一查找节点将所述报文以及与所述第一前缀字段对应的第一出端口号发送给与所述第一前缀字段对应的第一出口节点。第一出口节点通过所述第一出端口发送所述报文。
举例来说,假设目的IP地址与表一中的前缀0000*匹配,那么第一查找节点就将报文和出端口号02发送给物理盒子号为31的出口节点。然后该出口节点从出端口号02号对应的出端口转发所述报文。
对应于第二种方式,步骤209包括:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,所述第一查找节点将所述ID、与所述第一前缀字段对应的第一出口节点的物理盒子号以及第一出端口处理为第一指令消息;第一查找节点将所述第一指令消息发送给所述入口节点。相应的,入口节点根据所述ID获取所述报文并将所述报文以及所述第一出端口发送给所述第一出口节点;然后第一出口节点通过第一出端口发送所述报文。
可选的,第一指令消息还可以包括编辑指令,编辑指令例如为替换、删除、添加、丢弃、加减乘除、位运算、校验和中的一种或多种。
举例来说,例如IPv4单播的报文,经过上一步执行的转发业务,得到了一个新的IP报文头,则编辑指令可以为“替换”,指令参数包括要替换的位置,即IP头在报文中的位置,例如14字节;包括要替换的长度,即IP头长度,例如20字节;包括替换后的内容,即新的IP报文头。编辑指令还可以为“丢弃”,即终止对该报文的转发处理,释放在入口节点的缓存。
入口节点在接收到第一指令消息之后,可以根据报文ID从本地缓存中读取报文的数据,然后根据编辑指令对报文进行编辑,例如上述的“替换”指令,用新的IP头替换原来的IP报文头。在对报文进行编辑之后,入口节点根据第一指令消息中的第一出口节点的物理盒子号将编辑后的报文和第一出端口发送给第一出口节点,然后第一出口节点通过第一出端口转发编辑后的报文。
可选的,对应于第二种方式,步骤209包括:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,第一查找节点将所述ID、与所述第一前缀字段对应的第一出端口处理为第二指令消息;第一查找节点将所述第二指令消息以及所述入口节点的物理盒子号发送给与所述第一前缀字段对应的第一出口节点。相应的,第一出口节点向所述入口节点发送请求消息,所述请求消息中包括所述ID;所述入口节点根据所述ID获取所述报文并将所述报文发送给所述第一出口节点;所述第一出口节点接收所述报文并通过所述第一出端口发送所述报文。
可选的,第二指令消息同样还可以包括编辑指令,不过与前一实施例不同的是,是出口节点根据编辑指令对报文进行编辑,并在编辑之后将报文通过第一出端口进行转发。
可选的,对应于第二种方式,步骤209包括:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段未匹配成功,第一查找节点将所述报文的ID、编辑指令处理为第三指令消息,并将第三指令消息发送给所述入口节点,其中,编辑指令字段为丢弃指令。那么入口节点在接收到第三指令消息之后,就可以根据报文的ID获取到报文,并丢弃所述报文,以释放报文所占用的存储空间。
不管是第一种方式还是第二种方式,若分配表项如表三所示,还包括是否有默认路由标志位字段以及默认路由字段,第一查找节点还接收所述第一分配节点发送的与所述第一前缀子树的第一是否有默认路由标志位;以及在所述第一是否有默认路由标志位为是时,第一查找节点接收所述第一分配节点发送的所述第一前缀子树的第一默认路由。相应的,步骤209包括:若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配未成功,所述第一查找节点确定所述第一是否有默认路由标志位是否为是;若第一是否有默认路由标志位为是,所述第一查找节点获取所述第一默认路由;所述第一查找节点获取与所述第一默认路由对应的第二出口节点的物理盒子号以及第二出端口。
另外对于控制器将默认路由直接下发给查找节点的情况,查找节点已经将默认路由更新在路由表中了,所以直接使用目的IP地址在路由表中进行匹配即可,和没有默认路由时的方法是相同的,所以在此不再赘述。
由以上描述可以看出,在本发明实施例的方案中,路由表分布式存放在不同的查找节点上,所以可以使得路由表分布更均匀,而且降低了单个节点的路由表规格的压力。进一步,分配节点和查找节点在匹配时均采用LPM匹配原则,所以分配查找节点时,无冲突,也不会有虚假命中的情况,所以整体上路由查找效率较高。
基于同一发明构思,本发明实施例还提供一种装置(如图2所示),该装置用于实现前述方法中的任意一种方法。
可选的,当该装置为分配节点时,接收器30,用于接收报文转发设备的入口节点发送的报文的目的网络协议IP地址;所述分配节点上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;处理器10,用于根据所述目的IP地址按照最长前缀匹配LPM原则在所述分配表中进行所述匹配项字段的匹配;若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,所述分配节点获取所述第一所述匹配项字段对应的第一前缀子树的路由信息所在的第一查找节点的物理盒子号;所述第一查找节点为所述报文转发设备的查找节点;发送器20,用于将所述目的IP地址发送给所述第一查找节点;其中,所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的真实前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点。
可选的,接收器30用于:接收所述入口节点发送的所述报文。
可选的,接收器30用于:接收所述入口节点发送的控制消息,所述控制消息中包括所述目的IP地址、所述报文的标识ID以及所述入口节点的物理盒子号;
发送器20还用于将所述ID以及所述入口节点的物理盒子号发送给所述第一查找节点。
可选的,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;
发送器20还用于:若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,将与所述第一所述匹配项字段对应的第一是否有默认路由标志位发送给所述第一查找节点;以及在所述第一是否有默认路由标志位为是时,所述第一分配节点将与所述第一所述匹配项字段对应的第一默认路由发送给所述第一查找节点。
可选的,接收器30还用于接收所述报文转发设备的控制器下发的分配表项;
处理器10还用于根据接收到的所述分配表项更新所述分配表。
可选的,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;接收器30还用于接收所述报文转发设备的控制器下发的默认路由,所述下发的默认路由为所述第一前缀子树的默认路由;处理器10还用于将所述下发的默认路由填充在所述第一匹配项字段对应的第一默认路由字段中,并且将与所述第一匹配项字段对应的第一是否有默认路由标志位设置为是。
可选的,当图2中的装置为查找节点时,接收器30,用于接收报文转发设备的分配节点发送的报文的目的网络协议IP地址;所述分配节点上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;所述查找节点为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点;处理器10,用于根据所述目的IP地址按照所述LPM原则在所述路由表中进行所述前缀字段的匹配;并根据匹配结果执行与所述匹配结果对应的操作。
可选的,接收器30用于接收所述分配节点发送的所述报文;处理器10用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,通过发送器20将所述报文以及与所述第一前缀字段对应的第一出端口号发送给与所述第一前缀字段对应的第一出口节点。
可选的,接收器30还用于接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;处理器10用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,将所述ID、与所述第一前缀字段对应的第一出口节点的物理盒子号以及第一出端口处理为第一指令消息;并通过发送器20将所述第一指令消息发送给所述入口节点。
可选的,所述第一指令消息还包括编辑指令,所述编辑指令用于指示所述入口节点对所述报文进行编辑。
可选的,接收器30还用于接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;处理器10还用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,将所述ID、与所述第一前缀字段对应的第一出端口处理为第二指令消息;并通过发送器20将所述第二指令消息以及所述入口节点的物理盒子号发送给与所述第一前缀字段对应的第一出口节点。
可选的,所述第二指令消息还包括编辑指令,所述编辑指令用于指示所述入口节点对所述报文进行编辑。
可选的,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;接收器30还用于接收所述第一分配节点发送的与所述第一前缀子树的第一是否有默认路由标志位;以及在所述第一是否有默认路由标志位为是时,第一查找节点接收所述第一分配节点发送的所述第一前缀子树的第一默认路由;处理器10用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配未成功,确定所述第一是否有默认路由标志位是否为是;若第一是否有默认路由标志位为是,获取所述第一默认路由;获取与所述第一默认路由对应的第二出口节点的物理盒子号以及第二出端口。
可选的,接收器30还用于接收所述报文转发设备的控制器发送的路由表项;
处理器10还用于根据接收到的路由表项更新所述路由表。
可选的,接收器30还用于接收所述报文转发设备的控制器下发的所述第一前缀子树的默认路由;所述默认路由为所述第一前缀子树的根节点之前的最长匹配前缀及其对应的路由信息;处理器10还用于将所述第一前缀子树的默认路由更新至所述路由表中。
可选的,图2中的装置可以为入口节点,此时接收器30,用于接收报文;处理器10,用于将所述报文的标识ID、所述报文的目的网络协议IP地址以及所述入口节点的物理盒子号处理为控制消息;发送器20,用于将所述控制消息发送给报文转发设备的至少一个分配节点中的第一分配节点;其中,所述至少一个分配节点上存储有相同的分配表;所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;接收器30还用于接收所述报文转发设备的至少一个查找节点的第一查找节点发送的第一指令消息,所述第一指令消息包括所述ID以及第一出口节点的物理盒子号以及第一出端口;其中,所述第一查找节点为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;处理器10还根据所述ID获取所述报文并将所述报文以及所述第一出端口发送给所述第一出口节点。
可选的,处理器10还用于将所述报文进行存储,所述ID表征所述报文的存储地址。
可选的,处理器10还用于:将所述控制消息发送给所述报文转发设备的至少一个分配节点中的第一分配节点之前,根据所述目的IP地址在热点路由表中进行匹配并确定未匹配成功;其中,所述热点路由表的路由表项包括前缀字段以及出端口字段,所述出端口字段包括出口节点的物理盒子号以及出端口。
可选的,所述第一指令消息还包括编辑指令,处理器10还用于:在将所述报文发送给所述第一出口节点之前,对所述报文按照所述编辑指令进行编辑。
基于同一发明构思,本发明实施例还提供一种路由查找装置,该路由查找装置包括用于执行前述方法步骤的功能模块。在一种可能的实现方式中,如图6所示,该路由查找装置包括接收单元301、处理单元302以及发送单元303。
当该路由查找装置为分配节点时,接收单元301,用于接收报文转发设备的入口节点发送的报文的目的网络协议IP地址;所述路由查找装置上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;处理单元302,用于根据所述目的IP地址按照最长前缀匹配LPM原则在所述分配表中进行所述匹配项字段的匹配;若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,所述分配节点获取所述第一所述匹配项字段对应的第一前缀子树的路由信息所在的第一查找节点的物理盒子号;所述第一查找节点为所述报文转发设备的查找节点;发送单元303,用于将所述目的IP地址发送给所述第一查找节点;其中,所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的真实前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点。
可选的,接收单元301用于:接收所述入口节点发送的所述报文。
可选的,接收单元301用于:接收所述入口节点发送的控制消息,所述控制消息中包括所述目的IP地址、所述报文的标识ID以及所述入口节点的物理盒子号;发送单元303还用于将所述ID以及所述入口节点的物理盒子号发送给所述第一查找节点。
可选的,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;发送单元303还用于:若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,将与所述第一所述匹配项字段对应的第一是否有默认路由标志位发送给所述第一查找节点;以及在所述第一是否有默认路由标志位为是时,所述第一分配节点将与所述第一所述匹配项字段对应的第一默认路由发送给所述第一查找节点。
可选的,接收单元301还用于接收所述报文转发设备的控制器下发的分配表项;处理单元302还用于根据接收到的所述分配表项更新所述分配表。
可选的,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;接收单元301还用于接收所述报文转发设备的控制器下发的默认路由,所述下发的默认路由为所述第一前缀子树的默认路由;处理单元302还用于将所述下发的默认路由填充在所述第一匹配项字段对应的第一默认路由字段中,并且将与所述第一匹配项字段对应的第一是否有默认路由标志位设置为是。
可选的,当图6中的装置为查找节点时,接收单元301,用于接收报文转发设备的分配节点发送的报文的目的网络协议IP地址;所述分配节点上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;所述路由查找装置为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述路由查找装置上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点;处理单元302,用于根据所述目的IP地址按照所述LPM原则在所述路由表中进行所述前缀字段的匹配;并根据匹配结果执行与所述匹配结果对应的操作。
可选的,接收单元301用于接收所述分配节点发送的所述报文;处理单元302用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,通过发送单元303将所述报文以及与所述第一前缀字段对应的第一出端口号发送给与所述第一前缀字段对应的第一出口节点。
可选的,接收单元301还用于接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;处理单元302用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,将所述ID、与所述第一前缀字段对应的第一出口节点的物理盒子号以及第一出端口处理为第一指令消息;并通过发送单元303将所述第一指令消息发送给所述入口节点。
可选的,所述第一指令消息还包括编辑指令,所述编辑指令用于指示所述入口节点对所述报文进行编辑。
可选的,接收单元301还用于接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;处理单元302还用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,将所述ID、与所述第一前缀字段对应的第一出端口处理为第二指令消息;并通过发送单元303将所述第二指令消息以及所述入口节点的物理盒子号发送给与所述第一前缀字段对应的第一出口节点。
可选的,所述第二指令消息还包括编辑指令,所述编辑指令用于指示所述入口节点对所述报文进行编辑。
可选的,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;接收单元301还用于接收所述第一分配节点发送的与所述第一前缀子树的第一是否有默认路由标志位;以及在所述第一是否有默认路由标志位为是时,第一查找节点接收所述第一分配节点发送的所述第一前缀子树的第一默认路由;处理单元302用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配未成功,确定所述第一是否有默认路由标志位是否为是;若第一是否有默认路由标志位为是,获取所述第一默认路由;获取与所述第一默认路由对应的第二出口节点的物理盒子号以及第二出端口。
可选的,接收单元301还用于接收所述报文转发设备的控制器发送的路由表项;处理单元302还用于根据接收到的路由表项更新所述路由表。
可选的,接收单元301还用于接收所述报文转发设备的控制器下发的所述第一前缀子树的默认路由;所述默认路由为所述第一前缀子树的根节点之前的最长匹配前缀及其对应的路由信息;处理单元302还用于将所述第一前缀子树的默认路由更新至所述路由表中。
可选的,当图6中的装置为入口节点时,接收单元301,用于接收报文;处理单元302,用于将所述报文的标识ID、所述报文的目的网络协议IP地址以及所述路由查找装置的物理盒子号处理为控制消息;发送单元303,用于将所述控制消息发送给报文转发设备的至少一个分配节点中的第一分配节点;其中,所述至少一个分配节点上存储有相同的分配表;所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;接收单元301还用于接收所述报文转发设备的至少一个查找节点的第一查找节点发送的第一指令消息,所述第一指令消息包括所述ID以及第一出口节点的物理盒子号以及第一出端口;其中,所述第一查找节点为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;处理单元302还根据所述ID获取所述报文并将所述报文以及所述第一出端口发送给所述第一出口节点。
可选的,处理单元302还用于将所述报文进行存储,所述ID表征所述报文的存储地址。
可选的,处理单元302还用于:将所述控制消息发送给所述报文转发设备的至少一个分配节点中的第一分配节点之前,根据所述目的IP地址在热点路由表中进行匹配并确定未匹配成功;其中,所述热点路由表的路由表项包括前缀字段以及出端口字段,所述出端口字段包括出口节点的物理盒子号以及出端口。
可选的,所述第一指令消息还包括编辑指令,处理单元302还用于:在将所述报文发送给所述第一出口节点之前,对所述报文按照所述编辑指令进行编辑。
前述实施例中的路由查找方法中的各种变化方式和具体实例同样适用于本实施例的路由查找装置以及图2中的装置,通过前述对路由查找方法的详细描述,本领域技术人员可以清楚的知道本实施例中路由查找装置以及图2中的装置的实施方法,所以为了说明书的简洁,在此不再详述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (57)
1.一种路由查找方法,其特征在于,包括:
报文转发设备的分配节点接收所述报文转发设备的入口节点发送的报文的目的网络协议IP地址;所述分配节点上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;
所述分配节点根据所述目的IP地址按照最长前缀匹配LPM原则在所述分配表中进行所述匹配项字段的匹配;
若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,所述分配节点获取所述第一所述匹配项字段对应的第一前缀子树的路由信息所在的第一查找节点的物理盒子号;所述第一查找节点为所述报文转发设备的查找节点;
所述分配节点将所述目的IP地址发送给所述第一查找节点;其中,所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的真实前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点。
2.如权利要求1所述的方法,其特征在于,所述分配节点接收所述目的IP地址,包括:
所述分配节点接收所述入口节点发送的所述报文。
3.如权利要求1所述的方法,其特征在于,所述分配节点接收所述目的IP地址,包括:
所述分配节点接收所述入口节点发送的控制消息,所述控制消息中包括所述目的IP地址、所述报文的标识ID以及所述入口节点的物理盒子号;
相应的,所述方法还包括:
所述分配节点将所述ID以及所述入口节点的物理盒子号发送给所述第一查找节点。
4.如权利要求1-3任一项所述的方法,其特征在于,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;所述方法还包括:
若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,所述分配节点将与所述第一所述匹配项字段对应的第一是否有默认路由标志位发送给所述第一查找节点;以及在所述第一是否有默认路由标志位为是时,所述分配节点将与所述第一所述匹配项字段对应的第一默认路由发送给所述第一查找节点。
5.如权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
所述分配节点接收所述报文转发设备的控制器下发的分配表项;
所述分配节点根据接收到的所述分配表项更新所述分配表。
6.如权利要求1-3任一项所述的方法,其特征在于,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;所述方法还包括:
所述分配节点接收所述报文转发设备的控制器下发的默认路由,所述下发的默认路由为所述第一前缀子树的默认路由;
所述分配节点将所述下发的默认路由填充在所述第一匹配项字段对应的第一默认路由字段中,并且将与所述第一匹配项字段对应的第一是否有默认路由标志位设置为是。
7.一种路由查找方法,其特征在于,包括:
报文转发设备的第一查找节点接收所述报文转发设备的分配节点发送的报文的目的网络协议IP地址;所述分配节点上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;所述第一查找节点为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点;
所述第一查找节点根据所述目的IP地址按照LPM原则在所述路由表中进行所述前缀字段的匹配;
所述第一查找节点根据匹配结果执行与所述匹配结果对应的操作。
8.如权利要求7所述的方法,其特征在于,所述第一查找节点接收所述目的IP地址,包括:
所述第一查找节点接收所述分配节点发送的所述报文;
相应的,所述第一查找节点根据匹配结果执行与所述匹配结果对应的操作,包括:
若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,所述第一查找节点将所述报文以及与所述第一前缀字段对应的第一出端口号发送给与所述第一前缀字段对应的第一出口节点。
9.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一查找节点接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;
相应的,所述第一查找节点根据匹配结果执行与所述匹配结果对应的操作,包括:
若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,所述第一查找节点将所述ID、与所述第一前缀字段对应的第一出口节点的物理盒子号以及第一出端口处理为第一指令消息;
所述第一查找节点将所述第一指令消息发送给所述入口节点。
10.如权利要求9所述的方法,其特征在于,所述第一指令消息还包括编辑指令,所述编辑指令用于指示所述入口节点对所述报文进行编辑。
11.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一查找节点接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;
相应的,所述第一查找节点根据匹配结果执行与所述匹配结果对应的操作,包括:
若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,所述第一查找节点将所述ID、与所述第一前缀字段对应的第一出端口处理为第二指令消息;
所述第一查找节点将所述第二指令消息以及所述入口节点的物理盒子号发送给与所述第一前缀字段对应的第一出口节点。
12.如权利要求11所述的方法,其特征在于,所述第二指令消息还包括编辑指令,所述编辑指令用于指示所述第一出口节点对所述报文进行编辑。
13.如权利要求7所述的方法,其特征在于,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;所述方法还包括:
所述第一查找节点接收所述分配节点发送的与所述第一前缀子树的第一是否有默认路由标志位;以及在所述第一是否有默认路由标志位为是时,第一查找节点接收所述分配节点发送的所述第一前缀子树的第一默认路由;
相应的,所述第一查找节点根据匹配结果执行与所述匹配结果对应的操作,包括:
若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配未成功,所述第一查找节点确定所述第一是否有默认路由标志位是否为是;
若第一是否有默认路由标志位为是,所述第一查找节点获取所述第一默认路由;
所述第一查找节点获取与所述第一默认路由对应的第二出口节点的物理盒子号以及第二出端口。
14.如权利要求7-13任一项所述的方法,其特征在于,所述方法还包括:
所述第一查找节点接收所述报文转发设备的控制器发送的路由表项;
所述第一查找节点根据接收到的路由表项更新所述路由表。
15.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一查找节点接收所述报文转发设备的控制器下发的所述第一前缀子树的默认路由;所述默认路由为所述第一前缀子树的根节点之前的最长匹配前缀及其对应的路由信息;
所述第一查找节点将所述第一前缀子树的默认路由更新至所述路由表中。
16.一种路由查找方法,其特征在于,包括:
报文转发设备的入口节点接收报文;
所述入口节点将所述报文的标识ID、所述报文的目的网络协议IP地址以及所述入口节点的物理盒子号处理为控制消息;
所述入口节点将所述控制消息发送给所述报文转发设备的至少一个分配节点中的第一分配节点;其中,所述至少一个分配节点上存储有相同的分配表;所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;
所述入口节点接收所述报文转发设备的至少一个查找节点的第一查找节点发送的第一指令消息,所述第一指令消息包括所述ID以及第一出口节点的物理盒子号以及第一出端口;其中,所述第一查找节点为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;
所述入口节点根据所述ID获取所述报文并将所述报文以及所述第一出端口发送给所述第一出口节点。
17.如权利要求16所述的方法,其特征在于,所述方法还包括:
所述入口节点将所述报文存储在本地,所述ID表征所述报文的存储地址。
18.如权利要求16或17所述的方法,其特征在于,在所述入口节点将所述控制消息发送给所述报文转发设备的至少一个分配节点中的第一分配节点之前,所述方法还包括:
所述入口节点根据所述目的IP地址在热点路由表中进行匹配并确定未匹配成功;其中,所述热点路由表的路由表项包括前缀字段以及出端口字段,所述出端口字段包括出口节点的物理盒子号以及出端口。
19.如权利要求16-18任一项所述的方法,其特征在于,所述第一指令消息还包括编辑指令,所述方法还包括:
在将所述报文发送给所述第一出口节点之前,对所述报文按照所述编辑指令进行编辑。
20.一种路由查找装置,其特征在于,包括:
接收单元,用于接收报文转发设备的入口节点发送的报文的目的网络协议IP地址;所述路由查找装置上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;
处理单元,用于根据所述目的IP地址按照最长前缀匹配LPM原则在所述分配表中进行所述匹配项字段的匹配;若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,获取所述第一所述匹配项字段对应的第一前缀子树的路由信息所在的第一查找节点的物理盒子号;所述第一查找节点为所述报文转发设备的查找节点;
发送单元,用于将所述目的IP地址发送给所述第一查找节点;其中,所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的真实前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点。
21.如权利要求20所述的装置,其特征在于,所述接收单元用于:接收所述入口节点发送的所述报文。
22.如权利要求20所述的装置,其特征在于,所述接收单元用于:接收所述入口节点发送的控制消息,所述控制消息中包括所述目的IP地址、所述报文的标识ID以及所述入口节点的物理盒子号;
所述发送单元还用于将所述ID以及所述入口节点的物理盒子号发送给所述第一查找节点。
23.如权利要求20-22任一项所述的装置,其特征在于,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;
所述发送单元还用于:若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,将与所述第一所述匹配项字段对应的第一是否有默认路由标志位发送给所述第一查找节点;以及在所述第一是否有默认路由标志位为是时,将与所述第一所述匹配项字段对应的第一默认路由发送给所述第一查找节点。
24.如权利要求20-23任一项所述的装置,其特征在于,所述接收单元还用于接收所述报文转发设备的控制器下发的分配表项;
所述处理单元还用于根据接收到的所述分配表项更新所述分配表。
25.如权利要求20-22任一项所述的装置,其特征在于,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;
所述接收单元还用于接收所述报文转发设备的控制器下发的默认路由,所述下发的默认路由为所述第一前缀子树的默认路由;
所述处理单元还用于将所述下发的默认路由填充在所述第一匹配项字段对应的第一默认路由字段中,并且将与所述第一匹配项字段对应的第一是否有默认路由标志位设置为是。
26.一种路由查找装置,其特征在于,包括:
接收单元,用于接收报文转发设备的分配节点发送的报文的目的网络协议IP地址;所述分配节点上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;所述路由查找装置为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述路由查找装置上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点;
处理单元,用于根据所述目的IP地址按照LPM原则在所述路由表中进行所述前缀字段的匹配;并根据匹配结果执行与所述匹配结果对应的操作。
27.如权利要求26所述的装置,其特征在于,所述装置还包括发送单元,
所述接收单元用于接收所述分配节点发送的所述报文;
所述处理单元用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,通过所述发送单元将所述报文以及与所述第一前缀字段对应的第一出端口号发送给与所述第一前缀字段对应的第一出口节点。
28.如权利要求26所述的装置,其特征在于,所述装置还包括发送单元,
所述接收单元还用于接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;
所述处理单元用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,将所述ID、与所述第一前缀字段对应的第一出口节点的物理盒子号以及第一出端口处理为第一指令消息;并通过所述发送单元将所述第一指令消息发送给所述入口节点。
29.如权利要求28所述的装置,其特征在于,所述第一指令消息还包括编辑指令,所述编辑指令用于指示所述入口节点对所述报文进行编辑。
30.如权利要求26所述的装置,其特征在于,所述装置还包括发送单元,
所述接收单元还用于接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;
所述处理单元还用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,将所述ID、与所述第一前缀字段对应的第一出端口处理为第二指令消息;并通过所述发送单元将所述第二指令消息以及所述入口节点的物理盒子号发送给与所述第一前缀字段对应的第一出口节点。
31.如权利要求30所述的装置,其特征在于,所述第二指令消息还包括编辑指令,所述编辑指令用于指示所述入口节点对所述报文进行编辑。
32.如权利要求26所述的装置,其特征在于,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;
所述接收单元还用于接收所述分配节点发送的与所述第一前缀子树的第一是否有默认路由标志位;以及在所述第一是否有默认路由标志位为是时,第一查找节点接收所述分配节点发送的所述第一前缀子树的第一默认路由;
所述处理单元用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配未成功,确定所述第一是否有默认路由标志位是否为是;若第一是否有默认路由标志位为是,获取所述第一默认路由;获取与所述第一默认路由对应的第二出口节点的物理盒子号以及第二出端口。
33.如权利要求26-32任一项所述的装置,其特征在于,所述接收单元还用于接收所述报文转发设备的控制器发送的路由表项;
所述处理单元还用于根据接收到的路由表项更新所述路由表。
34.如权利要求26所述的装置,其特征在于,所述接收单元还用于接收所述报文转发设备的控制器下发的所述第一前缀子树的默认路由;所述默认路由为所述第一前缀子树的根节点之前的最长匹配前缀及其对应的路由信息;
所述处理单元还用于将所述第一前缀子树的默认路由更新至所述路由表中。
35.一种路由查找装置,其特征在于,包括:
接收单元,用于接收报文;
处理单元,用于将所述报文的标识ID、所述报文的目的网络协议IP地址以及所述路由查找装置的物理盒子号处理为控制消息;
发送单元,用于将所述控制消息发送给报文转发设备的至少一个分配节点中的第一分配节点;其中,所述至少一个分配节点上存储有相同的分配表;所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;
所述接收单元还用于接收所述报文转发设备的至少一个查找节点的第一查找节点发送的第一指令消息,所述第一指令消息包括所述ID以及第一出口节点的物理盒子号以及第一出端口;其中,所述第一查找节点为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;
所述处理单元还根据所述ID获取所述报文并将所述报文以及所述第一出端口发送给所述第一出口节点。
36.如权利要求35所述的装置,其特征在于,所述处理单元还用于将所述报文进行存储,所述ID表征所述报文的存储地址。
37.如权利要求35或36所述的装置,其特征在于,所述处理单元还用于:将所述控制消息发送给所述报文转发设备的至少一个分配节点中的第一分配节点之前,根据所述目的IP地址在热点路由表中进行匹配并确定未匹配成功;其中,所述热点路由表的路由表项包括前缀字段以及出端口字段,所述出端口字段包括出口节点的物理盒子号以及出端口。
38.如权利要求35-37任一项所述的装置,其特征在于,所述第一指令消息还包括编辑指令,所述处理单元还用于:在将所述报文发送给所述第一出口节点之前,对所述报文按照所述编辑指令进行编辑。
39.一种分配节点,其特征在于,包括:
接收器,用于接收报文转发设备的入口节点发送的报文的目的网络协议IP地址;所述分配节点上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;
处理器,用于根据所述目的IP地址按照最长前缀匹配LPM原则在所述分配表中进行所述匹配项字段的匹配;若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,所述分配节点获取所述第一所述匹配项字段对应的第一前缀子树的路由信息所在的第一查找节点的物理盒子号;所述第一查找节点为所述报文转发设备的查找节点;
发送器,用于将所述目的IP地址发送给所述第一查找节点;其中,所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的真实前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点。
40.如权利要求39所述的分配节点,其特征在于,所述接收器用于:接收所述入口节点发送的所述报文。
41.如权利要求39所述的分配节点,其特征在于,所述接收器用于:接收所述入口节点发送的控制消息,所述控制消息中包括所述目的IP地址、所述报文的标识ID以及所述入口节点的物理盒子号;
所述发送器还用于将所述ID以及所述入口节点的物理盒子号发送给所述第一查找节点。
42.如权利要求39-41任一项所述的分配节点,其特征在于,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;
所述发送器还用于:若所述目的IP地址与所述分配表中的第一所述匹配项字段匹配成功,将与所述第一所述匹配项字段对应的第一是否有默认路由标志位发送给所述第一查找节点;以及在所述第一是否有默认路由标志位为是时,将与所述第一所述匹配项字段对应的第一默认路由发送给所述第一查找节点。
43.如权利要求39-42任一项所述的分配节点,其特征在于,所述接收器还用于接收所述报文转发设备的控制器下发的分配表项;
所述处理器还用于根据接收到的所述分配表项更新所述分配表。
44.如权利要求39-41任一项所述的分配节点,其特征在于,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;
所述接收器还用于接收所述报文转发设备的控制器下发的默认路由,所述下发的默认路由为所述第一前缀子树的默认路由;
所述处理器还用于将所述下发的默认路由填充在所述第一匹配项字段对应的第一默认路由字段中,并且将与所述第一匹配项字段对应的第一是否有默认路由标志位设置为是。
45.一种查找节点,其特征在于,包括:
接收器,用于接收报文转发设备的分配节点发送的报文的目的网络协议IP地址;所述分配节点上存储有分配表,所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;所述查找节点为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;所述出口节点为所述报文转发设备的出口节点;
处理器,用于根据所述目的IP地址按照LPM原则在所述路由表中进行所述前缀字段的匹配;并根据匹配结果执行与所述匹配结果对应的操作。
46.如权利要求45所述的查找节点,其特征在于,所述查找节点还包括发送器,
所述接收器用于接收所述分配节点发送的所述报文;
所述处理器用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,通过所述发送器将所述报文以及与所述第一前缀字段对应的第一出端口号发送给与所述第一前缀字段对应的第一出口节点。
47.如权利要求45所述的查找节点,其特征在于,所述查找节点还包括发送器,
所述接收器还用于接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;
所述处理器用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,将所述ID、与所述第一前缀字段对应的第一出口节点的物理盒子号以及第一出端口处理为第一指令消息;并通过所述发送器将所述第一指令消息发送给所述入口节点。
48.如权利要求47所述的查找节点,其特征在于,所述第一指令消息还包括编辑指令,所述编辑指令用于指示所述入口节点对所述报文进行编辑。
49.如权利要求45所述的查找节点,其特征在于,所述查找节点还包括发送器,
所述接收器还用于接收所述分配节点发送的所述报文的标识ID以及所述报文转发设备的入口节点的物理盒子号;所述入口节点为从外部网络接收所述报文的入口节点;
所述处理器还用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配成功,将所述ID、与所述第一前缀字段对应的第一出端口处理为第二指令消息;并通过发送器将所述第二指令消息以及所述入口节点的物理盒子号发送给与所述第一前缀字段对应的第一出口节点。
50.如权利要求49所述的查找节点,其特征在于,所述第二指令消息还包括编辑指令,所述编辑指令用于指示所述入口节点对所述报文进行编辑。
51.如权利要求45所述的查找节点,其特征在于,所述分配表的分配表项还包括是否有默认路由标志位字段以及默认路由字段,所述是否有默认路由标志位字段为所述一个前缀子树是否有默认路由,所述默认路由为所述一个前缀子树的默认路由,所述默认路由为所述根节点之前的最长匹配前缀及其对应的路由信息;
所述接收器还用于接收所述分配节点发送的与所述第一前缀子树的第一是否有默认路由标志位;以及在所述第一是否有默认路由标志位为是时,第一查找节点接收所述分配节点发送的所述第一前缀子树的第一默认路由;
所述处理器用于若所述匹配结果为所述目的IP地址与所述路由表中的第一前缀字段匹配未成功,确定所述第一是否有默认路由标志位是否为是;若第一是否有默认路由标志位为是,获取所述第一默认路由;获取与所述第一默认路由对应的第二出口节点的物理盒子号以及第二出端口。
52.如权利要求45-51任一项所述的查找节点,其特征在于,所述接收器还用于接收所述报文转发设备的控制器发送的路由表项;
所述处理器还用于根据接收到的路由表项更新所述路由表。
53.如权利要求45所述的查找节点,其特征在于,所述接收器还用于接收所述报文转发设备的控制器下发的所述第一前缀子树的默认路由;所述默认路由为所述第一前缀子树的根节点之前的最长匹配前缀及其对应的路由信息;
所述处理器还用于将所述第一前缀子树的默认路由更新至所述路由表中。
54.一种入口节点,其特征在于,包括:
接收器,用于接收报文;
处理器,用于将所述报文的标识ID、所述报文的目的网络协议IP地址以及所述入口节点的物理盒子号处理为控制消息;
发送器,用于将所述控制消息发送给报文转发设备的至少一个分配节点中的第一分配节点;其中,所述至少一个分配节点上存储有相同的分配表;所述分配表的分配表项包括匹配项字段以及查找节点号字段,所述匹配项字段为一个前缀子树的根节点对应的前缀,所述查找节点号字段为所述一个前缀子树的路由信息所在的查找节点的物理盒子号;
所述接收器还用于接收所述报文转发设备的至少一个查找节点的第一查找节点发送的第一指令消息,所述第一指令消息包括所述ID以及第一出口节点的物理盒子号以及第一出端口;其中,所述第一查找节点为所述一个前缀子树中的第一前缀子树的路由信息所在的查找节点;所述第一查找节点上存储有路由表,所述路由表的路由表项包括前缀字段与出端口字段,所述前缀字段为所述第一前缀子树中的前缀,所述出端口字段为出口节点的物理盒子号以及出端口号;
所述处理器还根据所述ID获取所述报文并将所述报文以及所述第一出端口发送给所述第一出口节点。
55.如权利要求54所述的入口节点,其特征在于,所述处理器还用于将所述报文进行存储,所述ID表征所述报文的存储地址。
56.如权利要求54或55所述的入口节点,其特征在于,所述处理器还用于:将所述控制消息发送给所述报文转发设备的至少一个分配节点中的第一分配节点之前,根据所述目的IP地址在热点路由表中进行匹配并确定未匹配成功;其中,所述热点路由表的路由表项包括前缀字段以及出端口字段,所述出端口字段包括出口节点的物理盒子号以及出端口。
57.如权利要求54-56任一项所述的入口节点,其特征在于,所述第一指令消息还包括编辑指令,所述处理器还用于:在将所述报文发送给所述第一出口节点之前,对所述报文按照所述编辑指令进行编辑。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610298938.5A CN107347035B (zh) | 2016-05-06 | 2016-05-06 | 路由查找方法、装置、分配节点、查找节点及入口节点 |
EP17792386.9A EP3442178B1 (en) | 2016-05-06 | 2017-03-17 | Route searching method and apparatus |
PCT/CN2017/077099 WO2017190559A1 (zh) | 2016-05-06 | 2017-03-17 | 路由查找方法、装置、分配节点、查找节点及入口节点 |
US16/180,722 US10680950B2 (en) | 2016-05-06 | 2018-11-05 | Route searching method and apparatus, allocation node, searching node, and ingress node |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610298938.5A CN107347035B (zh) | 2016-05-06 | 2016-05-06 | 路由查找方法、装置、分配节点、查找节点及入口节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107347035A CN107347035A (zh) | 2017-11-14 |
CN107347035B true CN107347035B (zh) | 2020-05-08 |
Family
ID=60202679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610298938.5A Active CN107347035B (zh) | 2016-05-06 | 2016-05-06 | 路由查找方法、装置、分配节点、查找节点及入口节点 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10680950B2 (zh) |
EP (1) | EP3442178B1 (zh) |
CN (1) | CN107347035B (zh) |
WO (1) | WO2017190559A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107347035B (zh) * | 2016-05-06 | 2020-05-08 | 华为技术有限公司 | 路由查找方法、装置、分配节点、查找节点及入口节点 |
US10623316B2 (en) * | 2017-04-27 | 2020-04-14 | Mellanox Technologies Tlv Ltd. | Scaling of switching tables with high bandwidth |
CN108718277B (zh) * | 2018-04-11 | 2021-11-09 | 新华三技术有限公司 | 基于路由表的报文转发方法与路由表维护方法及相关装置 |
CN110290117B (zh) * | 2019-06-06 | 2021-11-05 | 新华三信息安全技术有限公司 | 一种匹配ip地址的方法及装置 |
CN115190071A (zh) * | 2021-04-02 | 2022-10-14 | 华为技术有限公司 | 一种缓存方法及集成电路 |
CN116112191A (zh) * | 2021-11-11 | 2023-05-12 | 中国移动通信集团山东有限公司 | 基于路由表配置acl的方法、装置和网络设备 |
CN115442288B (zh) * | 2022-08-19 | 2023-06-27 | 中国信息通信研究院 | 一种SRv6网络数据包检查方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049359A (zh) * | 2014-04-29 | 2015-11-11 | 英特尔公司 | 用于分布式路由表查找的技术 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236793A1 (en) * | 2002-06-19 | 2003-12-25 | Ericsson Inc. | Compressed prefix tree structure and method for traversing a compressed prefix tree |
US20050083937A1 (en) * | 2003-10-15 | 2005-04-21 | Hyesook Lim | IP address lookup method using pipeline binary tree, hardware architecture, and recording medium |
CN101588299B (zh) | 2009-07-07 | 2012-01-04 | 杭州华三通信技术有限公司 | 分布式设备的报文转发方法及分布式设备和该设备的单板 |
US8331371B2 (en) | 2009-12-17 | 2012-12-11 | Amazon Technologies, Inc. | Distributed routing architecture |
US9178806B2 (en) * | 2012-07-31 | 2015-11-03 | Alcatel Lucent | High-speed content routing |
US9647941B2 (en) * | 2013-10-04 | 2017-05-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Hierarchical hashing for longest prefix matching |
CN103581023A (zh) * | 2013-11-06 | 2014-02-12 | 盛科网络(苏州)有限公司 | 实现最长掩码匹配的方法及装置 |
CN105227468B (zh) * | 2014-06-20 | 2019-01-08 | 华为技术有限公司 | 一种查找装置、查找方法和配置方法 |
CN104158743B (zh) * | 2014-08-22 | 2017-08-25 | 福建星网锐捷网络有限公司 | 分布式路由器的报文跨卡转发方法及装置 |
CN107347035B (zh) * | 2016-05-06 | 2020-05-08 | 华为技术有限公司 | 路由查找方法、装置、分配节点、查找节点及入口节点 |
US10148571B2 (en) * | 2016-06-20 | 2018-12-04 | Mellanox Technologies Tlv Ltd. | Jump on a match optimization for longest prefix match using a binary search tree |
-
2016
- 2016-05-06 CN CN201610298938.5A patent/CN107347035B/zh active Active
-
2017
- 2017-03-17 WO PCT/CN2017/077099 patent/WO2017190559A1/zh active Application Filing
- 2017-03-17 EP EP17792386.9A patent/EP3442178B1/en active Active
-
2018
- 2018-11-05 US US16/180,722 patent/US10680950B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049359A (zh) * | 2014-04-29 | 2015-11-11 | 英特尔公司 | 用于分布式路由表查找的技术 |
Also Published As
Publication number | Publication date |
---|---|
EP3442178A4 (en) | 2019-04-17 |
EP3442178A1 (en) | 2019-02-13 |
WO2017190559A1 (zh) | 2017-11-09 |
US20190075053A1 (en) | 2019-03-07 |
EP3442178B1 (en) | 2022-10-26 |
CN107347035A (zh) | 2017-11-14 |
US10680950B2 (en) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107347035B (zh) | 路由查找方法、装置、分配节点、查找节点及入口节点 | |
CN107534613B (zh) | 使用子树标识符的多区域源路由组播方法 | |
CN106059924B (zh) | 一种管理信息的方法,装置及系统 | |
US9692695B2 (en) | Techniques for aggregating hardware routing resources in a multi-packet processor networking system | |
CN107770073B (zh) | 一种信息同步的方法,装置及系统 | |
US10284472B2 (en) | Dynamic and compressed trie for use in route lookup | |
US20160269298A1 (en) | Traffic Engineering Feeder for Packet Switched Networks | |
US11616720B2 (en) | Packet processing method and system, and device | |
US9973400B2 (en) | Network flow information collection method and apparatus | |
US20040264380A1 (en) | Distributing information across equal-cost paths in a network | |
Braun et al. | Wildcard compression of inter-domain routing tables for openflow-based software-defined networking | |
US8923298B2 (en) | Optimized trie-based address lookup | |
US7487255B2 (en) | Routing cache management with route fragmentation | |
CN111147372A (zh) | 下行报文发送、转发方法和装置 | |
CN114268584A (zh) | 转发报文的方法和相关装置 | |
CN112532563B (zh) | 报文的发送方法和装置 | |
CN108259326B (zh) | 路由表更新方法、装置、分配节点以及叶报文转发设备 | |
Ren et al. | On Scalable Service Function Chaining with $\mathcal {O}(1) $ Flowtable Entries | |
US7343424B2 (en) | Fibonacci heap for use with internet routing protocols | |
KR102001487B1 (ko) | 소프트웨어 정의 네트워킹 제어 방법 및 이를 수행하는 컴퓨팅 장치 | |
JP2016103697A (ja) | ネットワークシステム、制御装置、通信装置、通信装置の制御方法及びプログラム | |
US20240064098A1 (en) | Multicast Packet Sending Method and Apparatus | |
US10931579B2 (en) | Route search method and apparatus, and routing device | |
CN115733796A (zh) | 通信方法及装置 | |
CN114389989A (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 |