Objectifs de certification

CCNA 200-301

  • 1.8 Configurer et vérifier l’adressage et les préfixes IPv6

  • 1.9 Comparer les types d’adresses IPv6

    • 1.9.a Global unicast
    • 1.9.b Unique local
    • 1.9.c Link local
    • 1.9.d Anycast
    • 1.9.e Multicast
    • 1.9.f Modified EUI 64
  • 1.10 Vérifier les paramètres IP des OS clients (Windows, Mac OS, Linux)


Introduction aux adresses IPv6

On commencera par définir ces identifiants IPv6 encore trop peu connus. Ensuite, on apprendra à écrire, à simplifier et à valider une adresse IPv6.

1. Terminologie IPv6

  • Un lien (link) est le support physique (ou la facilité telle un tunnel) de communication entre deux noeuds au niveau de la couche 2 liaisons de données/accès réseau (technologies LAN/WAN).
  • Deux noeuds sur le même lien sont voisins (neighbors).
  • Une interface est l’attachement d’un noeud au lien.
  • Une adresse est un identifiant pour une interface (Unicast) ou pour un ensemble d’interfaces (Multicast). Une interface peut avoir plusieurs adresses IPv6 et être inscrite dans plusieurs groupes Multicast.
  • Un préfixe désigne l’appartenance à un domaine IPv6.
  • Le masque donne l’étendue du domaine IP : il se note après l’adresse et une barre oblique / (“slash”). Il indique le nombre de bits fixes dans une adresse.

2. 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 “:”.
Exemple d'adresse IPv6 Global Unicast

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 Unicast” 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 configurée sur une interface dispose dans 99,999 % des cas d’un masque par défaut de 64 bits noté /64.
  • A priori, plus de calculs 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 2 EXP 64 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.

3. 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 Unicast” 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

4. Types d’adresse 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’adresse IPv6.

Types d'adresse IPv6

On distingue principalement les adresses Unicast des adresses Multicast.

Le RFC intitulé IP Version 6 Addressing Architecture (RFC 4291) indique les adresses dans lesquelles un hôte IPv6 doit se reconnaître :

  • Une adresse Link-local sur chaque interface.
  • Des adresses Unicast ou Anycast qui ont été configurées sur les interfaces du noeud.
  • L’adresse de Loopback.
  • Les adresses All-Nodes Multicast.
  • L’adresse Solicited-Node Multicast pour chacune des adresses Unicast ou Anycast.
  • Les adresses Multicast des groupes joints par le noeud.

Adresses Unicast

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

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

  • 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 (c’est le préfixe fd00::/8 qui est utilisé) : 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.

On remarquera aussi : Unspecified ::/128 : route non spécifiée, et Default Route ::/0 : route par défaut.

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)

Concrètement, plusieurs interface du réseau et de l’inter-réseau se mettent à l’écoute d’une adresse Multicast, c’est-à-dire qu’elles seront potentiellement plusieurs à accepter du trafic à destination de cette adresse Multicast (si il leur est livré par les commutateurs).

5. Méthodes de configuration des interfaces

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, fe80::101, par exemple.
  • par autoconfiguration (SLAAC) en utilisant l’une de ces trois méthodes :
    1. MAC EUI-64, par défaut (RFC 4291)
    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.

6. Autoconfiguration Automatique

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.

7. Autoconfiguration des identifiants d’interface

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”.

MAC-EUI 64 Modified

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 :

root@debian:~# 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.

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.

Privacy Extensions for Stateless Address Autoconfiguration in IPv6

Alors que la méthode de configuration des interfaces par défaut obligatoire est la méthode MAC-EUI64, les hôtes Windows et Linux domestiques préfèrent la méthode “Privacy Extension” (Privacy Extensions for Stateless Address Autoconfiguration in IPv6).

Cette méthode autoconfigure deux identifiants d’interface pour une durée limitée dans chaque préfixe :

  • Une adresse “publique” (c’est-à-dire non secrète) pour les serveurs, enregistrés dans un serveur DNS par exemple, qui est utilisée pour accepter des connexions directes entrantes venant d’autres machines. Des pare-deux dans le chemin pourraient bloquer ce trafic.
  • Une adresse “temporary” utilisée comme “bouclier” sur l’identité des clients quand ils débutent une connexion.

On trouvera des exemples de ces adresses et identifiants d’interfaces autoconfigurés “Privacy Extensions” dans la page Prise d’information IPv6.

8. Résumé

Manque adresse loopback

Link-LocalGlobal UnicastUnique 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 (2000::/4)Préfixe : FC00::/7 (FD00::/8) adressage privé avec 40 bits de préfixe aléatoire
Est obligatoire sur toutes les interfaces quand IPv6 est activéoptionneloptionnel
Ces destinations ne sont jamais transférées par les routeurs !Connectivité de bout en bout nécessairefonctionne dans un interréseau privé
Ces adresses sont utilisées dans le trafic de gestion comme ND, SLAAC, avec les protocoles de routage.Trafic vers l’InternetTrafic sur des lignes privées (physiques ou virtuelles).