Outils pour utilisateurs

Outils du site


Ceci est une ancienne révision du document !


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 et un tcptraceroute6.

Pour ces quelques essais, une machine virtuelle avec une distribution Debian 12 (Bookworm) minimale est installée sur le réseau IPv4 192.168.60.0/24 sur lequel se trouve également la FreeBox à l'adresse IPv4 192.168.60.254. Le paquet ndisc6 y a été ajouté.

Analyse de sa configuration IPv6

Les adresses IPv6 sont faciles à obtenir:

ip -6 address show enp1s0

2: enp1s0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet6 2a01:e0a:875:b1d0:5054:ff:fe37:3649/64 scope global dynamic mngtmpaddr 
       valid_lft 86043sec preferred_lft 86043sec
    inet6 fe80::5054:ff:fe37:3649/64 scope link 
       valid_lft forever preferred_lft forever
Les adresses globale et lien-local, avec le même jeton 5054:ff:fe37:3649 comme prévu.

Les routes sont aussi faciles à trouver:

ip -6 route show

2a01:e0a:875:b1d0::/64 dev enp1s0 proto kernel metric 256 expires 86380sec pref medium
fe80::/64 dev enp1s0 proto kernel metric 256 pref medium
default via fe80::6aa3:78ff:fe86:ec02 dev enp1s0 proto ra metric 1024 expires 1780sec hoplimit 64 pref medium 
C'est surtout la route par défaut qui nous intéresse. C'est une adresse de lien-local, avec un jeton 6aa3:78ff:fe86:ec02 qui normalement doit appartenir à la Freebox, ce que l'on peut vérifier à travers l'interface de configuration de la box: Lien-Local de la Freebox Tout va bien.

Le serveur DNS ? Si l'on a installé le paquet network-manager c'est facile, mais pour nos manipulation ça ne va pas. Le démon NetworkManager s'occupe de tout à notre place. Autant c'est bien pratique sur une station de travail graphique, autant ça nous complique la vie pour décortiquer ce qu'il se passe côté réseau. Dans notre configuration minimale, nous pouvons trouver l'information dans le fichier /etc/resolv.conf. On y voit:

cat /etc/resolv.conf

nameserver 192.168.60.254
Point d'adresse IPv6 en vue :-O

rdisc6

Cet outil est magique. Voyons tout de suite ce qu'il est capable de nous apprendre :

~$ rdisc6 enp1s0
Solicitation de ff02::2 (ff02::2) sur enp1s0...

Limite de saut (TTL)      :           64 (      0x40)
Conf. d'adresse par DHCP  :          Non
Autres réglages par DHCP  :          Non
Agent domestique (mobile) :          Non
Préférence du routeur     :        moyen
Proxy (découverte voisin) :          Non
Durée de vie du routeur   :         1800 (0x00000708) secondes
Temps d'atteinte          :  non indiqué (0x00000000)
Temps de retransmission   :  non indiqué (0x00000000)
 Préfixe                  : 2a01:e0a:875:b1d0::/64
  Sur le lien (on-link)   :          Oui
  Conf. autonome d’adresse:          Oui
  Durée de validité       :        86400 (0x00015180) secondes
  Durée de préférence     :        86400 (0x00015180) secondes
 Recursive DNS server     : fd0f:ee:b0::1
  DNS servers lifetime    :        86600 (0x00000258) secondes
 MTU                      :         1500 octets (valide)
 Adresse source de lien   : 68:A3:78:86:EC:02
 de fe80::6aa3:78ff:fe86:ec02

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:e0a:875:b1d0::/64 (nous l'avions compris avec l'adresse IPv6 globale);
  • les durées de validité et de préférence sont identiques et de 86400 secondes (24 heures) ;
  • le DNS proposé est fd0f:ee:b0::1 et, remarquons-le, c'est une adresse locale unique (ULA). ;
  • le routeur (passerelle par défaut) est fe80::6aa3:78ff:fe86:ec02 (nous l'avions trouvée).

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 : C'est «NDP»).

Et l'adresse ff02::2 est l'adresse multicast déjà observée. C'est l'adresse réservée au protocole NDP

Mais cette adresse ULA indiquant un serveur DNS (résolveur, plutôt) dans un réseau où il n'y a pas de serveur DNS installé ? Ce ne peut être que la Freebox.

Et pourquoi cette adresse n'apparaît pas dans /etc/resolv.conf ? Parce qu'il n'y a aucun démon qui la capture pour renseigner ce fichier. Autrement-dit, dans cette configuration minimale, c'est le résolveur 192.168.60.254 qui assurera la résolution des noms en IPv6. La preuve, en utilisant l'outil nslookup du paquet bind9-dnsutils:

nslookup www.debian.org
Server:		192.168.60.254
Address:	192.168.60.254#53

Non-authoritative answer:
Name:	www.debian.org
Address: 130.89.148.77
Name:	www.debian.org
Address: 194.177.211.216
Name:	www.debian.org
Address: 2001:67c:2564:a119::77
Name:	www.debian.org
Address: 2001:648:2ffc:deb:216:61ff:fe2b:6138
La commande interroge bien 192.168.60.254 et obtient non moins bien les adresses IPv4 et IPv6 correspondant à l'URI www.debian.org.

Mais si l'on veut utiliser le résolveur proposé dans la configuration IPV6, comment faire ?

Il faut installer le démon rdnssd Rdnssd configure automatiquement des serveurs DNS récursifs sur des réseaux IPv6 qui utilisent ICMPv6 Neighbor Discovery (RFC 5006), et il peut mettre à jour la configuration des résolveurs DNS (/etc/resolv.conf) en fonction.. Mais ce paquet recommande resolvconf et nous ne voulons surtout pas l'installer, il fait trop de choses dans notre dos. Donc:

apt --no-install-recommends install rdnssd

Et après reboot de la machine virtuelle:

cat /etc/resolv.conf
nameserver fd0f:ee:b0::1
nameserver 192.168.60.254
L'adresse IPv6 du résolveur apparaît maintenant en plus de l'adresse IPv4 et en première position qui plus est. Si bien que:
nslookup www.debian.org
Server:		fd0f:ee:b0::1
Address:	fd0f:ee:b0::1#53

Non-authoritative answer:
Name:	www.debian.org
Address: 194.177.211.216
Name:	www.debian.org
Address: 130.89.148.77
Name:	www.debian.org
Address: 2001:67c:2564:a119::77
Name:	www.debian.org
Address: 2001:648:2ffc:deb:216:61ff:fe2b:6138
Le résolveur interrogé l'est maintenant par son adresse IPv6 et répond bien entendu exactement la même réponse que précédemment.

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.
A la découverte du monde IPv6: Dernière modification le: 03/03/2025 à 19:00 par prof