Cours BUT Info

Ch. 5 — IPv6

Pourquoi IPv6, l'en-tête simplifié de la RFC 8200 avec extensions chaînées, l'écriture canonique RFC 5952, les plages IANA (2000::/3, fd00::/8, ff00::/8) et les modes de diffusion.

Pourquoi IPv6 ?

Le successeur d'IPv4 (IP Next Generation) répond à quatre motifs :

  • la pénurie d'adresses : les adresses privées plus le NAT n'étaient que des solutions temporaires, aux passerelles de complexité croissante ; IPv6 augmente les possibilités d'adressage ;
  • la complexité de l'en-tête d'IPv4 : le simplifier améliore la gestion des paquets sur les routeurs ;
  • l'explosion de la taille des tables de routage, qui ralentit les routeurs et crée une congestion croissante ;
  • des besoins de services supplémentaires : meilleure gestion des options, authentification, étiquetage des flux de données, mobilité, multi-homing — et un nouveau type de diffusion, l'anycast (RFC 2526) : « 1 vers 1 parmi plusieurs », par exemple atteindre le plus proche serveur d'un groupe spécifié.

L'en-tête fixe (RFC 8200)

L'en-tête IPv6 est plus simple que celui d'IPv4 : plus de champ IHL (l'en-tête est de taille fixe), plus de checksum, la fragmentation a quitté l'en-tête de base, et les adresses font 128 bits.

 0     4        12       16        24      31
+-----+----------+---------------------------+
|  6  | Classe   |    Étiquette de flot      |
|     | du trafic|        (20 bits)          |
+-----+----------+------------+--------------+
| Longueur « charge utile » |En-tête| # sauts |
|                           |suivant| restant |
+---------------------------+-------+---------+
|             Adresse source (128 bits)       |
+---------------------------------------------+
|           Adresse destination (128 bits)    |
+---------------------------------------------+
|        DATA (= données utiles)              |

Champ par champ :

  • Version : 6 sur 4 bits (0110) ;
  • classe du trafic (1 octet) : identique au DiffServ (DSCP) + ECN d'IPv4 ;
  • étiquette de flot (20 bits) : identifiant du flot d'appartenance — ce n'est pas un identifiant de datagramme ; 0 si non utilisé ;
  • longueur de charge utile : le volume (en octets) du champ data uniquement ; si elle vaut 0, c'est un jumbogramme (longueur supérieure à 64 ko) qui utilise une extension spécifique (next header = 0) et des adaptations de TCP et UDP (RFC 2675) ;
  • en-tête suivant (1 octet) : le chaînage des extensions — les « options » d'IPv4. S'il n'y a pas d'extension, il joue le rôle du champ protocole d'IPv4 ; les extensions sont optionnelles et ordonnées, chacune indiquant la nature de la suivante (RFC 6564) ;
  • nombre de sauts maxi : l'équivalent du TTL d'IPv4, simplement renommé.

128 bits, une écriture canonique (RFC 5952)

Une adresse IPv6 tient sur 128 bits (16 octets), soit 2¹²⁸ ≈ 3,4 × 10³⁸ identifiants — de quoi assigner 10⁶ adresses par microseconde pendant 20 ans. L'écriture canonique impose : hexadécimal, séparateur « : » tous les 2 octets (16 bits), puis trois simplifications successives :

FE80 : 0000 : 0000 : 0000 : 0123 : 0000 : 0000 : 4560   écriture complète
FE80 : 0 : 0 : 0 : 123 : 0 : 0 : 4560                  zéros non significatifs retirés
fe80 :: 123 : 0 : 0 : 4560                             première plus longue suite de mots
                                                       nuls remplacée par ::, minuscules

Le résultat s'utilise ensuite comme une adresse classique : socket (IP + port) — 172.18.49.25:80 en IPv4 devient [fe80::2e41:38ff:feb4:7ebc]:80 en IPv6 (crochets obligatoires dans une URL) ; liaison spécifique avec le suffixe %eth0 pour préciser l'interface ; masque en notation CIDR comme préfixe, compatible avec la notion de (sous-)réseau.

Les plages de l'IANA

La répartition des 2¹²⁸ adresses (RFC 6890, registre IANA ipv6-address-space) :

  • ::/8 : adresses réservées. Parmi elles : ::/128 (indéfini, pour l'initialisation — DHCP), ::1/128 (boucle locale, équivalent de 127.0.0.1/8 en IPv4 mais une seule adresse suffit), ::ffff:0:0/96 (mapping IPv4 sur IPv6, RFC 4291 : ::ffff:ac12:3119 s'écrit aussi ::ffff:172.18.49.25) et 64:ff9b::/96 (RFC 6052, traduction IPv4 et IPv6 l'une vers l'autre) ;
  • 2000::/3 : adresses unicast globales, l'équivalent des adresses publiques IPv4, routables sur Internet. La gestion est hiérarchique : IANA délègue aux RIR (Regional Internet Registry), qui alimentent ISP et LIR, jusqu'aux utilisateurs finaux (délégations 2000::/3 → 200x::/23 → 200x::/48 → 200x::/64) ;
  • fc00::/7 : adresses locales uniques, non routables — en pratique fd00::/8 (fc00::/8 est réservé pour un usage futur) ;
  • ff00::/8 : adresses multicast, qui remplacent la diffusion locale et étendent la notion de multi-diffusion. Format : préfixe 1111 1111, 4 bits de drapeaux (T : adresse temporaire ; P : construite sur un préfixe réseau ; R : point de rendez-vous), 4 bits de portée (1 : nœud ; 2 : lien local ; 5 : site local ; e : global), puis un identifiant de groupe — il existe des groupes réservés « tous les nœuds » et « tous les routeurs » ;
  • fe80::/10 : adresses de liaison locale, non routables — l'équivalent des adresses privées IPv4. Elles sont auto-configurées : soit à partir de l'adresse MAC via EUI-64 (la MAC de 6 octets xx:xx:xx:yy:yy:yy devient xx:xx:xx:ff:fe:yy:yy:yy sur 8 octets, donnant fe80::xxxx:xxff:feyy:yyyy), soit par un identifiant pseudo-aléatoire (RFC 8981, meilleure sécurité).

Structure des adresses globales et locales

Une adresse 2000::/3 se découpe en 3 bits 001, 45 bits de routage global, 16 bits de sous-réseau et 64 bits d'interface. Une adresse fe80::/10 commence par 1111 1110 10 suivi de 54 bits à 0, puis des 64 bits d'interface — d'où la forme fe80::… familière.

Les modes de diffusion

Le routage se décline en plusieurs modèles de diffusion : unicast (1 vers 1), anycast (1 vers 1 parmi plusieurs, par exemple le plus proche d'un groupe donné), multicast (1 vers plusieurs), broadcast (1 vers tous) et geocast (1 vers une zone géographique — non pertinent en IP). En pratique, c'est le multicast qui reprend le rôle de la diffusion locale d'IPv4.

A retenir

  • IPv6 = adresses sur 128 bits, en-tête fixe et simplifié (RFC 8200) : classe de trafic, étiquette de flot, charge utile, en-tête suivant (extensions chaînées), nombre de sauts ;
  • écriture canonique RFC 5952 : minuscules, zéros non significatifs supprimés, une seule compression :: sur la plus longue suite de mots nuls ;
  • plages IANA : 2000::/3 (unicast global), fd00::/8 (locales uniques), ff00::/8 (multicast), fe80::/10 (liaison locale auto-configurée), ::1/128 (boucle locale) ;
  • diffusion : unicast, anycast (le plus proche parmi plusieurs), multicast — le broadcast d'IPv4 est remplacé par le multicast.

R205-5-ipv6.pdf

R2.05 · Cours 5 — Datagramme et adresses IPv6 · 21 pages

Consultation seule — téléchargement désactivé

Chargement du document…

Dernière mise à jour le

Sur cette page