22.2. IPv6 — L'Internet de nouvelle génération

Avec l'invention du WWW (World Wide Web), l'Internet et donc le nombre d'ordinateurs qui communiquent via TCP/IP ont connu une croissance exponentielle dans les quinze dernières années. Depuis que Tim Berners-Lee a inventé le WWW en 1990 au CERN (http://public.web.cern.ch/), le nombre des machines sur Internet est passé de quelques milliers à environ 100 millions.

Comme vous le savez déjà, une adresse IP ne contient que 32 bits. De nombreuses adresses IP ne peuvent, pour des raisons d'organisation des réseaux, pas être utilisées et sont donc perdues. Vous disposez dans votre sous-réseau d'un nombre d'adresses égal à deux élevé à la puissance du nombre de bits, moins deux. Un sous-réseau se compose alors, par exemple de 2, 6 ou 14 adresses. Si vous souhaitez par exemple connecter 128 ordinateurs à l'Internet, vous aurez donc besoin d'un sous-réseau comportant 256 adresses IP, dont 254 sont utilisables car deux adresses sont nécessaires à la structure du sous-réseau, à savoir l'adresse de diffusion et l'adresse de base du réseau.

Pour atténuer la pénurie prévisible d'adresses, on utilise sous le protocole IPv4 momentanément utilisé des mécanismes tels que le DHCP ou le NAT (en anglais, Network Address Translation). Ces deux processus permettent d'atténuer, avec la convention des domaines d'adresses privés et publics le besoin urgent d'adresses Internet. L'inconvénient de ces méthodes est qu'elles sont relativement compliquées à configurer et nécessitent une maintenance considérable. Elles impliquent de connaître, pour la configuration correcte d'un ordinateur sur un réseau IPv4, de nombreuses informations, notamment, sa propre adresse IP, son masque de sous-réseau, l'adresse de la passerelle et impérativement un serveur de noms. Vous devez « connaître » toutes ces informations et ne pouvez les déduire d'aucune autre donnée.

Avec IPv6, la pénurie d'adresses et les configurations complexes appartiennent désormais au passé. Vous allez, dans les sections suivantes, en apprendre davantage sur les nouveautés et les avantages d'IPv6 et sur le passage de l'ancien protocole au nouveau.

22.2.1. Avantages

L'avantage le plus important et le plus évident de ce nouveau protocole est qu'il augmente de façon énorme l'espace d'adresses disponibles. Une adresse IPv6 comprend 128 bits contre 32 bits jusqu'alors. On dispose alors de plusieurs milliards (!) d'adresses IP.

Les adresses IPv6 diffèrent des anciennes, non seulement par leur longueur, mais également par leur structure interne différente et permettent de coder des informations spéciales relatives au système correspondant et à son réseau. Vous trouverez plus d'informations à ce sujet àSection 22.2.2, « Types et structures d'adresses ».

D'autres avantages significatifs du nouveau protocole, en bref :

Auto-configuration

IPv6 transpose le principe du « Plug and Play » au réseau. Un système fraîchement installé s'intègre au réseau (local) sans qu'aucune configuration supplémentaire ne soit nécessaire. Le mécanisme de configuration automatiquede la machine déduit sa propre adresse des informations qui lui sont communiquées par les routeurs voisins via le protocole neighbor discovery (ND). Ce processus ne nécessite aucune intervention de l'administrateur et présente, par rapport au distributeur d'adresses DHCP utilisé sous IPv4, l'avantage supplémentaire de supprimer le besoin de maintenir un serveur central des adresses disponibles.

Informatique nomade

IPv6 permet d'associer à une interface réseau plusieurs adresses simultanées. Vous disposez ainsi, en tant qu'utilisateur d'un système, facilement et sans configuration supplémentaire, d'un accès à plusieurs réseaux différents. On peut comparer cette fonction aux utilisateurs « itinérants » des les réseaux de radiotéléphonie. Si vous êtes à l'étranger avec votre téléphone mobile, votre téléphone se connecte automatiquement sur le réseau local. Où que vous soyez, vous êtes assuré de toujours pouvoir être joint avec votre numéro de téléphone normal et vous utilisez le réseau étranger pour téléphoner comme s'il s'agissait de votre réseau habituel.

Une communication sûre

Des communications sécurisées étaient certes disponibles sous IPv4, mais uniquement en faisant appel à des outils complémentaires, IPSec et donc la communication sécurisée entre deux systèmes via un tunnel traversant l'Internet non sécurisé sont désormais compris dans IPv6.

