Difference between revisions of "Mise en oeuvre de la configuration automatique"
From Livre IPv6
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | {{Suivi|DHCPv6|DHCPv6|Bonnes pratiques de la configuration automatique|Bonnes pratiques de la configuration automatique}} | ||
+ | |||
{{ToDo|Configuration de NDP sur Cisco}} | {{ToDo|Configuration de NDP sur Cisco}} | ||
+ | |||
+ | {{ToDo|Changer les 3FFE en 2001}} | ||
+ | |||
+ | {{ToDo|Pour BSD et MAC lister les sysctl (http://www.bsdforen.de/showthread.php?p=79968)}} | ||
==Ping et résolution d'adresses== | ==Ping et résolution d'adresses== | ||
Line 440: | Line 446: | ||
=Exemple de découverte du MTU= | =Exemple de découverte du MTU= | ||
− | |||
Cet exemple montre les premiers paquets échangés lors d'une ouverture de connexion TCP. Les machines sont situées sur deux réseaux Ethernet distincts (MTU de 1 500 octets) et interconnectés par un tunnel IPv4 (MTU de 1 480 octets du fait de la présence de l'en-tête IPv4 supplémentaire). | Cet exemple montre les premiers paquets échangés lors d'une ouverture de connexion TCP. Les machines sont situées sur deux réseaux Ethernet distincts (MTU de 1 500 octets) et interconnectés par un tunnel IPv4 (MTU de 1 480 octets du fait de la présence de l'en-tête IPv4 supplémentaire). | ||
Line 580: | Line 585: | ||
L'émetteur retransmet les données perdues en se limitant cette fois aux 1 420 octets permis (soit 1 480 moins les en-têtes IPv6 et TCP). | L'émetteur retransmet les données perdues en se limitant cette fois aux 1 420 octets permis (soit 1 480 moins les en-têtes IPv6 et TCP). | ||
+ | |||
+ | {{Suivi|DHCPv6|DHCPv6|Bonnes pratiques de la configuration automatique|Bonnes pratiques de la configuration automatique}} |
Latest revision as of 08:03, 7 March 2011
DHCPv6 | Table des matières | Bonnes pratiques de la configuration automatique |
TODO | Configuration de NDP sur Cisco |
TODO | Changer les 3FFE en 2001 |
TODO | {{{1}}} |
Contents
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
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
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
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.
Exemple de configuration sans état
La machine à l'activation de l'interface réseau crée l'adresse lien-local provisoire et débute l'algorithme DAD. Elle émet un message de sollicitation d'un voisin à l'adresse multicast sollicité associée à son adresse provisoire. Son adresse de source est indéterminée car son état est encore provisoire pour le moment et ne sert que pour la réception. L'adresse dont l'unicité est vérifiée est placée dans le champ cible.
Ethernet Src : 8:0:20:a:aa:6d Dst : 33:33:ff:a:aa:6d Type : 0x86dd IPv6 Version : 6 Priorité : 0xf0 Label: 000000 Longueur : 24 octets (0x0018) Protocole : 58 (0x3a, ICMPv6) Nombre de sauts : 255 (0x0ff) Source : :: Desti. : ff02::1:ff0a:aa6d (multicast sollicité associé à l'adresse cible) ICMPv6 Type : 135 (0x87, Sollicitation d'un voisin) Code : 0 Checksum : 0xfe37 cible : fe80::0a00:20ff:fe0a:aa6d (uma, lien-local) 0000: 6f 00 00 00 00 18 3a ff 00 00 00 00 00 00 00 00 0010: 00 00 00 00 00 00 00 00 ff 02 00 00 00 00 00 00 0020: 00 00 00 01 ff 0a aa 6d|87 00 fe 37 00 00 00 00 0030: fe 80 00 00 00 00 00 00 0a 00 20 ff fe 0a aa 6d
Ce message ne peut être utilisé pour mettre à jour le cache de résolution d'adresses d'un voisin car l'adresse de la source a un statut de provisoire, en conséquence l'option adresse physique de la source ne figure pas dans le message. Le message de sollicitation d'un voisin sera émis au moins deux fois. Si rien n'est reçu, l'identifiant sera considéré unique et l'adresse passera dans l'état valide. Par contre, si elle reçoit le message annonce d'un voisin comme ci-dessous, l'adresse est entrée en collision avec une adresse valide utilisée par un voisin. L'adresse ne peut être affectée à l'interface. Une intervention humaine devient nécessaire.
Ethernet Src : 8:0:20:a:aa:6d Dst : 33:33:0:0:0:1 Type : 0x86dd IPv6 Version : 6 Priorité : 0xf0 Label: 000000 Longueur : 32 octets (0x0020) Protocole : 58 (0x3a, ICMPv6) Nombre de sauts : 255 (0x0ff) Source : fe80::a00:20ff:fe0a:aa6d Desti. : ff02::1 (multicast, tous les noeuds du lien) ICMPv6 Type : 136 (0x88, Annonce d'un voisin) Code : 0 Checksum : 0xe036 Bits (0x7) R = 0, S = 0, O = 1 cible : fe80::a00:20ff:fe0a:aa6d Option : Type : 2 (Adresse physique cible) Lg : 8 octets (0x01) : 08-00-20-0a-aa-6d 0000: 6f 00 00 00 00 20 3a ff fe 80 00 00 00 00 00 00 0010: 0a 00 20 ff fe 0a aa 6d ff 02 00 00 00 00 00 00 0020: 00 00 00 00 00 00 00 01|88 00 e0 36 20 00 00 00 0030: fe 80 00 00 00 00 00 00 0a 00 20 ff fe 0a aa 6d| 0040: 02 01 08 00 20 0a aa 6d
Comme le message sollicitation d'un voisin ne comportait pas d'adresse de source, le message annonce d'un voisin est émis au groupe de tous les noeuds du lien (ff02::1).
Après avoir exécuté l'algorithme DAD avec l'adresse lien-local comme l'exemple précédent l'a montré (en supposant que l'adresse n'est pas entrée en collision), la machine émet un message sollicitation du routeur à tous les routeurs du lien (ff02::2).
Ethernet Src : 8:0:20:a:aa:6d Dst : 33:33:0:0:0:2 Type : 0x86dd IPv6 Version : 6 Priorité : 0xf0 Label: 000000 Longueur : 16 octets (0x0010) Protocole : 58 (0x3a, ICMPv6) Nombre de sauts : 255 (0x0ff) Source : fe80::a00:20ff:fe0a:aa6d (uma, lien-local) Desti. : ff02::2 (multicast, tous les routeurs du lien) ICMPv6 Type : 133 (0x85, Sollicitation du routeur) Code : 0 Checksum : 0xd63e Option : Type : 1 (Adresse physique source) Lg : 8 octets (0x01) : 08-00-20-0a-aa-6d 0000: 6f 00 00 00 00 10 3a ff fe 80 00 00 00 00 00 00 0010: 0a 00 20 ff fe 0a aa 6d ff 02 00 00 00 00 00 00 0020: 00 00 00 00 00 00 00 02|85 00 d6 3e 00 00 00 00| 0030: 01 01 08 00 20 0a aa 6d
Si un routeur est présent, un message annonce de routeur est reçu par la machine se configurant. Elle y trouve les bits M, O et les informations sur les préfixes du lien.
Ethernet Src : 1a:0:20:c:7a:34 Dst : 33:33:0:0:0:1 Type : 0x86dd IPv6 Version : 6 Priorité : 0xf0 Label: 000000 Longueur : 56 octets (0x0038) Protocole : 58 (0x3a, ICMPv6) Nombre de sauts : 255 (0x0ff) Source : fe80::1800:20ff:fe0c:7a34 (ganesha, lien-local) Desti. : ff02::1 (multicast, tous les noeuds du lien) ICMPv6 Type : 134 (0x86, Annonce de routeurs) 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
Le message annonce de routeurs est émis vers le groupe de tous les noeuds IPv6 du lien. Le drapeau A étant positionné, le préfixe annoncé peut alors servir à la construction de l'adresse unicast globale. La durée de validité de cette adresse n'est pas limitée. La machine se configurant aura donc l'adresse 3ffe:302:12:3:a00:20ff:fe0a:aa6d.
Exemple de découverte du MTU
Cet exemple montre les premiers paquets échangés lors d'une ouverture de connexion TCP. Les machines sont situées sur deux réseaux Ethernet distincts (MTU de 1 500 octets) et interconnectés par un tunnel IPv4 (MTU de 1 480 octets du fait de la présence de l'en-tête IPv4 supplémentaire).
Paquet 1 IPv6 Version : 6 Classe : 0x00 Label : 00000 Longueur : 40 octets (0x0028) Protocole : 6 (0x06, TCP Nombre de sauts : 64 (0x40) Source : 3ffe:302:12:2::13 (oban) Desti. : 3ffe:304:115:8300:2c0:4fff:fe61:214c (duval) TCP Port Source : 0xffad Port Destination : 0x1389 Sequence : 0x5c3e066a Acquittement : 0x00000000 Offset : 0xa Drapeaux : 0x2 (SYN) fenêtre :0x4000 Checksum : 0x9c2e Ptr Msg urgent : 0x0000 Options : - mss 1440, nop,wscale 0, timestamp 10386372 0 0000: 60 00 00 00 00 28 06 40 3f fe 03 02 00 12 00 02 0010: 00 00 00 00 00 00 00 13 3f fe 03 04 01 15 83 00 0020: 02 c0 4f ff fe 61 21 4c|ff ad 13 89 5c 3e 06 6a 0030: 00 00 00 00 a0 02 40 00 9c 2e 00 00 02 04 05 a0 0040: 01 03 03 00 01 01 08 0a 00 9e 7b c4 00 00 00 00
La phase de connexion commence avec l'émission d'un paquet SYN. Au niveau des options, la taille des segments proposée est de 1440 octets, soit une taille de paquets de 1500 octets si l'on ajoute l'en-tête IPv6 et l'en-tête TCP.
Paquet 2 IPv6 Version : 6 Classe : 00 Label : 00000 Longueur : 40 octets (0x0028) Protocole : 6 (0x06, TCP) Nombre de sauts : 60 (0x3c) Source : 3ffe:304:115:8300:2c0:4fff:fe61:214c(duval) Desti. : 3ffe:302:12:2::13 (oban) TCP Port Source : 0x1389 Port Destination : 0xffad Sequence : 0xe3599c1a Acquittement : 0x5c3e066b Offset : 0xa Drapeaux : 0x12 (SYN ACK) fenêtre :0x42f0 Checksum : 0x145a Ptr Msg urgent : 0x0000 Options : - mss 4410, wscale 0, timestamp 4323715 10386372 0000: 60 00 00 00 00 28 06 3c 3f fe 03 04 01 15 83 00 0010: 02 c0 4f ff fe 61 21 4c 3f fe 03 02 00 12 00 02 0020: 00 00 00 00 00 00 00 13|13 89 ff ad e3 59 9c 1a 0030: 5c 3e 06 6b a0 12 42 f0 14 5a 00 00 02 04 11 3a 0040: 01 03 03 00 01 01 08 0a 00 41 f9 83 00 9e 7b c4
L'entité distante accepte la connexion ainsi que la taille de segment de 1440 octets.
Paquet 3 IPv6 Version : 6 Classe : 00 Label : 00000 Longueur : 32 octets (0x0020) Protocole : 6 (0x06, TCP) Nombre de sauts : 64 (0x40) Source : 3ffe:302:12:2::13 (oban) Desti. : 3ffe:304:115:8300:2c0:4fff:fe61:214c (duval) TCP Port Source : 0xffad Port Destination : 0x1389 Sequence : 0x5c3e066b Acquittement : 0xe3599c1b Offset : 0x8 Drapeaux : 0x10 (ACK) fenêtre :0x4380 Checksum : 0x4b14 Ptr Msg urgent : 0x0000 0000: 60 00 00 00 00 20 06 40 3f fe 03 02 00 12 00 02 0010: 00 00 00 00 00 00 00 13 3f fe 03 04 01 15 83 00 0020: 02 c0 4f ff fe 61 21 4c|ff ad 13 89 5c 3e 06 6b 0030: e3 59 9c 1b 80 10 43 80 4b 14 00 00 01 01 08 0a 0040: 00 9e 7b c4 00 41 f9 83
Fin d'ouverture de connexion.
Paquet 4 IPv6 Version : 6 Classe : 0 Label : 000000 Longueur : 1460 octets (0x05b4) Protocole : 6 (0x06, TCP) Nombre de sauts : 64 (0x40) Source : 3ffe:302:12:2::13 (oban) Desti. : 3ffe:304:115:8300:2c0:4fff:fe61:214c (duval) TCP Port Source : 0xffad Port Destination : 0x1389 Sequence : 0x5c3e066b Acquittement : 0xe3599c1b Offset : 0x8 Drapeaux : 0x10 (ACK) fenêtre :0x4380 Checksum : 0x40a9 Ptr Msg urgent : 0x0000 Données : 1440 octets. 0000: 60 00 00 00 05 b4 06 40 3f fe 03 02 00 12 00 02 0010: 00 00 00 00 00 00 00 13 3f fe 03 04 01 15 83 00 0020: 02 c0 4f ff fe 61 21 4c|ff ad 13 89 5c 3e 06 6b 0030: e3 59 9c 1b 80 10 43 80 40 a9 00 00 01 01 08 0a 0040: 00 9e 7b c4 00 41 f9 83|20 21 22 23 24 25 26 27 ...suite des 1440 octets de données...
Premier envoi de données, en supposant que le PMTU correspond au MSS négocié.
Paquet 5 IPv6 Version : 6 Classe : 00 Label : 00000 Longueur : 536 octets (0x0218) Protocole : 58 (0x3a, ICMPv6) Nombre de sauts : 254 (0x0fe) Source : 3ffe:302:11:1::8 (site-router) Desti. : 3ffe:302:12:2::13 (oban) ICMPv6 Type : 2 (0x02, Paquet trop grand) Code : 0 Checksum : 0e8f7 MTU : 1480 (0x0000 05c8) Données : Paquet ayant provoque l'erreur 0000: 60 00 00 00 02 18 3a fe 3f fe 03 02 00 11 00 01 0010: 00 00 00 00 00 00 00 08 3f fe 03 02 00 12 00 02 0020: 00 00 00 00 00 00 00 13|02 00 e8 f7 00 00 05 c8| 0030: 60 00 00 00 05 b4 06 3e 3f fe 03 02 00 12 00 02 0040: 00 00 00 00 00 00 00 13 3f fe 03 04 01 15 83 00 0050: 02 c0 4f ff fe 61 21 4c|ff ad 13 89 5c 3e 06 6b 0060: e3 59 9c 1b 80 10 43 80 40 a9 00 00 01 01 08 0a 0070: 00 9e 7b c4 00 41 f9 83|20 21 22 23 24 25 26 27 suite du paquet IPv6 tronqué à 1280-48 octets ...
Le routeur gérant le tunnel annonce que ce paquet ne peut être relayé tel quel. Le paquet ICMP retourné inclut le MTU accepté par le tunnel et les premiers octets du paquet concerné. Noter que la taille de ce message ICMPv6 est limitée à 1280 octets. En pratique seule la partie utile du paquet TCP (son en-tête) a été recopiée.
Paquet 6 IPv6 Version : 6 Classe : 00 Label : 00000 Longueur : 1440 octets (0x05a0) Protocole : (0x06, TCP) Nombre de sauts : 64 (0x40) Source : 3ffe:302:12:2::13 (oban) Desti. : 3ffe:304:115:8300:2c0:4fff:fe61:214c (duval) TCP Port Source : 0xffad Port Destination : 0x1389 Sequence : 0x5c3e066b Acquittement : 0xe3599c1b Offset : 0x8 Drapeaux : 0x10 (ACK) fenêtre :0x4380 Checksum : 0x8bb3 Ptr Msg urgent : 0x0000 Données : 1420 octets. 0000: 60 00 00 00 05 a0 06 40 3f fe 03 02 00 12 00 02 0010: 00 00 00 00 00 00 00 13 3f fe 03 04 01 15 83 00 0020: 02 c0 4f ff fe 61 21 4c|ff ad 13 89 5c 3e 06 6b 0030: e3 59 9c 1b 80 10 43 80 8b b3 00 00 01 01 08 0a 0040: 00 9e 7b c4 00 41 f9 83|20 21 22 23 24 25 26 27 0050: 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 suite des 1420 octets de données...
L'émetteur retransmet les données perdues en se limitant cette fois aux 1 420 octets permis (soit 1 480 moins les en-têtes IPv6 et TCP).
DHCPv6 | Table des matières | Bonnes pratiques de la configuration automatique |