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

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(2 versions intermédiaires par le même utilisateur non affichées)
Ligne 68 : Ligne 68 :


[[FILE:LINUX:Ovh.dns.dynhost.acces.2.png|800px|center]]
[[FILE:LINUX:Ovh.dns.dynhost.acces.2.png|800px|center]]
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]]




Ligne 80 : Ligne 86 :
  # Configuration à adapter selon votre situation
  # Configuration à adapter selon votre situation
  #
  #
  # HOST : nom de la machine
  # LISTEHOST : liste des noms de machine
  # LOGIN : identifiant DynHost
  # LOGIN : identifiant DynHost
  # PASSWORD : mot de passe
  # PASSWORD : mot de passe
  #
  #
  HOST=archive.laplanchedenvol.be
  LISTEHOST=archive.laplanchedenvol.be
  LOGIN=laplanchedenvol.be-archive
  LOGIN=laplanchedenvol.be-archive
  PASSWORD=VOTRE_MOT_DE_PASSE
  PASSWORD=VOTRE_MOT_DE_PASSE
Ligne 90 : Ligne 96 :
  # Journal
  # Journal
  PATH_LOG=/var/log/dyndns.log
  PATH_LOG=/var/log/dyndns.log
#
# Récupération des IPs
#
HOST_IP=`dig @ns.ovh.net. +short $HOST`
CURRENT_IP=`curl -s ifconfig.co`
  #
  #
  # Journalisation
  # Journalisation
Ligne 100 : Ligne 101 :
  echo > $PATH_LOG
  echo > $PATH_LOG
  echo "Run dyndns" >> $PATH_LOG
  echo "Run dyndns" >> $PATH_LOG
  date >> $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
  #
  #
  # Comparaison de l'adresse IP réelle et de celle du serveur DNS
  # Passage en revue de tous les domaines
# Si elles sont différentes, celle du serveur DNS est adaptée
  #
  #
  if [ -z "$CURRENT_IP" ] || [ -z "$HOST_IP" ]
  for HOST in ${LISTEHOST}
then
  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
   echo "Pas IP récupérée" >> $PATH_LOG
else
  else
   if [ "$HOST_IP" != "$CURRENT_IP" ]
   if [ "$HOST_IP" != "$CURRENT_IP" ]
   then
   then
    echo "IP changée" >> $PATH_LOG
    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>"`
    RES=`curl -s --user "$LOGIN:$PASSWORD" "<nowiki>https://www.ovh.com/nic/update?system=dyndns&hostname=$HOST&myip=$CURRENT_IP</nowiki>"`
# URL alternative
    # URL alternative
#   RES=`curl -s --user "$LOGIN:$PASSWORD" "<nowiki>https://dns.eu.ovhapis.com/nic/update?system=dyndns&hostname=$HOST&myip=$CURRENT_IP</nowiki>"`
    # 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 "Résultat de la requête DynHost" >> $PATH_LOG
    echo "$RES" >> $PATH_LOG
    echo "$RES" >> $PATH_LOG
   else
   else
    echo "IP n'a pas changé" >> $PATH_LOG
    echo "IP n'a pas changé" >> $PATH_LOG
   fi
   fi
  fi
  fi
  done
----
----
Nous le placerons dans le répertoire "/manager/ovh". Ce script doit avoir les droits d'exécution.
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:
En début, nous avons trois paramètres à adapter selon votre situation:
* HOST : nom de la machine
* LISTEHOST : liste des noms de machine
* LOGIN : identifiant DynHost défini ci-dessus chez OVH
* LOGIN : identifiant DynHost défini ci-dessus chez OVH
* PASSWORD : mot de passe de l'identifiant défini ci-dessus chez OVH
* PASSWORD : mot de passe de l'identifiant défini ci-dessus chez OVH

Dernière version du 20 avril 2025 à 22:02


retour au menu DNS-OVH


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".


LINUX:Ovh.dns.dynhost.1.png


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


LINUX:Ovh.dns.dynhost.ajout.host.png


Et on valide.

Cette nouvelle entrée est ajoutée.


LINUX:Ovh.dns.dynhost.2.png


Et elle apparaît aussi dans l'onglet "Zone DNS".


LINUX:Ovh.dns.archive.laplanchedenvol.be.png


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".


LINUX:Ovh.dns.dynhost.acces.1.png


Cet écran est vide. On clique sur le bouton de droite "Créer un identifiant".


LINUX:Ovh.dns.dynhost.ajout.acces.png


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.


LINUX:Ovh.dns.dynhost.acces.2.png


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.


LINUX:Ovh.dns.dynhost.acces.3.png


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




retour au menu DNS-OVH