« LINUX:DNS-OVH-archive » : différence entre les versions

Aucun résumé des modifications
Aucun résumé des modifications
 
(8 versions intermédiaires par le même utilisateur non affichées)
Ligne 70 : Ligne 70 :




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.
[[FILE:LINUX:Ovh.dns.dynhost.acces.3.png|800px|center]]
=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" "<nowiki>https://www.ovh.com/nic/update?system=dyndns&hostname=$HOST&myip=$CURRENT_IP</nowiki>"`
    # URL alternative
    # RES=`curl -s --user "$LOGIN:$PASSWORD" "<nowiki>https://dns.eu.ovhapis.com/nic/update?system=dyndns&hostname=$HOST&myip=$CURRENT_IP</nowiki>"`
    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
----