Page suivantePage pr�c�denteTable des mati�res

4. Un domaine simple

Comment mettre en place votre propre domaine

4.1 Mais avant tout, un brin de th�orie

Avant d'entrer vraiment dans le vif du sujet, il va falloir que je fasse un brin de th�orie avec quand m�me un petit exemple sur le principe du service DNS. Et il faudra tout lire, car c'est pour votre bien. Vous devriez au moins survoler rapidement cette section. Arr�tez le survol quand vous arrivez � l'endroit o� j'explique le contenu du fichier named.conf.

Le service DNS est un syst�me organis� de mani�re hi�rarchique, sous forme d'arbre. La racine est d�sign�e par ``.'' et s'appelle ``la racine''. En dessous de . se trouvent un certain nombre de TLD (Top Level Domains); les plus connus sont ORG, COM, EDU, NET et FR, mais il y en a beaucoup d'autres. Tout comme un arbre, il a une racine avec des branches qui en partent. Si vous avez des connaissances en informatique fondamentale, vous reconna�trez dans le DNS un arbre de recherche, avec des noeuds, des arr�tes et des feuilles.

Lorsque vous recherchez une machine, la question est pos�e r�cursivement dans toute la hi�rarchie depuis la racine. Lorsque vous voulez trouver l'adresse IP de prep.ai.mit.edu, votre DNS doit trouver un serveur de noms pour le domaine edu. Votre DNS demande d'abord � un serveur de noms de . (il poss�de d�j� les adresses des serveurs pour ., elles sont dans le fichier root.hints), et le serveur pour . donne une liste des serveurs d'edu.

Voici un exemple :

$ nslookup
Default Server: localhost
Address: 127.0.0.1

Interrogeons un serveur situ� � la racine.

> server c.root-servers.net.
Default Server: c.root-servers.net
Address: 192.33.4.12

Positionnons le type de requ�te (Query Type) � NS (Name Server records).

> set q=ns

Posons la question � propos de edu.

> edu.

