Outils pour utilisateurs

Outils du site


Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
060-ipv6:060_icmp6 [le 04/03/2025 à 09:33] – [Capture du protocole] prof060-ipv6:060_icmp6 [le 04/03/2025 à 15:53] (Version actuelle) – [Multicast] prof
Ligne 11: Ligne 11:
 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. 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 [[060-ipv6:010-structureles_adresses_multicast|pages précédentes]]:+Comme nous les avons déjà rencontrées dans  [[060-ipv6:010-structure#les_adresses_multicast|la page précédente]]:
  
-  * ''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 commande ''rdisc6'' sur la [[060-ipv6:030-decouvertes#rdisc6|page précédente]] ;+  * ''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 commande ''rdisc6'' ;
  
   * ''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.   * ''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.
  
 +Pour savoir quelles sont sur un nœud, les interfaces à l'écoute des adresses muticast en IPv6, la commande ''netstat'' (du paquet ''net-tools''):
 +<html><pre class="code">
 +<b>netstat -n -6 --groups</b>
 +
 +Interface       RefCnt Group
 +--------------- ------ ---------------------
 +lo              1      ff02::1
 +lo              1      ff01::1
 +<span class="bhly">enp1s0          2      ff02::1:ff37:3649</span>
 +enp1s0          1      ff02::1
 +enp1s0          1      ff01::1
 +</pre></html>
 +L'entrée surlignée va rapidement être mise en évidence. Comparons les 24 derniers bits de cette adresse aux 24 derniers bits de l'adresse MAC de enp1s0:
 +<html><pre class="code">
 +<b>ip link ls enp1s0</b>
 +
 +2: enp1s0: BROADCAST,<span class="bhly">MULTICAST</span>,UP,LOWER_UP> ...
 +    <span class="hlo">link/ether 52:54:00:<b>37:36:49</b></span>
 +</pre></html>
 ===== NDP ===== ===== NDP =====
  
Ligne 27: Ligne 46:
 ==== Recherche d'un routeur ==== ==== 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...
- +
-Nous allons lancer notre wireshark favori à l'écoute d'ICMPv6 sur enp1s0 et refaire un ''rdisc6 enp1s0'' sur notre station expérimentale pour voir...+
  
 <html><pre class="code"> <html><pre class="code">
Ligne 40: Ligne 57:
   - un routeur dont l'adresse lien-local est ''fe80::6aa3:78ff:fe86:ec02'' lui répond.   - un routeur dont l'adresse lien-local est ''fe80::6aa3:78ff:fe86:ec02'' lui répond.
  
-==== Analyse de l'échange ====+==== 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:
 +<html><pre class="code">
 +No.   Source                       Destination               Protocol Info
 +    <span class="hly">fe80::6aa3:7813:3786:ec02</span>    <span class="bhlo">ff02::1:ff</span><span class="hlv">37:3649</span>         ICMPv6   <span class="hly">Neighbor Solicitation</span> for fe80::5054:ff:fe37:3649 from 68:a3:78:86:ec:02
 +    <span class="hlg">fe80::5054:ff:fe</span><span class="hlv">37:3649</span>      <span class="hly">fe80::6aa3:7813:3786:ec02</span> ICMPv6   <span class="hlg">Neighbor Advertisementfe80::5054:ff:fe37:3649</span> (sol, ovr) is at 52:54:00:37:36:49
 +
 +</pre></html>
 +
 +''37:3649'' sont bien les 24 derniers bits que l'on trouve:
 +  - dans l'adresse multicast ''ff02::1:ff37:3649'',
 +  - ''fe80::6aa3:7813:3786:ec02'' pose la question et nous savons que c'est la Freebox,
 +  - dans l'adresse de la réponse ''fe80::5054:ff:fe37:3649'', c'est la machine expérimentale.
 +Voilà pour un tour d'horizon rapide du protocole NDP
 +
 +Donc, pour une raison quelconque, la Freebox a eu besoin de rattacher l'adresse lien-local de la machine expérimentale à son adresse MAC. En effet, la Freebox n'est pas en mesure de savoir si cette machine est auto-configurée ou non, autrement-dit, elle ne peut pas déduire à coup sûr l'adresse MAC de l'adresse lien-local.
 +
 +En regardant la partie spécifique à ICMPv6 dans les deux trames:
 +
 +<html><pre class="code">
 +Internet Control Message Protocol v6
 +    <span class="hly">Type: Neighbor Solicitation (135)</span>
 +    Code: 0
 +    Checksum: 0xecdb 
 +    Reserved: 00000000
 +    Target Address: fe80::5054:ff:fe37:3649
 +    ICMPv6 Option (Source link-layer address : 68:a3:78:86:ec:02)
 +        Type: Source link-layer address (1)
 +        Length: 1 (8 bytes)
 +        <span class="bhly">Link-layer address: FreeboxS_86:ec:02 (68:a3:78:86:ec:02)</span>
 +</pre></html>
 +Confirmation que c'est bien la Freebox qui pose la question.
 +
 +La réponse:
 +<html><pre class="code">
 +Internet Control Message Protocol v6
 +    <span class="hly">Type: Neighbor Advertisement (136)</span>
 +    Code: 0
 +    Checksum: 0x7f63
 +    Flags: 0x60000000, Solicited, Override
 +        <span class="hlg">0... .... .... .... .... .... .... .... = Router: Not set</span>
 +        <span class="hlg">.1.. .... .... .... .... .... .... .... = Solicited: Set</span>
 +        <span class="hlg">..1. .... .... .... .... .... .... .... = Override: Set</span>
 +        ...0 0000 0000 0000 0000 0000 0000 0000 = Reserved: 0
 +    <span class="bhly">Target Address: fe80::5054:ff:fe37:3649</span>
 +    ICMPv6 Option (Target link-layer address : 52:54:00:37:36:49)
 +        Type: Target link-layer address (2)
 +        Length: 1 (8 bytes)
 +        <span class="bhly">Link-layer address: RealtekU_37:36:49 (52:54:00:37:36:49)</span>
 +</pre></html>
 +La machine expérimentale répond avec ses flags:
 +  - qu'elle n'est pas un routeur,
 +  - qu'elle répond à une question,
 +  - que la réponse remplace éventuellement une donnée périmée.
 +Voilà pour un tout d'horizon rapide du protocole NDP
ICMPv6, multicast, NDP...: Dernière modification le: 04/03/2025 à 09:33 par prof