Je vais reprendre les mêmes exemples et appeler « new.example » le domaine acheté et « old.dyn.example » le domaine dynamique gratuit précédemment utilisé. Supposons par ailleurs que mon adresse IP actuelle soit 203.0.113.90.

Quand je vais sur l’interface d’administration de mon fournisseur de nom de domaine Gandi pour « new.example », comme prévu, je ne trouve aucune option intéressante quant à la gestion d’une adresse IP dynamique. Comme prévu, je gère donc ce domaine ailleurs ; j’ai choisi pour cela l’hébergeur de DNS Hurricane Electric Internet Services (HEIS), qui me permet de gérer gratuitement mes enregistrements DNS et autorise l’utilisation d’adresses IP dynamiques.

Avant de paramétrer le DNS, il faut indiquer chez mon fournisseur de nom de domaine Gandi que les serveurs DNS qui auront les informations relatives à mon domaine sont ceux de HEIS et non les siens. Pour cela, dans l’interface d’administration, je choisis « Modifier les serveurs DNS » et je fournis les adresses des serveurs de HEIS :

DNS1: ns5.he.net
DNS2: ns4.he.net
DNS3: ns3.he.net
DNS4: ns2.he.net

C’est tout du côté de Gandi. La suite se passe dans l’interface d’administration de HEIS, où je configure l’enregistrement A :

Name         : new.example
IPv4 address : 203.0.113.90
TTL : 300
[✓] Enable entry for dynamic DNS

Ce qui donne, en syntaxe DNS :

new.example.	300	IN	A	203.0.113.90

Le TTL est court (300 secondes, soit 5 minutes) car cet enregistrement DNS ne doit pas rester en cache trop longtemps sur les routeurs, au cas où mon adresse IP changerait. La propagation des modifications du DNS est instantanée ; le rafraîchissement des mémoires-tampon ne l’est pas… Avec ce paramétrage, j’accepte que mon serveur ne réponde plus pendant 5 minutes après un changement de DNS suite à une modification d’adresse IP. Attention de ne pas mettre un TTL trop court car cela nuirait aux performances (les routeurs devraient en permanence se mettre à jour).

Reste à notifier HEIS des changements d'adresse IP, le cas échéant. Cela se passe cette fois-ci sur mon serveur personnel. J’y avais déjà un paramétrage adéquat, basé sur Inadyn, pour old.dyn.example, avec :

  • un script /usr/local/sbin/update_dyn_old :
    #!/bin/bash
    /usr/sbin/inadyn --input_file /etc/inadyn_old.conf
  • un fichier de configuration /etc/inadyn_old.conf :
    --background
    --syslog
    --dyndns_system dyndns@dyndns.org
    --username MON_NOM_D_UTILISATEUR
    --password MON_MOT_DE_PASSE
    --update_period_sec 1800
    --forced_update_period 864000
    --alias old.dyn.example
  • et une entrée dans la « crontab » du planificateur de tâches :
    @reboot /usr/local/sbin/update_dyn_old

Il m’a suffit d’ajouter :

  • un nouveau script /usr/local/sbin/update_dyn_new :
    #!/bin/bash
    /usr/sbin/inadyn --input_file /etc/inadyn_new.conf
  • un fichier de configuration /etc/inadyn_new.conf adapté à HEIS :
    --background
    --syslog
    --dyndns_system custom@dyndns.org
    --ip_server_name checkip.dns.he.net /
    --dyndns_server_name dyn.dns.he.net
    --dyndns_server_url /nic/update?
    --username new.example
    --password MA__DDNS_KEY_
    --update_period_sec 1800
    --forced_update_period 864000
    --alias new.example
  • et une nouvelle entrée dans la « crontab » du planificateur de tâches :
    @reboot /usr/local/sbin/update_dyn_new

La « DDNS KEY » ci-dessus est spécifiée via l’interface web de HEIS, sur la ligne de l’enregistrement DNS dynamique A (icône 🔃). Cette clé n’a pas à être mémorisée et peut donc sans problème être générée aléatoirement.

À noter : la période de 1800 secondes ci-dessus indique que le serveur va vérifier son adresse IP toutes les 30 minutes. En cas de changement de l’adresse IP de mon serveur (du fait de mon FAI), il peut donc s’écouler en tout jusqu’à 35 minutes avant que mon serveur soit à nouveau accessible.

Cela clôt le paramétrage DNS basique. Le nouveau nom de domaine pointe maintenant sur mon serveur. Le reste est du domaine applicatif.

À noter : il est souhaitable d’ajouter le nouveau nom de domaine dans le fichier /etc/hosts, sur le serveur.