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

From Livre IPv6

(Indication de redirection externe)
(<div id="defaut">Configuration de la route par défaut</div>)
 
(16 intermediate revisions by 2 users not shown)
Line 25: Line 25:
 
   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: ''6<font color="blue">f 0</font>0 00 00 <font color="blue">00 20</font> 3a <font color="blue">ff</font> 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 <font color="blue">ff 02 00 00 00 00 00 00</font>''
  0020: 00 00 00 01 ff 00 00 03|87 00 4d 7f 00 00 00 00
+
  0020: ''<font color="blue">00 00 00 01 ff 00 00 03</font>|87 <font color="blue">00</font> 4d 7f <font color="blue">00 00 00 00</font>''
  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 <font color="blue">01</font> 08 00 20 0a aa 6d''
 
   
 
   
 
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  et l'adresse Ethernet de destination est l'adresse associée (cf. [[Supports de transmission]] RFC  2464).
+
L'adresse de destination est l'adresse de [[Réseaux à diffusion#sol|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 53: Line 53:
 
   Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 1a-00-20-0c-7a-34
 
   Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 1a-00-20-0c-7a-34
  
La machine <tt>ganesha</tt>, 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 <tt>R</tt> indique que l'équipement qui répond a une fonction de routeur. Le bit <tt>S</tt> indique que ce message est une réponse à une demande explicite (le message précédent). Le bit <tt>O</tt> 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.
+
La machine <tt>ganesha</tt>, qui écoute sur tous les groupes [[Réseaux à diffusion#sol|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 <tt>R</tt> indique que l'équipement qui répond a une fonction de routeur. Le bit <tt>S</tt> indique que ce message est une réponse à une demande explicite (le message précédent). Le bit <tt>O</tt> 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.
  
 
  Ethernet Src : 8:0:20:a:aa:6d Dst : 1a:0:20:c:7a:34 Type : 0x86dd
 
  Ethernet Src : 8:0:20:a:aa:6d Dst : 1a:0:20:c:7a:34 Type : 0x86dd
Line 94: Line 94:
 
  Option : aucune
 
  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.
+
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 [[Réseaux à diffusion#sol|multicast sollicité]]-- au cas où l'adresse Ethernet aurait changée.
  
 
== <div id="defaut">Configuration de la route par défaut</div> ==
 
== <div id="defaut">Configuration de la route par défaut</div> ==
  
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 [[Découverte de voisins#RA|Annonces 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]]).
+
[[image:Fig5-10.png|thumb|right|400px|Figure 5-10 ''Annonces du routeur'']]
 +
 +
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 [[Découverte de voisins#RA|Annonces 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).
  
[[image:CS55.gif]]
 
  
 
Un même câble Ethernet relie 3 machines (cf. figure Annonces de routeurs) :
 
Un même câble Ethernet relie 3 machines (cf. figure Annonces de routeurs) :
Line 106: Line 107:
 
* deux routeurs <tt>ganesha</tt> et <tt>tuna</tt>,
 
* deux routeurs <tt>ganesha</tt> et <tt>tuna</tt>,
 
* et une autre machine <tt>uma</tt>.
 
* et une autre machine <tt>uma</tt>.
 +
 +
  
 
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.
Line 115: Line 118:
 
   Nombre de sauts : 255 (0xff)
 
   Nombre de sauts : 255 (0xff)
 
   Source : fe80::1800:200c:7a34 (ganesha, lien-local)
 
   Source : fe80::1800:200c:7a34 (ganesha, lien-local)
   Desti. : ff02::1 (multicast, tous les n??uds du lien)
+
   Desti. : ff02::1 (multicast, tous les noeuds du lien)
 
  ICMPv6
 
  ICMPv6
 
   Type : 134 (0x86, Annonce de routeur) Code : 0 Checksum : 0x773c
 
   Type : 134 (0x86, Annonce de routeur) Code : 0 Checksum : 0x773c
Line 126: Line 129:
 
   Préfixe : 3ffe:302:12:3::/64
 
   Préfixe : 3ffe:302:12:3::/64
  
  0000: 6f 00 00 00 00 38 3a ff fe 80 00 00 00 00 00 00
+
  0000: 6<font color="blue">f 0</font>0 00 00 <font color="blue">00 38</font> 3a <font color="blue">ff</font> 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
+
  0010: 18 00 20 ff fe 0c 7a 34 <font color="blue">ff 02 00 00 00 00 00 00</font>
  0020: 00 00 00 00 00 00 00 01|86 00 77 3c 00 00 17 70
+
  0020: <font color="blue">00 00 00 00 00 00 00 01</font>|86 <font color="blue">00</font> 77 3c <font color="blue">00</font> 00 <font color="blue">17 70</font>
  0030: 00 00 00 00 00 00 00 00|01 01 1a 00 20 0c 7a 34|
+
  0030: 00 00 00 00 00 00 00 00|<font color="blue">01</font> 01 <font color="blue">1a 00 20 0c 7a 34</font>|
  0040: 03 04 40 c0 ff ff ff ff ff ff ff ff 00 00 00 00
+
  0040: 03 <font color="blue">04</font> 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
+
  0050: <font color="blue">3f fe 03 02 00 12 00 03 00 00 00 00 00 00 00 00</font>
  
Ce message est envoyé par le routeur <tt>ganesha</tt> (l'adresse source est l'adresse locale, commençant par <tt>fe80</tt>), à destination de tous les noeuds sur le câble Ethernet (adresse de destination IPv6 «Tous les noeuds sur le lien» <tt>ff02::1</tt> 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 noeuds, dont le type de construction d'adresse : mode d'autoconfiguration [[''stateless'']] en créant une adresse permanente à partir du préfixe <tt>3ffe:302:12:3::/64</tt>.
+
Ce message est envoyé par le routeur <tt>ganesha</tt> (l'adresse source est l'adresse locale, commençant par <tt>fe80</tt>), à destination de tous les noeuds sur le câble Ethernet (adresse de destination IPv6 «Tous les noeuds sur le lien» <tt>ff02::1</tt> 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 noeuds, dont le type de construction d'adresse : mode d'autoconfiguration ''stateless'' en créant une adresse permanente à partir du préfixe <tt>3ffe:302:12:3::/64</tt>.
  
 
La table de routage d'<tt>uma</tt> après réception de ce message contient :
 
La table de routage d'<tt>uma</tt> 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
 
  Destination                    Gateway                  Flags Refs Use Mtu  Interf
Line 148: Line 151:
 
Le routeur <tt>tuna</tt> avait lui aussi émis des annonces de routeur. On pourrait donc aussi enregistrer une route par défaut via <tt>tuna</tt> ; mais le système ne conserve qu'une route par défaut, et la route possible par <tt>tuna</tt> est ignorée. De même, il n'y a pas de ligne de correspondance adresse IPv6-adresse Ethernet pour <tt>tuna</tt> car cette adresse n'a pas été utilisée comme destination.
 
Le routeur <tt>tuna</tt> avait lui aussi émis des annonces de routeur. On pourrait donc aussi enregistrer une route par défaut via <tt>tuna</tt> ; mais le système ne conserve qu'une route par défaut, et la route possible par <tt>tuna</tt> est ignorée. De même, il n'y a pas de ligne de correspondance adresse IPv6-adresse Ethernet pour <tt>tuna</tt> car cette adresse n'a pas été utilisée comme destination.
  
==Indication de redirection==
+
==<div id="indredir">Indication de redirection</div>==
 +
 
 +
[[image:Fig5-11.png|thumb|right|400px|Figure 5-11 ''Routage par défaut non optimal'']]
  
 
La configuration donnée figure 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'<tt>uma</tt> pointe sur <tt>ganesha</tt>, et la route vers la machine externe <tt>3ffe:200:1:3::1</tt> sur <tt>ganesha</tt> pointe sur <tt>tuna</tt>.
 
La configuration donnée figure 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'<tt>uma</tt> pointe sur <tt>ganesha</tt>, et la route vers la machine externe <tt>3ffe:200:1:3::1</tt> sur <tt>ganesha</tt> pointe sur <tt>tuna</tt>.
  
[[image:CS56.gif]]
 
  
 
La machine <tt>uma</tt> envoie un ping à la machine externe <tt>3ffe:200:1:3::1</tt> en utilisant la route par défaut, non optimale.
 
La machine <tt>uma</tt> envoie un ping à la machine externe <tt>3ffe:200:1:3::1</tt> en utilisant la route par défaut, non optimale.
 +
 +
 +
 +
 +
 +
  
 
  uma# '''ping6 3ffe:200:1:3::1'''
 
  uma# '''ping6 3ffe:200:1:3::1'''
Line 235: Line 245:
  
 
==Indication de redirection externe==
 
==Indication de redirection externe==
 +
 +
[[image:Fig5-11.png|thumb|right|400px|Figure 5-11 ''Routage par défaut non optimal'']]
 +
  
 
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.

Latest revision as of 23:00, 29 November 2007

Découverte de voisins Table des matières Configuration automatique

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

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.

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

Figure 5-10 Annonces du routeur

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 Annonces 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. figure 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 noeuds 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 noeuds sur le câble Ethernet (adresse de destination IPv6 «Tous les noeuds 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 noeuds, 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 U         HDL    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

Figure 5-11 Routage par défaut non optimal

La configuration donnée figure 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

Figure 5-11 Routage par défaut non optimal


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 figure 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 un 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
.....

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.


Découverte de voisins Table des matières Configuration automatique
Personal tools