本发明涉及ip(internalprotocol,网络协议)通信技术领域,具体涉及一种ip五元组表项的查找方法及查找系统。
背景技术:
当前,家庭网关设备在光接入网中获得了大规模应用。家庭网关中路由转发功能是根据ip五元组作为流处理匹配规则来实现的,ip五元组包括源ip地址、目的ip地址、协议类型、源端口号和目的端口号,协议类型包括tcp(transmissioncontrolprotocol,传输控制协议)和udp(userdatagramprotocol用户数据报协议)。
家庭网关的下挂设备存在以下两个特点:1、下挂设备数量有限,例如,某运营商智能网关中所需要支持的下挂主机少于256个;2、下挂设备的地址有固定的前缀段,例如,ipv4(internalprotocolversion4,互联网协议第4版)家庭网关缺省lan(localareanetwork,局域网)侧ip地址段为192.168.1.0/24,ipv6(internalprotocolversion6,互联网协议第6版)地址也存在上述类似特点。
随着工信部对ipv6网络部署的推进,终端设备需增强ipv6支持能力,家庭网关设备新部署的默认配置支持双栈,为网关下挂设备分配ipv6地址。为解决ipv4地址空间的不足,ipv6采用了128位的地址空间,其地址数量近乎无限,但ipv6地址位宽的增大也使ip五元组的位宽增加,且家庭网关对处理ip五元组并发连接数量的要求越来越高,而家庭网关中路由转发功能是根据ip五元组作为流处理匹配规则来实现的,ip五元组位宽的增加导致相应流处理所需的流表越来越大。
技术实现要素:
基于家庭网关下挂设备的两个特点,针对现有技术中存在的缺陷,本发明的目的在于提供一种ip五元组表项的查找方法及查找系统,能够缩短ip五元组的长度,在保证路由转发性能的前提下,显著地降低ip五元组查找时所需的表项资源。
为达到以上目的,本发明提供的一种ip五元组表项的查找方法,包括以下步骤:
查找归一表,将上行方向的源ip地址映射为源userid,下行方向的目的ip地址映射为目的userid;
将原ip五元组中上行方向的源ip地址替换为源userid,下行方向的目的ip地址替换为目的userid,构成新ip五元组,并在新ip五元组中添加用于标记上下行方向的标识;
使用新ip五元组进行路由表项查找。
在上述方案的基础上,所述查找归一表,将源ip地址映射为源userid,目的ip地址映射为目的userid,具体步骤为:上行方向使用源ip地址查找归一表,将源ip地址映射为源userid,下行方向使用目的ip地址查找归一表,目的ip地址映射为目的userid。
在上述方案的基础上,
所述新ip五元组包括上行ip五元组和下行ip五元组;
所述上行ip五元组包括标识、源userid、目的ip地址、协议类型、源端口号和目的端口号;
所述下行ip五元组包括标识、源ip地址、目的userid、协议类型、源端口号和目的端口号。
在上述方案的基础上,所述将源ip地址映射为源userid,目的ip地址映射为目的userid,其中,映射包括全映射场景、前缀映射场景、复合映射场景和可配置映射场景。
在上述方案的基础上,
所述全映射场景为使用源ip地址或目的ip地址以全匹配方式进行映射;
所述前缀映射场景为使用源ip地址或目的ip地址的ip地址前缀进行映射;
所述复合映射场景为首先使用源ip地址或目的ip地址的ip地址前缀进行映射,然后将映射后得到的地址与源ip地址或目的ip地址的ip地址前缀外的地址进行拼接,使用拼接的地址进行映射;
所述可配置映射场景为选择全映射场景的映射方式或复合映射场景的映射方式进行映射。
本发明提供一种ip五元组表项的查找系统,包括:
映射模块,其用于查找归一表,将上行方向的源ip地址映射为源userid,下行方向的目的ip地址映射为目的userid;
替换模块,其用于将原ip五元组中上行方向的源ip地址替换为源userid,下行方向的目的ip地址替换为目的userid,构成新ip五元组,并在新ip五元组中添加用于标记上下行方向的标识;
查找模块,其用于使用新ip五元组进行路由表项查找。
在上述方案的基础上,所述映射模块查找归一表,将源ip地址映射为源userid,目的ip地址映射为目的userid,具体过程为:上行方向使用源ip地址查找归一表,将源ip地址映射为源userid,下行方向使用目的ip地址查找归一表,目的ip地址映射为目的userid。
在上述方案的基础上,
所述新ip五元组包括上行ip五元组和下行ip五元组;
所述上行ip五元组包括标识、源userid、目的ip地址、协议类型、源端口号和目的端口号;
所述下行ip五元组包括标识、源ip地址、目的userid、协议类型、源端口号和目的端口号。
在上述方案的基础上,所述映射模块将源ip地址映射为源userid,目的ip地址映射为目的userid,其中,映射包括全映射场景、前缀映射场景、复合映射场景和可配置映射场景。
在上述方案的基础上,
所述全映射场景为使用源ip地址或目的ip地址以全匹配方式进行映射;
所述前缀映射场景为使用源ip地址或目的ip地址的ip地址前缀进行映射;
所述复合映射场景为首先使用源ip地址或目的ip地址的ip地址前缀进行映射,然后将映射后得到的地址与源ip地址或目的ip地址的ip地址前缀外的地址进行拼接,使用拼接的地址进行映射;
所述可配置映射场景为选择全映射场景的映射方式或复合映射场景的映射方式进行映射。
与现有技术相比,本发明的优点在于:通过预先查找归一表的方式,将源ip地址映射为源userid,目的ip地址映射为目的userid,构成新ip五元组,缩短ip五元组的长度,从而在保证路由转发性能的前提下,显著地降低ip五元组查找时所需的表项资源。
附图说明
图1为本发明实施例中一种ip五元组表项的查找方法的流程图;
图2为本发明实施例中全映射场景的示意图;
图3为本发明实施例中前缀映射场景的示意图;
图4为本发明实施例中复合映射场景的示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例提供一种ip五元组表项的查找方法,通过预先对源ip地址和目的ip地址进行归一查找,缩短ip五元组的长度,在保证路由转发性能的前提下,显著地降低ip五元组查找时所需的表项资源。本发明实施例还相应地提供了一种ip五元组表项的查找系统。
参见图1所示,本发明实施例提供的一种ip五元组表项的查找方法,包括以下步骤:
s1:查找归一表,将上行方向的源ip地址映射为源user(用户)id,下行方向的目的ip地址映射为目的userid。归一表是对用户侧ip地址进行归一化处理的表项,用于将用户侧ip地址归一化到userid的区间内。
本发明实施例中,查找归一表,将源ip地址映射为源userid,目的ip地址映射为目的userid,具体步骤为:上行方向使用源ip地址查找归一表,将源ip地址映射为源userid,下行方向使用目的ip地址查找归一表,目的ip地址映射为目的userid。对于家庭网关而言,上行方向是指从lan(localareanetwork,局域网)侧到wan(wideareanetwork,广域网)侧。
s2:将原ip五元组中上行方向的源ip地址替换为源userid,下行方向的目的ip地址替换为目的userid,构成新ip五元组,并在新ip五元组中添加用于标记上下行方向的标识。因为存在上行方向和下行方向,故构成的新ip五元组也包括上行ip五元组和下行ip五元组,上行ip五元组包括标识、源userid、目的ip地址、协议类型、源端口号和目的端口号,下行ip五元组包括标识、源ip地址、目的userid、协议类型、源端口号和目的端口号。上行ip五元组中的标识用于标记上行方向,下行ip五元组中的标识用于标记下行方向。
s3:使用新ip五元组进行路由表项查找。当新ip五元组与路由表项的key值(键值)匹配时,输出对应的路由行为,完成数据流对应的处理。
本发明实施例的ip五元组表项的查找方法,通过预先查找归一表的方式,将源ip地址映射为源userid,目的ip地址映射为目的userid,构成新ip五元组,缩短ip五元组的长度,从而在保证路由转发性能的前提下,显著地降低ip五元组查找时所需的表项资源。
可选地,在上述一种ip五元组表项的查找方法的基础上,本发明实施例提供的一种ip五元组表项的查找方法的第一个可选实施例中,将源ip地址映射为源userid,目的ip地址映射为目的userid,其中,映射包括全映射场景、前缀映射场景、复合映射场景和可配置映射场景。对于前缀映射场景,源userid/目的userid的数据位宽由源ip地址/目的ip地址前缀地址种类和除前缀外地址数据位宽决定;其它场景下源userid/目的userid的数据位宽仅由下挂设备数量决定。本发明实施例以下所举实例中,下挂设备数量小于256。
其中,全映射场景为使用源ip地址或目的ip地址以全匹配方式进行映射。例如,参见图2所示,为全映射场景模式下的ipv6五元组表项查找应用场景,对于上行方向的原ip五元组,通过查找归一表,归一表中,源ip地址fe80::10对应的映射结果为1,故构成的新ip五元组中,源ip地址fe80::10变成源userid1,其它项保持不变,且图2中,flag表示标识,up表示上行方向。
前缀映射场景为使用源ip地址或目的ip地址的ip地址前缀进行映射,映射后,将映射结果与源ip地址或目的ip地址前缀外的地址拼接,即可得到源userid或目的userid。参见图3所示,为前缀映射场景的ipv4五元组表项查找应用场景,存在两种情况,一种是ip地址前缀可映射为1bit数值,范围为0-1,并作为源userid/目的userid的最高bit;另一种是除前缀外的地址有8bit,源userid/目的userid的数据位宽为9bit,可表示0-511。例如,目的ip地址192.168.1.2的ip地址前缀为192.168.1.0/24,前缀外的地址为2,对于下行方向的原ip五元组,使用目的ip地址的ip地址前缀查找归一表,归一表中,ip地址前缀192.168.1.0/24对应的映射结果为0,故构成的新ip五元组中,目的ip地址192.168.1.2变成目的userid为0×256+2=2,其它项保持不变。例如,目的ip地址192.168.10.2的ip地址前缀为192.168.10.0/24,前缀外的地址为2,对于下行方向的原ip五元组,使用目的ip地址的ip地址前缀查找归一表,归一表中,ip地址前缀192.168.10.0/24对应的映射结果为1,故构成的新ip五元组中,目的ip地址192.168.10.2变成目的userid为1×256+2=258,其它项保持不变。图3中,flag表示标识,down表示下行方向。
复合映射场景为首先使用源ip地址或目的ip地址的ip地址前缀进行映射,然后将映射后得到的地址与源ip地址或目的ip地址的ip地址前缀外的地址进行拼接,使用拼接的地址进行映射。例如,参见图4所示,为复合映射场景下的ipv6五元组表项查找应用场景,对于上行方向的原ip五元组,源ip地址的ip地址前缀为fe80::0/16,ip地址前缀外的地址为3910::3,首先使用ip地址前缀查找归一表,归一表中,ip地址前缀fe80::0/16对应的映射结果为0,然后将映射后得到的地址和ip地址前缀外的地址3910::3拼接,拼接得到的地址为{0,3910::3},然后使用地址{0,3910::3}查找归一表,归一表中,{0,3910::3}对应的映射结果为0,故新ip五元组中,源userid为0,其它项保持不变。图4中,flag表示标识,up表示上行方向。
可配置映射场景为选择全映射场景的映射方式或复合映射场景的映射方式进行映射,即基于实际需要,选择最合适的映射场景。因为前缀映射场景其实就是复合映射场景的特殊方式,前缀映射场景跟复合映射场景相比,前缀映射场景少了一次归一表查找过程,而可配置映射场景主要是为了实现较为复杂的映射过程,故可配置映射场景中不包含前缀映射场景。
本发明实施例提供的一种ip五元组表项的查找系统,包括:
映射模块,其用于查找归一表,将上行方向的源ip地址映射为源userid,下行方向的目的ip地址映射为目的userid;
替换模块,其用于将原ip五元组中上行方向的源ip地址替换为源userid,下行方向的目的ip地址替换为目的userid,构成新ip五元组,并在新ip五元组中添加用于标记上下行方向的标识;
查找模块,其用于使用新ip五元组进行路由表项查找。
其中,映射模块查找归一表,将源ip地址映射为源userid,目的ip地址映射为目的userid,具体过程为:上行方向使用源ip地址查找归一表,将源ip地址映射为源userid,下行方向使用目的ip地址查找归一表,目的ip地址映射为目的userid。
新ip五元组包括上行ip五元组和下行ip五元组;上行ip五元组包括标识、源userid、目的ip地址、协议类型、源端口号和目的端口号;下行ip五元组包括标识、源ip地址、目的userid、协议类型、源端口号和目的端口号。
映射模块将源ip地址映射为源userid,目的ip地址映射为目的userid,其中,映射包括全映射场景、前缀映射场景、复合映射场景和可配置映射场景。全映射场景为使用源ip地址或目的ip地址以全匹配方式进行映射;前缀映射场景为使用源ip地址或目的ip地址的ip地址前缀进行映射;复合映射场景为首先使用源ip地址或目的ip地址的ip地址前缀进行映射,然后将映射后得到的地址与源ip地址或目的ip地址的ip地址前缀外的地址进行拼接,使用拼接的地址进行映射;可配置映射场景为选择全映射场景的映射方式或复合映射场景的映射方式进行映射。
本发明实施例的ip五元组表项的查找系统,通过预先查找归一表的方式,将源ip地址映射为源userid,目的ip地址映射为目的userid,构成新ip五元组,缩短ip五元组的长度,从而在保证路由转发性能的前提下,显著地降低ip五元组查找时所需的表项资源。
本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。