TP 4 — IPv6 : fonctionnement et configuration
Les trois labs IPv6 corrigés : autoconfiguration minimale et détection d'adresse dupliquée, SLAAC avec annonce de routeur sous Kathará, puis renumérotation d'un réseau sur FRR avec les durées de validité et de préférence.
Le geste du TP
Mettre en scène le ch. 4 en direct : trois labs Kathará —
reseau5.tgz, reseau6.tgz, puis la renumérotation — où on active des interfaces et on lit
Wireshark pour voir ICMPv6 faire le travail : détection d'adresse dupliquée, sollicitation et
annonce de routeur, puis renumérotation pilotée par les durées de vie. Toutes les captures se
lancent comme au TP 3 : tcpdump -Uni any -w /shared/paquets.pcapng & sur la machine à observer,
puis tail -f -c +0 shared/paquets.pcapng | wireshark -i - -k depuis le terminal du lab.
Avant de lancer les labs (rappel du sujet)
Kathará exige, pour chaque lab : le répertoire shared en droits rwx pour other, et tous
les répertoires du chemin vers le lab (lab compris) en r-x pour other. Sinon, les machines
ne montent pas leur shared.
Les commandes de lecture
ip -6 a sh dev eth0 : les adresses IPv6 d'une interface (avec leurs états tentative,
préférée, obsolète) · ip -6 route : la table de routage · ping6 <adresse> : le ping
IPv6. La fiche Mémo — IPv6 rassemble tout.
1. Autoconfiguration minimale
Lab reseau5 : deux PC sur un même réseau, aucun routeur. On active eth0 de pc1 avec
ip link set up dev eth0 et on regarde ce que le noyau fait tout seul.
Une adresse de lien local fe80::…/64 (plage fe80::/10), construite automatiquement par
la machine dès l'activation de l'interface. Elle ne permet de communiquer que sur le réseau
local : un paquet à destination d'une adresse de lien local ne sort jamais du réseau. Vers
des réseaux différents : impossible — et il n'y a pas de routeur ici de toute façon.
Oui : l'identifiant d'interface dérive de la MAC par EUI-64 — pour
00:03:ba:24:a9:6c, l'adresse est fe80::0203:baff:fe24:a9c6 (7ᵉ bit inversé, ff:fe
inséré au milieu). C'est pratique : l'unicité de la MAC garantit presque l'unicité de
l'adresse, sans aucun serveur. Ce n'est pas une bonne chose pour la vie privée : l'adresse
est stable et trahit la carte réseau — la machine devient traçable d'un réseau à l'autre.
D'où les identifiants aléatoires (RFC 7217) et les extensions de confidentialité.
L'adresse démarre « tentative » (tentative) : posée, mais pas encore utilisable. La
transition vers « préférée » vient de la détection d'adresse dupliquée (DAD) : la
machine a envoyé une sollicitation de voisin depuis l'adresse :: vers l'adresse de
multicast sollicitée de l'adresse testée — et n'a reçu aucune annonce de voisin en réponse.
Silence = personne n'utilise l'adresse = elle devient préférée. (C'est rapide : quelques
secondes après l'activation.)
Une sollicitation de voisin (ICMPv6 type 135), émise depuis :: vers l'adresse de
multicast sollicitée, avec pour cible l'adresse que la machine veut utiliser : c'est la
DAD du point (c). Si un autre hôte utilisait déjà l'adresse, il répondrait par une annonce de
voisin (type 136) — et l'auto-configuration s'arrêterait.
L'adresse de multicast sollicitée de l'adresse testée : ff02::1:ff + les 24 derniers
bits de l'adresse (pour fe80::0203:baff:fe24:a9c6, le groupe ff02::1:ff24:a9c6). Elle
remplace la diffusion d'ARP : au lieu de réveiller tout le lien, la question n'atteint que les
machines dont l'adresse se termine par les mêmes 24 bits — en pratique une seule.
2. Autoconfiguration sans état (avec routeur) — la SLAAC
Lab reseau6 : cette fois rtr1 est là et annonce un préfixe par interface. L'autoconfig
minimale donne le lien local ; la SLAAC va donner l'adresse globale et la passerelle — sans DHCP.
En plus du lien local, une adresse globale 2001:db8:0:1::… (dans le préfixe annoncé par
rtr1) apparaît sur l'interface, d'abord tentative puis préférée — et une route par
défaut s'installe aussi. C'est toute la différence : le routeur du lien diffuse des
annonces de routeur, et la SLAAC fait le reste.
Une annonce de routeur (Router Advertisement, ICMPv6 type 134), envoyée par rtr1
vers ff02::1 en réponse à la sollicitation de routeur de pc2. Elle apporte : le préfixe
2001:db8:0:2::/64 (dont pc2 construit son adresse globale en ajoutant son identifiant
d'interface), l'identité du routeur par défaut (son adresse de lien local), le MTU du
lien, et les durées de validité et de préférence du préfixe.
Ça marche — pc1 et rtr1 sont sur le même réseau A. Il faut écrire
ping6 fe80::… %eth0 : une adresse de lien local exige de préciser l'interface, car la
même adresse existe potentiellement sur chaque lien.
Non — et c'est normal. Une adresse de lien local n'est jamais routée : elle n'a de sens
que sur son propre lien. Celle de pc2 n'existe que sur le réseau B ; rtr1 refusera de
faire suivre le paquet (et le message « destination unreachable — scope » le dit).
ping6 2001:db8:0:2::… fonctionne : pc1 envoie vers sa route par défaut (le lien local de
rtr1), qui route vers le réseau B où vit l'adresse globale de pc2 — et le retour suit la
route par défaut de pc2.
La sollicitation de routeur (type 133, pc2 → ff02::2) puis l'annonce de routeur
(type 134, rtr1 → ff02::1) : c'est l'auto-configuration de pc2 qui vient de se brancher,
suivie des sollicitations/annonces de voisin de la DAD sur sa nouvelle adresse globale.
ip -6 route montre default via fe80::… dev eth0 : le routeur par défaut a été installé
par l'annonce de routeur — via l'adresse de lien local de rtr1. Aucune commande
ip -6 route add n'a été tapée sur le PC.
vtysh ouvre la console FRR ; show running-config affiche, sur interface eth0 :
ipv6 address 2001:db8:0:1::1/64 (l'adresse du routeur sur le réseau A) et
no ipv6 nd suppress-ra (FRR supprime par défaut l'envoi des annonces de routeur — cette
ligne les réactive), plus éventuellement ipv6 nd prefix … pour les préfixes annoncés. Sur
eth1, le même schéma avec 2001:db8:0:2::1/64. C'est le routeur, et lui seul, qui décide
quels préfixes les PC s'approprient.
3. Renumérotation de réseau
On reste sur le lab, avec pc1 qui surveille ses adresses
(watch -n 1 "ip -6 a sh dev eth0") et FRR qui pilote les annonces. Rappel des états en jeu :
Elle raccourcit à 30 s l'intervalle entre deux annonces de routeur — les RA partent plus souvent, donc tout changement de configuration se propage plus vite. On le vérifie dans les captures : une annonce de routeur toutes les 30 secondes.
Dans FRR, sur interface eth0 : ipv6 address 2001:db8:4242::1/64 pour l'adresse du
routeur, puis ipv6 nd prefix 2001:db8:4242::/64 pour diffuser le préfixe dans les
annonces. Sur pc1, au RA suivant (≤ 30 s), une deuxième adresse globale apparaît :
2001:db8:4242::…, tentative puis préférée — les deux adresses globales cohabitent.
Deux options « préfixe » : 2001:db8:0:1::/64 et 2001:db8:4242::/64, chacune avec ses
durées de validité (valid lifetime) et de préférence (preferred lifetime). C'est
la double annonce qui fait la transition : les deux adresses sont utilisables en même temps.
L'ancienne : 2001:db8:0:1::…. Les deux adresses sont préférées, et le choix par défaut
garde l'adresse en place depuis le plus longtemps — le ping ne bascule pas tout seul vers le
nouveau préfixe. C'est à nous de pousser la bascule, en raccourcissant la vie de l'ancien.
240 = la durée de vie (valid lifetime) du préfixe : après 240 s sans nouvelle annonce, l'adresse est invalide. 120 = la durée de préférence (preferred lifetime) : après 120 s, l'adresse est obsolète — les connexions en cours continuent, mais plus aucune nouvelle ne la choisit. C'est l'ancien préfixe qu'on met ainsi en fin de vie programmée.
Au RA suivant (≤ 30 s, grâce au ra-interval 30), les compteurs de l'adresse
2001:db8:0:1::… se réalignent sur valid 240sec preferred 120sec — et décomptent à vue
d'œil dans le watch.
no ipv6 nd prefix 2001:db8:0:1::/64 240 120 : l'ancien préfixe n'est plus annoncé, ses
durées ne sont plus rafraîchies et tombent. Quand la durée de préférence atteint zéro :
l'adresse passe obsolète (marquée deprecated dans ip -6 a), les connexions en cours
continuent dessus. À zéro de validité : l'adresse devient invalide et est retirée de
l'interface.
La nouvelle : 2001:db8:4242::…. Avec l'ancienne devenue obsolète, la seule adresse
préférée restante est la nouvelle — toutes les nouvelles connexions l'utilisent
(visible dans Wireshark comme adresse source de l'echo request). La renumérotation est
terminée sans coupure : les connexions établies sont mortes naturellement sur l'ancienne,
jamais brutalement.
Le principe à retenir (RFC 4192)
Renommer un réseau IPv6, c'est chevaucher les deux préfixes : annoncer le nouveau pendant que l'ancien vit, raccourcir la préférence de l'ancien (les nouvelles connexions basculent), puis le laisser expirer (les connexions en cours finissent). Aucune coupure, aucun reboot — les durées de vie font tout le travail.
Auto-évaluation
À l'issue de ce TP, les points cochés du sujet :
- avoir observé le fonctionnement de l'autoconfiguration en IPv6 (lien local, adresses globales, route par défaut, tout sans configuration) ;
- avoir observé le protocole d'autoconfiguration basé sur ICMPv6 : sollicitation et annonce de voisin (DAD), sollicitation et annonce de routeur (SLAAC) ;
- avoir réalisé une première configuration d'IPv6 sur FRR (
vtysh, adresses, préfixes annoncés, intervalle des RA) ; - avoir vu les principes de la renumérotation par les durées de validité et de préférence (chevauchement des préfixes, adresses obsolètes puis invalides).
tp4-ipv6.pdf
R3.06 · TP 4 — Yvan Peter, IUT de Lille · 4 pages
Chargement du document…
Dernière mise à jour le
TP 3 — Les protocoles de communication
Huit captures Wireshark décortiquées : ARP et le ping à travers la passerelle, l'erreur ICMP, la fragmentation, UDP, puis TCP — ouverture, données et fermeture de connexion — avec le geste à faire dans Wireshark pour chaque réponse.
Mémo — la commande ip
Les commandes ip addr, ip link, ip route et ip neigh : consulter, configurer et dépanner le réseau sous Linux — la fiche de référence du TP 1.