最近公司将外联区防火墙从已经服役了10年的Juniper Netscreen替换成了华为的USG系列。在这里不得不再佩服一下netscreen系列防火墙的稳定性,公司之前有好几套netscreen系列的墙,10年来只重启过两次并且没有出过任何问题,在当年一众防火墙产品里我认为是很无敌的很好用的存在。可惜被Juniper收购后现在已经成为了历史,在我们公司这也同样即将成为历史了。
进入正题,这次实施防火墙替换的网络区域是外联区,即专门用于对接第三方合作伙伴的区域。由于我们是金融机构,对于与合作伙伴外联对接在金融行业的做法通常就是需要做双向NAT,即一个访问请求源地址要转换,目的地址也需要转换。我们的做法是将NAT功能放在防火墙上做,毕竟路由器等其他设备并没有防火墙那么强的NAT能力。
在替换为华为USG防火墙之前对它的处理机制不是完全清楚,毕竟每个厂家处理的机制各不相同。但为了日后运维的时候能够快速排错还是有必要搞清楚其中的NAT转发处理流程的,以下是查看官网文档后梳理后的理解。
外联区组网拓扑
首先讲讲为何金融机构外联访问通常需要做双向NAT。在两个机构之间通常都是用专线进行对接,比如我方发起请求访问对方的场景,我方的源服务器IP地址在出局后,会做源NAT将我方服务器IP映射成另外一个IP,目的是为了隐藏内部真实IP,是从安全性角度考虑。另外会把对方服务器IP在内部做一个目的NAT,在内部源服务器发起的请求是访问这个映射后的IP,而不是访问对方真实的IP,主要目的是对方的IP网段可能跟内部网段会有冲突,因此在将外部地址引入进内部网络前,将这个IP地址转换成内部规划好的网段,就可以避免此问题,同时在内部一看这个请求的目标地址就可以很清晰的知道是属于外部网络。
以下是简化后的外联区拓扑,我也会基于以下模拟的组网进行整个请求及NAT处理流程的讲解。
NAT转换关系
![](http://img.zhengzen.com/upload/luyou2_baike2/luyou_809125249_1.jpg)
![](http://img.zhengzen.com/upload/luyou2_baike2/luyou_809125249_2.jpg)
华为USG系列NAT处理流程
下图是截取自华为官网的手册,关于NAT的处理流程。
![](http://img.zhengzen.com/upload/luyou2_baike2/luyou_809125250_3.jpg)
1) 当请求的流量进入USG防火墙的入接口后,防火墙会查找目的NAT转换表,匹配请求的目的地址是否需要转换;
2) 如果命中转换条目,目的地址会被转换,不命中将会直接送到下一个流程;
3) 查找路由表,如命中路由表条目则送到下一个流程,路由表没匹配将会被丢弃;
4) 接下来会送到安全策略里面检查,如果检查匹配安全策略的permit条目,则被放行进入下一个流程,否则请求将会被丢弃(安全策略需要配置业务流量最开始的源IP地址和最终的目的IP地址);
5) 匹配源NAT转换表,如果命中则会对源地址进行转换并创建会话表,否则不进行转换直接创建会话表;
6) 流量从出接口送出。
模拟场景转发流程
根据以上对华为USG系列防火墙的NAT处理流程,以及结合以上外联区模拟环境的拓扑,我们再来看看整个做了双向NAT后的转发过程。
华为USG防火墙主要配置我列一下出来:
ip route-static 172.16.0.10 255.255.255.255 1.1.1.2 description EXT_Route //根据处理流程,外部地址的路由需要写成对方真实的IP
ip route-static 10.0.0.0 255.255.255.0 2.1.1.2 description INT_Route //内部DMZ区网段路由
#
//源目转换可以写在一条NAT策略里,NAT转换的地址池需要预先定义
nat-policy
rule name DMZ_EXT_01
source-zone dmz
source-address address-set 10.0.0.10/32
destination-address address-set 192.168.200.10/32
action source-nat address-group Pool_192.168.100.10
action destination-nat static address-to-address address-group Pool_172.16.0.10
#
//安全策略放行
security-policy
rule name DMZ_EXT_01
description NAT(DMZ_EXT_01)
source-zone dmz
destination-zone untrust
source-address address-set 10.0.0.10/32
destination-address 172.16.0.10 mask 255.255.255.255
service https
service icmp
action permit
整个请求及NAT转换过程如下:
内部服务器发起请求
![](http://img.zhengzen.com/upload/luyou2_baike2/luyou_809125250_4.jpg)
到达防火墙进行目的NAT转换,匹配安全策略并查找路由表
![](http://img.zhengzen.com/upload/luyou2_baike2/luyou_809125250_5.jpg)
进行源NAT转换,流量送出给合作伙伴
![](http://img.zhengzen.com/upload/luyou2_baike2/luyou_809125251_6.jpg)
如果是反过来,由对方发起请求到内部服务器,其实整个处理流程也是一样的,这里就不再赘述。
总结
以上就是对于外联区组网和双向NAT访问的梳理,如果本文对于华为设备NAT处理流程的描述和理解有什么不正确之处,欢迎指正。
关键词:华为USG系列防火墙双向NAT处理流程(外联区场景)