Introduction ------------ dyndomain permet de contourner les limitations de votre abonnement Orange et de sa Livebox en utilisant un nom de domaine chez OVH: - bien que "relativement" stable, les adresses IPv4 (et IPv6) de votre Livebox changent de temps en temps. - les comptes de type dyndns supportés par la Livebox 4 ne supportent que l'IPv4, sont contraignant à utiliser, et parfois payants. - La Livebox 4 ne supporte pas les comptes dyndns OVH. - et OVH ne supporte que l'IPv4 pour ses comptes dyndns dyndomain surveille votre Livebox toutes les minutes récupère ses adresses IPv4 et IPv6 ainsi que les adresses IPv6 des machines dans votre reseau local. Lors d'un changement, la zone dns de votre domaine chez OVH est mise à jour. Ainsi si vous avez le domaine chezmoi.fr chez OVH, vous pourrez retrouver les machines de votre reseau: * la livebox elle-même: $ host livebox.home.chezmoi.fr livebox.home.chezmoi.fr has address 1.2.3.4 livebox.home.chezmoi.fr has IPv6 address pppp:pppp:pppp:pppp:aaaa:aaaa:aaaa:aaaa * une machine visible en IPv6: $ host machine1.home.chezmoi.fr machine1.home.chezmoi.fr has IPv6 address pppp:pppp:pppp:pppp:bbbb:bbbb:bbbb:bbbb * une machine avec une redirection IPv4: $ host machine2.home.chezmoi.fr machine2.home.chezmoi.fr has address 1.2.3.4 machine2.home.chezmoi.fr has IPv6 address pppp:pppp:pppp:pppp:cccc:cccc:cccc:cccc Les enregistrements DNS sont configurés avec un TTL de 60s, donc un changement d'adresse est au pire visible en 2 minutes (parfois plus, si vous utilisez des serveurs qui forcent des mises en cache avec des durées minimales supérieures). dyndomain utilise la librairie python-ovh pour la mise à jour des enregistrements DNS et la librairie sysbus de René D. qui permet de récupérer toutes les informations de la Livebox. Testé avec une Livebox 4. Installation ------------ $ git clone https://framagit.org/ggrandou/dyndomain.git $ cd dyndomain $ git submodule init sysbus $ git submodule update sysbus $ git submodule init ovh $ git submodule update ovh Setup - Livebox --------------- $ ./sysbus/sysbus.py -password LIVEBOXADMINPASSWORD -config url = http://livebox.home/ user = admin password = LIVEBOXADMINPASSWORD model = lb4 Verifier que la configuration est correcte: $ ./sysbus/sysbus.py SoftwareVersion : XG40_sip-fr-3.2.18.1_7.21.3.1 UpTime : 2 days, 10:10:12 (NumberOfReboots: 21) ExternalIPAddress : n.n.n.n IPv4Address : 192.168.1.1 IPv6Address : nnnn:nnnn:nnnn:nnnn:nnnn:nnnn:nnnn:nnnn IPv6DelegatedPrefix : nnnn:nnnn:nnnn:nnnn::/56 IPv6Address : nnnn:nnnn:nnnn:nnnn:nnnn:nnnn:nnnn:nnnn directoryNumber : +339xxxxxxxx Setup - OVH ----------- Il vous faut: - un compte chez OVH (nic-handle de la forme NN1234-OVH) - un domaine herbergé chez OVH * Création du fichier ovh.conf: $ cp ovh-sample.conf ovh.conf * Création de l'Application Token: visitez la page https://eu.api.ovh.com/createApp/ remplir les champs: - account id: votre compte OVH - password - Application Name: dyndomain ou ce que vous voulez - Application Description: ce que vous voulez remplissez les champs Application Key et Application Secret dans le fichier ovh.conf * Création du Consumer Token: Editez le fichier register_ovh_account avec votre propre domaine (à la place de example.com) $ ./register_ovh_account Visitez l'URL affichée et authentifiez-vous avec votre compte OVH. Enregistrer la Consumer Key dans le fichier ovh.conf Setup - Réseau local -------------------- * Création du fichier home.conf: $ cp home-sample.conf home.conf * configuration [zone]: domain: votre propre domaine subdomain: ce que vous voulez, typiquement "home" Toutes les machines seront nommées avec un nom du type mypc1.home.domain.ext * configuration [Hosts]: Listez ici toutes les machines auquelles vous voulez ajouter un enregistrement IPv6. * configuration [NatHosts]: Listez ici toutes les machines auquelles vous voulez ajouter un enregistrement IPv4. Comme l'adresse IPv4 est l'adresse WAN (de la livebox), pour que ce soit utile, il faut que vous ayez ajourter une règle de redirection pour ces machines sur votre interface Livebox * configuration [Mail]: Chaque mise à jour génerera un mail qui sera envoyé à cette adresse. * configuration [MailIgnore]: Si les mises à jour ne concernent que des entrées dans cette liste le mail ne sera pas envoyé Utilisation ----------- * Pour tester que tout est correct: $ ./dyndomain la zone dns doit être mise à jour pour votre domaines avec les machines enregistrées, et vous devrier recevoir un mail notifiant la mise à jour. * Vous pouvez alors appeler ce script toutes les minutes avec une entrée crontab.