OpenVPN 2.0: головной офис и два склада в одной сети за один день
Связали головной офис и два склада через OpenVPN поверх ADSL: 1С, база и сканеры штрихкодов работают как в одном здании. Где программный туннель проседает и как это лечим.
выходит OpenVPN 2.0 с поддержкой site-to-site - бюджетная замена аппаратным VPN-концентраторам между филиалами
На прошлой неделе вышел OpenVPN 2.0. Главная новость для нас - нормальный режим site-to-site: не клиент к серверу, а сеть к сети. Это меняет разговор с клиентами, у которых несколько точек. Аппаратный VPN-концентратор между офисами стоит приличных денег и ещё приличных денег в настройке. OpenVPN стоит ноль.
Подвернулся показательный кейс. Компания - торговля, три точки: головной офис и два склада на другом конце города. На каждом складе ADSL-подключение, сканеры штрихкодов, которые работают с базой. До нас схема выглядела так: каждый склад лезет к базе напрямую через интернет по RDP. Настройки безопасности - в лучшем случае сложный пароль. Мы такое не любим.
Что сделали
Подняли OpenVPN-сервер на головном офисе под Linux. Каждый склад - клиент, который при старте поднимает туннель до сервера. Итого: три точки в одной внутренней сети /24, маршрутизация между ними через сервер в центре.
Схема получилась такой:
Склад 1 (ADSL) ---[туннель]---> | |
| OpenVPN- |---> LAN головного офиса
Склад 2 (ADSL) ---[туннель]---> | сервер |
| офис |
Аутентификация - сертификаты, которые мы сгенерировали через easy-rsa, встроенный в дистрибутив OpenVPN. Не самый быстрый процесс в первый раз, но зато без лишних зависимостей и всё под контролем. TLS-ключ дополнительно защищает хендшейк от DoS - параметр tls-auth в конфиге.
На складах поставили маленькие Linux-машины специально под туннель. Могли бы поднять на Windows - OpenVPN там тоже работает через TAP-драйвер, - но с Linux-ом конфиг проще держать и перезапускать при разрыве. Скрипт в /etc/network/if-up.d/ поднимает туннель автоматически при появлении интернета.
Весь процесс - от разворачивания сервера до работающих туннелей на обоих складах - занял один рабочий день. Лицензий ноль, железо не покупали, использовали то что было.
Что получили
Склады теперь видят базу в головном офисе так же, как если бы стояли в соседней комнате. Сканеры штрихкодов работают напрямую с сервером 1С, без RDP-прокладок. Принтеры на складе видны из головного офиса - накладные печатаются туда без лишних движений. Связать такие разрозненные точки в единую инфраструктуру - это ровно то, ради чего всё затевалось.
Сравнивая с тем, что мы делали в прошлом году через IPSec и аппаратные роутеры: OpenVPN проще в отладке. Когда IPSec не поднимается - иди разбирайся в phase1/phase2, несоответствие хэшей или группы DH, и всё это черный ящик. OpenVPN пишет в лог по-человечески: вот сертификат, вот рукопожатие, вот маршруты. Если что-то не так - видно сразу.
Где программный туннель проседает
Честный разговор. Три наблюдения за неделю работы.
Первое - задержки выше, чем на железе. ADSL плюс шифрование в пользовательском пространстве Linux - это не нулевая нагрузка. Пинг между складом и офисом в среднем 15-25 мс, в часы пик ADSL-провайдера уходит к 60-80 мс. Для 1С это пока терпимо, но если бы там была VoIP-телефония - разговор был бы другим.
Второе - ADSL рвётся. Не часто, но рвётся. OpenVPN при обрыве не поднимается сам мгновенно - нужен ping и ping-restart в конфиге, иначе туннель висит в зомби-состоянии и трафик не идёт. Настроили keepalive 10 60 - раз в 10 секунд пинг, при 60 секундах тишины рестарт. Работает, но первые разрывы поймали именно потому что этого не было.
Третье - MTU. Классика жанра для любого туннеля. Пакеты внутри туннеля оборачиваются в дополнительные заголовки и вылезают за стандартный MTU провайдера. Симптом противный: большие файлы не копируются, а мелкие идут нормально, и пользователи уверены что «какая-то мистика». Лечится tun-mtu 1400 и fragment 1300 на сервере и клиентах. После этого мистика прошла.
Что дальше
Пока схема работает на двух складах, смотрим. Если через месяц всё стабильно - предложим клиенту добавить мониторинг туннелей через Nagios: пинг до внутреннего адреса склада раз в минуту, и при обрыве SMS раньше чем позвонит кладовщик. Это уже следующий шаг, не сегодняшний.
OpenVPN 2.0 - вполне рабочий инструмент для связи нескольких офисов малого бизнеса. Не для всех случаев: если нужна гарантированная задержка под голос или видео - это другой разговор. Но для базы, файлов и сканеров - справляется.
- Два офиса на одном ШПД: VPN вместо выделенки и модемов · 22 июня 2004