Chapitre 4 — IPv6

Contexte

Matière : _Reseaux · Type : fiche de révision · Source : support PDF « Chapitre 4 - NAT - IPv6 », partie 2 (pas de notes de séance) Précédent : Chapitre 4 — NAT et PAT Réviser : Révisions — NAT et IPv6 · Quiz — NAT et IPv6 · Résumé rendu : Résumé chapitre 4 — NAT et IPv6

VLAN

Le titre du PDF annonce « NAT, IPv6 et VLAN », mais le support s’arrête après IPv6 : pas de partie VLAN à réviser pour l’instant.


1. Pourquoi IPv6

IPv4IPv6
Taille d’adresse32 bits128 bits
Nombre d’adresses~4,3 milliards~340 undécillions (3,4 × 10³⁸)
Notationdécimale pointéehexadécimale, 8 groupes séparés par :
Broadcastouinon (remplacé par du multicast)
Résolution IP → MACARPND (ICMPv6)
  • IPv4 date des années 1970 ; les 5 RIR n’ont plus d’adresses IPv4 à distribuer.
  • Adresses privées + NAT ont seulement ralenti la pénurie.
  • La transition se fait progressivement, IPv4 et IPv6 vont coexister longtemps.

3 techniques de migration (IETF) :

  1. Double pile (dual-stack) : l’équipement parle IPv4 et IPv6 en même temps.
  2. Tunneling : on transporte des paquets IPv6 dans des paquets IPv4.
  3. NAT64 : traduction entre adresses IPv6 et IPv4.

2. Écrire une adresse IPv6

  • 128 bits = 8 hextets de 16 bits = 32 caractères hexadécimaux.
  • Hextet : un segment de 16 bits, soit 4 chiffres hexa.
  • Pas sensible à la casse (DB8 = db8).
  • Format privilégié : les 32 caractères écrits en entier.

Les 2 règles de compression

Règle 1 : supprimer les zéros de tête

Dans chaque hextet, on enlève les 0 au début, jamais ceux de la fin (sinon l’adresse devient ambiguë). 0db8 → db8 · 0000 → 0 · 0200 → 200

Règle 2 : le double deux-points ::

:: remplace une seule suite continue d’hextets tout à zéro.

  • Si plusieurs suites sont possibles : sur la plus longue.
  • Si elles sont de même longueur : sur la première.
  • Une seule fois par adresse, sinon on ne sait plus combien de zéros chaque :: remplace.
FormatExemple
Privilégié2001:0db8:0000:1111:0000:0000:0000:0200
Sans zéros de tête2001:db8:0:1111:0:0:0:200
Compressé2001:db8:0:1111::200

Exercices du cours, corrigés

PrivilégiéCompressé
2001:0db8:0000:0000:0000:ff00:0042:83292001:db8::ff00:42:8329
2001:0db8:85a3:0000:0000:8a2e:0370:73342001:db8:85a3::8a2e:370:7334
fe80:0000:0000:0000:0202:b3ff:fe1e:8329fe80::202:b3ff:fe1e:8329
2001:0db8:0000:0000:0001:0000:0000:00012001:db8::1:0:0:1 (égalité : :: sur la première suite)
2001:0db8:abcd:1234:ffff:ffff:ffff:ffff2001:db8:abcd:1234:ffff:ffff:ffff:ffff (rien à compresser)
0000:0000:0000:0000:0000:0000:0000:0000::
0000:0000:0000:0000:0000:0000:0000:0001::1
fe80:0000:0000:0000:0000:0000:0000:0001fe80::1
CompresséPrivilégié
2013:ef12:123:4567:89ab:cdef::12013:ef12:0123:4567:89ab:cdef:0000:0001
fe80::6678:9101:0:34abfe80:0000:0000:0000:6678:9101:0000:34ab
2001:db8:2233:4455:6677::1012001:0db8:2233:4455:6677:0000:0000:0101

Méthode pour décompresser

Compter les hextets présents, puis :: vaut 8 moins ce nombre hextets à zéro. Ensuite, remettre chaque hextet sur 4 chiffres.

