在建立 IPSEC 隧道时,哪些因素可能会阻止 IKE 握手成功?

在建立 IPSEC 隧道时,哪些因素可能会阻止 IKE 握手成功?

我们使用 Cisco ASA 作为 IPSEC VPN,采用 EZVPN 方法。我们有时会遇到这样的问题:ISP 对其网络进行了更改,导致我们的 VPN 停止工作。十有八九,ISP 否认他们的更改可能导致我们的 VPN 停止工作 - 我怀疑是因为他们不了解问题可能由何而来。与其与他们争吵,我更想尝试为他们指明可能更快解决问题的方向。

在当前事件中,我可以通过 ssh 连接到 ASA 的外部接口并进行一些探索:

 sh crypto isakmp sa

   Active SA: 1
    Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey)
Total IKE SA: 1

1   IKE Peer: {Public IP address of London ASA}
    Type    : user            Role    : initiator
    Rekey   : no              State   : AM_TM_INIT_XAUTH_V6C

在链接的另一端我看到以下内容:

Active SA: 26
<snip>
25  IKE Peer: {public IP address of Port-Au-Prince-ASA}
    Type    : user            Role    : responder
    Rekey   : no              State   : AM_TM_INIT_MODECFG_V6H

我找不到任何关于什么AM_TM_INIT_XAUTH_V6C或的文档AM_TM_INIT_MODECFG_V6H,但我很确定这意味着 IKE 握手由于某种原因失败了。

有人能指出可能阻碍 IKE 成功的因素吗,或者具体细节吗AM_TM_INIT_XAUTH_V6C

更新:我们在另一家 ISP 的客户站点连接了 ASA。VPN 连接立即建立。这证实问题与配置无关。ISP 现在承担责任并进一步调查。

更新:上周连接突然恢复了。我已通知 ISP,看他们是否做了任何更改,但尚未收到回复。令人沮丧的是,我现在在另一个网站上也看到了类似的问题。我找到了一个Cisco 文档关于碎片化对 VPN 的影响。我开始认为这可能是我所看到的问题的原因。

答案1

在思科的帮助下,我对发生的事情进行了更深入的分析,并找出了需要检查的内容。思科告诉我的有用信息如下:

  • debug crypto isakmp 5提供足够的细节来查看 ISAKMP 流量是否出现问题
  • clear crypto isakmp sa清除所有陈旧的安全关联。
  • clear crypto isakmp {client_ip_address}可以在 HQ 上使用来清除特定的安全关联(如果只有一台设备出现问题,则不一定要清除所有安全关联!
  • 两端的数据包捕获对于弄清楚发生了什么非常有用

通过阅读一些有关 IPSEC 套件和 ISAKMP 的内容,我们更具体地了解到,需要允许以下内容通过路径上的任何防火墙:

  • UDP 端口 500 上的 ISAKMP 流量
  • UDP 端口 4500 上的 ISAKMP(用于 NAT 隧道)流量
  • ESP 流量(IP 协议 50)
  • AH 流量(IP 协议 51)

似乎很多人没有意识到 IP 协议和 TCP/UDP 端口之间的重要区别。

以下数据包捕获主要针对上述类型的流量。这些是在远程和总部 ASA 上设置的:

object service isakmp-nat-t 
    service udp destination eq 4500 
    description 4500
object-group service ISAKMP-Services
    description Traffic required for ISAKMP
    service-object esp 
    service-object ah 
    service-object object isakmp-nat-t 
    service-object udp destination eq isakmp
access-list ISAKMP extended permit object-group ISAKMP-Services host {hq_ip_address} host {remote_ip_address}
access-list ISAKMP extended permit object-group ISAKMP-Services host {remote_ip_address} host {hq_ip_address}
capture ISAKMP access-list ISAKMP interface outside

然后,您可以从每个设备下载捕获的数据,https://{device_ip_address}/capture/ISAKMP/pcap并在Wireshark

我的数据包捕获显示,上面概述的 ISAKMP 流量正在变得碎片化 - 因为这些数据包是加密的,一旦它们被碎片化,就很难将它们重新组合在一起,并且一切都会中断。

向 ISP 提供这些信息意味着他们可以进行自己的重点检查,并最终对防火墙进行了一些更改。结果发现 ISP 阻止了全部边缘路由器上的 ICMP 流量,这意味着路径 MTU 发现被破坏,导致 ISAKMP 数据包碎片化。一旦他们停止全面阻止 ICMP,VPN 就会启动(我预计他们的所有客户都会开始获得更好的服务)。

答案2

您的 ISP 很可能将您的流量误认为 P2P 文件共享或某些恶意行为。请查看M-实验室看看是否真有这样的事。

答案3

AM_TM_INIT_XAUTH 错误可能意味着您的预共享密钥不匹配。(来源 www.cisco.com/warp/public/471/easyvpn-nem.pdf)

建立 IPSec 会话所需要做的工作就是允许发往端口 500(对于 IKE)和 ESP 流量(或 UDP 4500(对于 NAT-T))的 UDP 流量。这似乎是配置问题,而不是 ISP 造成的问题。如果您需要帮助进行验证,请随时发布您的相关配置。

相关内容