Le . terminal est significatif, il indique � nslookup que nous interrogeons que edu se trouve juste sous . (et pas dans l'un de nos sous-domaines, ce qui acc�l�re la recherche).

edu     nameserver = A.ROOT-SERVERS.NET
edu     nameserver = H.ROOT-SERVERS.NET
edu     nameserver = B.ROOT-SERVERS.NET
edu     nameserver = C.ROOT-SERVERS.NET
edu     nameserver = D.ROOT-SERVERS.NET
edu     nameserver = E.ROOT-SERVERS.NET
edu     nameserver = I.ROOT-SERVERS.NET
edu     nameserver = F.ROOT-SERVERS.NET
edu     nameserver = G.ROOT-SERVERS.NET
A.ROOT-SERVERS.NET      internet address = 198.41.0.4
H.ROOT-SERVERS.NET      internet address = 128.63.2.53
B.ROOT-SERVERS.NET      internet address = 128.9.0.107
C.ROOT-SERVERS.NET      internet address = 192.33.4.12
D.ROOT-SERVERS.NET      internet address = 128.8.10.90
E.ROOT-SERVERS.NET      internet address = 192.203.230.10
I.ROOT-SERVERS.NET      internet address = 192.36.148.17
F.ROOT-SERVERS.NET      internet address = 192.5.5.241
G.ROOT-SERVERS.NET      internet address = 192.112.36.4

Nous apprenons ainsi que tous les serveurs ROOT-SERVERS.NET servent le domaine edu.; nous pouvons donc continuer en les interrogeant tous. Nous continuerons en interrogeant C. Maintenant, nous voulons savoir qui sert le niveau suivant du nom de domaine : mit.edu. :

> mit.edu.
Server:  c.root-servers.net
Address:  192.33.4.12
Non-authoritative answer:
mit.edu nameserver = STRAWB.mit.edu
mit.edu nameserver = W20NS.mit.edu
mit.edu nameserver = BITSY.mit.edu
Authoritative answers can be found from:
STRAWB.mit.edu  internet address = 18.71.0.151
W20NS.mit.edu   internet address = 18.70.0.160
BITSY.mit.edu   internet address = 18.72.0.3

strawb, w20ns et bitsy servent tous le domaine mit, prenons-en un au hasard et posons-lui la question au sujet d'un domaine encore plus pr�cis : ai.mit.edu :

> server W20NS.mit.edu.

On ne distingue pas majuscules et minuscules pour les noms de domaine, et comme j'utilise ma souris pour faire du copier-coller, vous lisez les choses dans ce document telles qu'elles apparaissent sur mon �cran.

Server:  W20NS.mit.edu
Address:  18.70.0.160> ai.mit.edu.
Server:  W20NS.mit.edu
Address:  18.70.0.160
Non-authoritative answer:
ai.mit.edu      nameserver = ALPHA-BITS.AI.MIT.EDU
ai.mit.edu      nameserver = GRAPE-NUTS.AI.MIT.EDU
ai.mit.edu      nameserver = TRIX.AI.MIT.EDU
ai.mit.edu      nameserver = MUESLI.AI.MIT.EDU
ai.mit.edu      nameserver = LIFE.AI.MIT.EDU
ai.mit.edu      nameserver = BEET-CHEX.AI.MIT.EDU
ai.mit.edu      nameserver = MINI-WHEATS.AI.MIT.EDU
ai.mit.edu      nameserver = COUNT-CHOCULA.AI.MIT.EDU
ai.mit.edu      nameserver = MINTAKA.LCS.MIT.EDU
Authoritative answers can be found from:
AI.MIT.EDU      nameserver = ALPHA-BITS.AI.MIT.EDU
AI.MIT.EDU      nameserver = GRAPE-NUTS.AI.MIT.EDU
AI.MIT.EDU      nameserver = TRIX.AI.MIT.EDU
AI.MIT.EDU      nameserver = MUESLI.AI.MIT.EDU
AI.MIT.EDU      nameserver = LIFE.AI.MIT.EDU
AI.MIT.EDU      nameserver = BEET-CHEX.AI.MIT.EDU
AI.MIT.EDU      nameserver = MINI-WHEATS.AI.MIT.EDU
AI.MIT.EDU      nameserver = COUNT-CHOCULA.AI.MIT.EDU
AI.MIT.EDU      nameserver = MINTAKA.LCS.MIT.EDU
ALPHA-BITS.AI.MIT.EDU   internet address = 128.52.32.5
GRAPE-NUTS.AI.MIT.EDU   internet address = 128.52.36.4
TRIX.AI.MIT.EDU internet address = 128.52.37.6
MUESLI.AI.MIT.EDU       internet address = 128.52.39.7
LIFE.AI.MIT.EDU internet address = 128.52.32.80
BEET-CHEX.AI.MIT.EDU    internet address = 128.52.32.22
MINI-WHEATS.AI.MIT.EDU  internet address = 128.52.54.11
COUNT-CHOCULA.AI.MIT.EDU        internet address = 128.52.38.22
MINTAKA.LCS.MIT.EDU     internet address = 18.26.0.36

Ainsi, muesli.ai.mit.edu est un serveur de noms pour le domaine ai.mit.edu :

> server MUESLI.AI.MIT.EDU
Default Server:  MUESLI.AI.MIT.EDU
Address:  128.52.39.7

Changeons le type de requ�te. Nous avons r�ussi � trouver le serveur de noms, nous allons maintenant demander tout ce que muesli sait sur le domaine prep.ai.mit.edu.

> set q=any> prep.ai.mit.edu.
Server:  MUESLI.AI.MIT.EDU
Address:  128.52.39.7
prep.ai.mit.edu CPU = dec/decstation-5000.25    OS = unix
prep.ai.mit.edu
 inet address = 18.159.0.42, protocol = tcp
 ftp  telnet  smtp  finger
prep.ai.mit.edu preference = 1, mail exchanger = gnu-life.ai.mit.edu
prep.ai.mit.edu internet address = 18.159.0.42
ai.mit.edu      nameserver = beet-chex.ai.mit.edu
ai.mit.edu      nameserver = alpha-bits.ai.mit.edu
ai.mit.edu      nameserver = mini-wheats.ai.mit.edu
ai.mit.edu      nameserver = trix.ai.mit.edu
ai.mit.edu      nameserver = muesli.ai.mit.edu
ai.mit.edu      nameserver = count-chocula.ai.mit.edu
ai.mit.edu      nameserver = mintaka.lcs.mit.edu
ai.mit.edu      nameserver = life.ai.mit.edu
gnu-life.ai.mit.edu     internet address = 128.52.32.60
beet-chex.ai.mit.edu    internet address = 128.52.32.22
alpha-bits.ai.mit.edu   internet address = 128.52.32.5
mini-wheats.ai.mit.edu  internet address = 128.52.54.11
trix.ai.mit.edu internet address = 128.52.37.6
muesli.ai.mit.edu       internet address = 128.52.39.7
count-chocula.ai.mit.edu        internet address = 128.52.38.22
mintaka.lcs.mit.edu     internet address = 18.26.0.36
life.ai.mit.edu internet address = 128.52.32.80

En commen�ant � partir de ., nous avons successivement trouv� les serveurs de noms des diff�rents niveaux du nom de domaine. Si vous aviez utilis� votre propre serveur DNS � la place de tous ces autres serveurs, votre named aurait, bien s�r, cach� toutes ces informations et il n'aurait plus eu besoin de les redemander pendant un certain temps.

Si l'on revient a l'analogie avec les arbres, chaque ``.'' dans le nom est un embranchement. Et chaque nom entre deux . est une branche de l'arbre.

Grimpons ensemble dans l'arbre en prenant le nom que nous voulons (prep.ai.mit.edu). On part de la racine (.), on regarde ensuite dans quelle branche grimper, dans notre cas, edu. D�s qu'on l'a trouv�e, on y grimpe en passant par le serveur qui conna�t cette partie du nom. Ensuite, assis sur la branche edu, on cherche la branche mit (le nom combin� est mit.edu), puis la branche ai.mit.edu. Maintenant, on est sur le bon serveur, au bon embranchement. La derni�re partie est de trouver prep.ai.mit.edu, ce qui est tr�s simple. En informatique fondamentale, on appelle prep une feuille de l'arbre.

Un domaine dont on parle beaucoup moins, mais qui n'en est pas moins important, est in-addr.arpa. Ce domaine trouve sa place dans la hi�rarchie des noms de domaine comme un domaine ``normal''. in-addr.arpa nous sert � obtenir le nom d'h�te connaissant l'adresse IP d'une machine. Une chose tr�s importante ici est de bien remarquer que les adresses IP sont not�es en sens inverse � l'int�rieur du domaine in-addr.arpa. Si vous avez l'adresse d'une machine : 192.128.52.43, named proc�de exactement comme dans l'exemple de prep.ai.mit.edu : il trouve les serveurs pour in-addr.arpa., trouve les serveurs pour 192.in-addr.arpa., trouve les serveurs pour 128.192.in-addr.arpa., et finalement trouve les serveurs pour 52.128.192.in-addr.arpa. . On obtient bien ainsi l'information li�e � 43.52.128.192.in-addr.arpa. Malin, n'est ce pas ? (dites oui). En fait, la r�solution de noms inverse est assez difficile � admettre les premi�res ann�es.

� vrai dire, je vous ai menti. Le service DNS ne marche pas vraiment comme �a. Mais ce que je vous ai dit est suffisamment proche de la r�alit�.

4.2 Notre propre domaine

Maintenant, nous en sommes � d�finir notre propre domaine bien � nous. Nous allons cr�er le domaine linux.bogus et y d�clarer quelques machines. C'est un nom de domaine totalement factice, afin d'�tre s�r de ne d�ranger personne dans le Vaste Monde.

Encore une chose avant de commencer. Tous les caract�res ne sont pas admis dans les noms de machines. On ne doit utiliser que les caract�res de l'alphabet anglais (a-z), les nombres (0-9) et le tiret ``-''. Utilisez ces caract�res, majuscules et minuscules sont confondues, donc pat.uio.no est identique � Pat.UiO.No.

En fait, nous avons d�j� commenc� � cr�er notre propre domaine avec cette ligne dans named.conf:


zone "0.0.127.in-addr.arpa" {
 type master;
 file "pz/127.0.0";
};

Notez bien l'absence de ``.'' � la fin des noms de domaine de ce fichier. Elle signifie que nous allons d�finir la zone 0.0.127.in-addr.arpa, que nous sommes son serveur principal et que tout est stock� dans un fichier appel� pz/127.0.0. On a d�j� vu ce fichier, il se pr�sente comme ceci :


@               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
 1       ; Serial
 8H      ; Refresh
 2H      ; Retry
 1W      ; Expire
 1D)     ; Minimum TTL
 NS      ns.linux.bogus.
