Установка обработки отказа Openvpn - Направляющий клиентам со статическим дюйм/с

У меня есть установка с openvpn сервером и многими клиентами, подключенными к нему. Все те клиенты зафиксировали IP-адреса, полученные из их названия сертификата.

Позади openvpn сервера у меня есть сервер управления, который должен соединиться с клиентами (для контролирования/выполнения некоторых удаленных команд).

                 |-C1
                 |-C2
A -- VPN server -|
                 |-C3
                 |-C4

Сервер A может соединиться с C1-4 через VPN, с помощью зафиксированного дюйм/с.

То, что я хочу сделать, разворачивают установку до нескольких серверов VPN (чтобы обработать отключения сервера и распределить нагрузку), все еще имея простой путь к для нахождения любого определенного удаленного клиента.

                  |-C1
                  |-C2
--- VPN server 1 -|
|
A
|
--- VPN server 2 -|
                  |-C3
                  |-C4

Я знаю, как настроить клиенты для выбора одного из openvpn серверов наугад, что я не знаю, то, как справиться с IP выделением.

Я должен сохранить единственную подсеть для серверов? В этом случае, как A знает, позади которого сервера IP? У меня должна быть одна подсеть на openvpn сервер? В этом случае, как A знает который IP-адрес связаться?

Я немного изучил системы динамической маршрутизации, но я должен был бы управлять одним маршрутом на клиентский IP, который кажется очень неправильным... Другая опция состояла бы в том, чтобы сохранить DNS (или подобный DNS) сервисом обновленный с отображением {имя клиента => текущий IP-адрес}, но это кажется сложным, и я не уверен, что весь наш программный стек может адаптироваться к нему.

Как это - вид установок обработки отказа, обычно обрабатываемых?

1
задан 18 December 2014 в 20:04
1 ответ

DNS (или похожий на DNS) сервис, обновленный с помощью сопоставление {client-name => текущий IP-адрес}

Передать это на сервере (ах) OpenVPN относительно просто с помощью сценария - client-connect на серверах OpenVPN. Сценарию подключения клиента передается IP-адрес нового подключения. Затем вы можете использовать это, чтобы вызвать nsupdate для настройки записей DNS.

Вот старый сценарий, который у меня есть, который регистрирует внешний адрес подключающегося клиента. Это не то, что вам нужно, но я уверен, что вы сможете найти нужные переменные, если просмотрите раздел Environment Variables на странице руководства.

#!/bin/sh

# expects variables like from openvpn
#common_name=server1.example.org
#trusted_ip=192.168.47.1

dnssrv="192.168.0.1"
zone="vpn.example.org"
ttl="7200"

record=`echo ${common_name} | sed -e 's/example.org/vpn.example.org/'`

echo "client-connect.sh ${common_name} ${trusted_ip} ${record}" | logger

(
 echo "server ${dnssrv}"
 echo "zone ${zone}"

 echo "update delete ${record} A"
 echo "update add ${record} ${ttl} A ${trusted_ip}"
 echo "send"
) | /usr/bin/nsupdate
1
ответ дан 4 December 2019 в 00:14

Теги

Похожие вопросы