Ceci est une ancienne révision du document !
Table des matières
ICMPv6, multicast, NDP...
ICMPv6
Ce protocole, qui ressemble beaucoup à l'ICMP du monde IPv4, a été enrichi de nouveaux messages, c'est lui qui sert à véhiculer les informations de configuration, dans le cas qui nous intéresse. En effet, nous n'allons maintenant plus tarder à voir que ce sont des messages ICMP qui contiennent les questions et les réponses que nous avons obtenues avec l'outil rdisc6
, exactement de la même manière que lors du démarrage de la pile IPv6 sur une interface réseau.
Multicast
Contrairement à IPv4, IPv6 n'utilise pas le broadcast au profit du multicast, plus restrictif. Certaines adresses multicast sont définies pour répondre à des requêtes bien précises, et les équipements du réseau qui sont sensés disposer des réponses à ces requêtes écoutent sur ces adresses multicast.
Comme nous les avons déjà rencontrées dans les pages précédentes:
ff02::2
est une adresse multicast destinée à recevoir des requêtes du type « router discovery (Sollicitation d'un routeur) ». Tous les routeurs accessibles dans le voisinage le seront par cette adresse multicast. C'est ce que fait notre commanderdisc6
sur la page précédente ;
ff02::1
est une autre adresse multicast, qui sert dans l'autre sens. Toutes les stations d'un réseau doivent être capables d'écouter sur cette adresse ce que les routeurs ont à leur dire.
NDP
« Neighbor Discovery Protocol (découverte des voisins) ». Ce protocole permet aux nœuds d'un réseau de découvrir leur voisinage. Pour ce qui nous intéresse principalement ici, c'est grâce à lui qu'une station qui démarre découvre les routeurs qui lui sont accessibles et que ceux-ci lui communiquent les paramètres nécessaires à sa configuration IPv6. Car vous l'avez deviné, ce sont les routeurs qui transmettent ces informations que nous avons mises en évidence grâce à rdisc6.
NDP utilise des messages ICMPv6 et les adresses multicast ff02::1
et ff02::2
.
Recherche d'un routeur
Nous allons lancer notre wireshark favori à l'écoute d'ICMPv6 sur enp1s0
et refaire un rdisc6 enp1s0
sur notre station expérimentale pour voir…
No. Source Destination Protocol Info 1 fe80::5054:ff:fe37:3649 ff02::2 ICMPv6 Router Solicitation 2 fe80::6aa3:78ff:fe86:ec02 fe80::5054:ff:fe37:3649 ICMPv6 Router Advertisement from 68:a3:78:86:ec:02
- Notre station (
fe80::5054:ff:fe37:3649
) envoie un « Router solicitation (sollicitation de routeurs) » sur l'adresse multicastff02::2
; - un routeur dont l'adresse lien-local est
fe80::6aa3:78ff:fe86:ec02
lui répond.
succéder à ARP
En IPv4, lorsqu'un nœud ne connaît pas l'adresse MAC correspondant à l'IPv4 du destinataire, il utilise le protocole ARP qui lui-même utilise un broadcast.
En IPv6, ARP n'est plus, broadcast non plus. À la place il y a NDP qui va utiliser une adresse multicast spécifique: la «Solicited-Node Multicast». Cette adresse est de la forme ff02::1:ff00:0/104
complétée par les 24 derniers bits de l'adresse IPv6 dont on cherche l'adresse MAC associée.
Si nous démarrons notre wireshark en filtrant à la capture uniquement le protocole ICMP6, nous allons récupérer dans le lot par exemple ceci:
No. Source Destination Protocol Info 8 fe80::6aa3:7813:3786:ec02 ff02::1:ff37:3649 ICMPv6 Neighbor Solicitation for fe80::5054:ff:fe37:3649 from 68:a3:78:86:ec:02 9 fe80::5054:ff:fe37:3649 fe80::6aa3:7813:3786:ec02 ICMPv6 Neighbor Advertisementfe80::5054:ff:fe37:3649 (sol, ovr) is at 52:54:00:37:36:49
37:3649
sont bien les 24 derniers bits que l'on trouve:
- dans l'adresse multicast
ff02::1:ff37:3649
, - dans l'adresse de la réponse
fe80::5054:ff:fe37:3649