L2TP/IPSec: Linux не может подключиться к Cisco ASA (но Windows может)
Наш партнер предоставляет услугу, которая доступна только через туннель L2TP/IPSec. Мы успешно подключаемся к нему из Windows, но соединение зависает пару раз в неделю. Поэтому я решил установить соединение L2TP/IPSec из Linux. Но после нескольких недель попыток мне так и не удалось это сделать. Соединение устанавливается, но как только оно разрывается: на стороне Cisco появляется ошибка "IKE потерял связь с удаленным узлом, удаляя соединение", а на стороне клиента "получено DELETE для ESP CHILD_SA с SPI".
Я попробовал CentOS и FreeBSD, StrongSwan, LibreSwan и Racoon, XL2TPD и MPD5 - тот же результат! Я пытался установить соединение на машине с публичным IP-адресом без брандмауэров и NAT - результат тот же! Я спрашивал на разных форумах, даже в сообществе Cisco, но они не могли помочь.
Интересно, что разрыв соединения IPsec происходит только после установления соединения L2TP. Если L2TP не запущен, то соединение IPSec остается действительным (это можно увидеть из команды "setkey -D").
Компьютер с Windows, к которому мы успешно подключились, находится в той же сети, что означает, что наш интернет-провайдер не виноват. Пожалуйста помоги! Поставщик услуг имеет Cisco ASA 5550.
2 ответа
Используя подсказку Друки, я начал копать дальше, и мне удалось решить проблему! Мне не удалось заставить работать 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 (Line Control Protocol) не отвечают, поэтому соединение прекращается. Это либо неправильно сконфигурированная [сохраняющая состояние] проблема фильтра пакетов, либо, возможно, неправильно сконфигурированная проблема DPD (Dead Peer Detection). Тебе нужно расследовать дальше.
Также обратите внимание:
- IPCP (IP Control Protocol) иногда не может согласовать IP-адреса, вам, вероятно, необходимо улучшить ваш mpd5.conf в этой части.
- Ваши логи mpd5 плохо запутаны или повреждены, в последнем случае это тревожный признак.