【防火墙技术连载18】强叔侃墙 NAT篇 双剑合璧,无往不利——双向NAT

[复制链接]
发表于 : 2014-5-21 14:27:48 最新回复:2019-02-27 13:35:26
37732 38
强叔侃墙
强叔侃墙 官方号

经过前面几篇贴子的介绍,相信大家已经对源NAT和NAT Server有了相当了解。NAT功能就像一个武林高手,可内可外,游刃有余,那么这“一内一外”能否配合使用呢?答案当然是肯定的!
如果需要同时改变报文的源地址和目的地址,就可以配置“源NAT+NAT server”,华为防火墙称此类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,以及这么做的好处,大家接着看吧。

server以公网IP对外提供服务,防火墙上配置NAT Server,这个大家肯定没有疑问。同时,防火墙上配置NAT Inbound,令PC以私网IP访问server,这个大家可能有疑问,别着急,我们先来看看具体配置。
例1 配置NAT Inbound+NAT Server
#
 nat address-group 1 10.1.1.20 10.1.1.25  //地址池中的IP为私网IP ,且和server的私网IP同网段
 nat server 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访问server的流量经过防火墙时,目的地址(server的公网地址)通过NAT Server转换为私网地址,源地址(PC的公网地址)通过NAT Inbound也转换为私网地址,且和server的私网地址同网段,这样就同时转换了报文的源地址和目的地址,即完成了双向NAT转换。当server的回应报文经过防火墙时,再次做双向NAT转换,报文的源地址和目的地址均转换为公网地址。

从PC上ping server,通过防火墙上的会话表和Server-map表可以更清楚的看到双向NAT转换:PC的地址通过NAT Inbound转换为私网地址,而server的地址也按照NAT Server的Server-map表转换为私网地址。

好了,我们回过头来看为什么要配置NAT Inbound吧。如果不配置NAT Inbound,行不行?行!不配置NAT Inbound并不影响PC访问server。那配置NAT Inbound有什么好处?好处就是server上可以不用设置网关,当然,前提条件是地址池中的地址需要和server的私网地址同网段。当server回应PC时,server发现自己的地址和目的地址在同一网段,这时server就不会去查路由,而是发送ARP广播报文询问目的地址对应的MAC地址。由于目的地址是地址池中的地址,所以他没有对应的MAC地址,但是防火墙此时挺身而出,防火墙将自己与server直连接口的MAC地址发给server,告诉server“把回应报文给我吧”,所以回应报文将转发到防火墙上。由于server回应报文是通过二层转发,而不是三层转发,所以server上不用配置网关。也许有人说“配置网关还是挺方便的,不用配置NAT Inbound这么麻烦吧”如果只有一台服务器时,的确感受不到有什么好处,但是如果有几十台甚至上百台服务器需要配置或修改网关时,我们就会发现配置NAT Inbound是多么方便了。
如果对之前的组网做一点改变,增加一个Trust区域,该域内的PC2要访问server时,我们该如何配置双向NAT呢?和之前相比,报文的源地址所在安全域发生了变化,原来是Untrust域到DMZ域的报文(Inbound方向),现在变成了Trust域到DMZ域的报文(Outbound方向),所以双向NAT也变化为NAT Outbound+NAT Server,它的转换原理和NAT Inbound+NAT Server完全一样,只不过源NAT的转换方向发生了改变而已。

 

2、域内NAT+NAT Server
域内NAT的场景多见于小型网络,如下图中的PC和server通过交换机与防火墙相连,管理员在规划网络时“偷懒”,将PC和server置于同一安全区域,并分配相同网段地址。

此时,如果希望PC像外网用户一样通过公网地址访问server,就要在防火墙上配置NAT Server。到此就配置完了吗?我们通过下图来看看吧:如果只配置了NAT Server,报文到达防火墙后转换目的地址,server回应报文时发现自己的地址和目的地址在同一网段,这就和之前分析的组网是同样情况了――server通过二层转发报文,回应报文经交换机直接转发到PC,不会经过防火墙转发!

所以,如果希望提高内网的安全性,让回应报文也经过防火墙,就需要配置域内NAT。下面列出了关键的配置步骤。地址池中的地址可以是公网地址,也可以是私网地址,关键是不能和server的私网地址在同一网段。域内NAT的配置和域间NAT几乎完全一样,只不过前者应用在域内做NAT转换,后者应用在域间做NAT转换。
例2 配置域内NAT+NAT Server
#
 nat address-group 1 210.1.1.20 210.1.1.20
 nat server 0 global 210.1.1.15 inside 10.1.1.3
