Comment le routeur demandant un préfixe sait-il que d'autres préfixes proviennent tous du même préfixe délégué (par un autre moyen) ?
je ne comprend pas bien la question.
le routeur "demandant" ne connait rien. il fait un broadcast sur son interface wan et si y'a au moins un serveur dhcpv6-pd dessus, il aura une réponse.
@renaud07
J'ai testé avec une VM openwrt a jour. il y a bien une limitation : un /64 reçu delegation ne peut être redonné entièrement a un autre routeur.
Si on lui donne un /63 il saura donner 2 /64. c'est une limitation dans le code , le cas n'est pas prévu car en général quand on recoit un /64 c'est pour l'utiliser localement sur un autre interface (en général son LAN) et pas pour la re-déléguer a un autre équipement.
j'ai fait un peu le tour du sujet.
le principe de fonctionnement est:
client dhcpv6 sur wan: odhcp6c, il est basic, a chaque évènement dhcp il reconfigure l'interface.
pour les prefixes reçus en délégation, il appele la function proto_add_ipv6_prefix de netifd
on peut donc retrouver cette info dans netifd avec ubus:
ubus call network.interface.wan6 status
on trouvera dans le résultat:
"ipv6-prefix": [
{
"address": "2a01:xxxx:xxxx:78d1::",
"mask": 64,
"preferred": 588,
"valid": 86388,
"class": "wan6",
"assigned": {
}
}
],
la "class" correspond a "ip6class" dans uci et "IPv6 prefix filter" dans luci. Ca permet coté downstream de choisir ou pas cet upstream. Dans openwrt c'est le nom de l'interface donc. (cas ou on a plusieurs wan par exemple et qu'on veut controler qui delegue vers ou).
Une delegation s'applique localement sur une interface avec "ipassign".
En server de delegation odhcpd n'a pas beaucoup de configuration et documentation. il lit les infos via ubus mais ce sait pas donner un /64 depuis un /64 (je ne sais meme pas si la norme autorise cela d'ailleurs)
odhcpd a un attribut d'interface non documenté c'est "pd_manager" qui permet de préciser un socket (local ou réseau) vers un autre programme qui va fournit les prefixes a déléguer. Mais je n'ai rien trouver en ligne ou dans les packages openwrt qui correspondrait.
Il serait a priori pas trop compliquer d'écrire un programme compatible avec ce truc...
mais il y aussi les autres packages dhcp server dans openwrt, notamment isc et kia. ce sont un peu les "standards" dans le monde Linux donc ca vaut peut-etre le coup de tenter avec eux plutot que d'utiliser odhcpd. j'ai souvent utiliser isc mais pas dans ce contexte. jamais kia encore.
on peut aussi ouvrir un ticket
https://github.com/openwrt/odhcpd/issues (ou voir si y'a deja une demande identique).