Les notes de Clément

Spécialiste de rien // Partageur de tout
Billets avec le mot-clé dns

Utilisation d’un DNS dynamique

Comme vous le savez, je possède depuis peu un Raspberry Pi, et j’y ai installé un serveur web. J’ai écrit un billet là dessus, et à ce moment là, pour accéder à ce site web, je m’étais passé d’utiliser un service de DNS dynamique, et il fallait donc que j’utilise directement l’adresse IP de ma box SFR. Non seulement ce n’est pas pratique, mais en plus, si l’adresse IP change (on redémarre la box par exemple), c’est embêtant. J’avais donc fait un script pour détecter un changement d’adresse IP, chargé de m’envoyé un e-mail.

Bref, ce n’était pas très sérieux ! Heureusement, un collègue (@Toumt4m) m’a éclairé sur l’utilisation pratique du DNS dynamique !

C’est quoi le DNS ?

N’étant pas un spécialiste, je me garderai bien de vouloir vous expliquer en détail les mécanismes du DNS. Mais en quelques mots, c’est l’annuaire d’internet. En effet, chaque site web est hébergé sur un ordinateur. Un ordinateur qui doit donc être relié à internet, il a ainsi une adresse IP. Pour accéder au site web qu’il héberge, il suffit alors de taper l’adresse IP dans son navigateur. Vous voulez visiter google.fr, rien de plus simple : 74.125.230.215

Seulement voilà, ce n’est pas très simple de retenir toutes ces adresses IP, donc le DNS nous permet de retenir le nom de domaine du site, et il se chargera pour nous de le traduire vers l’adresse IP correspondante. Si vous voulez en savoir plus, un bon point de départ est la page Wikipédia : wikipedia.org/wiki/Domain_Name_System

Finalement, lorsque l’adresse IP du serveur qui héberge notre site web peut changer, il faut utiliser un service de DNS dynamique qui permet de mettre à jour en temps réel le DNS. Nous allons donc voir comment utiliser un tel service.

Inscription au service

Il existe pléthore de sites proposant ce type de service, j’ai personnellement opté pour dnsdynamic.org (si vous en connaissez des mieux, ça m’intéresse !). C’est très simple, il suffit de s’inscrire, puis d’ajouter un sous-domaine comme mon-rpi.dnsdynamic.com et de lui associer son adresse IP. Pour connaître votre adresse IP externe, vous pouvez par exemple allez sur le site ipogre.com (si curl est installé sur votre Raspberry, tapé curl ipogre.com dans un terminal).

Voilà ! Maintenant, en tapant mon-rpi.dnsdynamic.com dans votre navigateur, vous devriez tomber sur le site web que vous hébergez sur votre Raspberry. Mais celà fonctionne également pour vous connecter en ssh par exemple (à condition d’avoir redirigé correctement le port de votre serveur ssh…).

Mise à jour automatique

Si votre adresse IP change, il y a plus simple que de se connecter sur dnsdynamic.org pour mettre à jour votre sous-domaine. Vous pouvez utiliser l’API de ce site. En pratique, il vous suffit d’installer ddclient :

		sudo apt-get install ddclient
	

Vous pouvez ensuite reprendre le fichier de configuration /etc/ddclient.conf proposé, en modifiant identifiant, mot de passe et nom du sous-domaine choisi :

	   # Configuration file for ddclient generated by debconf
		#
		# /etc/ddclient.conf

		daemon=60                           # check every 60 seconds
		syslog=yes                          # log update msgs to syslog
		mail=root                           # mail all msgs to root
		mail-failure=root                   # mail failed update msgs to root
		pid=/var/run/ddclient.pid           # record PID in file.
		ssl=yes                             # use ssl-support.  Works with
												# ssl-library
		use=web, web=myip.dnsdynamic.com    # get ip from server.
		server=www.dnsdynamic.org           # default server
		login=votre_adresse@mail.com        # default login
		password=votre_mot_de_passe         # default password
		server=www.dnsdynamic.org,          \
		protocol=dyndns2                    \
		mon-rpi.dnsdynamic.com
	

Ce logiciel s’exécute ensuite comme un démon, mais vous pouvez également le lancer en ligne de commande en faisant :

		ddclient -daemon=0 -verbose
	

J’ai personnelement ajouté cette ligne à mon script (voir le billet …), c’est pas très propre mais comme ça je recevrai toujours l’e-mail en plus.