L'IPv6 (également connu sous le nom de IPng “IP nouvelle génération”) est la nouvelle version du très célèbre protocole IP (aussi connu sous le nom d'IPv4). Comme les autres systèmes BSD, FreeBSD utilise l'implémentation IPv6 KAME. Votre système FreeBSD est donc fourni avec tout ce dont vous aurez besoin pour tester l'IPv6. Cette section se concentre sur la configuration et l'utilisation d'IPv6.
Au début des années 90, on a pris conscience de la diminution rapide de l'espace d'adresses IPv4. Etant donné le taux d'expansion de l'Internet, deux problèmes majeurs apparaissaient:
Le manque d'adresses. Aujourd'hui ce n'est plus
vraiment un problème puisque les espaces d'adresses
privées RFC1918 (10.0.0.0/8
,
172.16.0.0/12
, et
192.168.0.0/16
) et la
translation d'adresses (NAT) sont
utilisés.
Les tables des routeurs devenaient trop importantes. C'est toujours un problème actuellement.
L'IPv6 remédie à ces problèmes et à de nombreux autres:
Espace d'adressage sur 128 bits. Ou plus précisément, il y a 340 282 366 920 938 463 463 374 607 431 768 211 456 adresses disponibles. Cela équivaut à approximativement 6.67 * 10^27 adresses IPv6 par kilomètre-carré de surface de notre planète.
Les routeurs ne stockeront que des regroupements d'adresses dans leurs tables de routage réduisant donc l'espace moyen d'une table de routage à 8192 entrées.
IPv6 présente également de nombreuses autres intéressantes fonctionnalités telles que:
L'autoconfiguration des adresses (RFC2462)
Adresses unicast (“une parmi plusieurs”)
Adresses multicast (multidestinataires) obligatoires
IPsec (protocole de sécurité IP)
Struture d'entête simplifiée
IP mobile
Mécanismes de transition IPv6-vers-IPv4
Pour plus d'informations consultez les références suivantes:
Généralités sur l'IPv6 à playground.sun.com
Il existe différent types d'adresses IPv6: unicast, anycast et multicast.
Les adresses unicast (mono-destinataire) sont les adresses classiques. Un paquet envoyé à une adresse unicast arrive à l'interface correspondant à l'adresse.
Les adresses anycast ne sont normalement pas distinguables des adresses unicast mais correspondent à un groupe d'interfaces. Un paquet destiné à une adresse anycast arrivera à l'interface la plus proche (en terme d'unité de distance du protocole de routage). Les adresses anycast devraient n'être utilisées que par les routeurs.
Les adresses multicast identifient un groupe d'interfaces. Un paquet destiné à une adresse multicast arrivera sur toutes les interfaces appartenant au groupe multicast.
L'adresse de diffusion IPv4
(généralement xxx.xxx.xxx.255
) est exprimée
par des adresses multicast en IPv6.
Adresse IPv6 | Longueur du préfixe (bits) | Description | Notes |
---|---|---|---|
:: | 128 bits | non-spécifiée | similaire à 0.0.0.0 sous IPv4 |
::1 | 128 bits | adresse de boucle | similaire à 127.0.0.1 sous IPv4 |
::00:xx:xx:xx:xx | 96 bits | IPv4 encapsulé | Les 32 bits de poids faible sont l'adresse IPv4. Egalement appelée “adresse IPv6 compatible IPv4”. |
::ff:xx:xx:xx:xx | 96 bits | adresse IPv6 mappée IPv4 | Les 32 bits de poids faible sont l'adresse IPv4. Destinées aux machines ne supportant pas l'IPv6. |
fe80:: - feb:: | 10 bits | lien-local | similaire à l'interface de boucle sous IPv4 |
fec0:: - fef:: | 10 bits | site-local | |
ff:: | 8 bits | multicast | |
001 (base
2) | 3 bits | unicast globale | Toutes les adresses unicast globales sont assignées à partir de ce pool. Les trois premiers bits de l'adresse sont “001”. |
La forme canonique est représentée suivant
le schéma: x:x:x:x:x:x:x:x
, où chaque
“x” est une valeur héxadécimale sur
16 bits. Par exemple FEBC:A574:382B:23C1:AA49:4592:4EFE:9982
Souvent dans une adresse on aura de longues sous-parties
constituées de zéros, une telle
sous-partie peut être abrégée par
“::”. Les trois « 0 »s de poids fort
de chaque quartet hexadécimal peuvent également être omis.
Par exemple fe80::1
correspond à la forme
canonique fe80:0000:0000:0000:0000:0000:0000:0001
.
Une troisième forme est d'écrire les
derniers 32 bits dans le style IPv4 bien connu
(décimal) avec des points “.” comme
séparateurs. Par exemple 2002::10.0.0.1
correspond à la
représentation canonique (hexadécimale) 2002:0000:0000:0000:0000:0000:0a00:0001
qui est à son tour équivalente à
l'écriture 2002::a00:1
.
Maintenant le lecteur devrait être en mesure de comprendre ce qui suit:
#
ifconfig
fe80::200:21ff:fe03:8e1%rl0
est une
adresse de lien local configurée automatiquement. Elle
est générée à partir de l'adresse MAC dans le cas de
l'autoconfiguration.
Pour plus d'informations sur la structure des adresses IPv6 consultez la RFC3513.
Actuellement, il y a quatre façons de se connecter à des machines et des réseaux utilisant l'IPv6:
Rejoindre le réseau expérimental 6bone
Obtenir un réseau IPv6 auprès de votre fournisseur d'accès. Contactez votre fournisseur d'accès Internet pour plus d'informations.
Utilisation d'un tunnel 6-vers-4 (RFC3068)
Utilisation du logiciel porté net/freenet6
si vous utilisez
une connexion par modem.
Ici nous ne parlerons que de la manière de se connecter au réseau 6bone puisque cela semble être aujourd'hui la méthode de connexion la plus populaire.
Consultez tout d'abord le site 6bone et recherchez une connexion 6bone proche de vous. Contactez le responsable et avec un peu de chance on vous donnera les instructions à suivre pour configurer votre connexion. Généralement cela implique la mise en place d'un tunnel GRE (gif).
Voici un exemple typique de configuration d'un tunnel gif(4):
#
ifconfig gif0 create
#
ifconfig gif0
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
#
ifconfig gif0 tunnel MON_ADR_IPv4 MON_ADR_IPv4_ASSIGNEE_A_LAUTRE_BOUT_DU_TUNNEL
#
ifconfig gif0 inet6 alias MON_ADR_IPv6_ASSIGNEE_A_LEXTREMITE_DU_TUNNEL MON_ADR_IPv6_ASSIGNEE_A_LAUTRE_BOUT_DU_TUNNEL
Remplacez les mots en majuscules par les informations que vous avez reçues du point d'accès 6bone.
Ceci établit le tunnel. Vérifiez si le
tunnel fonctionne en utilisant ping6(8) sur l'adresse
ff02::1%gif0
. Vous devriez
récevoir les réponses aux requêtes
ping.
Au cas où vous seriez intrigué par
l'adresse ff02:1%gif0
, sachez
que c'est une adresse multicast. %gif0
précise que l'adresse multicast de l'interface
gif0
doit être utilisée.
Puisque nous utilisons ping
sur une adresse
multicast, l'autre bout du tunnel devrait également
répondre.
Désormais, la mise en place d'une route vers votre lien 6bone devrait être relativement directe:
#
route add -inet6 default -interface gif0
#
ping6 -n MON_LIEN_MONTANT
#
traceroute6 www.jp.FreeBSD.org
(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets
1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms
2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms *
3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms
4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms
5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms
6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 msLa sortie pourra être différente d'une
machine à une autre. Maintenant vous devriez
être en mesure d'atteindre le site IPv6 www.kame.net et de voir la
tortue dansante — et cela si vous disposez d'un
navigateur supportant l'IPv6 comme www/mozilla
,
Konqueror qui fait partie du
logiciel x11/kdebase3
,
ou www/epiphany
.
A l'origine, il existait deux types d'enregistrement DNS pour l'IPv6. L'organisme IETF a déclaré obsolète l'enregistrement A6. Les enregistrements AAAA sont aujourd'hui le standard.
L'utilisation des enregistrements AAAA est assez direct. Assignez votre nom de machine à la nouvelle adresse IPv6 que vous venez d'obtenir en ajoutant:
à votre fichier de zone DNS primaire. Dans le cas
où vous ne gérez pas vos propres zones
DNS contactez le responsable de votre
DNS. Les versions actuelles de
bind (version 8.3 et 9) et dns/djbdns
(avec le correctif IPv6) supportent
les enregistrements AAAA.
Ces paramètres vous permettront de configurer une machine qui sera sur votre réseau local et sera un client, non pas un routeur. Pour que rtsol(8) configure automatiquement votre interface réseau au démarrage tout ce dont vous avez besoin d'ajouter est:
Pour assigner une adresse IP statique telle que 2001:471:1f11:251:290:27ff:fee0:2093
,
à votre interface fxp0
,
ajoutez:
Pour assigner le routeur par défaut 2001:471:1f11:251::1
, ajoutez ce qui
suit au fichier /etc/rc.conf
:
Ceci vous aidera à mettre en oeuvre les
instructions que votre fournisseur de tunnel, tel que 6bone, vous a
donné et à les convertir en paramètres
qui seront conservés à chaque
démarrage. Pour rétablir votre tunnel au
démarrage, utilisez quelque chose comme ce qui suit
dans le fichier /etc/rc.conf
:
Listez les interfaces génériques de tunnel
qui seront configurées, par exemple
gif0
:
Pour configurer l'interface avec une adresse
(extrémité) locale
MY_IPv4_ADDR
vers une adresse
(extrémité) distante
REMOTE_IPv4_ADDR
:
MY_IPv4_ADDR REMOTE_IPv4_ADDR
"Pour utiliser l'adresse IPv6 que l'on vous a assigné en vue d'être utilisée pour votre extrémité du tunnel IPv6, ajoutez:
MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR
"Ensuite tout ce qu'il reste à faire est de définir la route par défaut pour l'IPv6. C'est l'autre extrémité du tunnel IPv6:
MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR
"Cette section vous aidera à configurer rtadvd(8) pour l'annonce de la route IPv6 par défaut.
Pour activer rtadvd(8), vous devrez ajouter ce qui
suit à votre fichier
/etc/rc.conf
:
Il est important que vous indiquiez l'interface sur
laquelle le routeur IPv6 sera sollicité. Par exemple
pour que rtadvd(8) utilise
fxp0
:
Nous devons maintenant créer le fichier de
configuration /etc/rtadvd.conf
. Voici un
exemple:
Remplacez fxp0
avec l'interface
que vous allez utiliser.
Ensuite remplacez 2001:471:1f11:246::
avec votre
préfixe.
Si vous êtes un sous-réseau /64
dédié, il ne sera
pas nécessaire de modifier quelque chose d'autre.
Sinon, vous devrez modifier prefixlen#
avec
la valeur correcte.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.