Compatibilité avec l'existant

On ne peut pas envisager de façon réaliste de faire passer tout l'Internet d'IPv4 à IPv6 d'un seul coup. Il est donc important que les deux versions puissent cohabiter sur l'Internet et sur un même système. La coexistence de ces deux protocoles sur l'Internet est garantie par l'utilisation d'adresses compatibles (les adresses IPv4 se transforment facilement en adresses IPv6) et l'utilisation de différents tunnels (voir Section 22.2.3, « Coexistence de IPv4 et de IPv6 »). La double pile IP (Dual Stack IP) permet de prendre en charge les deux protocoles sur un seul système. Chacun des deux protocoles utilise sa propre pile réseau de manière à ce que les deux versions de protocoles ne se télescopent pas.

La multidiffusion – une offre de service sur mesure

Si avec IPv4, certains services (par exemple SMB) devaient diffuser leurs paquets à tous les membres du réseau local, on dispose d'une approche beaucoup plus fine avec IPv6. Grâce à la multidiffusion, on peut s'adresser à un groupe d'ordinateurs en une seule fois (c'est-à-dire pas à tous les ordinateurs simultanément en diffusion, ou à un seul uniquement en envoi ciblé). C'est l'application qui détermine les ordinateurs en question. Il existe quelques groupes de multidiffusion bien définis, tels que tous les serveurs de noms (en anglais, all name servers multicast group) ou tous les routeurs (en anglais, all routers multicast group).

22.2.2. Types et structures d'adresses

Comme nous l'avons déjà évoqué, le protocole IP utilisé jusqu'à présent présentait deux inconvénients non négligeables : on dispose de moins en moins d'adresses IP et il est de plus en plus compliqué et lourd de configurer le réseau et de gérer les tables de routage. IPv6 s'est attaqué au premier problème en étendant l'espace d'adressage à 128 bits. La solution du deuxième problème réside dans la structure d'adresse hiérarchique, dans les mécanismes conçus pour l'attribution des adresses au sein d'un réseau et dans la possibilité de rattachement multiple (en anglais, multi-homing, plusieurs adresses par interface avec accès à différents réseaux).

En ce qui concerne IPv6, vous devez pouvoir distinguer trois types d'adresses :

unicast (à un seul destinataire)

Les adresses de ce type appartiennent à une seule interface réseau. Les paquets possédant une adresse de ce type sont livrés à un seul destinataire. Les adresses de diffusion individuelle sont utilisées pour adresser des ordinateurs individuels du réseau local ou sur l'Internet.

multicast (à plusieurs destinataires)

Les adresses de ce type représentent un groupe d'interfaces. Les paquets possédant une adresse de ce type sont envoyés à tous les destinataires membres de ce groupe. Les adresses de multi-diffusion sont, pour la plupart, utilisées par des services réseau particuliers, pour adresser des groupes particuliers ciblés d'ordinateurs.

anycast (pour tout les destinataires)

Les adresses de ce type représentent un groupe d'interfaces. Les paquets possédant une adresse de ce type sont livrés aux membres du groupe qui est le plus « proche » de l'expéditeur au sens du protocole de routage utilisé. Les adresses anycast sont utilisées pour permettre aux terminaux de trouver un serveur proposant un service donné dans leur domaine réseau. Tous les serveurs d'un type donné possèdent la même adresse anycast. Si le terminal demande un service, c'est le serveur le plus proche de l'hôte, selon l'évaluation du protocole de routage, qui répond. En cas d'indisponibilité de ce serveur, c'est le deuxième plus proche qui est alors utilisé, et ainsi de suite.

Une adresse IPv6 se compose de huit champs de quatre chiffres soit 16 bits chacun, représentés en écriture hexadécimale. Ils sont séparés par des deux points (:). On peut omettre les octets nuls de tête dans un champ, mais pas ceux qui se trouvent au milieu ou à la fin d'un champ. On peut représenter plus de quatre octets nuls qui se suivent par le signe d'omission ::. Toutefois on ne peut utiliser qu'un seul signe d'omission dans une adresse. Exemple 22.3, « Exemple d'adresse IPv6 » illustre cette notation abrégée à l'aide de trois modes d'écriture équivalents pour la même adresse.

