Category:

Мозговой штурм

У моего товарища little_gutgin на работе случилась какая-то НЁХ.

Есть OpenVPN сервер на Ubuntu в Нерезиновске. Есть энное количество OpenVPN-клиентов в разных регионах России, в том числе во Владивостоке и в Иркутске. Интернет-провайдеры везде разные, операционные системы везде тоже разные. С некоторым количестом клиентов, которые работают из-под Windows 7 где-то в середине рабочего дня (по МСК) с завидной регулярностью случаются проблемы. А именно, OpenVPN-клиент отваливается и через некоторое время сам подключается обратно. Причём, хозяин инфраструктуры утверждает, что такое происходит сразу с несколькими клиентами одновременно.

С его слов, косяк проявляется только на клиентах с Windows 7 и только с определенным типом виртуального TUN-адаптера и только с UDP. То есть, когда он меняет TAP32 на Wintun или UDP на TCP, то вроде как проблема исчезает. Но его такой способ решения по каким-то причинам не устраивает.

Сам little_gutgin катит баллон на провайдеров и их ТСПУ. Тогда я попросил его прислать мне дампы трафика "с двух концов" в момент обрыва. Поглядел.

На дампах отчетливо видны пресловутые разрывы, когда клиент ни с того ни с сего берёт и перескакивает на другой номер Source Port. Но при этом предшествующие разрыву UDP-пакеты не теряются и не искажаются. Они все совпадают с точностью до payload, специально отследил где-то 20 штук. Что ушло с одного конца, ровно то и пришло на другой. Единственное, что в этих дампах не было ICMP (его отфильтровали), это упущение. По-хорошему бы надо ещё разок сделать дампы, на этот раз включить туда ICMP. Но всё равно это как-то очень-очень странно.

На провайдеров не похоже, потому что перед разрывом сессии пакеты не теряются и не искажаются. На косяки сервера не похоже, потому что отваливаются всегда одни и те же клиенты. На косяки клиентов не похоже, поскольку отваливаются они по нескольку штук одновременно. Но что это тогда, чЬорт побЬери? Отдельный хаос вносит инфа про TUN-адаптер и про версию операционной системы. Непонятно каким вообще боком эти обстоятельства могут на что-то влиять. Мне чё-то уже и самому стало интересно где собака порылась.

Можете выдвигать свои версии в комментариях. Есличо, владелец мопеда (я только разместил объяву) тоже читает этот ЖЖ. Думаю, на вопросы ответит.