Fichier de zone

Le format d’un fichier de zone est défini dans le RFC 1035 (section 5) et le RFC 1034 (section 3.6.1). Ce format a été utilisé à l’origine par le progiciel Berkeley Internet Name Domain (BIND), mais a été largement adopté par d’autres logiciels de serveur DNS – bien que certains d’entre eux (par exemple NSD, PowerDNS) n’utilisent les fichiers de zone que comme point de départ pour les compiler au format base de données, voir aussi Microsoft DNS avec intégration Active Directory-base de données.

Un fichier de zone est une séquence d’entrées orientées ligne, dont chacune est soit une directive, soit une description textuelle qui définit un seul enregistrement de ressource (RR). Une entrée est composée de champs séparés par n’importe quelle combinaison d’espaces blancs (tabulations et espaces), et se termine à la limite d’une ligne, sauf à l’intérieur d’une valeur de champ de type chaîne citée ou d’une paire de parenthèses de formatage englobantes. Toute ligne peut se terminer par un texte de commentaire précédé d’un point-virgule, et le fichier peut également contenir un nombre quelconque de lignes vides.

Les entrées peuvent apparaître dans n’importe quel ordre dans un fichier de zone, avec quelques exceptions.

Les directives sont des entrées de contrôle qui affectent le reste du fichier de zone. Le premier champ d’une directive est constitué d’un signe dollar suivi d’un mot-clé :

  • $ORIGIN est suivi d’un nom de domaine à utiliser comme origine pour les noms de domaine relatifs ultérieurs.
  • $INCLUDE est suivi d’un nom de fichier et d’un nom de domaine d’origine facultatif à utiliser lors de l’interprétation de son contenu (qui est traité comme s’il apparaissait dans le fichier parent, suivi d’une réinitialisation à la valeur d’origine précédant l’évaluation de la directive).
  • $TTL, définie dans le RFC 2308 (section 4), est suivie d’un nombre à utiliser comme TTL (time-to-live) par défaut.
  • $GENERATE, une extension non standard acceptée par BIND et certains autres logiciels de serveur de noms pour insérer plusieurs enregistrements de ressources avec une seule entrée, est suivie d’une représentation concise d’une séquence croissante de nombres non négatifs, puis d’une entrée RR modèle. Un enregistrement de ressources est ajouté pour chaque numéro de la séquence, en utilisant le modèle avec les caractères « $ » non encodés remplacés par le numéro.

Une entrée d’enregistrement de ressource se compose de plusieurs champs comme suit (les deux ordres de champs sont acceptables et peuvent être utilisés de manière interchangeable) :

name ttl record class record type record data
.

name record class ttl record type record data

Le champ name peut être laissé vide. Dans ce cas, l’enregistrement hérite du champ de l’enregistrement précédent. Un @ libre est utilisé pour indiquer l’origine actuelle.

Le champ ttl spécifie le nombre de secondes après lequel un client de mise en cache doit écarter l’enregistrement et effectuer une nouvelle opération de résolution pour obtenir des informations fraîches. Certains serveurs de noms, dont BIND, autorisent des représentations non standard qui utilisent des abréviations d’unités de temps (par exemple, « 2d » signifiant deux jours de 24 heures ou « 1h30m » signifiant une heure et 30 minutes). Il peut être omis, auquel cas la valeur résultante sera définie à partir du TTL par défaut (s’il est défini) ou de l’enregistrement précédent.

Le champ de classe d’enregistrement indique l’espace de nom des informations de l’enregistrement. Il peut être omis, auquel cas la valeur résultante sera définie à partir de l’enregistrement précédent. L’espace de noms le plus couramment utilisé est celui de l’Internet, indiqué par le paramètre IN, mais d’autres existent et sont utilisés, par exemple CHAOS.

Le champ type d’enregistrement est une abréviation pour le type d’information stocké dans le dernier champ, les données de l’enregistrement. Par exemple : un enregistrement d’adresse (type A pour IPv4, ou type AAAA pour IPv6,) fait correspondre le nom de domaine du premier champ à une adresse IP dans les données d’enregistrement ; un enregistrement d’échangeur de courrier (type MX) spécifie l’hôte de courrier SMTP (Simple Mail Transfer Protocol) pour un domaine.

Le champ de données d’enregistrement peut être constitué d’un ou plusieurs éléments d’information, selon les exigences de chaque type d’enregistrement. Par exemple, un enregistrement d’adresse ne nécessite qu’une adresse, tandis qu’un enregistrement d’échangeur de courrier nécessite une priorité et un nom de domaine. De tels éléments d’information sont représentés comme des champs séparés par des espaces blancs.

Exemple de fichierEdit

Un exemple de fichier de zone pour le domaine exemple.com est le suivant :

$ORIGIN example.com. ; designates the start of this zone file in the namespace$TTL 3600 ; default expiration time (in seconds) of all RRs without their own TTL valueexample.com. IN SOA ns.example.com. username.example.com. ( 2020091025 7200 3600 1209600 3600 )example.com. IN NS ns ; ns.example.com is a nameserver for example.comexample.com. IN NS ns.somewhere.example. ; ns.somewhere.example is a backup nameserver for example.comexample.com. IN MX 10 mail.example.com. ; mail.example.com is the mailserver for example.com@ IN MX 20 mail2.example.com. ; equivalent to above line, "@" represents zone origin@ IN MX 50 mail3 ; equivalent to above line, but using a relative host nameexample.com. IN A 192.0.2.1 ; IPv4 address for example.com IN AAAA 2001:db8:10::1 ; IPv6 address for example.comns IN A 192.0.2.2 ; IPv4 address for ns.example.com IN AAAA 2001:db8:10::2 ; IPv6 address for ns.example.comwww IN CNAME example.com. ; www.example.com is an alias for example.comwwwtest IN CNAME www ; wwwtest.example.com is another alias for www.example.commail IN A 192.0.2.3 ; IPv4 address for mail.example.commail2 IN A 192.0.2.4 ; IPv4 address for mail2.example.commail3 IN A 192.0.2.5 ; IPv4 address for mail3.example.com

Au minimum, le fichier de zone doit spécifier l’enregistrement Start of Authority (SOA) avec le nom du serveur de noms maître faisant autorité pour la zone et l’adresse électronique d’une personne responsable de la gestion du serveur de noms (représentée comme un nom de domaine, avec un caractère point à la place du symbole @ habituel). Les paramètres de l’enregistrement SOA spécifient également une liste de paramètres de temporisation et d’expiration (numéro de série, période de rafraîchissement de l’esclave, délai de réessai de l’esclave, délai d’expiration de l’esclave et durée maximale de mise en cache de l’enregistrement). Certains serveurs de noms, dont BIND, exigent également au moins un enregistrement NS supplémentaire.

Dans le fichier de zone, les noms de domaine qui se terminent par un caractère de point (comme « exemple.com. » dans l’exemple ci-dessus) sont entièrement qualifiés tandis que ceux qui ne se terminent pas par un point sont relatifs à l’origine actuelle (c’est pourquoi www dans l’exemple ci-dessus fait référence à www.example.com).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.