Auteur Sujet: TUTO - Mode DHCP sur firmware Tomato  (Lu 12936 fois)

0 Membres et 1 Invité sur ce sujet

xavier66

  • Abonné Orange Fibre
  • *
  • Messages: 7
  • Paris 15 (75)
TUTO - Mode DHCP sur firmware Tomato
« le: 28 juillet 2018 à 15:35:06 »
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 DHCP

Tomato 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/udhcpc

C'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 VLAN

Le 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 DHCP

Dans 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:

« Modifié: 09 septembre 2019 à 12:36:28 par xavier66 »

cetipabo

  • Invité
TUTO - Mode DHCP sur firmware Tomato
« Réponse #1 le: 28 juillet 2018 à 16:02:42 »
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.
Bonjour,
super tuto, merci !

Par contre il n'y a pas moyen de modifier tout simplement la page web de l'interface de façon à accepter plus de caractères dans le formulaire ?

xavier66

  • Abonné Orange Fibre
  • *
  • Messages: 7
  • Paris 15 (75)
TUTO - Mode DHCP sur firmware Tomato
« Réponse #2 le: 28 juillet 2018 à 16:17:10 »
Bonjour,
super tuto, merci !

Par contre il n'y a pas moyen de modifier tout simplement la page web de l'interface de façon à accepter plus de caractères dans le formulaire ?

Merci ! Les routeurs ciblés par Tomato n'ont qu'une faible quantité de stockage disponible pour la configuration (sur un chip NVRAM ou un bout de l'EEPROM stockant le firmware), parfois juste 32ko. Je pense que la limitation vient donc de la définition du champ dans le format de stockage, pas de l'UI en elle-même. Il devrait être possible de modifier les sources du firmware pour modifier la taille de ce champ (en en supprimant / réduisant d'autres), mais c'est encore plus acrobatique que ma manipulation  :o
« Modifié: 29 juillet 2018 à 13:25:32 par xavier66 »

Flo_77

  • Abonné Free fibre
  • *
  • Messages: 273
  • MEA77
TUTO - Mode DHCP sur firmware Tomato
« Réponse #3 le: 28 juillet 2018 à 22:09:16 »
Sympa comme config! Par contre ça marche sans donner la prio 6 au trafic DHCP sortant? (il me semble ne pas l'avoir vu)

xavier66

  • Abonné Orange Fibre
  • *
  • Messages: 7
  • Paris 15 (75)
TUTO - Mode DHCP sur firmware Tomato
« Réponse #4 le: 29 juillet 2018 à 14:38:49 »
Sympa comme config! Par contre ça marche sans donner la prio 6 au trafic DHCP sortant? (il me semble ne pas l'avoir vu)

Merci !

En effet, ceci n'a pas été nécessaire pour mon cas. De ce que j'ai pu lire, cela dépend des zones ? Je suis en ZTD avec point de mutu en pied d'immeuble.

warnershoot

  • Abonné Bbox fibre
  • *
  • Messages: 3
TUTO - Mode DHCP sur firmware Tomato
« Réponse #5 le: 24 octobre 2018 à 13:34:31 »
Bonjour,

J'ai suivi le tuto, mais mon routeur tomato n'obtient jamais d'IP.

Voici le processus actif pendant le renew (j'ai masqué mon num fti hexa) :

Citer
root@tomato:/tmp/home/root# ps w | grep dhcp
busybox udhcpc -O 0x4d -O 0x5a -x 0x4d 2b46535644534c5f6c697665626f782e496e7465726e65742e736f66746174686f6d652e4c697665626f7833 -x 0x5a 00000000000000000000006674692f<mon num fti> -i vlan832 -b -s dhcpc-event -H tomato -O 33 -O 121 -O 249 -m -p /var/run/udhcpc-wan.pid

J'ai vu que certains parlaient de classe 6 sur le traffic sortant DHCP, à quoi ça correspond ?

Quelques infos sur mon firmware tomato : Tomato Firmware 1.28.0000 -3.5-140 K26ARM USB AIO-64K

Merci d'avance !

xavier66

  • Abonné Orange Fibre
  • *
  • Messages: 7
  • Paris 15 (75)
TUTO - Mode DHCP sur firmware Tomato
« Réponse #6 le: 24 octobre 2018 à 19:57:07 »
Orange a changé ses options DHCP, il faut que je mette à jour le tuto. En attendant, je te laisse regarder les détails sur le topic https://lafibre.info/remplacer-livebox/cacking-nouveau-systeme-de-generation-de-loption-90-dhcp/

Voici ce qui fonctionne chez moi: 0x5a:00000000000000000000001a0900000558010341010d6674692f<mon num fti>

warnershoot

  • Abonné Bbox fibre
  • *
  • Messages: 3
TUTO - Mode DHCP sur firmware Tomato
« Réponse #7 le: 24 octobre 2018 à 20:22:18 »
Merci ça fonctionne  :D

benoqkuke

  • Abonné Orange Fibre
  • *
  • Messages: 3
  • Antibes 06
TUTO - Mode DHCP sur firmware Tomato
« Réponse #8 le: 08 novembre 2018 à 00:02:28 »
Salut,

Je viens d'être fibré Orange et j'ai un R7000 sous Advanced Tomato 3.5-140 (la derniere version). J'arrive a me connecter sans souci en PPPoE mais impossible de me connecter en DHCP. Mon probleme c'est qu'en PPPoE je n'ai "que"  100Mb descendant au lieu de 300.
Vous parliez de la classe 6 du DHCP sortant, c'est quoi exactement ça ? ça pourrait expliquer que je n'arrive pas a me connecter en DHCP ?

Merci d'avance !

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 258
  • Antibes (06) / Mercury (73)
TUTO - Mode DHCP sur firmware Tomato
« Réponse #9 le: 08 novembre 2018 à 06:15:01 »
Antibes = CoS obligatoire sinon pas d'IP.

Par CoS, on parle de 802.1p (priorité au niveau VLAN), pas DSCP => Les requêtes DHCP doivent avoir une priorité 802.1p à 6. Si le routeur ne le supporte pas, alors le plus simple est d'intercaler un switch supportant DiffServ entre le routeur et l'ONT et de le configurer pour faire le marquage.

benoqkuke

  • Abonné Orange Fibre
  • *
  • Messages: 3
  • Antibes 06
TUTO - Mode DHCP sur firmware Tomato
« Réponse #10 le: 08 novembre 2018 à 07:56:04 »
Ok merci pour la confirmation qu'il faut activer le CoS sur Antibes.
C'est une option a activer dans Tomato ou ça devrait etre activer de base si mon routeur le supporte ?

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 258
  • Antibes (06) / Mercury (73)
TUTO - Mode DHCP sur firmware Tomato
« Réponse #11 le: 08 novembre 2018 à 08:26:30 »
C'est du très spécifique Orange, tout comme l'authentification par l'option 90 d'ailleurs.

Après, tomato c'est Linux en dessous, donc ça doit être faisable avec iptables comme sur une Debian ou autre firmware basé sur Linux (comme dd-wrt, voir le sujet dédié)...