在特定的NAT转换时,可能会产生环路及无效ARP,关于其如何产生,大概就是,
在有些NAT的转换方式中,是为了解决内网连接Internet,而映射出了一个公有IP
那么,若此时有人通过internet来访问这个映射出来的公有IP,就会产生这两种情况。
根据情况选择是否配置黑洞路由
NAT类型 | 描述 | 是否配置黑洞路由 |
---|---|---|
NAT NO-PAT | 当公网用户访向转换后地址时产生环路或产生ARP报文 | 是 |
NAPT | 当公网用户访问转换后地址时产生环路或产生ARP报文 | 是 |
出接口地址( Easy-IP) | 转换后的地址就是外网接口地址,公网用户访问该地址被防火墙接收(策略允许)或丢弃(策略不允不产生环路 | 否 |
NAT Server(粗泛) | 当公网用户访问映射后地址时直接转发给内部服务器 | 否 |
NAT Server(精细) | 当公网用户访问映射后地址时产生环路或产生ARP报文 | 是 |
解决这两个问题很简单,就是配置黑洞路由
(将internet主动访问映射出来的地址的流量指定到空接口null0)
[USG6000V1]ip route-static 100.2.2.10 32 NULL 0
server-map表不用手动配置,是自动生成的,在NAT中,不是所有的表都可以生成server-map表的,我简单总结了一下,如下:
NAT类型 | 描述 |
---|---|
NAT no-PAT | 动态生成server-map表,也就是说只有流量通过才会 自动生成server-map表,并且不是长期存在的 |
NAT Server | 静态生成server-map表,意味表中的内容长期存在 |
NAPT及出口地址方式 | 不会生成Server-map表 |
当防火墙上配置某些内类的NAT后,在防火墙上会生成Server-map,默认生成两个server-map条目,
分别是正向条目和反向条目(Reverse)
此时Server-map表的作用是:
PC机和server服务器与client客户端配置方法相同,双击打开–填写地址–应用/保存
R1配置IP地址
sys '//进入系统视图'
Enter system view, return user view with Ctrl+Z.
[Huawei]sysn R1 '//修改设备名称'
[R1]int g0/0/0 '//进入接口'
[R1-GigabitEthernet0/0/0]ip add 100.1.1.1 30 '//添加IP地址'
[R1-GigabitEthernet0/0/0]un sh '//保存'
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 200.1.1.1 24
[R1-GigabitEthernet0/0/1]un sh
[R1]ip route-static 100.2.2.8 29 100.1.1.2 '//100.2.2.8/29为汇总后的地址'
登陆防火墙,配置IP地址
Username:admin
Password: '//输入Admin@123'
The password needs to be changed. Change now? [Y/N]: y
Please enter old password: '//输入Admin@123'
Please enter new password: '//输入自定义新密码,如abcd@123'
Please confirm new password: '//重复输入自定义新密码'
sys
[USG6000V1]in g1/0/0
[USG6000V1-GigabitEthernet1/0/0]ip add 100.1.1.2 30
[USG6000V1-GigabitEthernet1/0/0]in g1/0/4
[USG6000V1-GigabitEthernet1/0/4]ip add 192.168.3.1 24
[USG6000V1-GigabitEthernet1/0/4]in g1/0/3
[USG6000V1-GigabitEthernet1/0/3]ip add 192.168.2.1 24
[USG6000V1-GigabitEthernet1/0/3]in g1/0/2
[USG6000V1-GigabitEthernet1/0/2]ip add 192.168.1.1 24
[USG6000V1-GigabitEthernet0/0/0]in g1/0/1
[USG6000V1-GigabitEthernet1/0/1]ip add 192.168.0.1 24
[USG6000V1-GigabitEthernet1/0/1]quit
[USG6000V1]ip route-static 0.0.0.0 0.0.0.0 100.1.1.1
先将接口添加到对应区域
[USG6000V1]firewall zone trust '//进入trust区域'
[USG6000V1-zone-trust]add in g1/0/4 '//添加接口'
[USG6000V1-zone-trust]add in g1/0/3
[USG6000V1-zone-trust]add in g1/0/2
[USG6000V1-zone-trust]quit
[USG6000V1]firewall zone dmz '//进入dmz区域'
[USG6000V1-zone-dmz]add in g1/0/1
[USG6000V1-zone-dmz]quit
[USG6000V1]firewall zone untrust '//进入untrust区域'
[USG6000V1-zone-untrust]add in g1/0/0
配置安全策略
[USG6000V1]security-policy
[USG6000V1-policy-security]rule name easy '//定义安全策略名字'
[USG6000V1-policy-security-rule-easy]source-zone trust '//源区域为trust'
[USG6000V1-policy-security-rule-easy]destination-zone untrust '//目标区域为untrust'
[USG6000V1-policy-security-rule-easy]action permit '//动作为允许'
[USG6000V1-policy-security-rule-easy]quit
[USG6000V1-policy-security]quit
配置NAT策略
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name easypolicy '//定义NAT策略名字'
[USG6000V1-policy-nat-rule-easypolicy]source-address 192.168.3.0 24 '//定义源地址'
[USG6000V1-policy-nat-rule-easypolicy]source-zone trust '//定义源区域'
[USG6000V1-policy-nat-rule-easypolicy]destination-zone untrust '//定义目标区域'
[USG6000V1-policy-nat-rule-easypolicy]action source-nat easy-ip '//配置出接口方式'
[USG6000V1-policy-nat-rule-easypolicy]quit
[USG6000V1-policy-nat]quit
技术部主机PC1访问Internet的client
'//查看会话表,地址已经成功转换'
[USG6000V1]dis firewall session table
2020-02-11 12:34:58.660
Current Total Sessions : 5
icmp VPN: public --> public 192.168.3.2:24735[100.1.1.2:2065] --> 200.1.1.2:2
048
icmp VPN: public --> public 192.168.3.2:24479[100.1.1.2:2064] --> 200.1.1.2:2
048
icmp VPN: public --> public 192.168.3.2:24991[100.1.1.2:2066] --> 200.1.1.2:2
048
icmp VPN: public --> public 192.168.3.2:24223[100.1.1.2:2063] --> 200.1.1.2:2
048
icmp VPN: public --> public 192.168.3.2:25247[100.1.1.2:2067] --> 200.1.1.2:2
048
配置NAT地址组
[USG6000V1]nat address-group napt '//定义nat地址组名'
[USG6000V1-address-group-napt]section 0 100.2.2.12 '//定义组中的地址'
[USG6000V1-address-group-napt]mode pat '//配置为NAPT方式'
[USG6000V1-address-group-napt]quit
配置NAT策略
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name napt '//自定义nat策略的组名'
[USG6000V1-policy-nat-rule-napt]source-address 192.168.2.0 24 '//定义需要转换的源地址'
[USG6000V1-policy-nat-rule-napt]source-zone trust '//定义源区域'
[USG6000V1-policy-nat-rule-napt]destination-zone untrust '//定义目标区域'
[USG6000V1-policy-nat-rule-napt]action source-nat address-group napt '//关联地址组'
配置黑洞路由
NAPT的NAT类型要配置黑洞路由,所以要针对转换后的全局地址100.2.2.12/32配置黑洞路由。
[USG6000V1] ip route-static 100.2.2.12 32 NULL 0
行政部主机PC2访问Internet的client
[USG6000V1]dis firewall session table '//查看会话表,地址已经成功转换'
2020-02-11 12:29:05.470
Current Total Sessions : 5
icmp VPN: public --> public 192.168.2.2:63389[100.2.2.12:2048] --> 200.1.1.2:
2048
icmp VPN: public --> public 192.168.2.2:64413[100.2.2.12:2051] --> 200.1.1.2:
2048
icmp VPN: public --> public 192.168.2.2:64669[100.2.2.12:2052] --> 200.1.1.2:
2048
icmp VPN: public --> public 192.168.2.2:64157[100.2.2.12:2050] --> 200.1.1.2:
2048
icmp VPN: public --> public 192.168.2.2:63645[100.2.2.12:2049] --> 200.1.1.2:
2048
配置NAT地址组
[USG6000V1]nat address-group natnopat '//定义nat地址组名'
[USG6000V1-address-group-natnopat]section 0 100.2.2.10 100.2.2.11 '//定义组中的地址'
[USG6000V1-address-group-natnopat]mode no-pat local '//配置为NAT No-PAT方式'
[USG6000V1-address-group-natnopat]quit
配置NAT策略
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name nopat '//自定义nat策略的组名'
[USG6000V1-policy-nat-rule-nopat]source-address 192.168.1.0 24 '//定义需要转换的源地址'
[USG6000V1-policy-nat-rule-nopat]source-zone trust '//定义源区域'
[USG6000V1-policy-nat-rule-nopat]destination-zone untrust '//定义目标区域'
[USG6000V1-policy-nat-rule-nopat]action source-nat address-group natnopat '//关联地址组'
[USG6000V1-policy-nat-rule-nopat]quit
[USG6000V1-policy-nat]quit
配置黑洞路由
'//针对转换后的全局地址(NAT地址组中的地址)配置黑洞路由:'
[USG6000V1]ip route-static 100.2.2.10 32 NULL 0
[USG6000V1]ip route-static 100.2.2.11 32 NULL 0
财务部PC3访问Internet的client
[USG6000V1]dis firewall session table
2020-02-11 12:39:25.340
Current Total Sessions : 5
icmp VPN: public --> public 192.168.1.2:25760[100.2.2.10:25760] --> 200.1.1.2
:2048
icmp VPN: public --> public 192.168.1.2:24992[100.2.2.10:24992] --> 200.1.1.2
:2048
icmp VPN: public --> public 192.168.1.2:25248[100.2.2.10:25248] --> 200.1.1.2
:2048
icmp VPN: public --> public 192.168.1.2:26016[100.2.2.10:26016] --> 200.1.1.2
:2048
icmp VPN: public --> public 192.168.1.2:25504[100.2.2.10:25504] --> 200.1.1.2
:2048
[USG6000V1]dis firewall server-map
2020-02-11 12:39:41.740
Current Total Server-map : 2
Type: No-Pat Reverse, ANY -> 100.2.2.10[192.168.1.2], Zone: untrust
Protocol: ANY, TTL:---, Left-Time:---, Pool: 1, Section: 0
Vpn: public
Type: No-Pat, 192.168.1.2[100.2.2.10] -> ANY, Zone: untrust
Protocol: ANY, TTL:360, Left-Time:357, Pool: 1, Section: 0
Vpn: public
配置安全策略
[USG6000V1]security-policy
[USG6000V1-policy-security]rule name todmz
[USG6000V1-policy-security-rule-todmz]source-zone untrust
[USG6000V1-policy-security-rule-todmz]destination-zone dmz
[USG6000V1-policy-security-rule-todmz]destination-address 192.168.0.0 24
[USG6000V1-policy-security-rule-todmz]service ftp
[USG6000V1-policy-security-rule-todmz]service http
[USG6000V1-policy-security-rule-todmz]action permit
配置NATserver
[USG6000V1]nat server ftp protocol tcp global 100.2.2.9 21 inside 192.168.0.2 21
[USG6000V1]nat server http protocol tcp global 100.2.2.9 80 inside 192.168.0.3 80
使用外网客户端client1进行访问验证
查看会话表和server-map表
[USG6000V1]dis firewall session table
2020-02-11 13:04:09.130
Current Total Sessions : 1
ftp VPN: public --> public 200.1.1.2:2058 +-> 100.2.2.9:21[192.168.0.2:21]
[USG6000V1]dis firewall server-map
2020-02-11 13:04:52.430
Current Total Server-map : 4
Type: Nat Server, ANY -> 100.2.2.9:80[192.168.0.3:80], Zone:---, protocol:tc
p
Vpn: public -> public
Type: Nat Server, ANY -> 100.2.2.9:21[192.168.0.2:21], Zone:---, protocol:tc
p
Vpn: public -> public
Type: Nat Server Reverse, 192.168.0.2[100.2.2.9] -> ANY, Zone:---, protocol:
tcp
Vpn: public -> public, counter: 1
Type: Nat Server Reverse, 192.168.0.3[100.2.2.9] -> ANY, Zone:---, protocol:
tcp
Vpn: public -> public, counter: 1
访问验证HTTP
再次相同方法查看会话表和server-map表