2 votes

bind : qu'est-ce que la grammaire SOA RR de Zonefile ?

Cela fait quelques jours que je fais de mon mieux pour comprendre correctement la documentation officielle de bind9 :
http://ftp.isc.org/isc/bind9/cur/9.7/doc/arm/Bv9ARM.html

Il existe de nombreux tutoriels sur bind9. Cependant, j'ai beaucoup de mal à concilier les solutions proposées avec la définition officielle d'un RR SOA que je peux trouver.

Entre autres, j'ai aussi vérifié :
http://en.wikipedia.org/wiki/Resource_record#DNS_resource_records
http://en.wikipedia.org/wiki/List_of_DNS_record_types
https://www.rfc-editor.org/rfc/rfc1035#page-12

Et malgré tout cela, je ne sais toujours pas quel est le format approprié pour un RR de SOA.

De nombreux didacticiels semblent proposer une syntaxe similaire à celle-ci :

example.com. 43200 IN SOA ns1.example.com. other.example.com. (
 2011090302 ;Serial Number
 86400 ;refresh
 7200 ;retry
 1814400 ;expire
 86400 ;minimum
 )

Je n'explique pas bien la présence des deux domaines avant l'ouverture de la parenthèse. Cependant, sans le second, named-checkzone se plaint.

Cependant, ce site en particulier :
http://forums.devshed.com/dns-36/bet-you-want-to-setup-a-dns-server-huh-141940.html
propose un fichier de zone avec un RR SOA comme ceci :

@   SOA ns1 (   ; ns1.basiczone.com is the primary server for basiczone.com
      postmaster  ; contact email for basiczone.com is postmaster@basiczone.com
      2004041700  ; Serial ID in reverse date format
      21600   ; Refresh interval for slave servers
      1800    ; Retry interval for slave servers
      604800    ; Expire limit for cached info on slave servers
      900 )   ; Minimum Cache TTL in zone records

Notez l'absence de la classe IN. De même, un seul domaine (ns1) est présent avant la parenthèse ouvrante.

La question principale est donc la suivante : quelle est la grammaire précise, officielle ou la plus recommandée pour un RR SOA ? Où cette grammaire est-elle le plus précisément définie ?

Enfin, quand utiliser un enregistrement SOA ? Si je comprends bien, j'ai besoin d'un enregistrement SOA pour tout domaine que je veux héberger et pour lequel je veux être un serveur de noms faisant autorité.

6voto

tomclegg Points 301

Le premier nom après le mot SOA est MNAME le serveur de noms qui fait autorité pour la zone -- par exemple, le nom de votre serveur de noms lui-même.

Le deuxième nom, RNAME ressemble à un nom de domaine mais n'en est pas un. C'est la chaîne que vous obtenez si vous remplacez le caractère "@" par "." dans l'adresse électronique de la personne responsable de la zone. (Espérons que votre adresse électronique ne comporte pas de "." avant le "@").

Pour ces deux noms (et d'autres dans les fichiers de zone), le nom de la zone lui-même est implicitement ajouté, sauf si le nom se termine par un point : foo signifie foo.example.com alors que foo. signifie foo . Une erreur courante consiste à écrire foo.example.com qui est publié dans le monde entier sous le nom de foo.example.com.example.com alors que vous auriez dû écrire foo.example.com. .

Les parenthèses vous permettent d'écrire un enregistrement de ressources qui s'étend sur plusieurs lignes dans votre fichier texte. L'un des exemples que vous avez fournis place la parenthèse ouvrante entre les champs MNAME et le RNAME tandis que l'autre le place après le RNAME mais il n'y a pas de différence fonctionnelle.

"IN" spécifie la classe "internet", qui est la classe par défaut, vous pouvez donc la laisser de côté.

Grammaire recommandée : suivre les exemple de wikipédia et utiliser un outil comme dig o dnsq pour montrer ce que votre serveur de noms dit réellement au monde, au lieu de passer trop d'efforts à deviner comment bind analyse votre fichier de zone.

Grammaire précise : code source de BIND. (Seulement si vous essayez vraiment d'être pédant -- pas nécessaire si vous essayez juste de faire fonctionner votre fichier de zone).

Grammaire officielle (ou au moins l'équivalent internet d'officiel) :

Chaque zone doit avoir un SOA. Si vous servez cette zone ("faisant autorité" ou non), vous devez avoir un SOA ainsi que tous les autres enregistrements de la zone. En pratique, si vous écrivez un fichier de zone, mettez-y un SOA - et si vous copiez le fichier de zone entier de quelqu'un d'autre, vous obtiendrez le SOA de cette façon, donc vous n'avez pas besoin de vous en soucier.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X