1                       PTR     localhost.

Notez bien le ``.'' � la fin de tous les noms de domaine complets de ce fichier, contrairement au fichier named.boot. Certaines personnes aiment commencer chaque fichier d�finissant une zone par une directive $ORIGIN, mais en fait c'est superflu. L'origine (l'emplacement dans la hi�rarchie du service DNS) d'un fichier de zone est indiqu�e dans la zone section du fichier named.conf. Dans notre cas, c'est 0.0.127.in-addr.arpa.

Ce ``fichier de zone'' (``zone file''), contient 3 ``resource records'' (RRs) : un SOA RR, un NS RR et un PTR RR. SOA est l'abr�viation de ``Start Of Authority'' (Origine de l'Autorit�). Le ``@'' est une notation sp�ciale qui d�signe l'origine. Et comme la colonne ``domain'' de ce fichier donne 0.0.127.in-addr.arpa, la premi�re ligne signifie donc :

0.0.127.IN-ADDR.ARPA. IN SOA ...

NS est le ``resource records'' pour le serveur de noms (NS = Name Server), Il n'y a pas de @ au d�but de la ligne, il est implicite, puisque la ligne d'avant commence avec un ``@''. Alors, faites-vous une fleur en omettant ce caract�re. Donc, la ligne NS peut aussi s'�crire comme suit :

