Некоторые серверы не отвечают на SYN, если клиент находится в VPN

У нас есть несколько серверов Ubuntu 18.04 (как физических, так и виртуальных), которые будут игнорировать пинг и TCP-соединения, поступающие от клиентов, подключенных к нашей интрасети через VPN.

Это только новые установки 18.04, которые показывают эту проблему (16.04, обновленная до 18.04, в порядке).

Я разработчик программного обеспечения, а не администратор сети / sys. Это тестовые серверы - наш ИТ-отдел не склонен смотреть на проблему (и ему неудобно за окном). У меня нет доступа к сетевой инфраструктуре или настройкам компании.

У меня есть два физических сервера:

  • сервер A: 172.24.8.114 Ubuntu 18.04 (обновлен с 16.04). Это работает.
  • serverB: 172.24.8.96 Ubuntu 18.04 (новая установка). Это терпит неудачу для клиентов VPN.

Если я нахожусь в подсети 172.24.8.X (то есть в офисе), я могу пинговать и завивать /ssh как на serverA, так и на serverB. Если я работаю из дома (ноутбук с Windows, с виртуальными машинами WSL и linux), я Я нахожусь в подсети 10.50.50.X, и я могу пинговать и завивать /ssh только к серверу A. VPN - это Sonicwall NetExtender (обязательный по работе).

При попытке TCP-соединения с сервером B, serverB получает SYN, но никогда не отвечает SYN-ACK. Повторная передача TCP происходит через 3 секунды. Аналогично, запросы ping ICMP принимаются, но никогда не отвечают. (подтверждено с помощью tshark/wireshark)

Но я не вижу никакой разницы между сервером A и сервером B, которая могла бы вызвать это. Это не аппаратная проблема - есть другие серверные виртуальные машины, демонстрирующие ту же проблему.

Ни одно из предложений в Сервер не отправлять пакет SYN/ACK в ответ на пакет SYN не сработало.

  • sysctl настройки по сути одинаковы.
  • ufw неактивен
  • iptables -L по сути то же самое.

Что еще я должен посмотреть, чтобы определить, почему сервер A может пинговать и устанавливать TCP-соединения из любого места, но serverB будет только отвечать на эхо-запросы и устанавливать TCP-соединения из своей локальной подсети?

Редактировать: ss -tan не показывает сокетов в состоянии SYN_RECV на сервере B. Сервер A и сервер B могут пропинговать и устанавливать TCP-соединения с моим ноутбуком. tshark использовался для сбора пакетов на сервере A и сервере B, затем копировался и анализировался с помощью wireshark.

2 ответа

Я вижу точно такую ​​же проблему. В нашем случае это, кажется, вина "докер" интерфейсов. Если эти интерфейсы не работают, мы можем подключиться к сервисам.

На машине с несколькими сетевыми картами в некоторых случаях SYN/ACK отправляется в другую сеть, а не в сеть, откуда поступил SYN.

Явный маршрут должен быть в файле netplan. См. https://askubuntu.com/questions/1030527/multiple-nics-under-ubuntu-18-04

Другие вопросы по тегам