Две конечные точки на бумаге выглядят как резервирование. На практике второй адрес помогает только тогда, когда клиенты могут до него добраться и когда он избегает отказа, к которому вы готовитесь. Два сервера за одним подключением доступа, одним аккаунтом или одной целевой сетью падают вместе. Полезный вопрос — какой единственный отказ устраняет вторая конечная точка.

Сравните, что обе конечные точки разделяют

Перечислите, что общего у двух конечных точек, прежде чем считать, что они дублируют. Место хостинга, аккаунт провайдера, вышестоящий транзит, DNS-хостинг, источник идентичности и частный ресурс за туннелем — каждый из них представляет собой общую или независимую зависимость. Две виртуальные машины в одном регионе разделяют сбой провайдера. Два региона под одним аккаунтом по-прежнему разделяют расчётные отношения и плоскость управления, которая их создаёт.

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

Идентичность — та зависимость, о которой забывают. Клонирование сертификата и конфигурации на второй хост создаёт два места, где одни и те же учётные данные можно скопировать, и ничего не говорит о том, как отзывы доходят до обоих.

Решите, как клиент переключается

Вторая конечная точка полезна только тогда, когда клиент знает о ней и может выбрать её без звонка в поддержку. Профили подключения OpenVPN могут содержать несколько строк remote с политикой выбора, и большинство клиентов предлагает альтернативный профиль в меню. Каким бы ни был механизм, запишите, какой есть у ваших пользователей, потому что профиль, который они не находят, — не переключение.

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

Изменённый адрес выхода также ломает состояние приложения. Переключение — это восстановление, и описание его как непрерывной работы создаёт ожидание, которое транспорт не может выполнить.

Проверьте один реальный отказ

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

dig +short vpn2.example.net
ip route get 10.20.30.41
journalctl -u openvpn@backup --since '-10 min'

Первая команда подтверждает, что резервное имя разрешается во что-то маршрутизируемое до того, как оно понадобится, и это самый дешёвый тест здесь. Вторая показывает, какой интерфейс ядро использовало бы для частного назначения, когда альтернатива поднята. Третья даёт журнал клиента с именем партнёра, к которому он действительно подключился, и это единственное доказательство того, что переключение произошло. Следите также за поведением блокировки во время разрыва, потому что политика, которая при переключении пропускает трафик, хуже короткого перерыва.

Затем верните исходную точку и убедитесь, возвращается ли клиент. Возврат, который происходит случайно, — поведение, которого никто не планировал.

Запишите, что даёт второй адрес

Суммируйте покрытие в одном абзаце: какой отказ устраняет вторая конечная точка, какие отказы она разделяет с первой и на каких допущениях держится переключение. Назовите механизм на стороне клиента, а также частные маршруты и поведение DNS, которые должны существовать в обоих местах. Публичный выход в интернет не заменяет частный шлюз, и документу, который считает их взаимозаменяемыми, поверят. Добавьте проведённый тест восстановления с датой и результатом.

Независимость от одного сервера — не независимость от общего аккаунта или целевой сети. Именно абзац, который говорит это вслух, мешает продавать второй адрес внутри как высокую доступность. Он также говорит следующему оператору, что проверить первым, когда пара отказывает вместе.

Похожие статьи