0.0.127.in-addr.arpa.   IN      NS      ns.linux.bogus

Elle dit au service DNS quelle machine est le serveur de noms pour le domaine 0.0.127.in-addr.arpa, c'est ns.linux.bogus. ns est le nom habituel des serveurs de noms, tout comme www. pour les serveurs Web, mais c'est simplement une habitude, on peut choisir n'importe quel nom.

Et finalement le PTR dit que l'adresse 1 dans le sous r�seau 0.0.127.in-addr.arpa, donc 127.0.0.1 est appel� localhost.

Le champ SOA est le pr�ambule de tous les fichiers de zone, et il doit y en avoir exactement un dans chaque fichier de zone. Ce champ SOA d�crit la zone, son origine (une machine appel�e ns.linux.bogus), qui est responsable de son contenu (hostmaster@linux.bogus, vous devriez mettre votre adresse email � cet endroit), de quelle version du fichier de zone il s'agit (serial : 1), et quelques autres param�tres pour le cache et les serveurs DNS secondaires. Quant aux champs restants (refresh, retry, expire et minimum) utilisez les valeurs donn�es dans ce HOWTO et tout se passera certainement tr�s bien.

Maintenant, relancez votre named (avec la commande ndc restart) et utilisez nslookup pour regarder le r�sultat :

$ nslookup
Default Server:  localhost
Address:  127.0.0.1> 127.0.0.1
Server:  localhost
Address:  127.0.0.1
Name:    localhost
Address:  127.0.0.1

Tout va bien, on arrive � obtenir localhost � partir de 127.0.0.1. Maintenant, pour le sujet qui nous pr�occupe, le domaine linux.bogus, ins�rez une nouvelle zone dans le fichier named.conf :


zone "linux.bogus" {
 notify no;
 type master;
 file "pz/linux.bogus";
};

Notez qu'encore une fois il n'y a pas de ``.'' � la fin des noms de domaine dans le fichier named.conf.

Dans le fichier de zone linux.bogus, nous allons mettre quelques donn�es totalement factices :


;
; Zone file for linux.bogus
;
; The full zone file
;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
 199802151       ; serial, todays date + todays serial #
 8H              ; refresh, seconds
 2H              ; retry, seconds
 1W              ; expire, seconds
 1D )            ; minimum, seconds
;
 NS      ns              ; Inet Address of name server
 MX      10 mail.linux.bogus     ; Primary Mail Exchanger
 MX      20 mail.friend.bogus.   ; Secondary Mail Exchanger
;
localhost       A       127.0.0.1
ns              A       192.168.196.2
mail            A       192.168.196.4

