具体实施方式
本发明的核心思想是:根据NAT日志对流量监控设备中流量的原始用户信息进行识别,从而在流量监控设备上建立完整的业务模型,并利用获取的原始用户信息对用户的网络访问进行控制。
图2是本发明实施例一种流量监控方法的流程图。图2所示的流量监控方适用于具有NAT网关的组网中,如图2所示,该方法包括以下步骤:
步骤201,流量监控设备接收NAT网关上报的NAT日志,从NAT日志中解析出会话报文的NAT转换信息,并保存到NAT转换表中;所述NAT转换信息包括所述会话报文的源五元组信息以及转换后的五元组信息。
本步骤中,如果NAT网关是对来自VPN的报文进行NAT转换处理,则所述NAT转换信息还包括:会话报文的源VPN信息和NAT转换后的VPN信息。此时的NAT转换信息为如下映射关系信息:(源VPN、源IP、源端口、目的IP、目的端口、协议)<------->(转换后VPN、转换后的源IP、转换后的源端口、目的IP、目的端口、协议)。
在图1所述的组网中,本步骤中所述的NAT网关即为PE设备,即PE1。
步骤202,流量监控设备接收到一会话的报文时,根据该报文的五元组信息匹配NAT转换表中的转换后的五元组信息,如果匹配到相同的转换后的五元组信息,则将NAT转换表中的与该转换后的五元组信息所对应的NAT转换信息保存到所述会话的会话表中,以便根据所述会话的会话表中NAT转换信息对所述会话的流量进行管理。
本步骤中,将NAT转换信息保存在会话表中是对原有会话表的扩展,使得会话表多了一项NAT转换信息。另外,在本步骤中如果根据接收报文的五元组信息没有在NAT转换表中配置到相同的转换后的五元组信息,则按现有的没有NAT转换过程的普通会话处理流程处理,这里不再详述。
本步骤中,如果是流量监控设备在线部署的组网,例如,流量监控设备在线部署于网络地址转换NAT网关和公网接口之间,则流量监控设备根据所述会话的会话表中的NAT转换信息对所述会话的流量进行管理;如果是流量监控设备旁路部署的组网,例如,NAT网关和公网接口之间的流量被镜像到旁路部署的流量监控设备,则流量监控设备将所述会话的会话表中的NAT转换信息发送给策略处理设备,以使得策略处理设备根据所述NAT转换信息对所述会话进行管理。
本步骤中,根据NAT转换信息中的转换前的源VPN信息、源IP和源端口等信息对会话流量进行管理,包括限速、阻断和干扰等。
图2所示的方案不仅能够根据原始用户信息对用户会话流量进行管理,且相对于现有的将流量监控设备部署于VPN与PE设备之间的方案,投资小、流量监控设备的处理负担也小。
在图2所示的方案中,还可以进一步由流量监控设备向日志服务器上报所述会话的会话日志,其中,在所述会话日志中流量监控设备将所述会话表NAT转换信息中的源VPN信息和源五元组信息作为所述会话的源端信息,从而实现实时识别用户的流量信息和网络访问行为等。
在现有技术中,由NAT网关向日志服务器上报NAT日志,实现对私网用户访问Internet公网的情况进行跟踪、审计。但是由于NAT网关设备不具备应用层深度检测功能,因此无法根据NAT日志识别出用户具体访问的应用及用户流量的应用层信息;同时,发送到日志服务器的信息适用于流量统计、分析和审计,但无法根据该信息在监控设备上配置策略,实时对用户流量进行控制。但是流量监控设备具有非常强大的应用识别功能,因此本发明的方案结合NAT日志可以实时对用户流量进行监控,记录用户的访问行为,并配置策略实时对用户的网络访问行为进行限制。并且,本发明中由流量监控设备向日志服务器上报会话日志的方案,由于监控设备具有非常强大的应用识别功能,因此向日志服务器上报的会话日志的内容也可以做到更加详细精确。
在图2所示的方案中,步骤201和步骤202可以为并行处理流程,因此会出现当某一新会话的流量到达流量监控设备时,监控设备上还没有创建对应于该会话的NAT转换表项。对于此问题本发明给出了如图3所示的定时器解决方案。
图3是本发明实施例流量监控设备采用定时老化机制匹配NAT转换表的流程图。如图3所示,该方法包括以下步骤:
步骤301,接收当前报文并进行预处理。
步骤302,根据当前报文标识(如五元组)查找会话表。
步骤303,判断当前报文是否为新会话的报文,是则执行步骤304,否则执行步骤308。
本步骤中,如果在步骤302中在会话表中查找到当前报文标识,则当前报文不是新会话的报文,反之,如果在会话表中没有找到当前报文标识,则当前报文是新会话的报文。
步骤304,根据当前报文的五元组信息查找NAT转换表;
步骤305,判断是否从NAT转换表中找到与当前报文的五元组信息匹配的转换后的五元组信息,是则执行步骤306,否则执行步骤307。
步骤306,创建与当前报文对应的会话表,并将NAT转换表中的匹配项添加到会话表的扩展项中。执行步骤308。
步骤307,创建与当前报文对应的会话表,并启动NAT转换信息获取定时器,当定时器老化时(即超时),再次从NAT转换表中找到与当前报文的五元组信息匹配的转换后的五元组信息,并将NAT转换表中的匹配项添加到会话表的扩展项中。
本步骤中,如果定时器老化时,仍未能从NAT转换表中找到匹配项,则认为该流量未经NAT转换处理,按现有的普通会话的处理流程进行处理。定时器的定时时间可以根据NAT日志处理速度、NAT日志上报速度进行设置。
步骤308,对当前报文进行深度检测、应用识别和策略处理等。
步骤309,发送报文。
对于用户到Internet出口之间经过多次NAT转换的情况,即在会话流量到达流量监控设备之前经过多级NAT网关进行多次NAT处理的情况,本发明通过在流量监控设备上配置各NAT网关的级别信息来实现完整记录用户的整个NAT转换过程,提取用户原始信息。下面举例进行说明。
图4是本发明实施例中存在多级NAT网关的组网示意图。在图4中以两级NAT转换为例,如图4所示,用户流量在访问公网的路径上经过两次NAT转换,即在NAT1网关1和NAT网关2均进行NAT转换,流量监控设备部署在NAT网关2与公网连接的链路上。
在图4中,为了对经过多级NAT转换的用户原始信息进行识别,在流量监控设备上静态配置各NAT网关的级别信息,级别号可以随NAT网关离流量监控设备的跳数的增加而递增,例如在本例中,在流量监控设备上配置NAT网关2的级别为一级,而NAT网关1的级别为二级。在流量监控设备上将NAT网关1和NAT网关2上报的针对同一会话的NAT转换信息采用链表结构保存。当流量监控设备上有新的会话时,通过查找级别一的NAT转换表,找到对应于该会话的NAT转换链表,从而实现获取原始用户信息的功能。
NAT网关2上报的NAT转换信息为:(S-IPPC,S-PortPC,D-IPSer,D-PortSer,TCP)<----->(S-IPR1,S-PortR1,D-IPSer,D-PortSer,TCP);
NAT网关1上报的NAT转换信息为:(S-IPR1,S-PortR1,D-IPSer,D-PortSer,TCP)<----->(S-IPR2,S-PortR2,D-IPSer,D-PortSer,TCP)
其中,前缀“S”表示“源”,前缀“D”表示“目的”,下标PC表示用户,下标“Ser”表示用户要访问的公网服务器,下标“R1”表示NAT网关1,下标“R2”表示NAT网关2。
当流量监控设备首先收到级别为一级的NAT网关上报文NAT日志时,从中解析NAT转换信息,根据NAT转换信息匹配NAT转换表中级别为2的链表节点中的NAT转换信息,如果有匹配的节点(这里匹配是一级NAT网关上报的NAT转换信息中的转换前的五元组与级别为2的链表节点中的NAT转换信息中的转换后的五元组相同),则在该级别为2的链表节点所对应的级别为1的链表节点中保存所述解析的NAT转换信息;如果没有匹配的节点,则建立一个新的级别为1的链表节点,并将所述解析的NAT转换信息保存其中。同理,当流量监控设备首先收到级别为二级的NAT网关上报文NAT日志时,从中解析NAT转换信息,根据NAT转换信息匹配NAT转换表中级别为1的链表节点和级别为3(在有3级NAT转换的情况下)的链表节点中的NAT转换信息,如果匹配到,则将所述解析的NAT转换信息写入链表中的相应位置,否则新建一个新的级别为2的链表节点,并将所述解析的NAT转换信息保存其中。
图5是本发明实施例在多级NAT转换情况下的NAT转换表创建流程图。如图5所示,包括以下步骤:
步骤501,流量监控设备接收NAT日志,从中解析NAT转换信息,并获取发送该NAT日志的当前NAT网关的IP地址。
步骤502,流量监控设备根据自身的NAT网关级别配置信息,判断当前NAT网关是否配置了级别,是执行步骤504,否则执行步骤503。
步骤503,在NAT转换表中创建新节点记录所述解析的NAT转换信息,该新建节点的级别为1。结束本流程。
步骤504,流量监控设备从NAT转换表中的与当前NAT网关的级别具有相邻级别的链表节点中查找与所述解析的NAT转换信息匹配的节点。
步骤505,如果找到匹配的节点,则执行步骤506,否则执行步骤507。
步骤506,将所述解析的NAT转换信息插入NAT转换表中的相应链表的相应位置。结束流程。
步骤507,在NAT转换表中创建新节点记录所述解析的NAT转换信息,该新建节点的级别与当前NAT网关的级别相同。结束流程
图6是本发明实施例在多级NAT转换情况下的NAT转换表的存储结构示意图。如图6所示,级别1的NAT转换信息可以采用哈希(HASH)或链表形式存储,对于一个级别1的节点,与之对应的会话的更高级别的NAT转换信息以链表形式存储。
通过上述实施例可见,本发明的方案解决了在网络Internet出口网关进行流量监控,且网关配置NAT转换情况下,能够准确、实时地识别用户原始信息的需求。利用本发明的技术方案,既可以对网络出口流量进行深度检测和分析,又能准确识别流量的原始用户信息,从而获得准确的网络出口业务流量信息和用户上网行为信息,为企业网络访问策略制定提供依据。另外,用户可以在Internet出口直接针对私网用户的网络访问进行策略控制,包括限速、干扰、阻断等动作,限制用户的网络访问,从而减轻网络出口拥塞程度,保证正常业务能够顺利进行。
图7为本发明实施例一种流量监控设备的组成结构框图。图7所示的该流量监控设备在线部署于NAT网关和公网接口之间,如图7所示,该设备包括:NAT日志处理模块701、NAT转换表存储模块702、NAT转换信息匹配模块703、会话表存储模块704和策略处理模块705,其中,
NAT转换表存储模块702,用于保存NAT转换表;
会话表存储模块704,用于保存会话表;
NAT日志处理模块701,用于接收NAT网关上报的NAT日志,从NAT日志中解析出会话报文的NAT转换信息,并保存到NAT转换表中;所述NAT转换信息至少包括所述会话报文的源五元组信息以及转换后的五元组信息;如果NAT网关是对来自VPN的报文进行NAT转换,则所述NAT转换信息还包括会话报文的源VPN信息和转换后的VPN信息。
NAT转换信息匹配模块703,用于在接收到一会话的报文时,根据该报文的五元组信息匹配NAT转换表中的转换后的五元组信息,如果匹配到相同的转换后的五元组信息,则将NAT转换表中的与该转换后的五元组信息所对应的NAT转换信息保存到所述会话的会话表中,以便根据所述会话的会话表中NAT转换信息对所述会话的流量进行管理;
策略处理模块705,用于根据所述会话的会话表中的NAT转换信息对所述会话的流量进行管理。
在图7中,NAT转换信息匹配模块703,根据该接收报文的五元组信息匹配NAT转换表中的转换后的五元组信息时,如果没有匹配到,则启动一定时器,当定时器超时时再次根据该报文的五元组信息匹配NAT转换表中的转换后的五元组信息。
如图7所示的流量监控设备,如果会话流量在到达该流量监控设备之前经过多级NAT网关进行了多次NAT处理,则该流量监控设备进一步包括:NAT网关级别信息存储模块706,用于保存各NAT网关的级别信息;NAT转换表中以链表结构保存对应于同一会话的NAT转换信息;NAT日志处理模块701,用于在接收一NAT网关上报的NAT日志,从NAT日志中解析出NAT转换信息,并从NAT网关级别信息存储模块中获取该NAT网关的级别信息,根据该NAT网关的级别信息将NAT转换信息保存到NAT转换表中的相应链表节点中。
如图7所示,该监控设备进一步包括:会话日志上报模块707,用于向日志服务器上报所述会话的会话日志;其中,在所述会话日志中将所述会话表NAT转换信息中的源VPN信息和源五元组信息作为所述会话的源端信息。
图8为本发明实施例另一种流量监控设备的组成结构框图。图8所示的流量监控设备是旁路部署的,NAT网关和公网接口之间的流量被镜像到旁路部署的该流量监控设备,如图8所示,该流量监控设备与图7所示的流量监控设备的区别在于:不包括策略处理模块,而是包括:NAT转换信息发送模块801,用于将所述会话的会话表中的NAT转换信息发送给策略处理设备,以使得策略处理设备根据所述NAT转换信息对所述会话进行管理。
由上述实施例可见,本发明这种流量监控设备接收NAT网关上报的NAT日志,从中解析出NAT转换信息,并根据NAT转换信息会相应会话的流量进行管理的技术方案,不仅能够根据原始用户信息对用户会话流量进行管理,且相对于现有的将流量监控设备部署于VPN与PE设备之间的方案,投资小、流量监控设备的处理负担也小。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。