[Tuto] 6to4 – Tunnel IPv6

Votre fournisseur d’accès internet ne vous fournis pas d’IPv6 ?
Bonne nouvelle, vous pouvez avoir jusqu’a 5 prefix IPv6 /48 gratuitement chez Tunnel Broker (Hurricane Electric)
Nous allons créer un tunnel qui va faire passer de l’IPv6 dans de l’IPv4, cette methode s’appel 6to4.

*** Il est necessaire d’avoir un routeur-parefeu et une adresse IPv4 public static ***

Avant de commencer, un peu de théorie 😉

Il faut déja savoir que l’IPv6 est en 128 bits et en hexadecimal et qu’il remplacera IPv4 dans quelques années car celui-ci est en pénuris.
IPv6 est, on peut dire une nouvelle version d’IP, malgrès que c’est différent d’IPv4, IP reste IP.

Il existe plusieurs type d’adresse IPv6 :
2000::/3 -> Adresses unicast routables sur Internet
fc00::/7 -> Adresses locales uniques non routage sur internet
fe80::/10 -> Adresses locales lien visible uniquement dans un réseau, ne passe pas le routeur
ff00::/8 -> Adresses multicast

Voici un exemple d’adresse IPv6 : 2001:db8:0:12b0::54c:13ab
-> Il s’agit là d’une adresse IPv6 qui à été simplifié
La forme complête de cette adresse est : 2001:0db8:0000:12b0:0000:0000:054c:13ab

Il y a deux regles a respecter pour la simplification :

1 – Supprimer les zéros situé a gauche d’un octect, par exemple :

2001:0db8:0000:12b0:0000:0000:054c:13ab

correspond à :

2001:db8:0:12b0:0:0:54c:13ab

2 – Raccoursir la série de zéros

L’adresse 2001:db8:0:12b0:0:0:54c:13ab peut se racoursir de la manière suivante :
2001:db8:0:12b0::54c:13ab

la série de :0:0: s’est transformer en :: (peut se faire qu’un seul fois, s’il y à deux séries, il faut choisir !)

autre exemple avec le prefix :
2001:0db8:abcd:0000:0000:0000:0000:0000/48 peut se simplifié en :

2001:db8:abcd::/48 : le ” :: ” remplace tous les zéros, c’est quand même mieu, nan ? 😉

Maintenant, nous allons voir à quoi correspond chaque bloque, je vais volontairement ecrire l’adresse sous forme complet pour une explication plus claire :

2001:0db8:abcd:0000:0000:0000:0000:0000/48

Chaque bloc est en 16 bit (hexadecimal 4×4=16)

– 2001:0db8:abcd = 48 premiers bits, il s’agit du prefix, ne peut pas être modifié, il vous a été fournit par votre fournisseur.
– 0000 = 16 bit qui vont service a la création de sous réseaux : vous avez jusqu’a 2^16 sous réseau possible… sois 65535 sous réseaux, il y a de quoi faire 😉
– 0000:0000:0000:0000 = 64 bit correspond a la parti interface, pour les hôtes.

Ont va découper l’adresse 2001:0db8:abcd:0000:0000:0000:0000:0000/48 en 2 sous reseau pour illustrer un exemple :

1er sous réseau : 2001:0db8:abcd:0000:0000:0000:0000:0000/64
simplification 2001:db8:abcd::/64

exemple d’adresse hôte : 2001:0db8:abcd:0000:0000:0000:0000:0001/64
simplification : 2001:db8:abcd::1/64

Remarque : Pourquoi l’adresse est passé en /64 ?
Comme en IPv4 le masque permet de délimité la partie réseau et la partie hotes

2001:0db8:abcd:0000:0000:0000:0000:0001
2001:0db8:abcd:0000 : Partie réseau, il s’agit du réseaux 0
0000:0000:0000:0001 : Il s’agit de la partie hôte, j’ai pris 1 mais on peut utiliser n’importe quel combinaisons…

Nous avons donc 64 bits dans la partie réseaux ( 4×16 ) d’ou le /64 😉

Sous réseau n°2 : 2001:0db8:abcd:0a10:0000:0000:0000:0000/64
simplification : 2001:db8:abcd:a10::/64

exemple d’adresse hôte : 2001:0db8:abcd:0a10:00a9:411b:ffe2:0123/64
simplification : 2001:db8:abcd:a10:a9:411b:ffe1:123/64

Plus d’information sur IPv6 consulter les RFC :

2460
3513

————————————————————————————————————————————————————————–

Bon nous allons maintenant créez notre tunnel
Pour commencer, rendez-vous sur https://tunnelbroker.net et créez-vous un compte.

Une fois votre compte créer, rendez vous sur la page principal.

-> Cliquez sur : Create Regular Tunnel

1

————————————————————————————————————————————————————————–

-> Remplissez la zone IPv4 Endpoint (Your side) avec votre adresse IPv4 public, je rappel que celle-ci doit-être static. Ensuite choisir un Serveur Tunnel, le mieu c’est de prendre le plus proche donc si vous êtes en France il faut prendre Paris, puis cliquez sur ” Create Tunnel ” en bas de la page.