Il y a deux choses � noter � propos du champ SOA. ns.linux.bogusdoit absolument �tre une vraie machine poss�dant un champ A. Il n'est pas l�gal d'avoir un champ CNAME pour la machine mentionn�e dans le champ SOA. Il n'est pas n�cessaire que son nom soit ``ns'', ce peut �tre tout autre nom valide. La deuxi�me chose � noter c'est que hostmaster.linux.bogus doit se lire comme hostmaster@linux.bogus. Ce doit �tre un alias de mail, ou une v�ritable bo�te aux lettres �lectronique, et la personne qui maintient le DNS doit la lire r�guli�rement. Tous les mails concernant l'administration du domaine seront envoy�s � cette adresse. Il n'est pas obligatoire que le nom soit ``hostmaster'', vous pouvez mettre votre adresse e-mail personnelle, mais il serait bon que l'adresse ``hostmaster'' fonctionne aussi.

Il y a un nouveau RR (Resource Record) dans ce fichier, c'est le MX, pour Mail eXchanger. Il indique aux syst�mes de gestion du courrier �lectronique � quelle machine envoyer le mail adress� � someone@linux.bogus, dans notre cas � mail.linux.bogus ou mail.friend.bogus. Le nombre devant chaque machine est sa priorit� vis-�-vis du champ MX, le RR avec le num�ro le plus faible (10) correspond � la machine � laquelle le courrier doit �tre adress� en priorit�. En cas d'�chec, il peut �tre adress� � la machine qui a le num�ro de priorit� imm�diatement sup�rieur, c'est-�-dire mail.friend.bogus qui a une priorit� de 20 dans notre cas.

Relancez named en tapant ndc restart. Examinons le r�sultat avec nslookup :

$ nslookup> set q=any> linux.bogus
Server:  localhost
Address:  127.0.0.1
linux.bogus
 origin = ns.linux.bogus
 mail addr = hostmaster.linux.bogus
 serial = 199802151
 refresh = 28800 (8 hours)
 retry   = 7200 (2 hours)
 expire  = 604800 (7 days)
 minimum ttl = 86400 (1 day)
linux.bogus     nameserver = ns.linux.bogus
linux.bogus     preference = 10, mail exchanger = mail.linux.bogus.linux.bogus
linux.bogus     preference = 20, mail exchanger = mail.friend.bogus
linux.bogus     nameserver = ns.linux.bogus
ns.linux.bogus  internet address = 192.168.196.2
mail.linux.bogus        internet address = 192.168.196.4

Un examen approfondi vous montrera qu'il y a un bug. En effet, la ligne

 linux.bogus preference = 10, mail exchanger = mail.linux.bogus.linux.bogus

est enti�rement fausse. Il devrait y avoir

 linux.bogus preference = 10, mail exchanger = mail.linux.bogus

J'ai fait cette erreur d�lib�r�ment, pour voir si vous suiviez :-) En regardant dans le fichier de zone, nous trouvons que dans la ligne

@ MX 10 mail.linux.bogus ; Primary Mail Exchanger

il manque un point. Ou il y a un ``linux.bogus'' de trop. Si, dans un fichier de zone, un nom de machine ne se termine pas par un point, l'origine est ajout�e au nom de la machine. Ainsi, une des deux formes :


 MX      10 mail.linux.bogus.    ; Primary Mail Exchanger

ou


 MX      10 mail                 ; Primary Mail Exchanger

est correcte. Je pr�f�re la deuxi�me forme parce qu'il y a moins de caract�res � taper. Certains approuveront, d'autres non. Dans un fichier de zone, le nom de domaine doit ou bien �tre �crit et termin� par un point, ou bien ne pas �tre inclus du tout. Dans le dernier cas, le nom de domaine par d�faut est l'origine.

Il faut que j'insiste sur le point suivant : dans le fichier named.conf, il ne doit pas y avoir de ``.'' apr�s les noms de domaines. Vous ne pouvez pas vous imaginer les ravages qui ont �t� caus�s pas des ``.'' en trop ou en moins.

Cela �tant dit, voici le nouveau fichier de zone, avec quelques informations suppl�mentaires :


;
; Zone file for linux.bogus
;
; The full zone file
;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
 199802151       ; serial, todays date + todays serial #
 8H              ; refresh, seconds
 2H              ; retry, seconds
 1W              ; expire, seconds
 1D )            ; minimum, seconds
;
 TXT     "Linux.Bogus, your DNS consultants"
 NS      ns              ; Inet Address of name server
 NS      ns.friend.bogus.
 MX      10 mail         ; Primary Mail Exchanger
 MX      20 mail.friend.bogus. ; Secondary Mail Exchanger