Préfixe

  • IPv4 : partie réseau + partie hôte, séparées par le masque (/24…).
  • IPv6 : préfixe + ID d’interface, séparés par la longueur de préfixe (de /0 à /128).
  • Longueur recommandée : /64, pour laisser 64 bits d’ID d’interface (indispensable pour SLAAC).

3. Les types d’adresses

CatégorieRôle
Unicastidentifie une interface ; paquet vers une seule destination
Multicastpaquet vers un groupe de destinations
Anycastadresse unicast donnée à plusieurs hôtes ; le paquet va au plus proche

Anycast, l'exemple du cours

Une université installe plusieurs serveurs Moodle répartis géographiquement avec la même adresse anycast. Chaque étudiant tombe sur le plus proche : moins de latence, même adresse pour tous.

Pas de broadcast en IPv6

Il est remplacé par l’adresse multicast tous les nœuds (ff02::1), qui donne le même résultat.

Les adresses unicast

TypePlageRoutable sur InternetPortéeÉquivalent IPv4
GUA (Global Unicast)2000::/3 (premiers bits 001)ouimondialeIP publique
LLA (Link-Local)fe80::/10 (fe80 à febf)nonle lien seulement169.254.0.0/16 (APIPA)
ULA (Unique Local, RFC 4193)fc00::/7 (fc00 à fdff)nonsite, ou plusieurs sites reliés en privéIP privée RFC 1918
Loopback::1/128nonl’hôte lui-même127.0.0.1
Non spécifiée::/128nonaucune0.0.0.0
IPv4 intégrée::ffff:192.168.1.1 = ::ffff:c0a8:101interopérabilité IPv4/IPv6

Chaque interface IPv6 a au moins 2 unicast

une GUA (pour Internet) et une LLA (obligatoire, pour le lien local).

GUA : structure

Préfixe de routage globalID de sous-réseauID d’interface
48 bits (donné par le FAI)16 bits (l’entreprise)64 bits (l’hôte)

Exemple : 2001:db8:acad::/48 → les 3 premiers hextets sont le préfixe global. L’ID d’interface est l’équivalent de la partie hôte en IPv4 (on dit « interface » parce qu’un hôte peut en avoir plusieurs).

LLA

  • Obligatoire sur toute interface IPv6, statique ou automatique.
  • Sert à parler aux hôtes du même lien, y compris à la passerelle par défaut.
  • Créée automatiquement, sans DHCP, même sans GUA.
  • Unicité vérifiée uniquement sur le lien : les routeurs ne transmettent jamais un paquet dont la source ou la destination est link-local.
  • Exemple d’usage : une imprimante a une LLA (fe80::1a2b:3c4d:5e6f) pour le bureau et une GUA (2001:db8::1) pour être jointe depuis un autre site.

L’adresse non spécifiée ::

Utilisée comme adresse source temporaire quand l’interface n’est pas encore configurée : pendant le DAD, une requête DHCPv6, ou un Neighbor Solicitation pour vérifier qu’une adresse est libre.

ULA vs LLA

ULALLA
Plagefc00::/7fe80::/10
Exemplefd12:3456:789a::1fe80::1a2b:3c4d:5e6f
Routable localementoui (site, VPN)non (lien seulement)
Obligatoirenonoui
Usageserveurs internes, DNS local, inter-sitesNDP, SLAAC, OSPFv3, voisinage
Générationpréfixe /48 pseudo-aléatoireautomatique (EUI-64 ou aléatoire)

4. Configuration statique

Routeur Cisco

R1(config)# ipv6 unicast-routing                      ← active le routage IPv6 (et l'envoi des RA)
R1(config)# interface gigabitEthernet 0/0/0
R1(config-if)# ipv6 address 2001:db8:acad:1::1/64     ← GUA, pas d'espace avant /64
R1(config-if)# ipv6 address fe80::1:1 link-local      ← LLA
R1(config-if)# no shutdown

Pourquoi fixer la LLA sur un routeur

Par défaut Cisco génère la LLA en EUI-64 dès qu’une GUA est posée (sur une interface série, avec la MAC d’une interface Ethernet). Une LLA courte comme fe80::1 est plus facile à reconnaître et à retenir.

Windows : GUA possible en graphique ; LLA seulement en ligne de commande : netsh interface ipv6 add address "Nom" fe80::1234 (et delete address pour retirer).

Linux (temporaire) :

sudo ip -6 addr add <GUA>/64 dev eth0
sudo ip -6 addr add <LLA>/64 dev eth0 scope link
sudo ip -6 route add default via <LLA du routeur> dev eth0

Permanent : /etc/network/interfaces (iface eth0 inet6 static, address, netmask, gateway), puis systemctl restart networking.


5. Configuration automatique

RS et RA

  • Le routeur envoie un RA (Router Advertisement, ICMPv6) toutes les 200 secondes à ff02::1 : préfixe, longueur, passerelle, et comment se configurer.
  • Un hôte pressé envoie un RS (Router Solicitation) à ff02::2 pour recevoir un RA tout de suite.
  • Il faut ipv6 unicast-routing sur le routeur.

Les 3 méthodes pour obtenir une GUA

MéthodeCe que dit le RAAdresseDNSPasserelle
SLAAC« J’ai tout ce qu’il te faut »l’hôte la fabrique (préfixe du RA + son ID)non fourniLLA du routeur
SLAAC + DHCPv6 sans état« Voici le préfixe, demande le reste à un serveur DHCPv6 »l’hôte la fabriqueserveur DHCPv6 sans étatLLA du routeur
DHCPv6 avec état« Demande tout à un serveur DHCPv6 »donnée par le serveurserveur DHCPv6LLA du routeur

La passerelle vient toujours du RA

Un serveur DHCPv6 (avec ou sans état) ne donne jamais la passerelle par défaut. C’est toujours la LLA du routeur qui a envoyé le RA.

Fabriquer l’ID d’interface

EUI-64 (à partir de la MAC 48 bits) :

  1. couper la MAC en deux (OUI 24 bits | ID 24 bits) ;
  2. insérer fffe au milieu ;
  3. inverser le 7e bit (bit U/L).

Exemple du cours

MAC fc:99:47:75:ce:e0 → fc99:47 + ff:fe + 75:cee0 → 7e bit de fc (1111 1100) inversé → fe (1111 1110) → ID d’interface fe99:47ff:fe75:cee0 GUA : 2001:db8:acad:1:fe99:47ff:fe75:cee0 · LLA : fe80::fe99:47ff:fe75:cee0

EUI-64Aléatoire
Avantageon retrouve la machine à partir de l’adresse (traçabilité pour l’admin)vie privée : l’adresse ne trahit pas la MAC
Inconvénientles paquets peuvent être retracés jusqu’à l’ordinateurmoins facile à suivre
Qui l’utiliserouteurs Cisco par défautWindows depuis Vista

DAD (Duplicate Address Detection)

Avant d’utiliser une adresse, l’hôte envoie un NS avec sa propre adresse comme cible (source ::). Si personne ne répond par un NA, l’adresse est unique. Pas obligatoire, mais recommandé par la RFC 4861. C’est l’équivalent d’une requête ARP pour sa propre IP.


6. En-tête IPv6

En-tête fixe de 40 octets (IPv4 : 20 octets minimum, avec options).

ChampTailleÉquivalent IPv4 / rôle
Version4 bits0110 = 6
Classe de trafic8 bits= champ DS (services différenciés)
Étiquette de flux20 bitsnouveau : même étiquette = même traitement par les routeurs
Longueur de charge utile16 bitslongueur des données, sans l’en-tête
En-tête suivant8 bits= champ Protocole
Limite de saut8 bits= TTL ; à 0 → paquet jeté + ICMPv6 Time Exceeded
Adresse source128 bits
Adresse destination128 bits

Disparus par rapport à IPv4 : longueur d’en-tête, identification, indicateurs, décalage de fragment, somme de contrôle d’en-tête, options.

