Можно ли реализовать два OpenVPN с возможностью аварийного переключения и репликации? Например, если один из них не работает / выходит из строя, другой доступен для аутентификации, настройки сервера / клиента и т. Д.?
Я не понимал, зачем стрелять из пушки в лету. У IHMO есть более простой способ: использовать встроенные функции 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 также поддерживает удаленную директиву, относящуюся к DNS-имени, которое имеет несколько записей A в конфигурации зоны для домена. В этом случае клиент OpenVPN будет случайным образом выбирать одну из записей A при каждом разрешении домена. Сервер
Самый простой подход к конфигурации балансировки нагрузки / переключения при отказе на сервере - использовать эквивалентные файлы конфигурации на каждом сервере в кластере, за исключением использования другого пула виртуальных IP-адресов для каждого сервера. Например:
server1
server 10.8.0.0 255.255.255.0
server2
server 10.8.1.0 255.255.255.0
server3
server 10.8.2.0 255.255.255.0
Восстановление после отказа? Да, я делаю это постоянно, используя Heartbeat и CRM. Не стоит пытаться воспроизвести или сохранить состояние; когда произойдет аварийное переключение, все подключенные клиенты все равно будут повторно аутентифицироваться, и это нормально для тех, кто любит путешествовать. Это было бы плохо для VPN типа "сеть-сеть", но (imho) OpenVPN в любом случае не подходит для них.