2

————————————————————————————————————————————————————————–

-> Vous êtes donc revenue au menu principal. Vous pouvez remarquez qu’un tunnel a été ajouter. Cliquez dessus pour obtenir les informations necessaires pour la configuration de votre tunnel.

3

————————————————————————————————————————————————————————–

-> Vos information pour la configuration de vos tunnels

4

————————————————————————————————————————————————————————–

Configuration du tunnel

$ sudo -s
password :
# 

-> Dans notre exemple nous allons prendre les valeurs suivantes :
Server IPv4 Addresse: 216.66.84.42 (Adresse IPv4 de destination)
Server IPv6 Address: 2001:db8:f12b:a8::1/64 (Adresse tunnel IPv6 destination)
Client IPv4 Address: 55.14.122.38 (Votre adresse IPv4 public)
Client IPv6 Address: 2001:db8:f12b:a8::2/64 (Votre adresse tunnel IPv6 source)

Routed /64: 2001:db8:1234:a8::64
Routed /48: 2001:db8:abcd::/48

Rajoutez ces lignes suivantes dans le fichier interfaces:

# nano /etc/network/interfaces

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
     address 2001:db8:1234:a8::2
     netmask 64
     endpoint 216.66.84.42
     local 55.14.122.38
     ttl 255
     gateway 2001:db8:1234:a8::1

Si votre routeur n’a pas d’IP public, remplacez :

     local 55.14.122.38
par
     local IP du routeur (ex 192.168.x.x)

Redémarrer la machine pour quel les changements ont bien été pris en compte.

# reboot

Decoupage du /48 en sous réseau:
Je rappel que dans notre exemple notre prefix IPv6 /48 est 2001:db8:abcd::/48.

Pour découper en sous réseau, vous pouvez prendre :

2001:db8:abcd::/64
2001:db8:abcd:1::/64
2001:db8:abcd:2::/64
etc…

Pour que ça soit fonctionnel, il faut ajouter un règle de routage, et ajouter des règles au pare feu.
Ajout d’une route par default :

# ip route add 2000::/3 dev he-ipv6

Cette commande va envoyé tous les paquets avec une adresse IPv6 vers l’interface virtuel he-ipv6 qui est en réalité notre tunnel.

Pour le pare feu, nous allons supposés que votre routeur-parefeu possède 3 interfaces réseaux, par exemple (à adapter selon vos configs):

eth0 -> WAN : 2001:db8:abcd::1/64
eth1 -> LAN : 2001:db8:abcd:1::1/64
eth2 -> DMZ : 2001:db8:abcd:2::1/64

Il faut rajouter les règles suivantes dans votre script firewall :

ip6tables -t filter -A INPUT -i he-ipv6 -j ACCEPT
ip6tables -t filter -A OUTPUT -o he-ipv6 -j ACCEPT
ip6tables -t filter -A FORWARD -i he-ipv6 -j ACCEPT

ip6tables -t filter -A FORWARD -i eth0 -o he-ipv6 -j ACCEPT
ip6tables -t filter -A FORWARD -i eth1 -o he-ipv6 -j ACCEPT
ip6tables -t filter -A FORWARD -i eth2 -o he-ipv6 -j ACCEPT


*** Si votre routeur-parefeu n'a pas l'adresse IP public ***
iptables -t filter -A INPUT -p 41 -j ACCEPT
iptables -t filter -A OUTPUT -p 41 -j ACCEPT

# service firewall restart

Mise en place d’un DHCPv6 RADVD :

# aptitude install radvd

La configuration se fait dans un seul fichier.

# nano /etc/radvd.conf

interface eth1 {
        AdvSendAdvert on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 10;
        AdvLinkMTU 1500;
        AdvOtherConfigFlag on;
                prefix 2001:db8:abcd:1::/64 {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;

        };

        RDNSS 2001:db8:800::12 {
                #AdvRDNSSLifetime 30;
        };

        route ::/0 {
        };
};

interface eth2 {
        AdvSendAdvert on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 10;
        AdvLinkMTU 1500;
        AdvOtherConfigFlag on;
                prefix 2001:db8:abcd:2::/64 {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;

        };

        RDNSS 2001:db8:800::12 {
                #AdvRDNSSLifetime 30;
        };

        route ::/0 {
        };
};

# service radvd restart

Vous devez rajoutez ces lignes suivantes dans votre firewall pour un fonctionnement de l’IPv6 :

ip6tables -t filter -A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -j ACCEPT
ip6tables -t filter -A INPUT -p icmpv6 --icmpv6-type neighbour-advertisement -j ACCEPT
ip6tables -t filter -A INPUT -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT

Voilà, vous avez à présent de l’IPv6 pour tous le monde 😉
Vous pouvez tester votre connectivité sur :

http://test-ipv6.com : Vous devriez obtenir 10/10
http://www.kame.net : Si la tortue danse, c'est qu'elle est contente car vous avez de l'IPv6

Enjoy 😉

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *