Les DNS Dynamiques (DDNS)
Présentation
Un DNS (Domain Name System) est le processus qui permet de lier un nom de domaine à une adresse IP (« www.ubuntu.com » à « 91.189.88.180 » par exemple).
Les DNS Dynamiques sont des noms de domaine (du type « monserveur.com ») reliés à une adresse IP dynamique. 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 généralement toutes les 24 heures (pour des raisons de sécurité).
Exemple
Je souhaite héberger un mini-site personnel sur mon ordinateur. Après installation du serveur Web, je mets en place mes pages et rends accessible mon site. À l'heure H, mon adresse IP est 122.122.122.122, et pour accéder à mon site personnel, un internaute doit entrer cette adresse dans un navigateur, ou entrer un nom de domaine (dans mon cas http://monserveur.com/) redirigé vers cette adresse.
Le problème est que mon fournisseur d'accès change mon adresse IP toutes les 24 h, pour éviter les risques de piratage, et pour des raisons de coûts qui se révèlent élevés. Le nom de domaine, redirigé à l'origine vers l'adresse IP 122.122.122.122, doit maintenant être redirigé vers ma nouvelle adresse IP 123.123.123.123, attribuée par mon FAI.
C'est exactement ce genre de service que propose les sites de DNS dynamiques (citons No-IP et DynDNS). Je devrai donc installer une petite application qui enverra ma nouvelle adresse IP dès que cette dernière changera. Ainsi, la redirection sera modifiée automatiquement, et je n'aurai plus à changer sans cesse les informations de mon nom de domaine.
No-IP
Nous prendrons dans ce petit tutoriel le site No-IP comme fournisseur de DNS dynamiques.
Deux solutions s'offrent à vous :
- obtenir un nouveau nom de domaine du type « http://monserveur.noip.com/ » ;
- garder votre nom de domaine et rediriger celui-ci vers une nouvelle adresse « http://monserveur.noip.com/ ».
Dans tous les cas vous devrez créer un nouveau nom de domaine (dans notre cas un « sous-domaine », car ce dernier appartiendra à No-IP), donc inscrivez-vous sur cette page.
Installation du client No-IP
Procédure officielle : https://www.noip.com/support/knowledgebase/installing-the-linux-dynamic-update-client-on-ubuntu/
Avec les droits d'administration :
cd /usr/local/src/ wget https://www.noip.com/client/linux/noip-duc-linux.tar.gz tar xf noip-duc-linux.tar.gz cd noip-2.1.9-1/ make install
…
Configuration
Lancez la configuration de No-IP avec la commande suivante :
sudo noip2 -C
Et suivez les instructions suivantes :
Please enter the login/email string for no-ip.com: ## Entrez votre nom d'utilisateur (créé lors de l'inscription à No-IP) Please enter the password for user 'your_login': ## Entrez votre mot de passe (créé lors de l'inscription à No-IP) Please enter an update interval:[30] ## Entrez la fréquence de rafraichissement de l'adresse IP en minutes Do you wish to run something at successful update?[N] ## Appuyez sur Entrée
Démarrer le client No-IP
No-IP est maintenant configuré, vous pouvez lancer l'application avec la commande suivante :
sudo noip2
Lancement au démarrage
Pour activer No-IP au démarrage de votre ordinateur, vérifiez que le service no-ip est lancé au démarrage. Pour cela, vérifiez qu'un lien existe dans /etc/rc2.d.
cd /etc/rc2.d/
puis
ls
Si noip2 (S20noip2) apparaît dans la liste, c'est gagné, sinon il suffit de créer un lien du fichier « /etc/init.d/noip2 » vers « /etc/rc2.d/S20noip2 » en tapant la commande :
sudo ln -s /etc/init.d/noip2 /etc/rc2.d/S20noip2
Note : L'ancienne version du client s'appelait « no-ip ».
FreeDNS
Nous prendrons dans ce petit tutoriel le site https://freedns.afraid.org/ comme fournisseur de DNS dynamiques.
Deux solutions s'offrent à vous :
- obtenir un nouveau sous-domaine d'un nom de domaine parmi une liste énorme de domaine du type « http://monserveur.undomain.org/ » ;
- « offrir » votre nom de domaine et gérer les sous-domaines avec FreeDNS, pour vous ou en le partageant avec les autres utilisateurs.
Dans tous les cas vous devrez créer un nouveau sous-domaine, donc inscrivez-vous sur cette page
Domaine dynamique
FreeDNS sait gérer la MAJ de l'IP en analysant l'adresse IP source d'une requête HTTP. Il suffit de se rendre sur cette page pour trouver en bas un lien Direct URL. L'URL peut alors être utilisée avec une commande wget qui sera placée dans une tâche planifiée cron.
wget -q -O- --read-timeout=0.0 --waitretry=5 --tries=400 https://freedns.afraid.org/dynamic/update.php?WDJobXquelquechosequidependdevotreddns=
DynDNS
Nous prendrons dans cette partie le site dyndns.org comme fournisseur de DNS dynamiques.
Deux solutions s'offrent à vous:
- obtenir un nouveau nom de domaine du type http://votredomaine.dyndns.org/ ;
- garder votre nom de domaine et rediriger celui-ci vers une nouvelle adresse http://votredomaine.dyndns.org/.
Dans tous les cas vous devrez créer un nouveau nom de domaine (dans notre cas un « sous-domaine », car ce dernier appartiendra à DynDNS), donc inscrivez-vous sur cette page.
Installation de ddclient
→ Voir la page spécifique ddclient.
Redirection « propre » d'un nom de domaine
Vous possédez un nom de domaine tout beau tout neuf, votredomaine.fr, mais pas d'IP fixe et vous voudriez héberger votre site directement sur votre ordinateur personnel. Tout cela pour des questions financières, ou de commodité : configuration du serveur aux petits oignons, espace Web et SQL limités uniquement par la taille de votre disque dur, fierté d'avoir monté son serveur personnel, ou tout simplement parce que vous venez de visionner la vidéo Internet libre ou Minitel 2.0 ? de Benjamin Bayart lors des 8e Rencontres Mondiales du Logiciel Libre (RMLL) et que vous vous sentez l'âme d'un libriste convaincu qu'internet doit rester libre.
Quoi qu'il en soit, lorsque vous tentez de rediriger votre votredomaine.fr vers votre site, votre registrar ne vous propose que 3 ridicules choix :
- une redirection permanente : le client internet (ou le bot de référencement) reçoit la directive HTTP/1.1 301 MOVED PERMANENTLY.
- Ce qui lui indique que l'adresse demandée votredomaine.fr n'existe plus et qu'il faut se rediriger vers l'adresse indiquée, souvent vous y aurez configuré l'adresse d'un sous-domaine du type votredomaine.dyndns.org. Ce qui a pour principale conséquence que votre votredomaine.fr disparaît de la barre d'adresse du navigateur au profit de votredomaine.dyndns.org et ce sera donc ce dernier qui sera référencé par les moteurs de recherche. D'où l'utilité d'avoir acheté un nom de domaine…
- une redirection temporaire : le client internet (ou le bot de référencement) reçoit la directive HTTP/1.1 307 TEMPORARY REDIRECT.
- Idem que précédemment, sauf que les moteurs de recherche reviendront de temps en temps vérifier votredomaine.fr au cas où ça aurait changé. Accessoirement, ils n'effaceront pas les anciens référencements.
- une redirection par frame : ici votre site internet est affiché dans un cadre qui prend toute la fenêtre.
- Vous gardez votredomaine.fr dans la barre d'adresse, mais les moteurs de recherche ne référenceront pas ou alors très mal votre site avec ce genre de bidouillage.
La solution ici est de créer un CNAME (Canonical NAME ou sous-domaine) dans la gestion de vos zones DNS qui fournira votre adresse IP dynamique par l'intermédiaire d'un service comme dyndns.org, et de faire une redirection permanente de votredomaine.fr vers le CNAME créé.
www 12345 IN CNAME votredomaine.dyndns.org.
(Si votre registrar vous propose d'éditer votre fichier de zone en mode texte, il ne faut pas oublier le point final !)
Résumé des étapes
- Créez une adresse du type dyndns.org que l'on appellera votredomaine.dyndns.org.
- Configurez le démon ddclient pour qu'il mette à jour votre adresse IP automatiquement.
- Faites une redirection permanente de votredomaine.fr vers www.votredomaine.fr.
- Créez le CNAME www, et faites-le pointer vers votredomaine.dyndns.org.
- Patientez.
La dernière étape est en fait due au système de cache des serveurs DNS. En effet ceux-ci, pour des raisons d'efficacité, gardent en mémoire l'adresse des noms de domaine sur lesquels ils ont fait des recherches récemment. Ce temps de vie (TTL: Time To Live) est en général de 3 heures. C'est donc la durée à attendre pour que tous les serveurs DNS de la planète prennent en compte votre nouveau CNAME dans leur mémoire.
Inspiré de la page : http://sebsauvage.net/comprendre/dns/index.html
Accès en local à votre site internet derrière un routeur ou une box
Si vous êtes derrière un routeur ou une box, et qu'à partir du réseau local vous tentez d'accéder à votre site en tapant son adresse internet, vous aurez sûrement la désagréable surprise de vous retrouver sur la page de configuration de votre routeur ou de votre box. Ce sont des choses qui arrivent et ce n'est pas grave. C'est juste que votre routeur/box ne vous autorise pas à sortir sur internet, pour revenir l'instant d'après sur votre réseau et accéder ensuite à votre site.
Pour contrer ce désagrément, il vous suffit d'ouvrir le fichier /etc/hosts sur la machine CLIENTE (celle qui tente d'accéder au serveur) et d'y ajouter la ligne suivante :
127.0.0.1 localhost 192.168.*.* votredomaine.fr <---- Ligne à ajouter # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Les * sont à remplacer par l'adresse exacte en local de votre serveur. Celui-ci commençant la plupart du temps par « 192.168 ». Vous pouvez y ajouter autant de lignes que d'adresses IP ou de noms de domaine dont vous avez besoin. Le fichier hosts est en fait l'ancêtre des serveurs DNS, lorsqu'internet ne comptait que quelques machines reliées entre elles.
Deuxième solution1) : vous pourrez certainement ajouter une ligne de DNS dans la configuration de la box. Ainsi toutes les machines reliées à la box en réseau local auront accès au serveur. Pratique pour ne pas avoir à modifier tous les hosts.
Redirection des ports (Port Forwarding ou NAT)
Si vous êtes derrière un routeur et que vous voulez utiliser la redirection no-ip ou dyndns, n'oubliez pas de rediriger le port correspondant au service (par exemple le port 80 pour un serveur Web) vers la machine où tourne le serveur du service en question.
(au moins trois cents routeurs sont référencés et avec à chaque fois une explication détaillée pour beaucoup de logiciels différents)