DD-WRT + IPv6 + Freebox

Edit: Cette méthode a un défaut, elle provoque des déconnexions sur la couche IPv4 de quelques secondes. J'ai tenté de recompiler ebtable_broute, mais sans succès cependant. Je recherche toujours.

Cela était bien plus facile au temps où vous n'aviez qu'une Freebox, mais cette boite noire et non-modifiable n'était pas à votre goût, et vous avez acheté un merveilleux routeur que vous vous êtes empressés de flasher avec une DD-WRT. Malheureusement, vous avez perdu l'IPv6, et comme vous êtes conscients de la pénurie d'IPv4, vous aimeriez bien une solution.

Pour ce qui va suivre, j'espère vous devrez avoir une version qui prend en charge IPv6, évidemment.

Petite précision, je sais qu'il existe plusieurs guides pour mettre l'IPv6 de chez Free sur son DD-WRT, cependant, les versions évoluent et les manipulations ne sont pas exactement les mêmes.

Allez sur la page de configuration de votre routeur, dans l'onglet "Administration", cherchez "Support IPv6" et "Support JFFS2".

DD-WRT IPv6

Cochez les deux cases, appuyez sur le bouton "appliquer". Si au redémarrage du routeur, sur la même page, la valeur pour l'espace Total/Libre est nulle ou que vous n'arriverez pas à accéder dans la suite de l'article au dossier /tmp, faites cochez "Effacer HFFS2".

Ce qui a changé : le support IPv6 est activé, sous Windows avec ipconfig ou sous Linux avec ifconfig/ip -6 addr show, une adresse IPv6 de "lien local" (fe80::). Ce n'est pas très utile pour le moment, à part pinguer le routeur ou les autres hôtes du réseau. Mais bon, vous êtes en IPv6 !

Ensuite, je vous ait fait activer le support JFFS2, cela permettra d'utiliser un petit espace (sous la forme d'une partition) de stockage disponible sur le routeur. JFFS2 est un système de fichiers (au même titre que FAT, NTFS, ext2...) très utilisé pour l'embarqué avec les mémoires flash (pour l'anecdote, les téléphones Android ont une mémoire NAND, n'utilisent pas JFFS2 qui supporte ce format mais YAFFS). La taille de cette mémore varie selon le hardware du routeur.

DD-WRT IPv6

Pour la suite, nous devrons nous connecter en SSH au routeur. Vérifiez bien que dans l'onglet "Services" le daemon (SSHd) est bien activé.

Si tout est opérationnel, loguez-vous sur l'IP de la passerelle avec le nom d'utilisateur "root" et le mot de passe que vous aurez défini au premier démarrage du routeur.

Allez dans le répertoire /tmp/

Téléchargez dedans (par wget directement ou via un transfert par SCP) le module ebtable_broute.o soit sur cette page (qui m'a beaucoup aidé pour faire marcher l'IPv6) ou bien directement ici. Vérifiez l'intégrité du fichier : MD5 19A6DBAB923F99BE3A1789FD629D5E71, SHA1 A790F53D22D6C6FFD8F85D5BE1FA0DB77635308F

Les commandes à faire sont :

insmod ebtables insmod /tmp/ebtable_broute.o

Ensuite, faites attention, cela peut changer selon les routeurs et les installations, il faut que l'interface notée ici en gras soit celle de votre WAN (soit celle connectée à Internet/Freebox).

Pour en être certain, deux solutions, soit vous regardez l'interface qui a votre IP externe avec ifconfig soit dans la page de configuration de votre routeur, vous allez dans "Configuration" puis "LAN Virtuel" et regardez quelle interface est assignée au port WAN :

DD-WRT IPv6

brctl addif br0 vlan2 ebtables -t broute -A BROUTING -i vlan2 -p ! ipv6 -j DROP

Attendez un peu, pas besoin de rebooter, relancez la carte réseau de votre PC (renouvellement).

Si vous voyez une IPv6 qui est disponible et que vous voyez la tortue bouger sur Kame.net tout est bon.

Vous pouvez mettre un script de démarrage automatique. Voir ici pour le mettre sur la partition JFFS2.

Note : Il se peut que vous ayez visité cette page qui propose une autre méthode pour les connexions natives IPv6, néanmoins, d'une part, le daemon radvd ne se lance pas bien chez moi, il faut le lancer manuellement (radvd -C /tmp/radvd.conf). D'autre part, même si vous entrez le bon préfixe et que vous recevrez une IPv6, il n'y a pas de connexion : les paquets ne traversent pas le routeur.