IPv6/IPv4地址分级访问权限控制方法和访问控制网关的制作方法

文档序号:7701667阅读:206来源:国知局
专利名称:IPv6/IPv4地址分级访问权限控制方法和访问控制网关的制作方法
技术领域
本发明涉及网络通信领域,更具体地,涉及一种对因特网协议版本6/因特网协议版本4(IPv6/IPv4)双栈地址相互间的访问权限控制方法和访问控制网关(NAS)。

背景技术
近年来,随着互联网的发展,各种新型宽带接入技术层出不穷,在全球范围内得到了广泛应用。但无论使用何种宽带接入技术访问互联网络,认证计费问题都是网络接入商和最终用户共同关注的一个问题。
对于网络运营商而言,认证计费是不可缺少的功能需求。然而,绝大多数网络运营商的认证计费系统都是基于传统的IPv4网络设计的,仅有允许和禁止两种访问控制权限,远远不能满足访问控制多样化的需求。首先,单一的准入控制模式无法区分网内和网外、国内和国外流量,导致稀缺带宽资源和富裕带宽资源被同等对待,不仅使运营商流失了大量的利润来源,同时也使用户对所收的费用、所获得的服务产生不满;其次,传统的认证计费系统对通过认证之后的用户访问完全不做控制,运营商对网络的监控能力减弱,由此造成了一些网络安全方面的隐患。随着IPv6的应用以及人们对网络安全、网络分级的重视,基于IPv6的分级身份认证与访问控制系统正成为未来网络接入的发展趋势。


