En Une :

Adressage IPv6

Ce document a pour ambition de montrer la finesse et le confort que peut offrir un plan d'adressage IPv6. On commencera par définir ces identifiants encore trop peu connus. Ensuite, on apprendra à écrire, à simplifier et valider une adresse IPv6. Enfin, on montrera et expliquera comment reconnaitre les différents types d'adresses. On trouvera des informations sur les plans d'adressage IPv6.

Ce document poursuit les objectifs ICND1 :

  • 1.12 Identifier le plan d'adressage IPv6 approprié pour satisfaire aux exigences d'adressage dans un environnement LAN/WAN
  • 1.15 Comparer et mettre en contraste les types d'adresses IPv6
    • 1.15.a Global unicast
    • 1.15.b Unique local
    • 1.15.c Link local
    • 1.15.d Multicast
    • 1.15.e Modified EUI 64
    • 1.15.f Autoconfiguration
    • 1.15.g Anycast
  • 1.13 Configurer, vérifier et dépanner l'adressage IPv6
  • 1.14 Configurer, vérifier le service IPv6 Stateless Address Auto Configuration

1. Introduction aux adresses IPv6

1.1. Définition et étendue d'une adresse IPv6

On rappellera utilement que le protocole IPv6 doit être activé volontairement sur les interfaces des routeurs Cisco contrairement aux systèmes d'exploitation courants comme Windows ou Linux pour lesquels IPv6 est activé par défaut.

Les adresses IPv6 sont des identifiants uniques d'interfaces :

  • codés sur 128 bits
  • et notés en hexadécimal en 8 mots de 16 bits (4 hexas) séparés par des ":".

Le masque identifie la partie fixe d'une adresse qui correspond aussi au numéro de réseau de 64 bits (le préfixe). Le préfixe est l'élément commun à toutes les adresses d'une même plage (au sein d'un réseau).

Par exemple, pour l'adresse "Global Unicat" 2001:0db8:00f4:0845:ea82:0627:e202:24fe/64 dans son écriture extensive :

2001:0db8:00f4:0845:ea82:0627:e202:24fe/64
---- ---- ---- ---- ---- ---- ---- ---- --
16b  16b  16b  16b  16b  16b  16b  16b
------------------- ------------------- --
    Préfixe          Interface ID       Masque

Le préfixe ou la première adresse de la plage est 2001:0db8:00f4:0845::/64. Le /64 correspond aux 64 premiers bits de l'adresse que l'on peut aisément compter.

  • Contrairement à IPv4, cette première adresse peut être attribuée à une interface.
  • Une adresse IPv6 dispose dans 99% des cas d'un masque par défaut de 64 bits noté /64.
  • A priori, plus de calcul de masque exotique. La consigne est contraire à celle d'IPv4 conservatrice : "Jusqu'au gaspillage, réalisez des connexions en IPv6 !"
  • Les 64 derniers bits appelés identifiants d'interface identifient l'interface dans le réseau.

À partir de l'exemple précédent, la valeur ea82:0627:e202:24fe correspond à l'identifiant d'interface.

La plage du bloc IPv6 s'étend sur 264 possibilités d'adresses, de la première adresse à la dernière :

2001:0db8:00f4:0845:0000:0000:0000:0000/64
2001:0db8:00f4:0845:ffff:ffff:ffff:ffff/64
---- ---- ---- ---- ---- ---- ---- ---- --
16b  16b  16b  16b  16b  16b  16b  16b
------------------- ------------------- --
    Préfixe          Interface ID       Masque

Les 64 premiers bits sont identiques pour toutes les adresses d'un même bloc (2001:0db8:00f4:0845). Les 64 derniers bits varient de 0000:0000:0000:0000 à ffff:ffff:ffff:ffff. Cette dernière partie de 64 bits est appelée Identifiant d'interface (IID Interface Identifier). Elle sert à identifier les interfaces au sein du réseau.

1.2. Ecriture résumée

Heureusement, on peut résumer l'écriture d'une adresse IPv6. Les systèmes sont obligés d'accepter ces simplifications d'écriture.

Par exemple, pour l'adresse "Global Unicat" 2001:0db8:00f4:0845:ea82:0627:e202:24fe/64 dans son écriture extensive :

2001:0db8:00f4:0845:ea82:0627:e202:24fe
---- ---- ---- ---- ---- ---- ---- ----
16b  16b  16b  16b  16b  16b  16b  16b
------------------- -------------------
    Préfixe          Interface ID

