经过前面几篇贴子的介绍,相信大家已经对源NAT和NAT Server有了相当了解。NAT功能就像一个武林高手,可内可外,游刃有余,那么这“一内一外”能否配合使用呢?答案当然是肯定的!
如果需要同时改变报文的源地址和目的地址,就可以配置“源NAT+NAT rver”,华为防火墙称此类NAT配置为双向NAT。这里要注意:双向NAT不是一个单独的功能,他仅仅是源NAT和NAT Server的组合。这里“组合”的含义是针对同一条流(例如外网主机访问内网服务器的流量),在其经过防火墙时同时转换报文的源地址和目的地址。大家千万不能理解为“防火墙上同时配置了源NAT和NAT Server就是双向NAT”,这是不对的,因为源NAT和NAT Server可能是为不同流配置的。
之前介绍源NAT功能时,强叔为了更利于大家理解相关概念和原理,都是按照内网用户访问外网资源的思路进行组网设计和验证的。实际上,源NAT还可以根据报文的源地址和目的地址所在安全区域进行分类:
1、域间NAT
报文的源地址和目的地址属于不同的安全区域。按照转换报文的方向,又可以分为以下两类:
(1)NAT Inbound(外网访问内网)
报文由低安全级别的安全区域向高安全级别的安全区域方向传输时,基于源地址进行的转换。一般来说,NAT Inbound都会和NAT Server配合使用。
(2)NAT Outbound(内网访问外网)
报文由高安全级别的安全区域向低安全级别的安全区域方向传输时,基于源地址进行的转换。之前介绍的“内网用户访问外网资源”场景大多使用NAT Outbound。
2、域内NAT(内网访问内网)
报文的源地址和目的地址属于相同的安全区域。一般来说,域内NAT都会和NAT Server配合使用,单独配置域内NAT的情况较少见。
当域间NAT或域内NAT和NAT Server一起配合使用时,就实现了双向NAT。当然,上述内
容的一个大前提就是:合理设置安全区域的级别并规划网络——内网设备属于Trust域(高级别),内网服务器属于DMZ域(中级别),外网设备属于Untrust域(低级别)。
双向NAT从技术和实现原理上讲并无特别之处,但是他和应用场景有着强相关性。究竟什么时候需要配置双向NAT?配置后有什么好处?不配置双向NAT行不行?这都是实际规划和部署网络时需要思考的问题,且听强叔一一道来。
1、NAT Inbound+NAT Server
下图示意了一个最常见的场景:外网PC访问内网服务器,防火墙做服务器的网关。这个时候我们一般会用到的NAT技术是…(画外音:“强叔,我知道,是NAT Server!这个场景不就是NAT Server的典型场景吗?”)没错,大家果然认真看了强叔之前的贴子!但是强叔下面要讲的是如何在这个场景中应用双向NAT,以及这么做的好处,大家接着看吧。
rver以公网IP对外提供服务,防火墙上配置NAT Server,这个大家肯定没有疑问。同时,防火墙上配置NAT Inbound,令PC以私网IP访问rver,这个大家可能有疑问,别着急,我们先来看看具体配置。
例1 配置NAT Inbound+NAT Server
#
nat address-group 1 10.1.1.20 10.1.1.25 //地址池中的IP为私网IP ,且和rver的私网IP同网段
nat rver 0 global 210.1.1.15 inside 10.1.1.3
#
nat-policy interzone dmz untrust inbound
policy 1
action source-nat
policy destination 10.1.1.3 0 //由于防火墙先做NAT Server转换,再做源NAT转换,所以此处的目的IP是NAT Server转换后的IP
address-group 1
这里NAT Server的配置和以前见过的类似,但是源NAT的配置和以前见过的不一样:以前地址池中配置的都是公网地址,而这次配置的却是私网地址。
我们通过下图再来看一下报文的地址转换过程:PC访问rver的流量经过防火墙时,目的地址(rver的公网地址)通过NAT Server转换为私网地址,源地址(PC的公网地址)通过NAT Inbound也转换为私网地址,且和rver的私网地址同网段,这样就同时转换了报文的源地址和目的地址,即完成了双向NAT转换。当rver的回应报文经过防火墙时,再次做双向NAT转换,报文的源地址和目的地址均转换为公网地址。
从PC上ping rver,通过防火墙上的会话表和Server-map表可以更清楚的看到双向NAT转换:PC的地址通过NAT Inbound转换为私网地址,而rver的地址也按照NAT Server的Server-map表转换为私网地址。
好了,我们回过头来看为什么要配置NAT Inbound吧。如果不配置NAT Inbound,行不行?
行!不配置NAT Inbound并不影响PC访问rver。那配置NAT Inbound有什么好处?好处就是rver上可以不用设置网关,当然,前提条件是地址池中的地址需要和rver的私网地址同网段。当rver回应PC时,rver发现自己的地址和目的地址在同一网段,这时rver就不会去查路由,而是发送ARP广播报文询问目的地址对应的MAC地址。由于目的地址是地址池中的地址,所以他没有对应的MAC地址,但是防火墙此时挺身而出,防火墙将自己与rver直连接口的MAC地址发给rver,告诉rver“把回应报文给我吧”,所以回应报文将转发到防火墙上。由于rver回应报文是通过二层转发,而不是三层转发,所以rver上不用配置网关。也许有人说“配置网关还是挺方便的,不用配置NAT Inbound这么麻烦吧”如果只有一台服务器时,的确感受不到有什么好处,但是如果有几十台甚至上百台服务器需要配置或修改网关时,我们就会发现配置NAT Inbound是多么方便了。