1 votes

Mise en place de la bascule OpenVPN - Routage vers les clients avec des adresses IP statiques

Je dispose d'une configuration avec un serveur openvpn et de nombreux clients connectés à celui-ci. Tous ces clients ont des adresses IP fixes, dérivées de leurs noms de certificat.

Dérrière le serveur openvpn, j'ai un serveur de gestion qui doit se connecter aux clients (pour surveiller/ exécuter certaines commandes à distance).

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

Le Serveur A peut se connecter à C1-4 via le VPN, en utilisant les IPs fixes.

Ce que je veux faire, c'est étendre la configuration à plusieurs serveurs VPN (pour gérer les pannes de serveurs et répartir la charge), tout en conservant un moyen simple pour A de trouver n'importe quel client distant spécifique.

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

Je sais comment configurer les clients pour choisir aléatoirement l'un des serveurs openvpn, mais je ne sais pas comment gérer l'allocation des adresses IP.

Dois-je garder un seul sous-réseau pour les serveurs ? Dans ce cas, comment A sait derrière quel serveur se trouve une adresse IP ? Dois-je avoir un sous-réseau par serveur openvpn? Dans ce cas, comment A sait quel adresse IP contacter ?

J'ai un peu étudié les systèmes de routage dynamique, mais je devrais gérer une route par adresse IP client, ce qui semble très incorrect... Une autre option serait de maintenir un service DNS (ou similaire) à jour avec la correspondance {nom-du-client => adresse IP actuelle}, mais cela semble compliqué, et je ne suis pas sûr que notre pile logicielle puisse s'adapter à cela.

Comment sont habituellement gérées ce genre de configurations de basculement?

1voto

jammus Points 1796

un service DNS (ou similaire) mis à jour avec la correspondance {nom-du-client => adresse IP actuelle}

Le transfert sur le(s) serveur(s) OpenVPN est relativement facile avec un script --client-connect sur les serveurs OpenVPN. Le script de connexion client reçoit l'adresse IP de la nouvelle connexion. Vous pouvez alors l'utiliser pour appeler nsupdate et ajuster vos enregistrements DNS.

Voici un ancien script que j'avais qui enregistrait l'adresse externe du client connecté. Ce qui n'est pas ce que vous voulez, mais je suis sûr que vous pouvez trouver les bonnes variables si vous consultez la section Variables d'Environnement de la page de manuel.

#!/bin/sh

# s'attend à des variables provenant de 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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X