Столкнулся со следующей проблемой при использовании openconnect server на KeeneticOS.
После успешной установки соединения с iPhone (клиент: AnyConnect 5.1.10 (а есть ли альтернативы на iPhone?!)) оно разрывается через 27 секунд.
Потратил несколько часов и выводы следующие:
если использовать ту же конфигурацию но с iPad-а подключенного через Personal Hotspot (tethering), то всё работает без проблем. Также VPN работает с компа при использовании Personal Hotspot.
Я включил отладку на Keenetic и обнаружил, что TLS и DTLS соединения устанавливаются с разных IP. Также статистика AnyConnect клиента на iPhone по переданным (Sent) пакетам всегда ноль.
Я думаю, что проблема явно у мобильного оператора, который пытается оптимизировать сеть направляя UDP трафик по отдельной несущей/виртуальному каналу (bearer), a nat с разных bearer использует разные внешние пулы и не синхронизирован. Весь же трафик с Personal Hotspot (tethering) оптимизации не подлежит (кто будет на телефоне DPI делать?!) и соответственно использует один bearer и всё работает.
Сталкивался ли кто с такой проблемой и как её решали?
P.S. wireguard с телефона работает без проблем - там нет отдельного TCP соединения для управления
P.P.S. IMHO, для мобильного оператора это очень простой способ бороться с SSL-based VPN с телефонов (плюс запрет tethering), хотя я не думаю, что мой оператор делает это специально - они до сих пор сидят на старых SGW/PGW (соответственно весь 5G у них NSA) и не могут перейти на 5G SA.