LINUX.ORG.RU
ФорумAdmin

Ни единого разрыва, или giving up after 5 retransmits

 , ,


0

1

Настраиваю туннель IPsec (без L2TP). Сервер — strongswan на Debian'е, клиент — NetworkManager-strongswan на openSUSE.
Подключается быстро, работает хорошо, трафик ходит, но недолго: примерно через 5 минут соединение рвётся.
Проблема проявляется только на Linux'е, встроенные IKEv2-клиенты на OS X и Windows и даже официальный клиент strongswan для Android из той же сети работают нормально и не рвутся.
Лог (123.123.123.123 — адрес сервера, 234.234.234.234 и 192.168.33.100 — внешний и внутренний адреса клиента):

авг 13 20:04:42 carbide NetworkManager[1149]: <info>  (tun0): Activation: successful, device activated.
авг 13 20:04:42 carbide systemd[1]: Started Network Manager Script Dispatcher Service.
авг 13 20:04:42 carbide audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=NetworkManager-dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
авг 13 20:04:42 carbide nm-dispatcher[17040]: Dispatching action 'vpn-up' for tun0
авг 13 20:04:46 carbide charon-nm[15554]: 14[IKE] retransmit 1 of request with message ID 6
авг 13 20:04:46 carbide charon-nm[15554]: 14[NET] sending packet: from 192.168.33.100[4500] to 123.123.123.123[4500] (92 bytes)
авг 13 20:04:52 carbide audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=NetworkManager-dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
авг 13 20:04:53 carbide charon-nm[15554]: 04[IKE] retransmit 2 of request with message ID 6
авг 13 20:04:53 carbide charon-nm[15554]: 04[NET] sending packet: from 192.168.33.100[4500] to 123.123.123.123[4500] (92 bytes)
авг 13 20:05:06 carbide charon-nm[15554]: 13[IKE] retransmit 3 of request with message ID 6
авг 13 20:05:06 carbide charon-nm[15554]: 13[NET] sending packet: from 192.168.33.100[4500] to 123.123.123.123[4500] (92 bytes)
авг 13 20:05:29 carbide charon-nm[15554]: 12[IKE] retransmit 4 of request with message ID 6
авг 13 20:05:29 carbide charon-nm[15554]: 12[NET] sending packet: from 192.168.33.100[4500] to 123.123.123.123[4500] (92 bytes)
авг 13 20:06:11 carbide charon-nm[15554]: 14[IKE] retransmit 5 of request with message ID 6
авг 13 20:06:11 carbide charon-nm[15554]: 14[NET] sending packet: from 192.168.33.100[4500] to 123.123.123.123[4500] (92 bytes)
авг 13 20:07:27 carbide charon-nm[15554]: 12[IKE] giving up after 5 retransmits
авг 13 20:07:27 carbide NetworkManager[1149]: <warn>  VPN plugin failed: connect-failed (1)
авг 13 20:07:27 carbide audit: MAC_IPSEC_EVENT op=SAD-delete auid=4294967295 ses=4294967295 src=123.123.123.123 dst=192.168.33.100 spi=3439037053(0xccfb8a7d) res=1
авг 13 20:07:27 carbide NetworkManager[1149]: <info>  VPN plugin state changed: stopped (6)
авг 13 20:07:27 carbide audit: MAC_IPSEC_EVENT op=SAD-delete auid=4294967295 ses=4294967295 src=192.168.33.100 dst=123.123.123.123 spi=3223190810(0xc01dfd1a) res=1
авг 13 20:07:27 carbide audit: MAC_IPSEC_EVENT op=SPD-add auid=4294967295 ses=4294967295 res=1 src=172.16.42.2 dst=0.0.0.0 dst_prefixlen=0
авг 13 20:07:27 carbide NetworkManager[1149]: <info>  VPN plugin state change reason: unknown (0)
И тем временем на сервере:
Aug 13 20:04:42 pbserv ipsec[140232]: 12[IKE] authentication of 'gasinvein' with EAP successful
Aug 13 20:04:42 pbserv charon: 09[NET] received packet: from 234.234.234.234[1040] to 123.123.123.123[4500] (92 bytes)
Aug 13 20:04:42 pbserv charon: 09[ENC] parsed INFORMATIONAL request 6 [ N(ADD_4_ADDR) N(ADD_4_ADDR) ]
Aug 13 20:04:42 pbserv charon: 09[ENC] generating INFORMATIONAL response 6 [ ]
Aug 13 20:04:42 pbserv charon: 09[NET] sending packet: from 123.123.123.123[4500] to 234.234.234.234[1040] (76 bytes)
Aug 13 20:04:46 pbserv charon: 03[NET] received packet: from 234.234.234.234[1040] to 123.123.123.123[4500] (92 bytes)
Aug 13 20:04:46 pbserv charon: 03[ENC] parsed INFORMATIONAL request 6 [ N(ADD_4_ADDR) N(ADD_4_ADDR) ]
Aug 13 20:04:46 pbserv charon: 03[IKE] received retransmit of request with ID 6, retransmitting response
Aug 13 20:04:46 pbserv charon: 03[NET] sending packet: from 123.123.123.123[4500] to 234.234.234.234[1040] (76 bytes)
Aug 13 20:04:53 pbserv charon: 03[NET] received packet: from 234.234.234.234[1040] to 123.123.123.123[4500] (92 bytes)
Aug 13 20:04:53 pbserv charon: 03[ENC] parsed INFORMATIONAL request 6 [ N(ADD_4_ADDR) N(ADD_4_ADDR) ]
Aug 13 20:04:53 pbserv charon: 03[IKE] received retransmit of request with ID 6, retransmitting response
Aug 13 20:04:53 pbserv charon: 03[NET] sending packet: from 123.123.123.123[4500] to 234.234.234.234[1040] (76 bytes)
Aug 13 20:05:06 pbserv charon: 07[NET] received packet: from 234.234.234.234[1040] to 123.123.123.123[4500] (92 bytes)
Aug 13 20:05:06 pbserv charon: 07[ENC] parsed INFORMATIONAL request 6 [ N(ADD_4_ADDR) N(ADD_4_ADDR) ]
Aug 13 20:05:06 pbserv charon: 07[IKE] received retransmit of request with ID 6, retransmitting response
Aug 13 20:05:06 pbserv charon: 07[NET] sending packet: from 123.123.123.123[4500] to 234.234.234.234[1040] (76 bytes)
Aug 13 20:05:10 pbserv charon: 13[IKE] retransmit 5 of request with message ID 0
Aug 13 20:05:10 pbserv charon: 13[NET] sending packet: from 123.123.123.123[4500] to 234.234.234.234[4500] (76 bytes)
Aug 13 20:05:29 pbserv charon: 14[NET] received packet: from 234.234.234.234[1040] to 123.123.123.123[4500] (92 bytes)
Aug 13 20:05:29 pbserv charon: 14[ENC] parsed INFORMATIONAL request 6 [ N(ADD_4_ADDR) N(ADD_4_ADDR) ]
Aug 13 20:05:29 pbserv charon: 14[IKE] received retransmit of request with ID 6, retransmitting response
Aug 13 20:05:29 pbserv charon: 14[NET] sending packet: from 123.123.123.123[4500] to 234.234.234.234[1040] (76 bytes)
Aug 13 20:06:11 pbserv charon: 09[NET] received packet: from 234.234.234.234[1040] to 123.123.123.123[4500] (92 bytes)
Aug 13 20:06:11 pbserv charon: 09[ENC] parsed INFORMATIONAL request 6 [ N(ADD_4_ADDR) N(ADD_4_ADDR) ]
Aug 13 20:06:11 pbserv charon: 09[IKE] received retransmit of request with ID 6, retransmitting response
Aug 13 20:06:11 pbserv charon: 09[NET] sending packet: from 123.123.123.123[4500] to 234.234.234.234[1040] (76 bytes)
Aug 13 20:06:26 pbserv charon: 11[IKE] giving up after 5 retransmits
Aug 13 20:06:26 pbserv charon: 11[CFG] sending RADIUS Accounting-Request to server 'server-a'
Aug 13 20:06:26 pbserv charon: 11[CFG] received RADIUS Accounting-Response from server 'server-a'
Aug 13 20:06:26 pbserv charon: 11[CFG] lease 172.16.42.1 by 'gasinvein' went offline
Почему так может происходить?

