
Si vous possédez un raspberry pi chez vous ou même une machine qui tourne sous Linux alors il se peut que vous souhaitiez pouvoir y accéder depuis internet plutôt que par le réseau local. Malheureusement vous n’avez peut-être pas une IP fixe fournie par votre FAI et pour cela il y a une solution : les DNS dynamiques. Bien qu’il existe de nombreuses plateformes proposant cela gratuitement, vous pouvez également utiliser un nom de domaine chez OVH puisque l’option « DynHost » est comprise dans leur offre.
1. Configuration OVH
La configuration de DynHost chez OVH est simple et se compose de plusieurs étapes :
- Se connecter à l’espace client
- Sélectionner son domaine (dans le menu de gauche)
- Cliquer sur l’onglet « DynHost »
- Cliquer sur « Gérer les accès » (bouton à droite)
- Créer un identifiant (bouton à droite)
- Créer un DynHost (bouton « Ajouter un DynHost » à droite)
- Saisir le nom de sous-domaine et y insérer une adresse IP (une adresse IP bidon suffit pour le moment)
Ces étapes sont documentées sur le site de OVH ici donc je ne vais pas les détailler plus que cela, mais je les ai répertorié ici pour que vous puissiez repérer les seules étapes nécessaires pour nous dans cette documentation.
2. Comment ça marche
Le script qui permettra de mettre à jour automatiquement votre adresse IP sur votre DynHost sera composé de X parties :
- on récupère l’adresse IP configurée sur le DynHost
- on récupère l’adresse IP courante
- on les compare
- on met à jour le DynHost s’il y a besoin
Pour récupérer l’adresse IP configurée actuellement sur le DynHost nous utiliserons la commande dig, si vous ne la possédez pas vous pouvez l’installer par exemple sur debian comme ceci :
sudo apt-get update
sudo apt-get install dnsutils
Une fois installé vous pouvez tester de récupérer cette adresse IP comme ceci :
dig +short votre.url.dynhost
Pour obtenir l’adresse IP courante nous utiliserons tout simplement la commande curl sur le site ifconfig.co, bien pratique pour notre cas :
curl ifconfig.co
Il suffira alors de comparer les valeurs de ces deux commandes et si l’adresse IP enregistrée dans le DynHost est différente de l’adresse IP courante alors on mettra à jour le DynHost.
Il existe différentes méthodes pour mettre à jour le DynHost OVH : des packages debian, des scripts python, etc. Personnellement j’ai trouvé plus simple d’utiliser une bonne vieille commande curl sur le script OVH disponible avec les paramètres nécessaires :
curl --user "user:password" "https://www.ovh.com/nic/update?system=dyndns&hostname=votre.url.dynhost&myip=127.0.0.1"
3. Script complet et CRON
Maintenant que vous avez compris comment cela fonctionnait, voici le script complet que j’ai réalisé :
#/bin/sh
#
# CONFIG
#
HOST=votre.url.dynhost
LOGIN=votre-login-dynhost
PASSWORD=votre-mot-de-passe
PATH_LOG=/var/log/dyndns
#
# GET IPs
#
HOST_IP=`dig +short $HOST`
CURRENT_IP=`curl ifconfig.co`
#
# LOG
#
echo > $PATH_LOG
echo "Run dyndns" >> $PATH_LOG
date >> $PATH_LOG
echo "Current IP" >> $PATH_LOG
echo "$CURRENT_IP" >> $PATH_LOG
echo "Host IP" >> $PATH_LOG
echo "$HOST_IP" >> $PATH_LOG
#
# DO THE WORK
#
if [ -z $CURRENT_IP ] || [ -z $HOST_IP ]
then
echo "No IP retrieved" >> $PATH_LOG
else
if [ "$HOST_IP" != "$CURRENT_IP" ]
then
echo "IP has changed" >> $PATH_LOG
RES=`curl --user "$LOGIN:$PASSWORD" "https://www.ovh.com/nic/update?system=dyndns&hostname=$HOST&myip=$CURRENT_IP"`
echo "Result request dynHost" >> $PATH_LOG
echo "$RES" >> $PATH_LOG
else
echo "IP has not changed" >> $PATH_LOG
fi
fi
Il vous suffit de modifier les lignes 7, 8 et 9 pour y mettre les paramètres qui correspondent à votre cas.
La ligne 11 peut également être modifiée pour définir le chemin d’accès aux logs de ce script.
Pour que ce script soit exécuté régulièrement, placez le dans le fichier /etc/cron.hourly/dyndns par exemple et exécutez ensuite la commande suivante :
sudo chmod +x /etc/cron.hourly/dyndns
Et voilà toutes les heures ce script s’exécutera et votre nom de domaine DynHost sera mis à jour s’il y a besoin.
Ce script est également disponible et maintenu sur mon GitHub.
Une réflexion sur « DynHost OVH pour raspberry pi ou une machine linux »
Les commentaires sont fermés.