LINUX.ORG.RU
решено ФорумAdmin

OpenVPN «зависает» через какое то время

 ,


0

1

P.S: Скажу сразу, раньше такой фигни не наблюдалось, только после перехода на новый хост.

На днях приобрёл VPS и поднял на нём OpenVPN сервер что бы сидеть через него в интернете. Проблема в том, что через какое то время подключения соединение «зависает» секунд может на 30-40, а потом восстанавливается, при этом я спокойно пингую сам хост по его прямому IP (но через туннель он не пингуется). Запустил на хосте два tcpdump’а на eth и tun0, на клиенте (Windows) сделал то же самое через Wireshark (запустил их все в +- одну и ту же секунду) и запустил с клиента бесконечный пинг на 1.1.1.1. После очередного зависания, выключил снифферы и пошёл смотреть трафик. Картина следующая: Через клиентский tun0 пакеты отправляются, но ответа не приходит, на серверном tun0 никаких пакетов не приходит. На клиентском eth пакеты OpenVPN отправляются, но ответа нет, и самое интересное, на серверном eth приходят OpenVPN пакеты, но ответов он не посылает. Т.е пакеты сервер принимает, но на интерфейсе tun0 ни чего нет. После зависания через секунд 10, секунд на 15 tcpdump (который на eth0) перестаёт регистрировать вообще какие либо пакеты, но в это время я пинговал хост, и он мне отвечал. Какая то мистика творится, если честно. Пробовал переустанавливать openvpn, менять порт, менять протокол (с tcp зависания происходят гораздо реже, но скорость очень сильно падает), не помогло. Логи смотрел (/var/log/openvpn), но там ни чего толкового нет. Буду очень сильно благодарен за любую помощь.

Скриншот дампов: https://i.imgur.com/6SpqYjR.png 1 eth0 клиента, 2 eth0 сервера, 3 tun0 клиента, 4 tun0 сервера Зеленым замазан мой IP, красным IP сервера, серым остальные IP Как видно, на 27 секунде произошло зависание, на 55 всё возобновилось. Конфиги: https://pastebin.com/vSvVWkXD

В небо или в каждой глупости есть доля глупости.
1. mssfix, tun-mtu - занизить.
2. keepalive - тоже значения поменьше поставить.

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

У меня мыслей кроме как подкрутить параметр verb в сторону увеличения и курить логи больше не появляется.
ЗЫ И посмотрите netstat -i на предмет ошибок. Ну не должно быть сильно заметной разницы между udp и tcp.

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

Спасибо за подсказку! Выяснилось вот что: во время «зависания» логи от ВПНа (Поставил verb 11) полностью прекращаются, и возобновляются когда всё отвиснет, т.е я так понял процесс вообще останавливается. Поискал в интернете подобные проблемы, нашёл на форуме уже похожую проблему, чел это исправил добавлением резервирований на виртуалке. Я попробовал запустить openvpn через ionice и nice, поставив макс. приоритет, но хоть это и сделало зависания реже, но они не прекратились. При этом ssh во время зависаний работает идеально, можно ли как то заставить openvpn работать так же как ssh, без перебоев?

CBaseClient ()

В общем, проблема решена, оказалось проблема в I/O, каждые 10 минут невозможно обратиться к диску, буду спрашивать у тех. поддержки что за дела такие. Проблему с OpenVPN решил просто удалив запись логов из конфига. Такие дела.

CBaseClient ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.