目录
目的NAT的场景是公网用户访问私网服务器地址,私网地址不能被直接访问,所以服务器的地址需要使用公网地址供公网用户访问,防火墙接收到公网用户访问服务器的流量,进行目的地址的转换,转换为私网地址。
华为防火墙的目的NAT配置方法,可以通过配置NAT策略来完成,也可以通过配置NAT-Server命令来完成。
基于策略的目的NAT不会生成Server-map表;NAT-Server配置会生成Server-map表
基于策略的静态目的NAT
基于策略的目的NAT指的是报文命中NAT策略后,转换报文的目的IP地址,且转换前后的地址存在一定的映射关系。以一个实验为例。
- 公网用户访问1.1.1.10或者1.1.1.11的地址,防火墙收到报文匹配NAT策略
- 匹配到NAT策略后,防火墙从目的NAT地址池中选择一个私网IP地址,替换报文的目的地址,同时根据配置是否选择替换端口
- 报文通过安全策略后,会在防火墙上建立会话表,将报文转发到服务器
- 服务器回包,防火墙收到服务器的响应报文后,匹配会话表,转换报文的源地址为对外提供服务器的公网地址,然后转发回给公网用户
- 用户如果继续发送报文,后续就会根据会话表进行转换。
实验配置
两台服务器 10.2.1.2和10.2.1.3连接交换机,交换机不需要任何配置,充当一个HUB就可以,服务器网关配置为10.2.1.1在防火墙上
防火墙配置
配置IP地址
[USG6000V1]inter g1/0/1
[USG6000V1-GigabitEthernet1/0/1]ip add 10.2.1.1 24[USG6000V1-GigabitEthernet1/0/1]q
[USG6000V1]inter g1/0/0
[USG6000V1-GigabitEthernet1/0/0]ip add 1.1.1.1 24
接口加入安全区域,连接服务器的接口是DMZ区,连接公网用户的是Untrust区
[USG6000V1]firewall zone dmz
[USG6000V1-zone-dmz]add inter g1/0/1
[USG6000V1-zone-dmz]q
[USG6000V1]firewall zone untrust
[USG6000V1-zone-untrust]add inter g1/0/0
配置安全策略,允许公网访问私网服务器
[USG6000V1]security-policy
[USG6000V1-policy-security]rule name policy1
[USG6000V1-policy-security-rule-policy1]source-zone untrust
[USG6000V1-policy-security-rule-policy1]destination-zone dmz
[USG6000V1-policy-security-rule-policy1]destination-address 10.2.1.2 32[USG6000V1-policy-security-rule-policy1]destination-address 10.2.1.3 32
[USG6000V1-policy-security-rule-policy1]action permit
配置NAT地址池
[USG6000V1]destination-nat address-group group1
# 地址池中有两个地址10.2.1.2 10.2.1.3
[USG6000V1-dnat-address-group-group1]section 10.2.1.2 10.2.1.3
[USG6000V1-dnat-address-group-group1]q
配置NAT策略
NAT策略可以指定多个destination-address ,但是要与NAT地址池中的地址按顺序一一映射,也就是1.1.1.10对应10.2.1.2; 1.1.1.11对应10.2.1.3,策略中的地址数和地址池中的地址数必要一直,不然会报错。
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name policy1
[USG6000V1-policy-nat-rule-policy1]source-zone untrust[USG6000V1-policy-nat-rule-policy1]destination-address range 1.1.1.10 1.1.1.11
[USG6000V1-policy-nat-rule-policy1]action destination-nat static address-to-address address-group group1
address-to-address 表示配置的是公网地址和私网地址一对一的映射,即一个公网地址映射为一个私网地址,有多少私网地址就需要有多少公网地址。除此外还有
port-to-port:公网地址的端口和私网地址的端口一对一映射,适用于通过一个公网地址的多个端口访问一个私网地址的多个端口的场景
address-to-port:表示多个公网地址与私网地址的多个端口一对一映射,适用于通过多个公网地址访问一个私网地址的多个端口的场景。
port-to-address:公网地址的多个端口与多个私网地址一对一映射,这适用于通过一个公网地址的多个端口访问多个私网地址的场景。
配置黑洞路由,地址池地址和出接口其实一个网段,不配置黑洞路由也可以,但是一般还是配置上比较好。
[USG6000V1]ip route-static 1.1.1.10 32 NULL 0
[USG6000V1]ip route-static 1.1.1.11 32 NULL 0
查看会话表,目的地址发生了转换,原本的1.1.1.10转换为了10.2.1.2,1.1.1.11转换为了10.2.1.3。
[USG6000V1]dis firewall session table
2024-07-09 07:33:46.590
Current Total Sessions : 2
icmp VPN: public --> public 1.1.1.2:256 --> 1.1.1.10:2048[10.2.1.2:2048]
icmp VPN: public --> public 1.1.1.2:256 --> 1.1.1.11:2048[10.2.1.3:2048]
抓包验证
防火墙公网接口抓包:源目都是公网地址
防火墙私网接口抓包:请求包目的IP转换为私网地址,回包源IP是私网地址
基于策略的动态目的NAT
动态目的NAT是一种动态转换报文目的IP地址的方式,转换前后的地址不存在一种固定的映射关系,在配置上也是通过地址池的方式,但是随机转换为目的转换地址池中的地址,不再是一一映射的关系。
实验配置
在刚才实验的基础上修改目的NAT的方式,并修改对外的地址为2.2.2.10和2.2.2.11
[USG6000V1]nat-policy
[USG6000V1-policy-nat] rule name policy1
[USG6000V1-policy-nat-rule-policy1] source-zone untrust
[USG6000V1-policy-nat-rule-policy1]destination-address range 2.2.2.10 2.2.2.11
[USG6000V1-policy-nat-rule-policy1]action destination-nat address-group group1
实验演示因为之前配置黑洞路由的原因,ping是不会通的,因为有黑洞路由,所以需要服务器启动服务,客户端访问服务器的相关服务进行演示,以Server1为例,启动HTTP服务;Server2也要启动HTTP服务
客户端使用HttpClient去访问服务器的公网地址
查看会话表,动态随机选择了私网地址10.2.1.3或者10.2.1.2,http://2.2.2.10两次,结果两次会话表是不一样的,一次转换为了10.2.1.3,一次转为了10.2.1.2;http://2.2.2.10两次,会话表的结果也不一样。
[USG6000V1]display firewall session table
2024-07-09 09:14:22.220
Current Total Sessions : 2
http VPN: public --> public 1.1.1.2:2055 --> 2.2.2.10:80[10.2.1.2:80]
http VPN: public --> public 1.1.1.2:2054 --> 2.2.2.10:80[10.2.1.3:80][USG6000V1]display firewall session table
2024-07-09 09:10:50.930
Current Total Sessions : 1
http VPN: public --> public 1.1.1.2:2052 --> 2.2.2.11:80[10.2.1.3:80]
http VPN: public --> public 1.1.1.2:2053 --> 2.2.2.11:80[10.2.1.2:80]
抓包验证
防火墙公网接口抓包:源目都是公网地址
防火墙私网接口抓包:请求包目的IP转换为私网地址,回包源IP是私网地址
1.1.1.2访问2.2.2.10 转变为 1.1.1.2访问10.2.1.2
再使用http访问2.2.2.10一次
防火墙公网接口抓包:
防火墙私网接口抓包:
1.1.1.2访问2.2.2.10 转变为 1.1.1.2访问10.2.1.3
NAT-Server
NAT-Server是一种更为简洁的目的NAT配置方式,主要是针对服务器的地址转换使用,叫做服务器映射,NAT-Server的介绍,我写在了另一边文章中单独介绍,但是要理解的是NAT-Server是目的NAT的一种方式,目的NAT不是只有NAT-Server这种配置方式。
NAT-Server(基于USG6000V)_usg做了nat server后策略怎么写-CSDN博客