Зависание терминальных сессий и TCP segment of a reassembled PDU?
Прошу помощи уважаемого сообщества, ибо за две недели сломал себе весь мозг и фантазия кончилась.
Есть удалённый офис, который ходит через OpenVPN (шлюз на линуксе) терминалом на виндовые сервера.
Периодически (иногда каждые 10 минут, а иногда 2 раза в день) у всего офиса зависают RDP-сессии. Без реконнектов — просто «картинка останавливается» (со слов пользователей), а через 20-60 секунд работа возобновляется.
Другие офисы, сидящие терминалом на этом же сервере, работают нормально и проблем не испытывают. Интернет в «проблемном» офисе во время зависаний работает нормально. Пинги ходят стабильно (как в интернет, так и на сервер openvpn, и через туннель на собственно терминальный сервер), В логах OpenVPN всё спокойно. OpenVPN работает, соответственно, по TCP.
Снифф на роутере tcpdump'ом с последующим анализом wireshark выявил, что во время «зависаний» появляется очень много пакетов с пометкой «TCP segment of a reassembled PDU». Сниффил как туннельный интерфейс, так и внешний.
Соответственно, вопрос к сетевым гуру: может быть, кто-нибудь сталкивался с подобным или хотя бы может дать направление, куда копать? Какие признаки проблем можно ещё поискать в wireshark'е?
Подобные симптомы были у моих пользователей, у которых похожий конфиг с вашим.
Дело оказалось с ежечасным реконектом опенвпн.
И добавлю от себя, сравнивал работу openvpn over TCP vs UDP. Отзывчивость терминальной сессии на UDP в разы была лучше.
Ежечасный реконнект видел, пробовал менять время жизни ключей — не помогло.
И «зависания» возникают не раз в час, а произвольно — иногда пару раз за день, а иногда каждые 10 минут.
По описанию очень похоже на т.н. проблему «black screen» в терминальной сессии, которая вызвана наличием на пути пакета канала с меньшим MTU (в вашем случае VPN-соединения). Т.е. не проходят крупные пакеты. Лечится уменьшением MTU на терминальном сервере.
Если проблема возникает только периодически, то причиной может быть конкретное подключение провйдера, например в какой-то момент он его переводит на резервный линк, в котором нестандартное MTU.
Кстати, проблема с MTU может быть в двух местах — может отваливаться сам OpenVPN, тогда MTU надо снижать и на сетевом интерфейсе и, возможно, внутри OpenVPN. А может отваливаться терминальное соединение внутри VPN — тогда MTU надо снижать внутри OpenVPN. Второе вероятно, если сервер OpenVPN находится не на одном хосте с терминальным.
Которые на внешнем интерфейсе — пакетам OpenVPN; которые на туннельном — соответственно, терминальным сессиям RDP.
Размер — разный, преимущественно 145 или 185 байт.
То есть именно RDP пакеты фрагментируются до пары сотен байт? Я думал, там что-то постороннее появляется. Странно это. А можно на дамп взглянуть, хотя бы на закрашенный скриншот? Нет ли каких прилетающих снаружи ICMP пакетов?