IPSec与NAT同时部署在一台设备上,由于ACL规则未匹配NAT后的地址造成无法触发建立IPSec隧道

发布时间:  2014-09-20 浏览次数:  389 下载次数:  0
问题描述
PC通过NGFW_B进行NAT后访问Server,Server的IP地址为210.200.10.10。在NGFW_A和NGFW_B之间配置好IPSec隧道后,发现IPSec隧道无法建立。如图40-1所示。
图40-1 IPSec与NAT同时部署在一台NGFW上

处理过程
步骤 1 检查网络连通性、安全策略等问题,排除基本配置问题。
步骤 2 查看NGFW_B的IPSec配置。
在NGFW_B上执行如下命令:
<NGFW_B> display current-configuration
acl number 3000
  rule permit ip source 192.168.10.10 0 destination 210.200.10.10 0
ike local-name HWFW
ike proposal 10
ike peer ipsec-server
pre-shared-key %$%$)L5=XU;e.VPayB~"Rh6.!SJA%$%$
ike-proposal 10
local-id-type dn
remote-address 202.101.99.1
ipsec proposal prop1
  esp authentication-algorithm sha1
ipsec policy prop1 100 isakmp
  security acl 3000
  ike-peer ipsec-server
  proposal prop1
#  
nat address-group source_1  
section 0 211.103.200.2 211.103.200.2 

nat-policy                               
  rule name ssss1                        
    source-zone trust                    
    destination-zone untrust             
    source-address 192.168.10.10 32 
    action nat address-group source_1   

步骤 3 确认经过IPSec封装的数据流与NAT转换的数据流配置是否正确。
从步骤2的显示信息中可以看出,所有从PC上发出的流量都匹配了NAT策略,其中包括需要经过IPSec隧道的流量。由于设备优先处理NAT流程,故在IPSec封装之前,PC访问对端的数据流会首先进行NAT转换。这种情况下,处理方法有两种:一是修改IPSec中ACL的源地址为PC做NAT转换后的地址;二是将NAT策略中,需经过IPSec封装的数据流不做NAT(通过action no-nat命令)。
 如果访问对端的数据流需要在IPSec封装前进行NAT转换,则把ACL 3000的源地址改为NAT后地址。
[NGFW_B] acl 3000
[NGFW_B-acl-adv-3000] rule permit ip source 211.103.200.2 0 destination 210.200.10.10 0

 如果访问对端的数据流不需要在IPSec封装前进行NAT转换,则在NAT策略中增加一条动作为no-nat的策略。
[NGFW] nat-policy 
[NGFW-policy-nat] rule name no_nat 
[NGFW-policy-nat-rule-no_nat] source-zone trust 
[NGFW-policy-nat-rule-no_nat] destination-zone untrust    
[NGFW-policy-nat-rule-no_nat] source-address 192.168.10.10 32   
[NGFW-policy-nat-rule-no_nat] destination-address 210.200.10.10 32 
[NGFW-policy-nat-rule-no_nat] action no-nat  

根因
 网络层连通性、安全策略等基本配置问题。
 配置错误导致IPSec隧道无法建立。
由于NAT和IPSec的兼容性问题,如果NAT和IPSec同时存在一台设备上,会先处理NAT流程,再进行IPSec封装。
建议与总结
当IPSec与NAT配置在同一台防火墙时,要确认经过IPSec封装的数据流是否还需要进行NAT转换。
 如果需要进行NAT转换,则ACL规则要匹配NAT后的地址。
 如果不需要进行NAT转换,则ACL规则要匹配NAT前的地址。且NAT策略中要将经过IPSec隧道的数据流的动作配置为no-nat。

END