Не сильно в теме (не пробовал NetworkManager-strongswan; не знал что встроенный в Винду VPN-клиент поддерживает IKEv2, без l2tp).

Выложи конфиг сервера, может кто что подскажет. И если без l2tp, то по идее тебе совсем не нужен никакой особый «клиент». Просто можно сконфигурить на клиенте strongswan и запускать там ipsec up myvpn.

123.123.123.123 и ... — внешний ... адреса клиента

234... (поправь)

abvgdee
()
Ответ на: комментарий от abvgdee

VPN-клиент поддерживает IKEv2, без l2tp

Скверно, но поддерживает. Не умеет split-tunneling и маршруты, как я понял, добавить можно только вручную.

Выложи конфиг сервера

Вряд ли проблема на стороне сервера, да и конфиг ничем не примечательный.

234... (поправь)

Спасибо, поправил.

config setup
        uniqueids=no
        nat_traversal=yes

conn %default
        dpdaction=clear
        dpddelay=20s
        dpdtimeout=60s

        fragmentation=yes
        rekey=no

        type=tunnel

        left=%any
        leftauth=pubkey
        leftcert=netaccess.crt
        leftsendcert=always
        leftsubnet=0.0.0.0/0

        right=%any
        rightauth=pubkey
        rightsourceip=172.16.42.0/24

conn ikev1-xauth-rsa
        keyexchange=ikev1
        auto=add
        rightauth=pubkey
        rightauth2=xauth-radius

conn ikev1-xauth-hybrid
        keyexchange=ikev1
        auto=add
        rightauth=xauth-radius

