发明内容
本发明提供一种对双栈用户进行访问控制的方法和设备,以实现对双栈用户进行网络访问控制。
为了达到上述目的,本发明提供一种对双栈用户进行访问控制的方法,应用于包括客户端、DHCP中继设备和访问控制设备的Portal网络***,所述访问控制设备上部署有DHCPv4服务器、DHCPv6服务器和Portal认证网关,且维护有用于记录IPv4地址和IPv6地址对应关系的用户地址表;在所述客户端通过DHCP中继设备向所述访问控制设备发送地址分配请求消息后,该方法包括以下步骤:所述访问控制设备接收来自所述DHCP中继设备的地址分配请求消息,所述地址分配请求消息中携带所述客户端的用户标识信息;所述访问控制设备利用所述用户标识信息在所述用户地址表中记录所述客户端的IPv4地址和IPv6地址的对应关系;在所述访问控制设备接收到所述客户端基于IPv4地址的网络访问请求,并对所述客户端认证通过后,所述访问控制设备从所述用户地址表中查询所述IPv4地址对应的IPv6地址,并打开所述IPv4地址以及所述IPv6地址的网络访问权限;在所述访问控制设备接收到所述客户端基于IPv6地址的网络访问请求,并对所述客户端认证通过后,所述访问控制设备从所述用户地址表中查询所述IPv6地址对应的IPv4地址,并打开所述IPv4地址以及所述IPv6地址的网络访问权限。
所述访问控制设备利用所述用户标识信息在所述用户地址表中记录所述客户端的IPv4地址和IPv6地址的对应关系,具体包括:在所述访问控制设备利用所述地址分配请求消息为所述客户端分配IPv4地址后,所述访问控制设备查询所述用户地址表中是否记录有所述用户标识信息与IPv6地址的对应关系;如果有,则将分配的IPv4地址添加到该对应关系中;如果没有,则在所述用户地址表中记录所述用户标识信息与分配的IPv4地址的对应关系;或者,在所述访问控制设备利用所述地址分配请求消息为所述客户端分配IPv6地址后,所述访问控制设备查询所述用户地址表中是否记录有所述用户标识信息与IPv4地址的对应关系;如果有,则将分配的IPv6地址添加到该对应关系中;如果没有,则在所述用户地址表中记录所述用户标识信息与分配的IPv6地址的对应关系。
所述用户标识信息为所述DHCP中继设备获取并添加到所述地址分配请求消息中的。
当所述地址分配请求消息用于请求分配IPv4地址时,所述用户标识信息携带在所述地址分配请求消息的option 82中;当所述地址分配请求消息用于请求分配IPv6地址时,所述用户标识信息携带在所述地址分配请求消息的option 18或37中。
所述用户标识信息为:所述客户端接入的DHCP中继设备的标识、所述客户端接入的端口信息、以及所述客户端的VLAN信息;或者,所述客户端的MAC地址信息。
一种访问控制设备,应用于包括客户端、DHCP中继设备和所述访问控制设备的Portal网络***,所述访问控制设备上部署有DHCPv4服务器、DHCPv6服务器和Portal认证网关,且所述访问控制设备包括:维护模块,用于维护用户地址表,所述用户地址表用于记录IPv4地址和IPv6地址对应关系;接收模块,用于接收来自所述DHCP中继设备的地址分配请求消息,所述地址分配请求消息中携带所述客户端的用户标识信息;处理模块,用于利用所述用户标识信息在所述用户地址表中记录所述客户端的IPv4地址和IPv6地址的对应关系;控制模块,用于在接收到所述客户端基于IPv4地址的网络访问请求,并对所述客户端认证通过后,从所述用户地址表中查询所述IPv4地址对应的IPv6地址,并打开所述IPv4地址以及所述IPv6地址的网络访问权限;在接收到所述客户端基于IPv6地址的网络访问请求,并对所述客户端认证通过后,从所述用户地址表中查询所述IPv6地址对应的IPv4地址,并打开所述IPv4地址以及所述IPv6地址的网络访问权限。
所述处理模块,具体用于在利用所述地址分配请求消息为所述客户端分配IPv4地址后,查询所述用户地址表中是否记录有所述用户标识信息与IPv6地址的对应关系;如果有,则将分配的IPv4地址添加到该对应关系中;如果没有,则在所述用户地址表中记录所述用户标识信息与分配的IPv4地址的对应关系;或者,在利用所述地址分配请求消息为所述客户端分配IPv6地址后,查询所述用户地址表中是否记录有所述用户标识信息与IPv4地址的对应关系;如果有,则将分配的IPv6地址添加到该对应关系中;如果没有,则在所述用户地址表中记录所述用户标识信息与分配的IPv6地址的对应关系。
所述用户标识信息为所述DHCP中继设备获取并添加到所述地址分配请求消息中的。
当所述地址分配请求消息用于请求分配IPv4地址时,所述用户标识信息携带在所述地址分配请求消息的option 82中;
当所述地址分配请求消息用于请求分配IPv6地址时,所述用户标识信息携带在所述地址分配请求消息的option 18或37中。
所述用户标识信息为:所述客户端接入的DHCP中继设备的标识、所述客户端接入的端口信息、以及所述客户端的VLAN信息;或者,所述客户端的MAC地址信息。
与现有技术相比,本发明至少具有以下优点:针对双栈用户Portal认证上网的情况,在为客户端分配IPv4地址和IPv6地址的过程中,利用用户标识信息对IPv4地址和IPv6地址进行关联,从而使得Portal认证网关能够得到同一用户的IPv4地址和IPv6地址的映射关系,进而能够对同一用户的双栈上网进行访问权限控制。
具体实施方式
针对Portal认证网关无法获取双栈用户的IPv4地址和IPv6地址关联信息的情况,本发明提出一种对双栈用户进行访问控制的方法,以获得双栈用户的IPv4地址和IPv6地址的关联信息,并利用该关联信息对双栈用户进行网络访问控制。本发明提出的对双栈用户进行访问控制的方法,应用于包括客户端(为双栈客户端,即需要申请IPv4地址和IPv6地址)、DHCP中继设备(可以实现DHCPv4 Relay功能和DHCPv6 Relay功能)和访问控制设备(如Portal网络***的接入设备)的Portal网络***中。
以图1为本发明应用场景示意图,则BAS(Broadband Access Server,宽带接入服务器)设备为访问控制设备,汇聚层设备为DHCP中继设备。本发明中,需要将DHCPv4服务器(用于分配和管理IPv4地址)、DHCPv6服务器(用于分配和管理IPv6地址)和Portal认证网关(用于与Portal服务器共同完成Portal认证)均部署在访问控制设备上。
基于上述Portal网络***的组网情况,如图2所示,该方法包括以下步骤:
步骤201,客户端向DHCP中继设备发送地址分配请求消息,该地址分配请求消息为IPv4地址分配请求消息或IPv6地址分配请求消息。
步骤202,DHCP中继设备接收地址分配请求消息,并将客户端的用户标识信息添加到该地址分配请求消息中。
该用户标识信息为唯一表示该客户端的标识,包括但不限于:客户端的上网位置信息、客户端的MAC地址信息等;该客户端的上网位置信息为客户端接入的DHCP中继设备的标识、客户端在DHCP中继设备上接入的端口信息、以及客户端的VLAN信息(即某DHCP中继设备的某端口下的某VLAN)。
DHCP中继设备可以直接获得上述用户标识信息,并将用户标识信息添加到地址分配请求消息中。当地址分配请求消息为IPv4地址分配请求消息(即请求分配IPv4地址)时,DHCP中继设备可以将用户标识信息添加到地址分配请求消息的option 82中;当地址分配请求消息为IPv6地址分配请求消息(即请求分配IPv6地址)时,DHCP中继设备可以将用户标识信息添加到地址分配请求消息的option 18或37中。
当然,在实际应用中,DHCP中继设备还可以将用户标识信息添加到地址分配请求消息的其它自定义的option中,本发明中不再赘述。
步骤203,访问控制设备接收来自DHCP中继设备的地址分配请求消息,且该地址分配请求消息中携带客户端的用户标识信息。
需要注意的是,在接收到地址分配请求消息后,访问控制设备会为客户端分配IP地址,并将分配的IP地址返回给客户端;由于DHCPv4服务器和DHCPv6服务器均部署在访问控制设备上,因此访问控制设备可以为客户端分配IPv4地址和IPv6地址,该过程本发明中不再赘述。
步骤204,访问控制设备根据用户标识信息维护用户地址表,该用户地址表用于记录用户标识信息、IPv4地址和IPv6地址的对应关系。
本发明中,该维护过程具体包括:在访问控制设备利用地址分配请求消息为客户端分配IPv4地址后,查询用户地址表中是否记录有用户标识信息与IPv6地址的对应关系;如果有,则将分配的IPv4地址添加到该对应关系中;如果没有,则在用户地址表中记录用户标识信息与分配的IPv4地址的对应关系;或者,在访问控制设备利用地址分配请求消息为客户端分配IPv6地址后,查询用户地址表中是否记录有用户标识信息与IPv4地址的对应关系;如果有,则将分配的IPv6地址添加到该对应关系中;如果没有,则在用户地址表中记录用户标识信息与分配的IPv6地址的对应关系。
以下结合两种具体的情况对该维护过程进行详细说明。假设当前的用户地址表如表1所示(此时用户地址表为空)。
表1
情况一,客户端先发送IPv4地址分配请求消息,后发送IPv6地址分配请求消息。
(1)访问控制设备在接收到IPv4地址分配请求消息,并为客户端分配IPv4地址1后,查询用户地址表中是否记录有用户标识信息(以Location1为例)与IPv6地址的对应关系;由于当前用户地址表中未记录用户标识信息与IPv6地址的对应关系,因此访问控制设备在用户地址表中记录用户标识信息与分配的IPv4地址1的对应关系,如表2所示。
表2
用户标识信息 |
IPv4地址 |
IPv6地址 |
Location1 |
IPv4地址1 |
|
|
|
|
(2)访问控制设备在接收到IPv6地址分配请求消息,并为客户端分配IPv6地址1后,查询用户地址表中是否记录有用户标识信息(即Location1)与IPv4地址的对应关系;由于当前用户地址表中记录有用户标识信息与IPv4地址的对应关系,因此访问控制设备在用户地址表中将分配的IPv6地址(即IPv6地址1)添加到该对应关系中,如表3所示。
表3
用户标识信息 |
IPv4地址 |
IPv6地址 |
Location1 |
IPv4地址1 |
IPv6地址1 |
|
|
|
情况二,客户端先发送IPv6地址分配请求消息,后发送IPv4地址分配请求消息。
(1)访问控制设备在接收到IPv6地址分配请求消息,并为客户端分配IPv6地址2后,查询用户地址表中是否记录有用户标识信息(以Location2为例)与IPv4地址的对应关系;由于当前用户地址表中未记录用户标识信息与IPv4地址的对应关系,因此访问控制设备在用户地址表中记录用户标识信息与分配的IPv6地址2的对应关系,如表4所示。
表4
用户标识信息 |
IPv4地址 |
IPv6地址 |
Location1 |
IPv4地址1 |
IPv6地址1 |
Location2 |
|
IPv6地址2 |
(2)访问控制设备在接收到IPv4地址分配请求消息,并为客户端分配IPv4地址2后,查询用户地址表中是否记录有用户标识信息(即Location2)与IPv6地址的对应关系;由于当前用户地址表中记录有用户标识信息与IPv6地址的对应关系,因此访问控制设备在用户地址表中将分配的IPv4地址(即IPv4地址2)添加到该对应关系中,如表5所示。
表5
用户标识信息 |
IPv4地址 |
IPv6地址 |
Location1 |
IPv4地址1 |
IPv6地址1 |
Location2 |
IPv4地址2 |
IPv6地址2 |
基于上述在用户地址表中记录的IPv4地址和IPv6地址的对应关系,在访问控制设备接收到客户端基于IPv4地址或IPv6地址的网络访问请求,并对客户端认证通过后(该过程为客户端发起任一协议栈的HTTP请求,从而触发Portal认证,并认证通过,该过程不再赘述),该方法还包括以下步骤:
步骤205,访问控制设备利用用户地址表中记录的客户端的IPv4地址与IPv6地址对客户端进行访问权限控制。
具体的,在网络访问请求为基于IPv4地址的网络访问请求的情况下,访问控制设备接收到客户端基于IPv4地址的网络访问请求,并对客户端认证通过后,从用户地址表中查询IPv4地址对应的IPv6地址,并打开IPv4地址以及IPv6地址的网络访问权限,从而可以对用户的两个协议栈的IP地址进行权限控制;即针对用户地址表中同一记录的所有IPv4地址和IPv6地址,打开网络访问权限;需要注意的是,IPv4地址和IPv6地址的网络访问权限相同。
在网络访问请求为基于IPv6地址的网络访问请求的情况下,访问控制设备接收到客户端基于IPv6地址的网络访问请求,并对客户端认证通过后,从用户地址表中查询IPv6地址对应的IPv4地址,并打开IPv6地址以及IPv4地址的网络访问权限,从而可以对用户的两个协议栈的IP地址进行权限控制;即针对用户地址表中同一记录的所有IPv4地址和IPv6地址,打开网络访问权限;需要注意的是,IPv4地址和IPv6地址的网络访问权限相同。
需要注意的是,访问控制设备在从用户地址表中查询IPv6地址对应的IPv4地址时,如果未查找到对应的IPv4地址(即当前IPv4地址还没有分配),则暂时不授予IPv4地址相关的上网权限,待对应的IPv4地址分配后,在打开IPv4地址的网络访问权限;访问控制设备在从用户地址表中查询IPv4地址对应的IPv6地址时,如果未查找到对应的IPv6地址(即当前IPv6地址还没有分配),则暂时不授予IPv6地址相关的上网权限,待对应的IPv6地址分配后,在打开IPv6地址的网络访问权限。
基于与上述方法同样的发明构思,本发明还提出了一种访问控制设备,应用于包括客户端、DHCP中继设备和所述访问控制设备的Portal网络***,所述访问控制设备上部署有DHCPv4服务器、DHCPv6服务器和Portal认证网关,如图3所示,所述访问控制设备包括:
维护模块11,用于维护用户地址表,所述用户地址表用于记录IPv4地址和IPv6地址对应关系;
接收模块12,用于接收来自所述DHCP中继设备的地址分配请求消息,所述地址分配请求消息中携带所述客户端的用户标识信息;
处理模块13,用于利用所述用户标识信息在所述用户地址表中记录所述客户端的IPv4地址和IPv6地址的对应关系;
控制模块14,用于在接收到所述客户端基于IPv4地址的网络访问请求,并对所述客户端认证通过后,从所述用户地址表中查询所述IPv4地址对应的IPv6地址,并打开所述IPv4地址以及所述IPv6地址的网络访问权限;
在接收到所述客户端基于IPv6地址的网络访问请求,并对所述客户端认证通过后,从所述用户地址表中查询所述IPv6地址对应的IPv4地址,并打开所述IPv4地址以及所述IPv6地址的网络访问权限。
所述处理模块13,具体用于在利用所述地址分配请求消息为所述客户端分配IPv4地址后,查询所述用户地址表中是否记录有所述用户标识信息与IPv6地址的对应关系;如果有,则将分配的IPv4地址添加到该对应关系中;如果没有,则在所述用户地址表中记录所述用户标识信息与分配的IPv4地址的对应关系;或者,在利用所述地址分配请求消息为所述客户端分配IPv6地址后,查询所述用户地址表中是否记录有所述用户标识信息与IPv4地址的对应关系;如果有,则将分配的IPv6地址添加到该对应关系中;如果没有,则在所述用户地址表中记录所述用户标识信息与分配的IPv6地址的对应关系。
本发明中,所述用户标识信息为所述DHCP中继设备获取并添加到所述地址分配请求消息中的。
本发明中,当所述地址分配请求消息用于请求分配IPv4地址时,所述用户标识信息携带在所述地址分配请求消息的option 82中;当所述地址分配请求消息用于请求分配IPv6地址时,所述用户标识信息携带在所述地址分配请求消息的option 18或37中。
本发明中,所述用户标识信息为:所述客户端接入的DHCP中继设备的标识、所述客户端接入的端口信息、以及所述客户端的VLAN信息;或者,所述客户端的MAC地址信息。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
基于与上述方法同样的发明构思,本发明还提出了一种DHCP中继设备,应用于包括客户端、所述DHCP中继设备和访问控制设备的Portal网络***,所述访问控制设备上部署有DHCPv4服务器、DHCPv6服务器和Portal认证网关,且维护有用于记录IPv4地址和IPv6地址对应关系的用户地址表;如图4所示,所述DHCP中继设备包括:
接收模块21,用于接收来自所述客户端的地址分配请求消息;
处理模块22,用于获取所述客户端的用户标识信息,并将所述用户标识信息添加到所述地址分配请求消息中;
发送模块23,用于将携带了所述用户标识信息的地址分配请求消息发送给所述访问控制设备,由所述访问控制设备利用所述用户标识信息维护所述用户地址表。
本发明中,当所述地址分配请求消息用于请求分配IPv4地址时,所述用户标识信息携带在所述地址分配请求消息的option 82中;当所述地址分配请求消息用于请求分配IPv6地址时,所述用户标识信息携带在所述地址分配请求消息的option 18或37中。
本发明中,所述用户标识信息为:所述客户端接入的DHCP中继设备的标识、所述客户端接入的端口信息、以及所述客户端的VLAN信息;或者,所述客户端的MAC地址信息。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。