EDIT :
WARNING : il y a un sale bug dans l'IPv6 de Barrier Breaker ! Je perds l'IPv6 une fois par jour : https://dev.openwrt.org/ticket/12888
Ne mettez pas à jour, sauf si vous vous foutez d'IPv6 (et vous ne devriez pas !).
Comme je suis abonné à un vrai FAI qui fournit du vrai Internet bio, sans filtre ni surveillance, fait à la main et roulé sous les aisselles, je n'ai pas de box fournie par celui-ci (enfin, si, on en prête, des neufbox ancienne génération mais c'est pas top, ça fait pas d'IPv6).
Du coup, je m'étais payé un modem/routeur Buffalo WBMR-HP-G300H qui a l'immense avantage d'être compatible OpenWRT. OpenWRT est un firmware de modem/routeur libre, ce qui veut dire que flasher son routeur avec OpenWRT, c'est aussi jouissif que de libérer un ordi en mettant une distribution GNU/Linux sur un ordi fourni avec Windows. 😀
Je ne vais pas détailler l'installation d'OpenWRT, mais sa mise à jour, de la version 12.09 (Attitude Adjustment) vers la dernière version en date, la 14.07 (Barrier Breaker).
Mise à jour
Tout d'abord, on va récupérer l'image kivabien et l'envoyer sur le routeur (partons du principe que le routeur est accessible à l'IP 192.168.1.1) :
wget https://downloads.openwrt.org/barrier_breaker/14.07/lantiq/xway/openwrt-lantiq-xway-WBMR-squashfs.image
scp root@192.168.1.1:/tmp
(voir ici pour libérer de la place s'il n'y en a pas assez dans /tmp
)
On va aussi récupérer un fichier nécessaire pour la suite et on se le garde au chaud sur son ordi :
wget https://downloads.openwrt.org/barrier_breaker/14.07/lantiq/xway/packages/base/kmod-ltq-adsl-ar9-fw-a_0.1-1_lantiq.ipk
On met à jour :
ssh root@192.168.1.1
cd /tmp
sysupgrade openwrt-lantiq-xway-WBMR-squashfs.image
Un petit reboot
s'il ne le fait pas tout seul.
Et là, c'est le drame !
Plus d'ADSL !
C'est simple : l'ADSL sur ligne téléphonique classique nécessite l'annexe a
alors que l'image vient avec l'annexe b
(ne me demandez pas la différence entre ces deux trucs ni ce que c'est).
On envoie alors le paquet téléchargé tout à l'heure :
scp kmod-ltq-adsl-ar9-fw-a_0.1-1_lantiq.ipk root@192.168.1.1:/tmp
On supprime l'annexe b
et on installe l'annexe a
:
ssh root@192.168.1.1
cd /tmp
opkg remove kmod-ltq-dsl-firmware-b-ar9
opkg install kmod-ltq-adsl-ar9-fw-a_0.1-1_lantiq.ipk
Ensuite on met à jour /etc/config/network
, dans la section config adsl
:
config adsl 'dsl'
option annex 'a'
option firmware '/lib/firmware/adsl.bin'
On reboot (oui, je suis une feignasse qui ne souvient plus quel service il a redémarré pour faire fonctionner le brol). Et là, normalement, ça fonctionne.
M'enfin ? Où est passé mon IPv6 ?
Barrier Breaker simplifie la gestion de l'IPv6 en intégrant tout ce qu'il faut pour que ça fonctionne, sans paquet supplémentaire. Mais comme ce n'était pas le cas avant, on a une configuration qui ne va pas 🙁
On commence par virer radvd
:
opkg remove radvd
Ou alors, vous pouvez juste l'arrêter et le désactiver :
/etc/init.d/radvd stop
/etc/init.d/radvd disable
Ensuite on met à jour /etc/config/network
(attention, je ne fais qu'ajouter de la config dans les différentes section, ne supprimez pas ce que vous avez déjà) :
config interface 'lan'
option ip6assign '64'
option ip6hint '42'
Explication : ip6assign '64'
indique que vous assignez un réseau /64 à votre réseau local et ip6hint '42'
sera concaténé à votre bloc d'IPv6.
C'est pas clair, donc voici un exemple : mettons que votre FAI vous fournisse le bloc 2001:DB8:1337::/48. Avec les options ci-dessus, les machines de votre réseau local piochera dans le bloc 2001:DB8:1337:42::/64.
Ça, normalement, vous l'avez déjà si vous aviez déjà configuré de l'IPv6 avant la mise à jour :
config interface 'wan'
option ipv6 '1'
Et on ajoute une nouvelle section :
config interface wan6
option ifname '@wan'
option proto dhcpv6
Maintenant on modifie /etc/config/dhcp
(toujours en ajout dans les sections existantes) :
config dhcp 'lan'
option interface 'lan'
option ra 'server'
option dhcpv6 'server'
option ra_management '2'
Vérifiez que cette section a bien été ajoutée lors de la mise à jour d'OpenWRT :
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
On s'assure que /etc/sysctl.conf
contienne bien ces deux lignes :
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
Et on reboote.
Voilà, normalement ça devrait rouler tout seul 🙂
Et pour finir, une jolie nimage de la nouvelle interface web d'OpenWRT qui vient avec Barrier Breaker :
Sources :
Il est vrai qu’une simple mise à jour peut parfois tourner au vinaigre. On a parfois tendance à ignorer les petits détails qui ne sont pas rien. Il vaut toujours mieux suivre ce genre de guide d’installation afin d’éviter les erreurs.