IPv6 for fun without profit

Cela fait maintenant un bon bout de temps que je voulais me mettre à IPv6 (vous savez, le protocole censé remplacer IPv4 depuis 15 ans). J’ai finalement trouvé pris le temps… et voici mes remarques.

Les différentes études récentes montrent clairement que IPv6 est pour le moment très très peu utilisé (il représente 0.01% du trafic Internet IPv4) sans compter que les adresses IPv4 seront bientôt complètement épuisées.

Pour vérifier ces études je me suis donc décidé à passer ma connexion internet et les deux machines principales que j’utilise en IPv6.

Première étape, activer IPv6 sur ma freeboîte : connexion au portail free, activation de la fonctionnalité, récupération de mon subnet IPv6 et reboot de la freeboîte. Et la surprise : free ne donne qu’un /64.  Moi qui espérais me faire un subnet local, une dmz, un subnet pour le wifi, etc., ce ne sera pas en passant par chez free (oui, il existe des bidouilles pour faire du subnetting avec un masque plus grand que /64, mais ici pas question de bidouiller). Je n’exclus pas de passer par un tunnel broker dans le futur.

Je continue mes expérimentations. Mon poste de travail principal est sous OpenBSD. Tout est de base prévu pour IPv6. Il me faut récupérer une adresse. Pour ça on utilise la commande rtsol, qui correspond à l’auto-configuration stateless en IPv6 :

$ sudo sh -c 'echo "!/sbin/rtsol \\\$if" >> /etc/hostname.bge0'
$ sudo rtsol bge0
$ ifconfig bge0
bge0: flags=8843 mtu 1500
lladdr aa:aa:bb:bb:cc:cc
priority: 0
groups: egress
media: Ethernet autoselect (1000baseT full-duplex)
status: active
inet6 fe80::aaaa:bbbb:cccc:dddd%bge0 prefixlen 64 scopeid 0x1
inet 192.168.1.20 netmask 0xffffff00 broadcast 192.168.1.255
inet6 2a01:e35:xxxx:yyyy:aaaa:bbbb:cccc:dddd prefixlen 64 autoconf pltime 86381 vltime 86381

Pour le moment tout se passe bien. Un petit tour sur www.kame.net et miracle, la tortue bouge :).

Maintenant, pour continuer à faire joujou, je me dis que ce serait intéressant de passer ma seconde machine (la blade 1500) en full IPv6. Je boot sur un ramdisk du dernier snapshot pour une netinstall. Je paramètre le réseau : pas d’IPv4, IPv6 avec rtsol.

Et là, problème… quels sont les serveurs DNS joignables en IPv6 ?!? Sur ma machine principale je continuais d’utiliser les DNS IPv4 de Free, qui me répondaient avec les enregistrements AAAA correspondants, mais ici, plus d’IPv4. Je dois donc trouver un moyen pour les récupérer, et comme je l’ai dit plus haut, la freeboîte ne donne pas d’adresse en utilisant DHCPv6, mais à l’aide de l’auto-configuration stateless.

La station envoie un message ICMPv6 router solicitation sur l’adresse multicast all routers (ff02::2) en scope Link-Local. Le routeur présent répond alors à la station par un message ICMPv6 router advertisement sur l’adresse multicast all nodes (ff02::1) toujours en scope Link-Local. Ces messages de réponse contiennent différentes options.

Une option appelée IPv6 Router Advertisement Option for DNS Configuration est apparue avec la RFC 5006 expérimentale sortie en 2007. Seulement cette option n’est supportée à ma connaissance pour le moment que par linux, et problème, c’est ce mécanisme que Free utilise pour annoncer ses serveurs DNS.

Comment alors récupérer mes DNS ? Facile !!! retour sur ma machine principale, tcpdump dans un terminal, rtsol dans un autre :

$ sudo tcpdump -n -i bge0 -s 1600 -X icmp6
tcpdump: listening on bge0, link-type EN10MB
23:56:13.087743 fe80::211:25ff:fed3:542c > ff02::2: icmp6: router solicitation
[...]


23:56:13.094789 fe80::207:cbff:feb1:aacd > ff02::1: icmp6: router advertisement
[...]
0060: 2a01 0e00 0000 0000 0000 0000 0000 0002 *...............
0070: 2a01 0e00 0000 0000 0000 0000 0000 0001 *...............
[...]

Les DNS sont donc 2a01:e00::1 et 2a01:e00::2. Ok, maintenant j’ai les DNS, je peux poursuivre l’install. Je suis chanceux, mes miroirs favoris en France ont une connectivité IPv6. L’installation se termine, je reboot, et hop, me voilà avec un OpenBSD tout frais en full IPv6.

Prochaine étape, récupérer les sources de -current. Et la autre problème, après pas mal d’interrogations DNS sur les différents dépôts CVS :

$ host -t AAAA foo.bar

Il se trouve qu’il n’y en a pour le moment qu’un seul en Europe accessible sur IPv6. Ça vaut donc le coup de le signaler :

anoncvs@anoncvs.netbsd.se:/cvs

Je récupère les sources, je recompile un -current tout propre, je redémarre et je commence la config. Je veux synchroniser ma machine avec OpenNTPD. J’ai l’habitude d’utiliser fr.pool.ntp.org. Mais encore une fois surprise, quand je regarde les logs, aucune machine n’est joignable en IPv6. Je recherche un peu sur le net : pool.ntp.org ne distribue actuellement aucun serveur en IPv6. Ils commencent tout juste en ce début 2009 à les répertorier… Je continue alors mes recherches et après pas mal de temps j’obtiens une liste de cinq serveurs accessibles. Je la partage ici pour les intéressés :

server ntp2.cines.fr
server ntp6.space.net
server ntp.pouf.org
server ntp.via.ecp.fr
server ntp6.bsdsx.fr

Je peux maintenant utiliser ma machine correctement. Je me lance alors à l’assaut du web en IPv6. Je savais que le web en IPv6 était triste mais à ce point… je l’aurais jamais imaginé : google s’y met seulement, pas de yahoo, pas de lefigaro.fr, pas de lemonde.fr, etc. Bref, 99% des sites sur lesquels j’ai l’habitude d’aller ne passent pas.

Petite réflexion personnelle : que l’on aime ou pas IPv6 et j’ai mon avis sur la question… le jour où l’on pourra abandonner IPv4 est encore bien loin. Quand on voit comment les FAI traînent les pieds pour fournir de l’IPv6 décent (natif avec au moins un /48), la faible proportion de ressources disponibles sur internet en IPv6 et la pénurie approchante d’adresses IPv4, on se dit que le futur va devenir assez hilarant.

Laisser un commentaire

Vous devez être connecté pour laisser un commentaire.