IPv6 router guide/fr

Configuration basique du noyau
N'importe quel arbre basé sur un noyau 2.6 disponible dans Gentoo prend facilement en charge les connexions IPv6. La nouvelle pile IPv6 USAGI est intégrée das le noyau depuis Linux 2.6.0.

Vous êtes désormais prêt à entrer dans le répertoire des sources du noyau et à commencer la configuration de votre noyau.

-

Tester la prise en charge de l'IPv6
Après avoir activé les options recommandées, recompilez votre noyau et redémarrez avec votre nouveau noyau pour lequel IPv6 est activé.

Si vous n'avez pas encore iproute2 installé, nous vous enjoignons de le faire maintenant. iproute2 est une suite de configuration de réseau qui contient, le remplaçant célèbre de  ,   ,   et autres...

Si IPv6 fonctionne, le périphérique de boucle de retour (loopback device) devrait indiquer une adresse IPv6 :

Avant d'aller plus loin, assurez-vous que vous avez ajouté « ipv6 » à votre liste des options de la variable USE dans le fichier, de telle façon que les installations futures des paquets incluront la prise en charge de l'IPv6.

Configuration de base
La plupart des FAI n'offrent pas de connexions IPv6 nativement. Pour contourner cette limitation, il y a plusieurs plusieurs « courtiers en tunnels » de par le monde qui offrent des tunnels IPv6 libres. Ceci vous permet de créer un tunnel pour toutes vous connexions IPv6 via une connexion IPv4.

Ci-dessous, nous présentons deux exemples de création de tunnel avec deux courtiers populaires nord américains, Hurricane Electric (s'applique tout aussi bien aux tunnels non heartbeat de sixx) et Freenet6.

Hurricane Electric
Hurricane Electric (HE en abrégé) propose des tunnels IPv6 et réserve un bloc d'adresses /64 pour vous. Il autorise aussi la configuration du DNS inverse. Obtenir un tunnel de HE est aussi simple que de se rendre sur http://www.tunnelbroker.net/ et de remplir un formulaire.

Après qu'un tunnel vous soit accordé et que vous ayez un bloc d'adresses /64 alloué, vous pouvez configurer votre système Gentoo. HE fournit des exemples de configuration basés sur les utilitaires ifconfig et iproute. Les deux exemples qui suivent supposent que vous avez la configuration suivante :

Using the iproute2 package and the  command, you would do the following.

Créez un tunnel entre l'IPv4 local (eth0) et l'adresse IPv4 distante de HE.

Extrayez le surcoût du « tunnelling » du MTU :

Démarrer le tunnel :

Assignez lui l'adresse IPv6 :

Route all global unicast IPv6 addresses through our 'sixbone' tunnel device:

Freenet6
Freenet6 is another free tunnel broker. Optional registration only requires a username and a valid email address. They have chosen to turn the tunnel management into a client/server setup and have created the  client. The client is available in Portage. To install it do:

Now if you chose to connect with authentication, you need to configure  by editing. You should only have to change the userid and passwd fields to match those assigned from Freenet6 and change the gateway server. Below is a sample config file.

gw6c.conf example

Testing your connection
Now that your tunnel is configured, you can test your connection. The easiest way to do this is to use the  utility and try to ping an IPv6 host.

Further work is currently in progress to add better IPv6 support to the network init scripts. If you'd like to know the status of this and/or help out, email.

Re-emerging packages
Unless you had USE="ipv6" in your previously, you probably need to re-emerge a bunch of packages to compile in IPv6 support for them. To get a list of all the installed packages which are affected by USE flag changes, use Portage's   option:

If you have changed a lot of USE flags, the list could be quite long. It's suggested to keep your system up-to-date, so it won't hurt if you recompile all affected packages.

IPv6 Specific Packages
There are a few packages which specifically deal with IPv6 items. Most of these are located in.

IPv6 and DNS
Just as DNS for IPv4 uses A records, DNS for IPv6 uses AAAA records. (This is because IPv4 is an address space of 2^32 while IPv6 is an address space of 2^128). For reverse DNS, the INT standard is deprecated but still widely supported. ARPA is the latest standard. Support for the ARPA format will be described here.

BIND configuration
Recent versions of BIND include excellent IPv6 support. This section will assume you have at least minimal knowledge about the configuration and use of BIND. We will assume you are not running bind in a chroot. If you are, simply append the chroot prefix to most of the paths in the following section.

First you need to add entries for both forward and reverse DNS zone files in.

named.conf entries

Now we must create those zone files and add entries for all of our hosts:

pri/ipv6-rules.com

pri/rev-ipv6-rules.com.arpa

DJBDNS configuration
There are currently some third-party patches to DJBDNS available at http://www.fefe.de/dns/ that allow it to do IPv6 nameserving. DJBDNS can be installed with these patches by emerging it with ipv6 in your USE variables.

After djbdns is installed, it can be setup by running  and answering a few questions about which IP addresses to bind to, where to install tinydns, etc.

Assuming we've installed  into , we can now edit. This file will contain all the data needed to get tinydns handling DNS for your IPv6 delegation.

sample data file

Lines prefixed with a  will have both an AAAA and a PTR record created. Those prefixed with a  will only have an AAAA record created. Besides manually editing the file, you can use the scripts   and   to add new entries. After changes are made to the file, you simply need to run   from. This will create, which tinydns will use as its source of information for DNS requests.

Configure routing
Further configuration is required if we want to use our system as a router for other clients wishing to connect to the outside world with IPv6. We need to enable forwarding of IPv6 packets. We can do this in one of two ways.

Or we set the value 1 in the forwarding pseudo-file:

Or we use the  command:

To enable forwarding at boot, you'll need to edit and add the following line.

sysctl.conf addition

Traffic should now be forwarded from this box through the tunnel we've established with our broker.

To assign IPv6 addresses to clients, the IPv6 specification allows for both stateless and stateful IP assignment. Stateless assignment uses a process called Router Advertisement and allows clients to obtain an IP and a default route by simply bringing an interface up. It is called "stateless" because there is no record of IPs assigned and the host they are assigned to. Stateful assignment is handled by DHCPv6. It is "stateful" because the server keeps a state of the clients who've requested IPs and received them.

Stateless Configuration
Stateless configuration is easily accomplished using the Router Advertisement Daemon, or.

After having emerged , we need to create  that contains information about what IP block to assign IPs from. Here is a sample file using the prefix we've been assigned from our tunnel broker.

Sample radvd.conf

Further information is available in. We can now start  and set it to start at boot.

Stateful Configuration
If you'd like to have stateful configuration, you'll need to install and configure.

Now we must configure the dibbler client by editing.

Sample dibbler client configuration

We can now start the dibbler client, and configure it to start at boot.

Using radvd
Clients behind this router should now be able to connect to the rest of the net via IPv6. If using radvd, configuring hosts should be as easy as bringing the interface up. (This is probably already done by your net.ethX init scripts).

Other Resources
There are many excellent resources online pertaining to IPv6.

On IRC, you can try  on Freenode. You can connect to the Freenode servers using an IPv6 enabled client by connecting to irc.ipv6.freenode.net.

Acknowledgements
We would like to thank the following authors and editors for their contributions to this guide:


 * Peter Johanson
 * Jorge Paulo
 * Sven Vermeulen
 * Camille Huot
 * Pasi Valminen
 * nightmorph
 * hwoarang