16. Construire un VPN ouvert au DHCP

Rappellez-vous, dans notre exemple de configuration réseau, Maison avait une adresse dynamique qui pouvait changer sans avertissement. Si vous utilisez dhcpcd comme daemon client, il est facile de construire un script qui effectuera à chaque fois le changement d'adresse IP du client. Ce script se nommera quelque chose comme /etc/dhcpc/dhcpcd-eth0.exe.

Basiquement, vous devrez ajouter la ligne suivante à ce script, qui enverra un signal SIGUSR1 ou SIGHUP au daemon OpenVPN :

killall -HUP openvpn

Lorsque OpenVPN recevra ce signal, il fermera et réouvrira la connexion réseau avec ses pairs. La réouverture de la connexion réseau utilisera la nouvelle adresse IP fournie par DHCP.

Vous devrez aussi utiliser l'option --float si vous vous connectez à un pair qui, à cause d'un reset du dHCP, change son adresse IP.

Il est aussi possible de manipuler le reset du DHCP avec un signal SIGUSR1, signal qui est comme SIGHUP à l'exception qu'il offre un contrôle plus fin sur la façon dont le sous-système OpenVPN est remis à zéro. Un signal SIGUSR1 peut aussi être généré en interne en se basant sur --ping et --ping-restart. L'option --persist-tun permet un reset sans fermeture et réouverture de l'interface TUN (ce qui autorise une connectivité à travers le tunnel sans coupures, et malgré des resets du DHCP). L'option --persist-remote-ip permet de préserver l'adresse IP distante malgré les resets du DHCP. Cela autorise les deux extrémités du tunnel OpenVPN d'être des clients DHCP. L'option --persist-key ne relit pas au redémarrage les fichiers contenant les clef (qui permet à un daemon OpenVPN d'être redémarré même si ses privilèges ont été abaissés avec les options --user ou --group).

Pour plus d'informations sur l'utilisation de OpenVPN dans un environnement d'adresses IP dynamiques, reportez-vous à la FAQ.

OpenVPN peut aussi être utilisé lorsque les deux extrémités de la connexion utilisent des adresses IP dynamiques.