Table de routage IPv6 (show ipv6 route)

  • C : réseau directement connecté (ex. 2001:db8:acad:1::/64).
  • L : adresse locale de l’interface du routeur, en /128 (ex. 2001:db8:acad:1::1/128).
  • S : route statique.
  • FF00::/8 via Null0 : le multicast n’est pas routé.

7. Multicast

AdresseGroupeQui y écoute
ff02::1tous les nœudstous les équipements IPv6 ; le routeur y envoie ses RA
ff02::2tous les routeursles routeurs avec ipv6 unicast-routing ; les hôtes y envoient leurs RS
Nœud sollicitéune adresse par adresse unicastsert aux NS de résolution d’adresse

Multicast de nœud sollicité

Comparable à « tous les nœuds », mais mappée sur une adresse MAC multicast Ethernet spéciale. La carte réseau peut donc jeter la trame sans la remonter au système si elle ne la concerne pas.


8. Sous-réseaux IPv6

  • Le champ ID de sous-réseau est fait pour ça : pas besoin d’emprunter des bits hôte.
  • Avec un /48 et un ID d’interface de 64 bits : ID de sous-réseau de 16 bits → 65 536 sous-réseaux, et 18 quintillions d’adresses par sous-réseau.
  • On compte simplement en hexa sur le 4e hextet :
Sous-réseau
2001:db8:acad:0000::/64
2001:db8:acad:0001::/64
2001:db8:acad:0002::/64
…
2001:db8:acad:ffff::/64

Pas de VLSM pour les liens série

En IPv4, on donne un /30 à une liaison série. En IPv6, la liaison série prend aussi un /64 : on « gaspille », mais avec 65 536 sous-réseaux ce n’est pas un problème.


9. ND remplace ARP

ND / NDP ( Neighbor Discovery, RFC 4861)

Protocole basé sur ICMPv6 qui fait la résolution d’adresses (comme ARP), la découverte de routeur et la redirection.

MessageSensUsage
RS (Router Solicitation)hôte → routeurs (ff02::2)demander un RA tout de suite
RA (Router Advertisement)routeur → tous (ff02::1), toutes les 200 s ou en réponse à un RSpréfixe, longueur, DNS, nom de domaine, passerelle (sa LLA)
NS (Neighbor Solicitation)hôte → multicast de nœud sollicité« quelle est la MAC de cette IPv6 ? » ou DAD
NA (Neighbor Advertisement)réponse au NS« c’est moi, voici ma MAC »
Redirectrouteur → hôteindiquer un meilleur premier saut (comme en ICMPv4)
  • RS / RA : entre hôtes et routeurs (adressage, SLAAC).
  • NS / NA : entre équipements (résolution d’adresse, DAD).

Résolution d'adresse

PC A (2001:db8:acad:1::10) veut joindre 2001:db8:acad:1::50 (PC C).

  1. A envoie un NS à l’adresse multicast de nœud sollicité de ::50, cible 2001:db8:acad:1::50.
  2. Les cartes réseau des autres PC voient que la MAC multicast ne les concerne pas et jettent la trame.
  3. C répond par un NA avec sa MAC (00-0C).
  4. A enregistre IPv6 → MAC dans son cache de voisins (neighbor cache, l’équivalent de la table ARP).

✅ À savoir faire pour l’examen

  • Compresser et décompresser une adresse IPv6 sans erreur (:: une seule fois, sur la plus longue suite).
  • Reconnaître le type d’une adresse à son début (2000::/3, fe80::/10, fc00::/7, ff02::, ::1, ::).
  • Découper une GUA en 48 / 16 / 64.
  • Calculer un ID d’interface EUI-64 à partir d’une MAC.
  • Comparer SLAAC, SLAAC + DHCPv6 sans état, DHCPv6 avec état (qui donne l’adresse, le DNS, la passerelle).
  • Citer les champs de l’en-tête IPv6 et leur équivalent IPv4.
  • Expliquer RS, RA, NS, NA et le rôle du multicast de nœud sollicité.
  • Lister des sous-réseaux /64 à partir d’un /48.

🔗 Voir aussi