Exemple 22.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 signification particulière. Les premiers octets constituent un préfixe et indiquent le type de l'adresse. La partie centrale adresse un réseau ou n'a pas de signification particulière. La fin de l'adresse indique la partie hôte. Les masques réseau se définissent sous IPv6 par la longueur du préfixe indiquée par un / à la fin de l'adresse. Une adresse représentée comme dans Exemple 22.4, « Adresse IPv6 avec indication du préfixe » signifie que les 64 premiers bits constituent la partie réseau et les 64 derniers bits la partie réseau de l'adresse. Autrement dit, le nombre 64 indique que le masque réseau est rempli de bits 1 à partir de la gauche. Comme avec IPv4, on combine avec ET le masque réseau et l'adresse IP pour déterminer si l'ordinateur se trouve dans le même sous-réseau ou dans un autre.

Exemple 22.4. Adresse IPv6 avec indication du préfixe

fe80::10:1000:1a4/64

IPv6 reconnaît différents préfixes avec différentes significations comme montré à Tableau 22.4, « Différents préfixes IPv6 »).

Tableau 22.4. Différents préfixes IPv6

Préfixe (hexadécimal)

Utilisation

00

Les adresses IPv4 et les adresses de compatibilité IPv4/IPv6. Il s'agit d'une adresse compatible IPv4. Un routeur approprié doit convertir le paquet IPv6 en IPv4. D'autres adresses spéciales (par exemple dispositif de bouclage loopback) possèdent également ce préfixe.

premier chiffre 2 ou 3

(en anglais, Aggregatable Global Unicast Address). Comme auparavant, vous pouvez aussi obtenir avec IPv6 des réseaux partiels. On dispose, à l'heure actuelle, des espaces d'adresses suivants : 2001::/16 (production quality address space, espace d'adressage de production), 2002::/16 (6to4 address space, espace d'adressage 6vers4).

fe80::/10

(en anglais, link-local) Les adresses avec ce préfixe ne peuvent pas être routées et ne peuvent donc être jointes qu'à l'intérieur du même sous-réseau.

fec0::/10

(en anglais, site-local) Ces adresses peuvent certes être routées, mais uniquement au sein d'une organisation. C'est pour cette raison que ces adresses correspondent aux réseaux jusqu'alors « privés » (par exemple 10.x.x.x).

ff

(en anglais, multicast) Les adresses IPv6 qui commencent par ff sont des adresses de multidiffusion.

Les adresses d'envoi ciblé comportent trois composants de base :

Topologie publique

La première partie qui comprend, entre autres, l'un des préfixes présentés précédemment, sert au routage du paquet sur l'Internet public. C'est dans cette partie que les informations relatives au fournisseur d'accès ou à l'institution sont codées pour préparer l'accès au réseau.

Topologie du site

La deuxième partie contient des informations de routage relatives au sous-réseau qui doit distribuer le paquet.

Identificateur de l'interface

La troisième partie identifie clairement l'interface à laquelle le paquet est adressé. Cela permet ainsi d'utiliser l'adresse MAC en tant que composant de l'adresse. Comme cette adresse est unique dans le monde entier et attribuée par le fabricant du matériel, la configuration de l'ordinateur est considérablement simplifiée. En réalité, les 64 premiers bits sont rassemblés en une unité lexicale EUI-64. Parallèlement, les derniers 48 bits de l'adresse MAC sont retirés et les derniers 24 bits contiennent des informations spéciales indiquant le type de l'unité lexicale. Cela permet aussi d'attribuer des unités lexicales EUI-64 à des appareils ne disposant pas d'adresse MAC (connexions PPP et RNIS).

De cette structure de base, on déduit cinq types différents d'adresses unicast :

:: (non précisé)

Un ordinateur utilise cette adresse comme adresse source lorsqu'on initialise pour la première fois son interface — quand il ne peut pas encore déterminer son adresse par d'autres méthodes.

::1 (bouclage)

Adresse du dispositif de bouclage.

Adresse compatible IPv4

L'adresse IPv6 est tirée de l'adresse IPv4 et d'un préfixe de quatre-vingt seize bits 0 au début de l'adresse. C'est ce type d'adresses de compatibilité que l'on utilise pour les tunnels (reportez-vous à Section 22.2.3, « Coexistence de IPv4 et de IPv6 ») pour permettre aux hôtes IPv4 et IPv6 de communiquer avec d'autres se trouvant dans un résau IPv4 pur.

Adresse IPv4 avec équivalent IPv6

Ce type d'adresse indique l'adresse IPv6 d'un ordinateur IPv4 pur.

Adresses locales

