ping6.net
Fondamentaux

Types d'adresses IPv6 : Global, Link-Local, Multicast expliqués

Découvrez les différents types d'adresses IPv6 : unicast global pour Internet, link-local pour les LAN, multicast pour les groupes, et plus encore.

ping6.net20 janvier 202410 min read
IPv6types d'adressesunicastmulticastlink-localanycast

Les adresses IPv6 fonctionnent différemment d'IPv4 dans leur façon de délivrer les paquets. Comprendre ces différences est important quand vous déboguez des problèmes réseau ou concevez des systèmes.

TL;DR - Résumé rapide

Points clés :

  • IPv6 utilise unicast (un-à-un), multicast (un-à-plusieurs) et anycast (un-au-plus-proche) — pas de broadcast
  • Unicast global (2xxx/3xxx) pour Internet, link-local (fe80::) pour les segments locaux, ULA (fd00::) pour les réseaux privés
  • Multicast (ffxx::) remplace le broadcast ; le multicast de nœud sollicité rend la découverte de voisins efficace
  • Les adresses link-local nécessitent des ID de zone comme fe80::1%eth0 pour spécifier l'interface

Aller à : Unicast global | Multicast | Référence rapide

Trois modes de livraison#

IPv6 utilise trois modèles de livraison fondamentaux :

  • Unicast : Un émetteur vers un récepteur. La façon standard de communiquer avec un hôte spécifique.
  • Multicast : Un émetteur vers plusieurs récepteurs. Efficace pour la communication de groupe.
  • Anycast : Un émetteur vers le récepteur le plus proche dans un groupe. Utilisé pour l'équilibrage de charge et la redondance.

Pas de broadcast en IPv6

IPv6 élimine complètement le broadcast. Là où IPv4 diffuserait à tous les hôtes (comme les requêtes ARP inondant votre réseau), IPv6 utilise du multicast ciblé. Cela réduit le trafic inutile et améliore l'efficacité du réseau.

Adresses unicast#

Chaque adresse unicast identifie exactement une interface réseau. Envoyez un paquet à cette adresse, et exactement un hôte le reçoit.

Adresses unicast globales (2000::/3)#

Ce sont vos adresses IPv6 publiques, routables sur tout Internet. Si une adresse commence par 2 ou 3, c'est une adresse unicast globale.

2001:0db8:85a3:0000:0000:8a2e:0370:7334
│         │         │              │
│         │         │              └─ ID d'interface (64 bits)
│         │         └──────────────── ID de sous-réseau (16 bits)
│         └────────────────────────── Préfixe de site (48 bits)
└──────────────────────────────────── Préfixe de routage global

La structure typique divise une allocation /48 ainsi :

BitsComposantObjectif
0-47Préfixe de routage globalVotre allocation de votre FAI ou RIR
48-63ID de sous-réseau65 536 sous-réseaux par site
64-127ID d'interfaceGénéré depuis l'adresse MAC ou aléatoire

Les vrais fournisseurs assignent généralement un /48 aux sites, un /56 aux petites entreprises, ou un /64 aux utilisateurs résidentiels. Chaque sous-réseau /64 contient 18 quintillions d'adresses, c'est pourquoi vous découpez sur des limites /64.

Adresses de documentation

Le préfixe 2001:db8::/32 existe uniquement pour la documentation et les exemples. N'utilisez pas ces adresses en production. Chaque exemple dans les RFC utilise 2001:db8 pour une raison — ils n'entreront pas en conflit avec de vrais réseaux.

Chaque interface IPv6 génère automatiquement une adresse link-local quand vous activez IPv6. Ces adresses ne fonctionnent que sur le segment réseau local et ne sont jamais routées.

fe80::1
fe80::a1b2:c3d4:e5f6:7890

Les adresses link-local sont obligatoires pour qu'IPv6 fonctionne. La découverte de voisins, la sollicitation de routeur et d'autres protocoles de base en ont besoin. Votre interface peut ne pas avoir d'adresse globale, mais elle aura toujours une adresse link-local.

ID de zone : spécifier l'interface#

Comme fe80::1 peut exister sur chaque interface, vous devez spécifier quelle interface vous voulez dire :

