Назад | Перейти на главную страницу

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

Можно ли реализовать два 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 в любом случае не подходит для них.