CN106416150B - 一种路由查询方法和网络设备 - Google Patents
一种路由查询方法和网络设备 Download PDFInfo
- Publication number
- CN106416150B CN106416150B CN201580001178.0A CN201580001178A CN106416150B CN 106416150 B CN106416150 B CN 106416150B CN 201580001178 A CN201580001178 A CN 201580001178A CN 106416150 B CN106416150 B CN 106416150B
- Authority
- CN
- China
- Prior art keywords
- matching table
- address information
- external
- entry
- matching
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种路由查询方法,包括:通过输入端口接收数据包,解析所述数据包获得其目的地址信息;检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项;若不存在,则检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项,若存在,则将该数据包通过匹配到的表项指示的输出端口转发;若外部精确匹配表不存在且外部通用匹配表存在匹配的表项,则检测该表项的地址信息是否包含外部精确匹配表的地址信息;若不包含,则将该表项保存到内部通用匹配表中。相应地,本发明实施例还公开了一种网络设备。采用本发明,可以实现同时对精确匹配表和通用匹配表进行查找加速,并且,可以节约内部存储空间,同时也可以避免表项的误删。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种路由查询方法和网络设备。
背景技术
当前的计算机网络,比如以太网和因特网,一般采用包交换技术(又称“分组交换”)对数据进行传输。在包交换网络中,通信数据首先在源主机节点被切分和封装成一个个数据包并注入网络,然后经过网络设备的路由和转发进行传输,最终数据包到达目的主机节点,恢复和合并成原有通信数据。在该过程中,网络设备,比如交换机和路由器,对每一个数据包进行独立的路由和转发,即当一个数据包到达网络设备的输入端口时,网络设备基于数据包中的地址信息,比如目的MAC(英文:Media Access Control,中文:介质访问控制)地址或目的IP(英文:Internet Protocol,中文:互联网协议)地址,确定该数据包的输出端口,并将该数据包从输入端口交换到输出端口。
在当前的大部分网络设备中,对数据包的路由是通过查询查找表实现的:在网络设备中存储有一张或多张“查找表”(比如,路由表或转发表),每个查找表包含一个或多个表项,每个表项包含地址信息和输出端口号等信息,通过提取数据包中的地址信息和查找表中的地址信息进行匹配,以确定匹配的表项,并从匹配的表项中提取输出端口号以确定输出端口。这种路由方式称为“查表路由”。
比如,由二层交换机构建的以太网中,交换机中存放着一张学习得到的“转发表”,该表的表项中包含MAC地址和输出端口号等信息;当交换机接收到一个数据包时,从数据包中提取目的MAC地址,并将它与转发表中每个表项的目的MAC地址进行比较,以确定匹配的表项(目的MAC地址与表项中的MAC地址相等),从而得到输出端口号。又如,由路由器构建的IP网络中,每个路由中都存放着通过路由协议学习得到的“路由表”,该表的表项中包含网络地址、网络掩码、输出端口号和下一跳网络地址等信息;当路由器接收到一个数据包时,从数据包中提取目的IP地址,并执行基于掩码的匹配,以确定匹配的表项,从而得到输出端口号和下一跳网络地址等信息。
近年来新兴起的软件定义网络(全称:Software Defined Networking,简称:SDN)中,网络设备也通过查找一种称为“流表”的查找表来实现对数据包的路由和其他处理。为了执行细粒度的数据流处理,与二层交换机的转发表和路由器的路由表相比,该查找表通常包含更多的匹配字段,并且精确匹配表和通用匹配表并存。图1和图2分别示出了精确匹配表和通用匹配表的逻辑结构,对于精确匹配表,执行精确匹配,即数据包中的地址信息需要与该匹配域完全相等才能作为匹配成功;对于通用匹配表,执行基于掩码的通用匹配,即数据包的一部分与该匹配域中的对应部分相等即为匹配成功,其余部分可以在匹配过程中忽略,该忽略规则由匹配域中的掩码决定。对于网络设备,查表路由的性能通常是其性能的瓶颈,因此对查表路由进行加速十分重要,基于缓存的查表路由加速方法是一种重要的查表加速技术。
图3示出了一种现有技术中在精确匹配表和通用匹配表并存的情况下,网络设备执行查表路由的一般结构。在该结构下,利用片内精确匹配表缓存最近经常使用的精确匹配表项,执行查表路由时,首先执行内部查表,对精确匹配表进行查找,如果命中,则不再查询外部表,直接输出结果,以实现查表路由加速;该查表路由加速技术,虽然能对最终匹配精确匹配表项的那些数据包的路由进行加速,但对于最终匹配通用匹配表项的数据包而言,其路由过程没有加速。
图4示出了另一种现有技术中在精确匹配表和通用匹配表并存的情况下,网络设备执行软件查表路由的一般结构。在该结构下,将精确匹配表作为通用匹配表的缓存。其查表路由过程如图5所示:当一个数据包到达时,首先执行精确匹配表查找,如果命中,直接返回精确匹配结果;否则,再执行通用匹配表查找,如果命中,返回通用匹配结果,并结合数据包中的流信息,将该通用匹配结果表项扩展为精确匹配表项后存入精确匹配表中;通过将命中的通用匹配结果表项扩展为精确匹配表项后存入精确匹配表中,对于后续与当前数据包属于同一个流的数据包,只要执行精确匹配表查找就能完成路由,因此实现了路由加速。该查表路由加速技术存在以下缺点:1、通用匹配表项可能扩展为大量精确匹配表项,从而占用大量的精确匹配表的空间;2、当删除通用匹配表项时,要同步删除扩展到精确匹配表中的表项,但是由于难以区分“哪些精确表项是扩展得到的,哪些是原本有的”,所以可能导致误删。
发明内容
本发明提供了一种路由查询方法,可以实现同时对精确匹配表和通用匹配表的进行查找加速,并且,可以节约内部存储空间以及可以避免表项的误删。
本发明第一方面提供了一种路由查询方法,包括:
通过输入端口接收数据包,解析所述数据包获得其目的地址信息;
检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项,所述内部匹配表包括精确匹配表和通用匹配表;
若检测到所述内部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发;
若检测到所述内部匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项,所述外部匹配表包括精确匹配表和通用匹配表;
若检测到所述外部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发;
若检测到所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息;
若检测到所述外部匹配表的通用匹配表中匹配到的表项的地址信息不包含所述外部匹配表的精确匹配表的地址信息,则将所述外部匹配表的通用匹配表中匹配到的表项保存到所述内部匹配表的通用匹配表中。
在第一方面的第一种可能实现方式中,所述检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
检测所述内部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述内部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述内部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
在第一方面的第二种可能实现方式中,所述检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
同时检测所述内部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发包括:
若所述内部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
结合第一方面或第一方面的第一种或第二种任一种可能的实现方式中,在第三种可能的实现方式中,所述检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
检测所述外部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
结合第一方面或第一方面的第一种或第二种任一种可能的实现方式中,在第四种可能的实现方式中,所述检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
同时检测所述外部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发包括:
若所述外部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
结合第一方面的第三种或第四种任一种可能实现方式,在第五种可能的实现方式中,若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项,所述方法还包括:
将所述外部匹配表的精确匹配表中匹配到的表项保存到所述内部匹配表的精确匹配表中。
结合第一方面或第一方面的第一种至第五种任一种可能实现方式,在第六种可能实现方式中,所述检测所述外部匹配表的精确匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息之前,还包括:
检测所述外部匹配表的精确匹配表中匹配到的表项是否被标记为已检测;
若检测到所述外部匹配表的精确匹配表中匹配到的表项未被标识为已检测,则执行所述检测所述外部匹配表的精确匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息的步骤;
所述方法还包括:若检测到所述外部匹配表的精确匹配表中匹配到的表项的地址信息包含所述外部匹配表的精确匹配表的地址信息时,则标记所述外部匹配表的精确匹配表中匹配到的表项为已检测。
结合第一方面或第一方面的第一种至第六种任一种可能实现方式,在第七种可能的实现方式,还包括:
接收针对所述外部匹配表的精确匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的精确匹配表中,并删除所述内部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的精确匹配表和所述内部匹配表的精确匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的修改指令,修改所述外部匹配表的精确匹配表中的所述目标表项,并删除所述内部匹配表的精确匹配表中的修改前的所述目标表项和所述内部匹配表的通用匹配表中与修改后的所述目标表项匹配的表项。
结合第一方面或第一方面的第一种至第六种中任一种可能实现方式,在第八种可能的实现方式,还包括:
接收针对所述外部匹配表的通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的通用匹配表中,并删除所述内部匹配表的通用匹配表和所述外部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的通用匹配表和所述内部匹配表的通用匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的修改指令,修改所述外部匹配表的通用匹配表中的所述目标表项,并删除所述内部匹配表的通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
本发明第二方面提供了一种网络设备,包括:
包接收模块,用于通过输入端口接收数据包,解析所述数据包获得其目的地址信息;
内部查表引擎模块,用于检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项,所述内部匹配表包括精确匹配表和通用匹配表;
转发模块,用于若检测到所述内部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发;
外部查表引擎模块,用于若检测到所述内部匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项,所述外部匹配表包括精确匹配表和通用匹配表;
所述转发模块还用于:
若检测到所述外部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发;
第一检测模块,用于若检测到所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息;
处理模块,用于若检测到所述外部匹配表的通用匹配表中匹配到的表项的地址信息不包含所述外部匹配表的精确匹配表的地址信息,则将所述外部匹配表的通用匹配表中匹配到的表项保存到所述内部匹配表的通用匹配表中。
在第二方面的第一种可能实现方式中,所述内部查表引擎模块具体用于:
检测所述内部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若所述内部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述内部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
在第二方面的第二种可能实现方式中,所述内部查表引擎模块具体用于:
同时检测所述内部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述转发模块还用于:
若所述内部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
结合第二方面或第二方面的第一种或第二种任一种可能实现方式,在第三种可能的实现方式中,所述外部查表引擎模块具体用于:
检测所述外部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
结合第二方面或第二方面的第一种或第二种任一种可能实现方式,在第四种可能的实现方式中,所述外部查表引擎模块具体用于:
同时检测所述外部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述转发模块具体还用于:
若所述外部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
结合第二方面的第三种或第四种可能实现方式,在第五种可能的实现方式中,所述处理模块还用于:
若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述外部匹配表的精确匹配表中匹配到的表项保存到所述内部匹配表的精确匹配表中。
结合第二方面或第二方面的第一种至第五种可能实现方式,在第六种可能实现方式,还包括:
第二检测模块,用于检测所述外部匹配表的精确匹配表中匹配到的表项是否被标记为已检测,若检测到所述外部匹配表的精确匹配表中匹配到的表项未被标识为已检测,则触发所述第一检测模块检测所述外部匹配表的精确匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息;
标记模块,用于若检测到所述外部匹配表的精确匹配表中匹配到的表项的地址信息包含所述外部匹配表的精确匹配表的地址信息时,则标记所述外部匹配表的精确匹配表中匹配到的表项为已检测。
结合第二方面或第二方面的第一种至第六种中任一种可能实现方式,在第七种可能的实现方式,还包括:
匹配表更新模块,用于接收针对所述外部匹配表的精确匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的精确匹配表中,并删除所述内部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的精确匹配表和所述内部匹配表的精确匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的修改指令,修改所述外部匹配表的精确匹配表中的所述目标表项,并删除所述内部匹配表的精确匹配表中的修改前的所述目标表项和所述内部匹配表的通用匹配表中与修改后的所述目标表项匹配的表项。
结合第二方面或第二方面的第一种至第六种中任一种可能实现方式,在第八种可能的实现方式,还包括:
匹配表更新模块,用于接收针对所述外部匹配表的通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的通用匹配表中,并删除所述内部匹配表的通用匹配表和所述外部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的通用匹配表和所述内部匹配表的通用匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的修改指令,修改所述外部匹配表的通用匹配表中的所述目标表项,并删除所述内部匹配表的通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
本发明第三方面还提供一种网络设备,所述网络设备包括网络端口、存储器以及处理器,其中,所述存储器中存储一组程序,且处理器用于调用所述存储器中存储的程序,使得所述网络设备执行第一方面提供的一种路由查询方法的部分或全部步骤。
本发明第四方面提供了一种计算机存储介质,所述计算机存储介质存储有程序,所述程序用于使计算机执行时包括第一方面提供的一种路由查询方法的部分或全部步骤。
实施本发明,具有以下有益效果:
本发明先检测内部匹配表是否存在地址信息与数据包的目的地址信息匹配的表项,该内部匹配表包括精确匹配表和通用匹配表,若内部匹配表存在地址信息与所述目的地址信息匹配的表项,则将该数据包通过该表项指示的输出端口转发,实现了同时对精确匹配表和通用匹配表的查找加速;
若内部匹配表不存在,再检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项,若外部匹配表的精确匹配表不存在且通用匹配表存在地址信息与所述目的地址信息匹配的表项,则直接将匹配的表项保存到内部匹配表的通用匹配表中,无需扩展为精确匹配表项,节约了内部存储空间,同时也避免了表项的误删。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一种精确匹配表的示意图;
图2示出了一种通用匹配表的示意图;
图3是现有技术中一种网络设备的结构示意图;
图4是现有技术中另一种网络设备的结构示意图;
图5是现有技术中一种查表路由的方法示意图;
图6是本发明第一实施例提供的一种路由查询方法的示意图;
图7是本发明第二实施例提供的一种外部精确匹配表更新方法的示意图;
图8是本发明第三实施例提供的一种外部通用匹配表更新方法的示意图;
图9是本发明第四实施例提供的一种网络设备的结构示意图;
图10是本发明第五实施例提供的另一种网络设备的结构示意图;
图11是本发明第六实施例提供的又一种网络设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在此部分,首先对本发明中各个实施例均涉及的一些基本概念进行说明。在TCP/IP参考模型和OSI参考模型中,对在模型的不同层的数据包有不同的称呼,比如帧、数据报文、分组等等,但为了方便起见,本发明统称为数据包。
本发明实施例提供的路由查询方法应用于网络设备,如二层交换机、三层交换机或路由器等,所述网络设备包括至少一个输入端口,各个所述输入端口拥有独立的内部匹配表,各个所述输入端口还拥有独立或共享的外部匹配表,其中,内部匹配表用于缓存在外部匹配表中命中的表项;
内部匹配表包括精确匹配表和通用匹配表,外部匹配表包括精确匹配表和通用匹配表,为例便于描述,下述将内部匹配表的精确匹配表简称为“内部精确匹配表”,将内部匹配表的通用匹配表简称为“内部通用匹配表”,将外部匹配表的精确匹配表简称为“外部精确匹配表”,将外部匹配表的通用匹配表简称为“外部通用匹配表”。
本发明第一实施例提供了一种路由查询方法,如图6所示本实施例的所述方法可以包括:
步骤S601,通过输入端口接收数据包,解析所述数据包获得其目的地址信息;可理解的是,如何解析数据包获得其目的地址信息是本领域技术人员可理解的,在此不再赘述;
该目的地址信息可以是所述数据包的目的IP地址。
步骤S602,检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项;若检测到所述内部匹配表存在地址信息与所述目的地址信息匹配的表项,则执行步骤S603;若检测到所述内部匹配表不存在地址信息与所述目的地址信息匹配的表项,则执行步骤S604;
其中,输入端口与内部匹配表的对应关系,可以是一个输入端口对应一个内部匹配表;也可以是多个输入端口对应一个内部匹配表,等等;应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
在一种可选的实施方式中,网络设备可以检测内部精确匹配表是否存在地址信息与所述目的地址信息匹配的表项,若所述内部精确匹配表存在地址信息与所述目的地址信息匹配的表项,则执行步骤S603;具体实现中,内部精确匹配表的各个表项至少包括目的IP地址以及输出端口号,网络设备可以获取数据包的目的IP地址,通过哈希查询内部精确匹配表,若查询到IP地址和该目的IP地址相同的表项,则执行步骤S603;内部精确匹配表以表1为例,假设,数据包的目的IP地址为10.10.10.8,网络设备查询内部精确匹配表,可以查询到存在IP地址和目的IP地址相同的表项,即表项3,则执行步骤S603;
可理解的是,如何通过哈希查询内部精确匹配表是本领域技术人可理解的,在此不再赘述;
表1
表项 | IP地址 | 输出端口 | ...... |
1 | 10.10.125.6 | 1 | ...... |
2 | 10.10.136.25 | 2 | ...... |
3 | 10.10.10.8 | 3 | ...... |
4 | 10.111.10.10 | 4 | ...... |
...... | ...... | ...... | ...... |
进一步的,若检测到所述内部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,网络设备还可以检测所述内部通用匹配表是否存在地址信息与所述目的地址信息匹配的表项,若所述内部通用匹配表存在地址信息与所述目的地址信息匹配的表项,则执行步骤S603;具体实现中,内部通用匹配表的各个表项至少包括网络地址、掩码以及输出端口号,网络设备可以获取数据包的目的IP地址,通过TCAM查询内部通用匹配表,基于掩码若匹配出与该目的IP地址匹配的表项,则执行步骤S603;
掩码是用来标识两个IP地址是否同属于一个子网,它是一组32位长的二进制数值,其每一位上的数值代表不同含义:若为“1”则代表该位是网络位;若为“0”则代表该位是主机位;如果,数据包的目的IP地址和掩码进行按位“与”计算后得到的结果与其表项的网络地址相同,则说明基于掩码匹配出与该目的IP地址匹配的表项,则执行步骤S603;内部通用匹配表以表2为例,假设,数据包的目的IP地址为10.10.10.8,网络设备查询内部通用匹配表,可以查询到目的IP地址和表项1的掩码进行按位“与”计算后的结果与表项1的网络地址相同,则执行步骤S603。
表2
表项 | 网络地址 | 掩码 | 输出端口 | ...... |
1 | 10.10.10.0 | 255.255.255.0 | 1 | ...... |
2 | 10.10.20.0 | 255.255.255.0 | 1 | ...... |
3 | 10.10.30.0 | 255.255.255.0 | 2 | ...... |
4 | 10.10.40.0 | 255.255.255.0 | 2 | ...... |
...... | ...... | ...... | ...... |
在另一种可选的实施方式中,网络设备可以同时检测内部精确匹配表和内部通用匹配表是否存在地址信息与所述目的地址信息匹配的表项,若所述内部精确匹配表和所述内部通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过所述内部精确匹配表中匹配到的表项指示的输出端口转发;也就是说,若内部精确匹配表和内部通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则以内部精确匹配表匹配出的结果为准,内部精确匹配表以表1为例,内部通用匹配表以表2为例,假设,目的IP地址仍为10.10.10.8,则匹配结果为内部精确匹配表的表项3,即输出端口号为“3”;
若所述内部精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部通用匹配表中匹配到的表项指示的输出端口转发。
由于,片内缓存分别存储了精确匹配表和通用匹配表,因此,实现了在对精确匹配表进行查找加速的同时,也对通用匹配表的查找进行了加速。
步骤S603,将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发。
步骤S604,检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项;若检测到所述外部精确匹配表存在地址信息与所述目的地址信息匹配的表项,则执行步骤S605;若检测到所述外部通用匹配表存在地址信息与所述目的地址信息匹配的表项,则执行步骤S607;
其中,输入端口与外部匹配表的对应关系,可以是一个输入端口对应一个外部匹配表;也可以是多个输入端口对应一个外部匹配表,等等;应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。步骤S605,将该表项保存到内部精确匹配表中;
若外部精确匹配表中存在地址信息与所述目的地址信息匹配的表项,则将该表项保存到内部精确匹配表中,当再次接收到与该数据包具有相同目的IP地址的数据包时,则可以在内部精确匹配表中匹配出结果,提高了查表效率;由于,在包交换网络中,通信数据首先在源主机节点被切分和封装成多个数据包,则网络设备可能连续为所述多个数据包路由,如果,在接收到第一个数据包时,则将在外部精确匹配表中匹配的表项存储到内部精确匹配表中,当接收到所述多个数据包中的后续几个数据包时,可以在内部精确匹配表中匹配出结果,提高了查表效率;
进一步的,若外部精确匹配表存在地址信息与所述目的地址信息匹配的表项,网络设备还可以检测在预设时长内该表项的命中次数,若命中次数达到预设次数阈值,才将该表项保存到内部精确匹配表中;需要说明的是,预设次数阈值可以根据实际情况调整,本发明不作限制。
步骤S606,将所述数据包通过在外部匹配表中匹配到的表项指示的输出端口转发;
可以理解的是,步骤S605-步骤S606之间并没有严格的先后执行顺序,并且可以同时执行。
步骤S607,检测该表项的地址信息是否包含外部精确匹配表的地址信息;若检测到该表项的地址信息不包含外部精确匹配表的地址信息,则执行步骤S608;
若外部通用匹配表中存在地址信息与所述目的地址信息匹配的表项,且外部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测该表项的地址信息是否包含所述外部精确匹配表的地址信息;
在一种可选的实施方式中,网络设备可以将在外部通用匹配表中匹配的表项扩展为精确匹配表项,再检测外部精确匹配表中是否存在地址信息与扩展的所述精确匹配表项的地址信息相同的表项,若存在,则说明该表项的地址信息包含所述外部精确匹配表的地址信息;外部通用匹配表以表2为例,外部精确匹配表以表1为例,假设,网络设备在外部通用匹配表中匹配的表项为表项1,将该表项扩展为精确匹配表项时,其各个表项的地址信息为10.10.10.1~10.10.10.254,而外部精确匹配表的表项3的地址信息为10.10.10.8,则说明匹配出的该表项的地址信息包含外部精确匹配表的地址信息,若此时将匹配出的该表项保存到内部通用匹配表中,当再次接收到目的地址信息为10.10.10.8的数据包时,通过查询内部通用匹配表,可以确定该数据包的输出端口为1,但外部精确匹配表记录10.10.10.8的输出端口为3,违背了“精确匹配结果优先于通用匹配结果”这一选择逻辑,因此,不将匹配出的该表项保存到内部通用匹配表;
在另一种可选的实施方式中,网络设备可以将外部精确匹配表中的各个IP地址与在外部通用匹配表中匹配的表项的掩码进行按位“与”运算,若存在等于该网络地址的运算结果,则说明该表项的地址信息包含所述外部精确匹配表的地址信息;外部通用匹配表以表2为例,外部精确匹配表以表1为例,假设,网络设备在外部通用匹配表中匹配的表项为表项1,即网络地址为10.10.10.0,将外部精确匹配表的IP地址与掩码255.255.255.0进行按位“与”运算,存在10.10.10.8与255.255.255.0进行按位“与”运算后的结果等于10.10.10.0,则说明该表项的地址信息包含所述外部精确匹配表的地址信息。
进一步的,网络设备可以先检测该表项是否被标记为已检测,若该表项未被标识为已检测,才检测该表项的地址信息是否包含外部精确匹配表的地址信息,并且,若检测到该表项的地址信息包含所述外部精确匹配表的地址信息时,则标记该表项为已检测。具体的,网络设备在外部通用匹配表中匹配出表项时,可以先检测匹配的该表项是否被标记为已检测,若被标记为已检测,说明匹配的该表项的地址信息已经包含所述外部精确匹配表的地址信息,不执行所述检测该表项的地址信息是否包含所述外部精确匹配表的地址信息的步骤,避免了重复查表;若该表项未被标识为已检测,则执行所述检测该表项的地址信息是否包含所述外部精确匹配表的地址信息的步骤,若检测到该表项的地址信息包含所述外部精确匹配表的地址信息时,则标记该表项为已检测;
其中,网络设备可以先检测外部精确匹配表,若外部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则再检测外部通用匹配表;或者,网络设备可以同时检测外部精确匹配表和外部通用匹配表;
再进一步的,若外部通用匹配表中存在地址信息与所述目的地址信息匹配的表项,且外部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,网络设备还可以先检测匹配到的该表项在预设时长内的命中次数是否达到预设次数阈值,若是,才检测该表项的地址信息是否包含外部精确匹配表的地址信息;
其中,网络设备对表项的标记方式本发明不作限定。
步骤S608,将该表项保存到所述内部通用匹配表中。
若检测到该表项的地址信息不包含所述外部精确匹配表的地址信息,则直接将该表项保存到所述内部通用匹配表中,无需扩展为精确匹配表项,节约了内部存储空间,同时也避免了误删。
进一步的,若外部通用匹配表中存在地址信息与所述目的地址信息匹配的表项,且该表项的地址信息不包含所述外部精确匹配表的地址信息,网络设备还可以将匹配的该表项扩展为精确匹配表项,并将扩展的精确匹配表项保存到内部精确匹配表中;
步骤S609,将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发。
可以理解的是,步骤S608-步骤S609之间并没有严格的先后执行顺序,并且可以同时执行。
在图6所示的实施例中,网络设备先检测内部匹配表是否存在地址信息与数据包的目的地址信息匹配的表项,该内部匹配表包括精确匹配表和通用匹配表若内部匹配表,实现了同时对精确匹配表和通用匹配表的查找加速;
若内部匹配表不存在,再检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项,若外部精确匹配表不存在地址信息与所述目的地址信息匹配的表项且外部通用匹配表存在地址信息与所述目的地址信息匹配的表项,则直接将匹配的表项保存到内部通用匹配表中,无需扩展为精确匹配表项,节约了内部存储空间,同时也避免了误删。
当网络状态或路由策略发生变化时,需要对外部精确匹配表和/或外部通用匹配表进行变更。针对上述双缓存的网络设备,本发明实施例提供了一种外部精确匹配表更新方法和一种外部通用匹配表更新方法。所述方法一方面保证变更能正确地被实施,另一方面也保证变更后不会产生违背“精确匹配结果优先于通用匹配结果”这一选择逻辑的查表路由结果。
本发明第二实施例提供了一种外部精确匹配表更新方法,如图7所示所述方法可以包括:
步骤S701,接收针对外部精确匹配表输入的更新指令;
步骤S702,若所述更新指令为针对所述外部精确匹配表的添加指令,则将添加的表项保存到所述外部精确匹配表中,并删除内部通用匹配表中与添加的所述表项匹配的表项;
网络设备可以将添加的表项的地址信息分别与内部通用匹配表中的各个表项的掩码进行按位“与”运算,若运算结果与其表项的网络地址相同,则将该表项从内部通用匹配表中删除;
步骤S703,若所述更新指令为针对所述外部精确匹配表中的目标表项的删除指令,则删除所述外部精确匹配表和内部精确匹配表中的所述目标表项;
步骤S704,若所述更新指令为针对所述外部精确匹配表中的目标表项的修改指令,则修改所述外部精确匹配表中的所述目标表项,并删除所述内部精确匹配表中的修改前的所述目标表项和内部通用匹配表中与修改后的所述目标表项匹配的表项。
可理解的是,网络设备每次可以删除、添加或修改多个表项,本发明不限定。
本发明第三实施例提供了一种外部通用匹配表更新方法,如图8所示所述方法可以包括:
步骤S801,接收针对外部通用匹配表输入的更新指令;
步骤S802,若所述更新指令为针对所述外部通用匹配表的添加指令,则将添加的表项保存到所述外部通用匹配表中,并删除内部通用匹配表和所述外部通用匹配表中与添加的所述表项匹配的表项;
网络设备可以将针对外部通用匹配表添加的表项的网络地址与内部通用匹配表中的各个表项的网络地址进行比较,若添加的表项的网络地址集合是内部通用匹配表中的表项的网络地址集合的子集,则将其表项从内部通用匹配表中删除;假设,外部通用匹配表添加的表项的网络地址为10.10.10.0,内部通用匹配表存在网络地址为10.10.0.0的表项,由于,10.10.10.0表示的网络地址集合是10.10.0.0表示的网络地址集合的子集,则将10.10.0.0从内部通用匹配表中删除;假设,添加的表项的网络地址为10.10.10.0且输出端口为3,内部通用匹配表中10.10.0.0对应的输出端口为2,若没有将10.10.0.0从内部通用匹配表中删除,当接收到一个目的IP地址为10.10.10.8的数据包,查询内部通用匹配表,确定该数据包的输出端口为2,但实际上该数据包的输出端口为3,造成了输出端口确定失误的问题,若将10.10.0.0从内部通用匹配表中删除,则可以避免此问题;
步骤S803,若所述更新指令为针对所述外部通用匹配表中的目标表项的删除指令,则删除所述外部通用匹配表和内部通用匹配表中的所述目标表项;
步骤S804,若所述更新指令为针对所述外部通用匹配表中的目标表项的修改指令,则修改所述外部通用匹配表中的所述目标表项,并删除内部通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
图9是本发明第四实施例提供的一种网络设备的结构示意图,如图9所示本发明实施例中的网络设备至少可以包括:包接收模块91、内部查表引擎模块92、转发模块93、外部查表引擎模块94、第一检测模块95以及处理模块96,其中:
包接收模块91,用于通过输入端口接收数据包,解析所述数据包获得其目的地址信息;
内部查表引擎模块92,用于检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项;
转发模块93,用于若检测到所述内部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发;
外部查表引擎模块94,用于若检测到所述内部匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述转发模块93还用于:
若检测到所述外部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发;
第一检测模块95,用于若检测到所述外部精确匹配表不存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的外部通用匹配表存在地址信息与所述目的地址信息匹配的表项,则检测所述外部通用匹配表中匹配到的表项的地址信息是否包含所述外部精确匹配表的地址信息;
处理模块96,用于若所述外部通用匹配表中匹配到的表项的地址信息不包含所述外部精确匹配表的地址信息,则将所述外部通用匹配表中匹配到的表项保存到所述内部通用匹配表中。
在一种可选的实施方式中,所述内部查表引擎模块92具体可以用于:
检测所述内部精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若所述内部精确匹配表存在地址信息与所述目的地址信息匹配的表项,则触发所述转发模块93将所述数据包通过在所述内部精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测对应的内部通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若所述内部通用匹配表存在地址信息与所述目的地址信息匹配的表项,则触发所述转发模块93将所述数据包通过在所述内部通用匹配表中匹配到的表项指示的输出端口转发;
若所述内部通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则触发所述外部查表引擎模块94检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项。
在另一种可选的实施方式中,所述内部查表引擎模块具体可以用于:
同时检测所述内部精确匹配表和内部通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若所述内部精确匹配表和内部通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则触发所述转发模块93将所述数据包通过在所述内部精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则触发所述转发模块93将所述数据包通过在所述内部精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则触发所述转发模块93将所述数据包通过在所述内部通用匹配表中匹配到的表项指示的输出端口转发;
若所述内部精确匹配表和内部通用匹配表都不存在地址信息与所述目的地址信息匹配的表项,则触发所述外部查表引擎模块94检测所述输入端口对应的外部匹配表是否存在地址信息与所述目的地址信息匹配的表项。
进一步的,所述外部查表引擎模块94具体可以用于:
检测所述外部精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若所述外部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测对应的外部通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若所述外部通用匹配表存在地址信息与所述目的地址信息匹配的表项,则触发所述转发模块93将所述数据包通过在所述外部通用匹配表中匹配到的表项指示的输出端口转发,同时,还可以触发第一检测模块95检测该表项的地址信息是否包含所述外部精确匹配表的地址信息;
若该表项的地址信息不包含所述外部精确匹配表的地址信息,则触发处理模块96将该表项保存到所述内部通用匹配表中。
进一步的,所述外部查表引擎模块94具体还可以用于:
同时检测所述外部精确匹配表和外部通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述转发模块93具体还用于:
若所述外部精确匹配表和外部通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部通用匹配表中匹配到的表项指示的输出端口转发。
再进一步的,若所述外部精确匹配表存在地址信息与所述目的地址信息匹配的表项,所述处理模块96还用于:
将该表项保存到所述内部精确匹配表中。
请参阅图10,图10是本发明第五实施例提供的另一种网络设备的结构示意图,如图10所示,所述网络设备9还可以包括第二检测模块97以及标记模块98,其中:
第二检测模块97,用于检测所述外部通用匹配表中匹配到的表项是否被标记为已检测,若检测到所述外部通用匹配表中匹配到的表项未被标识为已检测,则触发所述第一检测模块95检测所述外部通用匹配表中匹配到的表项的地址信息是否包含所述外部精确匹配表的地址信息;
标记模块98,用于若检测到所述外部通用匹配表中匹配到的表项的地址信息包含所述外部精确匹配表的地址信息时,则标记所述外部通用匹配表中匹配到的表项为已检测。
再进一步的,如图10所示所述网络设备9还可以包括:
匹配表更新模块99,用于接收针对所述外部精确匹配表输入的添加指令,并将添加的表项保存到所述外部精确匹配表中,并删除所述内部通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部精确匹配表中的目标表项输入的删除指令,并删除所述外部精确匹配表和所述内部精确匹配表中的所述目标表项;和/或,
接收针对所述外部精确匹配表中的目标表项输入的修改指令,修改所述外部精确匹配表中的所述目标表项,并删除所述内部精确匹配表中的修改前的所述目标表项和所述内部通用匹配表中与修改后的所述目标表项匹配的表项;和/或,
接收针对所述外部通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部通用匹配表中,并删除所述内部通用匹配表和所述外部通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部通用匹配表中的目标表项输入的删除指令,并删除所述外部通用匹配表和所述内部通用匹配表中的所述目标表项;和/或,
接收针对所述外部通用匹配表中的目标表项输入的修改指令,修改所述外部通用匹配表中的所述目标表项,并删除所述内部通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
可理解的是,本实施例的网络设备9的各功能模块的功能可根据上述方法实施例中的方法具体实现,可以具体对应参考图6或图8方法实施例的相关描述,此处不再赘述。
图11是本发明第六实施例提供的又一种网络设备的结构示意图,如图11所示,该网络设备11可以包括:至少一个处理器111,例如CPU,至少一个网络端口112,至少一个用户接口113,存储器114,至少一个通信总线115。其中,通信总线115用于实现这些组件之间的连接通信。存储器114可以是高速RAM存储器,也可以是非易失的存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器114还可以是至少一个位于远离前述处理器111的存储装置。存储器114中存储一组程序代码,且处理器111用于调用存储器114中存储的程序代码,用于执行以下操作:
通过网络端口112的输入端口接收数据包,解析所述数据包获得其目的地址信息;
检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述内部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发;
若检测到所述内部匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述外部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发;
若检测到所述外部精确匹配表不存在地址信息与所述目的地址信息匹配的表项且外部通用匹配表存在地址信息与所述目的地址信息匹配的表项,则检测所述外部通用匹配表中匹配到的表项的地址信息是否包含所述外部精确匹配表的地址信息;
若所述外部通用匹配表中匹配到的表项的地址信息不包含所述外部精确匹配表的地址信息,则将所述外部通用匹配表中匹配到的表项保存到所述内部通用匹配表中。
在一种可选的实施方式中,处理器111调用存储器114中存储的程序代码检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项具体可以为:
检测所述内部精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述内部精确匹配表存在地址信息与所述目的地址信息匹配的表项,则执行将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发的步骤;
若检测到所述内部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测对应的内部通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述内部通用匹配表存在地址信息与所述目的地址信息匹配的表项,则执行所述将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发的步骤;
若检测到所述内部通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则执行所述检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项的步骤。
在另一种可选的实施方式中,处理器111调用存储器114中存储的程序代码检测所述输入端口对应的内部匹配表是否存在地址信息与所述目的地址信息匹配的表项具体可以为:
同时检测所述内部精确匹配表和内部通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若所述内部精确匹配表和内部通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则执行所述将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发的步骤;
若所述内部精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部通用匹配表中匹配到的表项指示的输出端口转发;
若所述内部精确匹配表和内部通用匹配表都不存在地址信息与所述目的地址信息匹配的表项,则执行所述检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项的步骤。
进一步的,处理器111调用存储器114中存储的程序代码检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项具体可以为:
检测所述外部精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若所述外部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测对应的外部通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若所述外部通用匹配表存在地址信息与所述目的地址信息匹配的表项,则执行所述将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发,同时,还可以执行所述检测所述外部通用匹配表中匹配到的表项的地址信息是否包含所述外部精确匹配表的地址信息的步骤;
若所述外部通用匹配表中匹配到的表项的地址信息不包含所述外部精确匹配表的地址信息,则执行所述将所述外部通用匹配表中匹配到的表项保存到所述内部通用匹配表中。
进一步的,处理器111调用存储器114中存储的程序代码检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项具体可以为:
同时检测所述外部精确匹配表和外部通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若所述外部精确匹配表和外部通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则执行所述将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发的步骤;
若所述外部精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部通用匹配表中匹配到的表项指示的输出端口转发。
再进一步的,若所述外部精确匹配表存在地址信息与所述目的地址信息匹配的表项,处理器111还可以执行以下操作:
将所述外部通用匹配表中匹配到的表项保存到所述内部精确匹配表中。
再进一步的,处理器111还可以执行以下操作
检测所述外部通用匹配表中匹配到的表项是否被标记为已检测,若所述外部通用匹配表中匹配到的表项未被标识为已检测,则执行所述检测所述外部通用匹配表中匹配到的表项的地址信息是否包含所述外部精确匹配表的地址信息的步骤;
若检测到所述外部通用匹配表中匹配到的表项的地址信息包含所述外部精确匹配表的地址信息时,则标记所述外部通用匹配表中匹配到的表项为已检测。
再进一步的,处理器111还可以执行以下操作:
通过用户端口113接收针对所述外部精确匹配表输入的添加指令,并将添加的表项保存到所述外部精确匹配表中,并删除所述内部通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部精确匹配表中的目标表项输入的删除指令,并删除所述外部精确匹配表和所述内部精确匹配表中的所述目标表项;和/或,
接收针对所述外部精确匹配表中的目标表项输入的修改指令,修改所述外部精确匹配表中的所述目标表项,并删除所述内部精确匹配表中的修改前的所述目标表项和所述内部通用匹配表中与修改后的所述目标表项匹配的表项;和/或,
接收针对所述外部通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部通用匹配表中,并删除所述内部通用匹配表和所述外部通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部通用匹配表中的目标表项输入的删除指令,并删除所述外部通用匹配表和所述内部通用匹配表中的所述目标表项;和/或,
接收针对所述外部通用匹配表中的目标表项输入的修改指令,修改所述外部通用匹配表中的所述目标表项,并删除所述内部通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
可理解的是,本实施例的网络设备9的各功能模块的功能可根据上述方法实施例中的方法具体实现,可以具体对应参考图6或图8方法实施例的相关描述,此处不再赘述。
可理解的是,本实施例的网络设备11的各功能模块的功能可根据上述方法实施例中的方法具体实现,可以具体对应参考图6或图9方法实施例的相关描述,此处不再赘述。
本发明实施例还提出了一种计算机存储介质,所述计算机存储介质存储有程序,所述程序执行时包括本发明实施例结合图6~图8所描述的方法中的部分或全部的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (42)
1.一种路由查询方法,其特征在于,包括:
通过输入端口接收数据包,解析所述数据包获得其目的地址信息;
检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项,所述内部匹配表包括精确匹配表和通用匹配表;
若检测到所述内部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发;
若检测到所述内部匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项,所述外部匹配表包括精确匹配表和通用匹配表;
若检测到所述外部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发;
若检测到所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息;
若检测到所述外部匹配表的通用匹配表中匹配到的表项的地址信息不包含所述外部匹配表的精确匹配表的地址信息,则将所述外部匹配表的通用匹配表中匹配到的表项保存到所述内部匹配表的通用匹配表中。
2.如权利要求1所述的方法,其特征在于,所述检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
检测所述内部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述内部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述内部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
3.如权利要求1所述的方法,其特征在于,所述检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
同时检测所述内部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发包括:
若所述内部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
4.如权利要求1所述的方法,其特征在于,所述检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
检测所述外部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
5.如权利要求2所述的方法,其特征在于,所述检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
检测所述外部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
6.如权利要求3所述的方法,其特征在于,所述检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
检测所述外部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
7.如权利要求1所述的方法,其特征在于,所述检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
同时检测所述外部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发包括:
若所述外部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
8.如权利要求2所述的方法,其特征在于,所述检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
同时检测所述外部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发包括:
若所述外部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
9.如权利要求3所述的方法,其特征在于,所述检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项包括:
同时检测所述外部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发包括:
若所述外部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
10.如权利要求4-9任一项所述的方法,其特征在于,若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项,所述方法还包括:
将所述外部匹配表的精确匹配表中匹配到的表项保存到所述内部匹配表的精确匹配表中。
11.如权利要求1-9任一项所述的方法,其特征在于,所述检测所述外部匹配表的通用匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息之前,还包括:
检测所述外部匹配表的通用匹配表中匹配到的表项是否被标记为已检测;
若检测到所述外部匹配表的通用匹配表中匹配到的表项未被标识为已检测,则执行所述检测所述外部匹配表的通用匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息的步骤;
所述方法还包括:若检测到所述外部匹配表的通用匹配表中匹配到的表项的地址信息包含所述外部匹配表的精确匹配表的地址信息时,则标记所述外部匹配表的通用匹配表中匹配到的表项为已检测。
12.如权利要求10所述的方法,其特征在于,所述检测所述外部匹配表的通用匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息之前,还包括:
检测所述外部匹配表的通用匹配表中匹配到的表项是否被标记为已检测;
若检测到所述外部匹配表的通用匹配表中匹配到的表项未被标识为已检测,则执行所述检测所述外部匹配表的通用匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息的步骤;
所述方法还包括:若检测到所述外部匹配表的通用匹配表中匹配到的表项的地址信息包含所述外部匹配表的精确匹配表的地址信息时,则标记所述外部匹配表的通用匹配表中匹配到的表项为已检测。
13.如权利要求1-9任一项所述的方法,其特征在于,还包括:
接收针对所述外部匹配表的精确匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的精确匹配表中,并删除所述内部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的精确匹配表和所述内部匹配表的精确匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的修改指令,修改所述外部匹配表的精确匹配表中的所述目标表项,并删除所述内部匹配表的精确匹配表中的修改前的所述目标表项和所述内部匹配表的通用匹配表中与修改后的所述目标表项匹配的表项。
14.如权利要求10所述的方法,其特征在于,还包括:
接收针对所述外部匹配表的精确匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的精确匹配表中,并删除所述内部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的精确匹配表和所述内部匹配表的精确匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的修改指令,修改所述外部匹配表的精确匹配表中的所述目标表项,并删除所述内部匹配表的精确匹配表中的修改前的所述目标表项和所述内部匹配表的通用匹配表中与修改后的所述目标表项匹配的表项。
15.如权利要求11所述的方法,其特征在于,还包括:
接收针对所述外部匹配表的精确匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的精确匹配表中,并删除所述内部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的精确匹配表和所述内部匹配表的精确匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的修改指令,修改所述外部匹配表的精确匹配表中的所述目标表项,并删除所述内部匹配表的精确匹配表中的修改前的所述目标表项和所述内部匹配表的通用匹配表中与修改后的所述目标表项匹配的表项。
16.如权利要求12所述的方法,其特征在于,还包括:
接收针对所述外部匹配表的精确匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的精确匹配表中,并删除所述内部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的精确匹配表和所述内部匹配表的精确匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的修改指令,修改所述外部匹配表的精确匹配表中的所述目标表项,并删除所述内部匹配表的精确匹配表中的修改前的所述目标表项和所述内部匹配表的通用匹配表中与修改后的所述目标表项匹配的表项。
17.如权利要求1-9任一项所述的方法,其特征在于,还包括:
接收针对所述外部匹配表的通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的通用匹配表中,并删除所述内部匹配表的通用匹配表和所述外部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的通用匹配表和所述内部匹配表的通用匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的修改指令,修改所述外部匹配表的通用匹配表中的所述目标表项,并删除所述内部匹配表的通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
18.如权利要求10所述的方法,其特征在于,还包括:
接收针对所述外部匹配表的通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的通用匹配表中,并删除所述内部匹配表的通用匹配表和所述外部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的通用匹配表和所述内部匹配表的通用匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的修改指令,修改所述外部匹配表的通用匹配表中的所述目标表项,并删除所述内部匹配表的通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
19.如权利要求11所述的方法,其特征在于,还包括:
接收针对所述外部匹配表的通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的通用匹配表中,并删除所述内部匹配表的通用匹配表和所述外部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的通用匹配表和所述内部匹配表的通用匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的修改指令,修改所述外部匹配表的通用匹配表中的所述目标表项,并删除所述内部匹配表的通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
20.如权利要求12所述的方法,其特征在于,还包括:
接收针对所述外部匹配表的通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的通用匹配表中,并删除所述内部匹配表的通用匹配表和所述外部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的通用匹配表和所述内部匹配表的通用匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的修改指令,修改所述外部匹配表的通用匹配表中的所述目标表项,并删除所述内部匹配表的通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
21.一种网络设备,其特征在于,包括:
包接收模块,用于通过输入端口接收数据包,解析所述数据包获得其目的地址信息;
内部查表引擎模块,用于检测内部匹配表是否存在地址信息与所述目的地址信息匹配的表项,所述内部匹配表包括精确匹配表和通用匹配表;
转发模块,用于若检测到所述内部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表中匹配到的表项指示的输出端口转发;
外部查表引擎模块,用于若检测到所述内部匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测外部匹配表是否存在地址信息与所述目的地址信息匹配的表项,所述外部匹配表包括精确匹配表和通用匹配表;
所述转发模块还用于:
若检测到所述外部匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表中匹配到的表项指示的输出端口转发;
第一检测模块,用于若检测到所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息;
处理模块,用于若检测到所述外部匹配表的通用匹配表中匹配到的表项的地址信息不包含所述外部匹配表的精确匹配表的地址信息,则将所述外部匹配表的通用匹配表中匹配到的表项保存到所述内部匹配表的通用匹配表中。
22.如权利要求21所述的网络设备,其特征在于,所述内部查表引擎模块具体用于:
检测所述内部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述内部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述内部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
23.如权利要求21所述的网络设备,其特征在于,所述内部查表引擎模块具体用于:
同时检测所述内部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述转发模块还用于:
若所述内部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述内部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述内部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述内部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
24.如权利要求21所述的网络设备,其特征在于,所述外部查表引擎模块具体用于:
检测所述外部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
25.如权利要求22所述的网络设备,其特征在于,所述外部查表引擎模块具体用于:
检测所述外部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
26.如权利要求23所述的网络设备,其特征在于,所述外部查表引擎模块具体用于:
检测所述外部匹配表的精确匹配表是否存在地址信息与所述目的地址信息匹配的表项;
若检测到所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则检测所述外部匹配表的通用匹配表是否存在地址信息与所述目的地址信息匹配的表项。
27.如权利要求21所述的网络设备,其特征在于,所述外部查表引擎模块具体用于:
同时检测所述外部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述转发模块具体还用于:
若所述外部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
28.如权利要求22所述的网络设备,其特征在于,所述外部查表引擎模块具体用于:
同时检测所述外部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述转发模块具体还用于:
若所述外部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
29.如权利要求23所述的网络设备,其特征在于,所述外部查表引擎模块具体用于:
同时检测所述外部匹配表的精确匹配表和通用匹配表是否存在地址信息与所述目的地址信息匹配的表项;
所述转发模块具体还用于:
若所述外部匹配表的精确匹配表和通用匹配表都存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的通用匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的精确匹配表中匹配到的表项指示的输出端口转发;
若所述外部匹配表的通用匹配表存在地址信息与所述目的地址信息匹配的表项且所述外部匹配表的精确匹配表不存在地址信息与所述目的地址信息匹配的表项,则将所述数据包通过在所述外部匹配表的通用匹配表中匹配到的表项指示的输出端口转发。
30.如权利要求24-29任一项所述的网络设备,其特征在于,所述处理模块还用于:
若所述外部匹配表的精确匹配表存在地址信息与所述目的地址信息匹配的表项,则将所述外部匹配表的精确匹配表中匹配到的表项保存到所述内部匹配表的精确匹配表中。
31.如权利要求21-29任一项所述的网络设备,其特征在于,还包括:
第二检测模块,用于检测所述外部匹配表的精确匹配表中匹配到的表项是否被标记为已检测,若检测到所述外部匹配表的精确匹配表中匹配到的表项未被标识为已检测,则触发所述第一检测模块检测所述外部匹配表的通用匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息;
标记模块,用于若检测到所述外部匹配表的通用匹配表中匹配到的表项的地址信息包含所述外部匹配表的精确匹配表的地址信息时,则标记所述外部匹配表的通用匹配表中匹配到的表项为已检测。
32.如权利要求30所述的网络设备,其特征在于,还包括:
第二检测模块,用于检测所述外部匹配表的精确匹配表中匹配到的表项是否被标记为已检测,若检测到所述外部匹配表的精确匹配表中匹配到的表项未被标识为已检测,则触发所述第一检测模块检测所述外部匹配表的通用匹配表中匹配到的表项的地址信息是否包含所述外部匹配表的精确匹配表的地址信息;
标记模块,用于若检测到所述外部匹配表的通用匹配表中匹配到的表项的地址信息包含所述外部匹配表的精确匹配表的地址信息时,则标记所述外部匹配表的通用匹配表中匹配到的表项为已检测。
33.如权利要求21-29任一项所述的网络设备,其特征在于,还包括:
匹配表更新模块,用于接收针对所述外部匹配表的精确匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的精确匹配表中,并删除所述内部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的精确匹配表和所述内部匹配表的精确匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的修改指令,修改所述外部匹配表的精确匹配表中的所述目标表项,并删除所述内部匹配表的精确匹配表中的修改前的所述目标表项和所述内部匹配表的通用匹配表中与修改后的所述目标表项匹配的表项。
34.如权利要求30所述的网络设备,其特征在于,还包括:
匹配表更新模块,用于接收针对所述外部匹配表的精确匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的精确匹配表中,并删除所述内部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的精确匹配表和所述内部匹配表的精确匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的修改指令,修改所述外部匹配表的精确匹配表中的所述目标表项,并删除所述内部匹配表的精确匹配表中的修改前的所述目标表项和所述内部匹配表的通用匹配表中与修改后的所述目标表项匹配的表项。
35.如权利要求31所述的网络设备,其特征在于,还包括:
匹配表更新模块,用于接收针对所述外部匹配表的精确匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的精确匹配表中,并删除所述内部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的精确匹配表和所述内部匹配表的精确匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的修改指令,修改所述外部匹配表的精确匹配表中的所述目标表项,并删除所述内部匹配表的精确匹配表中的修改前的所述目标表项和所述内部匹配表的通用匹配表中与修改后的所述目标表项匹配的表项。
36.如权利要求32所述的网络设备,其特征在于,还包括:
匹配表更新模块,用于接收针对所述外部匹配表的精确匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的精确匹配表中,并删除所述内部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的精确匹配表和所述内部匹配表的精确匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的精确匹配表中的目标表项输入的修改指令,修改所述外部匹配表的精确匹配表中的所述目标表项,并删除所述内部匹配表的精确匹配表中的修改前的所述目标表项和所述内部匹配表的通用匹配表中与修改后的所述目标表项匹配的表项。
37.如权利要求21-29任一项所述的网络设备,其特征在于,还包括:
匹配表更新模块,用于接收针对所述外部匹配表的通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的通用匹配表中,并删除所述内部匹配表的通用匹配表和所述外部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的通用匹配表和所述内部匹配表的通用匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的修改指令,修改所述外部匹配表的通用匹配表中的所述目标表项,并删除所述内部匹配表的通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
38.如权利要求30所述的网络设备,其特征在于,还包括:
匹配表更新模块,用于接收针对所述外部匹配表的通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的通用匹配表中,并删除所述内部匹配表的通用匹配表和所述外部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的通用匹配表和所述内部匹配表的通用匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的修改指令,修改所述外部匹配表的通用匹配表中的所述目标表项,并删除所述内部匹配表的通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
39.如权利要求31所述的网络设备,其特征在于,还包括:
匹配表更新模块,用于接收针对所述外部匹配表的通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的通用匹配表中,并删除所述内部匹配表的通用匹配表和所述外部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的通用匹配表和所述内部匹配表的通用匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的修改指令,修改所述外部匹配表的通用匹配表中的所述目标表项,并删除所述内部匹配表的通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
40.如权利要求32所述的网络设备,其特征在于,还包括:
匹配表更新模块,用于接收针对所述外部匹配表的通用查找匹配表输入的添加指令,并将添加的表项保存到所述外部匹配表的通用匹配表中,并删除所述内部匹配表的通用匹配表和所述外部匹配表的通用匹配表中与添加的所述表项匹配的表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的删除指令,并删除所述外部匹配表的通用匹配表和所述内部匹配表的通用匹配表中的所述目标表项;和/或,
接收针对所述外部匹配表的通用匹配表中的目标表项输入的修改指令,修改所述外部匹配表的通用匹配表中的所述目标表项,并删除所述内部匹配表的通用匹配表中与修改前和修改后的所述目标表项匹配的表项。
41.一种网络设备,其特征在于,所述网络设备包括网络端口、存储器以及处理器,其中,所述存储器中存储一组程序,且处理器用于调用所述存储器中存储的程序,使得所述网络设备执行权利要求1至20任一项所述的方法。
42.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-20中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/078442 WO2016176853A1 (zh) | 2015-05-07 | 2015-05-07 | 一种路由查询方法和网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106416150A CN106416150A (zh) | 2017-02-15 |
CN106416150B true CN106416150B (zh) | 2020-01-10 |
Family
ID=57217562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580001178.0A Active CN106416150B (zh) | 2015-05-07 | 2015-05-07 | 一种路由查询方法和网络设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106416150B (zh) |
WO (1) | WO2016176853A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259343B (zh) * | 2017-06-14 | 2020-08-04 | 新华三技术有限公司 | 路由策略的匹配方法及装置 |
CN110967030A (zh) * | 2018-09-30 | 2020-04-07 | 上海擎感智能科技有限公司 | 一种用于车载导航的信息处理方法及其装置 |
CN113438162B (zh) * | 2021-05-21 | 2022-11-04 | 翱捷科技股份有限公司 | 一种二层转发的实现方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710879A (zh) * | 2004-06-17 | 2005-12-21 | 株式会社日立制作所 | 数据包传送装置 |
CN101079817A (zh) * | 2007-07-04 | 2007-11-28 | 中兴通讯股份有限公司 | 一种路由查找方法及系统 |
CN102291472A (zh) * | 2011-09-09 | 2011-12-21 | 华为数字技术有限公司 | 一种网络地址查找方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2838590B1 (fr) * | 2002-04-16 | 2005-12-30 | St Microelectronics Sa | Procede de routage pour un reseau de telecommunication et routeur pour la mise en oeuvre dudit procede |
CN100452732C (zh) * | 2003-08-19 | 2009-01-14 | 华为技术有限公司 | 路由查找方法及其系统 |
JP2005117213A (ja) * | 2003-10-06 | 2005-04-28 | Nippon Telegr & Teleph Corp <Ntt> | 経路表および経路検索方法 |
CN102325077B (zh) * | 2011-05-25 | 2015-02-04 | 杭州华三通信技术有限公司 | 分支机构间的通信方法及分支机构的出口路由器 |
-
2015
- 2015-05-07 WO PCT/CN2015/078442 patent/WO2016176853A1/zh active Application Filing
- 2015-05-07 CN CN201580001178.0A patent/CN106416150B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710879A (zh) * | 2004-06-17 | 2005-12-21 | 株式会社日立制作所 | 数据包传送装置 |
CN101079817A (zh) * | 2007-07-04 | 2007-11-28 | 中兴通讯股份有限公司 | 一种路由查找方法及系统 |
CN102291472A (zh) * | 2011-09-09 | 2011-12-21 | 华为数字技术有限公司 | 一种网络地址查找方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016176853A1 (zh) | 2016-11-10 |
CN106416150A (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109921996B (zh) | 一种高性能的OpenFlow虚拟流表查找方法 | |
US8750144B1 (en) | System and method for reducing required memory updates | |
JP4614946B2 (ja) | 限定サイズを有する限定数のサブデータベースに分割された転送データベースを効率的にサーチするシステムと方法 | |
EP3777055B1 (en) | Longest prefix matching | |
CN107547407B (zh) | 报文传输方法、装置和实现装置 | |
CN109921995B (zh) | 一种配置地址表的方法、fpga和应用该fpga的网络设备 | |
US20170366502A1 (en) | IP Route Caching with Two Search Stages on Prefix Length | |
CN104579940A (zh) | 查找访问控制列表的方法及装置 | |
CN113519144A (zh) | 用于网络设备的精确匹配和三元内容可寻址存储器(tcam)混合查找 | |
CN106416150B (zh) | 一种路由查询方法和网络设备 | |
CN113709110A (zh) | 一种软硬结合的入侵检测系统及方法 | |
Yang et al. | Fast OpenFlow table lookup with fast update | |
US11516133B2 (en) | Flow cache management | |
CN110557335B (zh) | 三态内容寻址存储器tcam表项处理方法及装置 | |
US20040107295A1 (en) | Method for processing a data packet | |
WO2006063217A1 (en) | Maskable content addressable memory | |
JP6678401B2 (ja) | 変更のためにパケットを個々のレイヤに分割し、変更後のレイヤを情報処理で継合する方法およびその装置 | |
US20230041395A1 (en) | Method and Device for Processing Routing Table Entries | |
KR100456671B1 (ko) | 네트워크 라우터의 고속 패킷 전달을 위한 병렬 룩업 엔진및 그 방법 | |
EP3255844B1 (en) | Packet processing method and forwarding element | |
US7843927B1 (en) | Methods, systems, and computer program products for routing packets at a multi-mode layer 3 packet forwarding device | |
CN108777654B (zh) | 报文转发方法及路由设备 | |
CN114389987B (zh) | 数据包路由方法、计算机装置和存储介质 | |
CN110971526A (zh) | 一种混合交换机fdb资源的流表扩展方法及装置 | |
CN113824814B (zh) | 一种转发表的地址匹配方法、装置、网络设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |