掌桥专利:专业的专利平台
掌桥专利
首页

NAT模式下的数据包检测方法与转发装置

文献发布时间:2023-06-19 12:25:57



技术领域

本发明属于计算机网络技术领域,尤其是涉及一种NAT模式下进行数据包检测的方法与数据包转发装置。

背景技术

NAT(Network Address Translation,网络地址转换)环境下,所有使用本地地址的主机在和外界通信时,都要将其本地地址转换成全球IP地址,才能和因特网连接。这在一定程度上缓解了IPv4地址衰竭问题,把内网的私有地址转化成外网的公有地址,使得内部网络上的(被设置为私有IP地址的)主机可以访问Internet;而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。但是,NAT也让主机之间的通信变得复杂,导致通信效率的降低,带来诸多限制,比如影响网络速度、与某些应用的不兼容等。

特别是,许多网关类设备如防火墙,通过用户态连接跟踪机制来提升数据包转发效率,即连接的第一个数据包进入内核,进行选路或其他处理,出内核后由用户态建立连接跟踪机制,后续数据包直接通过用户态连接进行转发,减少内核处理。而NAT模式,需要每次修改数据包的地址,对数据包从端到端的路径跟踪就变得非常困难,这对于及时发现存在安全威胁的数据包来源是极为不利的。因此,如何在NAT模式下实现数据包检测和路径跟踪成为亟待解决的技术问题。

发明内容

鉴于上述背景,本发明旨在提出一种NAT模式下的数据包检测方法及数据包转发装置,实现了NAT环境的用户态连接跟踪,提高转发效率,同时适用于入侵防御对数据包的检测及日志的准确记录。

一方面,提出一种NAT模式下的数据包检测方法,包括:

判断数据包的连接类型(通过连接标识判断):若为内部请求发送连接或外部请求接收连接,将数据包输入侵防御引擎进行检测;若为内部请求接收连接或外部请求发送连接,替换目的IP后将数据包输入侵防御引擎进行检测;

入侵防御引擎对数据包检测通过后:若为内部请求发送连接或外部请求接收连接,替换源IP后发送数据包;若为内部请求接收连接或外部请求发送连接,直接发送数据包。

较佳的,所述判断数据包的连接类型之前,还包括:判断连接跟踪表中是否已存在数据包的对应连接,若已存在,则根据连接跟踪表中的连接记录处理当前数据包。

若所述连接跟踪表中不存在数据包的对应连接,则将数据包送入内核处理,在用户态连接跟踪表中创建对应的连接信息,包括:

根据数据包的请求方向,分别建立请求的发送连接与接收连接;

以及,判断连接类型:若为内部请求发送连接或外部请求接收连接,替换源IP后将数据包输入侵防御引擎进行检测,并在连接信息中保存替换前后的IP地址与端口信息。

较佳的,所述判断连接跟踪表中是否已存在数据包的对应连接,包括:计算数据包五元组信息的哈希值,并查找所述连接跟踪表中是否存在相同的哈希值,若存在则所述连接跟踪表中存在数据包的对应连接,否则不存在数据包的对应连接。

所述入侵防御引擎对数据包进行检测,包括:根据替换前的初始IP判断连接的数据包是否具有威胁,检测完成后保存数据包的修改、检测日志,以及记录并上报具有威胁的数据包初始IP。

另一方面,还提出一种数据包转发装置,包括:

判断模块,用于接收数据包,并根据连接跟踪表中是否存在对应的连接;若已存在则

根据连接跟踪表中的连接记录处理当前数据包;若不存在则将数据包送入内核处理,并且在用户态连接跟踪表中创建对应的连接信息;

NAT模块,根据连接跟踪表中的连接信息,进行数据包IP与端口的替换;

检测模块,用于对数据包进行安全检测,以确定是否转发;

发送模块,将安全检测通过的数据包,发送至目的IP。

较佳的,所述判断模块包括:

第一处理单元,对于连接跟踪表中存在对应连接的数据包,判断数据包的连接类型(通过连接标识判断):若为内部请求发送连接或外部请求接收连接,将数据包输入侵防御引擎进行检测;若为内部请求接收连接或外部请求发送连接,替换目的IP后将数据包输入侵防御引擎进行检测;

