IPv6, tout le monde y va. Mais tous les ISP ne souhaitent pas franchir le pas. Et pourtant, tous les services web sont accessible en IPv6. Google, gmail, facebook, twitter …
Nous vous proposons de monter un tunnel IPv6 pour amener cette technologie dans votre réseau (votre lab pour commencer).
Vous connaissez probablement Hurricane Electric, he.net, qui fournit des endpoints aux Etats-Unis. Nous vous proposons de faire la même chose, mais en France. Vous gagnerez en latence, et vous êtes connectez au coeur des principales routes d’échanges si votre point de sortie est bien localisé.
Partons du principe que vous avez une gateway pfSense dans votre LAN et que vous êtes administrateur système.
La partie configuration du pfSense est triviale, si on a les bons éléments sous la main. En l’occurrence, les informations d’IP et de route à utiliser.
Dans notre cas, prenons les valeurs suivantes:
pfSense | Routeur IPv6 | |
---|---|---|
LAN IPv4 | 10.0.0.1/24 | |
LAN IPv6 | 2001:db8::/64 | |
WAN IPv4 | 192.0.2.1/24 | 198.51.100.1/24 |
Et c’est tout ce que nous avons besoin d’avoir comme information pour configurer notre pfSense.
Configuration du pfSense, côté client
Interface Tunnel
Dans la partie “Interfaces > (assign) > GIF > New”, entrez les valeurs suivantes:
Ensuite, configurez votre nouvelle interface WAN_V6 de la manière suivante:
Notez que nous ne mettons pas d’information d’IP ici (ni v4, ni v6).
Route IPv6 par défaut
Cette partie terminée, vous pouvez vérifier que votre route IPv6 est bien la route par défaut. Ce n’est pas le cas au départ, il faut donc aller modifier le paramètre dans “System > Routing” :
Une fois cela réglé, la configuration de votre pfSense est terminée, pour la partie connectivité.
DHCPv6
Affectons maintenant des IPv6 à votre LAN. C’est trivial et c’est la beauté d’IPv6:
Dans “Services > DHCPv6”, activez le DHCP sur l’interface LAN.
Dans le Range, choisissez une plage pour vos clients dhcp, par exemple:
2001:db8:0:0:ffff:: -> 2001:db8:0:0:ffff:ffff:ffff:ffff
Laissez le reste par défaut.
Router Advertisements
Dans la partie “Router Advertisements”, choisissez l’option “Managed”:
Votre pfSense va envoyer des informations de routage sur votre LAN. Les clients IPv6 qui attendent des informations vont recevoir leur IP, et vont pouvoir commencer à “sortir” vers Internet.
Il ne vous reste plus qu’à définir vos règles de firewalling en entrée/sortie, et les services à exposer.
Configuration du routeur, côté datacenter
Passons à la partie routeur IPv6. Bien entendu, nous allons utiliser un FreeBSD 10 avec un endpoint de tunnel gif(4).
La configuration est triviale la aussi, merci les gens de FreeBSD ;)
root@vpn-6in4:~ # cat /etc/rc.conf.local # autoriser le routage IPv6 ipv6_gateway_enable="YES" # creer l'interface de tunneling cloned_interfaces="gif0" # declarer les routes du tunnel static_routes="gif0" ## La creation du tunnel # "tunnel " ifconfig_gif0="tunnel 198.51.100.1 192.0.2.1" # IP locale au tunnel, permettant de router les paquets. Rien a voir avec # les IPs routes du LAN du pfSense distant ifconfig_gif0_ipv6="inet6 2001:db8:ffff:ffff::1 prefixlen 64" # route qui permet de joindre, via le tunnel, les IP du LANv6 du pfSense route_gif0="-inet6 2001:db8:ffff::/64 2001:db8:ffff:ffff::2"
Ensuite, il faut redémarrer le réseau – /etc/rc.d/netif restart ; /etc/rc.d/routing restart –
Test de la configuration
Si tout est correct, vous pouvez obtenir le résultat suivant:
ws:~ nicolas$ ping6 ipv6.google.com PING6(56=40+8+8 bytes) 2001:db8:0:0:ffff::d54d --> 2a00:1450:4007:806::1005 16 bytes from 2a00:1450:4007:806::1005, icmp_seq=0 hlim=56 time=16.327 ms 16 bytes from 2a00:1450:4007:806::1005, icmp_seq=1 hlim=56 time=15.537 ms 16 bytes from 2a00:1450:4007:806::1005, icmp_seq=2 hlim=56 time=15.520 ms 16 bytes from 2a00:1450:4007:806::1005, icmp_seq=3 hlim=56 time=15.440 ms 16 bytes from 2a00:1450:4007:806::1005, icmp_seq=4 hlim=56 time=15.914 ms ^C --- ipv6.l.google.com ping6 statistics --- 5 packets transmitted, 5 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 15.440/15.748/16.327/0.333 ms