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)


Les adresses IPv6 Unicast

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 : Unspecified ::/128 : route non spécifiée, et Default Route ::/0 : route par défaut.

Adresses IPv6 Unicast

1. Adresse IPv6 Unicast de bouclage (::1/128)

On distinguera la notion d’interface de bouclage et de celle d’adresse de bouclage (loopback).

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.

Microsoft Windows [Version 10.0.16299.309]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\user>netsh interface ipv6 show address

Interface 1: Loopback Pseudo-Interface 1

Addr Type  DAD State   Valid Life Pref. Life Address
---------  ----------- ---------- ---------- ------------------------
Other      Preferred     infinite   infinite ::1

(...)

Une adresse Link-Local est une adresse qui ne porte que sur le lien (L2) et qui n’est jamais transféré par les routeurs. Elle sert à joindre les voisins sur un même lien. Toutes les interfaces IPv6 disposent d’une adresse Link-Local.

Ses 10 premiers bits sont codés en 1111111010 pour donner en hexadécimal un bloc fe80::/10.

Adresses IPv6 Link-Local
  • Une adresse Link-Local est 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 ou ses dix premiers bits à 1111111010.
  • Cette destination est purement locale sur la liaison de l’interface. Les routeurs IPv6 ne transfèrent pas cette destination.
  • Leurs durées de vie Valid Lifetime et Preferd Lifetime sont infinies.
  • Configurées sur les interfaces leur masque est obligatoirement /64.

Dans cette sortie, on reconnaît quatre interfaces, chacune avec une adresse IPv6 Link-Local, hors l’interface de loopback.

  • Interface 13: Teredo Tunneling Pseudo-Interface: fe80::1010:1e8f:3f57:fe54%13
  • Interface 12: Ethernet0 : fe80::a973:10e1:e029:d1bb%12
  • Interface 4: Bluetooth Network Connection : fe80::68c0:6c2e:fe7c:4c9b%4
Microsoft Windows [Version 10.0.16299.309]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\user>netsh interface ipv6 show address

Interface 1: Loopback Pseudo-Interface 1

Addr Type  DAD State   Valid Life Pref. Life Address
---------  ----------- ---------- ---------- ------------------------
Other      Preferred     infinite   infinite ::1

Interface 13: Teredo Tunneling Pseudo-Interface

Addr Type  DAD State   Valid Life Pref. Life Address
---------  ----------- ---------- ---------- ------------------------
Public     Preferred     infinite   infinite 2001:0:9d38:6abd:1010:1e8f:3f57:fe54
Other      Preferred     infinite   infinite fe80::1010:1e8f:3f57:fe54%13

Interface 12: Ethernet0

Addr Type  DAD State   Valid Life Pref. Life Address
---------  ----------- ---------- ---------- ------------------------
Dhcp       Preferred  10d12h15m6s 3d22h11m28s 2001:db8:f4:4b3::d4d
Public     Preferred  10d12h15m7s 3d22h11m29s 2001:db8:f4:4b3:a973:10e1:e029:d1bb
Temporary  Preferred  6d23h55m39s  23h47m26s 2001:db8:f4:4b3:b937:ea7c:7175:5743
Dhcp       Preferred  10d12h15m6s 3d22h11m28s 2001:db8:f4:1ded::d4d
Public     Preferred  10d12h15m7s 3d22h11m29s 2001:db8:f4:1ded:a973:10e1:e029:d1bb
Temporary  Preferred  6d23h55m39s  23h47m26s 2001:db8:f4:1ded:b937:ea7c:7175:5743
Public     Preferred     infinite   infinite fd8f:cafe:1ab:0:a973:10e1:e029:d1bb
Temporary  Preferred  6d23h55m39s  23h47m26s fd8f:cafe:1ab:0:b937:ea7c:7175:5743
Other      Preferred     infinite   infinite fe80::a973:10e1:e029:d1bb%12

Interface 4: Bluetooth Network Connection

Addr Type  DAD State   Valid Life Pref. Life Address
---------  ----------- ---------- ---------- ------------------------
Other      Deprecated    infinite   infinite fe80::68c0:6c2e:fe7c:4c9b%4

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 ! Elle est indispensable au fonctionnement ultérieur d’IPv6 sur la connexion : découverte de routes, de routeurs, de serveurs de nom ou DHCPv6. Chaque interface activée en IPv6 doit disposer de ce type d’interface.

Aussi, on remarquera le modulo % suivi du chiffre X. Cette valeur identifie dans Windows l’interface associée à l’adresse. 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.

3. Adressage IPv6 Global Unicast (2000::/3)

3.1. Adresses IPv6 Global Unicast

On pourrait identifier plusieurs adresses Global Unicast sur les interfaces, 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”.

3.2. Format des adresses Global Unicast

Le format des adresses IPv6 Global Unicast est défini dans les RFC 3587 et RFC 3177 :

Adresses IPv6 Global Unicast
  • Le “global routing prefix” est la partie de l’adresse assignée à un site (c’est-à-dire un ensemble de sous-réseaux et de liens). Ces numéros sont attribués par les RIRs et les ISPs. Il a une longueur par défaut de 48 bits.
  • Le “subnet ID” est l’identifieant du sous-réseau dans le site. Il est géré par les administrateurs du site. Il a une longueur de 16 bits portant le masque de sous-réseau à 64 bits.
  • L’“Interface ID” identifie l’interface dans le sous-réseau. C’est élément de 64 bits qui est configuré de différentes manières.

3.3. Caractéristiques des adresses IPv6 Global Unicast

Le bloc 2000::/3 est reservé à cet usage. On identifie ces adresses par une valeur comprise entre 0x2000 à 0x3FFF sur les 4 premiers hexas de l’adresse.

Avec un tel masque, c’est 1/8 de l’espace IPv6 qui a été réservé à un usage public. En réalité la seconde moitié du bloc (3000::/4) est réservée par l’IANA de telle sorte que seul le bloc 2000::/4 soit utilisé. Concrètement, toute adresse commençant par son premier hexa à 2 est une adrese global Unicast.

Les quatre premier bits d’une adresse IPv6 Global unicast sont toujours 0001. De manière plus “legacy”, on peut affirmer que les trois derniers bits du premier “mot” d’une adresse IPv6 Global Unicast sont tout à zéro (000).

3.4. Attribution des adresses IPv6 Global Unicast

IPv6 Global Unicast Address Assignments

Blocs réservés dans 2000::/3

  • 2d00:0000::/8 IANA 1999-07-01 RESERVED
  • 2e00:0000::/7 IANA 1999-07-01 RESERVED
  • 2001:0000::/23 IANA 1999-07-01 whois.iana.or ALLOCATED
    • 2001:0000::/23 is reserved for IETF Protocol Assignments RFC2928.
    • 2001:0000::/32 is reserved for TEREDO RFC4380.
    • 2001:1::1/128 is reserved for Port Control Protocol Anycast RFC7723.
    • 2001:2::/48 is reserved for Benchmarking RFC5180 [RFC Errata 1752].
    • 2001:3::/32 is reserved for AMT RFC7450.
    • 2001:4:112::/48 is reserved for AS112-v6 RFC7535.
    • 2001:5::/32 is reserved for EID Space for LISP RFC7954.
    • 2001:10::/28 is deprecated (previously ORCHID) RFC4843.
    • 2001:20::/28 is reserved for ORCHIDv2 RFC7343.
    • 2001:db8::/32 is reserved for Documentation RFC3849.
  • 2002:0000::/16 is reserved for 6to4 RFC3056.
  • 3000:0000::/4 IANA 1999-07-01 RESERVED
  • 3ffe::/16 IANA 2008-04 RESERVED
    • 3ffe:831f::/32 was used for Teredo in some old but widely distributed networking stacks. This usage is deprecated in favor of 2001::/32, which was allocated for the purpose in RFC4380. 3ffe::/16 and 5f00::/8 were used for the 6bone but were returned. [RFC5156]

Blocs routables par RIRs

RIRs (Regional Internet Registries)

Source de l’image.

AFRINIC

  • 2001:4200::/23
  • 2c00:0000::/12

APNIC

  • 2001:0200::/23
  • 2001:0e00::/23
  • 2001:0c00::/23
  • 2001:4400::/23
  • 2001:8000::/19
  • 2001:a000::/20
  • 2001:b000::/20
  • 2400:0000::/12

ARIN

  • 2001:0400::/23
  • 2001:1800::/23
  • 2001:4800::/23
  • 2600:0000::/12
  • 2610:0000::/23
  • 2620:0000::/23

LACNIC

  • 2001:1200::/23
  • 2800:0000::/12

RIPE-NCC

  • 2001:0600::/23
  • 2001:0800::/23
  • 2001:0a00::/23
  • 2001:1400::/23
  • 2001:1600::/23
  • 2001:1a00::/23
  • 2001:1c00::/22
  • 2001:2000::/20
  • 2001:3000::/21
  • 2001:3800::/22
  • 2001:3c00::/22
  • 2001:4000::/23
  • 2001:4600::/23
  • 2001:4a00::/23
  • 2001:4c00::/23
  • 2001:5000::/20
  • 2003:0000::/18
  • 2a00:0000::/12

3.5. Comment reconnaître les adresses IPv6 Global Unicast ?

Voici une sortie focalisée sur l’interface Ethernet0 d’un ordinateur Windows :

Microsoft Windows [Version 10.0.16299.309]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\user>netsh interface ipv6 show address

(...)

Interface 12: Ethernet0

Addr Type  DAD State   Valid Life Pref. Life Address
---------  ----------- ---------- ---------- ------------------------
Dhcp       Preferred  10d12h15m6s 3d22h11m28s 2001:db8:f4:4b3::d4d
Public     Preferred  10d12h15m7s 3d22h11m29s 2001:db8:f4:4b3:a973:10e1:e029:d1bb
Temporary  Preferred  6d23h55m39s  23h47m26s 2001:db8:f4:4b3:b937:ea7c:7175:5743
Dhcp       Preferred  10d12h15m6s 3d22h11m28s 2001:db8:f4:1ded::d4d
Public     Preferred  10d12h15m7s 3d22h11m29s 2001:db8:f4:1ded:a973:10e1:e029:d1bb
Temporary  Preferred  6d23h55m39s  23h47m26s 2001:db8:f4:1ded:b937:ea7c:7175:5743
Public     Preferred     infinite   infinite fd8f:cafe:1ab:0:a973:10e1:e029:d1bb
Temporary  Preferred  6d23h55m39s  23h47m26s fd8f:cafe:1ab:0:b937:ea7c:7175:5743
Other      Preferred     infinite   infinite fe80::a973:10e1:e029:d1bb%12

(...)

On remarquera ici trois adresses IPv6 Global Unicast dans le bloc 2001:db8:f4:4b3::/64 :

2001:db8:f4:4b3::d4d
2001:db8:f4:4b3:a973:10e1:e029:d1bb
2001:db8:f4:4b3:b937:ea7c:7175:5743

et trois autres dans le bloc :

2001:db8:f4:1ded::d4d
2001:db8:f4:1ded:a973:10e1:e029:d1bb
2001:db8:f4:1ded:b937:ea7c:7175:5743

On reconnaîtra le préfixe de documentation 2001:db8::/32 qui a été adapté pour des raisons de vie privée de la connexion réelle qui sert à l’illustration.

Pour chaque bloc, 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.

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

4. Adressage IPv6 Unique Local (FC00::/7)

4.1. Adresses IPv6 Unique Local

L’adressage IPv6 Unique Local est défini dans le RFC 4193, Unique Local IPv6 Unicast Address.

On identifiera un autre 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.

4.2. Caractéristiques des adresses IPv6 Unique Local

  • Elles ne connaissent pas de destination dans l’Internet public.
  • Elle utilisent un préfixe qui est globalement unique (on dira avec une haute probabilité d’unicité).
  • Ce préfixe est bien connu : FC00::/7 mais FD00::/8 notamment afin de faciliter le filtrage aux limites des sites.
  • Elle permettent aux sites privés de s’interconnecter entre eux en réduisant la probabilité de conflits sur des blocs d’adresses non uniques qui se chevauchent.
  • En cas de fuite DNS, il y a peu de risque de conflit avec d’autres adresses.

4.3. Utilité des adresses IPv6 Unique Local

Quel pourrait être leur usage au XXIème 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é.

4.4. Format des adresses IPv6 Unique Local

Les adresses IPv6 Unique Local sont créées sur base d’un identifiant global généré de manière pseudo-aléatoire en fonction du temps (NTP) et de l’identifiant unique EUI-64 concaténés pour créer une clé SHA-1 et générer une valeur de 160 bits dont les 40 derniers bits significatifs remplissent le champs “Global ID”.

Adresses IPv6 Unique Local

Où :

  • Prefix : FC00::/7 ou 1111110 sur les 7 premiers bits identifie le préfixedes adresses IPv6 Unique Local.
  • L : Valeur à 1 pour un préfixe “localement” assigné (0 est réservé à un usage futur, jamais ?). Le préfixe devient de facto FD00::/8 où les 8 premiers bits de l’adresse sont 11111101
  • Global ID : 40-bit “Global ID” identifiant global généré de manière pseudo-aléatoire pour créer un préfixe unique de site. Il complète un /48 de préfixe de site.
  • Subnet ID : 16-bit “Subnet ID” comme identifiant du sous-réseau dans le site.
  • Interface ID : 64-bit “Interface ID” qui identifie l’interface dans le sous-réseau.

4.5. Comment reconnaître des adresses IPv6 Unique Local ?

Voici une sortie focalisée sur l’interface Ethernet0 d’un ordinateur Windows :

Microsoft Windows [Version 10.0.16299.309]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\user>netsh interface ipv6 show address

(...)

Interface 12: Ethernet0

Addr Type  DAD State   Valid Life Pref. Life Address
---------  ----------- ---------- ---------- ------------------------
Dhcp       Preferred  10d12h15m6s 3d22h11m28s 2001:db8:f4:4b3::d4d
Public     Preferred  10d12h15m7s 3d22h11m29s 2001:db8:f4:4b3:a973:10e1:e029:d1bb
Temporary  Preferred  6d23h55m39s  23h47m26s 2001:db8:f4:4b3:b937:ea7c:7175:5743
Dhcp       Preferred  10d12h15m6s 3d22h11m28s 2001:db8:f4:1ded::d4d
Public     Preferred  10d12h15m7s 3d22h11m29s 2001:db8:f4:1ded:a973:10e1:e029:d1bb
Temporary  Preferred  6d23h55m39s  23h47m26s 2001:db8:f4:1ded:b937:ea7c:7175:5743
Public     Preferred     infinite   infinite fd8f:cafe:1ab:0:a973:10e1:e029:d1bb
Temporary  Preferred  6d23h55m39s  23h47m26s fd8f:cafe:1ab:0:b937:ea7c:7175:5743
Other      Preferred     infinite   infinite fe80::a973:10e1:e029:d1bb%12

(...)

Dans notre exemple, on trouve deux adresses IPv6 Unique Local autoconfigurées.

fd8f:cafe:1ab:0:a973:10e1:e029:d1bb
fd8f:cafe:1ab:0:b937:ea7c:7175:5743

On constate que le préfixe attribué est fd8f:cafe:1ab::/64 qui, s’il n’a manifestement pas été généré de manière aléatoire selon le RFC 4193 car il a été choisi, est supposé “globalement unique”.

4.6. Développement du RFC 4193

Le RFC 4193 développe plusieurs considérations sur les adresse Unique Local

  • Comment les allouer.
  • Considérations sur leur usage :
    • dans le routage
    • sur les routeurs de bordure de site,
    • en DNS,
    • dans le support des applications,
    • dans l’usage de VPN,
  • des lignes directrices pour une communication au sein d’un site.