Changer les enregistrements DNS (ajout d'un domaine...)

Cette page détaille la procédure pour ajouter un sous domaine dans une zone DNS.

Note:

La procédure vaut pour tous les types d’enregistrements, on prend juste un exemple.

Le fichier de zone (pour picasoft.net) est un fichier qui contient tous les enregistrements DNS relatifs au domaine picasoft.net.

Note:

Le fichier de zone est un fichier de configuration important qui évolue dans le temps. Nous avons fait le choix de le versionner avec Git de manière à retracer son évolution et à avoir une sauvegarde.
Après une modification il convient donc de commit et push la modification, accompagnée d’un message de commit clair.

Il se trouve dans un dépôt privé.

Pour garder un historique propre, on fait les modifications en local sur sa machine, puis on les pousse sur le dépôt.

C’est un format un peu spécifique (et très laid), on retiendra surtout que les commentaires s’écrivent avec le caractère ;. Il est important de bien commenter ce fichier, un fichier de zone mal commenté c’est au mieux très désagréable à lire et au pire inutilisable.

En haut du fichier se trouve un morceau de configuration particulier, qui définit le fonctionnement des DNS pour la zone. Voici un extrait de db.picasoft.net :

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;; SOA record ;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$TTL    7200                            ; TTL - 2H - Durée expiration cache DNS client
@       IN      SOA     ns01.picasoft.net. contact.picasoft.net. (
                        2017121901      ; Serial - Format AAAAMMJJXX où XX est incrémenté de 01 à 99
                        300             ; Refresh - 5 minutes - Fréquence d'actualisation des DNS secondaires
                        3600            ; Retry - 1 heure - Fréquence de nouvel essai quand actualisation DNS échoue
                        2419200         ; Expire - 28 Jours - Durée après laquelle les DNS secondaire non actualisés expirent
                        10800           ; Negative Cache TTL - 3 heures - TTL de l'information de non présence d'un enregistrement dans le domaine
)

La configuration est largement commentée, la ligne la plus importante étant celle du serial (ici 2017121901). Le serial est une sorte de version du fichier de zone. Il est primordial que ce numéro s’incrémente à chaque modification et ne se décrémente jamais. Pour cela son format reprend la date du jour (au format AAAAMMJJ) suivi de 2 chiffres que l’on incrémente en cas de multiples modifications dans la même journée.

Se suivent ensuite différentes parties de la configuration permettant de configurer nos serveurs DNS, les IPs de nos machines et surtout les IPs de nos services.

Pour ajouter un nouveau sous-domaine il suffit d’ajouter une ligne pour celui-ci. Par exemple pica01 est une machine virtuelle qui a pour adresse pica01.picasoft.net et ayant l’IP publique 91.224.148.57. On va donc dans la partie de la configuration qui correspond aux machines virtuelles (VM) (ce n’est pas obligatoire mais c’est important pour garder un fichier lisible) et on ajoute la ligne :

pica01 IN A 91.224.148.57 ; Pica01

C’est-à-dire:

  1. le sous-domaine (pica01)
  2. le type d’enregistrement (IN A pour une adresse IP)
  3. la valeur de l’enregistrement (l’IP de la machine, ici 91.224.148.57)
  4. un petit commentaire pour expliquer à quoi correspond l’enregistrement

On prend soin d’ajouter une seconde ligne, quasiment identique, avec comme type d’enregistrement IN AAAA et comme valeur l’adresse IPv6 de la machine (ici 2a03:7220:8080:3900::1). Ceci permet aux personnes disposant d’une connectivité IPv6 d’utiliser les services de Picasoft directement via ce protocole, plus récent.

A Savoir:

Les enregistrements de type A sont utilisés pour la résolution d’un nom de domaine en une IPv4, et les enregistrements AAAA pour la résolution d’un nom de domaine en une IPv6.

Attention:

Vérifier que le sous-domaine qu’on cherche à ajouter est valide, c’est à dire, qu’il ne contient que les lettres de ‘a’ à ‘z’ (majuscules ou minuscules), les chiffres de ‘0’ à ‘9’ et le signe moins '-'.

A Savoir:

Les enregistrements de type CNAME servent à indiquer un alias, c’est à dire qu’on utilisera l’adresse IP d’un autre domaine quand on souhaite accéder au domaine souhaité. On préfère les utiliser pour les services car ils permettent de changer facilement l’IP d’une machine sans devoir changer chacun des enregistrements.

Pour un nouveau service appelé form qui tourne sur pica01, on écrira par exemple :

form IN CNAME pica10 ; Service de formulaire (Yakforms)

Important:

Une fois le sous-domaine ajouté, il faut modifier le serial en entête du fichier. Comme vu au dessus, celui-ci a un format spécifique. On lui met la date du jour au format AAAAMMJJ suivi de 2 chiffres pour permettre plusieurs modifications dans une journée (on commence chaque nouvelle journée à 01).

Vérifier que le serial a le bon format, car celui-ci doit toujours s’incrémenter dans le temps. Une erreur (par exemple l’ajout d’un digit en trop) peu provoquer des soucis techniques assez ennuyeux à gérer, par exemple une désynchronisation des serveurs secondaires.

Toutes ces modifications sont à synchroniser avec le dépôt en utilisant git.

Sur la machine faisant tourner le serveur principal, à ce jour Alice, en tant que root :

cd /etc/bind/picasoft.net
git pull
systemctl restart bind9

On vérifie qu’il n’y a pas d’erreur dans les logs :

systemctl status bind9

La prise en compte du nouvel enregistrement peut prendre un certain temps.

A Savoir:

DNS est un système distribué avec un système de cache, il faut le temps que l’information soit répliquée en fonction de la configuration des serveurs DNS de votre machine.

On peut néanmoins forcer l’interrogation de notre propre serveur DNS depuis notre poste client :

dig +short <domaine> @<IP>
  • <domaine> est le nouveau sous-domaine
  • <IP> l’adresse du serveur principal

Si on obtient une réponse, c’est que tout a bien fonctionné et qu’il n’y a plus qu’à attendre la réplication.

  • technique/adminsys/dns/zonefile.txt
  • de ppom