Ceci est une ancienne révision du document !
Table des matières
DNS, DHCP ???
Nous sommes déjà assez rompus aux protocoles de l'internet. Même si nous ne les manipulons qu'au travers d'IPv4, nous ne somme plus des « newbies », nous savons que la configuration IP n'est pas miraculeuse, que nous avons besoin, en plus d'une adresse IP, de quelques renseignements supplémentaires pour pouvoir exploiter les ressources de l'internet :
- une adresse de passerelle par défaut ;
- au moins une adresse de DNS pour résoudre les noms en adresses IP.
Avec IPv4, ces informations nous sont communiquées par le fournisseur d'accès de façon automatique. Par DHCP si le processus de connexion est assimilé à une connexion sur un réseau local (cas de Free), ou par PPP(oE) lors de l'identification RADIUS. mais qu'en est-il en IPv6 ?
DHCP
Il existe bien une RFC décrivant un protocole DHCPv6, mais nous avons vu que le mécanisme d'auto-configuration était privilégié pour l'obtention de son adresse IP. Mais sans DHCP, comment notre machine fait-elle pour découvrir l'adresse de la passerelle par défaut ? Le ou les serveurs DNS récursifs ? Nous avons vu sur la page précédente comment le préfixe ainsi que l'adresse de la passerelle par défaut était obtenue grâce au «NDP».
En revanche, nous n'avons pas mis en évidence l'obtention d'adresse(s) de serveur(s) DNS, ce qui va être fait très bientôt.
En bref, bien qu'il existe des implémentations de DHCPv6, il est généralement inutile d'y avoir recours, sauf cas très particulier. Depuis l'apparition d'IPv6 sur l'internet, les spécifications de DHCPv6 ont pas mal évolué. Il semble possible désormais d'utiliser à la fois NDP et DHCPv6 par exemple pour faire ceci:
- Découverte du préfixe du réseau et de la passerelle par défaut via NDP,
- récupération d'autres informations par DHCPv6, dont les adresses de serveurs DNS.
Il reste qu'une telle solution est bien lourde pour la gestion d'un petit réseau personnel ou même d'une petite ou moyenne entreprise, même dans le cas où il serait nécessaire de disposer de sous-réseaux comme nous allons le voir dans les manipulations qui suivent.
DNS
Que devient DNS avec IPv6 ? Un même serveur DNS est-il capable de résoudre des noms en IPv4 et en IPv6 ?
La réponse est «oui». Mais comment connaître l'adresse d'un serveur de noms ? C'est assez facile, en fait. D'abord, dans la période transitoire (qui permet de transiter encore un certain temps), nous avons pu constater que IPv4 et IPv6 peuvent cohabiter sur le même nœud. Ainsi, si l'on connaît l'adresse IPv4 d'un serveur de noms, s'il est configuré convenablement, il saura renseigner les adressesIPv4 comme IPv6 d'un URI. Pour s'en convaincre voici la démonstration:
host www.debian.org 192.168.60.254
Using domain server:
Name: 192.168.60.254
Address: 192.168.60.254#53
Aliases:
www.debian.org has address 130.89.148.77
www.debian.org has address 194.177.211.216
www.debian.org has IPv6 address 2001:67c:2564:a119::77
www.debian.org has IPv6 address 2001:648:2ffc:deb:216:61ff:fe2b:6138
Nous avons interrogé le résolveur embarqué dans la freebox qui a l'adresse v4 192.168.60.254
et nous avons bien reçu les adresses v4 et v6 correspondant à www.debian.org
.
Mais si nous étions en IPv6 seulement, il nous faudrait alors impérativement l'adresse v6 d'un serveur de noms. Il se trouve que NDP, via les Router Solicitation
de la part du client et les réponses Router Advertisement
, si le routeur en a connaissance, il pourra transmettre l'information.
Sur un client Debian (ou autre GNU/Linux) utilisant le network-manager
, la récupération de l'information sera automatique. En revanche, sur un client minimal ne disposant pas du network-manager
, il faudra installer le démon rdnssd
, comme nous allons le voir dans «la manip. pour les geeks».
A la découverte du monde IPv6
Il existe une trousse à outils nommée ndisc6
(IPv6 diagnostic tools for Linux and BSD), facile à installer sur Debian, Ubuntu et dérivées par un apt install ndisc6
. Bien entendu, les autres distributions récentes proposent également cette trousse, qui contient entre autres, trois outils qui vont nous être utiles: rdisc6
, dans une moindre mesure ndisc6
et un tcptraceroute6
.
ndisc6
Permet de lancer une « découverte des voisins ». Comparable à la commande arping
du monde IPv4. Utilisons cet outil pour scruter notre passerelle par défaut. Commençons par son adresse de type lien local, telle que nous l'avons découverte avec la commande ip -6 route ls
:
:~$ ndisc6 fe80::207:cbff:fec3:e4da eth0 Solicitation de fe80::207:cbff:fec3:e4da (fe80::207:cbff:fec3:e4da) sur eth0... Adresse cible de lien : 00:07:CB:C3:E4:DA de fe80::207:cbff:fec3:e4da
~$ ndisc6 2a01:e35:2f35:d0::1 eth0 Solicitation de 2a01:e35:2f35:d0::1 (2a01:e35:2f35:d0::1) sur eth0... Adresse cible de lien : 00:07:CB:C3:E4:DA de 2a01:e35:2f35:d0::1
permet donc facilement de trouver l'adresse MAC correspondant à une adresse IPv6 sur le réseau local
rdisc6
Cet outil est magique. Voyons tout de suite ce qu'il est capable de nous apprendre :
~$ rdisc6 eth0 Solicitation de ff02::2 (ff02::2) sur eth0... Limite de saut (TTL) : 64 ( 0x40) Conf. d'adresse par DHCP : Non Autres réglages par DHCP : Non Préférence du routeur : moyen Durée de vie du routeur : 1800 (0x00000708) secondes Temps d'atteinte : non indiqué (0x00000000) Temps de retransmission : non indiqué (0x00000000) Préfixe : 2a01:e35:2f35:d0::/64 Durée de validité : 86400 (0x00015180) secondes Durée de préférence : 86400 (0x00015180) secondes Recursive DNS server : 2a01:e00::2 Recursive DNS server : 2a01:e00::1 DNS servers lifetime : 600 (0x00000258) secondes MTU : 1480 octets (valide) Adresse source de lien : 00:07:CB:C3:E4:DA de fe80::207:cbff:fec3:e4da
Là, nous sommes servis. Nous apprenons que :
- il n'y a pas de DHCP dans le coup ;
- le préfixe qui nous est attribué est bien
2a01:e35:2f35:d0::/64
; - les durées de validité et de préférence sont identiques et de 86400 secondes (24 heures) ;
- les DNS proposés sont
2a01:e00::2
et2a01:e00::1
; - le routeur (passerelle par défaut) est
fe80::207:cbff:fec3:e4da
.
Nous avons récupéré toutes les informations nécessaires, comme nous l'aurions fait en IPv4 par DHCP, mais ici, ce n'est pas DHCP. Alors, qu'est-ce que c'est ? (Ceux qui ont suivi sauront répondre : «NDP»).
De plus, que représente cette adresse ff02::2
qui semble être la source de toutes ces informations ?
tcptraceroute6
Comme son nom l'indique, cette commande est équivalente au tcptraceroute
du monde IPv4 :
:~$ tcptraceroute6 www.kame.net traceroute vers orange.kame.net (2001:200:0:8002:203:47ff:fea5:3085) de 2a01:5d8:52f3:500d:21b:11ff:fe52:bfab, port 80, du port 56328, 30 sauts max, 60 octet/paquet 1 2a01:5d8:52f3:500d::1 (2a01:5d8:52f3:500d::1) 0.586 ms 0.493 ms 0.514 ms 2 2a01:5d8:e000:9d1::4 (2a01:5d8:e000:9d1::4) 48.728 ms 48.941 ms 48.161 ms 3 2a01:5d8:e000:9d1::fe (2a01:5d8:e000:9d1::fe) 50.412 ms 49.901 ms * ... 22 lo0.alaxala1.k2.wide.ad.jp (2001:200:0:4800::7800:1) 342.425 ms 342.790 ms 339.848 ms 23 orange.kame.net (2001:200:0:8002:203:47ff:fea5:3085) 343.017 ms [ouvert] 342.494 ms 338.770 ms
Comme vous le constatez, il n'y a rien de fondamentalement nouveau, si ce n'est que nous évoluons dans un monde IPv6.
- le «hop» 1 nous confirme une fois encore l'adresse IP (globale) de notre passerelle par défaut;
- le «hop» 22 nous apprend que la cible www.kame.net se situe au japon et que son port 80 est ouvert;
- le «hop» 23 nous dit que la cible est vivante et que le port 80 est ouvert.