18.2. IPv6 : Internet nouvelle génération

Avec l'émergence du Web (WWW - World Wide Web), Internet a connu une croissance explosive au cours des quinze dernières années, avec un nombre croissant d'ordinateurs qui communiquent via TCP/IP. Depuis l'invention du Web par Tim Berners-Lee (chercheur au CERN http://public.web.cern.ch) en 1990, le nombre d'hôtes Internet est passé de quelques milliers à près d'une centaine de millions.

Comme vous le savez déjà, une adresse IPv4 ne comprend que 32 bits. En outre, de nombreuses adresses IP sont perdues ; en effet, elles ne peuvent pas être utilisées en raison du mode d'organisation des réseaux. Le nombre d'adresses disponibles dans votre sous-réseau est égal à deux, puissance « nombre de bits », moins deux. Un sous-réseau dispose, par exemple, de 2, 6 ou 14 adresses. Ainsi, pour connecter 128 hôtes à Internet, vous avez besoin d'un sous-réseau comportant 256 adresses IP, parmi lesquelles seules 254 sont utilisables puisque deux sont réservées à la structure même du sous-réseau : l'adresse de diffusion et l'adresse réseau de base.

Avec le protocole IPv4 actuel, le DHCP ou le NAT (Network Address Translation - traduction des adresses réseau) sont les mécanismes standard utilisés pour pallier le manque potentiel d'adresses. Associées à la convention visant à séparer l'espace d'adressage public de l'espace d'adressage privé, ces méthodes permettent de réduire ce manque. Il existe toutefois un problème majeur : leur configuration est très complexe et exige énormément de maintenance. Pour configurer un hôte sur un réseau IPv4, vous avez besoin d'un certain nombre d'éléments d'adresse, tels que l'adresse IP de l'hôte, le masque de sous-réseau, l'adresse de passerelle et, parfois, une adresse de serveur de noms (DNS). Vous devez connaître tous ces éléments et vous ne pouvez pas les obtenir autrement.

Avec IPv6, finis les problèmes de pénurie d'adresses et de configuration complexe. Les sections suivantes traitent des améliorations et avantages offerts par IPv6, ainsi que du passage de l'ancien protocole au nouveau.

18.2.1. Avantages

L'avantage le plus flagrant et le plus important de ce nouveau protocole est l'augmentation considérable de l'espace d'adressage disponible. Une adresse IPv6 est composée de valeurs 128 bits au lieu des 32 bits habituels. Cela représente plusieurs millions de milliards d'adresses IP possibles.

Cependant la taille n'est pas la seule différence entre les adresses IPv6 et IPv4. Les adresses IPv6 présentent également une structure interne différente, qui peut stocker des informations plus précises sur les systèmes et les réseaux auxquels elles appartiennent. Pour plus d'informations à ce sujet, reportez-vous à la Section 18.2.2, « Structures et types d'adresses ».

Voici la liste des autres avantages du nouveau protocole :

Configuration automatique

IPv6 ajoute au réseau une fonction « Plug and Play » : tout système qui vient d'être configuré s'intègre au réseau (local) sans exiger de configuration manuelle. Le nouvel hôte utilise son mécanisme de configuration automatique pour dériver sa propre adresse à partir des informations mises à sa disposition par les routeurs voisins, en exploitant le protocole ND (Neighbor Discovery - repérage de voisinage réseau). Cette méthode n'exige aucune intervention de l'administrateur et rend inutile la gestion d'un serveur central pour l'allocation d'adresses ; il s'agit là d'un autre avantage par rapport à IPv4, pour lequel l'allocation d'adresses automatique requiert un serveur DHCP.

Mobilité

IPv6 rend possible l'assignation simultanée de plusieurs adresses à une même interface réseau. Les utilisateurs peuvent ainsi accéder facilement à plusieurs réseaux, ce qui s'apparente aux services d'accès mobile international offerts par les sociétés de téléphonie mobile : lorsque vous utilisez votre téléphone portable à l'étranger, il se connecte automatiquement au service de téléphonie du pays concerné, dès qu'il entre dans la zone correspondante ; où que vous soyez, vous pouvez être joint au même numéro et passer un appel comme si vous étiez chez vous.

Communication sécurisée

Avec IPv4 la sécurité réseau est toujours apportée par une fonction ajoutée. IPv6 compte, parmi ses fonctionnalités-clés, la fonction IPSec, qui permet à des systèmes de communiquer via un tunnel sécurisé afin d'éviter toute « écoute » par des intrus sur Internet.

Compatibilité avec les versions existantes