localhost       A       127.0.0.1
gw              A       192.168.196.1
 HINFO   "Cisco" "IOS"
 TXT     "The router"
ns              A       192.168.196.2
 MX      10 mail
 MX      20 mail.friend.bogus.
 HINFO   "Pentium" "Linux 2.0"
www             CNAME   ns
donald          A       192.168.196.3
 MX      10 mail
 MX      20 mail.friend.bogus.
 HINFO   "i486"  "Linux 2.0"
 TXT     "DEK"
mail            A       192.168.196.4
 MX      10 mail
 MX      20 mail.friend.bogus.
 HINFO   "386sx" "Linux 1.2"
ftp             A       192.168.196.5
 MX      10 mail
 MX      20 mail.friend.bogus.
 HINFO   "P6" "Linux 2.1.86"

Il y a un certain nombre de nouveaux RR que nous allons passer en revue : HINFO (Host INFOrmation), qui est en deux parties, et c'est une bonne habitude � prendre que d'encadrer chacune de guillemets. La premi�re partie est la description mat�rielle ou le type de processeur de la machine tandis que la deuxi�me partie d�crit le logiciel utilis� ou le syst�me d'exploitation de la machine. ns a pour processeur un Pentium et tourne sous Linux 2.0. Le champ CNAME (Canonical NAME) sert � donner plusieurs noms � la m�me machine. Par cons�quent, www est un alias de ns.

L'utilisation des champs CNAME est assez controvers�e. Mais il est sage de suivre la r�gle selon laquelle un champ MX, CNAME ou SOA ne doit jamais se r�f�rer � un champ CNAME, toujours se r�f�rer � un champ A, il est donc pr�f�rable de ne pas avoir :


foobar          CNAME   www                     ; NON !

En revanche, ceci est correct :


foobar          CNAME   ns                      ; Oui !

Il est aussi important de noter qu'un CNAME n'est pas un nom d'h�te l�gal pour une adresse de courrier �lectronique. webmaster@www.linux.bogus est une adresse de mail ill�gale avec la configuration ci-dessus. Vous pouvez �tre s�rs qu'il y a un certain nombre d'administrateurs syst�me dans le Vaste Monde qui sont tr�s � cheval sur cette r�gle, m�me si avec un CNAME �a marche pour vous. Une fa�on de contourner le probl�me est d'utiliser des champs A (et peut-�tre d'autres, comme un champ MX par exemple) � la place :


www             A       192.168.196.2

Un certain nombre de gourous-du-bind recommandent de ne pas utiliser de CNAME. Mais les discussions sur le pour et le contre sortent du cadre de ce HOWTO.

Mais comme vous le voyez, ce HowTo ainsi que beaucoup de serveurs ne suivent pas cette r�gle.

Chargez la nouvelle base de donn�es en lan�ant ndc reload, ce qui forcera named � relire ses fichiers de configuration.

$ nslookup
Default Server:  localhost
Address:  127.0.0.1> ls -d linux.bogus

Ceci veut dire que l'on souhaite que tous les champs soient affich�s.

[localhost]
$ORIGIN linux.bogus.
@                       1D IN SOA       ns hostmaster (
 199802151       ; serial
 8H              ; refresh
 2H              ; retry
 1W              ; expiry
 1D )            ; minimum
 1D IN NS        ns
 1D IN NS        ns.friend.bogus.
 1D IN TXT       "Linux.Bogus, your DNS consultants"
 1D IN MX        10 mail
 1D IN MX        20 mail.friend.bogus.
gw                      1D IN A         192.168.196.1
 1D IN HINFO     "Cisco" "IOS"
 1D IN TXT       "The router"
mail                    1D IN A         192.168.196.4
 1D IN MX        10 mail
 1D IN MX        20 mail.friend.bogus.
 1D IN HINFO     "386sx" "Linux 1.0.9"
localhost               1D IN A         127.0.0.1
www                     1D IN CNAME     ns
donald                  1D IN A         192.168.196.3
 1D IN MX        10 mail
 1D IN MX        20 mail.friend.bogus.
 1D IN HINFO     "i486" "Linux 1.2"
 1D IN TXT       "DEK"
ftp                     1D IN A         192.168.196.5
 1D IN MX        10 mail
 1D IN MX        20 mail.friend.bogus.
 1D IN HINFO     "P6" "Linux 1.3.59"
ns                      1D IN A         192.168.196.2
 1D IN MX        10 mail
 1D IN MX        20 mail.friend.bogus.
 1D IN HINFO     "Pentium" "Linux 1.2"

Tout va bien. Regardons ce qu'il dit pour www tout seul :

> set q=any> www.linux.bogus.
Server:  localhost
Address:  127.0.0.1
www.linux.bogus canonical name = ns.linux.bogus
linux.bogus     nameserver = ns.linux.bogus
linux.bogus     nameserver = ns.friend.bogus
ns.linux.bogus  internet address = 192.168.196.2

En d'autres termes, le vrai nom de www.linux.bogus est ns.linux.bogus, et vous avez en plus quelques informations � propos de ns, en fait, suffisamment pour vous y connecter si vous �tiez un programme.

Bon, on a fait la moiti� du boulot.

4.3 La zone invers�e

�a y est, les programmes peuvent convertir les noms de linux.bogus en adresses auxquelles ils peuvent se connecter. Maintenant, on a besoin d'une zone invers�e pour que l'on puisse retrouver le DNS � partir de l'adresse. Ce nom est utilis� par diff�rents types de serveurs (FTP, IRC, WWW et autres) pour d�cider s'ils vont discuter avec vous ou non, et s'ils le font, quelle priorit� ils vont vous donner. Pour un acc�s complet aux services sur Internet, la zone invers�e est indispensable.

Mettez �a dans votre named.conf


zone "196.168.192.in-addr.arpa" {
 notify no;
 type master;
 file "pz/192.168.196";
};

C'est exactement comme pour le 0.0.127.in-addr.arpa et le contenu est similaire :


@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
 199802151 ; Serial, todays date + todays serial
 8H      ; Refresh
 2H      ; Retry
 1W      ; Expire
 1D)     ; Minimum TTL
 NS      ns.linux.bogus.
