Auteur Sujet: Routeur Openwrt derriere une Livebox - delegation de plusieurs prefixes IPv6  (Lu 4580 fois)

0 Membres et 1 Invité sur ce sujet

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 542
  • Paris (75)
Le serveur DHCP de la Livebox délègue un préfixe /64 à OpenWrt. Le serveur DHCP de OpenWrt devrait potentiellement déléguer ce préfixe /64 à un autre routeur.
Donc, le serveur DHCP de ce routeur pourrait-il déléguer à nouveau ce préfixe /64 à un autre routeur ? Et ainsi de suite...

non justement c'est le problème qu'on a... il ne peut délégué un /64 à partir d'un ou meme plusieurs /64. il faut explicitement qu'il reçoive un /63 ou plus grand (/62,etc).
On pourrait éventuellement reconstruire un /63 ou plus grand mais pour cela il faudrait recevoir des /64 contiguës ce qui n'est pas le cas, la livebox distribue des /64 pris au hasard dans son /56 (ou alors elle utilise un algo non aléatoire non connu par nous). Et cette reconstruction n'est pas simple à faire de toute facon (il faut changer le script dhcpv6.script et/ou utiliser des  "client scripts" perso (dans /etc/odhcp6c.user.d)

il reste la solution du relai , l'openwrt servant juste de relai mais je ne sais si  ca fonctionne avec openwrt. (et les relai DHCPv6-PD peuvent poser des problemes de stabilité)

le plus 'propre' est soit d'utiliser autre chose que le client et le serveur dhcpv6 d'openwrt (odhcp6c et odhcpd), OpenWrt permettant d'en utiliser d'autres packages
soit de les modifier pour que:
* odhcp6c soit capable de demander plusieurs /64 depuis une meme interface (ceci est contournable via les interfaces mac vlan comme a fait renaud07 mais c'est un peu lourding)
* odhcpd soit capable de déléguer un /64 à partir d'un /64 *c'est le point bloquant ici*

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 4 291
J'ai installé les packages isc-dhcp sur ma VM openwrt, mais je sens que ça va pas le faire, y'a littéralement aucune automatisation du fichier de config.

S'il faut écrire autant de code que pour modifier odhcpd... autant essayer de faire fonctionner ce dernier.

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 673
Citer
odhcpd provides server services for DHCP, RA, stateless SLAAC and stateful DHCPv6, prefix delegation and can be used to relay RA, DHCPv6 and NDP between routed (non-bridged) interfaces in case no delegated prefixes are available.

On sait que le client DHCPv6 ne peut pas obtenir un préfixe de longueur inférieure à 64 bits. Mais en lisant le propos précédent, cela donne l'impression que odhcpd peut demander un préfixe à la Livebox.

Quelle différence avec un relais DHCP ?

Il me semble qu'on peut former une chaîne de relais DHCP. Ainsi, le préfixe /64 d'un routeur quelconque serait toujours attribué par le serveur DHCPv6 de la Livebox.

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 542
  • Paris (75)
Il peut relayer mais pour cela il faut une interface non figurée vers la livebox, plsu précisemment une interface ou il n'a pas déjà un client dhcpv6 (udp port 546) en écoute (un seul service peut 'bind' ce port a un moment donné).
Il faut donc une interface dédiée a cela ou désactiver completement odhcp6c. C'est le relai évoqué précédemment.

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 4 291
Problème que je n'avais pas anticipé : lorsque ma connexion coupe, la LB cesse de router le préfixe en envoyant tout à 0 et openwrt reste comme un c*n sans relancer la connexion.

Y'a un paramètre pour refaire un SARR automatiquement ? Chose que j'avais totalement oublié de mettre en place aussi lorsque j'avais découplé routeur et modem, heureusement que ça coupait moins souvent, donc je le faisais à la main.

simon

  • Abonné Orange Fibre
  • *
  • Messages: 1 578
Que veux-tu dire par "envoyant tout à 0" ?

J'ai ca sur mon routeur pour monitorer la connexion et relancer automatiquement si besoin, si ca peut t'être utile.
#!/bin/sh

HOST=fe80::ba0:bab%eth0.832
TIMER=57
TRIES=10
CMD='killall odhcp6c; sleep 5; killall udhcpc; sleep 3h'

failcount=0

while :; do
    ping -s0 -w5 -c2 ${HOST} >/dev/null
        if [[ $? -ne 0 ]]; then
        logger -t "${0}" -- "host ${HOST} is unreachable (try #${failcount} of ${TRIES})"
        failcount=$((${failcount} + 1))
        if [[ ${failcount} -ge ${TRIES} ]]; then
            failcount=0
            logger -t "${0}" -- "running ${CMD}"
            sh -c "${CMD}"
        fi
    else
        if [[ ${failcount} -gt 0 ]]; then
            logger -t "${0}" -- "host ${HOST} is reachable"
        fi
        failcount=0
    fi
    sleep ${TIMER}
done

Le script est lancé par /etc/rc.local au boot, après un sleep de 5 minutes pour laisser le temps à la connexion de s'établir.

D'après mes logs, ca déclenche (redémarre les clients DHCP) une fois toutes les quelques semaines, toujours la nuit. Le routeur récupère le même préfixe. BNG qui reboot ?

Je ne fais rien avec l'ONT externe. Il se gère tout seul et ne m'a jamais ennuyé.

EDIT: si ta connexion coupe fréquemment, il te faudra probablement ajuster les timers... c'est fait pour une connexion stable avec déconnexion rare. Par contre si tu redémarres les clients DHCP et que la box ne s'est pas reconnectée, est-ce que ca ne risque pas de ne pas te réattribuer de préfixe ?

J'espère que tu n'obtiens pas un nouveau préfixe à chaque fois, d'ailleurs...
« Modifié: 18 mars 2025 à 16:22:13 par simon »

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 4 291
Je voulais dire les RA, elle envoie le préfixe avec un lifetime à 0 (faut que je revérifie exactement).

Merci pour script, je vais tester ça  :)

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 542
  • Paris (75)
c'est violent la commande CMD (kill ...) ...
on peut restart toutes les interfaces avec:
ubus call network restart
(cf https://openwrt.org/docs/techref/ubus#netifd)

il y a un systeme d'evenement dans openwrt : https://openwrt.org/docs/guide-user/base-system/hotplug (cf iface notamment)

Tu peux éventuellement faire un script qui réagit au prefix deprecated.

simon

  • Abonné Orange Fibre
  • *
  • Messages: 1 578
justement, tuer les démons marque les interfaces down et relance toute la configuration. C'est le but, et en effet, c'est pas sensé déclencher 10x par jour...

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 4 291
Quelle idée m'a pris de débrancher le RJ11 au lieu de faire un reconnect depuis la box... c'est reparti pour un sync loop  :( Ça faisait 4 jours que j'avais pas perdu la connexion.

En plus je crois que j'ai pas assez resserré les timers, la connexion revient avant que tous les essais aboutissent. Sans compter que ça ping depuis la SLAAC du WAN qui revient bien plus vite, j'ai l'impression, hors il faudrait que ça soit à partir du préfixe délégué pour que ça soit en échec.

Je suis bon pour attendre des heures que ça se stabilise...