このページは大阪弁化フィルタによって翻訳生成されたんですわ。

翻訳前ページへ


re輟is beaucoup de courrier 駘ectronique. Essayez aussi de lire le chapitre FAQ avant de m'envoyer un mail. Autre chose je (l'auteur) ne parle qu'anglais et norv馮ien.

Si vous ne parlez ni l'anglais ni le norv馮ien, vous pouvez toujours

2. Introduction.

Ce que ce document est et ce qu'il n'est pas

Le DNS est le Domain Name System. C'est l'ensemble des r鑒les utilis馥s par les machines et les logiciels pour 騁ablir, entre autres choses, parties les plus obscures de l'administration de r駸eau. Le but de ce HOWTO est d'essayer d'en 馗laircir quelques aspects. Ce document explique comment configurer un DNS simple. Nous allons commencer avec un serveur de noms n'y trouvez pas ce que vous cherchez, vous allez alors devoir lire la Vraie Documentation. Je reviendrai sur ce en quoi consiste la Vraie Documentation dans le chapitre final.

Avant de commencer, vous devez configurer votre machine pour 黎re capable de vous connecter par telnet sur d'autres machines mais aussi pouvoir recevoir des connexions sur votre machine. Vous devez aussi 黎re en mesure de vous connecter au r駸eau par tous les services possibles, et en particulier pouvoir fonctionne. Lisez le PPP HOWTO si ce n'est pas le cas.

Quand je dis ``votre machine'', j'entends la machine sur laquelle vous aller essayer d'installer le DNS, et non pas une autre machine dont vous pourriez vous servir pour acc馘er au r駸eau.

Je supposerai par la suite que vous ne vous trouvez pas derri鑽e un firewall qui bloque les requ黎es de r駸olution de nom. Si tel est le cas, vous aurez besoin d'une configuration sp馗iale. Reportez-vous alors au chapitre FAQ.

d'un site FTP Linux ou allez chercher la derni鑽e et meilleure version des sources du programme depuis ftp.isc.org/isc/bind/src/cur/bind-8/. Ce HowTo parle de bind version qu'il vous offrira le meilleur de lui-m麥e. Apprenez a l'utiliser, l'administrer, le d饕ogger et vous ferez partie de ces administrateurs qui emp鹹hent que le r駸eau ne s'馗roule sous le poids des syst鑪es mal g駻駸.

3. Un Serveur de Noms qui ne sert que de cache.

Un premier aper輹 de la configuration d'un DNS, tr鑚 utile pour ceux qui utilisent une connexion en dialup.

Un serveur de noms qui ne sert que de cache trouve la r駱onse aux requ黎es de r駸olution de nom et se souvient de cette r駱onse chaque fois qu'on lui posera la m麥e question par la suite. Cela r馘uira les temps de r駱onse, surtout si vous avez une connexion plut? lente.

Vous avez tout d'abord besoin du fichier /etc/named.conf. Ce fichier est lu au lancement de named. Pour le moment, il ne doit pas contenir autre chose que :


// Fichier de config pour un serveur de noms qui ne fait que du cache

options {
        directory "/var/named";

        // Enlever les commentaires peut vous aider si vous avez a passer a
        // travers un firewall et que 軋 ne marche pas :

        // query-source port 53;
};

zone "." {
        type hint;
        file "root.hints";
};

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

TRネS IMPORTANT : Dans certaines versions de ce document, les . 6D IN NS G.ROOT-SERVERS.NET. . 6D IN NS J.ROOT-SERVERS.NET. . 6D IN NS K.ROOT-SERVERS.NET. . 6D IN NS L.ROOT-SERVERS.NET. . 6D IN NS M.ROOT-SERVERS.NET. . 6D IN NS A.ROOT-SERVERS.NET. . 6D IN NS H.ROOT-SERVERS.NET. . 6D IN NS B.ROOT-SERVERS.NET. . 6D IN NS C.ROOT-SERVERS.NET. . 6D IN NS D.ROOT-SERVERS.NET. . 6D IN NS E.ROOT-SERVERS.NET. . 6D IN NS I.ROOT-SERVERS.NET. . 6D IN NS F.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4 J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10 K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129 L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12 M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33 A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4 H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53 B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107 C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12 D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90 E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10 I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17 F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241


