DNS dynamique avec un nom de domaine chez Gandi

Au radio club, nous disposons d’une connexion Internet dont l’IP publique est dynamique. Ce qui n’est pas idéal pour héberger quelques services.

Heureusement, nous avons un nom de domaine auprès du bureau d’enregistrement Gandi, nous allons pouvoir utiliser un script python pour mettre à jour l’enregistrement DNS correspondant à notre IP publique en créant un enregistrement de type A.

Pour cela, nous allons utiliser un script disponible sur Github : https://github.com/cavebeat/gandi-live-dns et l’API « Live DNS » de Gandi.

Il faut tout d’abord se rendre sur votre compte Gandi afin de récupérer votre clé pour l’API, à l’adresse suivante : https://account.gandi.net/fr puis cliquer sur « Sécurité » et enfin « générer la clef d’API ».

Vous devez ensuite créer l’entrée DNS que vous souhaitez modifier.

Cette procédure a été testée avec une Debian sur pc et Raspberry-pi (raspbian) :

Mettre à jour notre distribution :

apt-get update && apt-get upgrade

Puis installons les paquets nécessaires :

apt-get install unzip python-requests python-args python-simplejson git

Récupérez le script python :

git clone https://github.com/cavebeat/gandi-live-dns.git

Puis, il faut se rendre dans répertoire du script et créer le fichier de config :

cd gandi-live-dns/src/
cp example.config.py config.py

Nous allons éditer le fichier config afin de modifier plusieurs paramètres :

api_secret = 'renseigner_ici_la_clé_API_que_vous_avez_généré'

domain = 'votrenomdedomaine.fr'

subdomains = ["votre_sous-domaine_à mettre_à_jour"]

ifconfig = 'la_page_web_permettant_de_connaitre_votre_ip' (il y a une liste d’exemple de site que vous pouvez renseigner).

Vous pouvez tester le bon fonctionnement du script en l’exécutant :

./gandi-live-dns.py

Si vous n’avez pas d’erreur et que votre enregistrement dns a été mis à jour, vous pouvez ajouter une tâche CRON  en l’éditant avec la commande :

$ crontab -e

Puis ajouter la ligne suivante :

*/5 * * * * /chemin_vers_le_dossier/gandi-live-dns/src/gandi-live-dns.py >/dev/null 2>&1 

Vous pouvez enregistrer et quitter crontab.

Ce contenu a été publié dans Trucs et Astuces. Vous pouvez le mettre en favoris avec ce permalien.