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.
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)!
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.
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.
Cette option n'est pas requise, mais peut être nécessaire:
query-source-v6 address <adresseipv6|*> port <port|*>;
Il est aussi possible de définir des adresses IPv6 par zone.
L'adresse de la source de transfert est utilisée pour aller chercher les zones transférées:
transfer-source-v6 <adresseipv6|*> [port port];
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.
Pour IPv6, de nouveaux types et la zone racine nécessaire à la recherche inversée sont définis:
AAAA et IP6.INT inversée: specifiés dans leRFC 1886 / DNS Extensions to support IP version 6, utilisés depuis BIND version 4.9.6
A6, DNAME (DORÉNAVANT DÉPRECIÉ!) et IP6.ARPA inversé: spécifiés dans leRFC 2874 / DNS Extensions to Support IPv6 Address Aggregation and Renumbering, utilisable depuis BIND 9, mais vous pouvez trouver de l'information sur l'état actuel dans draft-ietf-dnsext-ipv6-addresses-00.txt
Peut-être complété plus tard, pour le moment, jetez un coup d'oeil aux RFC fournis et
AAAA et IP6.INT inversé: l'installation d'un DNS IPv6
A6, DNAME (DORÉNAVANT DÉPRECIÉ!) et IP6.ARPA inversé: jetez un coup d'oeil aux chapitres 4 et 6 du manuel de référence de l'administrateur BIND 9 (ARM), distributé avec le paquetage bind, ou bien récupérez-le : BIND version 9 ARM (PDF)
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.
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É)
Pour vérifier si BIND est à l'écoute sur une socket IPv6 et sert des données, voir les exemples suivants.
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.
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
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:36