1               PTR     gw.linux.bogus.
2               PTR     ns.linux.bogus.
3               PTR     donald.linux.bogus.
4               PTR     mail.linux.bogus.
5               PTR     ftp.linux.bogus.

Red�marrez votre named (ndc restart) et examinez votre travail avec nslookup :


> 192.168.196.4
Server:  localhost
Address:  127.0.0.1
Name:    mail.linux.bogus
Address:  192.168.196.4

On dirait que c'est bon, on va regarder en d�tails pour s'en assurer :


> ls -d 196.168.192.in-addr.arpa
[localhost]
$ORIGIN 196.168.192.in-addr.arpa.
@                       1D IN SOA       ns.linux.bogus. hostmaster.linux.bogus. (
 199802151       ; serial
 8H              ; refresh
 2H              ; retry
 1W              ; expiry
 1D )            ; minimum
 1D IN NS        ns.linux.bogus.
1                       1D IN PTR       gw.linux.bogus.
2                       1D IN PTR       ns.linux.bogus.
3                       1D IN PTR       donald.linux.bogus.
4                       1D IN PTR       mail.linux.bogus.
5                       1D IN PTR       ftp.linux.bogus.
@                       1D IN SOA       ns.linux.bogus. hostmaster.linux.bogus. (
 199802151       ; serial
 8H              ; refresh
 2H              ; retry
 1W              ; expiry
 1D )            ; minimum

Pas mal ! Si ce que vous donne nslookup ne ressemble pas a �a, allez a la p�che aux messages d'erreur dans votre syslog. J'ai expliqu� comment faire au tout d�but du chapitre.

4.4 Pr�cautions d'usage

Je devrais maintenant faire quelques remarques. Les adresses IP utilis�es dans les exemples pr�c�dents sont prises dans le bloc des ``r�seaux priv�s'', c'est � dire des adresses qui ne doivent pas �tre utilis�es publiquement sur Internet. Donc, il est sage de les avoir utilis�es dans un exemple d'un HowTo. La deuxi�me chose est la ligne notify no;. Elle demande � named de ne pas informer ses serveur secondaires (les esclaves) quand l'un de ses fichiers de zone a �t� mis � jour. Depuis Bind-8 named peut informer les autres serveurs list�s dans ses champs NS dans le fichier zone, quand une zone est mise a jour. C'est pratique pour une utilisation normale, mais pour des exp�riences priv�es cette fonctionnalit� doit �tre mise hors service, on ne va quand m�me pas polluer Internet avec nos exp�riences, non ?

