Go to file
2020-10-04 15:46:01 +02:00
ovh@11d03357a5 ovh update 2020-10-04 11:11:31 +02:00
sysbus@5526cb5364 sysbus update 2020-10-04 11:11:26 +02:00
.gitignore big update 2020-10-04 11:16:13 +02:00
.gitmodules add python-ovh submodule 2018-02-19 23:40:47 +01:00
dyndomain get hosts list with both IPv6 and IPv4 addresses 2020-10-04 15:46:01 +02:00
home-sample.conf big update 2020-10-04 11:16:13 +02:00
ovh-sample.conf sample ovh.conf 2018-03-04 18:58:07 +01:00
README document MailIgnore 2019-12-16 18:51:15 +01:00
register_ovh_account register_ovh_account: pass domain as argument 2019-10-10 10:55:00 +02:00

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.