Ayant changé de routeur, je ne peux plus maintenir ce tuto. N'hésitez pas à poster des améliorations/corrections en réponses, ou me contacter pour que je mette un lien vers une version mise à jour.J'utilise le firmware Tomato by shibby sur mon routeur D-Link DIR868L, qui me permet de laisser la livebox dans le grenier pour me connecter a Sosh. Suite a la
baisse de debits PPPoE, je suis passé aujourd'hui en DHCP ipv4, voici comment j'ai fait.
Attention: nous allons devoir faire des changements bas-niveau, sauvegardez vos paramètres et assurez-vous de savoir faire un reset de la configuration de votre routeur en cas de mauvaise manipulation.Paramètres DHCPTomato utilise
udhcpc de busybox, qui permet d'ajouter des options arbitraires, dont
les fameuses options 77 et 90 dont nous avons besoin pour se connecter. En suivant
le tuto sur le nouveau format et en regardant l'aide de udhcpd, les options a ajouter a la commande udhcpd sont donc:
-O 0x4d -O 0x5a -x 0x4d:2b46535644534c5f6c697665626f782e496e7465726e65742e736f66746174686f6d652e4c697665626f7833 -x 0x5a:00000000000000000000001a0900000558010341010d6674692fxxxxxxxxxxxxxx
(les xxxxxxxxxxxxxx sont à remplacer par votre identifiant en hexa, cf tuto original)Tomato a un champ DHCPC Options dans la configuration avancée DHCP, mais malheureusement sa taille est trop petite pour ce que nous devons lui passer. Il va donc falloir ruser, en appelant udhcpc depuis un script. Nous voulons donc que le script suivant soit appelé par l'init:
exec busybox udhcpc -O 0x4d -O 0x5a -x 0x4d:2b46535644534c5f6c697665626f782e496e7465726e65742e736f66746174686f6d652e4c697665626f7833 -x 0x5a:00000000000000000000001a0900000558010341010d6674692fxxxxxxxxxxxxxx "$@"
Les vétérans du shell n'auront pas de souci pour comprendre la syntaxe. Pour les autres, on demande d'exécuter (
exec) le module udhcpd de busybox (
busybox udhcpc) avec nos options personnalisées, puis les autres options que le système nous passera (
"$@").
Remplacement de /sbin/udhcpcC'est la manipulation "dangereuse" du tuto. Nous allons devoir faire en sorte que l'init utilise notre script perso au lieu du lien symbolique
/sbin/udhcpc. Comme il n'y a pas de configuration pour spécifier quel binaire appeler pour le client dhcp, nous allons devoir directement remplacer le fichier. Le système de fichier étant en lecture seule, nous allons réaliser les manipulations suivantes:
- Copier /sbin/ dans /tmp/sbin/
- Supprimer udhcpc et le remplacer par notre script
- Monter notre /tmp/sbin/ modifié à l'emplacement original /sbin/ en utilisant un bind mount
Cela se traduit par le script suivant, a copier dans le script init, dans l'écran Administration > Scripts
cp -R /sbin/ /tmp/sbin
rm /tmp/sbin/udhcpc
echo 'exec busybox udhcpc -O 0x4d -O 0x5a -x 0x4d:2b46535644534c5f6c697665626f782e496e7465726e65742e736f66746174686f6d652e4c697665626f7833 -x 0x5a:00000000000000000000001a0900000558010341010d6674692fxxxxxxxxxxxxxx "$@"' > /tmp/sbin/udhcpc
chmod +x /tmp/sbin/udhcpc
mount --bind /tmp/sbin/ /sbin
Sauvegardez les options, redémarrez et vérifiez par ssh/telnet que
/sbin/udhcpc est bien notre script et plus le lien symbolique vers busybox.
Paramètres VLANLe trafic passe sur le VLAN 832, il faut donc mettre l'interface WAN/eth0 sur ce VLAN. Cela se passe dans Advanced > VLAN:
Activation du DHCPDans Basic > Network, mettez l'interface WAN en DHCP:
Profit !Après avoir sauvegardé les paramètres, votre routeur va lancer la requête DHCP. Vous pouvez confirmer la prise d'une IP dans l'écran Overview. Et un petit speedtest pour la route: