L2TP/IPSec:Linux 无法连接到 Cisco ASA(但 Windows 可以)

L2TP/IPSec:Linux 无法连接到 Cisco ASA(但 Windows 可以)

我们的合作伙伴提供一项仅通过 L2TP/IPSec 隧道提供的服务。我们成功地从 Windows 连接到它,但每周连接都会中断几次。因此,我决定从 Linux 设置 L2TP/IPSec 连接。但经过数周的尝试,我始终无法做到这一点。连接建立,但一旦断开:在 Cisco 端会出现错误“IKE 与远程对等端失去联系,删除连接“,在客户方面”已收到带有 SPI 的 ESP CHILD_SA 的 DELETE“。

我尝试了 CentOS 和 FreeBSD、StrongSwan、LibreSwan 和 Racoon、XL2TPD 和 MPD5 - 结果相同!我尝试在没有防火墙和 NAT 的情况下在具有公共 IP 地址的机器上建立连接 - 结果相同!我在不同的论坛上询问,甚至在 Cisco 社区中,但他们都帮不上忙。

有趣的是,IPSec 连接的断开只发生在 L2TP 连接建立之后,如果 L2TP 没有启动,那么 IPSec 连接仍然有效(这可以从“setkey -D”命令中看到)。

我们成功连接的 Windows 计算机位于同一网络上,这意味着我们的互联网提供商没有责任。请帮忙!服务提供商有 Cisco ASA 5550。

客户端日志

思科日志

ipsec配置文件

mpd配置文件

答案1

根据您的 Strongswan/mpd5 日志,如果它们来自一个实例 - 您已成功建立客户端 l2tp/ipsec 连接:

[B_uz] IPCP: LayerUp
[B_uz]   10.10.181.222 -> 195.149.70.70
[B_uz] IFACE: Add address 10.10.181.222/32->195.149.70.70 to ng2
[B_uz] IFACE: Up event
[B_uz] IFACE: Change interface ng2 flags: -0 +1

但后来糟糕的事情开始发生:

EVENT: Processing event EVENT_READ LinkNgDataEvent() done
L2TP: RECV [MESSAGE_TYPE HELLO]
L2TP: rec'd HELLO in state established
EVENT: Processing event EVENT_TIMEOUT TimerExpires()
EVENT: Processing timer "FsmKeepAlive" FsmEchoTimeout()
EVENT: Processing timer "FsmKeepAlive" FsmEchoTimeout() done
EVENT: Processing event EVENT_TIMEOUT TimerExpires() done
EVENT: Processing event EVENT_TIMEOUT TimerExpires()
EVENT: Processing timer "FsmKeepAlive" FsmEchoTimeout()
EVENT: Processing timer "FsmKeepAlive" FsmEchoTimeout() done
EVENT: Processing event EVENT_TIMEOUT TimerExpires() done
EVENT: Processing event EVENT_TIMEOUT TimerExpires()
EVENT: Processing timer "FsmKeepAlive" FsmEchoTimeout()
[L_uz] LCP: no reply to 1 echo request(s)
EVENT: Processing timer "FsmKeepAlive" FsmEchoTimeout() done
EVENT: Processing event EVENT_TIMEOUT TimerExpires() done
L2TP: XMIT [MESSAGE_TYPE HELLO]
EVENT: Processing event EVENT_TIMEOUT TimerExpires()
EVENT: Processing timer "FsmKeepAlive" FsmEchoTimeout()
[L_uz] LCP: no reply to 2 echo request(s)
EVENT: Processing timer "FsmKeepAlive" FsmEchoTimeout() done
EVENT: Processing event EVENT_TIMEOUT TimerExpires() done
EVENT: Processing event EVENT_TIMEOUT TimerExpires()
EVENT: Processing timer "FsmKeepAlive" FsmEchoTimeout()
[L_uz] LCP: no reply to 3 echo request(s)

LCP(线路控制协议)回显未得到答复,因此连接终止。这要么是配置错误的 [有状态] 数据包过滤器问题,要么可能是配置错误的 DPD(死对等检测)问题。您需要进一步调查。

另请注意:

  • IPCP(IP 控制协议)有时无法协商 IP,您可能需要增强 mpd5.conf 的这一部分。
  • 您的 mpd5 日志要么被严重混淆,要么被损坏,在后一种情况下,这是一个令人不安的迹象。

答案2

根据 Drookie 的提示,我开始进一步挖掘,并成功解决了这个问题!我没能让 MPD5 工作,但 XL2TPd+LibreSwan(在 CentOS 中)工作正常。我只需添加以下行

:10.0.0.1

到“/etc/ppp/options.vpn-uz”,一切就都好了!

相关内容