发明内容
本发明的目的在于提供一种兼容IPv6的IPv6/IPv4地址分级访问控制授权方法,使用该方法可以高效灵活地对接入终端用户实现认证计费功能。根据本发明,对所有待访问IPv6/IPv4地址进行区分,依据资源、带宽、距离等分成不同的域组,然后再给网内认证过后的IPv6/IPv4地址赋予对应的访问控制权限,使得网内IPv6/IPv4地址能够访问一个或多个特定的IPv6/IPv4地址域,为网络运营商提供多级、灵活的访问权限控制功能,利于网络运营商实现业务多样化,增加其对网络的监控管理能力。
根据本发明的第一方案,提出了一种分级访问权限控制方法,包括以下步骤从来自客户端的数据包中提取出源地址和目的地址的访问权限属性;根据源地址和目的地址的访问权限属性,确定是否允许客户端对目的地址进行访问;在确定允许客户端对目的地址进行访问的情况下,复制数据包的包头,进行流量统计,并向目的地址转发数据包;以及在确定不允许客户端对目的地址进行访问的情况下,直接丢弃数据包。
优选地,所述分级访问权限控制方法还包括以下步骤在确定不允许客户端对目的地址进行访问的情况下,根据访问端口参数,确定是否对数据包进行重定向;在确定需要对数据包进行重定向的情况下,修改数据包的包头中的目的地址和/或目的端口,并向修改后的目的地址转发数据包;以及在确定不需要对数据包进行重定向的情况下,直接丢弃数据包。
优选地,目的地址被划分为多个地址域,以及源地址的访问权限属性包括针对每一地址域的访问权限。
更优选地,所述多个地址域包括以下主地址域本地接入网、城域网、国内互联网、国际互联网、禁止访问,每个目的地址属于且仅属于上述主地址域之一。或者,可选地,所述多个地址域是由网络运营商定义的自定义域,每个目的地址属于一个或多个自定义域。
更优选地,所述多个地址域还包括由网络运营商定义的自定义域,每个目的地址属于一个或多个自定义域。
进一步优选地,源地址和目的地址中的每一个都具有与之对应的访问权限字段,所述访问权限字段中的第一部分用于标识自定义域,以及所述访问权限字段中的第二部分用于标识访问权限控制信息。
优选地,通过对源地址和目的地址的访问权限属性进行逻辑与操作,确定是否允许客户端对目的地址进行访问,当逻辑与操作所得到的结果为真时,确定允许客户端对目的地址进行访问;而当逻辑与操作所得到的结果为假时,确定不允许客户端对目的地址进行访问。
根据本发明的第二方案,提出了一种访问控制网关,包括访问权限提取装置,用于从来自客户端的数据包中提取出源地址和目的地址的访问权限属性;以及访问控制装置,用于根据源地址和目的地址的访问权限属性,确定是否允许客户端对目的地址进行访问;数据包转发装置,用于在所述访问控制装置确定允许客户端对目的地址进行访问的情况下,复制数据包的包头,进行流量统计,并向目的地址转发数据包,以及在所述访问控制装置确定不允许客户端对目的地址进行访问的情况下,直接丢弃数据包。
优选地,所述访问控制网关,还包括重定向控制装置,用于在所述访问控制装置确定不允许客户端对目的地址进行访问的情况下,根据访问端口参数,确定是否对数据包进行重定向;数据包重定向装置,用于在所述重定向控制装置确定需要对数据包进行重定向的情况下,修改数据包的包头中的目的地址和/或目的端口,并向修改后的目的地址转发数据包,以及在确定不需要对数据包进行重定向的情况下,直接丢弃数据包。
优选地,目的地址被划分为多个地址域,以及源地址的访问权限属性包括针对每一地址域的访问权限。
更优选地,所述多个地址域包括以下主地址域本地接入网、城域网、国内互联网、国际互联网、禁止访问,每个目的地址属于且仅属于上述主地址域之一。或者,可选地,所述多个地址域是由网络运营商定义的自定义域,每个目的地址属于一个或多个自定义域。
更优选地,所述多个地址域还包括由网络运营商定义的自定义域,每个目的地址属于一个或多个自定义域。
进一步优选地,源地址和目的地址中的每一个都具有与之对应的访问权限字段,所述访问权限字段中的第一部分用于标识自定义域,以及所述访问权限字段中的第二部分用于标识访问权限控制信息。
优选地,所述访问控制装置对源地址和目的地址的访问权限属性进行逻辑与操作,以确定是否允许客户端对目的地址进行访问,当逻辑与操作所得到的结果为真时,所述访问控制装置确定允许客户端对目的地址进行访问;而当逻辑与操作所得到的结果为假时,所述访问控制装置确定不允许客户端对目的地址进行访问。
与现有技术相比,本发明在以下方面具有突出的优点 1、地址权限字段中主地址域和自定义地址域的结合使用,提供了多级、灵活的访问权限控制功能,较强的网络监控管理能力。
2、基于权限字段/内存地址字段复用技术,使得本发明具有较低的空间复杂度。
3、基于n-tries树的权限字段查找算法,CPU对逻辑与运算的快速执行能力使得本发明具有较低的时间复杂度。



通过下面结合

本发明的优选实施例,将使本发明的上述及其它目的、特征和优点更加清楚,其中 图1A示出了地址分类的示意图; 图1B是示出了用户登录访问互联网和用户注销的简单流程的示意图; 图2是示出了网络访问服务器(NAS)的数据包处理流程图;以及 图3是示出了网络访问服务器(NAS)的示例结构的方框图。

