Pourquoi cette allocation d'IP statique client dans OpenVPN échoue-t-elle?

8

J'utilise un serveur OpenVPN et je veux attribuer à un client spécifique une adresse IP statique.

Ceci est mon server.conf. Je pense que cela configure le pool d'adresses IP virtuelles pour s'étendre du 10.5.24.209 au 10.5.24.223.

port 443
proto tcp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.5.24.208 255.255.255.240
#This netmask should span IPs .208-.223.
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 168.xx.xx.xx"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
client-to-client
client-config-dir ccd

C'est le contenu de /etc/openvpn/ccd/W7LocalVM, où W7LocalVM est le nom commun de mon client. Je ne comprends pas très bien ce que fait cette directive, mais je pense que la première IP devrait être l'IP statique souhaitée de mon client, et la deuxième IP devrait être l'IP de mon serveur.

ifconfig-push 10.5.24.210 10.5.24.209

Cependant, lorsque j'essaie de connecter mon client avec cette configuration de serveur, j'obtiens l'erreur suivante:

Mon Aug 07 14:07:34 2017 Set TAP-Windows TUN subnet mode network/local/netmask = 10.5.24.208/10.5.24.210/10.5.24.209 [SUCCEEDED]
Mon Aug 07 14:07:34 2017 MANAGEMENT: Client disconnected
Mon Aug 07 14:07:34 2017 ERROR: --ip-win32 dynamic [offset] : offset is outside of --ifconfig subnet
Mon Aug 07 14:07:34 2017 Exiting due to fatal error

Je pensais que l'IP 10.5.24.210 serait dans le sous-réseau défini côté serveur, et je ne comprends pas pourquoi j'obtiens cette erreur. Quelqu'un pourrait-il m'aider à ce sujet?

Magnus
la source
1
Je suggère que de poser cette question sur Server Fault à la place, pourrait obtenir des commentaires plus utiles car ce site est dédié aux problèmes d'administration du serveur.
EJoshuaS
D'accord. Je vous remercie. Je ne connaissais pas cette communauté. Dois-je republier ou existe-t-il une fonctionnalité qui me permet de migrer le message?
Magnus
1
Vous pouvez signaler l'intervention du modérateur et leur demander de migrer. (Pour quelques sites, comme Super User, la communauté peut voter pour migrer, mais la migration vers ce site doit être effectuée par des modérateurs).
EJoshuaS

Réponses:

4

Ce problème est créé car openvpn essaie d'analyser vos options ifconfig en tant qu'ip suivi d'un masque de sous-réseau.

Selon la page de manuel:

- mode topologie

...

sous-réseau - Utilisez un sous-réseau plutôt qu'une topologie point à point en configurant l'interface tun avec une adresse IP locale et un masque de sous-réseau, similaire à la topologie utilisée en --dev tap et en mode de pontage Ethernet. Ce mode alloue une seule adresse IP par client se connectant et fonctionne également sur Windows. Disponible uniquement lorsque le serveur et les clients sont OpenVPN 2.1 ou supérieur, ou OpenVPN 2.0.x qui a été corrigé manuellement avec le code de directive --topology. Lorsqu'il est utilisé sous Windows, nécessite la version 8.2 ou supérieure du pilote TAP-Win32. Lorsqu'il est utilisé sur * nix, nécessite que le pilote tun prend en charge une commande ifconfig (8) qui définit un sous-réseau au lieu d'une adresse IP de point de terminaison distant.

Cette option existe dans OpenVPN 2.1 ou supérieur.

Remarque: L'utilisation du sous-réseau --topology modifie l'interprétation des arguments de --ifconfig pour signifier «masque de réseau d'adresse», et non plus «distant local».

--ifconfig l rn

Définissez les paramètres de l'adaptateur TUN / TAP. l est l'adresse IP du point de terminaison VPN local. Pour les périphériques TUN en mode point à point, rn est l'adresse IP du point de terminaison VPN distant. Pour les périphériques TAP ou TUN utilisés avec le sous - réseau --topology , rn est le masque de sous-réseau du segment de réseau virtuel en cours de création ou de connexion . Pour les périphériques TUN, qui facilitent les connexions IP virtuelles point à point (lorsqu'il est utilisé en mode --topology net30 ou p2p), l'utilisation appropriée de --ifconfig consiste à utiliser deux adresses IP privées qui ne sont membres d'aucun sous-réseau existant qui est en cours d'utilisation. Les adresses IP peuvent être consécutives et leur ordre doit être inversé sur l'homologue distant. Une fois le VPN établi, en exécutant une commande ping sur rn, vous exécuterez une commande ping sur le VPN.

Pour les appareils TAP, qui fournissent le ....

Dans votre code serveur, vous définissez votre topologie sur subnet, puis la transmettez au client à l'aide de l' serverinstruction.

Selon la documentation ci-dessus, au lieu de pousser votre ifconfig en utilisant une adresse "locale", "distante", vous devez ajouter ce qui suit à "/ etc / openvpn / ccd / W7LocalVM":

ifconfig-push 10.5.24.210 255.255.255.252
push route 10.5.24.210 255.255.255.252
# ifconfig 10.5.24.209 255.255.255.252

La dernière ligne n'est probablement pas nécessaire, mais reste à titre d'exemple ce que ifconfig-push "devrait" faire du côté serveur pour que la connexion fonctionne.

Ferrybig
la source
J'ai écrit un commentaire ici demandant pourquoi vous avez suggéré d'allouer quatre adresses IP par client, mais j'ai été assez travailleur pour trouver la réponse à cela dans la FAQ. Merci d'avoir résolu l'énigme!
Magnus