在一些特殊的场景,可以将源NAT与SERVER NAT同时使用,以实现特殊的通讯,这就是本文介绍的双向NAT。双向NAT根据作用的ZONE不一样,可以分为域间双向NAT和域内双向NAT。
一、域间双向NAT
举个例子,下图中untrust域的用户访问企业的DMZ,常规配置,可以在企业的出口配置NAT SERVER策略,以实现公网的用户可以访问企业的资源,这时当untrust区域访问DMZ的时候,报文的目的IP将转换为DMZ区域的私网IP,在回包的过程中由于有网关的存在,也就知道路由怎么转发,在通过NAT SERVER转换的对应关系,也就实现了公网用户访问DMZ区域私网服务器。
我们先看一下传统NAT SERVER访问内网服务器数据包走向,来理解NAT转换的过程。
但是在有些企业,内网的服务器不需要让他联网,也就是不需要配置网关地址,这样的话常规的NAT SERVER在回包的过程就找不到路由,这样的话会把数据包丢弃,如果在此基础上增加源NAT,那么就可以实现DMZ区域的SERVER1不用配置网关。
下面我们根据最开始的的拓扑图来配置双向NAT
1、路由器的配置
<Huawei>sy
Enter system view, return user view with Ctrl+Z.
[Huawei]in g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 11.1.1.1 24
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 172.16.1.254 24
[Huawei-GigabitEthernet0/0/1]q
2、防火墙基础配置
2.1 IP配置
[USG6000V1]int g1/0/0
[USG6000V1-GigabitEthernet1/0/0]ip add 192.168.1.254 24
[USG6000V1-GigabitEthernet1/0/0]int g1/0/1
[USG6000V1-GigabitEthernet1/0/1]ip add 11.1.1.254 24
[USG6000V1-GigabitEthernet1/0/1]int g1/0/2
[USG6000V1-GigabitEthernet1/0/2]ip add 192.168.10.254 24
[USG6000V1-GigabitEthernet1/0/2]q
2.2 区域划分
[USG6000V1]firewall zone trust
[USG6000V1-zone-trust]add int g1/0/0
[USG6000V1-zone-trust]firewall zone untrust
[USG6000V1-zone-untrust]add int g1/0/1
[USG6000V1-zone-untrust]firewall zone dmz
[USG6000V1-zone-dmz]add int g1/0/2
[USG6000V1-zone-dmz]q
2.3 路由配置
[USG6000V1]ip route-static 0.0.0.0 0.0.0.0 11.1.1.1
2.4 安全区域配置
[USG6000V1]security-policy
[USG6000V1-policy-security]rule name permit_untrust_dmz
[USG6000V1-policy-security-rule-permit_untrust_dmz]source-zone untrust
[USG6000V1-policy-security-rule-permit_untrust_dmz]destination-zone dmz
[USG6000V1-policy-security-rule-permit_untrust_dmz]action permit
[USG6000V1-policy-security-rule-permit_untrust_dmz]q
[USG6000V1-policy-security]q
2.5防火墙域间双向NAT配置
[USG6000V1]nat server protocol tcp global 11.1.1.20 www insid 192.168.10.1 www
到这里如果我们不删除内网服务器网关的前提下,外网客户端是可以访问到内网服务器的。效果如下:
下面我们去掉服务器网关地址,配置双向NAT(删除以后访问服务器效果自己测试)
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name untrust_dmz_nat
[USG6000V1-policy-nat-rule-untrust_dmz_nat]source-zone untrust
[USG6000V1-policy-nat-rule-untrust_dmz_nat]destination-zone dmz
[USG6000V1-policy-nat-rule-untrust_dmz_nat]action source-nat easy-ip
[USG6000V1-policy-nat-rule-untrust_dmz_nat]q
[USG6000V1-policy-nat]q
这里我们测试客户端访问效果
二、域内双向NAT
由于管理员在规划网络时“偷懒”,将内网用户和内网服务器规划到同一个网段中。现在希望内网用户通过外网地址访问内网服务器。作用是隐藏内网服务器地址,并使流量经过防火墙,由此来提高网络的安全性。
下图中,PC2和SERVER3处于同一个ZONE,为了实现公网的用户能访问SERVER3,在防火墙FW1配置了NAT SERVER,当PC2通过公网IP访问SERVER3的时候,报文交给防火墙,防火墙将报文的目的IP修改为SERVER3的IP地址,但报文的源IP为PC2的IP地址,这样,SERVER3直接给PC2的私网IP回包,PC2收到这样的报文就会丢弃,因为PC2最初是和公网IP进行通讯的。
为了解决这样的问题,可以在原有的基础上配置源NAT,这样PC2通过公网IP访问SERVER3的时候,报文的源IP和目的IP都会进行转换,PC2收到SERVER3的报文就会处理。
1、安全策略配置
[USG6000V1]security-policy
[USG6000V1-policy-security]rule name permit_untrust_trust
[USG6000V1-policy-security-rule-permit_untrust_trust]source-zone untrust
[USG6000V1-policy-security-rule-permit_untrust_trust]destination-zone trust
[USG6000V1-policy-security-rule-permit_untrust_trust]action permit
[USG6000V1-policy-security-rule-permit_untrust_trust]rule name permit_trust_untrust
[USG6000V1-policy-security-rule-permit_trust_untrust_]source-zone trust
[USG6000V1-policy-security-rule-permit_trust_untrust_]destination-zone untrust
[USG6000V1-policy-security-rule-permit_trust_untrust_]action permit
[USG6000V1-policy-security-rule-permit_trust_untrust_]q
[USG6000V1-policy-security]q
2、域内双向NAT配置
[USG6000V1]nat server 1 protocol tcp global 11.1.1.10 www inside 192.168.1.100 www
到这里外网客户端是可以访问到内网服务器的。效果如下:
接下来内网客户端PC使用NAT转换后的公网地址访问内网服务器,会发现访问不到服务器,如下图所示:
这里我们需要配置源NAT实现访问,配置如下:
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name trust_trust_nat-easyip
[USG6000V1-policy-nat-rule-trust_trust_nat-easyip]source-zone trust
[USG6000V1-policy-nat-rule-trust_trust_nat-easyip]destination-zone trust
[USG6000V1-policy-nat-rule-trust_trust_nat-easyip]action source-nat easy-ip
[USG6000V1-policy-nat-rule-trust_trust_nat-easyip]q
[USG6000V1-policy-nat]q
最后用内网客户端PC使用NAT转换后的公网地址访问内网服务器,会发现又可以访问到了服务器,如下图所示:
到这里实验结束,感谢各位的观看,如有任何错误欢迎指正。