conn ikev2-eap
        keyexchange=ikev2
        auto=add
        rightauth=eap-radius
        eap_identity=%any

conn ikev2-eap-osx
        also="ikev2-eap"
        leftid=example.com

include /var/lib/strongswan/ipsec.conf.inc

gasinvein ★★★
() автор топика

Мне кажется, что клиент отправляет сообщения серверу

04[IKE] retransmit 2 of request with message ID 6
04[NET] sending packet: from 192.168.33.100[4500] to 123.123.123.123[4500] (92 bytes)
сервер их получает
03[IKE] received retransmit of request with ID 6, retransmitting response
и отвечает
03[NET] sending packet: from 123.123.123.123[4500] to 234.234.234.234[1040] (76 bytes)
но клиент ответов не получает и снова шлёт retransmit.
Как будто ответы «застревают» на фаерволе. Но другие клиенты же работают за ним же.

gasinvein ★★★
() автор топика
Последнее исправление: gasinvein (всего исправлений: 1)

1. Сравните конфиги клиента и сервера. Они должны быть «почти» одинаковые.
2. Сравните версии strongswan, они грешат поломками от версии к версии.

anc ★★★★★
()
Ответ на: комментарий от anc

Сравните конфиги клиента и сервера.

Как я понимаю, конфиг клиента генерирует networkmanager.

Они должны быть «почти» одинаковые.

Что именно должно быть одинаковым?

Сравните версии strongswan, они грешат поломками от версии к версии.

Ага, strongswan совместим с IKEv2-клиентом в Windows, но несовместим с другой минорной версией strongswan.

gasinvein ★★★
() автор топика
Последнее исправление: gasinvein (всего исправлений: 1)
Ответ на: комментарий от gasinvein

Как я понимаю, конфиг клиента генерирует networkmanager.

Генерит, но он же где-то есть.

Ага, strongswan совместим с IKEv2-клиентом в Windows, но несовместим с другой версией strongswan.

Угу. Об этом здесь мной и другими пользователями strongswan говорилось. И винда, винде рознь, кстати тоже не знал что она стала IKEv2 поддерживать, с какой хоть версии?
Вобщем это так лирика, конфиги все-таки сравните.

anc ★★★★★
()
Ответ на: комментарий от anc

но он же где-то есть

Не обязательно кмк, есть клиенты которые сами в себе всё реализуют (Shrew Soft ike-qtgui емнип).

И да, кмк надо сверху вниз копать, а не из логов к гуям. (были глюки с фрагментацией, которые я так и не отладил, бросил, перешёл на IKEv1+l2tp.. а из логов ничего не понятно было). Читать доки по настройке клиента. А если это Гном3 - я бы выбросил его нах, вместе с гномом (это не свободный софт, а подсаживающий, несмотря на лицензию)

abvgdee
()
Последнее исправление: abvgdee (всего исправлений: 1)
Ответ на: комментарий от anc

винда, винде рознь

Не только винда. И OS X, и клиент strongswan на андроид (см. ОП-пост) работают хорошо.

конфиги все-таки сравните

Так а что там может различаться-то? Механизм авторизации, алгоритмы шифрования? Тогда бы оно вообще не подключалось.

gasinvein ★★★
() автор топика
Ответ на: комментарий от abvgdee

У меня теперь есть подозрение, что проблема где-то в маршрутизации. Если на сервере вместо

leftsubnet=0.0.0.0/0
сделать
leftsubnet=192.168.10.0/24,...
т.е. только те сети, к которым должен быть доступ, а не шлюз по-умолчанию, то клиент, похоже, начинает получать ответы и соединение не рвётся.
При этом, если оставить на сервере 0.0.0.0/0, а в NetworkManager'е сделать
[ipv4]
method=auto
ignore-auto-routes=true
never-default=true
route1=192.168.10.0/24
то поведение такое же, как и если не трогать настройки маршрутизации в NetworkManager'е.

gasinvein ★★★
() автор топика
Последнее исправление: gasinvein (всего исправлений: 2)
Ответ на: комментарий от gasinvein

Если учесть что 5 минут все-таки работает... Даже не знаю что еще предположить... :( возможно и nm чего-то мудрит... я его незнаю от слова совсем, оно что-то не познанное, живущее своей жизнью...

anc ★★★★★
()
Ответ на: комментарий от anc

Я попозже попробую wireshark'ом посмотреть, что там происходит при разных настройках leftsubnet на сервере и маршрутизации на клиенте.
Так-то и оставил бы только нужные подсети без маршрута по-умолчанию, да Windows не может split tunneling.

gasinvein ★★★
() автор топика
Последнее исправление: gasinvein (всего исправлений: 1)
Ответ на: комментарий от gasinvein

Для сведения, мак тоже весьма недавно научился в ikev2.

anc ★★★★★
()
Ответ на: комментарий от gasinvein

Так-то и оставил бы только нужные подсети без маршрута по-умолчанию, да Windows не может split tunneling.

Реализуемо в виде разных настроек, но для вариантов статикip или сертификатов. Точнее так, по другому я не делал :)

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.