IPSec SA协商不通

发布时间:  2014-09-20 浏览次数:  1895 下载次数:  0
问题描述
如图42-1所示组网中,在使用IKEv1的IPSec协商时,无论采用主模式还是野蛮模式,第二阶段SA即IPSec SA均建立不成功。
图42-1 IPSec VPN组网图

从PC1 ping PC2后:
在NGFW_A上查看IKE SA建立情况。
[NGFW_A] display ike sa
current ike sa number: 2
-----------------------------------------------------------------------------
conn-id    peer                    flag          phase vpn
-----------------------------------------------------------------------------
40006      <unnamed>               NONE          v1:2  public
40004      1.1.1.2                 RD|ST         v1:1  public

  flag meaning
  RD--READY    ST--STAYALIVE  RL--REPLACED      FD--FADING
  TO--TIMEOUT  TD--DELETING   NEG--NEGOTIATING  D--DPD
在NGFW_A上配置debugging ike error命令,并打开终端显示信息功能(terminal monitor)和打开终端显示调试信息功能(terminal debugging)。查看Debug信息和日志信息,出现以下两种显示之一:
 显示一
2012-08-08 15:05:15 NGFW %%01IKE/4/WARNING(l): phase2: proposal or pfs dh-gro
up mismatch, please check ipsec proposal and pfs dh-group configuration.        
*0.1921499990 NGFW IKE/7/DEBUG:got NOTIFY of type NO_PROPOSAL_CHOSEN
 显示二
2012-08-08 15:39:34 NGFW %%01IKE/4/WARNING(l): phase2: security acl mismatch.
*0.1923558650 NGFW IKE/7/DEBUG:got NOTIFY of type INVALID_ID_INFORMATION 
处理过程
步骤 1 首先查看两端的IPSec安全提议或PFS配置是否一致。
如果NGFW_A出现显示一,则说明两端的IPSec安全提议或PFS配置不一致,请修改为两端一致。
如果NGFW_A出现显示二,则说明两端的ACL配置有误,请执行以下步骤,排查ACL配置问题。
步骤 2 查看NGFW_A的ACL配置是否有误。
1. 查看NGFW_A的IPSec策略引用的ACL,并执行命令display acl acl-number。
[NGFW_A] ipsec policy 2 23 isakmp
[NGFW_A-ipsec-policy-isakmp-2-23] display this
#
ipsec policy 2 23 isakmp 
security acl 3010
ike-peer peer1
proposal 1

[NGFW_A] display acl 3010  
Advanced ACL 3010, 1 rule,not binding with vpn-instance                         
Acl's step is 5                                                                 
rule 5 permit ip source 10.1.1.0 0.0.0.255 destination 10.2.1.0 0.0.0.255
(8 times matched)       
2. 再次从PC1 ping PC2,并在NGFW_A上执行命令display acl acl-number。

说明:只有IPSec隧道未建立时,发起协商的报文会命中ACL,导致命中次数增长,而接受协商一端的ACL不会增长。当IPSec隧道建立成功后,匹配ACL的数据流不会导致ACL命中次数增长。

[NGFW_A] display acl 3010  
Advanced ACL 3010, 1 rule,not binding with vpn-instance                         
Acl's step is 5                                                                 
rule 5 permit ip source 10.1.1.0 0.0.0.255 destination 10.2.1.0 0.0.0.255
(14 times matched)       
ACL的匹配次数增长了6次,说明本端的ACL配置与需保护的数据流一致,即本端ACL配置无误。
步骤 3 查看NGFW_B的ACL配置是否有误。
从PC2 ping PC1,同样使用display acl acl-number命令查看NGFW_B的ACL的命中次数。
发现ping之后与ping之前相比,NGFW_B上ACL的命中次数没有增加。说明NGFW_B的ACL配置与需保护的数据流不一致,即NGFW_B的ACL配置有误。
步骤 4 将NGFW_B的ACL修改为和NGFW_A一致,问题即解决。
ACL的两端配置方法请参考定义需要保护的数据流。
根因
第二阶段SA没有建立成功,排除IKE配置问题。
如果NGFW_A出现显示一,则说明两端的IPSec安全提议或PFS配置不一致。
如果NGFW_A出现显示二,则说明至少一端的ACL配置有误。
建议与总结
建议IPSec隧道两端配置的ACL规则互为镜像。配置为镜像不是必要条件,不过实际应用中配置成镜像更简单也不易出错。一般来讲,只要发起方配置的ACL规则范围比响应方小就可以。采用IKEv2进行协商时,双方ACL规则取交集。
对于IKEv1方式建立的IPSec隧道,如果本端ACL配置错误,那从本端内网ping对端内网,则执行display ike sa命令发现两阶段SA均未建立无显示,且display acl acl-number发现ACL的匹配次数不变。如果对端ACL配置错误,那从本端内网ping对端内网,则执行display ike sa命令发现只有第一阶段建立成功,且display acl acl-number发现ACL的匹配次数增加。
对于IKEv2方式建立的IPSec隧道,如果IPSec安全提议或ACL配置错误,对于某些版本的设备,执行display ike sa命令可能查看到两个阶段的SA均未建立。

END