ping6 fe80::1%eth0      # Linux
ping6 fe80::1%en0       # macOS
ping fe80::1%12         # Windows (utiliser l'index d'interface)

Le symbole % précède l'ID de zone. Sur Linux et macOS, utilisez le nom de l'interface. Sur Windows, utilisez l'index d'interface de netsh interface ipv6 show interface.

Adresses locales uniques (fc00::/7)#

Considérez-les comme la version IPv6 des adresses privées RFC 1918. Elles ne sont pas routables globalement, ce qui les rend adaptées aux réseaux internes.

En pratique, vous verrez des adresses fd00::/8 car la plage fc00::/8 nécessite une allocation centrale qui n'a jamais été implémentée. Générez l'ID global de 40 bits aléatoirement :

fd 3a:c7b1:29f4 :0001:0000:0000:0000:0001
│  └──────────┘  │    └──────────────────┘
│       │        │             │
│       │        │             └─ ID d'interface (64 bits)
│       │        └─────────────── ID de sous-réseau (16 bits)
│       └──────────────────────── ID global aléatoire (40 bits)
└──────────────────────────────── Préfixe ULA (fd = assigné localement)

Quand vous générez cet identifiant de 40 bits aléatoirement, vous minimisez le risque de collision si deux réseaux fusionnent plus tard. N'utilisez pas simplement fd00::1 partout.


Adresses spéciales#

Deux adresses ont des objectifs uniques :

Loopback (::1) : Envoyez des paquets à vous-même. L'équivalent IPv6 de 127.0.0.1. Le trafic vers ::1 ne quitte jamais l'hôte.

Non spécifiée (::) : Représente l'absence d'adresse. Les hôtes utilisent :: comme adresse source pendant DHCPv6 ou quand ils n'ont pas configuré d'adresse. Vous ne pouvez pas envoyer de paquets vers ::.


Adresses multicast (ff00::/8)#

Chaque adresse commençant par ff est multicast. Le paquet va à chaque interface qui a rejoint ce groupe multicast.

Structure d'adresse#

ff 0 2 : 0000:0000:0000:0000:0001
│  │ │   └──────────────────────┘
│  │ │              │
│  │ │              └─ ID de groupe (112 bits)
│  │ └──────────────── Portée (4 bits)
│  └─────────────────── Drapeaux (4 bits)
└────────────────────── Préfixe multicast

Le champ de portée détermine jusqu'où le paquet multicast voyage :

PortéeValeurPlage
Interface-locale1Cette interface uniquement
Link-locale2Segment réseau local
Admin-locale4Limite administrative
Site-locale5Site de l'organisation
Organisation-locale8Plusieurs sites dans l'org
GlobaleeInternet entier

Groupes multicast essentiels#

Plusieurs adresses multicast servent des fonctions critiques :

AdresseObjectif
ff02::1Tous les nœuds sur le lien (remplace le broadcast IPv4)
ff02::2Tous les routeurs sur le lien
ff02::5Tous les routeurs OSPF
ff02::6Tous les routeurs désignés OSPF
ff02::9Tous les routeurs RIP
ff02::1:2Tous les serveurs/relais DHCPv6
ff02::fbmDNSv6 (DNS multicast)

Multicast de nœud sollicité#

Ce mécanisme rend la découverte de voisins efficace. Au lieu de demander à chaque hôte « qui a cette IP ? » (comme ARP), IPv6 demande à un petit groupe multicast.

Chaque adresse unicast génère automatiquement une adresse multicast de nœud sollicité correspondante :

Unicast :       2001:db8:1234:5678::abcd:ef12:3456
                                      └────┬─────┘

                                     (24 derniers bits)

Nœud sollicité : ff02::1:ff12:3456 ────────┘

Quand un hôte doit résoudre 2001:db8:1234:5678::abcd:ef12:3456, il envoie une sollicitation de voisin à ff02::1:ff12:3456. Seuls les hôtes avec des adresses se terminant par 12:3456 traitent la requête. Cela réduit considérablement la charge multicast comparé à la diffusion à tous les hôtes.


Adresses anycast#

Les adresses anycast semblent identiques aux adresses unicast — il n'y a pas de préfixe spécial. La différence est la configuration : vous assignez la même adresse à plusieurs interfaces, et le routage délivre les paquets à celle qui est topologiquement la plus proche.

