CN109889620A - linux系统下实现网络地址转换环回的方法、装置及存储介质 - Google Patents

linux系统下实现网络地址转换环回的方法、装置及存储介质 Download PDF

Info

Publication number
CN109889620A
CN109889620A CN201910089881.1A CN201910089881A CN109889620A CN 109889620 A CN109889620 A CN 109889620A CN 201910089881 A CN201910089881 A CN 201910089881A CN 109889620 A CN109889620 A CN 109889620A
Authority
CN
China
Prior art keywords
network
data packet
loopback
rule
destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910089881.1A
Other languages
English (en)
Other versions
CN109889620B (zh
Inventor
苏威霖
朱海明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Lianhong Technology Co ltd
Original Assignee
TP Link Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TP Link Technologies Co Ltd filed Critical TP Link Technologies Co Ltd
Priority to CN201910089881.1A priority Critical patent/CN109889620B/zh
Publication of CN109889620A publication Critical patent/CN109889620A/zh
Application granted granted Critical
Publication of CN109889620B publication Critical patent/CN109889620B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明公开了一种linux系统下实现网络地址转换环回的方法、装置及计算机可读存储介质,包括:利用iptables的extension机制自定义目标规则;将预设的环回目的地址转换规则加载到网络地址转换规则表的PREROUTING链的首端;将预设的环回源地址转换规则加载到所述网络地址转换规则表的POSTROUTING链的首端;当从LAN端接收到第一数据包时,根据所述环回目的地址转换规则对所述第一数据包进行网络目的地址转换处理;当需要从LAN端发送第二数据包时,根据所述环回源地址转换规则对所述第二数据包进行网络源地址转换处理。本发明能够利用NAT规则表中已经建立的WAN端到LAN端的IP/port映射、转发规则,为从LAN端进入和从LAN端发出的数据包自动进行NAT lookback配置,大大简化了规则配置流程和DNAT/SNAT规则表。

Description

linux系统下实现网络地址转换环回的方法、装置及存储介质
技术领域
本发明涉及计算机路由技术领域,尤其涉及一种linux系统下实现网络地址转换环回的方法、装置及计算机可读存储介质。
背景技术
网络地址转换环回(Network Address Translation lookback,NAT lookback),常用于局域网络中的用户通过NAT路由的公网IP地址访问路由背后的服务器的场合。一般情况下,如果是从公网进行访问,路由器会通过防火墙的端口映射规则将数据包转发到相应的服务器;然而,在没有设置NAT loopback规则的情况下,对于来自于局域网络的请求,路由器通常会丢弃它或只显示路由页面,无法将请求转发至相应的服务器。
通用的linux系统下没有专门的NAT lookback实现,如果需要通过netfilter实现NAT loopback功能,传统上的做法是利用iptables针对指定的IP/port逐条设置网络目的地址转换(Destination Network Address Translation,DNAT)规则或者网络源地址转换(Source Network Address Translation,SNAT)规则,但是,这种做法存在以下不足:第一,部分服务端口打开,可能需要用户手动配置NAT loopback的iptables规则,配置操作繁琐;第二,随着开放的端口增多,需添加的条目也增多,使DNAT/SNAT规则表变得更加冗杂。
发明内容
本发明实施例所要解决的技术问题在于,提供一种linux系统下实现网络地址转换环回的方法、装置及计算机可读存储介质,能够利用NAT规则表中已经建立的WAN端到LAN端的IP/port映射、转发规则,为从LAN端进入和从LAN端发出的数据包自动进行NATlookback配置,大大简化了规则配置流程和DNAT/SNAT规则表。
为了解决上述技术问题,本发明实施例提供了一种linux系统下实现网络地址转换环回的方法,包括:
利用iptables的extension机制自定义目标规则;
将预设的环回目的地址转换规则加载到网络地址转换规则表的PREROUTING链的首端;
将预设的环回源地址转换规则加载到所述网络地址转换规则表的POSTROUTING链的首端;
当从LAN端接收到第一数据包时,根据所述环回目的地址转换规则对所述第一数据包进行网络目的地址转换处理;
当需要从LAN端发送第二数据包时,根据所述环回源地址转换规则对所述第二数据包进行网络源地址转换处理。
进一步地,所述当从LAN端接收到第一数据包时,根据所述环回目的地址转换规则对所述第一数据包进行网络目的地址转换处理,具体包括:
当从LAN端接收到所述第一数据包时,获取所述第一数据包的第一目的IP/port;
基于所述第一目的IP/port,根据所述环回目的地址转换规则查找所述PREROUTING链的首端的网络目的地址转换规则;
当查找到与所述第一目的IP/port匹配的网络目的地址转换规则时,根据找到的网络目的地址转换规则对所述第一数据包进行网络目的地址转换处理,并为所述第一数据包添加预设标记。
进一步地,所述方法还包括:
当没有查找到与所述第一目的IP/port匹配的网络目的地址转换规则时,根据所述环回目的地址转换规则查找所述网络地址转换规则表的期望连接表中的条目;
当查找到与所述第一目的IP/port匹配的条目时,根据找到的条目对所述第一数据包进行网络目的地址转换处理,并为所述第一数据包添加所述预设标记。
进一步地,所述方法还包括:
当没有查找到与所述第一目的IP/port匹配的条目时,根据所述网络地址转换规则表对所述第一数据包进行处理。
进一步地,所述当需要从LAN端发送第二数据包时,根据所述环回源地址转换规则对所述第二数据包进行网络源地址转换处理,具体包括:
当需要从LAN端发送所述第二数据包时,获取所述第二数据包的第二目的IP/port;
基于所述第二目的IP/port,根据所述环回源地址转换规则查找所述POSTROUTING链的首端的网络源地址转换规则;
当查找到与所述第二目的IP/port匹配的网络源地址转换规则时,判断所述第二数据包是否添加了预设标记;
当所述第二数据包添加了所述预设标记时,根据找到的网络源地址转换规则对所述第二数据包进行网络源地址转换处理。
进一步地,所述方法还包括:
当没有查找到与所述第二目的IP/port匹配的网络源地址转换规则时,根据所述网络地址转换规则表对所述第二数据包进行处理。
进一步地,所述方法还包括:
当所述第二数据包没有添加所述预设标记时,则根据所述网络地址转换规则表对所述第二数据包进行处理。
为了解决上述技术问题,本发明实施例还提供了一种linux系统下实现网络地址转换环回的装置,包括:
目标规则定义模块,用于利用iptables的extension机制自定义目标规则;
环回目的地址转换规则加载模块,用于将预设的环回目的地址转换规则加载到网络地址转换规则表的PREROUTING链的首端;
环回源地址转换规则加载模块,用于将预设的环回源地址转换规则加载到所述网络地址转换规则表的POSTROUTING链的首端;
网络目的地址转换处理模块,用于当从LAN端接收到第一数据包时,根据所述环回目的地址转换规则对所述第一数据包进行网络目的地址转换处理;以及,
网络源地址转换处理模块,用于当需要从LAN端发送第二数据包时,根据所述环回源地址转换规则对所述第二数据包进行网络源地址转换处理。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行上述任一项所述的linux系统下实现网络地址转换环回的方法。
本发明实施例还提供了一种linux系统下实现网络地址转换环回的装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现上述任一项所述的linux系统下实现网络地址转换环回的方法。
与现有技术相比,本发明实施例提供了一种linux系统下实现网络地址转换环回的方法、装置及计算机可读存储介质,利用iptables的extension机制实现自定义的目标规则,通过将环回目的地址转换规则加载到网络地址转换规则表的PREROUTING链的首端,将环回源地址转换规则加载到所述网络地址转换规则表的POSTROUTING链的首端,能够利用NAT规则表中已经建立的WAN端到LAN端的IP/port映射、转发规则,为从LAN端进入和从LAN端发出的数据包进行匹配,并对匹配成功的数据包自动进行NAT lookback配置,大大简化了规则配置流程和DNAT/SNAT规则表。
附图说明
图1是本发明提供的一种linux系统下实现网络地址转换环回的方法的一个优选实施例的流程图;
图2是本发明提供的一种linux系统下实现网络地址转换环回的装置的一个优选实施例的结构框图;
图3是本发明提供的一种linux系统下实现网络地址转换环回的装置的另一个优选实施例的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本技术领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示,是本发明提供的一种linux系统下实现网络地址转换环回的方法的一个优选实施例的流程图,所述方法包括步骤S11至步骤S15:
步骤S11、利用iptables的extension机制自定义目标规则;
步骤S12、将预设的环回目的地址转换规则加载到网络地址转换规则表的PREROUTING链的首端;
步骤S13、将预设的环回源地址转换规则加载到所述网络地址转换规则表的POSTROUTING链的首端;
步骤S14、当从LAN端接收到第一数据包时,根据所述环回目的地址转换规则对所述第一数据包进行网络目的地址转换处理。
步骤S15、当需要从LAN端发送第二数据包时,根据所述环回源地址转换规则对所述第二数据包进行网络源地址转换处理。
具体的,利用iptables的extension机制实现自定义的目标(target)规则,使用时,将网络地址转换环回(NAT loopback)功能的实现划分成环回目的地址转换(LOOPBACKDNAT)规则以及环回源地址转换(LOOPBACKSNAT)规则这两个iptables target,并将LOOPBACKDNAT规则加载到网络地址转换(NAT)规则表的PREROUTING链的首部,将LOOPBACKSNAT规则加载到NAT规则表的POSTROUTING链的首部,以利用NAT规则表中已经建立的WAN端到LAN端的IP/port映射、转发规则作为iptables规则分别对应管理NATloopback的网络目的地址转换(DNAT)处理过程以及网络源地址转换(SNAT)处理过程;当从LAN端接收到第一数据包时,表示该第一数据包为从内网进入的数据包,则根据LOOPBACKDNAT规则对第一数据包进行DNAT处理;当需要从LAN端发送第二数据包时,表示该第二数据包为要发往内网的数据包,则根据LOOPBACKSNAT规则对第二数据包进行SNAT处理。
本发明实施例所提供一种linux系统下实现网络地址转换环回的方法,利用iptables的extension机制实现自定义的目标规则,通过将环回目的地址转换规则加载到网络地址转换规则表的PREROUTING链的首端,将环回源地址转换规则加载到所述网络地址转换规则表的POSTROUTING链的首端,能够利用NAT规则表中已经建立的WAN端到LAN端的IP/port映射、转发规则,为从LAN端进入和从LAN端发出的数据包进行匹配,并对匹配成功的数据包自动进行NAT lookback配置,大大简化了iptables的NAT lookback配置流程和DNAT/SNAT规则表,同时,也为应用层协议的NAT lookback提供了支持。
在另一个优选实施例中,所述当从LAN端接收到第一数据包时,根据所述环回目的地址转换规则对所述第一数据包进行网络目的地址转换处理,具体包括:
当从LAN端接收到所述第一数据包时,获取所述第一数据包的第一目的IP/port;
基于所述第一目的IP/port,根据所述环回目的地址转换规则查找所述PREROUTING链的首端的网络目的地址转换规则;
当查找到与所述第一目的IP/port匹配的网络目的地址转换规则时,根据找到的网络目的地址转换规则对所述第一数据包进行网络目的地址转换处理,并为所述第一数据包添加预设标记。
在本实施例中,当从LAN端接收到第一数据包(第一数据包为从内网进入的数据包)时,都会首先匹配上LOOPBACKDNAT规则,具体的,在LOOPBACKDNAT处理函数中,会根据第一数据包的第一目的IP/port在PREROUTING链的WAN端的所有DNAT规则中查找是否存在相匹配的已建立的WAN端到LAN端的IP/port映射、转发规则,如果存在,则根据查找到的与第一目的IP/port相符的DNAT规则对第一数据包进行DNAT处理,并进一步为第一数据包的mark位打上预设标记,使得第一数据包能够顺利转发。
本发明实施例所提供一种linux系统下实现网络地址转换环回的方法,根据已经建立的WAN端到LAN端的IP/port映射、转发关系,自动对从LAN端访问router/gate-way相应服务端口的数据包进行匹配,并对匹配成功的数据包进行NAT loopback,提高了用户友好度,简化了配置流程和规则表。
在又一个优选实施例中,所述方法还包括:
当没有查找到与所述第一目的IP/port匹配的网络目的地址转换规则时,根据所述环回目的地址转换规则查找所述网络地址转换规则表的期望连接表中的条目;
当查找到与所述第一目的IP/port匹配的条目时,根据找到的条目对所述第一数据包进行网络目的地址转换处理,并为所述第一数据包添加所述预设标记。
具体的,结合上述实施例,如果根据第一数据包的第一目的IP/port在PREROUTING链的首端的所有DNAT规则中找不到相匹配的DNAT规则,则根据LOOPBACKDNAT规则查找NAT规则表的期望连接(expect connection)表进行匹配,如果expect connection表中存在与第一目的IP/port相匹配的条目,则根据该条目对第一数据包进行DNAT处理,并进一步为第一数据包的mark位打上预设标记,使得第一数据包能够顺利转发。
在实际应用中,对于部分需要ALG(应用层网关)辅助的应用层协议(例如SIP),传统的iptables规则难以有效支持NAT loopback,部分应用层协议会在conntrack_in时进行expect connection匹配,但iptables规则无法有效地做针对性处理,本发明实施例所提供一种linux系统下实现网络地址转换环回的方法,能够利用NAT规则表中已经建立的WAN端到LAN端的IP/port映射、转发规则及expect connection条目进行查找,从而能够更好地支持部分需要ALG辅助的应用层协议的NAT loopback实现。
作为上述方案的改进,所述方法还包括:
当没有查找到与所述第一目的IP/port匹配的条目时,根据所述网络地址转换规则表对所述第一数据包进行处理。
可以理解的,结合上述实施例,如果根据第一数据包的第一目的IP/port既没有在PREROUTING链的首端的所有DNAT规则中找到相匹配的DNAT规则,又没有在expectconnection表中找到相匹配的条目,则在NAT规则表中进行查找,找出其他的匹配规则,并根据其他的匹配规则对第一数据包进行相应的处理。
在又一个优选实施例中,所述当需要从LAN端发送第二数据包时,根据所述环回源地址转换规则对所述第二数据包进行网络源地址转换处理,具体包括:
当需要从LAN端发送所述第二数据包时,获取所述第二数据包的第二目的IP/port;
基于所述第二目的IP/port,根据所述环回源地址转换规则查找所述POSTROUTING链的首端的网络源地址转换规则;
当查找到与所述第二目的IP/port匹配的网络源地址转换规则时,判断所述第二数据包是否添加了预设标记;
当所述第二数据包添加了所述预设标记时,根据找到的网络源地址转换规则对所述第二数据包进行网络源地址转换处理。
在本实施例中,当需要从LAN端发送第二数据包(第二数据包为要发往内网的数据包)时,同样会首先匹配上LOOPBACKSNAT规则,具体的,在LOOPBACKSNAT处理函数中,会根据第二数据包的第二目的IP/port在POSTROUTING链的首端的所有SNAT规则中查找是否存在相匹配的SNAT规则,如果存在,则判断第二数据包的mark位是否已经打上了预设标记(以筛选出mark位符合预设标记的数据包),如果是,则根据查找到的与第二目的IP/port相符的SNAT规则对第二数据包进行SNAT处理。
作为上述方案的改进,所述方法还包括:
当没有查找到与所述第二目的IP/port匹配的网络源地址转换规则时,根据所述网络地址转换规则表对所述第二数据包进行处理。
可以理解的,结合上述实施例,如果根据第二数据包的第二目的IP/port在POSTROUTING链的首端的所有SNAT规则中找不到相匹配的SNAT规则,则在NAT规则表中进行查找,找出其他的匹配规则,并根据其他的匹配规则对第二数据包进行相应的处理。
作为上述方案的改进,所述方法还包括:
当所述第二数据包没有添加所述预设标记时,则根据所述网络地址转换规则表对所述第二数据包进行处理。
可以理解的,结合上述实施例,如果第二数据包的mark位没有打上预设标记,则在NAT规则表中进行查找,找出其他的匹配规则,并根据其他的匹配规则对第二数据包进行相应的处理。
需要补充的是,一般路由器都会具备NAT forwarding功能,其中主要包括DMZ、virtual server、Upnp等常用特性,这些特性通常会依据一些用户设置或者应用程序运行结果,在iptables中添加WAN端到LAN端的端口转发规则,这些规则会在netfilter中起作用;这样就存在一个问题,要实现NAT loopback,每新增一个WAN端条目,就需要额外添加对应的LAN端条目,这样既不友好,又使得配置变得繁杂;而本发明实施例所提供一种linux系统下实现网络地址转换环回的方法,本质上就是实现一种特殊的筛选策略,在netfilter层面对数据包进行处理,让本地网络的客户端也能通过网关的公网IP顺利访问到网关后的服务端,即实现一个规则,能根据WAN端条目,自动适配LAN端转发的工作,从而大大简化了规则配置流程和规则表。
除此之外,应用协议如SIP等通常需要创建动态连接,而创建动态连接所需的IP地址和端口是在协议载荷内容中描述的,ALG(应用层网关)通常会为其创建期望连接条目,并添加到expect connection表中,从外网进入的连接请求一般会在conntrack(ct)创建的过程中进行expect connection匹配,一旦命中成功,则可以根据MASTER连接的NAT信息进行DNAT变换,达到NAT穿透的目的,然而,从LAN端进入的连接请求是无法匹配成功的;为了更好地支持NAT loopback,本发明实施例还为LAN端进入的情况查找expect connection表,并对命中的数据包进行DNAT及SNAT变换,从而也实现了对应用层协议的更好支持。
本发明实施例还提供了一种linux系统下实现网络地址转换环回的装置,能够实现上述任一实施例所述的linux系统下实现网络地址转换环回的方法的所有流程,装置中的各个模块、单元的作用以及实现的技术效果分别与上述实施例所述的linux系统下实现网络地址转换环回的方法的作用以及实现的技术效果对应相同,这里不再赘述。
参见图2所示,是本发明提供的一种linux系统下实现网络地址转换环回的装置的一个优选实施例的结构框图,所述装置包括:
目标规则定义模块11,用于利用iptables的extension机制自定义目标规则;
环回目的地址转换规则加载模块12,用于将预设的环回目的地址转换规则加载到网络地址转换规则表的PREROUTING链的首端;
环回源地址转换规则加载模块13,用于将预设的环回源地址转换规则加载到所述网络地址转换规则表的POSTROUTING链的首端;
网络目的地址转换处理模块14,用于当从LAN端接收到第一数据包时,根据所述环回目的地址转换规则对所述第一数据包进行网络目的地址转换处理;以及,
网络源地址转换处理模块15,用于当需要从LAN端发送第二数据包时,根据所述环回源地址转换规则对所述第二数据包进行网络源地址转换处理。
优选地,所述网络目的地址转换处理模块具体包括:
第一目的IP/port获取单元,用于当从LAN端接收到所述第一数据包时,获取所述第一数据包的第一目的IP/port;
网络目的地址转换规则查找单元,用于基于所述第一目的IP/port,根据所述环回目的地址转换规则查找所述PREROUTING链的首端的网络目的地址转换规则;以及,
第一网络目的地址转换处理单元,用于当查找到与所述第一目的IP/port匹配的网络目的地址转换规则时,根据找到的网络目的地址转换规则对所述第一数据包进行网络目的地址转换处理,并为所述第一数据包添加预设标记。
优选地,所述网络目的地址转换处理模块还包括:
匹配条目查找单元,用于当没有查找到与所述第一目的IP/port匹配的网络目的地址转换规则时,根据所述环回目的地址转换规则查找所述网络地址转换规则表的期望连接表中的条目;以及,
第二网络目的地址转换处理单元,用于当查找到与所述第一目的IP/port匹配的条目时,根据找到的条目对所述第一数据包进行网络目的地址转换处理,并为所述第一数据包添加所述预设标记。
优选地,所述装置还包括:
第一网络地址转换处理模块,用于当没有查找到与所述第一目的IP/port匹配的条目时,根据所述网络地址转换规则表对所述第一数据包进行处理。
优选地,所述网络源地址转换处理模块具体包括:
第二目的IP/port获取单元,用于当需要从LAN端发送所述第二数据包时,获取所述第二数据包的第二目的IP/port;
网络源地址转换规则查找单元,用于基于所述第二目的IP/port,根据所述环回源地址转换规则查找所述POSTROUTING链的首端的网络源地址转换规则;
标记判断单元,用于当查找到与所述第二目的IP/port匹配的网络源地址转换规则时,判断所述第二数据包是否添加了预设标记;以及,
网络源地址转换处理单元,用于当所述第二数据包添加了所述预设标记时,根据找到的网络源地址转换规则对所述第二数据包进行网络源地址转换处理。
优选地,所述装置还包括:
第二网络地址转换处理模块,用于当没有查找到与所述第二目的IP/port匹配的网络源地址转换规则时,根据所述网络地址转换规则表对所述第二数据包进行处理。
优选地,所述装置还包括:
第三网络地址转换处理模块,用于当所述第二数据包没有添加所述预设标记时,则根据所述网络地址转换规则表对所述第二数据包进行处理。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行上述任一实施例所述的linux系统下实现网络地址转换环回的方法。
本发明实施例还提供了一种linux系统下实现网络地址转换环回的装置,参见图3所示是本发明提供的一种linux系统下实现网络地址转换环回的装置的另一个优选实施例的结构框图,所述装置包括处理器10、存储器20以及存储在所述存储器20中且被配置为由所述处理器10执行的计算机程序,所述处理器10在执行所述计算机程序时实现上述任一实施例所述的知识点管理方法。
优选地,所述计算机程序可以被分割成一个或多个模块/单元(如计算机程序1、计算机程序2、······),所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器10执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述装置中的执行过程。
所述处理器10可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以是微处理器,或者所述处理器10也可以是任何常规的处理器,所述处理器10是所述装置的控制中心,利用各种接口和线路连接所述装置的各个部分。
所述存储器20主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序等,数据存储区可存储相关数据等。此外,所述存储器20可以是高速随机存取存储器,还可以是非易失性存储器,例如插接式硬盘,智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡和闪存卡(Flash Card)等,或所述存储器20也可以是其他易失性固态存储器件。
需要说明的是,上述装置可包括,但不仅限于,处理器、存储器,本领域技术人员可以理解,图3结构框图仅仅是上述装置的示例,并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
综上,本发明实施例所提供的一种linux系统下实现网络地址转换环回的方法、装置及计算机可读存储介质,利用iptables的extension机制实现自定义的目标规则,通过将环回目的地址转换规则加载到网络地址转换规则表的PREROUTING链的首端,将环回源地址转换规则加载到所述网络地址转换规则表的POSTROUTING链的首端,能够利用NAT规则表中已经建立的WAN端到LAN端的IP/port映射、转发规则,为从LAN端进入和从LAN端发出的数据包进行匹配,并对匹配成功的数据包自动进行NAT lookback配置,大大简化了iptables的NAT lookback配置流程和DNAT/SNAT规则表,同时,也为应用层协议的NAT lookback提供了支持。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种linux系统下实现网络地址转换环回的方法,其特征在于,包括:
利用iptables的extension机制自定义目标规则;
将预设的环回目的地址转换规则加载到网络地址转换规则表的PREROUTING链的首端;
将预设的环回源地址转换规则加载到所述网络地址转换规则表的POSTROUTING链的首端;
当从LAN端接收到第一数据包时,根据所述环回目的地址转换规则对所述第一数据包进行网络目的地址转换处理;
当需要从LAN端发送第二数据包时,根据所述环回源地址转换规则对所述第二数据包进行网络源地址转换处理。
2.如权利要求1所述的linux系统下实现网络地址转换环回的方法,其特征在于,所述当从LAN端接收到第一数据包时,根据所述环回目的地址转换规则对所述第一数据包进行网络目的地址转换处理,具体包括:
当从LAN端接收到所述第一数据包时,获取所述第一数据包的第一目的IP/port;
基于所述第一目的IP/port,根据所述环回目的地址转换规则查找所述PREROUTING链的首端的网络目的地址转换规则;
当查找到与所述第一目的IP/port匹配的网络目的地址转换规则时,根据找到的网络目的地址转换规则对所述第一数据包进行网络目的地址转换处理,并为所述第一数据包添加预设标记。
3.如权利要求2所述的linux系统下实现网络地址转换环回的方法,其特征在于,所述方法还包括:
当没有查找到与所述第一目的IP/port匹配的网络目的地址转换规则时,根据所述环回目的地址转换规则查找所述网络地址转换规则表的期望连接表中的条目;
当查找到与所述第一目的IP/port匹配的条目时,根据找到的条目对所述第一数据包进行网络目的地址转换处理,并为所述第一数据包添加所述预设标记。
4.如权利要求3所述的linux系统下实现网络地址转换环回的方法,其特征在于,所述方法还包括:
当没有查找到与所述第一目的IP/port匹配的条目时,根据所述网络地址转换规则表对所述第一数据包进行处理。
5.如权利要求1所述的linux系统下实现网络地址转换环回的方法,其特征在于,所述当需要从LAN端发送第二数据包时,根据所述环回源地址转换规则对所述第二数据包进行网络源地址转换处理,具体包括:
当需要从LAN端发送所述第二数据包时,获取所述第二数据包的第二目的IP/port;
基于所述第二目的IP/port,根据所述环回源地址转换规则查找所述POSTROUTING链的首端的网络源地址转换规则;
当查找到与所述第二目的IP/port匹配的网络源地址转换规则时,判断所述第二数据包是否添加了预设标记;
当所述第二数据包添加了所述预设标记时,根据找到的网络源地址转换规则对所述第二数据包进行网络源地址转换处理。
6.如权利要求5所述的linux系统下实现网络地址转换环回的方法,其特征在于,所述方法还包括:
当没有查找到与所述第二目的IP/port匹配的网络源地址转换规则时,根据所述网络地址转换规则表对所述第二数据包进行处理。
7.如权利要求5所述的linux系统下实现网络地址转换环回的方法,其特征在于,所述方法还包括:
当所述第二数据包没有添加所述预设标记时,则根据所述网络地址转换规则表对所述第二数据包进行处理。
8.一种linux系统下实现网络地址转换环回的装置,其特征在于,包括:
目标规则定义模块,用于利用iptables的extension机制自定义目标规则;
环回目的地址转换规则加载模块,用于将预设的环回目的地址转换规则加载到网络地址转换规则表的PREROUTING链的首端;
环回源地址转换规则加载模块,用于将预设的环回源地址转换规则加载到所述网络地址转换规则表的POSTROUTING链的首端;
网络目的地址转换处理模块,用于当从LAN端接收到第一数据包时,根据所述环回目的地址转换规则对所述第一数据包进行网络目的地址转换处理;以及,
网络源地址转换处理模块,用于当需要从LAN端发送第二数据包时,根据所述环回源地址转换规则对所述第二数据包进行网络源地址转换处理。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如权利要求1~7任一项所述的linux系统下实现网络地址转换环回的方法。
10.一种linux系统下实现网络地址转换环回的装置,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如权利要求1~7任一项所述的linux系统下实现网络地址转换环回的方法。
CN201910089881.1A 2019-01-29 2019-01-29 linux系统下实现网络地址转换环回的方法、装置及存储介质 Active CN109889620B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910089881.1A CN109889620B (zh) 2019-01-29 2019-01-29 linux系统下实现网络地址转换环回的方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910089881.1A CN109889620B (zh) 2019-01-29 2019-01-29 linux系统下实现网络地址转换环回的方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN109889620A true CN109889620A (zh) 2019-06-14
CN109889620B CN109889620B (zh) 2022-07-19

Family

ID=66927527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910089881.1A Active CN109889620B (zh) 2019-01-29 2019-01-29 linux系统下实现网络地址转换环回的方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN109889620B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111917611A (zh) * 2020-08-20 2020-11-10 杭州迪普科技股份有限公司 半透明代理服务器的测试方法、装置及系统
CN115334036A (zh) * 2022-08-11 2022-11-11 江苏安超云软件有限公司 智能控制源地址转换的方法和装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120185563A1 (en) * 2010-08-31 2012-07-19 Springsoft K.K. Network system, virtual private connection forming method, static nat forming device, reverse proxy server and virtual connection control device
CN103051605A (zh) * 2012-11-21 2013-04-17 国家计算机网络与信息安全管理中心 一种数据包处理方法、装置和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120185563A1 (en) * 2010-08-31 2012-07-19 Springsoft K.K. Network system, virtual private connection forming method, static nat forming device, reverse proxy server and virtual connection control device
CN103051605A (zh) * 2012-11-21 2013-04-17 国家计算机网络与信息安全管理中心 一种数据包处理方法、装置和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CRISS_LEUNG: "PREROUTING 和 POSTROUTING, SNAT 和 DNAT 剖析", 《CDSN》 *
程序园: "iptables nat:通过PREROUTING链从/OUTPUT到PREROUTING处理OUTPUT链", 《程序园》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111917611A (zh) * 2020-08-20 2020-11-10 杭州迪普科技股份有限公司 半透明代理服务器的测试方法、装置及系统
CN115334036A (zh) * 2022-08-11 2022-11-11 江苏安超云软件有限公司 智能控制源地址转换的方法和装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN109889620B (zh) 2022-07-19

Similar Documents

Publication Publication Date Title
US10862852B1 (en) Resolution of domain name requests in heterogeneous network environments
US7912062B2 (en) Methods and apparatus for managing addresses related to virtual partitions of a session exchange device
JP2020162146A (ja) 仮想ネットワークにおける分散型フロー状態p2p設定のためのシステムおよび方法
US7574522B2 (en) Communication data relay system
US7522618B2 (en) Communication apparatus, communication system and communication method
CN103023942B (zh) 一种服务器负载均衡方法、装置及系统
JP4598859B2 (ja) 中継ネットワークシステム及び端末アダプタ装置
US8509239B2 (en) Method, apparatus and system for processing packets
US20140310393A1 (en) Virtual Network and Management Method of Virtual Network
US20050182829A1 (en) System for selecting a connectivity mechanism
KR20110030547A (ko) 패킷 목적지 주소 및 발신 인터페이스로부터 구성된 라우팅 검색 키에 기초하는 패킷의 발신 송신
JPWO2013069161A1 (ja) ルーティング方法およびネットワーク伝送装置
CN106209643A (zh) 报文转发方法及装置
Iannone et al. Implementing the locator/id separation protocol: Design and experience
CN109889620A (zh) linux系统下实现网络地址转换环回的方法、装置及存储介质
CN110324244B (zh) 一种基于Linux虚拟服务器的路由方法及服务器
JP3858884B2 (ja) ネットワークアクセスゲートウェイ及びネットワークアクセスゲートウェイの制御方法並びにプログラム
CN117041205A (zh) 地址转换方法、装置、宿主机及计算机可读存储介质
CN109246016B (zh) 跨vxlan的报文处理方法和装置
US10924397B2 (en) Multi-VRF and multi-service insertion on edge gateway virtual machines
CN111565237A (zh) 网络参数确定方法、装置、计算机设备及存储介质
CN106713528A (zh) 一种家庭网关及IPv6主机访问网络服务器的方法
CN116488958A (zh) 网关处理方法、虚拟接入网关、虚拟业务网关及相关设备
US20210352004A1 (en) Multi-vrf and multi-service insertion on edge gateway virtual machines
CN112953833A (zh) 基于网桥实现三层路由转发的方法、系统及网关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220615

Address after: 200000 5th floor, No. 1 and 5, Lane 168, Xumin Road, Qingpu District, Shanghai

Applicant after: Shanghai LianHong Technology Co.,Ltd.

Address before: 518000 the 1st and 3rd floors of the south section of building 24 and the 1st-4th floor of the north section of building 28, Shennan Road Science and Technology Park, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: TP-LINK TECHNOLOGIES Co.,Ltd.

GR01 Patent grant
GR01 Patent grant