Voici l'écriture résumée qui respecte deux règles faciles à retenir :

  • Les zéros en en-tête de chaque mot peuvent être optimisés ;
  • Une seule fois seulement, une suite consécutive de mots tout-à-zéro peut être résumée par ::.
2001:0db8:00f4:0845:ea82:0627:e202:24fe
2001:-db8:--f4:-845:ea82:-627:e202:24fe
2001:db8:f4:845:ea82:627:e202:24fe

Ou encore l'adresse fe80:0000:0000:0000:bb38:9f98:0241:8a95 peut être résumée en fe80::bb38:9f98:241:8a95 :

fe80:0000:0000:0000:bb38:9f98:0241:8a95
fe80:----:----:----:bb38:9f98:-241:8a95
fe80::bb38:9f98:241:8a95

1.3. Méthodes de configuration

Une adresse IPv6 attribuée à une interface est constituée d'un préfixe de 64 bits et d'un identifiant d'interface de 64 bits.

Un identifiant d'interface peut être créé de différentes manières :

  • statiquement : 2001:db8:14d6:1::1/64, 2001:db8:14d6:1::254/64,
  • par autoconfiguration (SLAAC) en utilisant l'une de ces trois méthodes :
    1. MAC EUI-64, par défaut (RFC 4862)
    2. tirage pseudo-aléatoire, par défaut chez Microsoft, Ubuntu, Mac OSX (RFC 4941)
    3. CGA, peu implémenté (RFC 3972)
  • dynamiquement : DHCPv6 (RFC 3315) stateful, si le client est installé et activé (par défaut sur Microsoft Windows et Mac OSX)

Une interface IPv6 peut accepter plusieurs adresses dans un même préfixe mais aussi dans des préfixes distincts. L'idée est d'améliorer finement les politiques de routage et de filtrage en fonction de ces adresses.

1.4. Identifiant d'interface MAC EUI64 "Modified"

MAC EUI-64 est une est des méthodes de configuration automatique des ID d'interface qui se fonde sur l'adresse MAC IEEE 802 (48 bits).

On passe d'une adresse codée sur 48 bits à 64 bits en insérant 16 FF:FE au milieu de l'adresse MAC entre les 24 premiers bits et les 24 derniers bits. De plus, la méthode exige que le 7ième bits de poids fort de l'adresse soit inversé passant de la valeur "Local" à "Universal" d'où ce terme "EUI64 Modified".

maceui64

2. Type d'adresses IPv6

En IPv6, il y a pas mal de nouveautés en matière d'adresses :

  • Le Broadcast disparaît d'IPv6. Il est remplacé par l'adressage Multicast plus fin.
  • Une adresse préexiste toujours sur chaque interface activée en IPv6.
  • Les adresses IPv6 rétablissent la connectivité globale (publique).
  • Le NAT en IPv6 ne semble pas indispensable. Il est même déconseillé.
  • Des adresses privées IPv6 restent néanmoins utiles pour transporter du trafic privé (sur des lignes privées, dans des tunnels VPN)

On trouvera plusieurs types d'adresses IPv6.

On distingue principalement les adresses Unicast des adresses Multicast.

2.1. Adresses Unicast

Une adresse Unicast est une adresse qui désigne une seule destination.

Parmi les adresses Unicast, on trouve plusieurs classes réservées à certains usages.

  • Unspecified ::/128 : route non spécifiée
  • Default Route ::/0 : route par défaut
  • Node-Local ::1/128 : adresse de bouclage
  • Link-Local fe80::/10 : adresse obligatoire et indispensable au bon fonctionnement du protocole
  • Global Unicast 2000::/3 : adresse publique
  • Unique Local fc00::/7-fd00::/8 : adresse privée (aléatoire)

Une adresse Anycast ne se distingue pas d'une adresse Unicast ; ce terme "Anycast" désigne une adresse de livraison qui atteindra sa destination par une technique de routage au plus proche ou au plus efficient.

2.2. Adresses Multicast

Une adresse Multicast est une adresse qui désigne potentiellement plusieurs destinations. Les adresses Multicast remplacent utilement les adresses de Broadcast.

On trouvera deux types d'adresse Multicast que l'on reconnait par leur préfixe FF00::/8 :

  • Well-Know Multicast : adresses Multicast bien connues
  • Solicited-Node Multicast : adresses utilisées dans la découverte de voisinage (ND)

3. Comment reconnaître des adresses IPv6 ?

