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
| IPv4 | IPv6 | |
|---|---|---|
| Taille d’adresse | 32 bits | 128 bits |
| Nombre d’adresses | ~4,3 milliards | ~340 undécillions (3,4 × 10³⁸) |
| Notation | décimale pointée | hexadécimale, 8 groupes séparés par : |
| Broadcast | oui | non (remplacé par du multicast) |
| Résolution IP → MAC | ARP | ND (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) :
- Double pile (dual-stack) : l’équipement parle IPv4 et IPv6 en même temps.
- Tunneling : on transporte des paquets IPv6 dans des paquets IPv4.
- 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.
| Format | Exemple |
|---|---|
| Privilégié | 2001:0db8:0000:1111:0000:0000:0000:0200 |
| Sans zéros de tête | 2001: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:8329 | 2001:db8::ff00:42:8329 |
| 2001:0db8:85a3:0000:0000:8a2e:0370:7334 | 2001:db8:85a3::8a2e:370:7334 |
| fe80:0000:0000:0000:0202:b3ff:fe1e:8329 | fe80::202:b3ff:fe1e:8329 |
| 2001:0db8:0000:0000:0001:0000:0000:0001 | 2001:db8::1:0:0:1 (égalité : :: sur la première suite) |
| 2001:0db8:abcd:1234:ffff:ffff:ffff:ffff | 2001: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:0001 | fe80::1 |
| Compressé | Privilégié |
|---|---|
| 2013:ef12:123:4567:89ab:cdef::1 | 2013:ef12:0123:4567:89ab:cdef:0000:0001 |
| fe80::6678:9101:0:34ab | fe80:0000:0000:0000:6678:9101:0000:34ab |
| 2001:db8:2233:4455:6677::101 | 2001: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égorie | Rôle |
|---|---|
| Unicast | identifie une interface ; paquet vers une seule destination |
| Multicast | paquet vers un groupe de destinations |
| Anycast | adresse 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
| Type | Plage | Routable sur Internet | Portée | Équivalent IPv4 |
|---|---|---|---|---|
| GUA (Global Unicast) | 2000::/3 (premiers bits 001) | oui | mondiale | IP publique |
| LLA (Link-Local) | fe80::/10 (fe80 à febf) | non | le lien seulement | 169.254.0.0/16 (APIPA) |
| ULA (Unique Local, RFC 4193) | fc00::/7 (fc00 à fdff) | non | site, ou plusieurs sites reliés en privé | IP privée RFC 1918 |
| Loopback | ::1/128 | non | l’hôte lui-même | 127.0.0.1 |
| Non spécifiée | ::/128 | non | aucune | 0.0.0.0 |
| IPv4 intégrée | ::ffff:192.168.1.1 = ::ffff:c0a8:101 | interopé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 global | ID de sous-réseau | ID 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
| ULA | LLA | |
|---|---|---|
| Plage | fc00::/7 | fe80::/10 |
| Exemple | fd12:3456:789a::1 | fe80::1a2b:3c4d:5e6f |
| Routable localement | oui (site, VPN) | non (lien seulement) |
| Obligatoire | non | oui |
| Usage | serveurs internes, DNS local, inter-sites | NDP, SLAAC, OSPFv3, voisinage |
| Génération | préfixe /48 pseudo-aléatoire | automatique (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::1est 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::2pour recevoir un RA tout de suite. - Il faut
ipv6 unicast-routingsur le routeur.
Les 3 méthodes pour obtenir une GUA
| Méthode | Ce que dit le RA | Adresse | DNS | Passerelle |
|---|---|---|---|---|
| SLAAC | « J’ai tout ce qu’il te faut » | l’hôte la fabrique (préfixe du RA + son ID) | non fourni | LLA du routeur |
| SLAAC + DHCPv6 sans état | « Voici le préfixe, demande le reste à un serveur DHCPv6 » | l’hôte la fabrique | serveur DHCPv6 sans état | LLA du routeur |
| DHCPv6 avec état | « Demande tout à un serveur DHCPv6 » | donnée par le serveur | serveur DHCPv6 | LLA 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) :
- couper la MAC en deux (OUI 24 bits | ID 24 bits) ;
- insérer
fffeau milieu ; - 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 defc(1111 1100) inversé →fe(1111 1110) → ID d’interfacefe99:47ff:fe75:cee0GUA :2001:db8:acad:1:fe99:47ff:fe75:cee0· LLA :fe80::fe99:47ff:fe75:cee0
| EUI-64 | Aléatoire | |
|---|---|---|
| Avantage | on retrouve la machine à partir de l’adresse (traçabilité pour l’admin) | vie privée : l’adresse ne trahit pas la MAC |
| Inconvénient | les paquets peuvent être retracés jusqu’à l’ordinateur | moins facile à suivre |
| Qui l’utilise | routeurs Cisco par défaut | Windows 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).
| Champ | Taille | Équivalent IPv4 / rôle |
|---|---|---|
| Version | 4 bits | 0110 = 6 |
| Classe de trafic | 8 bits | = champ DS (services différenciés) |
| Étiquette de flux | 20 bits | nouveau : même étiquette = même traitement par les routeurs |
| Longueur de charge utile | 16 bits | longueur des données, sans l’en-tête |
| En-tête suivant | 8 bits | = champ Protocole |
| Limite de saut | 8 bits | = TTL ; à 0 → paquet jeté + ICMPv6 Time Exceeded |
| Adresse source | 128 bits | |
| Adresse destination | 128 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
| Adresse | Groupe | Qui y écoute |
|---|---|---|
| ff02::1 | tous les nœuds | tous les équipements IPv6 ; le routeur y envoie ses RA |
| ff02::2 | tous les routeurs | les routeurs avec ipv6 unicast-routing ; les hôtes y envoient leurs RS |
| Nœud sollicité | une adresse par adresse unicast | sert 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.
| Message | Sens | Usage |
|---|---|---|
| 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 RS | pré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 » |
| Redirect | routeur → hôte | indiquer 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).
- A envoie un NS à l’adresse multicast de nœud sollicité de ::50, cible 2001:db8:acad:1::50.
- Les cartes réseau des autres PC voient que la MAC multicast ne les concerne pas et jettent la trame.
- C répond par un NA avec sa MAC (00-0C).
- 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
- Chapitre 4 — NAT et PAT
- Révisions — NAT et IPv6 · Quiz — NAT et IPv6
- 2026-09-04 — ARP et couche transport : ARP, que ND remplace