第二处理单元,对于连接跟踪表中不存在对应连接的数据包,根据数据包的请求方向,分别建立请求的发送连接与接收连接;以及,判断连接类型:若为内部请求发送连接或外部请求接收连接,替换源IP后将数据包输入侵防御引擎进行检测,并在连接信息中保存替换前后的IP地址与端口信息;

第三处理单元,对于入侵防御引擎对数据包检测通过的数据包,若为内部请求发送连接或外部请求接收连接,替换源IP后发送数据包;若为内部请求接收连接或外部请求发送连接,直接发送数据包。

所述检测模块,根据替换前的初始IP判断连接的数据包是否具有威胁,检测完成后保存数据包的修改、检测日志,以及记录并上报具有威胁的数据包初始IP。

采用上述技术方案,本发明实现了以下有益效果:在NAT环境下,用户态根据第一个通过内核的数据包生成连接时,建立发送和接收的连接,并在连接信息中保存转换前的地址和端口信息。入侵防御通过数据包匹配的连接信息进行地址修改,达到地址转换。该技术方案能够在用户态连接跟踪建立好后,此连接的后续数据包不通过内核,直接转发,适用于入侵防御系统中对检测修改数据包产生的日志进行正确记录,能够提升转发效率,并且不影响入侵防御系统对日志的正确记录。

附图说明

图1为NAT模式入侵防御系统连接内外网示意图;

图2为使用NAT访问网络时的连接建立示意图;

图3为本发明的NAT模式下数据包检测方法实施例,数据包检测流程示意图;

图4为本发明的数据包转发装置实施例,组成框图。

具体实施方式

下面结合附图与实施例,对本发明技术方案的具体内容进行详细说明。

如图1所示,NAT模式入侵防御系统连接内外网。企业内部的主机A想访问互联网的主机C,首先将请求数据包(源:ipA,目标:ipC)发送到防火墙所在主机B,B收到后将数据包源地址改为本机公网网卡的ip(源:ipA,目标:ipB),然后经互联网发送给C;C收到后将回应包(源:ipC,目标:ipB)经互联网将回应包转发给B,B收到回应包后修改其目的地址,即回应包改为(源:ipC,目标:ipA)然后将数据包转发给A。在这个过程中,修改了请求报文的源地址,叫做SNAT(source NAT POSTROUTING),用于局域网访问互联网。

而互联网主机C想访问企业内部的服务器A,但A的地址是私有地址,无法直接访问。此时,C可以访问防火墙的公网地址,C的请求数据包(源:ipC,目标:ipB)到达防火墙B后,在B的prerouting上将请求数据包的目标地址进行修改,并将数据包(源:ipC,目标:ipA)发送给A。A收到后进行回复发送响应包(源:ipA,目的ipC)到防火墙,防火墙收到后对数据包源地址进行修改,并将响应包(源:ipB,目标:ipC)给C。利用这种机制可以将企业内部的服务发布到互联网。在这个过程中,修改了请求报文的目标地址,叫做DNAT(destination NAT OSTROUTING),用于互联网访问局域网。

如图2所示,由上述的NAT原理可知,当内网访问外网时建立SNAT会建立SNAT去连接(A→B)和SNAT回连接(C→B);当外网通过DNAT访问内网时会建立DNAT去(C→B)和DNAT回连接(A→C)。实际在KNI用户态处理SNAT或DNAT时,只需要在用户态建立连接时表示两种状态SNAT_GO(A→B)/DNAT_BACK(C→B)和SNAT_BACK(C→B)/DNAT_GO(A→C)。

如图2所示,NAT模式下的数据包检测方法,包括:

首先,接收数据包,并检查连接,包括判断连接跟踪表中是否已存在数据包的对应连接。具体的检查过程包括:计算数据包五元组信息(源IP、目的IP、协议、源端口、目的端口)的哈希值,并查找所述连接跟踪表中是否存在相同的哈希值,若存在则所述连接跟踪表中存在数据包的对应连接,否则不存在数据包的对应连接。

