# DDClient - DynDns Client

# Automatiser la gestion des adresses IP dynamiques

**ddclient** permet d'automatiser la mise à jour d'une [adresse IP dynamique](https://doc.ubuntu-fr.org/dns_dynamique "dns_dynamique") reliée à un nom de domaine (de 213.95.41.11 à www.ubuntu-fr.org par exemple). Ce système est extrêmement pratique quand il s'agit de créer un serveur web personnel accessible rapidement *via* un nom de domaine, alors que votre adresse IP change régulièrement.

<div id="bkmrk-"><form action="/ddclient" class="button btn_secedit form-inline" method="post"><div>  
</div></form></div>## Pré-requis

<div id="bkmrk-s%27%C3%AAtre-inscrit-sur-l">- <div>S'être inscrit sur l'un des services pris en charge. Pour les connaître, saisissez dans un [terminal](https://doc.ubuntu-fr.org/terminal "terminal") la [commande](https://doc.ubuntu-fr.org/commande_shell "commande_shell") suivante :</div>```
    ddclient --help | grep "o '"
    ```
- <div>Disposer des [droits d'administration](https://doc.ubuntu-fr.org/sudo "sudo").</div>
- <div>Disposer d'une connexion à Internet configurée et activée.</div>
- <div>Avoir activé l'accès aux [dépôts Universe et Multiverse](https://doc.ubuntu-fr.org/depots#universe_et_multiverse "depots").</div>

</div><div id="bkmrk--0"><form action="/ddclient" class="button btn_secedit form-inline" method="post"><div>  
</div></form></div>## Installation

[Installez le paquet](https://doc.ubuntu-fr.org/tutoriel/comment_installer_un_paquet "tutoriel:comment_installer_un_paquet") **[ddclient](apt://ddclient "apt://ddclient")**.

```
sudo apt install -y ddclient
```

La touche espace sert à sélectionner la redirection "\[\] Nomduhost.dyndns.com"

<div id="bkmrk--1"><form action="/ddclient" class="button btn_secedit form-inline" method="post"><div>  
</div></form></div>## Configuration

Commencez par générer le fichier de configuration en tapant :

```
sudo dpkg-reconfigure ddclient
```

Tout d'abord, vous devrez spécifier le service à utiliser. Le ou les noms de domaines qui pointeront vers l'adresse IP dynamique. L'identifiant et le mot de passe avec lesquels vous vous êtes inscrit au service.

ddclient peut prendre connaissance de l'adresse IP dynamique de diverses manières :

<div id="bkmrk-param%C3%A8tre-significat"><div><div><table class="inline table table-striped table-condensed"><thead><tr class="row0"><th class="col0">Paramètre</th><th class="col1 leftalign">Signification</th></tr></thead><tbody><tr class="row1"><td class="col0 leftalign">web</td><td class="col1 leftalign">à partir d'une page web</td></tr><tr class="row2"><td class="col0 leftalign">if</td><td class="col1">par une interface réseau (ex : ppp0, eth0…)</td></tr><tr class="row3"><td class="col0 leftalign">fw</td><td class="col1 leftalign">en interrogeant le routeur</td></tr><tr class="row4"><td class="col0 leftalign">cmd</td><td class="col1 leftalign">en exécutant une commande</td></tr></tbody></table>

</div><div>Si vous avez choisi une autre option que « web », il sera nécessaire de [modifier le fichier](https://doc.ubuntu-fr.org/tutoriel/comment_modifier_un_fichier "tutoriel:comment_modifier_un_fichier") « /etc/ddclient.conf » par la suite afin de spécifier l'interface, l'adresse IP du routeur ou la commande à employer.</div></div></div>Si vous êtes derrière un routeur, ce n'est pas l'ordinateur qui initiera la connexion. Par conséquent, répondez « Non » à la question « Faut-il lancer ddclient lors de la connexion PPP ? ».

L'avant-dernière question vous propose de faire tourner ddclient en tâche de fond (daemon). Puisque le but est d'automatiser la mise à jour de l'adresse IP, répondez « Oui ».

Enfin, vous pouvez définir un délai entre les vérifications. Par défaut, celles-ci s'effectueront toutes les 300 secondes (5 minutes).

<div id="bkmrk--2"><form action="/ddclient" class="button btn_secedit form-inline" method="post"><div>  
</div></form></div>### ddclient.conf

Maintenant que vous avez répondu aux questions, nous pouvons [modifier le fichier](https://doc.ubuntu-fr.org/tutoriel/comment_modifier_un_fichier "tutoriel:comment_modifier_un_fichier") « /etc/ddclient.conf » afin d'affiner les réglages.

Celui-ci se présente sous cette forme :

```
pid=/var/run/ddclient.pid 
ssl=yes
protocol=dyndns2            #ou zoneedit1 si vous utilisez zoneedit
use=web
server=members.dyndns.org   #ou dynamic.zoneedit.com si vous utilisez zoneedit
login=identifiant
password='motdepasse'
nom.de.domaine              #si plusieurs nom de domaine, separez par ','
```

Exemple de configuration DynDns OVH :

```
protocol=dyndns2<br></br><br></br>use=web<br></br>server=www.ovh.com<br></br>login=my-domain.com-user<br></br>password='passworddemy-domain.com-user'<br></br>subdomain.my-domain.com<br></br><br></br>use=web<br></br>server=www.ovh.com<br></br>login=my-domain.com-user1<br></br>password='passworddemy-domain.com-user1'<br></br>subdomain1.my-domain.com<br></br><br></br># ...
```

<div id="bkmrk-si-vous-utilisez-l%27o"><div><div><div><div>  
</div></div></div><div>Si vous utilisez l'option « `ssl=yes` », veillez à ce que le paquet [libio-socket-ssl-perl](apt://libio-socket-ssl-perl "apt://libio-socket-ssl-perl") soit installé. Votre version de ddclient doit être supérieure à 3.7.0 (cf. [le site de DynDNS](http://www.dyndns.com/support/kb/using_ddclient_with_dyndns_services.html#secure "http://www.dyndns.com/support/kb/using_ddclient_with_dyndns_services.html#secure")).</div><div><table class="inline table table-striped table-condensed"><thead><tr class="row0"><th class="col0 leftalign">Option</th><th class="col1">Signification</th></tr></thead><tbody><tr class="row1"><td class="col0 leftalign">ssl</td><td class="col1">connexion sécurisé lors de l'échange avec DynDNS</td></tr><tr class="row2"><td class="col0">protocol</td><td class="col1">service utilisé pour effectuer la liaison</td></tr><tr class="row3"><td class="col0 leftalign">use</td><td class="col1">comment identifier l'adresse IP</td></tr><tr class="row4"><td class="col0 leftalign">server</td><td class="col1">serveur utilisé pour effectuer la mise à jour</td></tr><tr class="row5"><td class="col0 leftalign">login</td><td class="col1">l'identifiant pour le service</td></tr><tr class="row6"><td class="col0">password</td><td class="col1">le mot de passe pour le service</td></tr><tr class="row7"><td class="col0">wildcard</td><td class="col1">Définit si les adresses du type \*.nom.de.domaine fonctionnerons</td></tr></tbody></table>

</div></div></div>Intéressons nous à l'option **use**. Celle-ci accepte plusieurs paramètres :

<div id="bkmrk-param%C3%A8tre-significat-0"><div><div><table class="inline table table-striped table-condensed"><thead><tr class="row0"><th class="col0">Paramètre</th><th class="col1">Signification</th></tr></thead><tbody><tr class="row1"><td class="col0">web</td><td class="col1">donne l'adresse IP à partir d'une page web (par défaut)</td></tr><tr class="row2"><td class="col0">cmd</td><td class="col1">donne l'adresse IP en exécutant une commande</td></tr><tr class="row3"><td class="col0 leftalign">fw</td><td class="col1">donne l'adresse IP en interrogeant un routeur</td></tr><tr class="row4"><td class="col0 leftalign">if</td><td class="col1">donne l'adresse IP à partir d'une interface réseau (ex. : ppp0, eth0, etc.)</td></tr><tr class="row5"><td class="col0 leftalign">ip</td><td class="col1">donne l'adresse IP à partir d'une adresse IP</td></tr></tbody></table>

</div></div></div>Pour utiliser la plupart de ces paramètres, il vous faudra rajouter quelques lignes au fichier de configuration.

Exemple d'obtention à partir d'une interface réseau :

```
use=if
if=ppp0
```

Exemple d'interrogation d'un routeur :

```
use=fw
fw=ip_du_routeur
fw-login=identifiant_du_routeur
fw-password=motdepasse_du_routeur
```

<div id="bkmrk-par-d%C3%A9faut%2C-ddclient"><div><div>Par défaut, ddclient récupère la première adresse IP qu'il trouve. Lorsque l'option **fw** est utilisée, il est possible que votre routeur ne fournisse pas la bonne. Pour palier ce problème, vous avez la possibilité de spécifier directement le modèle du routeur. Pour obtenir la liste des routeurs pris en charge par la version de ddclient installée, saisissez la commande suivante :</div></div></div>```
ddclient --help | grep use=
```

Pour vérifier que la configuration fonctionne:

```
sudo ddclient -daemon=0 -debug -verbose -noquiet
```

<div id="bkmrk-ddclient-utilise-un-"><div><div>ddclient utilise un fichier cache en local afin d'éviter de trop solliciter le serveur (certains serveurs limitent la périodicité des mises à jour). On peut alors voir apparaître le message **skipped: IP address was already set to xxx.xxx.xxx.xxx**</div></div></div>Il est alors nécessaire de supprimer le cache local, afin de forcer ddclient à mettre à jour le serveur :

```
sudo rm /var/cache/ddclient/ddclient.cache
```

Exemple de configuration pour le service noip (fichier ddclient.conf) :

```
ssl=yes
protocol=noip
use=web, web=checkip.dyndns.com/, web-skip='Current IP Address'
server=dynupdate.no-ip.com
login=votrelogin
password='motdepasse'
votreserveur.no-ip.biz
```

<div id="bkmrk--3"></div><div id="bkmrk--4"><form action="/ddclient" class="button btn_secedit form-inline" method="post"><div>  
</div></form></div>### Ajout d'un enregistrement MX à votredomaine.dyndns.org

→ Voir l'[article Wikipédia](https://fr.wikipedia.org/wiki/Domain_Name_System#MX_record "https://fr.wikipedia.org/wiki/Domain_Name_System#MX_record") pour la définition et son utilité.

L'astuce ici est de créer un second enregistrement sur votre compte *dyndns.org* du style **mxvotredomaine.dyndns.org** et qui sera également mis à jour par le démon.

Après avoir créé **mxvotredomaine.dyndns.org**, il vous faut [modifier le fichier](https://doc.ubuntu-fr.org/tutoriel/comment_modifier_un_fichier "tutoriel:comment_modifier_un_fichier") **/etc/ddclient.conf** de la sorte :

```
pid=/var/run/ddclient.pid
protocol=dyndns2
use=web
#use=if; if=web
server=members.dyndns.org
login=votre_login
password='votre_password'
mx=mxvotredomaine.dyndns.org    ← Adresse de l'enregistrement MX
backupmx=no                     ← Votre enregistrement MX est prioritaire
votredomaine.dyndns.org,mxvotredomaine.dyndns.org    ← Mise à jour de l'adresse MX
```

Rechargez ensuite **ddclient** :

```
sudo /etc/init.d/ddclient force-reload
```

<div id="bkmrk--5"></div><div id="bkmrk--6"><form action="/ddclient" class="button btn_secedit form-inline" method="post"><div>  
</div></form></div>### Réglage complémentaire avec FreeDNS

Si vous utilisez un sous-domaine fourni par FreeDNS, il se peut que vous soyez confronté à ce message d'erreur :

> <div>FATAL: Error loading the Perl module Digest::SHA1 needed for freedns update.  
> FATAL: On Debian, the package libdigest-sha1-perl must be installed.</div>

En attendant que le problème soit corrigé, il est possible de [modifier le fichier](https://doc.ubuntu-fr.org/tutoriel/comment_modifier_un_fichier "tutoriel:comment_modifier_un_fichier") **/usr/sbin/ddclient** et de remplacer « `require Digest::SHA1` » par « `require Digest::<abbr data-original-title="Secure Hash Algorithm" title="">SHA</abbr>` » et « `import Digest::SHA1` » par « `import Digest::<abbr data-original-title="Secure Hash Algorithm" title="">SHA</abbr>` ».

Source : *[Ask Ubuntu : How can I get ddclient to work with FreeDNS?](http://askubuntu.com/questions/211173/how-can-i-get-ddclient-to-work-with-freedns "http://askubuntu.com/questions/211173/how-can-i-get-ddclient-to-work-with-freedns")*

<div id="bkmrk--7"><form action="/ddclient" class="button btn_secedit form-inline" method="post"><div>  
</div></form></div>## Désinstallation

Pour supprimer cette application, il suffit de [supprimer son paquet](https://doc.ubuntu-fr.org/tutoriel/comment_supprimer_un_paquet "tutoriel:comment_supprimer_un_paquet"). La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.