1.一种Portal认证协助方法,应用于网关设备GD上,该GD位于Portal客户端与Portal认证设备PD之间,其中GD与PD之间通过私网相连,其特征在于,该方法包括以下步骤:
步骤A、当客户端通过GD申请IP地址时,GD在内部的分配表中检查该客户端的认证标记是否为认证通过,若该客户端的认证标记不是认证通过或无此对应表项,转步骤B;若该客户端的认证标记为认证通过,转步骤F;
步骤B,GD以DHCP中继的身份代表客户端向DHCP服务器DS申请私网IP地址;
步骤C,在IP地址分配成功时,GD将客户端分配到的IP地址与其MAC地址对应关系更新到分配表中;
步骤D,当接收到客户端发送的认证请求报文时,将该报文进行隧道封装并通过GD与PD之间预先建立的隧道发送至PD;其中隧道报文的隧道IP地址为私网IP地址,该隧道报文是将该认证请求报文进行隧道封装后的报文;
步骤E,在收到PD的客户端认证通过通知后,GD在客户端分配表中将该客户端的MAC地址的认证标记修改为认证通过;
步骤F,GD以DHCP中继的身份代表客户端向DS申请公网IP地址。
2.如权利要求1所述的方法,其特征在于,在步骤A之前还包括:
步骤G,根据管理员指定的PD的私网IP地址,向PD发起隧道连接请求以与PD在私网内建立隧道;其中所述隧道为GRE隧道或其他隧道。
3.如权利要求1所述的方法,其特征在于,所述分配表中保存有该客户端MAC地址与认证标记的对应关系,GD在内部的分配表中检查该客户端的认证标记是否为认证通过具体包括:根据客户端DHCP报文中的MAC地址获取分配表中对应的认证标记并检查该认证标记是否为认证通过的标记。
4.如权利要求1所述的方法,其特征在于,还包括:
步骤H,在接收到客户端访问外部网络的IP报文时,检查该IP报文的目的IP地址是公网IP地址还是私网IP地址,如果是私网IP地址则根据GD内部的转发表对该IP报文进行转发,如果是公网IP地址,则将该报文进行隧道封装并通过GD与PD之间预先建立的隧道发送至PD。
5.如权利要求1所述的方法,其特征在于,还包括:
步骤I,在接收到PD发送的客户端下线通知时,将分配表中该下线客户端对应的表项清除。
6.一种Portal认证协助装置,应用于网关设备GD上,该GD位于Portal客户端与Portal认证设备PD之间,其中GD与PD之间通过私网相连,该装置包括:认证检查单元、地址申请单元、表项更新单元以及报文处理单元,其特征在于:
认证检查单元,用于在客户端通过GD申请IP地址时,在内部的分配表中检查该客户端的认证标记是否为认证通过;
地址申请单元,用于在客户端未通过认证时,以DHCP中继的身份代表客户端向DHCP服务器DS申请私网IP地址;或者用于在客户端通过认证时,以DHCP中继的身份代表客户端向DS申请公网IP地址;
表项更新单元,用于在IP地址分配成功时,将客户端分配到的IP地址与其MAC地址对应关系更新到分配表中;并在收到PD的客户端认证通过通知后,在客户端分配表中将该客户端的MAC地址的认证标记修改为认证通过;
报文处理单元,用于在接收到客户端发送的认证请求报文时,将该报文进行隧道封装并通过GD与PD之间预先建立的隧道发送至PD,其中隧道报文的隧道IP地址为私网IP地址,该隧道报文是将该认证请求报文进行隧道封装后的报文。
7.如权利要求6所述的装置,其特征在于,该装置还包括:
第一隧道处理单元,用于根据管理员指定的PD的私网IP地址,向PD发起隧道连接请求以与PD在私网内建立隧道;其中所述隧道为GRE隧道或其他隧道。
8.如权利要求6所述的装置,其特征在于,所述分配表中保存有该客户端MAC地址与认证标记的对应关系,所述认证检查单元在内部的分配表中检查该客户端的认证标记是否为认证通过具体包括:根据客户端DHCP报文中的MAC地址获取分配表中对应的认证标记并检查该认证标记是否为认证通过的标记。
9.如权利要求6所述的装置,其特征在于,所述报文处理单元具体用于在接收到客户端访问外部网络的IP报文时,检查该IP报文的目的IP地址是公网IP地址还是私网IP地址,如果是私网IP地址则根据GD内部的转发表对该IP报文进行转发,如果是公网IP地址,将该报文进行隧道封装并通过GD与PD之间预先建立的隧道发送至PD。
10.如权利要求6所述的装置,其特征在于,所述表项更新单元进一步用于在接收到PD发送的客户端下线通知时,将分配表中该下线客户端对应的表项清除。
11.一种Portal认证处理方法,应用于网络中的Portal认证设备PD上,该网络还包括Portal客户端以及网关设备GD,其中该GD位于Portal客户端与PD之间,其中GD与PD之间通过私网相连,其特征在于,该方法包括以下步骤:
步骤I,在隧道接口将接收到的隧道报文解封装后得到客户端发送的原始IP报文,判断该原始报文的目的IP地址是否为预设的免认证IP地址,如果是则对该IP报文进行NAT处理后转发该IP报文,否则通过隧道接口触发客户端进行Portal认证;
步骤II,PD在确定客户端认证通过时向GD发送客户端认证通过通知,并向Portal服务器PS发送客户端认证通过通知以通过PS来触发用户重新申请IP地址。
12.如权利要求11所述的方法,其特征在于:还包括:
步骤III,在确定客户端下线时,向GD以及PS发送对应的客户端下线通知。
13.如权利要求11所述的方法,其特征在于,在步骤I之前还包括:
步骤IV,接收GD发送的隧道连接请求以与GD建立隧道连接;其中所述隧道为GRE隧道或其他隧道。
14.如权利要求11所述的方法,其特征在于,其中PD向GD发送客户端认证通过通知的过程具体包括:根据内部NAT转换记录确定该客户端的私网IP地址,并在该通知中携带该客户端的私网IP地址。
15.一种Portal认证处理装置,应用于网络中的Portal认证设备PD上,该网络还包括Portal客户端以及网关设备GD,其中该GD位于Portal客户端与PD之间,其中GD与PD之间通过私网相连,该装置包括前置判断单元以及认证处理单元,其特征在于:
前置判断单元,用于在隧道接口将接收到的隧道报文解封装后得到客户端发送的原始IP报文,判断该原始报文的目的IP地址是否为预设的免认证IP地址,如果是则对该IP报文进行NAT处理后转发该IP报文,否则通过隧道接口触发客户端进行Portal认证;
认证处理单元,用于在确定客户端认证通过时向GD发送客户端认证通过通知,并向Portal服务器PS发送客户端认证通过通知以通过PS来触发用户重新申请IP地址。
16.如权利要求15所述的装置,其特征在于:所述认证处理单元进一步用于在确定客户端下线时,向GD以及PS发送对应的客户端下线通知。
17.如权利要求15所述的装置,其特征在于,该装置还包括:
第二隧道处理单元,用于接收GD发送的隧道连接请求以与GD建立隧道连接;其中所述隧道为GRE隧道或其他隧道。
18.如权利要求15所述的装置,其特征在于,其中认证处理单元向GD发送客户端认证通过通知的过程具体包括:根据内部NAT转换记录确定该客户端的私网IP地址,并在该通知中携带该客户端的私网IP地址。
一种Portal认证处理方法、认证协助方法及装置\n技术领域\n[0001] 本发明涉及通信技术领域,尤其涉及一种Portal认证处理方法、认证协助认证方法及装置。\n背景技术\n[0002] Portal认证技术是一种简单易用的身份认证技术,其主要目标是为了验证接入网络客户端的身份。在Portal(入口)认证的组网环境中,当客户端需要访问互联网时,其必须在Portal服务器(Portal Server,PS)提供的Web页面上进行身份认证,只有认证通过后才可以使用这些互联网中的设备或资源。然而在大型企业的网络或者说较为复杂的网络中,Portal设备的具体部署是一个技术难题。\n发明内容\n[0003] 有鉴于此,本发明提供一种Portal认证协助方法,应用于网关设备GD上,该GD位于Portal客户端与Portal认证设备PD之间,其中GD与PD之间通过私网相连,其中该方法包括以下步骤:\n[0004] 步骤A、当客户端通过GD申请IP地址时,GD在内部的分配表中检查该客户端的认证标记是否为认证通过,若该客户端的认证标记不是认证通过或无此对应表项,转步骤B;若该客户端的认证标记为认证通过,转步骤F;\n[0005] 步骤B,GD以DHCP中继的身份代表客户端向DHCP服务器DS申请私网IP地址;\n[0006] 步骤C,在IP地址分配成功时,GD将客户端分配到的IP地址与其MAC 地址对应关系更新到分配表中;\n[0007] 步骤D,当接收到客户端发送的认证请求报文时,将该报文进行隧道封装并通过GD与PD之间预先建立的隧道发送至PD;其中该隧道报文的隧道IP地址为私网IP地址;\n[0008] 步骤E,在收到PD的客户端认证通过通知后,GD在客户端分配表中将该客户端的MAC地址的认证标记修改为认证通过;\n[0009] 步骤F,GD以DHCP中继的身份代表客户端向DS申请公网IP地址。\n[0010] 本发明还提供一种Portal认证协助装置,应用于网关设备GD上,该GD位于Portal客户端与Portal认证设备PD之间,其中GD与PD之间通过私网相连,该装置包括:认证检查单元、地址申请单元、表项更新单元以及报文处理单元,其中:\n[0011] 认证检查单元,用于在客户端通过GD申请IP地址时,在内部的分配表中检查该客户端的认证标记是否为认证通过;\n[0012] 地址申请单元,用于在客户端未通过认证时,以DHCP中继的身份代表客户端向DHCP服务器DS申请私网IP地址;或者用于在客户端通过认证时,以DHCP中继的身份代表客户端向DS申请公网IP地址;\n[0013] 表项更新单元,用于在IP地址分配成功时,将客户端分配到的IP地址与其MAC地址对应关系更新到分配表中;并在收到PD的客户端认证通过通知后,在客户端分配表中将该客户端的MAC地址的认证标记修改为认证通过;\n[0014] 报文处理单元,用于在接收到客户端发送的认证请求报文时,将该报文进行隧道封装并通过GD与PD之间预先建立的隧道发送至PD,其中该隧道报文的隧道IP地址为私网IP地址。\n[0015] 本发明还提供一种Portal认证处理方法,应用于网络中的Portal认证设备PD上,该网络还包括Portal客户端以及网关设备GD,其中该GD位于Portal客户端与PD之间,其中GD与PD之间通过私网相连,其中该方法包括以下步骤:\n[0016] 步骤I,在隧道接口将接收到的隧道报文解封装后得到客户端发送的原始IP报文,判断该原始报文的目的IP地址是否为预设的免认证IP地址,如果是则对该IP报文进行NAT处理后转发该IP报文,否则通过隧道接口触发客户端进行Portal认证;\n[0017] 步骤II,PD在确定客户端认证通过时向GD发送客户端认证通过通知,并向Portal服务器PS发送客户端认证通过通知以通过PS来触发用户重新申请IP地址。\n[0018] 本发明还一种Portal认证处理装置,应用于网络中的Portal认证设备PD上,该网络还包括Portal客户端以及网关设备GD,其中该GD位于Portal客户端与PD之间,其中GD与PD之间通过私网相连,该装置包括前置判断单元以及认证处理单元,其中:\n[0019] 前置判断单元,用于在隧道接口将接收到的隧道报文解封装后得到客户端发送的原始IP报文,判断该原始报文的目的IP地址是否为预设的免认证IP地址,如果是则对该IP报文进行NAT处理后转发该IP报文,否则通过隧道接口触发客户端进行Portal认证;\n[0020] 认证处理单元,用于在确定客户端认证通过时向GD发送客户端认证通过通知,并向Portal服务器PS发送客户端认证通过通知以通过PS来触发用户重新申请IP地址。\n[0021] 本发明可通过GD与PD之间的隧道,进行客户端的Portal认证,允许PD灵活部署。一个PD可以服务很多个GD下连接的用户网络。组网灵活性成倍地提升且实施成本低廉。\n附图说明\n[0022] 图1是本发明一种实施方式下的典型组网图。\n[0023] 图2是本发明一种实施方式中GD以及PD的硬件原理图。\n[0024] 图3是本发明一种实施方式中PD以及GD配合的处理流程图。\n[0025] 图4是一种典型的带有中继的DHCP处理流程图。\n[0026] 图5是一种中继发出的DHCP报文的格式图。\n[0027] 图6是本发明一种实施方式中认证协助装置的逻辑结构图。\n[0028] 图7是本发明一种实施方式中认证处理装置的逻辑结构图。\n具体实施方式\n[0029] 从客户端感知的角度来看,当客户端在机场等公共区域通过无线技术连接某运营商的WiFi热点后,其访问任何页面都会跳转到Portal认证页面,直到其身份认证通过这个跳转机制才会消失。也就是说认证通过之前,Portal客户端可能是BS(浏览器/服务器)架构中的浏览器或CS(客户端/服务器)架构中的客户端,具备了通过HTTP协议访问PS上Web页面的能力,这意味着在认证通过之前其必须拥有IP地址,否则无法进行Web访问,这是Portal与802.1X等纯粹的二层认证技术本质的区别。这个过程意味着DHCP(动态主机配置协议)的过程交互报文需要不受限制的,网络对于DHCP服务是完全开放的。\n[0030] 从传统思路出发,客户端上网需要网络侧的DHCP服务器(DHCP Server,DS)分配IP地址。假设DHCP分配给客户端上网使用的IP地址是公网IP地址,这可能会出现公网IP地址被浪费的问题。假设某客户端获取了一个公网IP地址,若客户端不参与Portal认证过程或在后续Portal认证过程中认证失败,这意味着一个不上网或无法上网的客户端将占用一个公网IP地址。若相当数量客户端出现上述情况,则会造成公网IP地址的严重浪费,在IPv4还是主流的今天,公网IP地址的稀缺性是不言而喻的。\n[0031] 若为了避免公网IP地址的浪费,可以使用二次地址分配的Portal认证方式。\nPortal二次地址认证方式很好的解决了上述问题。其基本原理如下:客户端在认证前通过DS获取一个私网IP地址,此时其只能访问PS以及部分私网服务器的资源;在客户端认证通过后,客户端会申请到一个公网IP地址,即可访问网络资源。该认证方式解决了IP地址规划和分配问题,认证前客户端只能获取到私网IP地址,访问私网内的资源,这可以避免不上网或无法上 网的客户端占用公网IP地址的问题。\n[0032] 二次地址分配认证方式在解决了公网IP地址浪费的基础上又引入了新的问题。首先,认证结束又被附加上新的条件:客户端必须成功申请到公网IP地址,PS才能确定客户端认证成功。假设客户端因各种原因未申请到公网IP地址,PS不能通知客户端认证成功,否则客户端上网会发现依然是失败的。为解决这个问题,需要Portal认证设备(PD)主动去感知客户端IP地址的变化,然后通知PS。PD一般采用ARP的方式来感知客户端IP地址的变化,但是采用ARP协议意味着PD与客户端必须位于同一个局域网内,中间不能有路由器或三层交换机等三层设备。其次,由于安全性需要,还须利用DHCP Relay以及ARP授权等机制控制通过Portal认证的客户端访问网络的合法性,这也要求组网上必须将PD与客户端设置在同一个局域网内,这严重限制了二次地址分配认证应用的灵活性。另外从网络管理员使用的角度来看,为了实现客户端私网、公网地址的申请分配,PD与DHCP Relay还需要耦合在一起,配置比较复杂,维护难度高。\n[0033] 本发明提供一种Portal认证解决方案来解决目前在组网灵活性等问题上遭遇的挑战。请参考图1的典型组网,在该组网中,网关设备(Gateway Device,GD)位于PD以及客户端之间,也就是说PD是无法在二层(链路层)上通过ARP方式感知到客户端的存在的。在本发明优选的方式中,一个PD可以服务于多个GD,比如图1中GD1以及GD2可以通过私网上构建的隧道连接到PD,也就是说从三层角度来看,GD与PD是通过GD所在的私网相连的,在以下的实施方式中仅以一个GD与一个PD的配合来说明,多个GD与PD配合过程的原理是相同的。\n[0034] 在一种优选的实施方式中,本发明通过改进PD以及网关的软件处理流程来进行技术改进,本发明并不排除硬件、逻辑器件或者软硬件结合等其他实施方式。从PD的角度来说,本发明提供了一种Portal认证处理方法,而从GD角度来说,本发明提供一种Portal认证协助方法;PD与GD相互配合形成本发明上述解决方案。请参考图2,PD与GD通常都包括CPU、内存、 非易失性存储器以及其他网络硬件,两者之间可能在接口或转发芯片等网络硬件上存在一定差异,但这些差异并不是本实施方式所关心的。对于上述两个相互配合方法而言,其具体实现时均可以由CPU读取非易失性存储器中对应的软件代码在内存中运行而实现,而代码执行过程中涉及对其他硬件的操作过程属于现有技术,本发明在后续描述中不再深入讨论。\n[0035] 请参考图3,在一种优选的实施方式中,PD与GD配合过程包括如下步骤:\n[0036] 步骤101,根据管理员指定的PD私网IP地址,GD向PD发起隧道连接请求以与PD建立隧道;\n[0037] 步骤102,当客户端通过DHCP协议申请IP地址时,GD在分配表中检查该客户端的认证标记是否为认证通过,若该客户端的认证标记不是认证通过或无此客户端的表项,转步骤103;若该客户端的认证标记为认证通过,转步骤109;\n[0038] 步骤103,GD以DHCP中继的身份代表客户端向DS申请IP地址;\n[0039] 步骤104,在客户端分配到IP地址时,GD将客户端分配到的IP地址与其MAC地址的对应关系更新到分配表中;\n[0040] 步骤105,当接收到客户端发送的认证请求报文时,GD将该报文进行隧道报文封装并通过自身隧道接口发送至PD;\n[0041] 步骤106,PD在隧道接口将接收到的隧道报文解封装后得到客户端发送的IP报文,判断该IP报文的目的IP地址是否为预设的免认证IP地址,如果是则对该IP报文进行NAT处理后转发该IP报文,否则通过隧道接口触发客户端进行Portal认证;\n[0042] 步骤107,PD在确定客户端认证通过时,向GD发送客户端认证通过通知,并向PS发送客户端认证通过通知以通过PS来触发用户重新申请IP地址;\n[0043] 步骤108,GD收到PD的客户端认证通过通知后,在分配表中将该客户端的认证标记修改为认证通过;\n[0044] 步骤109,GD以DHCP中继的身份代表客户端向DS发起IP地址申请,并在申请过程中使用预设的公网IP地址作为DHCP报文中DHCP中继字段的IP地址。\n[0045] 在实施上述方案的时候,管理员需要进行一些包括步骤101在内的配置工作。首先,管理员需要为GD配置一个私网网关IP地址以及一个公网网关IP地址;为PD分配一个私网IP地址。在本发明实现场景中,GD通常位于用户私网内部,而PD则位于公网与私网的边界,也就是说PD同样需要配置一个私网IP地址,这样GD与PD才能实现通信,配置的过程对于管理员而言是很简单的工作,不再赘述。其次,管理员需要通过下发配置指令在GD与PD之间创建隧道连接,其是本发明实现的基础。目前大部分的三层设备都支持一种或者多种隧道技术,当然建立隧道连接的前提是GD与PD都支持这种隧道技术。从通用性的角度来说,GRE隧道是一种比较好的选择,其被众多厂商的三层网络设备所支持。从配置的角度来说,管理员可以通过配置指令从GD侧主动发起隧道连接,其需要指示GD设备隧道对端(PD)的公网IP地址;PD接收该隧道连接请求后,隧道就建立起来了。同样的道理管理员也可以通过配置指令从PD侧主动发起隧道连接,其需要指示PD设备隧道对端(GD)的公网IP地址。另外,在本发明协助认证方法使能的时候,如果GD的分配表不为空,即其中建立了一些IP地址与MAC地址对应关系的话,则根据管理员的Portal Relay使能指令来清空该分配表。当然如果GD刚刚投入使用,则不涉及这个问题。\n[0046] 请参考图4以及图5,在配置工作准备好之后,网络开始面向客户端提供服务。对于一个新上线的客户端,其会通过DHCP的方式来获取IP地址。在一次DHCP过程中,客户端对于DHCP Discovery以及Request的报文全部采用广播的形式发送出去。由于DS位于客户端所在局域网的外部,因此GD将通过DHCP Relay(DR)的方式使用单播报文来协助用户从局域网外部的DS上获取IP地址。在这个过程中,客户端最终能获得私网IP地址还是公网IP地址是GD来控制的。GD的控制方式是区分情况来构造DHCP Discovery 报文或者DHCP Request报文的内容。具体来说是区分客户端是否通过认证,实现时可以通过分配表中的客户端的认证标记来区分。所述分配表中保存该客户端MAC地址与认证标记的对应关系,GD在内部的分配表中检查该客户端的认证标记是否为认证通过具体包括:根据客户端DHCP报文中的客户端MAC地址获取分配表中对应的认证标记并检查该认证标记是否为认证通过的标记。\n[0047] 对于未通过认证的客户端而言,GD在构造上述报文时,其在DHCP Relay地址的字段中填写自身的私网IP地址,这个私网IP地址通常是预设的,通常是其面向局域网的私网网关接口的IP地址。而DS在Offer报文中提供的IP地址通常与Discovery报文中DHCP Relay地址是同一个网段的,也就是说GD在单播Discovery报文中填写自身私网IP地址,那么客户端会获得同网段的一个私网IP地址。反之,若GD在单播Discovery报文中填写的是预设的公网IP地址,则客户端会获得同网段的一个公网IP地址。请参考图5,值得注意的是,这里GD填写的IP地址,并不是单播DHCP报文的源IP地址,而是单播DHCP报文中Giaddr这个字段的内容。请参考表1示例,在客户端通过DHCP过程获得IP地址之后,也就是DS发送ACK报文进行确认时,GD在内部的分配表中更新该客户端的IP地址与MAC地址的对应关系。\n[0048]\nIP地址 MAC地址 认证标记 \n192.168.0.100 0000-0000-0001 0 \n192.168.0.101 0000-0000-0002 0 \n192.168.0.102 0000-0000-0003 0 \n[0049] 表1\n[0050] 在本发明中GD依靠PD的配合来知晓客户端是否通过认证,进而实现上述区分。假设客户端刚刚连接到网络,如前所述,其会通过DHCP协议来获得IP地址,此时GD作为DR会为客户端提供服务,其在构造Discovery报文时会先查询分配表,此时GD会发现分配表中没有该客户端MAC地址对应的记录,这说明用户刚上线肯定未通过认证,此时构造报文时Giaddr应 当填写自身私网IP地址,用户获得私网IP地址之后,GD会在分配表中进行相应的记录。\n[0051] 在客户端获得私网IP地址之后,其会开始访问外部网络。值得注意的是,由于PS部署在公网中,相对于客户端而言,PS其使用的是公网IP地址。而此时客户端使用的是私网IP地址,PD设备以及沿途网络均没有私网IP地址的路由。这意味着如果不做任何改进,PD无法通过重定向报文的方式来触发Portal认证流程。为解决这个问题,本发明预先建立了隧道连接,保证PD能够与客户端实现双向通信。\n[0052] 请参考图1所示,其中GD设备对于客户端访问外部网络的IP报文进行区分处理,GD判断该IP报文的目的IP地址是否为公网IP地址,若客户端访问外部网络的IP报文的目的IP地址是私网IP地址,则根据GD内部的转发表对该报文进行转发,若客户端访问外部网络的IP报文的目的IP地址为公网IP地址,则GD将该IP报文进行GRE封装,将其承载到GRE隧道上去,这样PD在自身GRE隧道接口上就能够收到该隧道报文。此时隧道报文的源IP地址以及目的IP地址均为私网IP地址,GD和PD之间通过私网连接,因此隧道报文可以顺利通过沿途的私网设备转发到PD。PD在收到隧道报文后进行解封装处理,获得原始的IP报文。\n[0053] 对于该原始的IP报文,此时PD检查该报文发现其目的IP地址不是免认证IP地址(比如PS的IP地址),而且显然其源IP地址也不在PD的白名单中,通常认证通过取得的公网IP地址才会被更新到PD的白名单中,因此PD可以确定客户端需要进行Portal认证。接下来PD可以按照正常的方式来触发客户端Portal认证,其可以向客户端发送重定向报文将客户端的访问重定向到PS上去进行Portal认证,这个重定向报文同样需要进行隧道封装。GD收到来自PD的隧道报文之后,其同样会解封装获得其中重定向报文,根据重定向报文的目的IP地址将该报文转发给客户端。后续客户端与PD之间的交互过程将采用上述隧道方式。\n[0054] 其中,上述步骤105中所述的认证请求报文,通常是客户端在PD触发 认证流程之后发送的。客户端在没有认证通过时,其访问任何公网IP地址的报文,都会被GD通过隧道发送给PD。当PD通过隧道接收到GD发送的报文时,若PD上记录该客户端并没有通过认证,则即可将该GD发送的报文作为认证流程的触发点,触发PS对客户端进行认证。\n[0055] 在接下来的认证过程中,客户端将与PS进行交互,由于客户端访问的目的IP地址(PS的IP地址)是个公网IP地址,对于所有目的IP地址为公网IP地址的报文都会被GD承载到隧道上发送给PD。因此客户端向PS发送的IP报文一样会被承载到隧道上发送给PD。PD进行隧道解封装之后,获得原始的IP报文,此时PD检查该报文发现其目的IP地址是免认证IP地址。接下来PD会发现该报文的源IP地址是私网IP地址,无法直接与公网IP地址通信,因此PD可以对该IP报文进行NAT处理,将该IP报文的源IP地址(也就是客户端IP地址)转换为公网IP地址,这样就能够实现客户端与PS之间的互通。从实现上来说,目前NAT技术被很多设备广泛支持,因此相应地管理员只需要配置相应的ACL规则,就可以将隧道接口收到的原始IP报文全部上送NAT处理即可,NAT处理完成之后再转发该IP报文。\n[0056] 在客户端与PS进行交互的过程中,其需要用户输入用户名和密码来请求认证,PS收到该请求之后会按照既有的流程请求PD与认证服务器交互来对用户身份进行认证,具体实现过程可以参考已有的Portal认证流程。在PD设备收到认证服务器的认证结果时,其一方面会通知PS,而PS则会触发客户端重新申请IP地址,另一方面通知GD设备,GD设备收到该通知之后会将该客户端的认证标记修改为认证通过,比如将表1中的0修改为1。值得注意的是,在优选的方式中,由于客户端当前使用的私网IP地址,而客户端访问PS的过程中,其报文的源IP地址被NAT转换变成了一个公网IP地址或者公网IP地址+端口的组合。此时认证服务器会指示PD使用该公网IP地址或公网IP地址+端口的客户端通过认证,因此PD在通知GD客户端认证通过通知时,其需要检查NAT转换记录来确定与公网IP地址或公网IP地址+端口组合相对应的私网IP地址,将该私网IP地址携带在通知中发送给GD, 这样GD才能准确知道哪个客户端通过了认证。\n[0057] 在另一方面,客户端收到PS的通知后,该通知会触发客户端通过DHCP协议重新申请IP地址,在步骤108之后,若客户端正常再次申请IP地址,那么处理流程会来到步骤102。\n在步骤102中由于客户端的认证标记已经被修改为通过认证,此时会转入步骤109进行处理。接下来GD在DHCP报文中将Giaddr设置为预设公网IP地址来为客户端申请IP地址,地址分配成功后会转入到步骤104中。由于Giaddr为设备公网IP地址,因此DS会分配与该公网IP地址同网段的一个公网IP地址给客户端。本发明中,GD在收到DS的DHCP ACK报文时,其会相应回应客户端,同时会将表1中该客户端的表项进行更新。更新后的表项如表2所示。\n[0058]\nIP地址 MAC地址 认证标记 \n202.106.0.25 0000-0000-0001 1 \n192.168.0.101 0000-0000-0002 0 \n192.168.0.102 0000-0000-0003 0 \n[0059] 表2\n[0060] 客户端更新IP地址之后会通知PS,而PS可以相应通知PD,此时PD最终确认客户端通过认证可以正常上网,相应地PD在内部将该客户端申请到的公网IP地址加入到白名单中,后续该客户端发送的报文经由隧道到达PD时,由于报文的源IP地址在白名单中,因此该报文会被PD放行通过。当然此时客户端发送的报文仍然是通过私网隧道的方式承载的,在PD处解封装才能得到的。\n[0061] 以上描述了一个合法用户使用客户端上网在Portal认证过程中实现二次地址分配的过程。在优选的实施方式中,本发明进一步提供下线过程的对应处理方式。Portal下线的方式有很多种,用户可以使用客户端上的操作按钮来主动下线,也可以是PD设备通过其他途径感知到客户端的下线。客户端的下线感知可以参考各种已有技术加以实现,本发明对此没有限定。一旦确定其下线,PD将发送客户端下线通知给GD;而GD在接收到客户端下线通 知时,将分配表中该客户端的表项清空,清空后的结果如表3所示。由于客户端(MAC为\n0000-0000-0001)的表项被清空,如果该客户端再次上线,其仍然需要进行Portal认证和二次地址分配。也就是说在步骤102的处理过程中,会跳转到步骤103去处理。\n[0062]\nIP地址 MAC地址 认证标记 \n192.168.0.101 0000-0000-0002 0 \n192.168.0.102 0000-0000-0003 0 \n[0063] 表3\n[0064] 此外,从以上描述可以看出,不管是在客户端认证过程中,还是客户端在认证成功后,只要客户端访问公网IP地址,则GD就会将该访问公网IP地址的IP报文进行隧道封装后发送至PD,而PD则可以根据客户端的IP地址,也即IP报文的源地址确定是否认证通过,以确定对其进行Portal认证还是直接将其转发到公网。具体地,GD在接收到客户端访问外部网络的IP报文时,会检查该IP报文的目的IP地址是公网IP地址还是私网IP地址,如果是私网IP地址则根据GD内部的转发表对该IP报文进行转发,如果是公网IP地址,则将该报文进行隧道封装并通过GD与PD之间预先建立的隧道发送至PD。\n[0065] 由此以上的描述可以发现,本发明在GD与PD之间建立隧道允许PD灵活部署。一个PD可以服务很多个GD下连接的用户网络。组网灵活性成倍地提升,而同时由于一个PD可以服务于更多网络,因此组网成本又可以得到进一步降低。\n[0066] 请参考图2以及图6,在优选的实施方式中,本发明提供一种与上述Portal认证协助方法对应的Portal认证协助装置,应用于网关设备GD上,该GD位于Portal客户端与Portal认证设备PD之间,其中GD与PD之间通过私网相连。在软件实现方式中,该装置可以理解为GD的CPU运行相应的计算机程序所形成的逻辑装置,当然本发明并不排除硬件或其他等同实现方式。在逻辑上,该装置包括:认证检查单元、地址申请单元、表项更新单元以及报 文处理单元,其中:\n[0067] 认证检查单元,用于在客户端通过GD申请IP地址时,在内部的分配表中检查该客户端的认证标记是否为认证通过;\n[0068] 地址申请单元,用于在客户端未通过认证时,以DHCP中继的身份代表客户端向DHCP服务器DS申请私网IP地址;或者用于在客户端通过认证时,以DHCP中继的身份代表客户端向DS申请公网IP地址;\n[0069] 表项更新单元,用于在IP地址分配成功时,将客户端分配到的IP地址与其MAC地址对应关系更新到分配表中;并在收到PD的客户端认证通过通知后,在客户端分配表中将该客户端的MAC地址的认证标记修改为认证通过;\n[0070] 报文处理单元,用于在接收到客户端发送的认证请求报文时,将该报文进行隧道封装并通过GD与PD之间预先建立的隧道发送至PD,其中该隧道报文的隧道IP地址为私网IP地址。\n[0071] 进一步地,该装置还包括:第一隧道处理单元,用于根据管理员指定的PD的私网IP地址,向PD发起隧道连接请求以与PD在私网内建立隧道;其中所述隧道为GRE隧道或其他隧道。进一步地,所述分配表中保存有该客户端MAC地址与认证标记的对应关系,所述认证检查单元在内部的分配表中检查该客户端的认证标记是否为认证通过具体包括:根据客户端DHCP报文中的MAC地址获取分配表中对应的认证标记并检查该认证标记是否为认证通过的标记。进一步地,所述报文处理单元具体用于在接收到客户端访问外部网络的IP报文时,检查该IP报文的目的IP地址是公网IP地址还是私网IP地址,如果是私网IP地址则根据GD内部的转发表对该IP报文进行转发,如果是公网IP地址,将该报文进行隧道封装并通过GD与PD之间预先建立的隧道发送至PD,其中该隧道报文的隧道IP地址为私网IP地址。进一步地,所述表项更新单元进一步用于在接收到PD发送的客户端下线通知时,将分配表中该下线客户端对应的表项清除。\n[0072] 请参考图2以及图7,在优选的实施方式中,本发明提供一种与上述Portal 认证处理方法相对应的Portal认证处理装置,该装置应用于网络中的Portal认证设备PD上,该网络还包括Portal客户端以及网关设备GD,其中该GD位于Portal客户端与PD之间,其中GD与PD之间通过私网相连。在软件实现方式中,该装置可以理解为GD的CPU运行相应的计算机程序所形成的逻辑装置,当然本发明并不排除硬件或其他等同实现方式。在逻辑上,该装置包括:前置判断单元以及认证处理单元,其中:\n[0073] 前置判断单元,用于在隧道接口将接收到的隧道报文解封装后得到客户端发送的原始IP报文,判断该原始报文的目的IP地址是否为预设的免认证IP地址,如果是则对该IP报文进行NAT处理后转发该IP报文,否则通过隧道接口触发客户端进行Portal认证;\n[0074] 认证处理单元,用于在确定客户端认证通过时向GD发送客户端认证通过通知,并向Portal服务器PS发送客户端认证通过通知以通过PS来触发用户重新申请IP地址。\n[0075] 进一步地,所述认证处理单元进一步用于在确定客户端下线时,向GD以及PS发送对应的客户端下线通知。进一步地该装置还包括:第二隧道处理单元,用于接收GD发送的隧道连接请求以与GD建立隧道连接;其中所述隧道为GRE隧道或其他隧道。进一步地,其中认证处理单元向GD发送客户端认证通过通知的过程具体包括:根据内部NAT转换记录确定该客户端的私网IP地址,并在该通知中携带该客户端的私网IP地址。\n[0076] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
法律信息
- 2017-04-19
专利权人的姓名或者名称、地址的变更
专利权人由杭州华三通信技术有限公司变更为新华三技术有限公司
地址由310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地变更为310052 浙江省杭州市滨江区长河路466号
- 2016-10-12
- 2014-04-02
实质审查的生效
IPC(主分类): H04L 9/32
专利申请号: 201310486080.1
申请日: 2013.10.16
- 2014-01-22
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-07-11
|
2011-11-23
| | |
2
| | 暂无 |
2012-06-04
| | |
3
| |
2011-05-25
|
2009-11-20
| | |
4
| |
2012-10-17
|
2012-06-29
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |