Accueil > Domotique > DynHost d’OVH avec une LiveBox Play d’Orange
DynHost d’OVH avec une LiveBox Play d’Orange
vendredi 11 septembre 2015, par
Introduction
Je souhaitais rendre accessible un CubieTruck qui me sert pour Seafile (cloud privé) et pour une application de domotique. Mon choix s’est porté sur OVH avec sa solution DynHost incluse dans l’offre Nom de domaine.
Configuration de DynHost
Il faut évidemment se connecter à son compte. On sélectionne ensuite le nom de domaine que l’on souhaite utiliser. Puis on choisit l’onglet DynHost.
LÃ , sur la droite, on choisit Ajouter un DynHost.
Une boîte de dialogue apparaît dans laquelle on indique le sous-domaine ainsi que l’adresse IP actuelle de sa Livebox Play.
Maintenant, on va créer un identifiant pour pouvoir mettre à jour l’adresse IP de manière automatique. Pour cela, on choisit Gérer les accès sur la droite.
Toujours sur la droite, on sélectionne Créer un identifiant.
On saisit l’identifiant, le nom de sous-domaine ainsi que le mot de passe choisi.
C’est tout pour la partie DynHost. Un peu de patience est nécessaire avant que le sous-domaine soit accessible.
De plus, la page d’Adrin FURET [1] me fà »t d’un grand secours pour comprendre le service DynHost d’OVH.
Configuration de la Livebox Play
Ici, il faut aller dans la configuration avancée puis choisir configuration réseau sur la gauche. Moi, j’ai choisi de diriger tous les flux vers mon pare-feu avec la fonction DMZ de la Livebox Play.
Je n’ai rien fait de plus pour ce point-là .
Le script de mise à jour
Ce script est fortement inspiré par celui de Zwindler [2]. J’y ai corrigé quelques bourdes et, surtout, remplacer l’appel à des services de type « http://ifconfig.me/ip» et « http://checkip.dyndns.com/» par l’appel à un json via curl [3].
Il comporte aussi une condition qui limite la taille du fichier de consignation.
Je vous livre le résultat ci-dessous :
#! /bin/bash
# Mainly inspired by DynHost script given by OVH
# New version by zwindler (zwindler.fr/wordpress)
# Newer version stores the return code in the logfile (smuller@s-muller.fr)
#
# Initial version was doing nasty grep/cut on local ppp0 interface
#
# This coulnd't work in a NATed environnement like on ISP boxes
# on private networks.
#
# Also got rid of ipcheck.py thanks to mafiaman42
#
# This script uses curl to get the public IP, and then uses wget
# to update DynHost entry in OVH DNS
#
# Logfile: dynhost.log
#
# CHANGE: "HOST", "LOGIN" and "PASSWORD" to reflect YOUR account variables
HOST="sous-domaine"
LOGIN="identifiant"
PASSWORD="mot de passe"
LOG_PATH="chemin pour le stockage des fichiers de journalisation"
LIVEBOX="adresse IP de la Livebox Play"
echo ---------------------------------- >> $LOG_PATH/dynhost.log
echo `date` >> $LOG_PATH/dynhost.log
echo 'DynHost' >> $LOG_PATH/dynhost.log
TMPFILE=`tempfile`
IP=`curl -s -X POST -H "Content-Type: application/json" -d '{"parameters":{}}' http://$LIVEBOX/sysbus/NMC:getWANStatus | sed -e 's/.*"IPAddress":"\(.*\)","Remo.*/\1/g'`
IPv6=`curl -s -X POST -H "Content-Type: application/json" -d '{"parameters":{}}' http://$LIVEBOX/sysbus/NMC:getWANStatus | sed -e 's/.*"IPv6Address":"\(.*\)","IPv6D.*/\1/g'`
OLDIP=`dig +short @$LIVEBOX $HOST`
if [ $IP ]; then
if [ $OLDIP != $IP ]; then
echo -n 'Old IP: ' >> $LOG_PATH/dynhost.log
echo $OLDIP >> $LOG_PATH/dynhost.log
echo -n 'New IP: ' >> $LOG_PATH/dynhost.log
echo $IP >> $LOG_PATH/dynhost.log
echo 'Try to update!' >> $LOG_PATH/dynhost.log
wget -q -O $TMPFILE "http://www.ovh.com/nic/update?system=dyndns&hostname=$HOST&myip=$IP" --user="$LOGIN" --password="$PASSWORD" >> $LOG_PATH/dynhost.log
RESULT=`cat $TMPFILE`
echo "Result: $RESULT" >> $LOG_PATH/dynhost.log
if [[ $RESULT =~ ^(good|nochg).* ]]; then
echo ---------------------------------- >> $LOG_PATH/dynhost-changes.log
echo `date` >> $LOG_PATH/dynhost-changes.log
echo "New IP : $IP" >> $LOG_PATH/dynhost-changes.log
fi
rm $TMPFILE
else
echo "IP $HOST $OLDIP is identical to WAN $IP! No update required." >> $LOG_PATH/dynhost.log
fi
else
echo 'WAN IP not found. Exiting!' >> $LOG_PATH/dynhost.log
fi
# Some implementations of 'wc' use tabulation as separator others use space.
NB_LINES=`wc -l $LOG_PATH/dynhost.log | cut -d" " -f1 | cut -f1`
if [ "$NB_LINES" -gt "200" ]; then
tail -n100 $LOG_PATH/dynhost.log >> $TMPFILE
mv $TMPFILE $LOG_PATH/dynhost.log
fi
crontab
J’ai simplement rajouté la ligne ci-dessous au fichier /etc/crontab afin de vérifier le changement d’adresse IP toutes les 5 minutes :
*/5 * * * * root /chemin vers le script executable/dynhost
Conclusion
La mise en Å“uvre n’est pas bien compliqué mais la recherche de tous les éléments a été chronophage d’où cette synthèse qui, je l’espère, profitera au plus grand nombre. J’allais oublier, j’ai trouvé les codes de retour du moteur DynDNS sur le site de Matthias PIERSCHEL [4]
Messages
1. DynHost d’OVH avec une LiveBox Play d’Orange, 19 mars 2016, 18:21, par Acidix
Yes, ce que je cherchais ! Merci
Ça aurait plus simple si Orange proposé le service DynHost d’OVH dans la rubrique DynDNS de l’interface de conf ...
1. DynHost d’OVH avec une LiveBox Play d’Orange, 19 mars 2016, 21:47, par Steve
Il est vrai qu’Orange pourrait se mettre un peu à la page. Par contre, que l’on puisse obtenir l’adresse directement depuis la box est plus intéressant que de dépendre de service du style « http://ifconfig.me/ip  ».
En tout cas, merci pour votre message d’encouragement, cela fait toujours plaisir.
2. DynHost d’OVH avec une LiveBox Play d’Orange, 21 mars 2016, 17:57, par Manumie
Voilà un script super utile et très instructif.
Merci !
1. DynHost d’OVH avec une LiveBox Play d’Orange, 22 mars 2016, 20:48, par Steve
Merci à vous.
J’espère que cela vous a permis de résoudre un problème.
3. DynHost d’OVH avec une LiveBox Play d’Orange, 13 juillet 2016, 17:08, par Vindikato
Bonjour
Ce script fonctionne t il toujours ? Les livebox ont pas mal évolué (je suis passé à la fibre) et l’acces au nic de OVH me semble avoir changé.
Bonne continuation !
1. DynHost d’OVH avec une LiveBox Play d’Orange, 13 juillet 2016, 21:05, par Steve
Bonsoir,
Chez moi, avec la Livebox Play en VDSL2, cela fonctionne toujours.
Vous pouvez essayer la ligne de commande ci-dessous, cela vous renseignera sur la présence de la fonctionnalité dans le firmware de votre Livebox :
curl -s -X POST -H "Content-Type : application/json" -d ’"parameters" :{}’ http://l’adresse ip de la livebox/sysbus/NMC:getWANStatus | sed -e ’s/.*"IPAddress" :"\(.*\)","Remo.*/\1/g’
N’oubliez pas de remplacer "l’adresse ip de la livebox".
Merci pour vos encouragements
Steve
4. DynHost d’OVH avec une LiveBox Play d’Orange, 13 octobre 2016, 17:29, par Tony
Plus simple pour récupérer son ip :
wget http://ipinfo.io/ip -qO -
1. DynHost d’OVH avec une LiveBox Play d’Orange, 12 décembre 2016, 10:17, par Steve
Bonjour Tony,
En général, j’évite ce genre de services car ils peuvent disparaître.
Et comme la livebox sait rendre ce service, autant l’exploiter.
Steve
5. Compter le nombre de ligne, 12 décembre 2016, 05:35, par Patrice
Bonjour,
Merci pour ce super tuto, bien pratique.
Pour compter le nombre de lignes du log, je préfère faire de cette façon :
en utilisant cut, je rencontrais des erreurs sous OSX (probablement une histoire d’espaces remplacés en tab dans mon éditeur ...)
http://www.patricelaurent.net/
1. Compter le nombre de ligne, 12 décembre 2016, 10:39, par Steve
Bonjour Patrice,
Je pense que le problème ne vient pas de l’éditeur mais de la sortie de ’wc’.
En effet, dans ma Debian, ’wc’ sépare les deux champs avec un espace d’où le ’cut -d" " -f1’.
Dans votre cas, ’wc’ sépare probablement les deux champs avec autre chose (une tabulation peut-être ?) et, dans le cas de la tabulation, un ’cut -f1’ devrait fonctionner.
Sur ma Debian, ’bc’ n’apprécie pas le texte contenu dans le retour de ’wc’. Je ne connais pas les spécifications de ’bc’ mais la solution la plus judicieux me semble être la ligne ci-dessous :
NB_LINES=`wc -l $LOG_PATH/dynhost.log | cut -d" " -f1 | cut -f1`
Merci pour vos encouragements.
Steve
6. DynHost d’OVH avec une LiveBox Play d’Orange, 3 janvier 2017, 18:37, par DOUCE Sébastien
Merci ,
Ok du premier coup
7. DynHost d’OVH avec une LiveBox Play d’Orange, 26 mars 2018, 15:31, par Michael
BOnjour, merci pour ce tuto, est-il toujours utilisable et si oui ou placer le script exactement ?
1. DynHost d’OVH avec une LiveBox Play d’Orange, 26 mars 2018, 21:16, par Steve
Bonjour Michael,
À ce jour, j’utilise toujours ce script.
Sur mon serveur, j’ai crée un utilisateur dédié et le script est placé dans son "home".
Vous pouvez le placer où vous le souhaitez puisque le chemin complet doit être indiqué dans "crontab".
J’espère avoir répondu à votre question.
Steve
8. DynHost d’OVH avec une LiveBox Play d’Orange, 28 mai 2018, 03:06, par kaetir
super tuto bien détaillé
je recommande
1. DynHost d’OVH avec une LiveBox Play d’Orange, 28 mai 2018, 22:15, par Steve
Merci pour vos encouragements
9. DynHost d’OVH avec une LiveBox Play d’Orange, 30 mai 2018, 23:33, par Neo
Salut !
Je tente d’utiliser ton script sur mon raspberry, mais j’ai cette erreur :
46 : Syntax error : "(" unexpected (expecting "then")
Possible de m’aider sur ce coup stp ? :)
Merci
1. DynHost d’OVH avec une LiveBox Play d’Orange, 4 juin 2018, 11:29, par Steve
Bonjour,
Pouvez-vous exécuter le script de la manière suivante :
bash -x script_dyndns.sh ?
Et publier le résultat ici ?
Merci
10. DynHost d’OVH avec une LiveBox Play d’Orange, 16 juin 2018, 23:20, par Neo
Merci Steve :-)
Ca marche bcp mieux avec cette commande.
Encore merci pour ton tutorial !
11. DynHost d’OVH avec une LiveBox Play d’Orange, 19 août 2018, 15:14, par Gregoryen
Et pour la livebox 4 cela marche ?
1. DynHost d’OVH avec une LiveBox Play d’Orange, 19 août 2018, 20:01, par Steve
Bonsoir Gregoryen,
Je ne saurais vous répondre car je n’ai pas d’accès à une livebox 4... mais essayer la ligne de commande suivante :
Si vous obtenez votre adresse IP public, c’est que le script fonctionnera.
Steve
12. DynHost d’OVH avec une LiveBox Play d’Orange, 15 juillet 2019, 19:40, par Benoit
Bonjour,
Sur les livebox 3 la requette est légèrement différente :
curl -s -X POST -H "Content-Type : application/x-sah-ws-1-call+json" -d ’"service" :"NMC","method" :"getWANStatus","parameters" :{}’ http://192.168.1.254/ws
1. DynHost d’OVH avec une LiveBox Play d’Orange, 12 janvier 2020, 20:46, par Steve
Bonjour Benoit,
Merci pour cette précision... elle sera sà »rement utile.
Steve