Il est évident qu'il serait irréaliste de vouloir faire passer l'ensemble d'Internet d'IPv4 vers IPv6 en une seule fois. Il est donc essentiel que ces deux protocoles puissent coexister, non seulement sur Internet mais aussi sur un même système. Cela est assuré par l'utilisation d'adresses compatibles (les adresses IPv4 sont faciles à traduire en adresses IPv6) et l'emploi d'un certain nombre de tunnels. Reportez-vous à la Section 18.2.3, « Coexistence d'IPv4 et IPv6 ». De plus, les systèmes peuvent exploiter la fonction de double pile IP, qui permet la prise en charge simultanée des deux protocoles, en leur attribuant deux piles réseau bien distinctes, de sorte qu'il n'y ait aucune interférence entre les deux versions.

La multidiffusion : des services sur mesure

Avec IPv4, certains services, comme SMB, doivent diffuser leurs paquets à tous les hôtes du réseau local. IPv6 offre une approche beaucoup plus élaborée : il permet aux serveurs de s'adresser aux hôtes par multidiffusion, en communiquant avec plusieurs hôtes en tant que groupe unique (par opposition à la communication avec tous les hôtes par diffusion ou avec chaque hôte par diffusion individuelle). Les hôtes qui peuvent être contactés en tant que groupe peut dépendre de l'application concernée. Il existe des groupes prédéfinis qui permettent de contacter tous les serveurs de noms (groupe de multidiffusion vers tous les serveurs de noms), par exemple, ou tous les routeurs (groupe de multidiffusion vers tous les routeurs).

18.2.2. Structures et types d'adresses

Comme indiqué précédemment, le protocole IP actuel a deux principaux points faibles : la pénurie d'adresses IP ne cesse de s'accentuer, et les tâches de configuration réseau et de gestion des tables de routage sont de plus en plus complexes et fastidieuses. IPv6 résout le premier problème en étendant l'espace d'adressage à 128 bits. Le deuxième inconvénient est résolu grâce à l'introduction d'une structure d'adresses hiérarchique, associée à des techniques élaborées d'allocation des adresses réseau, ainsi qu'à la fonction de multihébergement (possibilité d'assigner plusieurs adresses à un même périphérique, ce qui autorise l'accès à plusieurs réseaux).

Avec IPv6, il convient de connaître les trois différents types d'adresses suivants :

Diffusion individuelle

Les adresses de ce type sont associées à une seule et unique interface réseau. Les paquets comportant une telle adresse ne sont transmis qu'à une seule destination. Les adresses de diffusion individuelle sont, par conséquent, utilisées pour le transfert de paquets vers un hôte précis situé sur le réseau local ou sur Internet.

Multidiffusion

Les adresses de ce type sont associées à un groupe d'interfaces réseau. Les paquets comportant une telle adresse sont transmis à toutes les cibles membres du groupe. Les adresses de multidiffusion sont principalement utilisées par certains services réseau pour communiquer de manière correcte avec certains groupes d'hôtes.

Diffusion au membre le plus proche

Les adresses de ce type sont associées à un groupe d'interfaces. Les paquets comportant une telle adresse sont transmis au membre du groupe le plus proche de l'expéditeur, selon les critères du protocole de routage sous-jacent. Les adresses de diffusion au membre le plus proche permettent aux hôtes d'identifier plus facilement les serveurs qui offrent des services particuliers dans la zone réseau concernée. Tous les serveurs de même type portent la même adresse de diffusion au membre le plus proche. Lorsqu'un hôte émet une requête pour un service, il reçoit une réponse du serveur que le protocole de routage juge le plus proche. Si ce serveur rencontre un échec, le protocole sélectionne automatiquement le deuxième serveur le plus proche, puis le troisième, et ainsi de suite.

Une adresse IPv6 est composée de huit champs de quatre chiffres, représentant chacun 16 bits, notés sous forme hexadécimale. Ils sont également séparés par le caractère deux-points (:). Les zéros situés à gauche d'un champ donné peuvent être omis, mais pas les zéros qui apparaissent à l'intérieur ou à droite du champ. Une autre convention s'applique : un ou plusieurs groupes de quatre bits à zéro consécutifs peuvent être remplacés par un double caractère deux-points. Toutefois, le double deux-points (::) ne peut figurer qu'une seule fois dans chaque adresse. L'Exemple 18.3, « Exemple d'adresse IPv6 » illustre cette notation abrégée : les trois lignes qui y figurent représentent la même adresse.

Exemple 18.3. Exemple d'adresse IPv6

fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4
fe80 :    0 :    0 :    0 :    0 : 10 : 1000 : 1a4
fe80 :                           : 10 : 1000 : 1a4