Souvenez-vous bien de ce que j'ai dit pour les caract鑽es blancs en 127.0.0 dans le sous r駱ertoire pz :


@               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.

nom, mettez une ligne ``nameserver'' pour chacun. Dans notre cas, il s'agit de notre propre machine puisque c'est elle qui fait tourner named. (Note : named ne lit jamais ce fichier, c'est le puis foo.your-domain.edu et enfin foo. Si un client essaye de contacter sunsite.unc.edu, on essaye d'abord sunsite.unc.edu.subdomain.your-domain.edu (je sais, c'est stupide, mais c'est comme 軋) puis sunsite.unc.edu.your-domain.edu et enfin subdomain.your-domain.edu. Votre machine s'appelle alors certainement your-machine.subdomain.your-domain.edu. La ligne search ne doit pas contenir votre TLD (Top Level Domain; edu dans notre cas). Si vous vous
order hosts,bind

Si il n'y a pas de ligne ``order'', il faut en mettre une. Elle indique aux routines de r駸olution de nom de regarder d'abord dans connexion en dialup, commencez par vous connecter. Tapez ``ndc start'' et appuyez sur la touche entr馥, sans donner d'options. Si 軋 ne marche pas, essayez plut? ``/usr/sbin/ndc start''. Si 軋 ne marche toujours pas, jetez un coup d'oeil au chapitre (faites tail -f /var/adm/messages), vous devriez voir quelque chose comme 軋 :

(les lignes se terminant par \ se continuent sur la ligne suivante)

Feb 15 01:26:17 roke named[6091]: starting.  named 8.1.1 Sat Feb 14 \
  00:18:20 MET 1998 ^Ijanl@roke.uio.no:/var/tmp/bind-8.1.1/src/bin/named
Feb 15 01:26:17 roke named[6091]: cache zone "" (IN) loaded (serial 0)
Feb 15 01:26:17 roke named[6091]: master zone "0.0.127.in-addr.arpa" \
  (IN) loaded (serial 1)
Feb 15 01:26:17 roke named[6091]: listening [127.0.0.1].53 (lo)
Feb 15 01:26:17 roke named[6091]: listening [129.240.230.92].53 (ippp0)
Feb 15 01:26:17 roke named[6091]: Forwarding source address is [0.0.0.0].1040
Feb 15 01:26:17 roke named[6092]: Ready to answer queries.

Si il y a un quelconque message d'erreur, named donnera le nom du fichier dans lequel se trouve l'erreur (soit named.conf, soit root.hints, j'esp鑽e :-). Tuez le processus named et re-v駻ifiez ce fichier.

Il est maintenant temps de v駻ifier votre configuration. Lancez nslookup pour regarder le r駸ultat de votre petit travail.

$ nslookup
Default Server: localhost
Address: 127.0.0.1

>

Si vous obtenez ce message, c'est que 軋 marche. Nous l'esp駻ons tous. Si vous obtenez quoi que ce soit d'autre, revenez en arri鑽e et v駻ifiez tout. Chaque fois que vous modifiez le fichier named.conf, il vous faut relancer named avec la commande ndc restart.

Maintenant, vous pouvez entrer une requ黎e. Essayez de contacter une recherche tous les domaines list駸 dans /etc/resolv.conf.

Si vous r馥ssayez, vous obtiendrez ceci :

> pat.uio.no
Server: localhost
Address: 127.0.0.1

Non-authoritative answer :
Name: pat.uio.no
Address: 129.240.2.50
seconde fois qu'on lui demande un certain h?e, c'est un signe certain que
named cache bien les informations et que tout marche. Pour sortir de
nslookup, utilisez la commande ``exit''.

3.2 Le rendre encore meilleur

Dans les grands r駸eaux, bien administr駸, des universit駸 ou FAI (Fournisseur d'Acc鑚 a Internet), vous remarquerez peut-黎re que les administrateurs r駸eau ont mis en place une hi駻archie de serveurs DNS ce qui permet de soulager le r駸eau interne ainsi que le r駸eau vers l'ext駻ieur. Il n'est pas facile de savoir si vous 黎es dans un r駸eau de ce type. Tout cela n'est pas tr鑚 important, mais en utilisant le serveur DNS de votre FAI comme ``forwarder'' vous pouvez rendre les r駱onses plus rapides et all馮er la charge de votre r駸eau. Avec un modem, la diff駻ence peut 黎re sensible. Pour am駘iorer encore notre exemple, supposons que votre FAI aie deux serveurs de noms qu'il veux vous faire utiliser, ayant pour adresses IP 10.0.0.1 et 10.1.0.1. Alors, dans votre fichier named.conf, dans la section appel馥 ``options'' ins駻ez les lignes :


           forward first;
           forwarders {
                10.0.0.1;
                10.1.0.1;
            };

Red駑arrez votre serveur de noms et testez avec nslookup. Cela devrait marcher sans probl鑪es.

3.3 F駘icitations !

Maintenant, vous savez comment configurer un named qui sert de cache. Servez-vous une bi鑽e, un verre de lait ou tout ce que vous voudrez pour f黎er l'騅駭ement.

4. Un domaine simple

Comment mettre en place votre propre domaine

4.1 Mais avant tout, un brin de th駮rie

Avant d'entrer vraiment dans le vif du sujet, il va falloir que je 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?rez dans le DNS un arbre de recherche, avec des noeuds, des arr黎es et des feuilles.

Lorsque vous recherchez une machine, la question est pos馥 r馗ursivement 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
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馗is : 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 馗ran.

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

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

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鑚 qu'on l'a ai.mit.edu. Maintenant, on est sur le bon serveur, au bon embranchement. La derni鑽e partie est de trouver prep.ai.mit.edu, ce qui est tr鑚 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駻archie des noms de domaine comme un domaine ``normal''. 192.128.52.43, named proc鐡e 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 d駻anger personne dans le Vaste Monde.

Encore une chose avant de commencer. Tous les caract鑽es ne sont pas admis dans les noms de machines. On ne doit utiliser que les caract鑽es de l'alphabet anglais (a-z), les nombres (0-9) et le tiret ``-''. Utilisez ces @ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 1 ; Serial 8H ; Refresh 2H ; Retry 1W ; Expire ce fichier, contrairement au fichier named.boot. Certaines personnes aiment commencer chaque fichier d馭inissant une zone par une directive $ORIGIN, mais en fait c'est superflu. L'origine (l'emplacement dans la hi駻archie du service DNS) d'un fichier de zone est indiqu馥 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''

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饕ut de la ligne, il est implicite, puisque la ligne d'avant commence avec un ``@''. Alors, faites-vous une fleur en omettant ce caract鑽e. Donc, la ligne NS peut aussi s'馗rire 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

Le champ SOA est le pr饌mbule de tous les fichiers de zone, et il doit y en avoir exactement un dans chaque fichier de zone. Ce champ SOA d馗rit la zone, son origine (une machine appel馥 ns.linux.bogus), qui est retry, expire et minimum) utilisez les valeurs donn馥s dans ce HOWTO et tout se passera certainement tr鑚 bien.

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

$ 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
domaine dans le fichier named.conf.

Dans le fichier de zone linux.bogus, nous allons mettre quelques donn馥s 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
doit absolument 黎re une vraie machine poss馘ant un champ A. Il n'est
pas l馮al d'avoir un champ CNAME pour la machine mentionn馥 dans le champ
SOA. Il n'est pas n馗essaire que son nom soit ``ns'', ce peut 黎re tout autre

Relancez named en tapant ndc restart. Examinons le r駸ultat 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鑽ement fausse. Il devrait y avoir

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

J'ai fait cette erreur d駘ib駻駑ent, 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馥 au nom de la machine. Ainsi, une des deux formes :


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

ou


informations suppl駑entaires :


;
; 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 : 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?e l馮al pour une adresse de courrier 駘ectronique. webmaster@www.linux.bogus est une adresse de mail ill馮ale avec la configuration ci-dessus. Vous pouvez 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.

$ 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駸.

[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


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駑arrez 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騁ails 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
d'un vrai domaine vous attend au grand chapitre suivant.

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

Il y a quelques trucs qui sont normalement 騅it駸 avec les lookups qui arrivent souvent quand on met en place des zones invers駸. 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鑽e et r駱arez-le avant de continuer.

lisez-le. Maintenant.

La zone invers馥 a elle aussi besoin d'黎re d駘馮u馥. Si vous avez le r駸eau 192.168.196 avec le domaine linux.bogus de votre fournisseur, il devra mettre des champs NS pour votre zone invers馥 contactez votre fournisseur et demandez-lui de corriger l'erreur.

Vous avez un sous-r駸eau sans classe

C'est un sujet plut? pointu, mais les sous r駸eaux sans classe sont tr鑚 r駱andus de nos jours et vous en aurez tr鑚 certainement un si vous n'黎es pas une entreprise assez grande.

Un sous-r駸eau sans classe est ce qui sauve Internet de nos jours. Il y a quelques ann馥s, il y avait vraiment beaucoup de discussions sur la rar馭action des adresses IP. Les personnes intelligentes de l'IETF (Internet ``C'' et que certaines choses ne marcheront certainement plus. Allez voir Ask Mr DNS (c'est en anglais) pour plus d'explications.

insister. Mais assurez-vous de comprendre vous-m麥e en premier lieu ;-). Ils mettrons ensuite une jolie zone invers馥 sur leurs serveurs que vous pourrez examiner pour savoir si elle est correcte avec nslookup.

La deuxi鑪e et derni鑽e partie du probl鑪e est que vous devez en comprendre la technique. Si vous n'黎es pas certain, revenez en arri鑽e et relisez ce document. Ensuite, vous pourrez mettre en place une zone invers馥 sans classe comme le d馗rit Mr DNS.

utilis駸 avec les restrictions de bind 8 et quelques extensions de mon cru. Par cons駲uent, ils peuvent donc diff駻er de ce que vous pouvez trouver en questionnant les serveurs de nom de LAND-5 aujourd'hui.

Voici les sections pour les deux zones invers馥s n馗essaires : le r駸eau 127.0.0, ainsi que le sous-r駸eau LAND-5 206.6.177. Et une ligne primary pour la forward zone land-5.com. Notez aussi qu'au lieu de mettre les fichiers dans le r駱ertoire pz comme dans ce HowTo, il les met dans le r駱ertoire zone.

5.1 /etc/named.conf (ou /var/named/named.conf)


// Boot file for LAND-5 name server

options {
        directory "/var/named";
};

zone "." {
        type hint;
        file "root.hints";
};

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

zone "land-5.com" {
        type master;
        file "zone/land-5.com";
};

zone "177.6.206.in-addr.arpa" {
        type master;
        file "zone/206.6.177";
};

Si vous mettez 軋 dans votre named.conf pour jouer avec, PAR PITIノ mettez aussi le ``notify no;'' dans les zones des deux par le programme dig.


; <<>> DiG 8.1 <<>> @A.ROOT-SERVERS.NET. 
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; QUERY SECTION:
;;      ., type = NS, class = IN

;; ANSWER SECTION:
.                       6D IN NS        G.ROOT-SERVERS.NET.
.                       6D IN NS        J.ROOT-SERVERS.NET.
.                       6D IN NS        K.ROOT-SERVERS.NET.
.                       6D IN NS        L.ROOT-SERVERS.NET.
.                       6D IN NS        M.ROOT-SERVERS.NET.
.                       6D IN NS        A.ROOT-SERVERS.NET.
.                       6D IN NS        H.ROOT-SERVERS.NET.
.                       6D IN NS        B.ROOT-SERVERS.NET.
.                       6D IN NS        C.ROOT-SERVERS.NET.
.                       6D IN NS        D.ROOT-SERVERS.NET.
.                       6D IN NS        E.ROOT-SERVERS.NET.
.                       6D IN NS        I.ROOT-SERVERS.NET.
.                       6D IN NS        F.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
G.ROOT-SERVERS.NET.     5w6d16h IN A    192.112.36.4
J.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.10
K.ROOT-SERVERS.NET.     5w6d16h IN A    193.0.14.129
L.ROOT-SERVERS.NET.     5w6d16h IN A    198.32.64.12
M.ROOT-SERVERS.NET.     5w6d16h IN A    202.12.27.33
A.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.4
H.ROOT-SERVERS.NET.     5w6d16h IN A    128.63.2.53
B.ROOT-SERVERS.NET.     5w6d16h IN A    128.9.0.107
C.ROOT-SERVERS.NET.     5w6d16h IN A    192.33.4.12
D.ROOT-SERVERS.NET.     5w6d16h IN A    128.8.10.90
E.ROOT-SERVERS.NET.     5w6d16h IN A    192.203.230.10
I.ROOT-SERVERS.NET.     5w6d16h IN A    192.36.148.17
F.ROOT-SERVERS.NET.     5w6d16h IN A    192.5.5.241

