发明内容
本发明的目的是提供一种穿越NAT下发策略的方法和一种通信装置,以解决现有技术中由于NAT动态更新映射表导致服务器无法主动下发策略的问题。
为解决上述问题,本发明公开了一种穿越网络地址转换NAT设备下发策略的方法,所述方法包括:
节点按预置周期向服务器发送第一心跳报文,所述预置周期小于NAT设备更新周期;
NAT设备接收所述第一心跳报文,根据该第一心跳报文建立所述节点与服务器的映射表;
NAT设备按预定规则生成第二心跳报文;
NAT设备将第二心跳报文转发至对应的服务器;
服务器生成与所述第二心跳报文相应的策略信息;
服务器向所述节点发送策略信息;
若NAT设备收到所述策略信息,则按照存储的所述映射表将该策略信息转发至相应的节点。
其中,所述节点为接入设备或终端。
其中,所述第一心跳报文中包括与所述节点相应的第一地址标识,所述第二心跳报文中包括经NAT设备按预定规则转换的第二地址标识,所述映射表中存储第一地址标识和第二地址标识的映射关系。
优选的,服务器生成与所述第二心跳报文相应的策略信息之前还包括:服务器保护现场;
所述服务器向节点发送策略信息之后还包括:服务器恢复现场。
优选的,服务器生成与所述第二心跳报文相应的策略信息,包括:
服务器向接入设备发送终端状态查询请求;
接入设备获取所述终端状态信息,以及将该终端状态信息返回至所述服务器;
服务器生成与所述终端状态信息相应的策略信息。
优选的,所述方法还包括:
若服务器在指定期限内能够收到第二心跳报文,则按一定规则多次下发策略。
优选的,所述节点按预置周期向服务器发送第一心跳报文之前还包括:终端向服务器发送认证请求信息,若认证通过,执行后续步骤。
本发明还公开了一种节点,所述节点包括:
存储单元,用于存储报文发送周期,该报文发送周期小于所述节点对应的NAT设备的映射表更新周期;
心跳报文获取单元,用于获取第一心跳报文;
报文发送单元,用于按存储单元中的报文发送周期向服务器发送心跳报文获取单元所获取的第一心跳报文;
策略通信单元,用于接收NAT设备按照存储的映射表转发至相应的节点的策略信息。
优选的,所述节点为接入设备或终端,当所述节点为接入设备时,所述节点还包括:
查询响应单元,用于接收服务器向接入设备发送的终端状态查询请求;
状态信息获取单元,用于获取所述终端状态信息;
状态信息发送单元,用于发送状态信息获取单元所获取的状态信息至所述服务器。
本发明还公开了一种服务器,所述服务器包括:
心跳报文获取单元,用于从NAT设备获取第二心跳报文;
策略生成单元,用于生成与所述心跳报文获取单元所获取的第二心跳报文相应的策略信息;
策略发送单元,用于向所述节点发送所述策略生成单元所生成的策略信息。
优选的,所述服务器还包括:现场处理单元,用于在策略生成单元生成策略信息之前保护现场,并在策略发送单元向所述节点发送策略信息之后恢复现场。
优选的,所述服务器还包括:状态信息获取单元,用于从接入设备获取终端状态信息;所述策略生成单元还包括:第二策略生成单元,用于根据状态信息获取单元所获取的终端状态信息生成相应的策略信息。
优选的,所述服务器还包括:认证请求接收单元,用于接收认证请求;认证验证单元,用于验证认证请求接收单元所接收的认证请求是否合法;认证应答单元,用于根据认证验证单元的认证结果发送相应的应答消息。
与现有技术相比,本发明的上述一方案具有以下效果:
现有技术中由于NAT动态更新映射表,造成服务器无法将策略信息发送至相应的节点,本发明提出由节点定期向服务器发送心跳报文;NAT根据该心跳报文建立节点与服务器的映射表;若NAT收到服务器下发的策略信息,则按照存储的映射表将所述策略信息转发至相应的节点。这样一来,使得服务器能够主动将策略信息发送至节点,很好地解决了现有技术存在的上述问题。
具体实施方式
为克服现有技术中由于NAT动态更新映射表,造成服务器无法主动下发策略的问题,本发明提出由节点定期向服务器发送心跳报文;NAT根据该心跳报文建立节点与服务器的映射表;若NAT收到服务器下发的策略信息,则按照存储的映射表将所述策略信息转发至相应的节点。这样一来,使得服务器能够主动将策略信息发送至节点,很好地解决了现有技术存在的上述问题。
概括而言,本发明所述方法包括以下步骤:
s1,节点按预置周期向服务器发送第一心跳报文,所述预置周期小于NAT更新周期;
s2,NAT接收所述第一心跳报文,根据该第一心跳报文建立所述节点与服务器的映射表。
s3,NAT按预定规则生成第二心跳报文。
s4,NAT将第二心跳报文转发至对应的服务器。
s5,服务器生成与所述第二心跳报文相应的策略信息。
s6,服务器向所述节点发送策略信息。
s7,若NAT收到所述策略信息,则按照存储的述映射表将该策略信息转发至相应的节点。
本发明中将节点发送的心跳报文称为第一心跳报文。本发明对于如何设置发送第一心跳报文的预置周期不做限制,可在实施本发明时根据需要自行决定,例如按照时间设定,或者按照流量设定等,但无论采用何种方式,该预置周期的设置均应小于NAT更新周期,即小于NAT动态更新映射表的周期,以保证NAT始终能够有效地转发来自服务器的策略信息。
所述第一心跳报文中至少应包含源地址标识和目的地址标识,例如,若以IP地址和端口作为地址标识,则所述源地址标识和目的地址标识分别对应于该节点在内网中的IP地址和端口,以及位于外网中服务器的IP和端口。NAT根据收到的第一心跳报文建立节点与服务器的映射表,其内容示例如表1所示:
源地址标识 |
NAT地址标识 |
目的地址标识 |
节点IP、端口 |
NAT对外提供的IP、端口 |
服务器IP、端口 |
表1
NAT收到第一心跳报文后,利用自身的IP和端口替换报文中的源IP和端口,该替换后生成的心跳报文即本发明所述的第二心跳报文。上述表1中的源地址标识既本发明所述的第一地址标识,NAT地址标识即本发明所述的第二地址标识。
优选的,若服务器在指定期限内均能收到所述第二心跳报文,则可按一定规则多次下发策略。服务器能够收到第二心跳报文,则说明所述NAT上建立了有效的映射表,因此保证了策略信息能够正确下发。
所述向服务器发送心跳报文的节点既可以是内网中的终端,也可以是接入设备等其它能够与外部服务器进行通信的设备:
若所述节点为终端,NAT建立该终端与服务器的映射表;若NAT收到服务器下发的策略信息,则按照该映射表将策略信息转发至相应的终端。
优选的,以接入设备作为发送第一心跳报文的节点,NAT建立该接入设备与服务器的映射关系表。在这种情况下,服务器即可以将策略信息下发至接入设备,也可以将策略信息直接下发至终端。若需要将策略信息直接下发至终端,接入设备需要预置终端标识和终端地址的映射关系,服务器下发的策略信息中还需要包括指定的终端标识,接入设备收到该策略信息后,根据该信息中的终端标识将策略信息转发至相应的终端。
目前,接入设备通常与内网中的两个或多个用户终端相连,其作用主要表现为两个方面:
1)流量控制。终端与外部的通信都须经过接入设备,因此接入设备能够将内网对服务器的通信流量控制在一个合理的范围内,避免服务器过载。
2)策略控制。按照一定的规则对内网中的终端实现策略控制,如对用户终端进行检查、隔离、监控等。
在实际应用中根据用户采用的接入认证技术不同,接入设备可具有不同的形态,比如:
在PPPoE(Point-to-Point Protocol Over Ethernet,基于以太网点对点传输协议)认证方式下,接入设备指BRAS(Broadband Remote Access Server,宽带远程接入服务器)或BAS(Broadband Access Server,宽带接入服务器)设备。通常宽带接入服务器是路由器设备或专用的具有路由功能的网关设备。
在802.1x认证方式下,接入设备指支持802.1x协议的网络设备。通常为以太网交换机设备。
在Web/Portal(网络/门户)认证方式下,接入设备指协助完成Portal认证过程的控制设备,可以是专用的网关设备,也可以是支持Portal认证功能的路由器、交换机设备。
另外,在WLAN(Wireless Local Area Network,无线局域网)应用中,WLAN Controller(无线控制器设备)也是一种接入设备。
下面,参见图3,以接入设备发送心跳报文为例对本发明所述方法的一个实施例进行描述。
步骤301,接入设备按预置周期向服务器发送第一心跳报文,所述预置周期小于NAT更新周期。
步骤302,若NAT收到所述第一心跳报文,执行下面的步骤:
步骤3021,建立接入设备与服务器的映射表。
步骤3022,按预定规则生成第二心跳报文。
步骤3023,将第二心跳报文发送至对应的服务器。
步骤303,若服务器收到第二心跳报文,执行3031。
步骤3031,向所述接入设备返回终端状态查询请求,该查询请求中包括指定的终端标识。
在实际应用中,终端的状态可表现为多种形式,例如,终端是否通信正常、终端上运行的操作系统、软件版本等。
步骤304,接入设备获取终端的当前状态信息,以及将该状态信息发送至对应的服务器。
接入设备可通过多种方式收集终端的当前状态信息,例如发送检测报文,根据是否在指定期限内收到应答来判断终端是否故障。优选的,接入设备通过向终端发送查询报文获取终端的当前状态,其具体过程如步骤3041和3042。
步骤3041,接入设备向终端发送状态查询请求。
步骤3042,终端向接入设备返回状态信息。
步骤305,服务器根据收到的终端当前状态信息生成相应的策略信息。
步骤306,服务器向接入设备发送所述策略信息。
步骤307,若NAT收到所述策略信息,则执行步骤308。
步骤308,NAT按照存储的述映射表将该策略信息转发至对应的接入设备。
现有技术中,由于NAT动态更新映射表,服务器无法主动访问内网中的终端、获知该终端的状态,也就无法对终端进行监控和维护。在上述实施例中,接入设备按预定周期向服务器发送第一心跳报文,以及将终端的当前状态信息发送至服务器,因此,服务器可根据该终端的当前状态生成并下发相应的策略信息,实现了对终端实时地、动态地监控和维护,有效提高了内网中设备运行的可靠性和稳定性。
需要指出的是,上述由接入设备获取终端的当前状态信息只是本发明优选的方法,在实施本发明时也可采用别的方式获取终端的状态信息。例如,服务器直接向终端法送状态查询请求,该终端直接向服务器返回状态信息。
以上通过实施例介绍了本发明所述的一种穿越NAT主动下发策略的方法,下面结合具体的应用环境,对本发明所述方法做进一步详细说明。
参见图2,假设所述服务器为运营商业务中心的服务器,该服务器承担用户认证以及策略下发的任务。与服务器对应的是企业内网,该内网中接入设备与多个用户终端相连接,所有用户终端与服务器的通信都需经过接入设备和NAT设备的转换。在该运营模式下,用户终端上线后服务器开始计费。下面,参见图4,对现有技术中用户终端上线、下线的过程作一简单描述:
首先看上线过程:
步骤401,用户终端向接入设备发送上线请求。
步骤402,接入设备放开用户上网权限。
步骤403,用户终端向接入设备发送用户认证请求信息。
认证请求信息包括用户标识、密码等信息。
步骤404,接入设备向服务器发送认证请求信息。
步骤4041,认证请求信息经过NAT时,NAT建立接入设备与服务器的映射表。
步骤4042,NAT发送认证请求信息至服务器。
步骤405,若认证通过,服务器向接入设备返回应答消息。
步骤4051,所述应答消息由NAT根据存储的映射表转发至该接入设备。
步骤406,接入设备向服务器发送计费开始报文。
步骤407,若服务器收到计费开始报文,则开始计费,同时返回计费应答消息和策略信息。
步骤408,接入设备根据策略信息设置用户终端的上网权限。
至此,用户上线,服务器开始计费。
用户下线的过程与上线过程类似,区别在于该过程开始于用户终端发送下线请求,若接入设备收到服务器返回的计费结束报文则下线成功。
基于上述方式,在用户终端成功上线后,若用户终端在一段时间内没有主动与服务器再次进行通信,由于NAT动态更新映射表,将导致服务器无法主动访问用户终端或接入设备,造成策略下发失败。在本发明的应用实施例中,在用户上线后,接入设备仍按预置周期向服务器发送第一心跳报文,从而很好的解决了现有运营方式下存在的上述问题。
参见图5,图5示出了该应用实施例的步骤流程图,其详细过程描述如下:
步骤501,用户上线。
步骤502,接入设备按预置周期发送第一心跳报文。
第一心跳报文也可以由用户终端向接入设备发送,再由接入设备向服务器发送。本例中优选的,所述第一心跳报文还用于通知服务器计费更新,以避免该用户终端实际上已经掉线,但服务器仍然计费的问题。本领域技术人员在实施本发明时可根据具体的应用赋予第一心跳报文更多的作用,以尽可能有效地利用数据。
在实施时,所述第一心跳报文还应符合相应的认证协议,例如RADIUS(Remote Authentication Dial In User Service,远程拨号认证)协议报文格式:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Identifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Authenticator |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Attributes...
+-+-+-+-+-+-+-+-+-+-+-+-+-
在属性中标明该报文为计费更新报文。
步骤503,NAT接收所述第一心跳报文,根据该第一心跳报文建立接入设备与服务器的映射表。
步骤504,NAT按预定规则生成第二心跳报文。
步骤505,NAT将第二心跳报文转发至对应的服务器。
步骤506,启动延时定制器。
当服务器收到第二心跳报文后,保护现场,启动延时定时器,并触发后续的主动策略下发动作。这里的保护现场可以是中止原有的程序、进程,记录相关的步骤、状态信息等,相应的,恢复现场就是恢复执行被中止的程序、进程等操作。在本例中,按照原有的程序,服务器收到第二心跳报文,也就是所述计费更新报文后应该立即返回报文应答消息,但本发明通过启动延时定时器保护现场,在服务器返回应答消息之前执行策略下发,在策略下发结束后,中止延时定时器、恢复现场,并执-行后续的返回应答消息的步骤,这样一来,用户几乎无法察觉服务器主动下发策略下发对原有业务和流程产生的影响,大大降低了实施本发明的难度和成本。
步骤507,用户状态查询。
服务器根据设置的安全策略向用户发送状态查询请求,首先由服务器向接入设备发送“用户状态查询”请求报文USER_STATUS_REQ,要求查询用户是否在线、用户端口信息、用户终端信息、当前运行是否正常等。内容举例:
字段名 |
含义 |
event_ID; |
事件ID |
destIPAddr; |
目的IP地址 |
phrase=onlineprocess; |
已上线 |
配置项1 |
|
user_ip_addr |
用户端标识(IP地址) |
user_os_version; |
操作系统 |
配置项2 |
|
process_name; |
进程名称 |
application_name; |
应用软件名称 |
…… |
|
步骤5071,NAT根据存储的映射表转换USER_STATUS_REQ,然后将改报文发送至接入设备。
步骤5072,接入设备向用户端发送状态查询请求。
接入设备向用户侧发送“用户状态查询”请求报文USER_STATUS_REQ。
步骤5073,用户端向接入设备返回用户状态。
用户端的客户端软件根据查询请求的要求,收集到用户的状态信息,通过USER_STATUS_ACK报文返回给接入设备。内容举例:
字段名 |
含义 |
event_ID; |
事件ID |
destIPAddr; |
目的IP地址 |
phrase=onlineprocess; |
已上线 |
配置项1 |
|
user_ip_addr |
xx.xx.xx.xx |
user_os_version; |
2600.xpsp_sp2_gdr.07 |
配置项2 |
|
process_name1; |
Svchost |
process_name2; |
Wisptis |
…… |
|
application_name1; |
Acrord32 |
…… |
|
步骤508:用户状态返回。
接入设备将收到的用户状态信息通过USER_STATUS_ACK报文返回给服务器。
步骤509,主动策略下发。
服务器根据收到的USER_STATUS_ACK报文生成与该用户终端当前状态相应的安全策略,然后主动向用户下发策略。
根据用户当前状态生成的安全策略可以定义对用户终端进行准入控制的一系列策略,包括用户终端安全状态评估配置、补丁检查项配置、终端修复配置以及对终端用户的隔离方式配置等。
比如,安全策略要求检查用户配置情况,格式举例:
[0159]
event_ID; |
事件ID |
destIPAddr; |
目的IP地址 |
phrase=beginprocess; |
认证开始 |
配置项1 |
|
os_version |
操作系统版本 |
os_hotfix_num; |
操作系统补丁号 |
配置项2 |
|
antivirus_name; |
杀毒软件名称 |
antivirus_ver; |
杀毒软件版本 |
…… |
|
在该策略中包含了操作系统需要安装的补丁号、杀毒软件的版本号等,下发到用户终端后由客户端软件按照策略要求执行检查并将结果上报服务器。服务器根据结果执行相应的操作。如果用户配置不合格,将用户强制隔离到独立的网段中并发送消息告知用户需要安装的补丁所在的目录,由用户自行下载安装。以下为隔离方式的格式举例:
字段名 |
含义 |
even_ID; |
事件ID |
destIPAddr; |
目的IP地址 |
status=valid|invalid; |
配置是否合格 |
连接设置 |
|
valid_ip_addr; |
合格情况下的IP地址 |
invalid_ip_addr; |
不合格情况下的IP地址 |
步骤510:服务器返回心跳报文响应消息。
策略下发结束后,服务器恢复现场,将延时定时器归位,然后返回心跳报文应答消息。步骤511,策略执行。
接入设备按照收到的策略信息执行相应的策略。
基于上述应用,管理员通过服务器就能有效地对内网中的用户终端进行安全控制。例如,管理员可以根据安全要求预先在服务器上设定相应的安全策略,比如,设定限制用户使用“BT”类软件。当服务器向接入设备发送“用户状态查询”请求后,由接入设备向用户终端发送“用户状态查询”请求,用户端通过安装的端软件收集该终端的状态信息(包括用户端正在启用的进程),并将状态信息返回接入设备,接入设备收到用户状态信息后转发给服务器。此时如果服务器检查到用户的进程中包含有“BT”类软件的进程,则声称相应的策略下发至接入设备或终端,强制终止“BT”进程或强制断开用户的网络连接使用户下线。
步骤512,用户下线。
以上通过具体的例子描述了本发明所述的一种穿越NAT下发策略的方法,下面参照上文所述内容,同时参照图6,对本发明所述的一种通信装置的实施例进行介绍。如图6所示,所述装置包括:
存储单元,用于存储报文发送周期,该报文发送周期小于所述装置对应的NAT的映射表更新周期;心跳报文获取单元,用于获取第一心跳报文;报文发送单元,用于按存储单元中的报文发送周期发送心跳报文获取单元所获取的第一心跳报文;策略通信单元,用于接收和/或发送策略信息。
优选的,所述装置还包括:查询响应单元,用于接收状态查询请求;状态信息获取单元,用于获取状态信息;状态信息发送单元,用于发送状态信息获取单元所获取的状态信息。
参见图7,图7示出了本发明另一种通信装置的结构框图。所述装置包括:
心跳报文获取单元,用于获取第二心跳报文;策略生成单元,用于生成与所述心跳报文获取单元所获取的第二心跳报文相应的策略信息;策略发送单元,用于发送所述策略生成单元所生成的策略信息。
优选的,所述装置还包括:现场处理单元,用于保护或恢复现场。
优选的,所述装置还包括:状态信息获取单元,用于获取状态信息;所述策略生成单元还包括:第二策略生成单元,用于根据状态信息获取单元所获取的状态信息生成相应的策略信息。
优选的,所述装置还包括:认证请求接收单元,用于接收认证请求;认证验证单元,用于验证认证请求接收单元所接收的认证请求是否合法;认证应答单元,用于根据认证验证单元的认证结果发送相应的应答消息。
应用上述装置,本发明还公开了一种通信系统,该系统包括服务器、接入设备,以及与所述接入设备相应NAT和多个通信终端,其中,所述接入设备包括:存储单元,用于存储报文发送周期,该报文发送周期小于所述装置对应的NAT的映射表更新周期;第一心跳报文获取单元,用于获取第一心跳报文;报文发送单元,用于按存储单元中的报文发送周期发送第一心跳报文获取单元所获取的第一心跳报文;策略通信单元,用于接收和/或发送策略信息。
其中,NAT按一定规则将报文发送单元所发送的第一心跳报文转换为第二心跳报文。
所述服务器包括:心跳报文获取单元,用于获取第二心跳报文;策略生成单元,用于生成与所述心跳报文获取单元所获取的第二心跳报文相应的策略信息;策略发送单元,用于发送所述策略生成单元所生成的策略信息。
上述装置和系统的实现细节,请参见上文关于方法实施例的描述,这里不再赘述。本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上对本发明所提供的一种穿越NAT下发策略的方法和一种通信装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,说明书内容不应理解为对本发明的限制。