Chaque partie d'une adresse IPv6 a une fonction bien définie. Les premiers octets constituent le préfixe et indiquent le type d'adresse. La partie centrale correspond à la partie réseau de l'adresse (elle peut ne pas être utilisée). La fin de l'adresse identifie l'hôte. Avec IPv6, le masque réseau est défini en ajoutant à la fin de l'adresse une barre oblique, suivie de la longueur du préfixe. Dans l'Exemple 18.4, « Adresse IPv6 indiquant la longueur du préfixe », l'adresse contient les informations suivantes : les 64 premiers bits forment la partie réseau de l'adresse et les 64 derniers, la partie hôte. Autrement dit, le nombre 64 signifie que le masque réseau comprend 64 bits à 1, en partant de la gauche. Comme avec IPv4, l'adresse IP est associée (par ET) aux valeurs du masque réseau afin de déterminer si l'hôte se trouve sur le même sous-réseau.

Exemple 18.4. Adresse IPv6 indiquant la longueur du préfixe

fe80::10:1000:1a4/64

IPv6 reconnaît plusieurs types de préfixes prédéfinis. Le Tableau 18.4, « Différents types de préfixes IPv6 » en reprend quelques-uns.

Tableau 18.4. Différents types de préfixes IPv6

Préfixe (hex)

Définition

00

Adresses IPv4 et adresses de compatibilité IPv4/IPv6. Servent à assurer la compatibilité avec IPv4. Leur utilisation nécessite toujours un routeur capable de traduire les paquets IPv6 en paquets IPv4. Plusieurs adresses spéciales, comme celle du périphérique de bouclage (loopback), comportent également ce préfixe.

2 ou 3 comme premier chiffre

Adresses de diffusion individuelle globales pouvant être regroupées. Comme avec IPv4, une interface peut être assignée comme faisant partie d'un sous-réseau particulier. Actuellement, les espaces d'adressage suivants sont disponibles : 2001::/16 (espace d'adressage de qualité Production) et 2002::/16 (espace d'adressage IPv6 vers IPv4).

fe80::/10

Adresses « link-local » (à portée locale). Les adresses comportant ce préfixe ne doivent pas être routées et doivent, par conséquent, n'être accessibles qu'à partir du même sous-réseau.

fec0::/10

Adresses « site-local » (limitées au site). Ces adresses peuvent être routées, mais uniquement au sein du réseau de l'organisation à laquelle elles appartiennent. Elles sont en effet l'équivalent IPv6 de l'espace d'adressage réseau privé actuel (10.x.x.x, par exemple).

ff

Il s'agit d'adresses de multidiffusion.

Une adresse de diffusion individuelle est composée de trois éléments principaux :

Topologie publique

