Outils pour utilisateurs

Outils du site


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 comme nous l'avons vu page précédente.Confirmation avec 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.

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

Il faut donc installer le démon rdnssd qui 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.1). 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.

La conclusion de tout ceci démontre qu'un serveur DNS (ou un résolveur) gère aussi bien les adresses IPv4 et IPv6, ce que nous montrerons plus loin, lors de l'installation de bind9.

tcptraceroute6

Comme son nom l'indique, cette commande est équivalente au tcptraceroute du monde IPv4. Là encore, un peu de patience, nous démonterons son fonctionnement lors de l'étude détaillée du protocole ICMP. Pour l'instant, contentons-nous de savoir que cette commande met en évidence les différents routeurs par lesquels passent une requête quelconque depuis la source vers la cible.

tcptraceroute6 www.debian.org

traceroute vers www.debian.org (2001:648:2ffc:deb:216:61ff:fe2b:6138) de 2a01:e0a:875:b1d0:5054:ff:fe37:3649, port 80, du port 64890, 30 sauts max, 60 octets/paquet
 1  2a01:e0a:875:b1d0::1 (2a01:e0a:875:b1d0::1)  0.705 ms  0.534 ms  0.515 ms 
 2  2a01:e02:1004:f836:aac1::ffff (2a01:e02:1004:f836:aac1::ffff)  3.781 ms  1.841 ms  2.316 ms 
 3  2a01:e02:1004:1700::ffff (2a01:e02:1004:1700::ffff)  2.314 ms  2.173 ms  1.897 ms 
 4  2a01:e02:1003::1 (2a01:e02:1003::1)  2.727 ms  2.262 ms  2.587 ms 
 5  * * *
 6  * * *
 7  2a01:e04:6003::5 (2a01:e04:6003::5)  23.856 ms  23.700 ms  24.134 ms 
 8  fra-ix.geant.net (2001:7f8::51e5:0:1)  23.773 ms  24.310 ms  24.075 ms 
 9  lag-1-0.rt0.fra.de.geant.net (2001:798:cc::72)  24.043 ms  23.606 ms  24.010 ms 
10  lag-6-0.rt0.pra.cz.geant.net (2001:798:cc:1::c6)  34.623 ms  34.880 ms  35.114 ms 
11  lag-5-0.rt0.vie.at.geant.net (2001:798:cc:1::ce)  34.958 ms  35.176 ms  35.076 ms 
12  * * *
13  * * *
14  * * *
15  2001:798:cc::4a (2001:798:cc::4a)  58.276 ms  58.204 ms  57.667 ms 
16  grnet-ias.rt1.the.gr.geant.net (2001:798:1::176)  58.522 ms  57.809 ms  58.165 ms 
17  2001:648:2ff2:105::1 (2001:648:2ff2:105::1)  64.859 ms  65.205 ms  65.844 ms 
18  static-mirror-grnet-01.debian.org (2001:648:2ffc:deb:216:61ff:fe2b:6138)  65.539 ms [ouvert]  65.738 ms  65.965 ms

Pour l'instant, admettons ceci:

  • le «hop» 1 2a01:e0a:875:b1d0::1 c'est obligatoiremet notre passerelle par défaut (Freebox), bien que l'on n'ai pas encore réussi à identifier cette adresse;
  • les «hops» marqués par des étoiles sont des routeurs dont nous n'avons par reçu d'information. Diverses raisons peuvent le justifier.
  • le «hop» 18 , c'est le terminus, ne serveur cible. Nous sommes passés par 17 routeurs différents pour l'atteindre.

Une analyse un peu plus détaillée montrerait que tous les routeurs dont l'adresse commence par 20a1:: sont dans le réseau Proxad, puis nous passons dans le réseau identifié geant.net. Le projet Geant qui se nomme désormais Geant.org. GÉANT is the collaboration of European National Research and Education Networks . Visiblement, on circule un peu dans divers pays d'Europe, pour arriver dans grnet qui est semble-t-il l'équivalent de notre Renater en Grèce. (65 ms Pour aller de la France en Grèce, et encore, avec 17 escales. Qui dit mieux ?)

1)
extrait du «man rdnssd»
A la découverte du monde IPv6: Dernière modification le: 04/03/2025 à 08:35 par prof