Comment reconnaître les adresses IPv6 d'une interface réseau ? Une approche pratique orientée sur l'interprétation des résultats de quelques commandes peut apporter des réponses. ifconfig, ipconfig, ip addr, ip link, ip neigh, net sh sont des commandes usuelles.

Le résultat de la commande ipconfig sous Windows 8 illustre trois types d'adresses IPv6 unicast (à destination d'une seule interface) que vous allez nécessairement rencontrer dans votre réseau :

  • Link-Local,
  • Global Unicast et
  • Unique Local.
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users\User1>ipconfig

Windows IP Configuration
Ethernet adapter Ethernet0:

Connection-specific DNS Suffix  . : lan.org
IPv6 Address. . . . . . . . . . . : 2001:db8:acaf:fd00::2ae
IPv6 Address. . . . . . . . . . . : 2001:db8:acaf:fd00:b48a:c5e2:e5a3:1f3e
IPv6 Address. . . . . . . . . . . : fd26:44e1:8c70:fd00::2ae
IPv6 Address. . . . . . . . . . . : fd26:44e1:8c70:fd00:b48a:c5e2:e5a3:1f3e
Temporary IPv6 Address. . . . . . : 2001:db8:acaf:fd00:61a9:365c:2d95:898
Temporary IPv6 Address. . . . . . : fd26:44e1:8c70:fd00:61a9:365c:2d95:898
Link-local IPv6 Address . . . . . : fe80::b48a:c5e2:e5a3:1f3e%3
IPv4 Address. . . . . . . . . . . : 192.168.1.195
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : fe80::12fe:edff:fee5:a266%3
 192.168.1.1

On préférera franchement la commande "netsh interface ipv6 show address" plus précise.

C:\Users\user1>netsh int ipv6 show add

Interface 3: Ethernet0
Addr Type  DAD State   Valid Life Pref. Life Address
---------  ----------- ---------- ---------- ------------------------
Dhcp       Preferred    23h15m46s  23h15m46s 2001:db8:acaf:fd00::2ae
Temporary  Preferred     1h53m48s     23m48s 2001:db8:acaf:fd00:61a9:365c:2d95:898
Public     Preferred     1h53m48s     23m48s 2001:db8:acaf:fd00:b48a:c5e2:e5a3:1f3e
Dhcp       Preferred    23h15m46s  23h15m46s fd26:44e1:8c70:fd00::2ae
Temporary  Preferred     1h53m48s     23m48s fd26:44e1:8c70:fd00:61a9:365c:2d95:898
Public     Preferred     1h53m48s     23m48s fd26:44e1:8c70:fd00:b48a:c5e2:e5a3:1f3e
Other      Preferred     infinite   infinite fe80::b48a:c5e2:e5a3:1f3e%3

Sur votre connexion domestique ou professionnelle vous pourriez compter sept adresses IPv6 comme ici, voire plus encore. Quelles sont-elles ?

3.1. Adresse IPv6 unicast Link-Local

On identifiera en premier lieu une adresse Link-Local, obligatoire sur chaque interface activée en IPv6; elle est générée automatiquement et elle est censée être unique sur le lien. On la reconnaît par son préfixe fe80::/10. Cette destination est purement locale sur la liaison de l'interface. Les routeurs IPv6 ne transfèrent pas cette destination. Ici pour cette interface Ethernet0 dont l'identifiant d'interface est généré de manière aléatoire par Windows :

fe80::b48a:c5e2:e5a3:1f3e%3

Quel est leur usage ? On peut les comparer légèrement aux adresses APIPA IPv4 169.254.0.0/16. Mais Neighbor Discovery (ND) indispensable au fonctionnement d'IPv6, DHCPv6 (à des fins de gestion), les protocoles de routage utilisent aussi ces adresses. Leur usage est devenu un standard. On peut aussi les utiliser pour héberger un service local ou pour faire du diagnostic ICMPv6. Attention, une interface ne peut pas fonctionner sans disposer d'une telle adresse Link-Local ! Il est obligatoire au sens où elle est indispensable au fonctionnement ultérieur d'IPv6 sur la connexion. Chaque interface activée en IPv6 doit disposer de ce type d'interface.

Aussi, on remarquera le modulo % suivi du chiffre 3. Cette valeur identifie dans Windows l'interface ethernet0 sur mon PC. En effet, sur un ordinateur ou sur un routeur disposant de plusieurs interfaces, on trouvera le même bloc IPv6 fe80::/64 utilisé par plusieurs interfaces qui ne transfèrent pas ce trafic. Elles sont nécessairement associées par les systèmes avec leur interface de sortie. On trouvera plus bas un exemple avec une sortie Linux.