Bien s�r, ce domaine est tr�s factice, tout comme le sont ses adresses. C'est peut-�tre un peu d�routant pour vous. Un vrai exemple tir� d'un vrai domaine vous attend au grand chapitre suivant.

4.5 Pourquoi est-ce que les lookup invers�s ne marchent pas ?

Il y a quelques trucs qui sont normalement �vit�s avec les lookups qui arrivent souvent quand on met en place des zones invers�s. Avant de continuer, vous avez besoin d'avoir des lookups qui marchent sur vos propres serveurs de noms. Si ce n'est pas le cas, revenez en arri�re et r�parez-le avant de continuer.

Je parlerais des deux probl�mes de lookups invers�s qui sont vu de l'ext�rieur de votre r�seau :

La zone inverse n'est pas d�l�gu�e.

Quand vous demandez � un fournisseur d'acc�s quelques adresses IP ainsi qu'un nom de domaine, le nom de domaine vous est normalement d�l�gu�. La d�l�gation consiste en un champ NS qui vous aide a passer d'un serveur � l'autre comme je l'ai expliqu� dans le brin de th�orie qui pr�c�de. Vous l'avez lu, n'est-ce pas ? Si votre zone invers�e ne marche pas, retournez y et lisez-le. Maintenant.

La zone invers�e a elle aussi besoin d'�tre d�l�gu�e. Si vous avez le r�seau 192.168.196 avec le domaine linux.bogus de votre fournisseur, il devra mettre des champs NS pour votre zone invers�e aussi bien que pour votre zone directe. Si vous remontez la cha�ne � partir de in-addr.arpa vous trouverez un trou quelque part. Tr�s certainement au niveau de votre fournisseur. Apr�s avoir trouv� le trou dans la cha�ne, contactez votre fournisseur et demandez-lui de corriger l'erreur.

Vous avez un sous-r�seau sans classe

C'est un sujet plut�t pointu, mais les sous r�seaux sans classe sont tr�s r�pandus de nos jours et vous en aurez tr�s certainement un si vous n'�tes pas une entreprise assez grande.

Un sous-r�seau sans classe est ce qui sauve Internet de nos jours. Il y a quelques ann�es, il y avait vraiment beaucoup de discussions sur la rar�faction des adresses IP. Les personnes intelligentes de l'IETF (Internet Engineering Task Force, ceux qui maintiennent Internet en �tat de marche) se sont pench�es sur cet �pineux probl�me et ont trouv� une solution. A un certain prix. Le prix est que vous aurez moins qu'un sous r�seau de classe ``C'' et que certaines choses ne marcheront certainement plus. Allez voir Ask Mr DNS (c'est en anglais) pour plus d'explications.

Vous l'avez lu ? Comme je ne vais pas l'expliquer, s'il vous pla�t, allez le lire.

La premi�re partie du probl�me est que votre FAI doit comprendre la technique d�crite par Mr DNS. Tous les petits FAI ne le comprennent pas. S'ils n'ont pas bien compris, vous allez avoir � leur expliquer et � insister. Mais assurez-vous de comprendre vous-m�me en premier lieu ;-). Ils mettrons ensuite une jolie zone invers�e sur leurs serveurs que vous pourrez examiner pour savoir si elle est correcte avec nslookup.

La deuxi�me et derni�re partie du probl�me est que vous devez en comprendre la technique. Si vous n'�tes pas certain, revenez en arri�re et relisez ce document. Ensuite, vous pourrez mettre en place une zone invers�e sans classe comme le d�crit Mr DNS.

Il y a une autre difficult� qui pointe son nez ici. Les vieux r�solveurs ne seront pas capable de suivre les champs CNAME dans la cha�ne de r�solution et n'arriveront pas a r�soudre l'IP de votre machine. Cela peut entra�ner l'assignation d'une mauvaise classe, la non-r�solution ou quelque chose dans ce go�t-l�. Si vous butez sur ce genre de probl�me, la seule solution (que je connaisse) est de demander � votre FAI d'ins�rer vos champs PTR dans ses fichiers de zone sans classe plut�t que des champs CNAME.

Certains FAI vous proposeront d'autre m�thodes pour g�rer cela, comme des formulaires web o� vous pourrez entrer vos zones invers�es, ou d'autre syst�mes automatis�s.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:34