Il existe deux types d'adresses pour une utilisation purement locale :

link-local

Ce type d'adresse est exclusivement conçu pour une utilisation dans le sous-réseau local. Les routeurs n'ont pas le droit de transmettre sur l'Internet ou à d'autres sous-réseaux les paquets dont l'adresse cible ou source est de ce type. Ces adresses se caractérisent par un préfixe spécial (fe80::/10) et l'identificateur d'interface de la carte réseau, dont la partie centrale est composée d'octets nuls. Les méthodes de configuration automatique utilisent ce type d'adresse pour communiquer avec des ordinateurs du même sous-réseau.

site-local

Les paquets avec ce type d'adresse peuvent être routés entre différents sous-réseaux mais ne peuvent pas arriver sur l'Internet — ils doivent rester dans le réseau privé de l'organisation. Ces adresses sont utilisées pour les intranets et sont équivalentes des adresses privées d'IPv4. Ces adresses comportent un préfixe particulier (fec0::/10),l'identificateur de l'interface et un champ de 16 bits dans lequel l'identificateur du sous-réseau est codé. Le reste est à nouveau comblé par des octets nuls.

L'attribution de plusieurs adresses IP à une interface réseau est une nouveauté complète d'IPv6 et présente l'avantage de pouvoir accéder à plusieurs réseaux par le biais de la même interface. Un de ces réseaux peut être configuré complètement automatiquement à l'aide de l'adresse MAC et d'un préfixe connu. Tous les ordinateurs du réseau local sont alors accessibles dès que IPv6 est activé (avec l'adresse link-local). Comme l'adresse MAC fait partie de l'adresse IP, toutes les adresses IP utilisées dans le monde sont uniques. Seules les parties définissant la topologie du site et la topologie publique peuvent varier selon le réseau dans lequel l'ordinateur fonctionne actuellement.

Si un ordinateur se « déplace » entre plusieurs réseaux, il a besoin d'au moins deux adresses. L'une, son « adresse personnelle » (home address), contient outre l'identificateur de l'interface, des informations relatives à son réseau d'exploitation d'origine et le préfixe correspondant. L'« adresse personnelle » est statique et n'est pas modifiée. Tous les paquets adressés à cet ordinateur lui sont transmis, qu'il se trouve sur son propre réseau ou sur un réseau étranger. La distribution sur le réseau étranger est prise en charge par des nouveautés essentielles du protocole IPv6, notamment l'« auto-configuration sans état » et la « découverte de voisins ». L'ordinateur mobile possède, outre son « adresse personnelle », une ou plusieurs autres adresses qui se trouvent sur les réseaux étrangers dans lequel il se déplace. Ces adresses sont des adresses « aux bons soins de » (care-of address). Il doit y avoir dans le réseau d'origine de l'ordinateur mobile une instance qui « redirige » sur son « adresse personnelle » lorsqu'il se trouve dans un autre réseau. Cette fonction est assurée, dans un scénario IPv6 par le « Home Agent ». Ce dernier distribue tous les paquets adressés à l'adresse personnelle de l'ordinateur mobile via un tunnel. Les paquets dont l'adresse de destination est l'adresse « aux bons soins de » peuvent ainsi être distribués directement.

22.2.3. Coexistence de IPv4 et de IPv6

Le passage d'IPv4 à IPv6 de tous les ordinateurs présents sur l'Internet ne se fera pas d'un coup. L'ancien et le nouveau protocole devraient encore cohabiter pendant un certain temps. La coexistence, sur un ordinateur, est assurée par la double pile, mais reste encore la question de la communication entre les ordinateurs IPv6 et IPv4 et comment IPv6 doit être transporté sur les réseaux IPv4 encore majoritaires. Les tunnels et l'utilisation d'adresses de compatibilité (reportez-vous à Section 22.2.2, « Types et structures d'adresses ») font partie des meilleures solutions.

Les îlots IPv6 dans le réseau IPv4 mondial échangent leurs données par l'intermédiaire de tunnels. Dans le cadre des tunnels, les paquets IPv6 sont encapsulés dans des paquets IPv4 pour pouvoir être transportés via un réseau IPv4 pur. Un tunnel est une connexion entre deux points terminaux IPv4. Il convient donc d'indiquer l'adresse IPv6 cible (ou le préfixe correspondant) à laquelle les paquets IPv6 déguisés doivent être envoyés et l'adresse IPv4 distante qui doit recevoir les paquets du tunnel. Dans les cas les plus simples, les administrateurs configurent ce type de tunnel entre leurs réseaux manuellement et après accord. On parle alors de tunnel statique.

Toutefois, la configuration et la maintenance de tunnels statiques est souvent trop laborieuse pour être utilisée au quotidien. C'est pour cette raison que IPv6 offre trois différentes méthodes pour avoir des tunnels dynamique.

6sur4 (6over4)

Les paquets IPv6 sont automatiquement encapsulés dans des paquets IPv4 et envoyés via un réseau IPv4 dans lequel la multidiffusion est activée. Pour IPv6, la totalité du réseau (d'un internet) apparaît comme un seul immense réseau local. Cela permet toujours de déterminer automatiquement le point terminal IPv4 du tunnel. Un inconvénient de cette méthode réside le fait qu'elle monte mal en charge et dans le fait que la multidiffusion IP est loin d'être disponible sur la totalité de l'Internet. Cette solution n'est donc adaptée que pour les réseaux plus réduits de sociétés ou d'institutions qui permettent de faire de la multidiffusion IP. Le RFC correspondant est le RFC 2529.

6vers4 (6to4)

Cette méthode génère automatiquement des adresses IPv4 à partir d'adresses IPv6. Les îlots IPv6 peuvent ainsi communiquer les uns avec les autres via un réseau IPv4. Il demeure cependant quelques problèmes pour ce qui concerne la communication entre les îlots IPv6 et l'Internet. Le RFC correspondant est le RFC 3056.

IPv6 Tunnel Broker

Cette approche prévoit des serveurs spéciaux qui définissent automatiquement des tunnels pour l'utilisateur. Le RFC correspondant est le RFC 3053.

[Important]L'initiative 6Bone

Au sein de l'Internet « à l'ancienne mode », le réseau 6Bone (www.6bone.net) constitue un réseau mondial réparti de sous-réseaux IPv6 connectés par des tunnels. Les programmeurs et les fournisseurs d'accès qui développent ou proposent des services IPv6 peuvent utiliser cet environnement de test pour acquérir l'expérience nécessaire avec ce nouveau protocole. Vous trouverez davantage d'informations à ce sujet sur le site Internet du projet.

22.2.4. Configurer IPv6

Vous n'aurez normalement pas à faire de modification sur les postes de travail individuels pour configurer IPv6. La prise en charge d'IPv6 doit toutefois être activée. Pour cela, saisissez modprobe ipv6 en tant que root.

Grâce au principe d'autoconfiguration de IPv6, la carte réseau se voit attribuer une adresse dans le réseau link-local. Normalement, une station de travail ne gère pas les tables de routage. Les routeurs du réseau peuvent être interrogés par la station de travail avec le protocole d'annonce des routeurs (RAP, Router Advertisement Protocol) pour connaître le préfixe et la passerelle à mettre en place. On peut utiliser le programme radvd pour paramétrer un routeur IPv6. Ce programme informe les stations de travail à propos du préfixe et des routeurs à utiliser pour les adresses IPv6. Vous pouvez aussi utiliser zebra pour configurer automatiquement les adresses et le routage.

Consultez la page de manuel de ifup (man ifup) pour obtenir des informations à propos de la mise en place des différents types de tunnels grâce aux fichiers /etc/sysconfig/network.

22.2.5. Documentation et liens supplémentaires au sujet d'IPv6

La présentation ci-dessus ne peut et ne se veut en aucun cas une introduction complète au sujet très complexe qu'est IPv6. Pour une approche plus approfondie d'IPv6, vous pouvez consulter la documentation en ligne et les ouvrages suivants :

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

Série d'articles avec de très bonnes descriptions sur les principes fondamentaux d'IPv6. Particulièrement appropriés pour une première approche de ce sujet.

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

Linux-IPv6-HOWTO et nombreux liens.

http://www.6bone.net/

Se connecter à IPv6 par un tunnel.

http://www.ipv6.org/

Tout sur IPv6.

RFC 2640

Le RFC d'introduction au sujet d'IPv6.

IPv6 Essentials

Présentation en anglais d'IPv6. Hagen, Silvia : IPv6 Essentials. O'Reilly & Associates, 2002. - (ISBN 0-596-00125-8).Voir aussi en français : Cizault, Gisèle :IPv6, théorie et pratique. O'Reilly & Associates, 2002. - (ISBN : 2-84177-139-3).


SUSE LINUX Guide de l'administrateur 9.2