五、双向NAT

学习防火墙之前,对路由交换应要有一定的认识

  • 双向NAT
    • 1.1.基本原理
    • [1.2.NAT Inbound + NAT Server](#1.2.NAT Inbound + NAT Server)
    • [1.3.域内NAT+NAT Server](#1.3.域内NAT+NAT Server)

双向NAT

经过前面介绍,已经对源NAT和NAT Server有了相当的了解。NAT功能就像一个武林高手,可内可外,游刃有余,那么这一内一外能否配合使用呢?

如果需要同时改变报文的源地址和目的地址,就可以配置源NAT+NAT Server,我们称之为双向NAT。

双向NAT不是一个单独的功能,而是源NAT和NAT Server的组合,这里组合的含义是针对同一条流,在其经过防火墙时同时转换报文的源地址和目的地址。

千万不能理解为防火墙上同时配置了源NAT和NAT Server就是双向NAT了,这是不对的,因为源NAT和NAT Server可能是为不同流配置的。


1.1.基本原理

之前介绍源NAT时,为了便于理解,都是按照私网用户访问Internet的思路进行组网验证的。实际上,源NAT还可以根据报文在防火墙上的流动方向进行分类,包括域间NAT和域内NAT。

域间NAT

报文在两个不同的安全区域之间流动时对报文进行NAT转换,根据流动方向的不同,可以分为两类。

1、NAT Inbound

报文由低级别的区域向高级别区域方向流动时,对报文进行转换,一般这种情况是公网用户访问内部网络,不太常见。

2、NAT Outbound

报文由高级别的区域向低级别区域方向流动时,对报文进行转换,前面介绍的私网用户访问Internet场景使用的NAT都是Outbound。

域内NAT

报文在同一个安全区域之内流动时对报文进行NAT转换,一般来说,域内NAT都会和NAT Server配合使用,单独配置域内NAT的情况比较少见。

当域间NAT、域内NAT和NAT Server配合使用时,就实现了双向NAT。上述实现的前提是:合理设置安全区域安全级别,内网网络属于Trust高安全级别,私网服务器属于DMZ中安全级别,Internet属于Untrust低安全级别。

双向NAT从技术和实现原理来说并无特别之处,但是应用场景很有特色。究竟是什么时候需要配置双向NAT?有什么好处?不配置双向NAT行不行?


1.2.NAT Inbound + NAT Server

最常见的一个场景:公网用户访问私网服务器,这个场景也是NAT Server的典型场景。但是下面要讲的是如何在这个场景中应用双向NAT,以及这么做的好处。

接下来进行配置,NAT Server和源NAT。

javascript 复制代码
配置NAT Server
nat server protocol tcp global 210.1.1.1 9980 inside 192.168.100.1 80

NAT Server配置完会生成静态带正向-反向,Server-map表。

javascript 复制代码
配置源NAT
nat address-group GW
section 192.168.100.200 192.168.100.200

nat-policy
 rule name SNAT
  source-zone untrust
  destination-zone trust
  destination-address 192.168.100.1 mask 255.255.255.255
  action source-nat address-group GW

在配置源NAT策略时,destination-address:由于先进行NAT Server转换,再进行源NAT转换,所以此处的目的地址是NAT Server转换后的地址,即服务器的私网地址。

配置完成后,公网用户访问私网服务器,在防火墙上查看会话表,可以清楚的看到报文的源IP地址和目的IP地址都进行了转换。

在来看看转发过程:

1、公网用户访问私网服务器的报文到达防火墙时,目的地址210.1.1.1经过NAT Server (nat server protocol tcp global 210.1.1.1 9980 inside 192.168.100.1 80)转换为私网地址192.168.100.1,然后源地址210.1.1.2,经过NAT Inbount(nat address-group GW)也转换为192.168.100.200私网地址,且和私网服务器属于同一网段。这样报文的源地址和目的地址就同时进行了转换,即完成了双向NAT。

简化来说:防火墙收到报文后,从NAT Server选择私网地址替换报文的目的地址。即192.168.100.1。判断安全策略,通过后从源NAT地址池选择一个私网IP替换报文源IP,即192.168.100.200。

2、当私网服务器的回应报文经过防火墙时,再次进行双向NAT地址转换,报文的源地址和目的地址均转换为公网地址。

简化来说:收到Web服务器报文后,会查找会话表之前建立的项,将报文源地址和目的地址替换成原先的地址,将源和目的端口替换为原始的端口号,发送至Internet。

防火墙G1/0/1,用户请求服务器,源IP:210.1.1.1使用随机端口49207,目的IP:210.1.1.1,端口9980。

防火墙G1/0/0,防火墙收到用户请求服务器的报文,转换后的源IP:192.168.10.200,端口:2055。目的IP:192.168.100.1,端口80。

回去的报文,源地址:192.168.100.1,端口80。目的IP:192.168.10.200,端口2055。

转换后的源IP:210.1.1.1,端口9980。目的IP:210.1.1.2,随机端口

到这里有点疑问,前面说过,只配置NAT Server不配置NAT Inbound,也不会影响公网用户访问私网服务器。答案是肯定不会影响,但是配置了有它本身的好处。秘密就在于私网服务器对回应报文的处理方式上。

把NAT地址池中的地址配置成和私网服务器在同一网段,当私网服务器回应公网用户的访问请求时,发现自己的地址和目的地址在同一网段,此时私网服务器就不会去查找路由,而是发送ARP广播报文询问目的地址对应的MAC。防火墙会及时挺身而出,将连接私网服务器接口的MAC地址发给私网服务器,告诉死亡服务器:把回应报文发送给我。所以私网服务器将回应报文发送至防火墙,防火墙再对其进行后续处理。

既然私网服务器上省去了查找路由环节,那就不用设置网关了,这就是配置双向NAT的好处。这里配置的源NAT,虽然叫源NAT,考虑的时候是反着来的。

安全策略配置

javascript 复制代码
security-policy
 rule name SNAT
  source-zone untrust
  destination-zone trust
  destination-address 192.168.100.1 mask 255.255.255.255
  action permit

配置路由黑洞

javascript 复制代码
ip route-static 192.168.100.1 32 NULL0

1.3.域内NAT+NAT Server

域内NAT+NAT Server的场景,管理员在规划网络时偷懒,将私网用户和私网服务器规划到同一网络,并将二者置于同一安全区域。

如图上图:私网用户User访问服务器的报文,到达防火墙后,防火墙进行目的地址转换,私网服务器回应报文时发现目的地址和自己的地址在同一网段,回应报文经交换机直接转发到私网用户,不会经过防火墙转发。

如果希望提高内部网络安全性,使私网服务器的回应报文也经过防火墙处理,就需要配置域内NAT,将私网用户访问私网服务器的报文的源地址进行转换。转换后源地址可以是公网地址也可以是私网地址,只要不和私网服务器在同一网段即可。这样私网服务器的回应报文就会被发送到防火墙。

配置NAT SERVER

javascript 复制代码
nat server protocol tcp global 210.1.1.1 9980 inside 192.168.100.1 www

配置域内NAT,几乎和域间NAT一样,只不过前者在域内进行NAT转换,后者在域间进行NAT转换。

javascript 复制代码
nat address-group 1 1
 section 0 210.1.1.100 210.1.1.100                   公网私网都可以,只要不和私网服务器在同一网段
 
nat-policy
  rule name Policy
  source-zone untrust
  destination-zone trust
  destination-address 192.168.100.1 mask 255.255.255.255
  action source-nat address-group 1

没有配置安全策略,是因为缺省下防火墙对同一安全区域内流动的报文不做控制。记得配置黑洞路由

看下过程:

私网用户访问私网服务器报文:

源IP:192.168.100.50,目的IP:210.1.1.1

经过转换后,源IP:210.1.1.100,目的IP:192.168.100.1

私网用户回应的报文:

源IP:192.168.100.1,目的IP:210.1.1.100

经过转换后,源IP:210.1.1.1,目的IP:192.168.100.50

如果我们在这个网络环境下,将私网用户和私网服务器通过不同的接口连接到防火墙,此时私网用户和私网服务器交互的所有报文都需要经过防火墙转发,所以只配置NAT SERVER是可以的。

不要纠结转换后是公网地址还是私网地址。双向NAT并不是必配的功能。有时只配源NAT或NAT Server就可以达到同样的效果。但是灵活运用双向NAT可以起到简化网络配置、方便网络管理功能。

相关推荐
CXDNW24 天前
【网络篇】计算机网络——网络层详述(笔记)
网络·笔记·网络协议·路由器·nat·因特网
问道飞鱼24 天前
【计算机网络】计算机网络相关术语
网络·vlan·nat·linux网络·vxlan
加油,旭杏2 个月前
【Linux】NAT
linux·网络·智能路由器·nat·nart
Smiling Mr. Rui4 个月前
安全防御:NAT转换
安全·防火墙·nat
Monster✺◟(∗❛ัᴗ❛ั∗)◞✺4 个月前
firewalld(7)NAT、端口转发
linux·运维·服务器·网络·iptables·nat·firewalld
Ingernuity4 个月前
华为HCIA综合实验(结合前几期所有内容)
http·华为·ftp·ensp·nat·ospf·ppp
炫酷的伊莉娜5 个月前
【Linux 网络】网络基础(三)(其他重要协议或技术:DNS、ICMP、NAT)
linux·网络·dns·nat·icmp·代理服务器
云计算练习生5 个月前
防火墙基础基础篇:NAT转发功能之——Easy IP方式详解
服务器·网络·tcp/ip·防火墙·nat·nat转发·easy ip
致奋斗的我们6 个月前
OSPF综合实验(超详细易懂)(HCIP)
后端·网络协议·网络安全·asp.net·信息与通信·nat·ospf
SCBAiotAigc6 个月前
ubuntu 24.04 beta server NAT模式上网设置
ubuntu·nat