LINUX:DNS-OVH-archive
But
Nous allons utiliser un serveur Web classique distant et personnel hébergé chez nous: archive.laplanchedenvol.be, ayant une adresse IP dynamique. Une tâche de mise à jour régulière de l'adresse IP doit être effectuée.
Trois étapes sont à effectuer:
- Ajouter le nom du sous-domaine et sont adresse IP actuelle
- Ajouter un identifiant d'accès
- Créer une tâche de mise à jour régulière
Zone DynHost (OVH): ajout d'un adressage dynamique
On se connecte dans l'espace de gestion de la zone DNS de notre nom de domaine sous OVH. Mais au lieu de rester sur l'onglet "Zone DNS", on va à l'onglet "DynHost".
On clique sur le bouton de droite "Ajouter un DynHost".
On remplit les deux zones:
- le nom du sous-domaine: archive
- l'adresse IP actuelle du serveur Web distant: 81.246.173.44
Et on valide.
Cette nouvelle entrée est ajoutée.
Et elle apparaît aussi dans l'onglet "Zone DNS".
Zone DynHost (OVH): ajout d'un identifiant
Si on veut pouvoir mettre à jour cette adresse dynamique à distance, par sécurité, on doit pouvoir s'identifier et donc on doit ajouter un identifiant.
On revient à l'onglet "DynHost". Et on clique sur le bouton de droite "Gérer les accès".
Cet écran est vide. On clique sur le bouton de droite "Créer un identifiant".
On remplit les trois zones:
- le suffixe qui fera partie de l'identifiant: archive
- le nom du sous-domaine: archive
- le mot de passe et sa confirmation
La première zone et la troisième seront utilisés dans le script de mise à jour.
On valide.
Si on a plusieurs sous-domaines dont on doit adapter l'adresse IP, on peut mettre une astérisque ("*") à la place d'un sous-domaine nommé comme illustré ci-dessous.
Script
Comme vous avez une adresse IP dynamique, dès qu'elle change, elle doit être adaptée dans le DNS.
Pour cela nous allons utiliser un script BASH que nous nommerons "dynhost.bat":
#!/bin/bash #################################### # # Configuration à adapter selon votre situation # # LISTEHOST : liste des noms de machine # LOGIN : identifiant DynHost # PASSWORD : mot de passe # LISTEHOST=archive.laplanchedenvol.be LOGIN=laplanchedenvol.be-archive PASSWORD=VOTRE_MOT_DE_PASSE ##################################### # Journal PATH_LOG=/var/log/dyndns.log # # Journalisation # echo > $PATH_LOG echo "Run dyndns" >> $PATH_LOG date >> $PATH_LOG # # Passage en revue de tous les domaines # for HOST in ${LISTEHOST} do # # Récupération des IPs # HOST_IP=`dig @ns.ovh.net. +short $HOST` CURRENT_IP=`curl -s ifconfig.co` # # Journalisation # echo "Host" >> $PATH_LOG echo "$HOST" >> $PATH_LOG echo "Current IP" >> $PATH_LOG echo "$CURRENT_IP" >> $PATH_LOG echo "Host IP" >> $PATH_LOG echo "$HOST_IP" >> $PATH_LOG # # Comparaison de l'adresse IP réelle et de celle du serveur DNS # Si elles sont différentes, celle du serveur DNS est adaptée # if [ -z "$CURRENT_IP" ] || [ -z "$HOST_IP" ] then echo "Pas IP récupérée" >> $PATH_LOG else if [ "$HOST_IP" != "$CURRENT_IP" ] then echo "IP changée" >> $PATH_LOG RES=`curl -s --user "$LOGIN:$PASSWORD" "https://www.ovh.com/nic/update?system=dyndns&hostname=$HOST&myip=$CURRENT_IP"` # URL alternative # RES=`curl -s --user "$LOGIN:$PASSWORD" "https://dns.eu.ovhapis.com/nic/update?system=dyndns&hostname=$HOST&myip=$CURRENT_IP"` echo "Résultat de la requête DynHost" >> $PATH_LOG echo "$RES" >> $PATH_LOG else echo "IP n'a pas changé" >> $PATH_LOG fi fi done
Nous le placerons dans le répertoire "/manager/ovh". Ce script doit avoir les droits d'exécution.
En début, nous avons trois paramètres à adapter selon votre situation:
- LISTEHOST : liste des noms de machine
- LOGIN : identifiant DynHost défini ci-dessus chez OVH
- PASSWORD : mot de passe de l'identifiant défini ci-dessus chez OVH
Le script récupère l'adresse IP du modem puis celui repris dans le DNS. Il les comparent et s'ils sont différents, il effectue la mise-à-jour.
Note: En commentaire, vers la fin du script, une seconde URL de mise à jour est reprise; on trouve les deux sur Internet.
Pour que ce script s'exécute automatiquement à intervalle régulier, il faut ajouter cet appel dans le CRON.
Ajoutez cette entrée dans le fichier "/etc/crontab":
# dyndns OVH 5,20,35,50 * * * * root /manager/ovh/dynhost.bat > /manager/ovh/dynhost.log