HOWTO du routage avancé et du contrôle de trafic sous Linux | ||
---|---|---|
Précédent | Chapitre 6. Tunnel IPv6 avec Cisco et/ou une dorsale IPv6 (6bone) | Suivant |
Voici une autre application des possibilités de tunnels de Linux. Celle-ci est populaire parmi les premiers adeptes d'IPv6 ou les pionniers si vous préférez. L'exemple pratique décrit ci-dessous n'est certainement pas la seule manière de réaliser un tunnel IPv6. Cependant, c'est la méthode qui est souvent utilisée pour réaliser un tunnel entre Linux et un routeur Cisco IPv6 et l'expérience m'a appris que c'est ce type d'équipement que beaucoup de personnes ont. Dix contre un que ceci s'appliquera aussi pour vous ;-).
De petites choses à propos des adresses IPv6 :
Les adresses IPv6 sont, en comparaison avec les adresses IPv4, vraiment grandes : 128 bits contre 32 bits. Et ceci nous fournit la chose dont nous avons besoin : beaucoup, beaucoup d'adresses IP : 340,282,266,920,938,463,463,374,607,431,768,211,465 pour être précis. A part ceci, IPv6 (ou IPng génération suivante (Next Generation)) est supposé fournir des tables de routage plus petites sur les routeurs des dorsales Internet, une configuration plus simple des équipements, une meilleure sécurité au niveau IP et un meilleur support pour la Qualité de Service (QoS).
Un exemple : 2002:836b:9820:0000:0000:0000:836b:9886
Ecrire les adresses IPv6 peut être un peu lourd. Il existe donc des règles qui rendent la vie plus facile :
Ne pas utiliser les zéros de tête, comme dans IPv4 ;
Utiliser des double-points de séparation tous les 16 bits ou 2 octets ;
Quand vous avez beaucoup de zéros consécutifs, vous pouvez écrire ::. Vous ne pouvez, cependant, faire cela qu'une seule fois par adresse et seulement pour une longueur de 16 bits.
L'adresse 2002:836b:9820:0000:0000:0000:836b:9886 peut être écrite 2002:836b:9820::836b:9886, ce qui est plus amical.
Un autre exemple : l'adresse 3ffe:0000:0000:0000:0000:0000:34A1:F32C peut être écrite 3ffe::20:34A1:F32C, ce qui est beaucoup plus court.
IPv6 a pour but d'être le successeur de l'actuel IPv4. Dans la mesure où cette technologie est relativement récente, il n'y a pas encore de réseau natif IPv6 à l'échelle mondiale. Pour permettre un développement rapide, la dorsale IPv6 (6bone) a été introduite.
Les réseaux natifs IPv6 sont interconnectés grâce à l'encapsulation du protocole IPv6 dans des paquets IPv4, qui sont envoyés à travers l'infrastructure IPv4 existante, d'un site IPv6 à un autre.
C'est dans cette situation que l'on monte un tunnel.
Pour être capable d'utiliser IPv6, vous devrez avoir un noyau qui le supporte. Il y a beaucoup de bons documents qui expliquent la manière de réaliser cela. Mais, tout se résume à quelques étapes :
Récupérer une distribution Linux récente, avec une glibc convenable.
Récupérer alors les sources à jour du noyau.
Aller dans /usr/src/linux et tapez :
make menuconfig
Choisir Networking Options
Sélectionner The IPv6 protocol, IPv6: enable EUI-64 token format, IPv6: disable provider based addresses
ASTUCE :Ne compiler pas ces options en tant que module. Ceci ne marchera souvent pas bien.
En d'autres termes, compilez IPv6 directement dans votre noyau. Vous pouvez alors sauvegarder votre configuration comme d'habitude et entreprendre la compilation de votre noyau.
ASTUCE: Avant de faire cela, modifier votre Makefile comme suit : EXTRAVERSION = -x ; --> ; EXTRAVERSION = -x-IPv6
Il y a beaucoup de bonnes documentations sur la compilation et l'installation d'un noyau. Cependant, ce document ne traite pas de ce sujet. Si vous rencontrez des problèmes à ce niveau, allez et recherchez dans la documentation des renseignements sur la compilation du noyau Linux correspondant à vos propres spécifications.
Le fichier /usr/src/linux/README peut constituer un bon départ. Après avoir réalisé tout ceci, et redémarré avec votre nouveau noyau flambant neuf, vous pouvez lancer la commande /sbin/ifconfig -a et noter un nouveau périphérique sit0. SIT signifie Transition Simple d'Internet (Simple Internet Transition). Vous pouvez vous auto-complimenter : vous avez maintenant franchi une étape importante vers IP, la prochaine génération ;-)
Passons maintenant à l'étape suivante. Vous voulez connecter votre hôte ou peut-être même tout votre réseau LAN à d'autres réseaux IPv6. Cela pourrait être la dorsale IPv6 << 6bone >> qui a été spécialement mise en place dans ce but particulier.
Supposons que vous avez le réseau IPv6 suivant : 3ffe:604:6:8::/64 et que vous vouliez le connecter à une dorsale IPv6 ou à un ami. Notez, s'il vous plaît, que la notation sous-réseau /64 est similaire à celle des adresses IPv4.
Votre adresse IPv4 est 145.100.24.181 et le routeur 6bone a l'adresse IPv4 145.100.1.5.
# ip tunnel add sixbone mode sit remote 145.100.1.5 [local 145.100.24.181 ttl 225] # ip link set sixbone up # ip addr add 3FFE:604:6:7::2/96 dev sixbone # ip route add 3ffe::0/15 dev sixbone |
Discutons de ceci. Dans la première ligne, nous avons créé un périphérique appelé sixbone. Nous lui avons donné l'attribut sit (mode sit) (qui est le tunnel IPv6 dans IPv4) et nous lui avons dit où aller (remote) et d'où nous venions (local). TTL est configuré à son maximum, 255.
Ensuite, nous avons rendu le périphérique actif (up). Après cela, nous avons ajouté notre propre adresse réseau et configuré une route pour 3ffe::/15 (qui est actuellement la totalité du 6bone) à travers le tunnel. Si la machine sur laquelle vous mettez en place tout ceci est votre passerelle IPv6, ajoutez alors les lignes suivantes :
# echo 1 >/proc/sys/net/ipv6/conf/all/forwarding # /usr/local/sbin/radvd |
En dernière instruction, radvd est un démon d'annonce comme zebra qui permet de supporter les fonctionnalités d'autoconfiguration d'IPv6. Recherchez le avec votre moteur de recherche favori. Vous pouvez vérifier les choses comme ceci :
# /sbin/ip -f inet6 addr |
Si vous arrivez à avoir radvd tournant sur votre passerelle IPv6 et que vous démarrez une machine avec IPv6 sur votre réseau local, vous serez ravi de voir les bénéfices de l'autoconfiguration IPv6 :
# /sbin/ip -f inet6 addr 1: lo: <LOOPBACK,UP> mtu 3924 qdisc noqueue inet6 ::1/128 scope host 3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 inet6 3ffe:604:6:8:5054:4cff:fe01:e3d6/64 scope global dynamic valid_lft forever preferred_lft 604646sec inet6 fe80::5054:4cff:fe01:e3d6/10 scope link |
Vous pouvez maintenant configurer votre serveur de noms pour les adresses IPv6. Le type A a un équivalent pour IPv6 : AAAA. L'équivalent de in-addr.arpa est : ip6.int. Il y a beaucoup d'informations disponibles sur ce sujet.
Il y a un nombre croissant d'applications IPv6 disponibles, comme le shell sécurisé, telnet, inetd, le navigateur Mozilla, le serveur web Apache et beaucoup d'autres. Mais ceci est en dehors du sujet de ce document de routage ;-).
Du côté Cisco, la configuration ressemblera à ceci :
! interface Tunnel1 description IPv6 tunnel no ip address no ip directed-broadcast ipv6 enable ipv6 address 3FFE:604:6:7::1/96 tunnel source Serial0 tunnel destination 145.100.24.181 tunnel mode ipv6ip ! ipv6 route 3FFE:604:6:8::/64 Tunnel1 |
Si vous n'avez pas un Cisco à votre disposition, essayez un des prestataires de tunnel IPv6 disponible sur Internet. Ils sont prêts à configurer leur Cisco avec un tunnel supplémentaire pour vous, le plus souvent au moyen d'une agréable interface web. Cherchez ipv6 tunnel broker avec votre moteur de recherche favori.
Précédent | Sommaire | Suivant |
Tunnel IPv6 avec Cisco et/ou une dorsale IPv6 (6bone) | Niveau supérieur | IPsec : IP sécurisé à travers l'Internet |