20.1. Le Démon de Nom Internet Berkeley (named)

IPv6 est supporté depuis la version 9. Utilisez toujours la dernière version disponible. Il faut au moins utiliser la version 9, les versions plus anciennes peuvent contenir des trous de sécurité exploitables à distance.

20.1.1. A l'écoute des adresses IPv6

Note: à la différence d'IPv4, les versions actuelles ne permettent pas d'associer une socket de serveur à des adresses IPv6 données, par conséquent, seule l'alternative toutes ou aucune adresse(s) IPv6 est valide. Parce que cela peut poser un problème de sécurité, consultez aussi plus bas la section concernant la liste de contrôle d'accès (ACL)!

20.1.1.1. Rendre disponible l'écoute sur adresse IPv6

Pour rendre disponible à named l'écoute IPv6, les options suivantes demandent à être modifiées

options {
        # certainement que d'autres options sont aussi ici
        listen-on-v6 { any; };
};

Il doit en résulter après redémarrage

# netstat -lnptu |grep "named\W*$" 
tcp 0 0 :::53         :::*      LISTEN 1234/named
¬ # incoming TCP requests
udp 0 0 1.2.3.4:53    0.0.0.0:*        1234/named
¬ # incoming UDP requests to IPv4 1.2.3.4
udp 0 0 127.0.0.1:53  0.0.0.0:*        1234/named
¬ # incoming UDP requests to IPv4 localhost
udp 0 0 0.0.0.0:32868 0.0.0.0:*        1234/named
¬ # dynamic chosen port for outgoing queries
udp 0 0 :::53         :::*             1234/named
¬ # incoming UDP request to any IPv6

Un test simple ressemble à

# dig localhost @::1

et doit vous afficher un résultat.

20.1.1.2. Rendre indisponible l'écoute sur adresse IPv6

Pour rendre indisponible l'écoute IPv6, l'option suivante demande à être modifiée

options {
        # certainement que d'autres options sont aussi ici
        listen-on-v6 { none; };
};

20.1.2. Les Listes de Contrôle d'Accès IPv6 (ACL)

Les ACL IPv6 sont disponibles et devraient être utilisées dès que possible. Un exemple ressemble à ce qui suit:

acl internal-net { 
        127.0.0.1; 
        1.2.3.0/24;  
        3ffe:ffff:100::/56; 
        ::1/128; 
        ::ffff:1.2.3.4/128; 
};
acl ns-internal-net { 
        1.2.3.4;  
        1.2.3.5;  
        3ffe:ffff:100::4/128; 
        3ffe:ffff:100::5/128; 
};

Ces ACL peuvent être utilisées par exemple pour les requêtes des clients ou pour le transfert de zones aux serveurs de noms de domaine secondaires. Ceci prévient aussi contre l'utilisation de votre serveur cache de noms de domaine à partir de l'extérieur grâce à IPv6.

options {
        # certainement que d'autres options sont aussi ici
        listen-on-v6 { none; };
        allow-query { internal-net; }; 
        allow-transfer { ns-internal-net; }; 
};

Il est aussi possible de positionner les options allow-query et allow-transfer pour la plupart des définitions par fichier de zone.

20.1.3. Emettre des requêtes avec une adresse IPv6 dédiée

Cette option n'est pas requise, mais peut être nécessaire:

query-source-v6 address <adresseipv6|*> port <port|*>;

20.1.4. Adresses IPv6 dédiées définies par zone

Il est aussi possible de définir des adresses IPv6 par zone.

20.1.4.1. Adresse de la source de transfert

L'adresse de la source de transfert est utilisée pour aller chercher les zones transférées:

transfer-source-v6 <adresseipv6|*> [port port];

20.1.4.2. Adresse de la source à notifier

L'adresse de la source à notifier est utilisée pour les messages de notification:

notify-source-v6 <adresseipv6|*> [port port];

20.1.5. Des exemples de fichiers de zone DNS IPv6

Des informations peuvent être aussi trouvées dans cet article concernant l'information d'installation d'un DNS IPv6. Le constructeur de zone inverse IPv6 pour BIND 8/9 (outil web) peut aussi être d'une aide précieuse.

20.1.6. Servir des données DNS relatives à IPv6

Pour IPv6, de nouveaux types et la zone racine nécessaire à la recherche inversée sont définis:

Peut-être complété plus tard, pour le moment, jetez un coup d'oeil aux RFC fournis et

Parce que IP6.INT est déprécié (mais encore en usage), un serveur DNS qui supportera l'information IPv6 aura à servir tous les types de zones inversées.

20.1.6.1. La meilleure pratique courante

Parce qu'il y a encore quelques problèmes qui existent lorsque les nouveaux formats sont utilisés, la meilleure pratique courante est:

Support de recherche:

  • AAAA

La recherche inversée supporte:

  • Le format réduit inversé (reverse nibble format) pour la zone ip6.int (POUR LA COMPATIBILITÉ ASCENDANTE)

  • Le format réduit inversé (reverse nibble format) pour la zone ip6.arpa (RECOMMANDÉ)

20.1.7. Vérifier la connectivité IPv6

Pour vérifier si BIND est à l'écoute sur une socket IPv6 et sert des données, voir les exemples suivants.

20.1.7.1. Connecté via IPv6, mais refusé par les ACL

En spécifiant un serveur pour les requêtes, une connexion IPv6 peut être forcée:

$ host -t aaaa www.6bone.net 3ffe:ffff:200:f101::1 
Using domain server: 
Name: 3ffe:ffff:200:f101::1 
Address: 3ffe:ffff:200:f101::1#53 
Aliases:

Host www.6bone.net. not found: 5(REFUSED)

L'entrée relative dans le journal ressemble à ce qui suit:

Jan 3 12:43:32 gate named[12347]: client
¬ 3ffe:ffff:200:f101:212:34ff:fe12:3456#32770: 
 query denied

Si vous observez de telles entrées dans le journal, vérifiez si les requêtes provenant de ce client doivent être autorisées, pour revoir, si nécessaire, votre configuration ACL.

20.1.7.2. Une connexion IPv6 réussie

Une connexion IPv6 réussie ressemble à ce qui suit:

$ host -t aaaa www.6bone.net 3ffe:ffff:200:f101::1 
Using domain server: 
Name: 3ffe:ffff:200:f101::1 
Address: 3ffe:ffff:200:f101::1#53 
Aliases:

www.6bone.net. is an alias for 6bone.net. 
6bone.net. has AAAA address 3ffe:b00:c18:1::10