Difference between revisions of "Exemples de découverte de voisins"

From Livre IPv6

 
(Ping et résolution d'adresses)
Line 25: Line 25:
 
   Option :
 
   Option :
 
   Type : 1 (Adresse physique source) Lg : 8 octets (0x01) : 08-00-20-0a-aa-6d  
 
   Type : 1 (Adresse physique source) Lg : 8 octets (0x01) : 08-00-20-0a-aa-6d  
  ''
+
   
 
  0000: 6f 00 00 00 00 20 3a ff 3f fe 03 02 00 12 00 03
 
  0000: 6f 00 00 00 00 20 3a ff 3f fe 03 02 00 12 00 03
 
  0010: 0a 00 20 ff fe 0a aa 6d ff 02 00 00 00 00 00 00
 
  0010: 0a 00 20 ff fe 0a aa 6d ff 02 00 00 00 00 00 00
Line 31: Line 31:
 
  0030: 3f fe 03 02 00 12 00 03 00 00 00 00 00 00 00 03|
 
  0030: 3f fe 03 02 00 12 00 03 00 00 00 00 00 00 00 03|
 
  0040: 01 01 08 00 20 0a aa 6d
 
  0040: 01 01 08 00 20 0a aa 6d
''
 
 
  </tt>
 
  </tt>
  
 
Dans l'en-tête IPv6, l'adresse de la source est l'adresse globale de l'interface d'émission. On aurait pu penser que l'émetteur utilisait l'adresse locale au lien comme adresse de la source. L'utilisation de l'adresse source globale, comme on le verra par la suite, permet au destinataire de remplir directement sa table de correspondance entre adresse IPv6 et adresse physique, puisque ce dernier trouvera dans la suite du datagramme l'adresse physique de l'émetteur.
 
Dans l'en-tête IPv6, l'adresse de la source est l'adresse globale de l'interface d'émission. On aurait pu penser que l'émetteur utilisait l'adresse locale au lien comme adresse de la source. L'utilisation de l'adresse source globale, comme on le verra par la suite, permet au destinataire de remplir directement sa table de correspondance entre adresse IPv6 et adresse physique, puisque ce dernier trouvera dans la suite du datagramme l'adresse physique de l'émetteur.
  
L'adresse de destination est l'adresse de multicast sollicité associée à l'adresse recherchée (cf. See Adressage, See Multicast) et l'adresse Ethernet de destination est l'adresse associée (cf. See Supports de transmission, See Ethernet (RFC 2464)).
+
L'adresse de destination est l'adresse de [[multicast sollicité]] associée à l'adresse recherchée et l'adresse Ethernet de destination est l'adresse associée (cf. [[Supports de transmission]] RFC 2464).
  
 
L'en-tête ICMPv6 contient dans le champ cible l'adresse IPv6 de la machine dont l'adresse physique est recherchée. On peut remarquer que les trois derniers octets correspondent au groupe de multicast de l'en-tête IPv6.
 
L'en-tête ICMPv6 contient dans le champ cible l'adresse IPv6 de la machine dont l'adresse physique est recherchée. On peut remarquer que les trois derniers octets correspondent au groupe de multicast de l'en-tête IPv6.
Line 42: Line 41:
 
Le champ option contient l'adresse physique de l'émetteur de la requête.
 
Le champ option contient l'adresse physique de l'émetteur de la requête.
  
Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 0x86dd
+
Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 0x86dd
 +
IPv6
 +
Version : 6 Classe : 0xf0 Label : 000000
 +
Longueur : 32 octets (0x20) Protocole : 58 (0x3a, ICMPv6)
 +
Nombre de sauts : 255 (0xff)
 +
Source : fe80::1800:20ff:fe0c:7a34 (ganesha, lien-local)
 +
Desti. : 3ffe:302:12:3:0a00:20ff:fe0a:aa6d (uma)
 +
ICMPv6
 +
Type : 136 (0x88, Annonce de voisin) Code : 0 Checksum : 0xd7fb
 +
Bits (0x7) R = 1, S = 1, O = 1
 +
Cible : 3ffe:302:12:3::3 (ganesha)
 +
Option :
 +
Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 1a-00-20-0c-7a-34
  
IPv6
+
La machine ganesha, qui écoute sur tous les groupes [[multicast sollicité]] associés à ses adresses, reçoit le message de sollicitation de voisin, reconnaît dans la cible une de ses adresses IPv6, et répond. L'adresse source utilisée est locale au lien. Le bit R indique que l'équipement qui répond a une fonction de routeur. Le bit S indique que ce message est une réponse à une demande explicite (le message précédent). Le bit O indique que cette réponse doit remplacer toute valeur connue précédemment. Le champ cible rappelle l'adresse IPv6. Le champ option donne l'adresse physique recherchée.
  
Version : 6 Classe : 0xf0 Label : 000000
+
Date : 21:49:11.408611
 
+
Ethernet Src : 8:0:20:a:aa:6d Dst : 1a:0:20:c:7a:34 Type : 0x86dd
Longueur : 32 octets (0x20) Protocole : 58 (0x3a, ICMPv6)
+
IPv6
 
+
Version : 6 Classe : 0x00 Label : 000000
Nombre de sauts : 255 (0xff)
+
Longueur : 64 octets (0x0040) Protocole : 58 (0x3a, ICMPv6)
 
+
Nombre de sauts : 255 (0xff)
Source : fe80::1800:20ff:fe0c:7a34 (ganesha, lien-local)
+
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
 
+
Desti. : 3ffe:302:12:3::3 (ganesha)
Desti. : 3ffe:302:12:3:0a00:20ff:fe0a:aa6d (uma)
+
ICMPv6
 
+
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x0f20
ICMPv6
+
Identificateur : 0x00c0 Numéro de séquence : 0x0000
 
+
Données : Date : 0x3468c4c7.000631c7 Remplissage ...
Type : 136 (0x88, Annonce de voisin) Code : 0 Checksum : 0xd7fb
+
 
+
Bits (0x7) R = 1, S = 1, O = 1
+
 
+
Cible : 3ffe:302:12:3::3 (ganesha)
+
 
+
Option :
+
 
+
Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 1a-00-20-0c-7a-34
+
 
+
La machine ganesha, qui écoute sur tous les groupes multicast sollicité associés à ses adresses, reçoit le message de sollicitation de voisin, reconnaît dans la cible une de ses adresses IPv6, et répond. L'adresse source utilisée est locale au lien. Le bit R indique que l'équipement qui répond a une fonction de routeur. Le bit S indique que ce message est une réponse à une demande explicite (le message précédent). Le bit O indique que cette réponse doit remplacer toute valeur connue précédemment. Le champ cible rappelle l'adresse IPv6. Le champ option donne l'adresse physique recherchée.
+
 
+
Date : 21:49:11.408611
+
 
+
Ethernet Src : 8:0:20:a:aa:6d Dst : 1a:0:20:c:7a:34 Type : 0x86dd
+
 
+
IPv6
+
 
+
Version : 6 Classe : 0x00 Label : 000000
+
 
+
Longueur : 64 octets (0x0040) Protocole : 58 (0x3a, ICMPv6)
+
 
+
Nombre de sauts : 255 (0xff)
+
 
+
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
+
 
+
Desti. : 3ffe:302:12:3::3 (ganesha)
+
 
+
ICMPv6
+
 
+
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x0f20
+
 
+
Identificateur : 0x00c0 Numéro de séquence : 0x0000
+
 
+
Données : Date : 0x3468c4c7.000631c7 Remplissage ...
+
  
 
L'émetteur envoie un message ICMPv6 «Demande d'écho».
 
L'émetteur envoie un message ICMPv6 «Demande d'écho».
  
Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 0x86dd
+
Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 0x86dd
 
+
IPv6
IPv6
+
Version : 6 Classe : 0x00 Label : 000000
 
+
Longueur : 64 octets (0x0040) Protocole : 58 (0x3a, ICMPv6)
Version : 6 Classe : 0x00 Label : 000000
+
Nombre de sauts : 255 (0xff)
 
+
Source : 3ffe:302:12:3::3 (ganesha)
Longueur : 64 octets (0x0040) Protocole : 58 (0x3a, ICMPv6)
+
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
 
+
ICMPv6
Nombre de sauts : 255 (0xff)
+
Type : 129 (0x81, Réponse d'écho) Code : 0 Checksum : 0x0e20
 
+
Identificateur : 0x00c0 Numéro de séquence : 0x0000
Source : 3ffe:302:12:3::3 (ganesha)
+
Données : Celles de la demande
 
+
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
+
 
+
ICMPv6
+
 
+
Type : 129 (0x81, Réponse d'écho) Code : 0 Checksum : 0x0e20
+
 
+
Identificateur : 0x00c0 Numéro de séquence : 0x0000
+
 
+
Données : Celles de la demande
+
  
 
Le destinataire acquitte en retournant un message ICMPv6 «Réponse d'écho». Il n'est pas nécessaire de relancer une phase de résolution d'adresse puisque la précédente a permis de remplir le cache.
 
Le destinataire acquitte en retournant un message ICMPv6 «Réponse d'écho». Il n'est pas nécessaire de relancer une phase de résolution d'adresse puisque la précédente a permis de remplir le cache.
Line 122: Line 88:
 
Les échanges ICMP «Demande d'écho» et «Réponse d'écho» continuent ensuite toutes les secondes. Si les échanges continuent assez longtemps, les deux machines vérifieront périodiquement que le correspondant est toujours correct (il a pu tomber en panne ou être remplacé avec changement d'adresse Ethernet) en utilisant le protocole NUD. Aussi de temps en temps, chaque machine va émettre une trame «sollicitation d'un voisin». Une réponse («annonce de voisin» avec le bit S) montre que le correspondant est toujours valide.
 
Les échanges ICMP «Demande d'écho» et «Réponse d'écho» continuent ensuite toutes les secondes. Si les échanges continuent assez longtemps, les deux machines vérifieront périodiquement que le correspondant est toujours correct (il a pu tomber en panne ou être remplacé avec changement d'adresse Ethernet) en utilisant le protocole NUD. Aussi de temps en temps, chaque machine va émettre une trame «sollicitation d'un voisin». Une réponse («annonce de voisin» avec le bit S) montre que le correspondant est toujours valide.
  
Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 0x86dd
+
Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 0x86dd
 +
IPv6
 +
Source : fe80::1800:20ff:fe0c:7a34 (ganesha, lien-local)
 +
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
 +
ICMPv6
 +
Type : 135 (0x87, Sollicitation de voisin) Code : 0
 +
Cible : 3f fe 03 02 00 12 00 03 0a 00 20 ff fe 0a aa 6d
 +
Option : aucune
  
IPv6
+
On remarque que le message de sollicitation est directement adressé au destinataire, avec l'adresse qui est enregistrée dans les tables de correspondance. Si une réponse n'arrive pas, la machine émettrice effacera l'entrée de son cache «Résolution de voisin». Tout trafic ultérieur reprendra l'enquête de résolution au début, avec diffusion vers l'adresse multicast sollicité-- au cas où l'adresse Ethernet aurait changée.
  
Source : fe80::1800:20ff:fe0c:7a34 (ganesha, lien-local)
+
== Configuration de la route par défaut ==
 
+
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
+
 
+
ICMPv6
+
 
+
Type : 135 (0x87, Sollicitation de voisin) Code : 0
+
 
+
Cible : 3f fe 03 02 00 12 00 03 0a 00 20 ff fe 0a aa 6d
+
 
+
Option : aucune
+
 
+
On remarque que le message de sollicitation est directement adressé au destinataire, avec l'adresse qui est enregistrée dans les tables de correspondance. Si une réponse n'arrive pas, la machine émettrice effacera l'entrée de son cache «Résolution de voisin». Tout trafic ultérieur reprendra l'enquête de résolution au début, avec diffusion vers l'adresse multicast sollicité-- au cas où l'adresse Ethernet aurait changée.
+
Configuration de la route par défaut
+
  
 
En IPv6 seuls les routeurs utilisent des protocoles de routage pour définir leurs tables de routage. Le routage des autres machines repose sur la notion de route par défaut. Comme avec IPv4, l'envoi de messages de redirection est utilisé pour installer de meilleures routes. Périodiquement les routeurs envoient des «Annonce du routeur» qui permettent aux machines sur le câble de choisir un routeur par défaut, et aussi de calculer leur adresse (dans le mode d'autoconfiguration sans état «stateless»).
 
En IPv6 seuls les routeurs utilisent des protocoles de routage pour définir leurs tables de routage. Le routage des autres machines repose sur la notion de route par défaut. Comme avec IPv4, l'envoi de messages de redirection est utilisé pour installer de meilleures routes. Périodiquement les routeurs envoient des «Annonce du routeur» qui permettent aux machines sur le câble de choisir un routeur par défaut, et aussi de calculer leur adresse (dans le mode d'autoconfiguration sans état «stateless»).
Line 150: Line 110:
 
Les routeurs émettent périodiquement sur le réseau des messages d'annonce.
 
Les routeurs émettent périodiquement sur le réseau des messages d'annonce.
  
Ethernet Src : 1a:0:20:c:7a:34 Dst : 33:33:0:0:0:1 Type : 0x86dd
+
Ethernet Src : 1a:0:20:c:7a:34 Dst : 33:33:0:0:0:1 Type : 0x86dd
 +
IPv6
 +
Version : 6 Classe : 0xf Label : 000000
 +
Longueur : 56 octets (0x0038) Protocole : 58 (0x3a, ICMPv6)
 +
Nombre de sauts : 255 (0xff)
 +
Source : fe80::1800:200c:7a34 (ganesha, lien-local)
 +
Desti. : ff02::1 (multicast, tous les n??uds du lien)
 +
ICMPv6
 +
Type : 134 (0x86, Annonce de routeur) Code : 0 Checksum : 0x773c
 +
Nombre de sauts : 0 (non précisé) Gestion d'adresse : 0 (Pas de DHCP)
 +
Validité : 6000 secondes (0x1770) Timers : 0, 0 (non précisés)
 +
Options :
 +
Type : 1 (Adresse physique source) Lg : 8 octets (0x01) : 1a-00-20-0c-7a-34
 +
Type : 3 (Information sur le préfixe) Lg : 32 octets (0x04)
 +
Drapeaux : L=1, A=1 Durée de validité : -1, -1 (infinie)
 +
Préfixe : 3ffe:302:12:3::/64
  
IPv6
+
  0000: 6f 00 00 00 00 38 3a ff fe 80 00 00 00 00 00 00
 
+
0010: 18 00 20 ff fe 0c 7a 34 ff 02 00 00 00 00 00 00
Version : 6 Classe : 0xf Label : 000000
+
0020: 00 00 00 00 00 00 00 01|86 00 77 3c 00 00 17 70
 
+
0030: 00 00 00 00 00 00 00 00|01 01 1a 00 20 0c 7a 34|
Longueur : 56 octets (0x0038) Protocole : 58 (0x3a, ICMPv6)
+
0040: 03 04 40 c0 ff ff ff ff ff ff ff ff 00 00 00 00
 
+
0050: 3f fe 03 02 00 12 00 03 00 00 00 00 00 00 00 00
Nombre de sauts : 255 (0xff)
+
 
+
Source : fe80::1800:200c:7a34 (ganesha, lien-local)
+
 
+
Desti. : ff02::1 (multicast, tous les n??uds du lien)
+
 
+
ICMPv6
+
 
+
Type : 134 (0x86, Annonce de routeur) Code : 0 Checksum : 0x773c
+
 
+
Nombre de sauts : 0 (non précisé) Gestion d'adresse : 0 (Pas de DHCP)
+
 
+
Validité : 6000 secondes (0x1770) Timers : 0, 0 (non précisés)
+
 
+
Options :
+
 
+
Type : 1 (Adresse physique source) Lg : 8 octets (0x01) : 1a-00-20-0c-7a-34
+
 
+
Type : 3 (Information sur le préfixe) Lg : 32 octets (0x04)
+
 
+
Drapeaux : L=1, A=1 Durée de validité : -1, -1 (infinie)
+
 
+
Préfixe : 3ffe:302:12:3::/64
+
 
+
   
+
 
+
0000: 6f 00 00 00 00 38 3a ff fe 80 00 00 00 00 00 00
+
 
+
0010: 18 00 20 ff fe 0c 7a 34 ff 02 00 00 00 00 00 00
+
 
+
0020: 00 00 00 00 00 00 00 01|86 00 77 3c 00 00 17 70
+
 
+
0030: 00 00 00 00 00 00 00 00|01 01 1a 00 20 0c 7a 34|
+
 
+
0040: 03 04 40 c0 ff ff ff ff ff ff ff ff 00 00 00 00
+
 
+
0050: 3f fe 03 02 00 12 00 03 00 00 00 00 00 00 00 00
+
  
 
Ce message est envoyé par le routeur ganesha (l'adresse source est l'adresse locale, commençant par fe80), à destination de tous les n?uds sur le câble Ethernet (adresse de destination IPv6 «Tous les n?uds sur le lien» ff02::1 et l'adresse de destination physique est l'adresse MAC de multicast associée). Les informations donnent la durée de vie de cette annonce, des paramètres de configuration pour les n?uds, dont le type de construction d'adresse : mode d'autoconfiguration «stateless» en créant une adresse permanente à partir du préfixe 3ffe:302:12:3::/64.
 
Ce message est envoyé par le routeur ganesha (l'adresse source est l'adresse locale, commençant par fe80), à destination de tous les n?uds sur le câble Ethernet (adresse de destination IPv6 «Tous les n?uds sur le lien» ff02::1 et l'adresse de destination physique est l'adresse MAC de multicast associée). Les informations donnent la durée de vie de cette annonce, des paramètres de configuration pour les n?uds, dont le type de construction d'adresse : mode d'autoconfiguration «stateless» en créant une adresse permanente à partir du préfixe 3ffe:302:12:3::/64.
Line 200: Line 138:
 
La table de routage d'uma après réception de ce message contient :
 
La table de routage d'uma après réception de ce message contient :
  
uma# netstat -nrf inet6
+
uma# netstat -nrf inet6
 
+
Routing tables IPv6:
Routing tables IPv6:
+
Destination Gateway Flags Refs Use Mtu Interf
 
+
default fe80::1800:20ff:fe0c:7a34 UGS 0 17 1500 le0
Destination Gateway Flags Refs Use Mtu Interf
+
fe80::1800:20ff:fe0c:7a34 1a:0:20:c:7a:34 UHDL 1 2 1500 le0
 
+
.....
default fe80::1800:20ff:fe0c:7a34 UGS 0 17 1500 le0
+
 
+
fe80::1800:20ff:fe0c:7a34 1a:0:20:c:7a:34 UHDL 1 2 1500 le0
+
 
+
.....
+
  
 
La ligne avec le drapeau L correspond à une machine directement accessible, le champ «Gateway» contient l'adresse IEEE 802. Il s'agit des informations contenues dans la table de correspondance construite par le protocole de découverte des voisins.
 
La ligne avec le drapeau L correspond à une machine directement accessible, le champ «Gateway» contient l'adresse IEEE 802. Il s'agit des informations contenues dans la table de correspondance construite par le protocole de découverte des voisins.
  
 
Le routeur tuna avait lui aussi émis des annonces de routeur. On pourrait donc aussi enregistrer une route par défaut via tuna ; mais le système ne conserve qu'une route par défaut, et la route possible par tuna est ignorée. De même, il n'y a pas de ligne de correspondance adresse IPv6-adresse Ethernet pour tuna car cette adresse n'a pas été utilisée comme destination.
 
Le routeur tuna avait lui aussi émis des annonces de routeur. On pourrait donc aussi enregistrer une route par défaut via tuna ; mais le système ne conserve qu'une route par défaut, et la route possible par tuna est ignorée. De même, il n'y a pas de ligne de correspondance adresse IPv6-adresse Ethernet pour tuna car cette adresse n'a pas été utilisée comme destination.
Indication de redirection
+
 
 +
==Indication de redirection==
  
 
La configuration donnée See Routage par défaut non optimal après la configuration des routes par défaut conduit aux tables de routage suivantes : la route par défaut d'uma pointe sur ganesha, et la route vers la machine externe 3ffe:200:1:3::1 sur ganesha pointe sur tuna.
 
La configuration donnée See Routage par défaut non optimal après la configuration des routes par défaut conduit aux tables de routage suivantes : la route par défaut d'uma pointe sur ganesha, et la route vers la machine externe 3ffe:200:1:3::1 sur ganesha pointe sur tuna.
Line 221: Line 155:
 
La machine uma envoie un ping à la machine externe 3ffe:200:1:3::1 en utilisant la route par défaut, non optimale.
 
La machine uma envoie un ping à la machine externe 3ffe:200:1:3::1 en utilisant la route par défaut, non optimale.
  
uma# ping6 3ffe:200:1:3::1
+
uma# ping6 3ffe:200:1:3::1
 
+
trying to get source for 3ffe:200:1:3::1
trying to get source for 3ffe:200:1:3::1
+
source should be 3ffe:302:12:3:a00:20ff:fe0a:aa6d
 
+
PING 3ffe:200:1:3::1: 56 data bytes
source should be 3ffe:302:12:3:a00:20ff:fe0a:aa6d
+
64 bytes from 3ffe:200:1:3::1: icmp6_seq=0 ttl=253 time=79.689 ms
 
+
.....
PING 3ffe:200:1:3::1: 56 data bytes
+
 
+
64 bytes from 3ffe:200:1:3::1: icmp6_seq=0 ttl=253 time=79.689 ms
+
 
+
.....
+
  
 
En observant le réseau, on trouve le trafic suivant.
 
En observant le réseau, on trouve le trafic suivant.
  
Ethernet Src : 8:0:20:a:aa:6d Dst : 1a:0:20:c:7a:34 Type : 86dd
+
Ethernet Src : 8:0:20:a:aa:6d Dst : 1a:0:20:c:7a:34 Type : 86dd
 
+
IPv6
IPv6
+
Version : 6 Classe : 0x00 Label : 000000
 
+
Longueur : 64 octets (0x0040) Protocole : 58 (0x3a, ICMPv6)
Version : 6 Classe : 0x00 Label : 000000
+
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
 
+
Desti. : 3ffe:200:1:3::1 (gw-uni)
Longueur : 64 octets (0x0040) Protocole : 58 (0x3a, ICMPv6)
+
ICMPv6
 
+
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0xd775
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
+
Identificateur : 0x00d6 Numéro de séquence : 0x0000
 
+
Données : Date : 0x3469a2a4.000d8c8b Remplissage ...
Desti. : 3ffe:200:1:3::1 (gw-uni)
+
Le message ICMPv6 d'écho est transmis vers l'adresse Ethernet de ganesha, routeur par défaut d'uma.
 
+
Ethernet Src : 1a:0:20:c:7a:34 Dst : 0:0:c0:86:e2:e9 Type : 86dd
ICMPv6
+
IPv6
 
+
Version : 6 Classe : 0x00 Label : 000000
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0xd775
+
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
 
+
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
Identificateur : 0x00d6 Numéro de séquence : 0x0000
+
Desti. : 3ffe:200:1:3::1 (gw-uni)
 
+
ICMPv6
Données : Date : 0x3469a2a4.000d8c8b Remplissage ...
+
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0xd775
 
+
Identificateur : 0x00d6 Numéro de séquence : 0x0000
Le message ICMPv6 d'écho est transmis vers l'adresse Ethernet de ganesha, routeur par défaut d'uma.
+
Données : Date : 0x3469a2a4.000d8c8b Remplissage ...
 
+
Ethernet Src : 1a:0:20:c:7a:34 Dst : 0:0:c0:86:e2:e9 Type : 86dd
+
 
+
IPv6
+
 
+
Version : 6 Classe : 0x00 Label : 000000
+
 
+
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
+
 
+
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
+
 
+
Desti. : 3ffe:200:1:3::1 (gw-uni)
+
 
+
ICMPv6
+
 
+
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0xd775
+
 
+
Identificateur : 0x00d6 Numéro de séquence : 0x0000
+
 
+
Données : Date : 0x3469a2a4.000d8c8b Remplissage ...
+
  
 
ganesha retransmet le paquet IPv6 non modifié vers l'adresse Ethernet de tuna, qui est le premier relais sur la route vers la destination finale.
 
ganesha retransmet le paquet IPv6 non modifié vers l'adresse Ethernet de tuna, qui est le premier relais sur la route vers la destination finale.
  
Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 86dd
+
Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 86dd
 
+
IPv6
IPv6
+
Version : 6 Classe : 0xf0 Label : 000000
 
+
Longueur : 160 octets (0x00a0) Protocole : (0x3a, ICMPv6)
Version : 6 Classe : 0xf0 Label : 000000
+
Source : fe80::1800:20ff:fe0c:7a34 (ganesha,lien-local)
 
+
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
Longueur : 160 octets (0x00a0) Protocole : (0x3a, ICMPv6)
+
ICMPv6
 
+
Type : 137 (0x89, Redirection) Code : 0 Checksum : 0x869d
Source : fe80::1800:20ff:fe0c:7a34 (ganesha,lien-local)
+
Meilleur routeur : fe80::200:c0ff:fe86:e2e9 (tuna, lien-local)
 
+
Destination : 3ffe:200:1:3::1 (gw-uni)
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
+
Options :
 
+
Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 00-00-c0-86-e2-e9
ICMPv6
+
Type : 4 (Paquet ayant causé le message) Longueur : 112 octets (0x0e)
 
+
Début du paquet IPv6 ayant causé le message
Type : 137 (0x89, Redirection) Code : 0 Checksum : 0x869d
+
 
+
Meilleur routeur : fe80::200:c0ff:fe86:e2e9 (tuna, lien-local)
+
 
+
Destination : 3ffe:200:1:3::1 (gw-uni)
+
 
+
Options :
+
 
+
Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 00-00-c0-86-e2-e9
+
 
+
Type : 4 (Paquet ayant causé le message) Longueur : 112 octets (0x0e)
+
 
+
Début du paquet IPv6 ayant causé le message
+
  
 
ganesha constate que le paquet d'écho a été réémis sur l'interface qui l'avait reçu, et génère donc un message de redirection vers uma pour lui indiquer qu'une meilleure route vers 3ffe:200:1:3::1 utilise le routeur fe80::200:c0ff:fe86:e2e9.
 
ganesha constate que le paquet d'écho a été réémis sur l'interface qui l'avait reçu, et génère donc un message de redirection vers uma pour lui indiquer qu'une meilleure route vers 3ffe:200:1:3::1 utilise le routeur fe80::200:c0ff:fe86:e2e9.
Line 311: Line 207:
 
En IPv6 l'adresse Ethernet du routeur est fournie, ce qui évite une résolution supplémentaire.
 
En IPv6 l'adresse Ethernet du routeur est fournie, ce qui évite une résolution supplémentaire.
  
Ethernet Src : 8:0:20:a:aa:6d Dst : 0:0:c0:86:e2:e9 Type : 86dd
+
Ethernet Src : 8:0:20:a:aa:6d Dst : 0:0:c0:86:e2:e9 Type : 86dd
 
+
IPv6
IPv6
+
Version : 6 Classe : 0x00 Label : 000000
 
+
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
Version : 6 Classe : 0x00 Label : 000000
+
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
 
+
Desti. : 3ffe:200:1:3::1 (gw-uni)
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
+
ICMPv6
 
+
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0xf51f
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
+
Identificateur : 0x00d6 Numéro de séquence : 0x0001
 
+
Données : Date : 0x3469a2a6.000d6edd Remplissage ...
Desti. : 3ffe:200:1:3::1 (gw-uni)
+
 
+
ICMPv6
+
 
+
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0xf51f
+
 
+
Identificateur : 0x00d6 Numéro de séquence : 0x0001
+
 
+
Données : Date : 0x3469a2a6.000d6edd Remplissage ...
+
  
 
Le paquet de demande d'écho suivant est envoyé directement vers l'adresse Ethernet de tuna.
 
Le paquet de demande d'écho suivant est envoyé directement vers l'adresse Ethernet de tuna.
Line 335: Line 222:
 
La table de routage d'uma est maintenant :
 
La table de routage d'uma est maintenant :
  
uma# netstat -nrf inet6
+
uma# netstat -nrf inet6
 
+
Routing tables IPv6:
Routing tables IPv6:
+
Destination Gateway Flags Refs Use Mtu Interf
 
+
default fe80::1800:20ff:fe0c:7a34 UGS 0 17 1500 le0
Destination Gateway Flags Refs Use Mtu Interf
+
3ffe:200:1:3::1 fe80::200:c0ff:fe86:e2e9 UGHD 0 2 1500 le0
 
+
fe80::200:c0ff:fe86:e2e9 0:0:c0:86:e2:e9 UHDL 1 0 1500 le0
default fe80::1800:20ff:fe0c:7a34 UGS 0 17 1500 le0
+
fe80::1800:20ff:fe0c:7a34 1a:0:20:c:7a:34 UHDL 1 2 1500 le0
 
+
.....
3ffe:200:1:3::1 fe80::200:c0ff:fe86:e2e9 UGHD 0 2 1500 le0
+
 
+
fe80::200:c0ff:fe86:e2e9 0:0:c0:86:e2:e9 UHDL 1 0 1500 le0
+
 
+
fe80::1800:20ff:fe0c:7a34 1a:0:20:c:7a:34 UHDL 1 2 1500 le0
+
  
.....
+
==Indication de redirection externe==
Indication de redirection externe
+
  
 
En IPv4, le mécanisme de redirection n'est prévu que pour les machines auxquelles on accède par l'intermédiaire d'un routeur ; la machine émettrice doit connaître les adresses IPv4 directement accessibles (le numéro de réseau correspondant au lien physique), un «ICMP Redirect» ne fonctionne pas pour celles-ci.
 
En IPv4, le mécanisme de redirection n'est prévu que pour les machines auxquelles on accède par l'intermédiaire d'un routeur ; la machine émettrice doit connaître les adresses IPv4 directement accessibles (le numéro de réseau correspondant au lien physique), un «ICMP Redirect» ne fonctionne pas pour celles-ci.
Line 360: Line 241:
 
La machine uma veut accéder à guma :
 
La machine uma veut accéder à guma :
  
uma# ping6 3ffe:302:12:4::4
+
uma# ping6 3ffe:302:12:4::4
 
+
trying to get source for 3ffe:302:12:4::4
trying to get source for 3ffe:302:12:4::4
+
source should be 3ffe:302:12:3:a00:20ff:fe0a:aa6d
 
+
PING 3ffe:302:12:4::4: 56 data bytes
source should be 3ffe:302:12:3:a00:20ff:fe0a:aa6d
+
64 bytes from 3ffe:302:12:4::4: icmp6_seq=0 ttl=255 time=7.267 ms
 
+
.....
PING 3ffe:302:12:4::4: 56 data bytes
+
 
+
64 bytes from 3ffe:302:12:4::4: icmp6_seq=0 ttl=255 time=7.267 ms
+
 
+
.....
+
 
+
 
   
 
   
 +
Date : 19:57:43.177504
 +
Ethernet Src : 8:0:20:a:aa:6d Dst : 1a:0:20:c:7a:34 Type : 86dd
 +
IPv6
 +
Version : 6 Classe : 0x00 Label : 000000
 +
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
 +
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
 +
Desti. : 3ffe:302:12:4::4 (guma)
 +
ICMPv6
 +
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x43cc
 +
Identificateur : 0x00fd Numéro de séquence : 0x0000
 +
Données : Date : 0x337b4e95.0002725d Remplissage ...
  
Date : 19:57:43.177504
 
 
Ethernet Src : 8:0:20:a:aa:6d Dst : 1a:0:20:c:7a:34 Type : 86dd
 
 
IPv6
 
 
Version : 6 Classe : 0x00 Label : 000000
 
 
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
 
 
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
 
 
Desti. : 3ffe:302:12:4::4 (guma)
 
 
ICMPv6
 
 
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x43cc
 
 
Identificateur : 0x00fd Numéro de séquence : 0x0000
 
 
Données : Date : 0x337b4e95.0002725d Remplissage ...
 
  
 
Puisque uma ne sait pas que guma est directement accessible, le message ICMP d'écho est transmis vers l'adresse Ethernet de ganesha, routeur par défaut d'uma.
 
Puisque uma ne sait pas que guma est directement accessible, le message ICMP d'écho est transmis vers l'adresse Ethernet de ganesha, routeur par défaut d'uma.
  
Ethernet Src : 1a:0:20:c:7a:34 Dst : 0:0:c0:89:e2:e6 Type : 86dd
+
Ethernet Src : 1a:0:20:c:7a:34 Dst : 0:0:c0:89:e2:e6 Type : 86dd
 
+
IPv6
IPv6
+
Version : 6 Classe : 0x00 Label : 000000
 
+
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
Version : 6 Classe : 0x00 Label : 000000
+
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
 
+
Desti. : 3ffe:302:12:4::4 (guma)
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
+
ICMPv6
 
+
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x43cc
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
+
Identificateur : 0x00fd Numéro de séquence : 0x0000
 
+
Données : Date : 0x337b4e95.0002725d Remplissage ...
Desti. : 3ffe:302:12:4::4 (guma)
+
 
+
ICMPv6
+
 
+
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x43cc
+
 
+
Identificateur : 0x00fd Numéro de séquence : 0x0000
+
 
+
Données : Date : 0x337b4e95.0002725d Remplissage ...
+
  
 
ganesha retransmet le paquet non modifié vers guma.
 
ganesha retransmet le paquet non modifié vers guma.
  
Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 86dd
+
Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 86dd
 
+
IPv6
IPv6
+
Version : 6 Classe : 0xf0 Label : 000000
 
+
Longueur : 160 octets (0x00a0) Protocole : (0x3a, ICMPv6)
Version : 6 Classe : 0xf0 Label : 000000
+
Source : fe80::1800:20ff:fe0c:7a34
 
+
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d
Longueur : 160 octets (0x00a0) Protocole : (0x3a, ICMPv6)
+
ICMPv6
 
+
Type : 137 (0x89, Redirection) Code : 0 Checksum : 0xfe45
Source : fe80::1800:20ff:fe0c:7a34
+
Meilleur routeur : 3ffe:302:12:4::4 (guma)
 
+
Destination : 3ffe:302:12:4::4 (guma)
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d
+
Options :
 
+
Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 00-00-c0-89-e2-e6
ICMPv6
+
Type : 4 (Paquet ayant causé le message) Longueur : 112 octets (0x0e)
 
+
Début du paquet IPv6 ayant causé le message
Type : 137 (0x89, Redirection) Code : 0 Checksum : 0xfe45
+
 
+
Meilleur routeur : 3ffe:302:12:4::4 (guma)
+
 
+
Destination : 3ffe:302:12:4::4 (guma)
+
 
+
Options :
+
 
+
Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 00-00-c0-89-e2-e6
+
 
+
Type : 4 (Paquet ayant causé le message) Longueur : 112 octets (0x0e)
+
 
+
Début du paquet IPv6 ayant causé le message
+
  
 
De plus ganesha envoie à uma un message de redirection. C'est une redirection vers une machine sur le lien physique, ce qui est indiqué par le fait que les champs «Meilleur routeur» et «Destination» sont égaux (le premier relais est la destination finale).
 
De plus ganesha envoie à uma un message de redirection. C'est une redirection vers une machine sur le lien physique, ce qui est indiqué par le fait que les champs «Meilleur routeur» et «Destination» sont égaux (le premier relais est la destination finale).
  
Ethernet Src : 0:0:c0:89:e2:e6 Dst : 8:0:20:a:aa:6d Type : 86dd
+
Ethernet Src : 0:0:c0:89:e2:e6 Dst : 8:0:20:a:aa:6d Type : 86dd
 
+
IPv6
IPv6
+
Version : 6 Classe : 0xf0 Label : 000000
 
+
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
Version : 6 Classe : 0xf0 Label : 000000
+
Source : 3ffe:302:12:4::4
 
+
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
+
ICMPv6
 
+
Type : 129 (0x81, Réponse d'écho) Code : 0 Checksum : 0x42cc
Source : 3ffe:302:12:4::4
+
Identificateur : 0x00fd Numéro de séquence : 0x0001
 
+
Données : Celles de la demande
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d
+
 
+
ICMPv6
+
 
+
Type : 129 (0x81, Réponse d'écho) Code : 0 Checksum : 0x42cc
+
 
+
Identificateur : 0x00fd Numéro de séquence : 0x0001
+
 
+
Données : Celles de la demande
+
  
 
La réponse de guma parvient à uma (les messages de sollicitation de voisin échangés ne sont pas montrés dans cet exemple).
 
La réponse de guma parvient à uma (les messages de sollicitation de voisin échangés ne sont pas montrés dans cet exemple).
  
Ethernet Src : 8:0:20:a:aa:6d Dst : 0:0:c0:89:e2:e6 Type : 86dd
+
Ethernet Src : 8:0:20:a:aa:6d Dst : 0:0:c0:89:e2:e6 Type : 86dd
 
+
IPv6
IPv6
+
Version : 6 Classe : 0xf0 Label : 000000
 
+
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
Version : 6 Classe : 0xf0 Label : 000000
+
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
 
+
Desti. : 3ffe:302:12:4::4 (guma)
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
+
ICMPv6
 
+
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x43be
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
+
Identificateur : 0x00fd Numéro de séquence : 0x0001
 
+
Données : Date : 0x337b4e96.00027269 Remplissage ...
Desti. : 3ffe:302:12:4::4 (guma)
+
 
+
ICMPv6
+
 
+
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x43be
+
 
+
Identificateur : 0x00fd Numéro de séquence : 0x0001
+
 
+
Données : Date : 0x337b4e96.00027269 Remplissage ...
+
  
 
Les demandes d'écho suivantes sont adressées directement à l'adresse Ethernet de guma.
 
Les demandes d'écho suivantes sont adressées directement à l'adresse Ethernet de guma.
 
La table de routage d'uma est maintenant :
 
La table de routage d'uma est maintenant :
  
uma# netstat -nrf inet6
+
uma# netstat -nrf inet6
 
+
Routing tables IPv6:
Routing tables IPv6:
+
Destination Gateway Flags Refs Use Mtu Interf
 
+
default fe80::1800:20ff:fe0c:7a34 UGS 0 17 1500 le0
Destination Gateway Flags Refs Use Mtu Interf
+
3ffe:302:12:4::4 0:0:c0:89:e2:e6 UHDL 0 3 1500 le0
 
+
3ffe:200:1:3::1 fe80::200:c0ff:fe86:e2e9 UGHD 0 2 1500 le0
default fe80::1800:20ff:fe0c:7a34 UGS 0 17 1500 le0
+
fe80::200:c0ff:fe86:e2e9 0:0:c0:86:e2:e9 UHDL 1 0 1500 le0
 
+
fe80::1800:20ff:fe0c:7a34 1a:0:20:c:7a:34 UHDL 1 2 1500 le0
3ffe:302:12:4::4 0:0:c0:89:e2:e6 UHDL 0 3 1500 le0
+
.....
 
+
3ffe:200:1:3::1 fe80::200:c0ff:fe86:e2e9 UGHD 0 2 1500 le0
+
 
+
fe80::200:c0ff:fe86:e2e9 0:0:c0:86:e2:e9 UHDL 1 0 1500 le0
+
 
+
fe80::1800:20ff:fe0c:7a34 1a:0:20:c:7a:34 UHDL 1 2 1500 le0
+
 
+
.....
+
  
 
On voit qu'il y a maintenant une ligne avec le drapeau L pour la machine guma. Le drapeau L et l'absence de drapeau G indiquent une machine directement accessible, sans routeur intermédiaire.
 
On voit qu'il y a maintenant une ligne avec le drapeau L pour la machine guma. Le drapeau L et l'absence de drapeau G indiquent une machine directement accessible, sans routeur intermédiaire.

Revision as of 23:03, 18 November 2005

Ping et résolution d'adresses

Les paquets suivants ont été obtenus lors d'un ping entre deux stations IPv6 situées sur le même réseau physique de type Ethernet.


uma# ping6 ganesha
trying to get source for ganesha
source should be 3ffe:302:12:3:a00:20ff:fe0a:aa6d
PING ganesha (3ffe:302:12:3::3): 56 data bytes
64 bytes from 3ffe:302:12:3::3: icmp6_seq=0 ttl=255 time=5.121 ms

Avant de pouvoir émettre un paquet ICMPv6 de demande d'écho, l'émetteur a besoin de connaître l'adresse physique de l'équipement destinataire. Il utilise le protocole de découverte des voisins et émet une trame de sollicitation d'un voisin.

Ethernet Src : 8:0:20:a:aa:6d Dst : 33:33:ff:0:0:3 Type : 0x86dd
IPv6
 Version : 6 Classe : 0xf0 Label : 000000
 Longueur : 32 octets (0x0020) Protocole : 58 (0x3a, ICMPv6)
 Nombre de sauts : 255 (0xff)
 Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
 Desti. : ff02::1:ff00:3 (multicast sollicité associé à 3ffe:302:12:3::3)
ICMPv6
 Type : 135 (0x87, Sollicitation de voisin) Code : 0 Checksum : 0x4d7f
 Cible : 3ffe:302:12:3::3 (ganesha)
 Option :
 Type : 1 (Adresse physique source) Lg : 8 octets (0x01) : 08-00-20-0a-aa-6d 

0000: 6f 00 00 00 00 20 3a ff 3f fe 03 02 00 12 00 03
0010: 0a 00 20 ff fe 0a aa 6d ff 02 00 00 00 00 00 00
0020: 00 00 00 01 ff 00 00 03|87 00 4d 7f 00 00 00 00
0030: 3f fe 03 02 00 12 00 03 00 00 00 00 00 00 00 03|
0040: 01 01 08 00 20 0a aa 6d
</tt>

Dans l'en-tête IPv6, l'adresse de la source est l'adresse globale de l'interface d'émission. On aurait pu penser que l'émetteur utilisait l'adresse locale au lien comme adresse de la source. L'utilisation de l'adresse source globale, comme on le verra par la suite, permet au destinataire de remplir directement sa table de correspondance entre adresse IPv6 et adresse physique, puisque ce dernier trouvera dans la suite du datagramme l'adresse physique de l'émetteur.

L'adresse de destination est l'adresse de multicast sollicité associée à l'adresse recherchée et l'adresse Ethernet de destination est l'adresse associée (cf. Supports de transmission RFC 2464).

L'en-tête ICMPv6 contient dans le champ cible l'adresse IPv6 de la machine dont l'adresse physique est recherchée. On peut remarquer que les trois derniers octets correspondent au groupe de multicast de l'en-tête IPv6.

Le champ option contient l'adresse physique de l'émetteur de la requête.

Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 0x86dd
IPv6
Version : 6 Classe : 0xf0 Label : 000000
Longueur : 32 octets (0x20) Protocole : 58 (0x3a, ICMPv6)
Nombre de sauts : 255 (0xff)
Source : fe80::1800:20ff:fe0c:7a34 (ganesha, lien-local)
Desti. : 3ffe:302:12:3:0a00:20ff:fe0a:aa6d (uma)
ICMPv6
Type : 136 (0x88, Annonce de voisin) Code : 0 Checksum : 0xd7fb
Bits (0x7) R = 1, S = 1, O = 1
Cible : 3ffe:302:12:3::3 (ganesha)
Option :
Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 1a-00-20-0c-7a-34

La machine ganesha, qui écoute sur tous les groupes multicast sollicité associés à ses adresses, reçoit le message de sollicitation de voisin, reconnaît dans la cible une de ses adresses IPv6, et répond. L'adresse source utilisée est locale au lien. Le bit R indique que l'équipement qui répond a une fonction de routeur. Le bit S indique que ce message est une réponse à une demande explicite (le message précédent). Le bit O indique que cette réponse doit remplacer toute valeur connue précédemment. Le champ cible rappelle l'adresse IPv6. Le champ option donne l'adresse physique recherchée.

Date : 21:49:11.408611
Ethernet Src : 8:0:20:a:aa:6d Dst : 1a:0:20:c:7a:34 Type : 0x86dd
IPv6
Version : 6 Classe : 0x00 Label : 000000
Longueur : 64 octets (0x0040) Protocole : 58 (0x3a, ICMPv6)
Nombre de sauts : 255 (0xff)
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
Desti. : 3ffe:302:12:3::3 (ganesha)
ICMPv6
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x0f20
Identificateur : 0x00c0 Numéro de séquence : 0x0000
Données : Date : 0x3468c4c7.000631c7 Remplissage ...

L'émetteur envoie un message ICMPv6 «Demande d'écho».

Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 0x86dd
IPv6
Version : 6 Classe : 0x00 Label : 000000
Longueur : 64 octets (0x0040) Protocole : 58 (0x3a, ICMPv6)
Nombre de sauts : 255 (0xff)
Source : 3ffe:302:12:3::3 (ganesha)
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
ICMPv6
Type : 129 (0x81, Réponse d'écho) Code : 0 Checksum : 0x0e20
Identificateur : 0x00c0 Numéro de séquence : 0x0000
Données : Celles de la demande

Le destinataire acquitte en retournant un message ICMPv6 «Réponse d'écho». Il n'est pas nécessaire de relancer une phase de résolution d'adresse puisque la précédente a permis de remplir le cache.

Les échanges ICMP «Demande d'écho» et «Réponse d'écho» continuent ensuite toutes les secondes. Si les échanges continuent assez longtemps, les deux machines vérifieront périodiquement que le correspondant est toujours correct (il a pu tomber en panne ou être remplacé avec changement d'adresse Ethernet) en utilisant le protocole NUD. Aussi de temps en temps, chaque machine va émettre une trame «sollicitation d'un voisin». Une réponse («annonce de voisin» avec le bit S) montre que le correspondant est toujours valide.

Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 0x86dd
IPv6
Source : fe80::1800:20ff:fe0c:7a34 (ganesha, lien-local)
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
ICMPv6
Type : 135 (0x87, Sollicitation de voisin) Code : 0
Cible : 3f fe 03 02 00 12 00 03 0a 00 20 ff fe 0a aa 6d
Option : aucune

On remarque que le message de sollicitation est directement adressé au destinataire, avec l'adresse qui est enregistrée dans les tables de correspondance. Si une réponse n'arrive pas, la machine émettrice effacera l'entrée de son cache «Résolution de voisin». Tout trafic ultérieur reprendra l'enquête de résolution au début, avec diffusion vers l'adresse multicast sollicité-- au cas où l'adresse Ethernet aurait changée.

Configuration de la route par défaut

En IPv6 seuls les routeurs utilisent des protocoles de routage pour définir leurs tables de routage. Le routage des autres machines repose sur la notion de route par défaut. Comme avec IPv4, l'envoi de messages de redirection est utilisé pour installer de meilleures routes. Périodiquement les routeurs envoient des «Annonce du routeur» qui permettent aux machines sur le câble de choisir un routeur par défaut, et aussi de calculer leur adresse (dans le mode d'autoconfiguration sans état «stateless»).

Un même câble Ethernet relie 3 machines (cf. See Annonces de routeurs) :

   * deux routeurs ganesha et tuna,
   * et une autre machine uma.

Les routeurs émettent périodiquement sur le réseau des messages d'annonce.

Ethernet Src : 1a:0:20:c:7a:34 Dst : 33:33:0:0:0:1 Type : 0x86dd
IPv6
Version : 6 Classe : 0xf Label : 000000
Longueur : 56 octets (0x0038) Protocole : 58 (0x3a, ICMPv6)
Nombre de sauts : 255 (0xff)
Source : fe80::1800:200c:7a34 (ganesha, lien-local)
Desti. : ff02::1 (multicast, tous les n??uds du lien)
ICMPv6
Type : 134 (0x86, Annonce de routeur) Code : 0 Checksum : 0x773c
Nombre de sauts : 0 (non précisé) Gestion d'adresse : 0 (Pas de DHCP)
Validité : 6000 secondes (0x1770) Timers : 0, 0 (non précisés)
Options :
Type : 1 (Adresse physique source) Lg : 8 octets (0x01) : 1a-00-20-0c-7a-34
Type : 3 (Information sur le préfixe) Lg : 32 octets (0x04)
Drapeaux : L=1, A=1 Durée de validité : -1, -1 (infinie)
Préfixe : 3ffe:302:12:3::/64
0000: 6f 00 00 00 00 38 3a ff fe 80 00 00 00 00 00 00
0010: 18 00 20 ff fe 0c 7a 34 ff 02 00 00 00 00 00 00
0020: 00 00 00 00 00 00 00 01|86 00 77 3c 00 00 17 70
0030: 00 00 00 00 00 00 00 00|01 01 1a 00 20 0c 7a 34|
0040: 03 04 40 c0 ff ff ff ff ff ff ff ff 00 00 00 00
0050: 3f fe 03 02 00 12 00 03 00 00 00 00 00 00 00 00

Ce message est envoyé par le routeur ganesha (l'adresse source est l'adresse locale, commençant par fe80), à destination de tous les n?uds sur le câble Ethernet (adresse de destination IPv6 «Tous les n?uds sur le lien» ff02::1 et l'adresse de destination physique est l'adresse MAC de multicast associée). Les informations donnent la durée de vie de cette annonce, des paramètres de configuration pour les n?uds, dont le type de construction d'adresse : mode d'autoconfiguration «stateless» en créant une adresse permanente à partir du préfixe 3ffe:302:12:3::/64.

La table de routage d'uma après réception de ce message contient :

uma# netstat -nrf inet6
Routing tables IPv6:
Destination Gateway Flags Refs Use Mtu Interf
default fe80::1800:20ff:fe0c:7a34 UGS 0 17 1500 le0
fe80::1800:20ff:fe0c:7a34 1a:0:20:c:7a:34 UHDL 1 2 1500 le0
.....

La ligne avec le drapeau L correspond à une machine directement accessible, le champ «Gateway» contient l'adresse IEEE 802. Il s'agit des informations contenues dans la table de correspondance construite par le protocole de découverte des voisins.

Le routeur tuna avait lui aussi émis des annonces de routeur. On pourrait donc aussi enregistrer une route par défaut via tuna ; mais le système ne conserve qu'une route par défaut, et la route possible par tuna est ignorée. De même, il n'y a pas de ligne de correspondance adresse IPv6-adresse Ethernet pour tuna car cette adresse n'a pas été utilisée comme destination.

Indication de redirection

La configuration donnée See Routage par défaut non optimal après la configuration des routes par défaut conduit aux tables de routage suivantes : la route par défaut d'uma pointe sur ganesha, et la route vers la machine externe 3ffe:200:1:3::1 sur ganesha pointe sur tuna.

La machine uma envoie un ping à la machine externe 3ffe:200:1:3::1 en utilisant la route par défaut, non optimale.

uma# ping6 3ffe:200:1:3::1
trying to get source for 3ffe:200:1:3::1
source should be 3ffe:302:12:3:a00:20ff:fe0a:aa6d
PING 3ffe:200:1:3::1: 56 data bytes
64 bytes from 3ffe:200:1:3::1: icmp6_seq=0 ttl=253 time=79.689 ms
.....

En observant le réseau, on trouve le trafic suivant.

Ethernet Src : 8:0:20:a:aa:6d Dst : 1a:0:20:c:7a:34 Type : 86dd
IPv6
Version : 6 Classe : 0x00 Label : 000000
Longueur : 64 octets (0x0040) Protocole : 58 (0x3a, ICMPv6)
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
Desti. : 3ffe:200:1:3::1 (gw-uni)
ICMPv6
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0xd775
Identificateur : 0x00d6 Numéro de séquence : 0x0000
Données : Date : 0x3469a2a4.000d8c8b Remplissage ...
Le message ICMPv6 d'écho est transmis vers l'adresse Ethernet de ganesha, routeur par défaut  d'uma.
Ethernet Src : 1a:0:20:c:7a:34 Dst : 0:0:c0:86:e2:e9 Type : 86dd
IPv6
Version : 6 Classe : 0x00 Label : 000000
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
Desti. : 3ffe:200:1:3::1 (gw-uni)
ICMPv6
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0xd775
Identificateur : 0x00d6 Numéro de séquence : 0x0000
Données : Date : 0x3469a2a4.000d8c8b Remplissage ...

ganesha retransmet le paquet IPv6 non modifié vers l'adresse Ethernet de tuna, qui est le premier relais sur la route vers la destination finale.

Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 86dd
IPv6
Version : 6 Classe : 0xf0 Label : 000000
Longueur : 160 octets (0x00a0) Protocole : (0x3a, ICMPv6)
Source : fe80::1800:20ff:fe0c:7a34 (ganesha,lien-local)
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
ICMPv6
Type : 137 (0x89, Redirection) Code : 0 Checksum : 0x869d
Meilleur routeur : fe80::200:c0ff:fe86:e2e9 (tuna, lien-local)
Destination : 3ffe:200:1:3::1 (gw-uni)
Options :
Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 00-00-c0-86-e2-e9
Type : 4 (Paquet ayant causé le message) Longueur : 112 octets (0x0e)
Début du paquet IPv6 ayant causé le message

ganesha constate que le paquet d'écho a été réémis sur l'interface qui l'avait reçu, et génère donc un message de redirection vers uma pour lui indiquer qu'une meilleure route vers 3ffe:200:1:3::1 utilise le routeur fe80::200:c0ff:fe86:e2e9.

En IPv6 l'adresse Ethernet du routeur est fournie, ce qui évite une résolution supplémentaire.

Ethernet Src : 8:0:20:a:aa:6d Dst : 0:0:c0:86:e2:e9 Type : 86dd
IPv6
Version : 6 Classe : 0x00 Label : 000000
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
Desti. : 3ffe:200:1:3::1 (gw-uni)
ICMPv6
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0xf51f
Identificateur : 0x00d6 Numéro de séquence : 0x0001
Données : Date : 0x3469a2a6.000d6edd Remplissage ...

Le paquet de demande d'écho suivant est envoyé directement vers l'adresse Ethernet de tuna.

La table de routage d'uma est maintenant :

uma# netstat -nrf inet6
Routing tables IPv6:
Destination Gateway Flags Refs Use Mtu Interf
default fe80::1800:20ff:fe0c:7a34 UGS 0 17 1500 le0
3ffe:200:1:3::1 fe80::200:c0ff:fe86:e2e9 UGHD 0 2 1500 le0
fe80::200:c0ff:fe86:e2e9 0:0:c0:86:e2:e9 UHDL 1 0 1500 le0
fe80::1800:20ff:fe0c:7a34 1a:0:20:c:7a:34 UHDL 1 2 1500 le0
.....

Indication de redirection externe

En IPv4, le mécanisme de redirection n'est prévu que pour les machines auxquelles on accède par l'intermédiaire d'un routeur ; la machine émettrice doit connaître les adresses IPv4 directement accessibles (le numéro de réseau correspondant au lien physique), un «ICMP Redirect» ne fonctionne pas pour celles-ci.

En IPv6, il n'est plus nécessaire de connaître tous les préfixes IPv6 correspondant au lien physique, une machine peut se contenter de connaître son adresse, un routeur par défaut, et envoyer tout le trafic inconnu sur ce routeur. Le mécanisme de redirection permettra de rediriger le trafic vers la destination la meilleure dans tous les cas.

Dans l'exemple correspondant à la See Routage par défaut non optimal, supposons que guma a pour adresse globale sur l'interface partagée avec uma 3ffe:302:12:4::4, et que uma n'a pas pris en compte dans ses tables de routage que le câble contient des machines appartenant à un préfixe 3ffe:302:12:4::4/64. Ceci peut être dû au fait que uma n'analyse pas tous les préfixes, ou parce que le préfixe n'est pas annoncé sur le câble. Ce cas de figure est courant si le lien reliant uma et guma est réseau ATM.

La machine uma veut accéder à guma :

uma# ping6 3ffe:302:12:4::4
trying to get source for 3ffe:302:12:4::4
source should be 3ffe:302:12:3:a00:20ff:fe0a:aa6d
PING 3ffe:302:12:4::4: 56 data bytes
64 bytes from 3ffe:302:12:4::4: icmp6_seq=0 ttl=255 time=7.267 ms
.....

Date : 19:57:43.177504
Ethernet Src : 8:0:20:a:aa:6d Dst : 1a:0:20:c:7a:34 Type : 86dd
IPv6
Version : 6 Classe : 0x00 Label : 000000
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
Desti. : 3ffe:302:12:4::4 (guma)
ICMPv6
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x43cc
Identificateur : 0x00fd Numéro de séquence : 0x0000
Données : Date : 0x337b4e95.0002725d Remplissage ...


Puisque uma ne sait pas que guma est directement accessible, le message ICMP d'écho est transmis vers l'adresse Ethernet de ganesha, routeur par défaut d'uma.

Ethernet Src : 1a:0:20:c:7a:34 Dst : 0:0:c0:89:e2:e6 Type : 86dd
IPv6
Version : 6 Classe : 0x00 Label : 000000
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
Desti. : 3ffe:302:12:4::4 (guma)
ICMPv6
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x43cc
Identificateur : 0x00fd Numéro de séquence : 0x0000
Données : Date : 0x337b4e95.0002725d Remplissage ...

ganesha retransmet le paquet non modifié vers guma.

Ethernet Src : 1a:0:20:c:7a:34 Dst : 8:0:20:a:aa:6d Type : 86dd
IPv6
Version : 6 Classe : 0xf0 Label : 000000
Longueur : 160 octets (0x00a0) Protocole : (0x3a, ICMPv6)
Source : fe80::1800:20ff:fe0c:7a34
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d
ICMPv6
Type : 137 (0x89, Redirection) Code : 0 Checksum : 0xfe45
Meilleur routeur : 3ffe:302:12:4::4 (guma)
Destination : 3ffe:302:12:4::4 (guma)
Options :
Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 00-00-c0-89-e2-e6
Type : 4 (Paquet ayant causé le message) Longueur : 112 octets (0x0e)
Début du paquet IPv6 ayant causé le message

De plus ganesha envoie à uma un message de redirection. C'est une redirection vers une machine sur le lien physique, ce qui est indiqué par le fait que les champs «Meilleur routeur» et «Destination» sont égaux (le premier relais est la destination finale).

Ethernet Src : 0:0:c0:89:e2:e6 Dst : 8:0:20:a:aa:6d Type : 86dd
IPv6
Version : 6 Classe : 0xf0 Label : 000000
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
Source : 3ffe:302:12:4::4
Desti. : 3ffe:302:12:3:a00:20ff:fe0a:aa6d
ICMPv6
Type : 129 (0x81, Réponse d'écho) Code : 0 Checksum : 0x42cc
Identificateur : 0x00fd Numéro de séquence : 0x0001
Données : Celles de la demande

La réponse de guma parvient à uma (les messages de sollicitation de voisin échangés ne sont pas montrés dans cet exemple).

Ethernet Src : 8:0:20:a:aa:6d Dst : 0:0:c0:89:e2:e6 Type : 86dd
IPv6
Version : 6 Classe : 0xf0 Label : 000000
Longueur : 64 octets (0x0040) Protocole : (0x3a, ICMPv6)
Source : 3ffe:302:12:3:a00:20ff:fe0a:aa6d (uma)
Desti. : 3ffe:302:12:4::4 (guma)
ICMPv6
Type : 128 (0x80, Demande d'écho) Code : 0 Checksum : 0x43be
Identificateur : 0x00fd Numéro de séquence : 0x0001
Données : Date : 0x337b4e96.00027269 Remplissage ...

Les demandes d'écho suivantes sont adressées directement à l'adresse Ethernet de guma. La table de routage d'uma est maintenant :

uma# netstat -nrf inet6
Routing tables IPv6:
Destination Gateway Flags Refs Use Mtu Interf
default fe80::1800:20ff:fe0c:7a34 UGS 0 17 1500 le0
3ffe:302:12:4::4 0:0:c0:89:e2:e6 UHDL 0 3 1500 le0
3ffe:200:1:3::1 fe80::200:c0ff:fe86:e2e9 UGHD 0 2 1500 le0
fe80::200:c0ff:fe86:e2e9 0:0:c0:86:e2:e9 UHDL 1 0 1500 le0
fe80::1800:20ff:fe0c:7a34 1a:0:20:c:7a:34 UHDL 1 2 1500 le0
.....

On voit qu'il y a maintenant une ligne avec le drapeau L pour la machine guma. Le drapeau L et l'absence de drapeau G indiquent une machine directement accessible, sans routeur intermédiaire.

Personal tools