Отказоустойчивость или репликация с сервером OpenVPN?

Отказоустойчивость или репликация с сервером OpenVPN?

Возможно ли реализовать два OpenVPN с возможностью отказоустойчивости и репликации? То есть, если один выйдет из строя/откажется, другой будет доступен для аутентификации, настройки сервера/клиента и т. д.?

решение1

Я не понял, зачем стрелять из пушки в лету. ИХМО, есть более простой способ: использовать встроенные функции OpenVPN и linux iproute2 для многопутевого резервирования. Я буду безопаснее, стабильнее и менее ресурсоемким.

Источник:https://openvpn.net/index.php/open-source/documentation/howto.html

Реализация конфигурации балансировки нагрузки/отказа Клиент

Конфигурация клиента OpenVPN может ссылаться на несколько серверов для балансировки нагрузки и отказоустойчивости. Например:

remote server1.mydomain
remote server2.mydomain
remote server3.mydomain

укажет клиенту OpenVPN попытаться подключиться к server1, server2 и server3 в указанном порядке. Если существующее соединение разорвано, клиент OpenVPN повторит попытку последнего подключенного сервера, а если это не удастся, перейдет к следующему серверу в списке. Вы также можете указать клиенту OpenVPN рандомизировать свой список серверов при запуске, чтобы нагрузка клиента была вероятностно распределена по пулу серверов.

remote-random

Если вы также хотите, чтобы сбои разрешения DNS приводили к переходу клиента OpenVPN на следующий сервер в списке, добавьте следующее:

resolv-retry 60

Параметр 60 сообщает клиенту OpenVPN, что необходимо попытаться разрешить каждое удаленное DNS-имя в течение 60 секунд, прежде чем переходить к следующему серверу в списке.

Список серверов также может относиться к нескольким демонам сервера OpenVPN, работающим на одном компьютере, каждый из которых прослушивает соединения на своем порту, например:

remote smp-server1.mydomain 8000
remote smp-server1.mydomain 8001
remote smp-server2.mydomain 8000
remote smp-server2.mydomain 8001

Если ваши серверы представляют собой многопроцессорные машины, запуск нескольких демонов OpenVPN на каждом сервере может быть выгоден с точки зрения производительности.

OpenVPN также поддерживает директиву remote, ссылающуюся на DNS-имя, которое имеет несколько записей A в конфигурации зоны для домена. В этом случае клиент OpenVPN будет случайным образом выбирать одну из записей A каждый раз, когда домен разрешается. Сервер

Самый простой подход к конфигурации балансировки нагрузки/отказа на сервере — использовать эквивалентные файлы конфигурации на каждом сервере в кластере, за исключением использования отдельного виртуального пула IP-адресов для каждого сервера. Например:

сервер1

server 10.8.0.0 255.255.255.0

сервер2

server 10.8.1.0 255.255.255.0

сервер3

server 10.8.2.0 255.255.255.0

решение2

Отказоустойчивость? Да, я делаю это постоянно, используя heartbeat и CRM. Не стоит пытаться реплицировать или сохранять состояние; когда происходит отказоустойчивость, все подключенные клиенты в любом случае повторно аутентифицируются, и это нормально для дорожных воинов. Это не было бы нормально для VPN-сетей типа site-to-site, но (imho) OpenVPN — неподходящий инструмент для них.

Связанный контент