#
nat-policy zone trust  //注意是域内NAT
 policy 1
  action source-nat
  policy destination 10.1.1.3 0  //此处的目的IP是NAT Server转换后的IP
  address-group 1

从PC上ping server,通过防火墙上的会话表和Server-map表可以看到:PC的地址通过域内NAT转换为公网地址,server的地址按照NAT Server的Server-map表转换为私网地址。双向NAT转换后,server回复报文时发现自己的地址和目的地址不在同一网段,此时就需要查路由,通过三层转发报文,所以回应报文需经过防火墙转发。

如果在上面组网的基础上做一个变化,将PC和server分开,通过不同的接口和防火墙相连,此时应该如何配置双向NAT呢?在这个组网中所有报文都需要经过防火墙转发,只配置NAT Server是可以的。如果要配置双向NAT,那么就是域内NAT+NAT Server,具体配置方法和上面是类似的,此处就不再介绍了。

其实双向NAT的原理和配置并不复杂,关键是要想明白NAT转换的方向和转换后地址的作用,而不要纠结于转换后是公网地址还是私网地址。双向NAT并不是必配的功能,有时只配置源NAT或NAT Server就可以达到同样的效果,但是灵活应用双向NAT可以起到简化网络配置、方便网络管理的作用,也就达到了一加一大于二的效果!

 

强叔提问:
对于域内NAT,是否需要配置安全策略?如果不配置,且关闭缺省包过滤,PC能否成功访问server?

 

 

上一篇 NAT篇 NAT Server 三十二字真言(下篇)

下一篇 VPN篇 VPN技术简

汇总贴

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
sun_island
sun_island   发表于 2014-5-29 20:55:43 已赞(0) 赞(0)

其他厂家也能实现类似的功能,但是没有华为归纳的这么细,多谢强叔分享!

  • x
  • 常规:

点评 回复

bugaosuni
bugaosuni   发表于 2014-8-15 08:34:02 已赞(1) 赞(1)

顶一个,强叔牛,能否将安全的所有内容包含IPS 、AVE、以及TSM等都组合起来讲呢。原理 、组网、 故障分析排除也和这一样,我想大家的收益将真的是不可***的。呵呵。。善哉善哉
  • x
  • 常规:

点评 回复

周中斌
周中斌   发表于 2014-9-12 18:01:22 已赞(0) 赞(0)

对于域内NAT,是否需要配置安全策略?如果不配置,且关闭缺省包过滤,PC能否成功访问server?

---域内NAT,不配置安全策略应该也可以吧,这个问题怎么没有人回答,求解。

  • x
  • 常规:

点评 回复

kuningkok
kuningkok   发表于 2014-9-15 16:10:21 已赞(0) 赞(0)

绝世好文~
  • x
  • 常规:

点评 回复

dfcomeon
dfcomeon   发表于 2014-7-4 10:49:01 已赞(0) 赞(0)

强叔的资料必须得学习啊
  • x
  • 常规:

点评 回复

阿永
阿永   发表于 2014-7-8 10:23:33 已赞(0) 赞(0)

是不是就是1映射2回流?

还有

 nat server 0 global 210.1.1.15 inside 10.1.1.3

这条是不是多余了!

  • x
  • 常规:

点评 回复

liushuo
liushuo  导师VIP 发表于 2014-7-10 16:09:49 已赞(0) 赞(0)

引用 17 楼

是不是就是1映射2回流?

还有

 nat server 0 global 210.1.1.15 inside 10.1.1.3

这条是不是多余了!

vvy 发表于 2014-07-08 10:23

这条是将内网服务器的私网ip映射成公网ip,让公网用户能够访问到

  • x
  • 常规:

点评 回复

sec_fw
sec_fw   发表于 2014-5-21 14:31:29 已赞(0) 赞(0)

又来了!先顶再看!

  • x
  • 常规:

点评 回复

疯狂青蛙
疯狂青蛙   发表于 2014-5-21 14:33:21 已赞(0) 赞(0)

学习了,一直不太明白这个双向NAT

  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录