;; Total query time: 215 msec
;; FROM: roke.uio.no to SERVER: A.ROOT-SERVERS.NET.  198.41.0.4
;; WHEN: Sun Feb 15 01:22:51 1998
;; MSG SIZE  sent: 17  rcvd: 436

5.3 /var/named/zone/127.0.0

Nous y avons mis juste l'essentiel, le champ SOA obligatoire, et un champ qui 騁ablit la correspondance entre 127.0.0.1 et localhost. Ils sont 199609203 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS land-5.com. 1 PTR localhost.


5.4 /var/named/zone/land-5.com

Nous trouvons ici le classique et obligatoire champ SOA ainsi que les champs NS. Nous pouvons voir qu'il y a un serveur de noms secondaire ns2.psi.net. C'est comme 軋 que tout le monde devrait faire : toujours avoir un serveur secondaire sur un site distant pour faire des @ IN SOA land-5.com. root.land-5.com. ( 199609206 ; serial, todays date + todays serial # 8H ; refresh, seconds 2H ; retry, seconds 1W ; expire, seconds 1D ) ; minimum, seconds NS land-5.com. NS ns2.psi.net. MX 10 land-5.com. ; Primary Mail Exchanger TXT "LAND-5 Corporation" localhost A 127.0.0.1 router A 206.6.177.1 land-5.com. A 206.6.177.2 ns A 206.6.177.3 www A 207.159.141.192 ftp CNAME land-5.com. mail CNAME land-5.com. news CNAME land-5.com. funn A 206.6.177.2 ; ; Workstations ; ws-177200 A 206.6.177.200 MX 10 land-5.com. ; Primary Mail Host ws-177201 A 206.6.177.201 MX 10 land-5.com. ; Primary Mail Host ws-177202 A 206.6.177.202 MX 10 land-5.com. ; Primary Mail Host ws-177203 A 206.6.177.203 MX 10 land-5.com. ; Primary Mail Host ws-177250 A 206.6.177.250 MX 10 land-5.com. ; Primary Mail Host ws-177251 A 206.6.177.251 MX 10 land-5.com. ; Primary Mail Host ws-177252 A 206.6.177.252 MX 10 land-5.com. ; Primary Mail Host ws-177253 A 206.6.177.253 MX 10 land-5.com. ; Primary Mail Host ws-177254 A 206.6.177.254 MX 10 land-5.com. ; Primary Mail Host


Si vous examinez le serveur de noms de land-5, vous allez voir que les noms sont de la forme ws_nombre. Depuis les derni鑽es versions de bind 4, named fait plus attention aux caract鑽es plac駸 dans de nom personnel, mais plut? un pr馭ixe suivit des deux derniers morceaux de leur adresse IP. Utiliser une telle convention simplifie grandement la maintenance, mais c'est un peu impersonnel, et 軋 peut agacer vos clients.

Nous voyons aussi que funn.land-5.com est un alias pour

Les commentaires se trouvent juste apr鑚 le fichier.


@               IN      SOA     land-5.com. root.land-5.com. (
                                199609206       ; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      land-5.com.
                        NS      ns2.psi.net.
;
;       Servers
;
1       PTR     router.land-5.com.
2       PTR     land-5.com.
2       PTR     funn.land-5.com.
;
;       Workstations
;
200     PTR     ws-177200.land-5.com.
201     PTR     ws-177201.land-5.com.
202     PTR     ws-177202.land-5.com.
203     PTR     ws-177203.land-5.com.
254     PTR     ws-177254.land-5.com.

La zone inverse est la partie de la configuration qui semble poser le plus de probl鑪es. Elle est utilis馥 pour trouver le nom d'h?e d'une machine, connaissant son adresse IP. Exemple : vous 黎es un serveur IRC et vous acceptez des connexions provenant de clients IRC. Cependant, comme vous 黎es un serveur IRC norv馮ien, vous ne voulez accepter que les connexions venant de Norv鑒e ou des autres pays scandinaves. Ainsi, lorsqu'un client se connecte chez vous, la biblioth鑷ue C peut vous dire quelle est l'adresse IP du client, puisque cette derni鑽e se trouve dans tous les paquets qui traversent le r駸eau. Ensuite, vous pouvez appeler une fonction connue sous le nom de connexion du client se fasse depuis ws_177200.land-5.com. L'adresse IP que la biblioth鑷ue C fournit au serveur IRC est 206.6.177.200. Pour retrouver le nom de cette machine, il nous faut trouver 200.177.6.206.in-addr.arpa. Le serveur de noms va donc d'abord trouver pour 200.177.6.206.in-addr.arpa nous avons un champ ``PTR ws_177200.land-5.com'', ce qui veut dire que le nom qui va avec 206.6.177.200 est ws_177200.land-5.com. Tout comme l'explication *.dk. Le nom ws_177200.land-5.com ne correspond 騅idemment pas, et le serveur va donc refuser la connexion. Si il n'existait pas de r駸olution inverse de 206.2.177.200 au travers de la zone

Certaines personnes vous diront que la r駸olution de noms inverse n'est importante que pour les serveurs, ou pas importante du tout. Pas tant que 軋 : beaucoup de serveurs ftp, news, irc ou m麥e certains http (Web) n'acceptent pas les connexions venant de machines dont ils ne peuvent retrouver le nom. C'est pourquoi la r駸olution de noms inverse pour les machines est obligatoire.

6. Maintenance

Garder votre DNS en 騁at de marche

root.hints, avec quelques chiffres en plus. Ces chiffres suppl駑entaires sont inoffensifs. Sauvez-le dans un fichier (dig . @e.root-servers.net >root.hints.new) et remplacez l'ancien fichier root.hints avec.

crontab et vous pourrez oublier qu'il existe. Ce script suppose que l'alias de mail `hostmaster' existe. Il faudra sans doute modifier ce fichier pour qu'il fonctionne chez vous.


#!/bin/sh
#
# Met a jours les informations du cache du serveur de noms chaque mois.
 echo "From: system <root>"
 echo "Subject: Mise a jour automatique du fichier root.hints"
 echo

 PATH=/sbin:/usr/sbin:/bin:/usr/bin:
 export PATH
 cd /var/named

 # Sommes nous connect駸 ? Pingons un serveur de notre FAI
 case `ping -qnc some.machine.net` in
        :;;
   *)
        echo "La mise a jour de root.hints a ECHOUE."
        echo "Voici la sortie de dig :"
        echo
        cat root.hints.new
        exit 0
        ;;
 esac

named.boot (vieux) pour un serveur qui ne sert que de cache :


directory /var/named
cache   .                                       root.hints
primary 0.0.127.IN-ADDR.ARPA                    127.0.0.zone
tapez :


./named-bootconf.pl < named.boot > named.conf

qui cr馥 un nouveau named.conf :


// generated by named-bootconf.pl

options {
        directory "/var/named";
};

zone "." {
        type hint;
        file "root.hints";
};

zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "127.0.0.zone";
};

zone "localhost" {
        type master;
        file "localhost.zone";
};

ヌa marche pour tout ce qui pouvait aller dans un named.boot, mais, il ne met pas toutes les nouveaut駸 que bind-8 permet. Voici une version plus compl鑼e d'un named.conf qui fait la m麥e chose, mais d'une fa輟n plus efficace :


        type master;
        file "127.0.0.zone";
};

zone "." IN {
        type hint;
        file "root.hints";
};

Dans le r駱ertoire bind8/src/bin/named/test de la distribution de www.math.uio.no/~janl/DNS/

  • Question : Comment utiliser un DNS si l'on se trouve derri鑽e un firewall ?

    Voici un indice : forward only;. Vous aurez probablement aussi besoin de mettre :


      query-source port 53;
      
    

    dans la partie ``options'' de votre named.conf comme l'exemple 3 le sugg鑽e serveur qui ne fait que du cache.

  • Comment mettre en place un serveur secondaire ?

    Si le serveur primaire a pour adresse 127.0.0.1, mettez une ligne comme celle-ci dans le fichier named.conf du serveur secondaire :


      zone "linux.bogus" {
            type slave;
            file "sz/linux.bogus";
            masters { 127.0.0.1; };
      };
      
    

    Vous pouvez mettre plusieurs serveurs ma?res, ajoutez les sur la ligne masters en les s駱arant par un ``;'' (point-virgule)

  • Ici, je fais tourner named sur la machine qui fait du "Masquerading". J'ai deux fichiers root.cache, un qui s'appelle root.cache.real et qui contient les vrais noms des serveurs root, et l'autre qui s'appelle root.cache.fake qui contient ceci~: -------------- ; root.hints.fake ; Ce fichier ne contient pas d'informations -------------- Quand je me d馗onnecte, je copie le fichier root.hints.fake vers root.hints et je relance named. Quand je me connecte, je copie root.hints.real et je relance named. Ethernet PCMCIA ou PPP avec une interface s駻ie. Apr鑚 quelques temps de r馭lexions et d'exp駻iences, j'ai d馗ouvert que named emp鹹hait nfsd et mountd de s'enregistrer avec portmapper au d駑arrage (Je le disque. Chaque fois que vous tuez named, le cache est perdu. Il n'y a aucun moyen de contr?er le cache. named g鑽e le cache selon quelques r鑒les simples, et c'est tout. Vous ne pouvez pas contr?er

    La Vraie Documentation existe. En ligne et imprim馥. Il faut absolument la lire si vous voulez devenir un administrateur DNS du plus haut niveau. Pour ce qui est de la documentation imprim馥, le livre standard est DNS and BIND de C. Liu et P. Albitz chez O'Reilly & Associates, Sebastopol, CA, ISBN 0-937175-82-X. Je l'ai lu, c'est excellent, la deuxi鑪e 馘ition est bas馥 sur bind 4, la troisi鑪e sur bind 8. Il y a aussi un chapitre sur le DNS dans TCP/IP Network Administration, de Craig Hunt chez O'Reilly..., ISBN

    En ligne, vous trouverez des trucs sur DNS Resources Directory, www.isc.org/bind.html; Une FAQ, un comp.protocols.tcp-ip.domains parle de DNS. En compl駑ent, il y a un certain nombre de RFC sur le DNS, les plus importantes sont certainement celles-ci :

    RFC 2052

    A. Gulbrandsen, P. Vixie, A DNS RR for specifying the location of services (DNS SRV), October 1996

    RFC 1918

    Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear, Address Allocation for Private Internets, 02/29/1996.

    RFC 1912

    D. Barr, Common DNS Operational and Configuration Errors, 02/28/1996.

    RFC 1912 Errors

    B. Barr Errors in RFC 1912, this is available at www.cis.ohio-state.edu/~barr/rfc1912-errors.html

    RFC 1713

    A. Romao, Tools for DNS debugging, 11/03/1994.

    RFC 1712

    C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, DNS Encoding of Geographical Location, 11/01/1994.

    RFC 1183

    R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, New DNS RR Definitions, 10/08/1990.

    RFC 1035

    P. Mockapetris, Domain names - implementation and specification, 11/01/1987.

    RFC 1034

    P. Mockapetris, Domain names - concepts and facilities, 11/01/1987.

    RFC 1033

    M. Lottor, Domain administrators operations guide, 11/01/1987.

    RFC 1032

    M. Stahl, Domain administrators guide, 11/01/1987.

    RFC 974

    C. Partridge, Mail routing and the domain system, 01/01/1986.