Protocole IPv6 : Résumé

Informations globales

Généralités

Protocole de couche 3 sur le modèle OSI : couche réseau.

Successeur du protocole IPv4.

Protocole standard défini dans la RFC 2460.

Types de communications en IPv6

  • Unicast (un hôte à un hôte)
  • Multicast (un hôte à plusieurs hôtes)
  • Anycast (un hôte à l’hôte le plus proche)

Le Broadcast (un hôte à l’ensemble des hôtes de son sous-réseau) n’existe plus en IPv6.

Améliorations par rapport à l’IPv4

  • Nombre d’adresses plus important (3,4×1038 adresses)
  • Distribution des adresses plus équitable (en fonction des besoins et de la disposition géographique)
  • Implémentation native du Multicast (optionnel en IPv4) et de la sécurité (par le biais d’IPSec)
  • Support de la mobilité (Roaming)
  • En-tête de protocole simplifiée et restructurée

En-tête IPv6 de base

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class |           Flow Label                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Payload Length        |  Next Header  |   Hop Limit   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                    Source Address (128 bits)                  +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                 Destination Address (128 bits)                +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Version : Version du protocole – (4 bits)
  • Traffic Class : Gestion de la qualité de service (QoS) – (8 bits)
  • Flow Label : Marquage des flux pour traitement différencié sur le réseau – (20 bits)
  • Payload Length : Taille du conteneur en octets – (16 bits)
  • Next Header : Identification de l’en-tête suivant – (8 bits)
  • Hop Limit : Durée de vie du paquet (TTL), décrémenté à chaque passage par un routeur, le paquet est détruit si la valeur tombe à zéro – (8 bits)

Méthodes d’attribution des adresses

Configuration statique.

Attribution par Statefull DHCP : DHCP Traditionnel qui fournit la configuration IPv6 des hôtes (par le biais d’un pool d’adresses et d’options comme le DNS, la passerelle, etc.).

Attribution par Stateless DHCP : Auto-configuration de l’interface selon le préfixe annoncé par le routeur, seules les options sont fournies par le serveur DHCP.

L’adressage en IPv6

Adresses IPv6

Adresses codées sur 128 bits et exprimées en 8 groupes de 4 caractères hexadécimaux séparés par « : ».

L’identifiant réseau de l’adresse est nommé préfixe. La longueur du préfixe, sous la forme de « /x », indique le nombre de bits dans l’identifiant réseau de l’adresse. Exemples :

  • 2001:0AB8:3409:C0AB:0001:AEFF:FE00:C801/64 : exemple d’adresse globale
  • FE80:0000:0000:0000:021C:2BFF:FE49:ABCD : exemple d’adresse link-local

Simplification de l’écriture des adresses IPv6

Règle n°1 : Les groupes complets de zéro consécutifs peuvent être remplacés par « :: », une seule fois dans l’adresse.

Règle n°2 : Les zéro non-significatifs ne doivent pas être écrits (ceux situés à gauche du groupe de caractères).

Exemple :

Adresse complète :		2001:ABCD:0000:0000:0ADE:0000:0123:C891/64
Règle 1 :			2001:ABCD::0ADE:0000:0123:C891/64
Règle 2 :			2001:ABCD::ADE:0:123:C891/64

Adresses Globales Unicast

Définies dans la RFC 3587.

Ces adresses sont équivalentes aux adresses publiques IPv4 car elles sont routables à la fois dans un réseau privé que sur un réseau public. La plage d’adresses 2000::/3 est réservée par l’IANA pour l’adressage public (toutes les adresses commençant par 2 et 3).

Format standard :

+---+---------------------+-----------+----------------------------+
| 3 |     45 bits         |  16 bits  |       64 bits              |
+---+---------------------+-----------+----------------------------+
| 2 |    001:DB8:2C2:     |   12B3:   |    0000:0000:0000:0001     |
|   |global routing prefix| subnet ID |       interface ID         |
+---+---------------------+-----------+----------------------------+

En définitive, un fournisseur d’accès à Internet (FAI) peut se voir attribuer le préfixe 2001:DB8::/32 et, par la suite, attribuer le préfixe 2001:DB8:2C2::/48 à une entreprise cliente.

Si cette dernière respecte le principe d’identifiant hôte de 64 bits, il lui reste 16 bits pour ses découpes de sous-réseaux.

Remarque :

Le découpage en sous-réseaux IPv6 respecte la même logique qu’en IPv4. Les adresses d’un même réseau ont le même identifiant réseau (appelé préfixe en IPv6). La longueur du préfixe donnée en « /x » défini le nombre de bits de l’identifiant réseau.

Adresses Unique Local Unicast

Définies dans la RFC 4193.

Ces adresses sont équivalentes aux adresses privées IPv4 car elles sont routables uniquement au sein d’un réseau privé. La logique de découpage en sous-réseaux correspond aux adresses globales mais le préfixe unique local n’est pas géré globalement.

Les adresses unique local appartiennent à la plage FC00::/8.

Format standard :

  • L : Doit être défini à 1 si le préfixe est alloué localement, le 0 étant réservé à un usage futur
+--------+-+------------+-----------+----------------------------+
| 7 bits |1|  40 bits   |  16 bits  |          64 bits           |
+--------+-+------------+-----------+----------------------------+
|   FC   | | 00:DB8:2C2:|   12B3:   |     0000:0000:0000:0001    |
| Prefix |L| Global ID  | Subnet ID |        Interface ID        |
+--------+-+------------+-----------+----------------------------+

Le principe de découpage en sous-réseaux des adresses unique local suit la même logique que les adresses globales. Le Global-ID est à choisir arbitrairement pour l’ensemble du réseau privé.

Adresses Link-Local

Ces adresses ne fonctionnent qu’au sein du réseau local (au sens très strict du terme, à savoir les hôtes dans le même sous-réseau, dans le même domaine de diffusion, dans le même VLAN, etc.). Ces adresses ne sont pas routables, elles sont utilisées par les machines pour certains protocoles (protocoles de routage, Neighbor Discovery, etc.).

Format standard :

+----------+-------------------------+----------------------------+
|   10     |                         |                            |
|  bits    |         54 bits         |          64 bits           |
+----------+-------------------------+----------------------------+
|  FE80:   |     0000:0000:0000      |     0000:0000:0000:0001    |
|1111111010|           0             |       interface ID         |
+----------+-------------------------+----------------------------+

Toute interface sur laquelle on active l’IPv6 génère automatiquement une adresse link-local, soit en générant les 64 bits hôtes aléatoirement, soit en utilisant la méthode EUI-64.

Méthode EUI-64

Il s’agit d’une méthode de génération d’un identifiant de 64 bits basé sur l’adresse MAC d’une interface.

Adresse MAC de base :			0001:ACD1:000C			48 bits de l'adresse MAC

Ajout de 16 bits (FF:FE) :		0001:ACFF:FED1:000C		64 bits

Inversion du 7ème bit :			0201:ACFF:FED1:000C		EUI-64 terminé

Plus d’infos sur la méthode : ici

Adresses Multicast

Contrairement aux autres types, les adresses Multicast ne sont pas attribuées à des interfaces mais représentent un groupe d’interfaces cibles dans un réseau local ou en dehors selon la portée de l’adresse.

La plage d’adresse FF00::/8 est réservée au Multicast.

Adresses Multicast particulières :

FF02 :: /16 Adresses Multicast de portée locale.
FF02 :: 1 Toutes les machines du réseau local (remplaçant du Broadcast). Toute interface fonctionnant en Ipv6 rejoint ce groupe.
FF02 :: 2 Tous les routeurs d’un réseau local.
FF02 :: 5 Tous les routeurs OSPFv3 du réseau local.
FF02 :: 6 Tous les routeurs OSPFv3 DR/BDR du réseau local.
FF02 :: 9 Tous les routeurs RIPng du réseau local.
FF02 :: A Tous les routeurs EIGRP du réseau local.
FF02 :: 1 : FF00 :: /104 « Sollicited Node Multicast Address » adresse Multicast dérivée d’une adresse configurée sur l’interface concernée.

Remarque :

Une trame Ethernet qui véhicule un paquet IPv6 Multicast aura généralement une adresse MAC destination Multicast IPv6 sous la forme 3333.xxxx.xxxx (adresse MAC IPv6).

Adresses particulières

:: /128
Adresse IPv6 indéterminée, utilisée par un hôte pour remplir une information d’adressage quand il n’en dispose pas encore (ex: requête DHCP).
:: 1 /128
Adresse Loopback IPv6 (équivalent du 127.0.0.1 en IPv4).
:: /0
Toute la plage d’adresses IPv6, utilisé pour la configuration d’une route par défaut (par exemple).

IPv6 Neighbor Discovery Protocol

Ce protocole est défini dans la RFC 4861.

Protocole servant principalement à la résolution des adresses physiques en fonction d’une adresse IPv6 pour les opérations suivantes :

  • SLAAC : State Less Address Auto Configuration, messages du protocole NDP pour l’obtention du préfixe et de sa longueur auprès du routeur.
  • Routeur Discovery : Découverte des routeurs présents dans le même réseau local.
  • Duplicate Address Detection : Détection de duplications d’adresses IPv6 dans le même réseau local.
  • Neighbor Discovery : Obtention d’une adresse MAC en fonction d’une adresse IPv6 (équivalent ARP).

Router Discovery

Illustration du fonctionnement "router discovery"

  1. Le PC émet un message NDP de type Router Solicitation destiné à tous les routeurs (FF02 :: 2).
  2. Le routeur répond par un message Router Advertisment destiné au PC et contenant, notamment, son adresse Link-Local.

SLAAC (auto-configuration)

Illustration du fonctionnement "SLAAC"

  1. Le PC émet un message NDP de type Router Solicitation destiné à tous les routeurs (FF02 :: 2).
  2. Le routeur répond par un message Router Advertisment destiné au PC auquel il joint les informations relatives au préfixe et à sa longueur à utiliser sur le réseau.
  3. Le PC peut alors auto-configurer une adresse IPv6 en combinant le préfixe fourni et un identifiant hôte généré en EUI-64 ou aléatoirement.

Neighbor Solicitation

Illustration du fonctionnement "neighbor solicitation"

  1. Le PC1 émet un message Neighboor Solicitation destiné à l’adresse Multicast « Solicited Node », dérivée de l’adresse Unicast recherchée (FF002 :: 1 : FFXX : XXXX, ou les « X » représentent la valeur des 24 derniers bits de l’adresse Unicast).
  2. Le PC2 répond par un message Neighbor Advertisment en fournissant l’adresse MAC correspondant à son adresse Unicast.

Duplicate Address Detection

Illustration du fonctionnement "duplicate address detection"

  1. Le PC1 émet un message Neighbor Solicitation pour sa propre adresse.
  2. Le PC2 répond par un message Neighbor Advertisment en fournissant l’adresse MAC correspondant à son adresse Unicast.
  3. Le PC1 détecte alors que l’adresse est déjà en cours d’utilisation, vu qu’un autre hôte que lui répond à la sollicitation.