Cas d'usage courants#

Serveurs racine DNS : Les 13 lettres de serveurs racine (a.root-servers.net à m.root-servers.net) utilisent anycast. Les mêmes adresses IP existent à des centaines d'endroits dans le monde. Votre requête atteint le serveur racine le plus proche.

Serveurs périphériques CDN : Les réseaux de distribution de contenu utilisent anycast pour router les utilisateurs vers les serveurs cache proches. Même adresse, emplacements géographiques différents.

Routeurs relais 6to4 : L'adresse 192.88.99.1 (IPv4) et 2002:c058:6301:: (IPv6) sont des adresses anycast pour les relais 6to4.

Anycast sous-réseau-routeur#

Chaque sous-réseau a automatiquement une adresse anycast réservée avec l'identifiant d'interface mis à zéro :

Sous-réseau :         2001:db8:1234:5678::/64
Sous-réseau-routeur : 2001:db8:1234:5678::

Les routeurs sur ce sous-réseau devraient répondre à cette adresse. En pratique, elle est rarement utilisée.


Référence rapide : identifier les types d'adresses#

Regardez les premiers caractères pour identifier n'importe quelle adresse IPv6 :

Commence parTypePortée
::1LoopbackHôte-local
::Non spécifiéeN/A
fe80:Unicast link-localLink-local
fc00: ou fd00:Unicast local uniquePrivé
ff00: à ffff:MulticastVariable (vérifier 2e chiffre)
2... ou 3...Unicast globalInternet

Tout le reste est soit réservé soit pas encore assigné.

Vérifier vos adresses#

Voyez quelles adresses votre système a configurées :

Linux :

ip -6 addr show

macOS :

ifconfig | grep inet6

Windows :

netsh interface ipv6 show addresses

Vous verrez généralement :

  • Plusieurs adresses link-local (fe80::), une par interface
  • Une ou plusieurs adresses unicast globales si vous avez de la connectivité IPv6
  • L'adresse loopback ::1 sur l'interface loopback
  • Plusieurs appartenances à des groupes multicast (généralement pas affichées par défaut)

Tester le multicast#

Envoyez une requête d'écho ICMPv6 à tous les nœuds sur votre lien local :

# Remplacez eth0 par le nom de votre interface
ping6 ff02::1%eth0

Vous obtiendrez des réponses de chaque appareil IPv6 activé sur ce segment réseau. C'est utile pour la découverte mais peut être bruyant sur de grands réseaux.

Vérifiez si des routeurs sont présents :

ping6 ff02::2%eth0

Seuls les routeurs devraient répondre.

Validez les types d'adresses

Utilisez le Validateur IPv6 pour vérifier n'importe quelle adresse. Entrez une adresse et voyez instantanément son type, sa portée et si elle est valide. Utile lors du dépannage de configurations.


Implications pratiques#

Les différents types d'adresses affectent la façon dont vous concevez les réseaux et déboguez les problèmes :

Politiques de sécurité : Filtrez l'unicast global à votre pare-feu, mais le link-local doit passer pour la découverte de voisins. Bloquer fe80::/10 casse complètement IPv6.

Liaison d'application : Les serveurs qui se lient à :: écoutent sur toutes les adresses (comme 0.0.0.0 en IPv4). Se lier à ::1 restreint à localhost uniquement.

Tables de routage : Les adresses link-local apparaissent comme next-hops dans les tables de routage, ce qui déroute les gens habitués à IPv4. C'est normal — les routeurs utilisent des adresses link-local pour la stabilité car elles ne changent jamais.

DNS : Publiez uniquement les adresses unicast globales dans le DNS. Ne publiez jamais d'adresses link-local ou locales uniques dans les zones DNS publiques.

Comprendre ces types d'adresses n'est pas académique — c'est nécessaire pour configurer les pare-feu, déboguer la connectivité et concevoir des réseaux qui fonctionnent vraiment.

Articles connexes#

Validez les types d'adresses

Utilisez le Validateur IPv6 pour vérifier n'importe quelle adresse. Entrez une adresse et voyez instantanément son type, sa portée et si elle est valide. Utile lors du dépannage de configurations.