L2TP/IPSec:Linux 無法連接到 Cisco ASA(但 Windows 可以)
我們的合作夥伴提供的服務只能通過 L2TP/IPSec 隧道獲得。我們成功地從 Windows 連接到它,但連接每週掛斷幾次。因此,我決定從 Linux 建立 L2TP/IPSec 連接。但經過數週的嘗試,我從未成功過。連接建立,但一旦中斷:在 Cisco 一側出現錯誤“ IKE 與遠端對等方失去聯繫,正在刪除連接”,在客戶端“ received DELETE for ESP CHILD_SA with SPI ”。
我嘗試了 CentOS 和 FreeBSD、StrongSwan、LibreSwan 和 Racoon、XL2TPD 和 MPD5 - 結果相同!我試圖在沒有防火牆和 NAT 的具有公共 IP 地址的機器上建立連接 - 結果相同!我在不同的論壇上問過,甚至在思科社區,但他們無能為力。
有趣的是,IPsec 連接的中斷僅發生在 L2TP 連接建立之後。如果 L2TP 沒有啟動,那麼 IPSec 連接仍然有效(這可以從“setkey -D”命令中看到)。
我們成功連接的 Windows 機器在同一個網路上,這意味著我們的 Internet 提供商不應該受到責備。請幫忙!服務提供商擁有 Cisco ASA 5550。
借助 Drookie 的提示,我開始進一步探勘,我設法解決了問題!我沒有設法讓 MPD5 工作,但 XL2TPd+LibreSwan(在 CentOS 中)工作正常。我剛剛添加了行
:10.0.0.1
到“/etc/ppp/options.vpn-uz”,一切正常!
根據您的 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(線路控制協議)迴聲沒有得到應答,因此連接被終止。這要麼是配置錯誤
$$ stateful $$數據包過濾器問題,或者可能是配置錯誤的 DPD(死對端檢測)問題。你需要進一步調查。 另請注意:
- IPCP(IP 控制協議)有時無法協商 IP,您可能需要在這部分增強您的 mpd5.conf。
- 您的 mpd5 日誌被嚴重混淆或損壞,在後一種情況下這是一個令人不安的跡象。