若所述连接跟踪表中存在数据包的对应连接,则根据连接跟踪表中的连接记录处理当前数据包。包括:判断数据包的连接类型(通过连接标识判断):若为内部请求发送连接(SNAT_GO)或外部请求接收连接(DNAT_BACK),将数据包输入侵防御引擎进行检测;若为内部请求接收连接(SNAT_BACK)或外部请求发送连接(DNAT_GO),替换目的IP后将数据包输入侵防御引擎进行检测。

若所述连接跟踪表中不存在数据包的对应连接,则将数据包送入内核处理。在用户态连接跟踪表中创建对应的连接信息,包括:根据数据包的请求方向,分别建立请求的发送连接与接收连接;以及,判断连接类型:若为内部请求发送连接(SNAT_GO)或外部请求接收连接(DNAT_BACK),替换源IP后将数据包输入侵防御引擎进行检测,并在连接信息中保存替换前后的IP地址与端口信息。建立连接信息后,将数据包送入入侵防御引擎进行检测。

所述入侵防御引擎对数据包进行检测,包括:根据替换前的初始IP判断连接的数据包是否具有威胁,检测完成后保存数据包的修改、检测日志,以及记录并上报具有威胁的数据包初始IP。

进一步的,所述入侵防御引擎对数据包检测通过后:若为内部请求发送连接(SNAT_GO)或外部请求接收连接(DNAT_BACK),替换源IP后发送数据包;若为内部请求接收连接(SNAT_BACK)或外部请求发送连接(DNAT_GO),直接发送数据包。

如图3所示,一种数据包转发装置,包括:

判断模块,用于接收数据包,并根据连接跟踪表中是否存在对应的连接;若已存在则

根据连接跟踪表中的连接记录处理当前数据包;若不存在则将数据包送入内核处理,并且在用户态连接跟踪表中创建对应的连接信息;

NAT模块,根据连接跟踪表中的连接信息,进行数据包IP与端口的替换;

检测模块,用于对数据包进行安全检测,以确定是否转发;

发送模块,将安全检测通过的数据包,发送至目的IP。

作为较佳的实施方式,所述判断模块包括:

第一处理单元,对于连接跟踪表中存在对应连接的数据包,判断数据包的连接类型(通过连接标识判断):若为内部请求发送连接或外部请求接收连接,将数据包输入侵防御引擎进行检测;若为内部请求接收连接或外部请求发送连接,替换目的IP后将数据包输入侵防御引擎进行检测;

第二处理单元,对于连接跟踪表中不存在对应连接的数据包,根据数据包的请求方向,分别建立请求的发送连接与接收连接;以及,判断连接类型:若为内部请求发送连接或外部请求接收连接,替换源IP后将数据包输入侵防御引擎进行检测,并在连接信息中保存替换前后的IP地址与端口信息;

第三处理单元,对于入侵防御引擎对数据包检测通过的数据包,若为内部请求发送连接或外部请求接收连接,替换源IP后发送数据包;若为内部请求接收连接或外部请求发送连接,直接发送数据包。

作为较佳的实施方式,所述检测模块,根据替换前的初始IP判断连接的数据包是否具有威胁,检测完成后保存数据包的修改、检测日志,以及记录并上报具有威胁的数据包初始IP。

如上所述的本发明实施例的技术方案,在NAT环境下,用户态根据第一个通过内核的数据包生成连接时,建立发送和接收的连接,并在连接信息中保存转换前的地址和端口信息。入侵防御通过数据包匹配的连接信息进行地址修改,达到地址转换。在用户态连接跟踪建立好后,此连接的后续数据包不通过内核,直接转发,适用于入侵防御系统中对检测修改数据包产生的日志进行正确记录,能够提升转发效率,并且不影响入侵防御系统对日志的正确记录。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如:ROM/RAM、磁碟、光盘等。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • NAT模式下的数据包检测方法与转发装置
  • 上行数据包转发方法及装置、下行数据包转发方法及装置
技术分类

06120113294962