3.2. Adresse IPv6 Unicast Global Unicast

Ensuite on identifiera plusieurs adresses Global Unicast, soit l'équivalent de nos adresses IPv4 publiques. On les définira plus précisément comme des destinations publiées sur l'Internet. Les routeurs transfèrent le trafic vers ces destinations. Elles sont donc "globalement routables". On les identifie par une valeur comprise entre 0x2000 à 0x3FFF sur les 4 premiers hexas de l'adresse. On remarquera qu'elles partagent ici le préfixe 2001:db8:acaf:fd00::/64 (on reconnaîtra le préfixe de documentation 2001:db8::/32. La première adresse a été attribuée de manière arbitraire par un service DHCPv6. Les deux suivantes sont des adresses dont l'identifiant d'interface a été généré aléatoirement.

2001:db8:acaf:fd00::2ae
2001:db8:acaf:fd00:b48a:c5e2:e5a3:1f3e
2001:db8:acaf:fd00:61a9:365c:2d95:898

Si l'on s'attarde sur les deux dernières adresses générées manifestement de manière aléatoire, elles disposent de durées de vie limitées. L'une, la "publique", sert de destination venant de l'Internet (activez et mettez à jour vos pare-feu IPv6); l'autre, l’adresse temporaire sert toujours comme adresse d'origine du trafic de l'interface pour le trafic à destination de l'Internet. Dans ce cas, l'adresse attribuée par DHCPv6 ne peut servir que comme adresse de destination. Je l'ai implémentée ici à des fins de gestion (résolution dynamique de noms).

3.3. Adresse IPv6 Unicast Unique Local (ULA)

De la même manière on identifiera un troisième type d'adresses : Unique Local Address (ULA). Comparables aux adresses privées IPv4 RFC1918 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16 dans le sens où elles ne sont pas "globalement routables", elles ne connaissent pas de destination sur l'Internet. On les reconnaît par leur préfixe FD00::/8 dont les 40 bits suivants ont été générés aléatoirement pour compléter un préfixe /48.

Cet adressage privé IPv6 est censé être unique afin d'éviter un chevauchement d'adresses identiques à chaque extrémité d'une connexion VPN par exemple.

fd26:44e1:8c70:fd00::2ae
fd26:44e1:8c70:fd00:b48a:c5e2:e5a3:1f3e
fd26:44e1:8c70:fd00:61a9:365c:2d95:898

Quel pourrait être leur usage au XXIe siècle avec un adressage global IPv6 aussi large ?

D'abord, elles sont recommandées par le RFC7084 "Basic Requirements for IPv6 Customer Edge Routers".

On peut les utiliser pour identifier des destinations privées entre des sites distants entre Paris et Lille, entre Bruxelles et Londres ou entre le bâtiment de la rue du commerce et celui du Boulevard du Nord ... à travers des connexions dédiées ou Internet sécurisées par IPSEC .... En deux mots, faciliter le routage privé.

Dans notre exemple, on trouve trois adresses IPv6 ULA : une adresse attribuée par un service DHCPv6 et deux aléatoires.

On remerciera les concepteurs de Microsoft Windows et Apple Mac OS X d'offrir une implémentation aussi complète d'IPv6.

Pour compléter le propos, on ne manquera pas d'observer les paramètres acquis par une station Linux Debian 7 qui offre un service plus "standard" dans les mêmes conditions :

[email protected]:~# ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:59:70:f3  
          inet adr:192.168.1.119  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fd26:44e1:8c70:fd00:ba27:ebff:fe59:70f3/64 Scope:Global
          adr inet6: fe80::ba27:ebff:fe59:70f3/64 Scope:Lien
          adr inet6: 2001:db8:acaf:fd00:ba27:ebff:fe59:70f3/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:93310 errors:0 dropped:49 overruns:0 frame:0
          TX packets:76990 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:11548535 (11.0 MiB)  TX bytes:14021689 (13.3 MiB)

lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:17546 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17546 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          RX bytes:1199358 (1.1 MiB)  TX bytes:1199358 (1.1 MiB)

On trouvera sur cet ordinateur deux interfaces eth0 et lo. La sortie donne la portée de chaque adresse IPv6.

3.4. Identifiant d'interface MAC-EUI64

L'interface eth0 connectée au réseau local ne démarre pas par défaut un client DHCPv6, ce n'est pas erreur. Sur cette interface, on trouvera les trois types d'adresses. Pour chacune, l'identifiant d'interface est identique. Il est généré par la méthode MAC-EUI64 (méthode par défaut). MAC-EUI64 est une méthode standardisée qui vise à obtenir un identifiant d'interface de 64 bits à partir d'une adresse MAC de 48 bits. Aussi, ce n'est pas une erreur mais le comportement par défaut.

fe80::ba27:ebff:fe59:70f3
2001:db8:acaf:fd00:ba27:ebff:fe59:70f3
fd26:44e1:8c70:fd00:ba27:ebff:fe59:70f3

Avez-vous aperçu le souci de confidentialité ? On retrouve l'adresse MAC de l'interface dans l'identifiant d'interface de cette adresse. Cette portion significative de l'adresse permet d'identifier de manière certaine l'interface quel que soit son préfixe. De plus, les 24 premiers bits de l'adresse MAC (ici b8:27:eb) identifient le matériel; à vous de le retrouver.

Soit la méthode MAC-EUI64 insère 16 bits manquants FFFE après les 24 premiers bits de l'adresse MAC (OUI, Organizationally Unique Identifier) dont le 7e bit a été inversé :

de b8:27:eb:59:70:f3, on passe à ba27:ebff:fe59:70f3

16 bits ont été ajoutés et la valeur du deuxième hexa est passée de 8 à a soit augmenté de 1 bit. Ce renversement signifie que l'adresse est "administrée localement".

Il est possible de modifier ce comportement par défaut quel que soit le système d'exploitation.

3.5. Adresse IPv6 Unicast de bouclage (loopback)

On distinguera enfin la notion d'interface de bouclage et de celle d'adresse de bouclage. L'interface lo ne dispose pas d'adresse IPv6 Link-Local : elle ne peut d'ailleurs communiquer qu'avec elle-même. En IPv6, le bouclage indispensable aux systèmes d'exploitation est adressé par une seule adresse spéciale ::1/128.

3.6. Comment tout cela fonctionne-t-il ?

Comment les adresses parviennent-elles à se configurer toutes seules ? Le routeur du réseau local envoie régulièrement des messages "Neighbor Discovery" (ND) (ICMPv6 type 134), appelés des "Router Advertisements" qui poussent ces paramètres de configuration auprès des machines du réseau local. C'est le routeur IPv6 qui configure le réseau et de manière très fine. Les interfaces s'autoconfigurent selon la méthode SLAAC (Stateless Address Autoconfiguration) qui implique un trafic "Neighbor Discovery" (ND) de vérification avec l'usage des adresses Link-Local et du Multicast (NUD et DAD).

Si le Broadcast disparait, ARP est remplacé par ND (ICMPv6). Ce n'est pas anodin et cette nouveauté mérite attention.

DHCPv6 est un nouveau protocole qui se décline en deux formules (avec et sans état) et qui peut se combiner à la méthode SLAAC d'autoconfiguration brièvement décrite ci-dessus. Cette dernière est juste activée par défaut sur tout hôte IPv6. L'usage de DHCPv6 nécessite un logiciel client DHCPv6 (déjà présent sous Windows et Mac) sur l'ordinateur client. Il est conseillé d'utiliser pleinement DHCPv6 dans un réseau bien géré. Il n'y a aucune obligation à laisser les hôtes terminaux s'autoconfigurer.

Enfin, c'est sans parler des comportements et configurations particulières sur Cisco IOS ou autres ou encore des stratégies et techniques de transition, DNS, la sécurité, le développement de code avec de l'IPv6.

3.7. Multicast

La seconde catégorie d'adresses IPv6 sont les adresses Multicast, à destination de certaines interfaces sensibles à une adresse dans laquelle elles se reconnaissent. Pour ce faire, on dit qu'une interface est inscrite dans un groupe Multicast. Une adresse Multicast est une seule adresse de destination à laquelle répondent une ou plusieurs interfaces. Une des intentions du Multicast est de remplacer le broadcast (disparu en IPv6) qui identifie toutes les interfaces des hôtes du réseau. Le trafic Multicast est traduit par une adresse MAC 33:33:00 et sera traité par les commutateurs comme du trafic de broadcast. Une optimisation consisterait à déployer des protocoles qui permettent d'identifier les ports inscrits dans des groupes Multicast. Toutefois, il semblerait que le nombre de groupes dans lequel pourrait s'inscrire chaque interface IPv6 ne permettrait pas aux commutateurs actuels de tenir la charge.

On trouvera deux types d'adresses Multicast :

  • Les adresses IPv6 Well-Know Multicast, connues d'avance, qui identifient des services bien connus,
  • Les adresses IPv6 Solicited-Node Multicast, qui servent à joindre une interface dont on veut connaître l'adresse MAC (Neighbor Solicitation).

La commande "netsh interface ipv6 show joins" nous présente les groupes Multicast auxquels l'interface ethernet0 a souscrit :

C:\Users\User1>netsh int ipv6 show joins

Interface 3: Ethernet0

Scope       References  Last  Address
----------  ----------  ----  ---------------------------------
0                    0  No    ff01::1
0                    0  No    ff02::1
0                    4  Yes   ff02::c
0                    1  Yes   ff02::1:3
0                    2  Yes   ff02::1:ff00:2ae
0                    0  No    ff02::1:ff3f:62e6
0                    2  Yes   ff02::1:ff95:898
0                    3  Yes   ff02::1:ffa3:1f3e

On reconnait les adresses Multicast par leur préfixe ff00::/8.

3.8. Well-Know Multicast

  • ff01::1 : tous les noeuds,
  • ff02::1 : tous les noeuds sur le réseau local,
  • ff02::2 : tous les routeurs sur le réseau local,
  • ff02::5 : tous les routeurs OSPF
  • ff02::6 : tous les routeurs OSPF DR/BDR
  • ff02::9 : tous les routeurs RIP
  • ff02::a : tous les routeurs EIGRP
  • ff02::1:2 : tous les serveurs DHCP sur le réseau local
  • ff02::fb : DNS Multicast sur le réseau local
  • ff02::101 : Tous les serveurs DNS sur le réseau local
  • ff02::c : SSDP (UPnP sous Windows)
  • ff02::1:3 : Link-local Multicast Name Resolution

3.9. Solicited-Node Multicast

Elle sert à joindre une interface dont on veut connaître l'adresse de couche 2. En IPv4, les tables ARP sont remplies grâce à des messages ARP Request directement adressés en adresse MAC de broadcast FF:FF:FF:FF:FF:FF. En IPv6 c'est ICMPv6 avec des messages Neighbor Solicitation/Neighbor Advertisements qui remplissent cette fonction. Etant donné que le broadcast n'existe plus en IPv6, quelle est l'adresse à utiliser pour désigner en IPv6 et en adresse de couche L2 l'hôte de destination puisqu'il s'agit justement de prendre connaissance de l'adresse L2 ?

Une adresse IPv6 Solicited-Node est composée de 104 bits de préfixe complété par les 24 derniers bits de l'adresse IPv6 à joindre.

Si l'adresse à joindre est 2001:db8:acaf:fd00::2ae ou fd26:44e1:8c70:fd00::2ae alors l'adresse Multicast correspondante est ff02::1:ff00:2ae.

Dans notre exemple, les 4 adresses IPv6 Solicited-Node Multicast correspondent :

  • à l'adresse lien local
  • aux adresses attribuées par DHCPv6
  • aux adresses autoconfigurées publiques
  • aux adresses autoconfigurées temporaire

et signifient que l'interface répondra à toutes ces adresses !

3.10. Résumé

Link-Local Global Unicast Unique Local
L'adressage Link-Local (Unicast) se reconnaît par : un préfixe FE80::/10 et un identifiant d'interface de 64 bits autoconfiguré (MAC-EUI64 ou aléatoire) ou fixé (Cisco) Préfixe : 2000::/3 Préfixe : FD00::/8 adressage privé avec 32 bits de préfixe aléatoire
Est obligatoire sur toutes les interfaces quand IPv6 est activé optionnel optionnel
Ces destinations ne sont jamais transférées par les routeurs ! Connectivité de bout en bout nécessaire fonctionne dans un interréseau privé
Ces adresses sont utilisées dans le trafic de gestion comme ND, RA, dans les protocoles de routage. Trafic vers l'Internet Trafic sur des lignes privées (physiques ou virtuelles).

4. Plans d'adressage IPv6

4.1. Objectifs

  • Manipuler les bits, octets, mots en hexa
  • Concevoir des plans d’adressage simples
  • Concevoir des plans d’adressage hiérarchiques et évolutifs
  • Adresser une topologie de laboratoire

4.2. Avantages d’un plan d’adressage

  • Les tables de routage peuvent être réduites et être plus efficientes dans le processus de décision.
  • Les politiques de sécurité peuvent être déployées plus facilement.
  • Des politiques basées sur les applications peuvent être déployées.
  • La gestion et l’approvisionnement du réseau peuvent être facilités.
  • Le diagnostic est facilité, notamment par une meilleure identification.
  • Mise à l’échelle facilitée suite à l’ajout de périphériques ou de sites.

4.3. But d’un plan d’adressage

  • Fournir une capacité d’approvisionnement : connecter un nombre indéterminé de périphériques.
  • Activer (ou non) les capacités de communication des hôtes : à communiquer entre eux (BYOD), communication interréseau (VLANs).
  • Activer (ou non) la communication Internet : on peut orienter/filtrer le routage de certains préfixes ou de certains hôtes.
  • Activer ou non le support d’applications : le filtrage par préfixe permettrait de faciliter le traitement de trafic multimédia ou vocal par exemple (VLANs).
  • Permettre de mieux identifier les hôtes par niveau, emplacement géographique ou organisationnel, par fonction.

4.4. Principe

Le donné est toujours le même. On dispose d’un bloc d’adresses IP. On le découpe en sous-réseaux.

En IPv6 le masque le plus restrictif est un /64.

À la maison, chaque connexion domestique devrait disposer d'une connectivité publique avec un /64. Il est probable que vous ayez à gérer des blocs /48 attribués à votre connexion d'entreprise.

Avec un bloc /48, il reste un mot de 16 bits à découper en 1, en 16, en 256 ou en 4096 sous réseaux ...

On travaille alors principalement sur le quatrième mot d'une adresse.

4.5. Plan d'adressage Simple

On vous livre un bloc fdd4:478f:0611::/48

On peut “conformer” les adresses IPv4 privées ou adresses IPv6, par exemple :

  • 172.16.1.0/24 => fdd4:478f:0611:1::/64,
  • 172.16.255.0/24 => fdd4:478f:0611:255::/64,
  • ...

On peut utiliser un découpage plat, à la volée :

  • fdd4:478f:0611:0::/64,
  • fdd4:478f:0611:1::/64,
  • fdd4:478f:0611:2::/64,
  • fdd4:478f:0611:3::/64, ...

4.6. Plan d'adressage à 2 ou 4 niveaux égaux

On vous livre un bloc fdd4:478f:0611::/48

Il reste 16 bits de libres, soit 4 hexas pour plusieurs stratégies hiérarchiques avec des niveaux géographiques, organisationnels, fonctionnels :

  • Stratégie A : en deux niveaux égaux :
    • Niveau 1 : 256 réseaux (8 bits)/56
    • Niveau 2 : 256 réseaux (8 bits)/64
  • Stratégie B : en quatre niveaux égaux :
    • Niveau 1 : 16 réseaux (4 bits) /52
    • Niveau 2 : 16 réseaux (4 bits) /56
    • Niveau 3 : 16 réseaux (4 bits) /60
    • Niveau 4 : 16 réseaux (4 bits) /64

Exemple : Stratégie A en deux niveaux égaux

  • fdd4:478f:0611::/48 fournit 256 réseaux fdd4:478f:0611:[0-f][0-f]00:/56 contenants eux-mêmes chacun 256 sous réseaux :
    • fdd4:478f:0611:00[0-f][0-f]:/64 ,
    • fdd4:478f:0611:01[0-f][0-f]:/64 ,
    • fdd4:478f:0611:02[0-f][0-f]:/64 ,
    • fdd4:478f:0611:03[0-f][0-f]:/64 ,
    • ...
    • fdd4:478f:0611:fd[0-f][0-f]:/64 ,
    • fdd4:478f:0611:fe[0-f][0-f]:/64 ,
    • fdd4:478f:0611:ff[0-f][0-f]:/64

Exemple : Stratégie B en quatre niveaux égaux

fdd4:478f:0611::/48 fournit 16 réseaux fdd4:478f:0611:[0-f]000:/52

  • Contenants eux-mêmes chacun 16 sous réseaux fdd4:478f:0611:[0-f][0-f]00:/56
  • Contenants eux-mêmes chacun 16 sous réseaux fdd4:478f:0611:[0-f][0-f][0-f]0:/52
  • Contenants eux-mêmes chacun 16 sous réseaux fdd4:478f:0611:[0-f][0-f][0-f][0-f]:/64 ,

4.7. Plan d'adressage à plusieurs niveaux

En trois niveaux :

  • Niveau 1 : 16 (4 bits)/52
  • Niveau 2 : 256 (8 bits)/60
  • Niveau 3 : 16 (4 bits)/64

ou encore :

  • Niveau 1 : 256 (8 bits) /52
  • Niveau 2 : 16 (4 bits) /56
  • Niveau 3 : 16 (4 bits) /60

On trouvera un exemple de plan d'adressage dans le document IPv6 Subnetting - Overview and Case Study : https://supportforums.cisco.com/docs/DOC-17232

4.8. Plan d’adressage en niveaux inégaux

On vous livre un bloc fdd4:478f:0611::/48

Vous disposez d’un site de 4 bâtiments disposant de maximum 8 étages avec plusieurs dizaines de VLANs (/64) par étage.
4 bits pour les bâtiments et 4 bits pour les étages :

  • Bâtiment 1 : 0x0000 - 0x0FFF/52
    • Etage 1 : 0x0000 - 0x00FF/56
    • Etage 2 : 0x0100 - 0x01FF/56
    • Etage 3 : 0x0200 - 0x02FF/56
  • Bâtiment 2 : 0x1000 - 0x1FFF/52
    • Etage 1 : 0x1000 - 0x10FF/56
    • Etage 2 : 0x1100 - 0x11FF/56
    • Etage 3 : 0x1200 - 0x12FF/56
  • ...

4.9. Attribution étalée

“Sparse” mode : attribution étalée

Comme on compte de manière séquentielle par la droite soit 0000, 0001, 0010, 0011,… ou 0, 1, 2, 3, on peut compter par la gauche soit 0000, 1000, 0100, 1100,… ou 0, 8, 4, c, ... par exemple sur le premier hexa pour fdd4:478f:0611:[0-f]000:/52 :

  • fdd4:478f:0611::/52
  • fdd4:478f:0611:8000:/52
  • fdd4:478f:0611:4000:/52
  • fdd4:478f:0611:c000:/52
  • fdd4:478f:0611:2000:/52

Plan d’adressage évolutif réel
http://www.internetsociety.org/deploy360/resources/ipv6-address-planning-guidelines-for-ipv6-address-allocation/

Applications 1er Hexa Regions 2e Hexa Unité d'organisation 3e Hexa Sites 4e Hexa
Data 0 Est 0 Direction 0 Site 1 a
Voice 8 Nord 8 Marketing 1 Site 2 9
Video 4 Ouest 4 Finance 2 Site 3 e
Wireless c Sud c IT 3 - -
Management 2 - - Support commercial 4 - -

5. Considérations pratiques sur les adresses IPv6

Une connectivité de type entreprise reçoit un bloc /48 ou /56, par exemple 2001:db8:1ab::/48 ou 2001:db8:1ab:cd00::/56.

On divise et organise un bloc fixe /48 en 65536 réseaux /64 ou un bloc /56 en 256 réseaux /64.

Les 64 premiers bits, les 3 ou 4 premiers mots sont ceux du réseau (des sous-réseaux) de l'entreprise, qui ne changent jamais.

Toutes les adresses Unicast doivent avoir un masque de 64 bits. Utiliser un autre masque peut rompre le bon fonctionnement de Neighbor Discovery, Secure Neighbor Discovery (SEND), les Privacy Extensions, Mobile IPv6, Embedded-RP (multicast).

On manipule des données de 16 bits : « word » ou « mot », parfois « seizet » voire même « doublet » et pourquoi pas le « twoctet » (Wikipedia FR).

Un service DNS dynamique combiné à DHCPv6 sera utile dans un LAN contrôlé.

Les adresses des routeurs et des serveurs doivent être fixes et peuvent être simplifiées, par exemple fe80::88 ou 2001:0db8:00d6:3000::88.

La politique de filtrage du trafic et de sécurité est un enjeu dans un déploiement d'IPv6.

Le dual-stack (la double pile IPv4/IPv6) est toujours la méthode de transition préférée.

En conclusion, on constate en IPv6 :

  • Un fonctionnement similaire à IPv4 (préfixe/hôtes).
  • Une question de changement culturel :
  • On manipule au maximum 16 bits en hexas : C'est mieux que 32 bits en binaire.
  • On peut dépenser des adresses tant qu'on veut : on n'en manquera plus.
  • On utilise les masques de manière extensive (fixée à maximum /64 sur les réseaux) : il ne faut plus manipuler des masques restrictifs et illisibles
  • Il s'agit d'un changement inéluctable : il n'y a pas de protocole alternatif qui autorise la croissance de l’Internet
Author image
Francois Goffinet est formateur Cisco Systems depuis 2002. Passionné des technologies des réseaux, de virtualisation et en nuage, Web et de cybersécurité souvent en Open Source ou Unix-Like, devops.