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ésau 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
.
Capture du protocole
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.
Analyse de l'échange
La question
Elle est assez simple, nous allons tronquer un peu le détail, pour ne garder que ce qu'il y a de plus intéressant :
Frame 1 (62 bytes on wire, 62 bytes captured) ... Ethernet II, Src: 00:1b:11:52:bf:ab (00:1b:11:52:bf:ab), Dst: 33:33:00:00:00:02 (33:33:00:00:00:02) Destination: 33:33:00:00:00:02 (33:33:00:00:00:02) Address: 33:33:00:00:00:02 (33:33:00:00:00:02) .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast) .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default) Source: 00:1b:11:52:bf:ab (00:1b:11:52:bf:ab) Address: 00:1b:11:52:bf:ab (00:1b:11:52:bf:ab) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Type: IPv6 (0x86dd) Internet Protocol Version 6 ... Source: fe80::21b:11ff:fe52:bfab (fe80::21b:11ff:fe52:bfab) Destination: ff02::2 (ff02::2) Internet Control Message Protocol v6 Type: 133 (Router solicitation) Code: 0 Checksum: 0xab1e [correct]
Notez, sur la couche Ethernet, les adresses multicast utilisées.
Pour le reste, nous découvrons bien sur ICMPv6 un message de type 133
(Router solicitation).