La première partie (qui contient également l'un des préfixes ci-dessus) sert au routage des paquets via le réseau Internet public. Elle comprend des informations sur la société ou l'institution qui fournit l'accès à Internet.

Topologie de site

La deuxième partie contient des informations de routage concernant le sous-réseau auquel transmettre le paquet.

ID d'interface

La troisième partie identifie l'interface à laquelle transmettre le paquet. Cela permet d'intégrer l'adresse MAC à l'adresse. Comme l'adresse MAC est un identificateur unique prédéfini codé dans le périphérique par le fabricant du matériel, la procédure de configuration est considérablement simplifiée. Les 64 premiers bits de l'adresse sont regroupés avec les 48 derniers bits de l'adresse MAC, ainsi qu'avec 24 bits restants qui contiennent des informations spéciales sur le type de jeton, afin de former le jeton EUI-64. Il est ainsi possible d'affecter un jeton EUI-64 aux interfaces qui n'ont pas d'adresse MAC, comme les interfaces PPP ou RNIS.

Outre cette structure de base, IPv6 distingue cinq types d'adresses de diffusion individuelle :

:: (non spécifié)

L'hôte utilise cette adresse comme adresse source lorsque l'interface est initialisée pour la première fois et qu'il est encore impossible de déterminer l'adresse d'une autre manière.

::1 (boucle)

Adresse du périphérique de bouclage (loopback).

Adresses compatibles avec IPv4

L'adresse IPv6 est constituée de l'adresse IPv4 et d'un préfixe de 96 bits à zéro. Ce type d'adresse de compatibilité est utilisé pour le tunnelage (reportez-vous à la Section 18.2.3, « Coexistence d'IPv4 et IPv6 »), afin de permettre à des hôtes IPv4 et IPv6 de communiquer dans un environnement uniquement IPv4.

Adresses IPv4 assignées à IPv6

Ce type d'adresse indique une adresse IPv4 pure dans la notation IPv6.

Adresses locales

Deux types d'adresses sont possibles pour une utilisation locale :

« link-local » (à portée locale)

Ce type d'adresse ne peut être utilisé que dans le sous-réseau local. Les paquets comportant une adresse source ou cible de ce type ne doivent pas être routés vers Internet ou vers d'autres sous-réseaux. Ces adresses contiennent un préfixe spécial (fe80::/10) et l'ID d'interface de la carte réseau ; la partie centrale est composée de bits à zéro. Les adresses de ce type sont utilisées lors de la configuration automatique pour communiquer avec d'autres hôtes appartenant au même sous-réseau.

« site-local » (limitées au site)

Les paquets comportant ce type d'adresse peuvent être routés vers d'autres sous-réseaux, mais pas sur l'ensemble d'Internet : ils ne doivent pas sortir du réseau de l'organisation. Utilisées pour les réseaux Intranet, les adresses de ce type constituent un équivalent de l'espace d'adressage privé défini par IPv4. Elles contiennent un préfixe spécial (fec0::/10), l'ID d'interface et un champ de 16 bits indiquant l'ID du sous-réseau. Là encore, le reste de l'adresse est constitué de bits à zéro.

Une fonctionnalité entièrement nouvelle a fait son apparition avec IPv6 : chaque interface réseau comprend généralement plusieurs adresses IP, ce qui permet d'accéder à plusieurs réseaux via la même interface. Il est possible de configurer l'un de ces réseaux de manière entièrement automatique, à l'aide de l'adresse MAC et d'un préfixe connu : tous les hôtes du réseau local sont alors joignables dès qu'IPv6 est activé (en utilisant l'adresse « link-local »). Lorsqu'elle intègre l'adresse MAC, chaque adresse IP utilisée est unique au monde. Les seules parties variables de l'adresse sont celles indiquant la topologie de site et la topologie publique, qui dépendent du réseau réel sur lequel l'hôte fonctionne.

Pour aller et venir entre des réseaux différents, un hôte a besoin d'au moins deux adresses. L'une d'elles, l'adresse d'origine, contient non seulement l'ID d'interface mais aussi un identificateur du réseau privé auquel elle appartient normalement (avec le préfixe correspondant). L'adresse d'origine est une adresse statique et, en tant que telle, elle reste normalement inchangée. Malgré cela, tous les paquets destinés à l'hôte mobile peuvent lui être transmis, qu'il fonctionne sur le réseau privé ou en dehors. Cela est rendu possible par les nouvelles fonctionnalités qu'offre IPv6, telles que la configuration automatique sans état et le ND (Neighbor Discovery - repérage du voisinage réseau). Outre son adresse d'origine, un hôte mobile comporte une ou plusieurs adresses supplémentaires, qui appartiennent aux réseaux étrangers sur lesquels il se connecte par accès mobile. Ces adresses sont appelées adresses d'hébergement temporaire (care-of). Le réseau privé dispose d'une fonctionnalité qui transmet tous les paquets destinés à l'hôte lorsqu'il travaille en accès mobile. Dans un environnement IPv6, cette tâche est assurée par l'agent privé, qui récupère tous les paquets destinés à l'adresse d'origine et les retransmet via un tunnel. D'autre part, les paquets destinés à l'adresse d'hébergement temporaire (care-of) sont transférés directement à l'hôte mobile, sans autres détours.

18.2.3. Coexistence d'IPv4 et IPv6

La migration de tous les hôtes connectés à Internet d'IPv4 vers IPv6 est très progressive. Les deux protocoles vont coexister pendant encore assez longtemps. Sur un seul et même système, cette coexistence est garantie, à condition que les deux protocoles soient implémentés avec une double pile. Mais il reste certaines difficultés : comment un hôte IPv6 doit-il communiquer avec un hôte IPv4, et comment les paquets IPv6 peuvent-ils être acheminés par les réseaux actuels, en majorité de type IPv4. Les solutions les mieux adaptées sont notamment le tunnelage et les adresses de compatibilité (reportez-vous à la Section 18.2.2, « Structures et types d'adresses »).

Les hôtes IPv6, plus ou moins isolés sur le réseau IPv4 mondial peuvent communiquer via des tunnels : les paquets IPv6 sont encapsulés au format IPv4 pour pouvoir être transférés via un réseau IPv4. Une connexion de ce type entre deux hôtes IPv4 est appelée tunnel. Pour que cela soit possible, les paquets doivent comporter l'adresse cible IPv6 (ou le préfixe correspondant), ainsi que l'adresse IPv4 de l'hôte distant situé à l'extrémité réceptrice du tunnel. Vous pouvez configurer manuellement un tunnel simple, sur la base d'un accord passé entre les administrateurs des divers hôtes. Ce processus est appelé tunnelage statique.

Toutefois, la configuration et la maintenance des tunnels statiques exigent souvent trop de travail pour que cette solution puisse s'appliquer à des besoins de communication quotidiens. IPv6 fournit donc trois méthodes de tunnelage dynamique :

6over4 (IPv6 sur IPv4)

Les paquets IPv6 sont automatiquement encapsulés au format IPv4 et envoyés sur un réseau IPv4 possédant une fonction de multidiffusion. Le protocole IPv6 est alors amené à considérer l'ensemble du réseau (Internet) comme un immense réseau local (LAN). Cela rend possible la détermination automatique de l'extrémité réceptrice du tunnel IPv4. Toutefois, cette méthode est difficile à adapter, et la multidiffusion IP est loin d'être très répandue sur Internet. Il s'agit donc d'une solution réservée aux petits réseaux d'entreprise et institutionnels qui utilisent la multidiffusion. Les spécifications de cette méthode sont exposées dans le document RFC 2529.

6to4 (IPv6 vers IPv4)

Avec cette méthode, les adresses IPv4 sont générées automatiquement à partir des adresses IPv6, ce qui permet aux hôtes IPv6 isolés de communiquer via un réseau IPv4. Cependant, de nombreux problèmes ont été signalés concernant la communication entre ces hôtes IPv6 isolés et Internet. Cette méthode est décrite dans le document RFC 3056.

IPv6 Tunnel Broker

Cette méthode repose sur des serveurs spéciaux, qui fournissent des tunnels dédiés pour les hôtes IPv6. Elle est décrite dans le document RFC 3053.

[Important]l'initiative 6bone

Il existe déjà, au coeur de l'« ancien » Internet, un réseau distribué global constitués de sous-réseaux IPv6 connectés par des tunnels. Il s'agit du réseau 6bone (http://www.6bone.net), un environnement de test IPv6 que les programmateurs et les fournisseurs de services Internet peuvent utiliser pour développer et proposer des services IPv6, afin d'acquérir l'expérience nécessaire à l'implémentation du nouveau protocole. Pour plus d'informations, reportez-vous au site Web du projet.

18.2.4. Configuration d'IPv6

Pour configurer IPv6, il devrait être inutile de modifier chaque poste de travail. Vous devez toutefois charger la fonction de prise en charge d'IPv6. Pour ce faire, entrez modprobe ipv6 en vous connectant en tant qu'utilisateur root.

En raison du concept de configuration automatique d'IPv6, la carte réseau se voit assigner une adresse sur le réseau « link-local » (à portée locale). Normalement, aucune gestion des tables de routage n'a lieu sur un poste de travail. Le poste de travail peut envoyer des requêtes vers les routeurs réseau, à l'aide du protocole d'annonce de routeur, afin d'obtenir le préfixe et les passerelles à implémenter. Vous pouvez utiliser le programme radvd pour configurer un routeur IPv6. Ce programme indique aux stations de travail le préfixe à utiliser pour les adresses IPv6, ainsi que les routeurs nécessaires. Vous pouvez également utiliser zebra pour la configuration automatique des adresses et du routage.

Pour obtenir des informations sur le mode de configuration de différents types de tunnels à l'aide des fichiers /etc/sysconfig/network, reportez-vous à la page de manuel ifup(8).

18.2.5. Pour plus d'informations

La présentation ci-dessus ne couvre pas tous les aspects du protocole IPv6. Pour approfondir vos connaissances, reportez-vous à la documentation en ligne et aux ouvrages suivants :

http://www.ngnet.it/e/cosa-ipv6.php

Série d'articles fournissant une introduction claire aux concepts de base d'IPv6. Un bon moyen de commencer.

http://www.bieringer.de/linux/IPv6/

Retrouvez ici la documentation HOWTO (Guide pratique) Linux concernant IPv6, ainsi que de nombreux liens sur le sujet.

http://www.6bone.net/

Reportez-vous à ce site si vous souhaitez vous connecter à un réseau IPv6 avec tunnel.

http://www.ipv6.org/

Point de départ de tout ce qui concerne IPv6.

RFC 2640

Document RFC de référence pour IPv6.

IPv6 Essentials

Cet ouvrage décrit tous les aspects importants d'IPv6 : IPv6 Essentials, par Silvia Hagen (ISBN 0-596-00125-8).