将实验结论写在前面方便大家直接查看
1、NAT策略中rule与rule之间的关系为“或”的关系,即多个rule存在时,流量只需要匹配其中一个rule即可,流量会按照匹配的rule规则进行流量转发。(华为华三的防火墙rule是没有ID的,即配置上rule后rule ID是不显示的(可以通过display security-policy rule命令查看ID等信息),所以我们不能通过rule ID指定rule的匹配先后顺序,在命令行界面是按照从上往下的机制进行顺序匹配的)注意安全策略不同于NAT策略,安全策略在命令行界面是从下往上进行匹配的。如果需要调整rule规则的顺序可以通过rule move命令进行调整。
2、NAT策略中rule内的不同的匹配条件之间是与的关系,相同的匹配条件之间是或的关系,通过以下命令实例进行解释。
nat-policy
rule name test0
source-zone trust
destination-zone untrust
source-address 10.0.0.1 mask 255.255.255.255
source-address 10.0.0.2 mask 255.255.255.255
source-address 10.0.0.3 mask 255.255.255.255
destination-address 2.2.2.2 mask 255.255.255.255
action no-nat
不同的匹配条件:source-address和destination-address之间就是不同的匹配条件,他们之间是与的关系,即rule中只要存在的不同的匹配条件,流量必须都匹配才会触发该条策略。
相同的匹配条件: source-address 10.0.0.1 mask 255.255.255.255 和 source-address 10.0.0.2 mask 255.255.255.255之间即为相同的匹配条件,它们之间是或的关系,流量只需要匹配其中任意一个即可。
注意:策略内如果未指定匹配条件的项,如不指定匹配的协议类型,即默认所有协议都可以放通。
下面以华为防火墙为例,使用ENSP软件进行实例抓包观察
配置
底层路由交换配置略过(只需要配通就可以)
FW1的NAT策略配置如下:
nat-policy
rule name test0
source-zone trust
destination-zone untrust
source-address 10.0.0.1 mask 255.255.255.255
source-address 10.0.0.2 mask 255.255.255.255
source-address 10.0.0.3 mask 255.255.255.255
destination-address 2.2.2.2 mask 255.255.255.255
action no-nat
rule name test
source-zone trust
destination-zone untrust
source-address 10.0.0.1 mask 255.255.255.255
source-address 10.0.0.2 mask 255.255.255.255
source-address 10.0.0.3 mask 255.255.255.255
action source-nat easy-ip
注意:
no-nat部分流量一般为需要走VPN隧道的流量,为了避免流量进行NAT后无法进入隧道,所以需要在NAT策略前加上no-nat策略。
如果未配置no-nat策略,当NAT与IPsec VPN的ACL感兴趣流同时存在时,且NAT的公网出接口与IPsec VPN的公网出接口为同一出口时(即源地址相同的流量即需要走VPN也需要走公网时的情况),设备的处理顺序如下:
1、首先将收到的匹配IPsec VPN的ACL感兴趣流,将这部分流量送入到IPsec VPN处理环节,等待处理;
2、IPsec VPN将感兴趣流量送到启用IPsec策略的接口上(物理接口或者tunnel口,最终流量还是会送到公网物理接口进行处理),此时流量会先进行NAT处理,从而导致IPsec VPN的流量转发失败。
在FW的公网出接口G1/0/0上进行抓包查看NAT情况:
在PC1和PC2上ping1.1.1.1,显示如下:
在PC1和PC2上ping2.2.2.2,显示如下:
PC1如下:
PC2如下: