我们使用 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 造成的问题。如果您需要帮助进行验证,请随时发布您的相关配置。