Comment se connecter à Internet version 6 (IPv6) en utilisant SixXS.

Note : cette page est aussi valable pour tout autre tunnel broker (mais j'en ai pas trouvé d'autre gratuit et efficace comme SixXS)

= Prérequis =

 * une excellente liaison vers l'Europe (moins de 100ms)
 * une machine de test Debian (Sarge ou Etch) sur la DMZ, idéalement avec une IP fixe dédiée (pour test)
 * des compétences de base sur IPv6 et sur la sécurité des réseaux

= Mise en place =

== Création du tunnel ==

D'abord, aller sur http://www.sixxs.net, se créer un compte et demander un tunnel (au total ça prend 1 ou 2 jours, faut attendre entre les étapes car la validation est manuelle coté SixXS)

Puis créer un tunnel IPv6 sur la machine de test :

 1. Ajouter IPv6 dans les modules à charger au démarrage :
 {{{# ligne à ajouter à la fin de /etc/modules :
ipv6
}}}
 1. Créer un tunnel :
 {{{# à ajouter dans /etc/network/interfaces :
auto sit1
iface sit1 inet6 v4tunnel
  address [votre adresse IPv6 donnée par SixXS]
  netmask 64
  local [votre adresse IPv4 (obligatoire si votre machine en a plusieurs)]
  endpoint [l'adresse IPv4 du point de présence SixXS]
  ttl 64
  up ip link set mtu 1280 dev sit1
  up ip route add default via [l'adresse IPv6 coté SixXS] dev sit1
}}}
 1. Faire un {{{ifup -v sit1}}} et vérifier que le tunnel existe :
{{{$ /sbin/ifconfig sit1
sit1      Lien encap:IPv6-dans-IPv4
          adr inet6: 2001:770:100:a0::2/64 Scope:Global
          adr inet6: fe80::d59a:4146/128 Scope:Lien
          UP POINTOPOINT RUNNING NOARP  MTU:1280  Metric:1
          RX packets:2016 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1484 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          RX bytes:194768 (190.2 KiB)  TX bytes:184016 (179.7 KiB)

$ /sbin/route -6
Table de routage IPv6 du noyau
Destination                                 Prochain Hop                            Indic Metric Ref    Utilis. Iface
::1/128                                     ::                                      U     0      0        0 lo
2001:770:100:a0::2/128                      ::                                      U     0      1484       0 lo
2001:770:100:a0::/64                        ::                                      U     256    1471       0 sit1
fe80::d59a:4146/128                         ::                                      U     0      0        0 lo
fe80::290:96ff:fe24:5086/128                ::                                      U     0      0        0 lo
fe80::/64                                   ::                                      U     256    0        0 eth0
fe80::/64                                   ::                                      U     256    0        0 sit1
ff00::/8                                    ::                                      U     256    0        0 eth0
ff00::/8                                    ::                                      U     256    0        0 sit1
::/0                                        ::                                      UD    256    0        0 eth0
::/0                                        2001:770:100:a0::1                      UG    1024   20       0 sit1
}}}
 1. Tester le tunnel avec un ping vers l'adresse IPv6 coté SixXS : 
 {{{$ ping6 2001:770:100:a0::1
PING 2001:770:100:a0::1(2001:770:100:a0::1) 56 data bytes
64 bytes from 2001:770:100:a0::1: icmp_seq=1 ttl=64 time=78.2 ms
64 bytes from 2001:770:100:a0::1: icmp_seq=2 ttl=64 time=78.5 ms
64 bytes from 2001:770:100:a0::1: icmp_seq=3 ttl=64 time=78.9 ms
}}}
 1. puis vers www.renater.fr (en IPv6) :
 {{{$ ping6 www.renater.fr
PING www.renater.fr(2001:660:3001:4002::10) 56 data bytes
64 bytes from 2001:660:3001:4002::10: icmp_seq=1 ttl=54 time=101 ms
64 bytes from 2001:660:3001:4002::10: icmp_seq=2 ttl=54 time=112 ms
64 bytes from 2001:660:3001:4002::10: icmp_seq=3 ttl=54 time=100 ms
}}}


== Création d'un subnet ==

Une fois que votre tunnel IPv6 a fonctionné pendant une semaine, vous aurez gagné assez de crédits SixXS pour faire une demande de subnet. La documentation sera écrite ici par le premier qui y sera parvenu ;)

== Note sur la sécurité ==

Au niveau du parefeu de votre implantation, il faut ouvrir le protocole 41 (ipv6 dans ipv4) pour la machine de test DMZ afin que le tunnel puisse fonctionner. Il faut aussi laisser passer au moins le ping en IPv4 (mais qui ne le fait pas ?).

Au niveau de la passerelle IPv6 elle-même (votre machine de test sur la DMZ), il faut aussi faire du filtrage, mais cette fois-ci en IPv6. Il faut au moins laisser icmpv6 (pour le ping) afin que SixXS puisse tester que le tunnel fonctionne (et vous ajoute 5 crédits chaque semaine de fonctionnement). Nous sommes en train d'étudier les spécifités de ''netfilter'' pour IPv6.