3.2. La partie réseau, aussi appelée préfixe

Les concepteurs ont défini certains types d'adresse et laissé un vaste champ libre à de futures définitions, telles que l'émergence de nouvelles exigences encore aujourd'hui inconnues. L'architecture d'adressage IPv6 (RFC 2373 de juillet 1998) définit le schéma d'adressage actuel, mais il y a déjà un nouveau brouillon disponible: draft-ietf-ipngwg-addr-arch-*.txt.

Jetons maintenant un coup d'oeil aux différents types de préfixe (et par conséquent aux différents types d'adresse IPv6):

3.2.1. Le type d'adresse lien-local

Ce sont des adresses particulières qui n'auront de validité que sur le lien d'une interface. En utilisant cette adresse comme adresse de destination le paquet ne devrait jamais franchir un routeur. C'est utile pour des communications sur un lien telles que:

Elles commencent par (où ”x” est n'importe quel caractère hexadécimal, couramment ”0”)

fe8x:  <- actuellement le seul en usage.
fe9x:
feax:
febx:

Ce type d'adresse se trouve sur chaque interface disposant d'IPv6 après une auto-configuration sans état (ce qui est couramment le cas).

3.2.2. Le type d'adresse site-local

Ces adresses sont similaires à ce que le RFC 1918 (RFC 1918 / Address Allocation for Private Internets) définit aujourd'hui pour IPv4, avec en plus l'avantage que celui qui utilise ce type d'adresse a la capacité d'utiliser les 16 bits fournis pour un maximum de 65536 sous-réseaux. Comparable au 10.0.0.0/8 aujourd'hui en IPv4.

Autre avantage: parce qu'il est possible avec IPv6 d'assigner plus d'une seule adresse par interface, vous pouvez assigner une telle adresse site-local en plus de l'adresse globale.

Il commence par:

fecx:  <- le plus couramment utilisé.
fedx:
feex:
fefx:

(où ”x” est n'importe quel caractère hexadécimal, couramment ”0”)

Notez que des discussions sont en cours concernant la dépréciation de ce type d'adresse en raison de nombreux problèmes. Pour en savoir plus, lire: draft-ietf-ipv6-deprecate-site-local-XY.txt.

Pour des tests en laboratoire, de telles adresses restent un bon choix, à mon humble avis.

3.2.3. Le type d'adresse ”unicast globale (agrégeable) "

Aujourd'hui, il y a un type d'adresse globale de défini (la première conception, appelée ”basée sur le fournisseur” a été abandonnée il y a déjà quelques années (RFC 1884 / IP Version 6 Addressing Architecture [obsolete]), vous en trouverez des traces dans des sources anciennes du noyau Linux).

Il commence par (les x étant des caractères hexadécimaux)

2xxx: 
3xxx:

Note: la dénomination ”agrégeable” est abandonnée dans les brouillons actuels. Il y a quelques sous-types définis en plus, ci-dessous:

3.2.3.1. Les adresses de test 6bone

Elles ont été les premières adresses globales à être définies et mises en usage. Elles commencent toutes par

3ffe:

Exemple:

3ffe:ffff:100:f102::1

Une adresse spéciale de test 6bone, qui ne sera jamais globalement unique, commence par

3ffe:ffff: 

Et elle est la plupart du temps montrée dans les exemples passés, car si des adresses réelles sont montrées, il est possible à quelqu'un de les copier/coller dans ses propres fichiers de configuration. Ce type d'inadvertance cause des duplications d'adresse globalement unique. Cela pose de graves problèmes à l'hôte d'origine (par exemple recevoir des paquets en réponse de requêtes qu'il n'a pas émises). Parce qu'IPv6 est maintenant en production, ce préfixe ne sera plus délégué et probablement retiré du routage après 6 juin 2006 (voirRFC 3701 / 6bone Phaseoutpour plus d'information).

3.2.3.2. Les adresses 6to4

Ce type d'adresse, conçu pour un mécanisme précis de tunnelage (RFC 3056 / Connection of IPv6 Domains via IPv4 Clouds et RFC 2893 / Transition Mechanisms for IPv6 Hosts and Routers), encode une adresse IPv4 donnée et un sous-réseau possible. Il commence par

2002:

Par exemple, pour représenter 192.168.1.1/5:

2002:c0a8:0101:5::1

Une petite ligne de commande peut vous aider à générer une telle adresse à partir d'une adresse IPv4 donnée:

ipv4="1.2.3.4"; sla="5"; printf "2002:%02x%02x:%02x%02x:%04x::1" `echo $ipv4
¬ | tr "." " "` $sla

Voir aussi le tunnelage utilisant 6to4 et information concernant le relayage de 6to4 par les routeurs.

3.2.3.3. Les adresses assignées par un fournisseur dans la hiérarchie de routage

Ces adresses sont déléguées aux Fournisseurs d'Accès à Internet (FAI) et commencent par

2001:

Les préfixes fournis aux FAI (aussi connus en tant que LIR) les plus importants (propriétaires de backbone) sont délégués par les centres locaux d'enregistrement (local registries) et ils possèdent actuellement un préfixe d'une longueur de 32.

Tout client peut obtenir de son FAI un préfixe d'une longueur de 48.

3.2.3.4. Adresses réservées aux exemples et à la documentation

Actuellement, deux blocs d'adresses sont réservés aux exemples et à la documentation:

3ffe:ffff::/32
2001:0DB8::/32   EXAMPLENET-WF

Ces blocs d'adresses devraient être filtrés sur la base des adresses source et, si possible, NE devraient PAS être acheminés par les routeurs en bordure d'Internet vers ce dernier.

3.2.4. Les adresses multicast

Les adresses multicast sont utilisées pour les services y afférents.

Elles commencent par (xx est la valeur de la portée)

ffxy:

Elles se répartissent en différentes portées et types:

3.2.4.1. La portée multicast

La portée multicast est un paramètre spécifiant la distance maximale qu'un paquet multicast peut prendre vis-à-vis de son entité émettrice.

Actuellement, les régions suivantes (portées) sont définies:

  • ffx1: noeud-local, ces paquets ne quittent jamais le noeud.

  • ffx2: lien-local, ces paquets ne sont jamais transmis par les routeurs, ils ne quittent par conséquent jamais le lien spécifié.

  • ffx5: site-local, ces paquets ne quittent jamais le site.

  • ffx8: organisation-locale, ces paquets ne quittent jamais l'organisation (pas si simple à implémenter, cela doit être par le protocole de routage).

  • ffxe: portée globale.

  • les autres sont réservées.

3.2.4.2. Les types multicast

Il y a déjà de nombreux types définis/réservés (voir le RFC 2373 / IP Version 6 Addressing Architecture pour les détails). Quelques exemples en sont:

  • Adresse de tous les noeuds: ID = 1h, correspond aux adresses de tous les hôtes présents sur le noeud local (ff01:0:0:0:0:0:0:1) ou au lien connecté (ff02:0:0:0:0:0:0:1).

  • Adresse de tous les routeurs: ID = 2h, correspond aux adresses de tous les routeurs présents sur le noeud local (ff01:0:0:0:0:0:0:2), sur le lien connecté (ff02:0:0:0:0:0:0:2), ou encore sur le site local (ff05:0:0:0:0:0:0:2).

3.2.4.3. L'adresse multicast de sollicitation du lien-local

Adresse multicast spéciale utilisée comme adresse de destination dans la découverte de voisinage, car à la différence d'IPv4, ARP n'existe plus dans IPv6.

Un exemple de cette adresse ressemble à ceci

ff02::1:ff00:1234

Le préfixe utilisé montre qu'il s'agit d'une adresse multicast lien-local. Le suffixe est généré à partir de l'adresse de destination. Dans cet exemple, un paquet devrait être envoyé à l'adresse “fe80::1234”, mais la pile réseau ne connaît pas l'actuelle adresse MAC de la couche 2. Elle remplace les 104 bits supérieurs par “ff02:0:0:0:0:1:ff00::/104” et laisse les 24 bits inférieurs inchangés. Cette adresse est maintenant utilisée 'sur le lien' afin de trouver le noeud correspondant, lequel va devoir émettre une réponse contenant son adresse MAC de couche 2.

3.2.5. Les adresses anycast

Les adresses anycast sont des adresses spéciales utilisées pour couvrir des besoins tels que déterminer le serveur DNS le plus proche, le serveur DHCP le plus proche, ou tout groupe dynamique similaire. Les adresses sont prises dans l'espace d'adressage unicast (agrégeable ou site-local pour le moment). Le mécanisme anycast (au regard du client) sera pris en compte par un protocole de routage dynamique.

Note: Les adresses anycast ne peuvent être utilisées comme adresse source, elles sont utilisables uniquement comme adresse de destination.

3.2.5.1. L'adresse anycast de routeur de sous-réseau

Un simple exemple d'une adresse anycast est celle d'un routeur de sous-réseau. Soit un noeud avec l'adresse IPv6 suivante assignée:

3ffe:ffff:100:f101:210:a4ff:fee3:9566/64  <- L'adresse du noeud

L'adresse anycast de routeur de sous-réseau sera créée en laissant totalement blanc le suffixe (les 64 bits inférieurs):

3ffe:ffff:100:f101::/64  <- l'adresse anycast de routeur de sous-réseau