具体实施例方式 为了清楚详细的阐述本发明的实现过程,下面给出了一些本发明的具体实施例,此系统不仅适用于大中型网络运营商,也适合应用于公司的办公网、学校的校园网以及网吧等中小型网络的访问权限控制系统。需要说明的是,本发明并不局限于这些应用,而是可适用于更多其它相关的网络访问控制系统。
下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。
为实现本发明,在IPv6/IPv4地址分级访问控制授权系统中,将所有的IPv6/IPv4地址分为网内地址和网外地址两大类。
图1A示出了地址分类的示意图。
网内地址是指在访问控制网关100下级的IPv6/IPv4地址范围,即用户接入互联网时从网络运营商获得的本机IPv6/IPv4地址,这类IPv6/IPv4地址需要通过访问控制网关的认证之后才能访问外网。网外地址是指访问控制网关外部的IPv6/IPv4地址,即用户通常要访问的那些地址。网外地址又被划分为本地接入网200、城域网300、国内互联网400、国际互联网500、禁止访问600五个子类,另外再提供15个用户自定义级别,支持运营商自定义用户域和IPv6/IPv4地址域,为网络运营商提供更精细的访问权限控制功能。
图1B是示出了用户登录访问互联网和用户注销的简单流程的示意图。如图1B所示,用户登录访问互联网的过程简单描述如下首先,由客户端(Client)向网络访问服务器(NAS)(本发明中的访问控制网关)发送用户登陆请求,访问控制网关在接到用户的登陆请求后,通过认证模块连接Radius服务器以验证用户身份,验证通过后从数据库返回用户访问权限,访问控制网关开始对用户进行计费;同时根据Radius服务器返回的用户属性,访问控制网关给该用户的IPv6/IPv4网内地址设置对应的访问权限,此后用户就能正常访问其权限范围内的IPv6/IPv4地址了,如只访问接入网,只访问国际+国内。当用户访问外网某IPv6/IPv4地址时,数据包流经访问控制网关,由访问控制网关判断该用户是否具有对目的IPv6/IPv4地址的访问权限,如果该用户具有相应权限,则向目的IPv6/IPv4地址转发数据包,否则进行重定向处理或直接丢弃数据包。用户注销时再恢复所述用户的IPv6/IPv4网内地址的初始访问权限。
如图1B所示,用户注销过程和用户登陆过程类似,也是先由客户端向访问控制网关发送用户下线请求,访问控制网关在接到用户下线请求后,将用户登陆时所使用的IPv6/IPv4地址的权限字段值设置回默认值,然后再将用户本次上线的相关统计信息通过计费模块写到数据库中。
图2是示出了网络访问服务器(NAS)(本发明中的访问控制网关)的数据包处理流程图。
如图2所示,根据本发明的NAS网关数据包处理流程方法包括以下步骤 步骤S201,数据包预处理。访问控制网关对数据包进行错误检查。若发生错误,则直接丢弃该数据包而不进行任何处理;在未发生错误时,从内核数据结构中(基于n-tries树查找算法)分别获取源IPv6/IPv4地址和目的IPv6/IPv4地址的访问权限属性值。
表1示出了对内核访问权限属性值(字节)的说明。如表1所示,每个IPv6/IPv4地址都有一个32位的访问权限字段,高16位用于标识用户自定义域组,低16位用于标识IPv6/IPv4地址主级别控制及其它控制信息。对于网内IPv6/IPv4地址而言,所述访问权限字段可以看作由一个或多个比特的权限位复合标识,每一比特位表示对应于具有相应比特位的网外地址访问权限。对于网外IPv6/IPv4地址而言,所述访问权限字段可以看作是一种权限控制位,而对于网内IPv6/IPv4地址而言,所述访问权限字段可以看作是一种身份标签(或用户标识),它标识了那些使用此IPv6/IPv4地址的用户可以访问哪些网外IPv6/IPv4地址。由此实现了一种灵活的IPv6/IPv4地址访问权限控制功能。
表1
例如,访问权限字段0x00 00 04 01,最低位为1表示这是一个访问权限字段而不是内存地址;最高位为0表示是外网地址;接下来的15位为0表示该外网地址不属于任何用户自定义地址组;主访问权限表示字段为04,表示该地址属于外网中的纯国内地址。
例如,访问权限字段0x80 06 04 01,最低位为1表示这是一个访问权限字段而不是内存地址;高16位0x80 06中最高位为1表示是内网地址,接下来的15位表示该内网地址同时属于用户自定义地址组2(0x80020001)和用户自定义地址组3(0x80040001),具有访问外网用户自定义地址域2(0x00020001)和用户自定义地址域3(0x00040001)的权限;主访问权限表示字段为04,表示该地址属于内网中的纯国内用户组,可以访问纯国内网和本地接入网。
IPv6/IPv4地址访问权限字段的查找算法使用基于支持任意前缀长度的多分支Trie树的IPv6/IPv4地址控制策略查找算法,并采用了内存复用技术,将Tire树的孩子结点指针和结点的属性值复用,用最低位区分是此字节是内存地址还是访问权限字段,由于内存对齐,内存地址应该为4的整数倍,所以内存地址的最末两位为0,而访问权限字段最后一字节设为1。
在本发明中,采用基于n-tries树的查找算法,对接入网关中控制的IPv4和IPv6地址、用户组、用户、权限、访问控制列表(ACL)等控制策略进行高效存储,快速查找,满足了系统和实时性要求。
步骤S202,访问控制。对步骤S201中得到的源IPv6/IPv4地址和目的IPv6/IPv4地址的访问权限属性值进行逻辑与运算,判断是否允许访问。
例如,源IPv6/IPv4地址仅被允许访问国内互联网,而不允许访问国外互联网,目的IPv6/IPv4地址属于国内互联网。在这种情况下,源IPv6/IPv4地址的访问权限属性值为0x80000601,目的IPv6/IPv4地址的访问权限属性值为0x00000401,二者的逻辑与运算得到1,即,允许访问。
作为另一示例,源IPv6/IPv4地址仅被允许访问国内互联网,而不允许访问国外互联网,目的IPv6/IPv4地址属于国外互联网。在这种情况下,源IPv6/IPv4地址的访问权限属性值为0x80000601,目的IPv6/IPv4地址的访问权限属性值为0x00000801,二者的逻辑与运算得到0,即,不允许访问。
这里,源IPv6/IPv4地址和目的IPv6/IPv4地址的访问权限属性值之间的逻辑与运算只是判断是否允许访问的示例,也可以采用其他本领域普通技术人员能够采用的适当方式,如以源IPv6/IPv4地址和目的IPv6/IPv4地址为索引进行查表操作等。
在步骤S202中确定允许访问时,执行步骤S203,转发前处理。负责复制数据包头,进行流量统计,供后期计费使用。
在步骤S202中确定不允许访问时,执行步骤S204,重定向判断。判断访问的目的端口是否属于重定向范围。例如,当不具有国外互联网访问权限的用户通过Web(通常用80端口)请求访问国外互联网资源时,确定80端口属于重定向范围,可以将用户重定向到用户登陆页面;这样,用户可以选择是否更换身份登陆,以获得该权限。
在步骤S204中确定需要重定向时,执行步骤S205,重定向处理。对数据包进行重定向前的处理工作,包括修改数据包头对应字段等,例如,将数据包头的目的IPv6/IPv4地址和/或目的端口修改为Web登录服务器的主页面地址和/或目的端口,这样可以向用户提供用户登陆页面。
在步骤S203中完成转发前处理后,或者在步骤S205中完成重定向处理后,执行步骤S206,转发数据包。将数据包发送给目的IPv6/IPv4地址和/或目的端口。
在步骤S204中确定不需要重定向时,执行步骤S207,丢弃数据包。对于无权限访问且不进行重定向的数据包直接丢弃。
应当注意的是,上述步骤S204和S205是可选步骤,也可以在步骤S202中确定不允许访问时直接丢弃数据包,而不进行是否重定向的判断和处理步骤(S204和S205)。
根据本发明,可以具体定义以下访问权限和域组示例(表2)。
表2 表2(续1) 表2(续2) 表2(续3) 表3示出了主互通互联权限表的示例。
表3 网外IPv6/IPv4地址分为纯国际、纯国内、城域网、本地接入网、禁止访问地址,由配置文件设定,在系统启动时加载到系统核心数据结构中;主权限必须互斥,即网外IP地址只能属于上述5类之一,不能同时属于其中两类;网内地址初始化为未认证权限属性(默认属性,IPVI_UNAUTH),待用户登录后再更改为用户拥有的相应权限字段。用户注销时再恢复该用户的初始访问权限。
表4示出了自定义组互通互联权限表的示例。
表4 表4(续) 网外IPv6/IPv4地址分可根据需要单独划分成组,其IPv6/IPv4地址设置成IPVO_Gx(x=1、2、…、15)系列宏值,由配置文件设定,在系统启动时加载到系统核心数据结构中;网内地址则初始化为未认证权限属性(默认属性,IPVI_UNAUTH),待用户登录用户组后再更改为对应的IPVI_Gx系列宏值,这样实现了用户根据自身所登陆的组访问特定范围的网外IPv6/IPv4地址。用户注销时再恢复该用户的初始访问权限。自定义组权限可以叠加,可以在自定义组权限之间相互叠加,也可以在自定义组权限与主权限之间叠加;即一个用户可以同时属于多个自定义组,并有权限访问这些组对应的网外IPv6/IPv4地址。
图3是示出了网络访问服务器(NAS)的示例结构的方框图。
如图3所示,根据本发明的NAS(本发明的访问控制网关)100包括访问权限提取单元110,用于从来自客户端的正确数据包中提取出源IPv6/IPv4地址和目的IPv6/IPv4地址的访问权限属性值(步骤S201);访问控制单元120,用于对源IPv6/IPv4地址和目的IPv6/IPv4地址的访问权限属性值进行逻辑与操作,确定是否允许客户端对目的IPv6/IPv4地址进行访问(步骤S202);数据包转发单元130,用于在访问控制单元120确定允许客户端对目的IPv6/IPv4地址进行访问的情况下,复制数据包的包头,进行流量统计(用于后期计费操作),并向目的IPv6/IPv4地址转发数据包(步骤S203和S206);重定向控制单元140,用于在访问控制单元120确定不允许客户端对目的地址进行访问的情况下,判断访问的目的端口是否属于重定向范围(步骤S204);以及数据包重定向单元150,用于在重定向控制单元140确定需要对数据包进行重定向的情况下,修改数据包的包头中的目的IPv6/IPv4地址和/或目的端口,并向修改后的目的IPv6/IPv4地址转发数据包(步骤S205),以及在确定不需要对数据包进行重定向的情况下,直接丢弃数据包(步骤S207)。
在本发明中,重定向控制单元140和数据包重定向单元150是可选单元。在根据本发明的NAS 100不必执行重定向判断和处理的情况下,可以省略这两个单元,而直接由数据包转发单元130在访问控制单元120确定不允许客户端对目的IPv6/IPv4地址进行访问时丢弃数据包。
在本发明中,访问控制网关100采用开源Linux系统,通过修改TCP/IP协议栈,在网络协议的实现中增加hook点,并用多分支Tires树保存IPv6/IPv4地址的权限字段,在hook函数中对流经网关的封包进行处理,提取数据包头的源IPv6/IPv4地址和目的IPv6/IPv4地址,根据这两个IPv6/IPv4地址分别查找相对应的访问控制权限,查到对应的权限之后再对源和目的IPv6/IPv4地址的权限字段进行与操作,以决定是否转发数据包。
至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。
权利要求
1.一种分级访问权限控制方法,包括以下步骤
从来自客户端的数据包中提取出源地址和目的地址的访问权限属性;
根据源地址和目的地址的访问权限属性,确定是否允许客户端对目的地址进行访问;
在确定允许客户端对目的地址进行访问的情况下,复制数据包的包头,进行流量统计,并向目的地址转发数据包;以及
在确定不允许客户端对目的地址进行访问的情况下,直接丢弃数据包。
2.根据权利要求1所述的分级访问权限控制方法,还包括以下步骤
在确定不允许客户端对目的地址进行访问的情况下,根据访问端口参数,确定是否对数据包进行重定向;
在确定需要对数据包进行重定向的情况下,修改数据包的包头中的目的地址和/或目的端口,并向修改后的目的地址转发数据包;以及
在确定不需要对数据包进行重定向的情况下,直接丢弃数据包。
3.根据权利要求1或2所述的分级访问权限控制方法,其中
目的地址被划分为多个地址域,以及源地址的访问权限属性包括针对每一地址域的访问权限。
4.根据权利要求3所述的分级访问权限控制方法,其中
所述多个地址域是由网络运营商定义的自定义域,每个目的地址属于一个或多个自定义域。
5.根据权利要求1或2所述的分级访问权限控制方法,其中
通过对源地址和目的地址的访问权限属性进行逻辑与操作,确定是否允许客户端对目的地址进行访问,
当逻辑与操作所得到的结果为真时,确定允许客户端对目的地址进行访问;而当逻辑与操作所得到的结果为假时,确定不允许客户端对目的地址进行访问。
6. 一种访问控制网关,包括
访问权限提取装置,用于从来自客户端的数据包中提取出源地址和目的地址的访问权限属性;以及
访问控制装置,用于根据源地址和目的地址的访问权限属性,确定是否允许客户端对目的地址进行访问;
数据包转发装置,用于在所述访问控制装置确定允许客户端对目的地址进行访问的情况下,复制数据包的包头,进行流量统计,并向目的地址转发数据包,以及在所述访问控制装置确定不允许客户端对目的地址进行访问的情况下,直接丢弃数据包。
7. 根据权利要求6所述的访问控制网关,还包括
重定向控制装置,用于在所述访问控制装置确定不允许客户端对目的地址进行访问的情况下,根据访问端口参数,确定是否对数据包进行重定向;
数据包重定向装置,用于在所述重定向控制装置确定需要对数据包进行重定向的情况下,修改数据包的包头中的目的地址和/或目的端口,并向修改后的目的地址转发数据包,以及在确定不需要对数据包进行重定向的情况下,直接丢弃数据包。
8. 根据权利要求6或7所述的访问控制网关,其中
目的地址被划分为多个地址域,以及源地址的访问权限属性包括针对每一地址域的访问权限。
9. 根据权利要求8所述的访问控制网关,其中
所述多个地址域是由网络运营商定义的自定义域,每个目的地址属于一个或多个自定义域。
10. 根据权利要求6或7所述的访问控制网关,其中
所述访问控制装置对源地址和目的地址的访问权限属性进行逻辑与操作,以确定是否允许客户端对目的地址进行访问,
当逻辑与操作所得到的结果为真时,所述访问控制装置确定允许客户端对目的地址进行访问;而当逻辑与操作所得到的结果为假时,所述访问控制装置确定不允许客户端对目的地址进行访问。
全文摘要
本发明提出了一种IPv6/IPv4地址分级访问权限控制方法,包括以下步骤从来自客户端的数据包中提取出源地址和目的地址的访问权限属性;根据源地址和目的地址的访问权限属性,确定是否允许客户端对目的地址进行访问;在确定允许客户端对目的地址进行访问的情况下,复制数据包的包头,进行流量统计,并向目的地址转发数据包;以及在确定不允许客户端对目的地址进行访问的情况下,直接丢弃数据包。此外,本发明还提出了一种访问控制网关,用于在IPv6/IPv4网络通信系统中,实现上述IPv6/IPv4地址分级访问权限控制方法。
文档编号H04L12/56GK101605097SQ20091008953
公开日2009年12月16日 申请日期2009年7月22日 优先权日2009年7月22日
发明者松 胡, 华贵斌, 黄友俊, 星 李, 吴建平 申请人:赛尔网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1