MikroTik и OpenVPN

11 декабря 2012, 22:14

Есть у нас в офесе VPN. Точнее, между 40 офесами. По мере роста сети всплыла грабля — некоторые удалённые (и отсталые) провайдеры грешат packet reordering. Что напрочь сносит крышу модулю, ответственному за реализацию MPPC/MPPE в mpd5. Симптомы при этом такие — туннель визуально жив, и по нему спокойно ходят LCP-пакеты, но вот трафик уже не ходит. В логах mpd при этом наличествуют сообщения:

ng_mppc_decompress: too many (4094) packets dropped, disabling node

Если вы такие обнаружили — знайте, это вилы. Надо валить. Потому что не лечится никак. Хотя вот эксперимент показал, что с микротика на микротик такой же канал, с MPPC/MPPE держится нормально. Т. е. микротиковцы в RouterOS этот вопрос решили. Но ни фря, ни линукс в качестве VPN-сервера с packet reordering бороться не умеют. В связи с чем было принято волевое решение проблемных клиентов перевести на OpenVPN. По той же схеме — сервер на FreeBSD, клиенты — микротики RB750.

Спустя некоторое время вдумчивого курения манов и некоторого количества глупых вопросов в ru_root наступило просветление и я принялся ваять конфиги сервера и создавать сертификаты. Создав всё, начал терзать первого проблемного клиента, отключив L2TP-линк на нём и создав клиентский интерфейс OpenVPN. Ну, момент истины, нажимаю «Apply» в настройках openvpn-интерфейса на микротике, и... теряю связь с объектом вообще. А он километров за 600 от меня.

Сначала грешил на то, что забыл убрать галку Add default route у openvpn-интерфейса. Проверил на тестовом роутере — ни фига, по умолчанию эта галка отсутствует. А шо же за ботва? Повторяю процедуру на тестовом роутере, подключившись к нему по локалке, и... теряю связь уже с тестовым роутером. Правда, как-то странно — winbox не отвалился, но списка интерфейсов получить не удаётся, выдаётся ошибка «out of index». Странно. Однако роутер частично подконтролен — его удаётся перезагружать. И если всё сделать очень быстро, то openvpn-интерфейс подняться ещё не успевает, и его можно отключить. Тогда роутер остаётся на связи и можно им рулить.

В общем, практика показала, что в RouterOS, зашитых в наших микротиках (v4.11) есть суровый баг. Который приводит к тому, что при поднятии openvpn-интерфейса у роутера сваливается WAN-интерфейс в несознанку, и тянет за собой что-то ещё. Только проапгрейдившись до версии 5.21 удалось нормально создать связь по OpenVPN с микротиком. И ещё одно западло в микротиках — они не умеют openvpn по UDP, только TCP. Что заметно снижает скорость, по сравнению с L2TP — так раза в полтора.

3 комментария
Aleksandr K.

Привет!

А случаем не покажешь конфиг OpenVPN на Фре?
У меня чето не получилось связать микротик и фрю по openvpn, и столкнулся с такой же бедой что и у вас с packet reordering

Автор блога

А в чём конкретно затруднения? Конфиг там типовой, их до фига в интернета понаписано. Есть даже видео на youtube, где человек настраивает OpenVPN с нуля. Напиши, что там в логах у тебя возникает, может, помогу, чем смогу.

Sasha

У меня проблема в том что я создал сертификаты, питаюсь подключиться, но не проходит проверку tls, а без опций tls демон не стартует.

Автор блога

Так а в логах что?

Артем

Когда работаешь с точкой за 600км. нужно нажимать Safe Mode в WinBoxе... При дисконнекте с включенным SafeMode микротик вернется в состояние до включения SafeMode. Если настройки сделаны и все работает, необходимо отжать SafeMode и все настройки сохраняться...

Автор блога

Да, спасибо, я теперь знаю про эту штуку :-) Но в том случае она вряд ли помогла — конфигурация была выполнена правильноНо при подъёме OpenVPN-соединения частично отваливался TCP-стек. И это лечилось только ребутом роутера и быстрым-быстрым отключением OpenVPN-интерфейса.

Ваш комментарий
адрес не будет опубликован

ХТМЛ не работает

Ctrl + Enter
Популярное