J'ai finalement réussi à configurer l'IPv6 de Bouygues sur mon routeur Pfsense, après beaucoup de tâtonnement...
Pour faire simple, il semble que les serveurs DHCPv6 de Bouygues n'acceptent que les Requests DHCPv6 seulement avec l'option ia-pd (requête de délégation de préfix). Si on demande dans la même requête un préfixe
et une adresse IPv6 pour l'interface WAN (le cas général) avec l'option ia-na (demande d'adresse IPv6) activé alors on reçoit une réponse DHCPv6 avec l'option NoAddressAvailable et sans préfix. Dans les faits les serveurs DHCPv6 de Bouygues sont configurés pour utiliser la rfc6603 (cf. ref[4] et cf. le texte de la rfc ci-dessous), autrement dit la délégation de préfixe avec l'option OPTION_PD_EXCLUDE. Cela implique que le routeur demandant un préfix est en charge d'assigner une adresse IPv6 à l'interface WAN. Exemple, lors d'un échange DHCPv6 suivant la rfc6603, si un routeur reçoit un préfix /60 avec l'option OPTION_PD_EXCLUDE et il doit réserver un /64 dans son /60 afin d'assigner une adresse IPv6 a son interface WAN.
RFC6603 Prefix Exclude Option for DHCPv6-based Prefix Delegation
"
This specification defines a new DHCPv6 option, OPTION_PD_EXCLUDE
(67), that is used to exclude exactly one prefix from a delegated
prefix. The OPTION_PD_EXCLUDE is included in the OPTION_IAPREFIX
IAprefix-options field. There can be at most one OPTION_PD_EXCLUDE
option in one OPTION_IAPREFIX option. The OPTION_PD_EXCLUDE option
allows prefix delegation where a requesting router is delegated a
prefix (e.g., /56) and the delegating router uses one prefix (e.g.,
/64) on the link through which it exchanges DHCPv6 messages with the
requesting router with a prefix out of the same delegated prefix set.
"
Pour résumer, afin d'obtenir un préfix IPv6 chez Bouygues voici ci-dessous la configuration a appliquer:
1. Spoofer l'adresse MAC de la box
2. S'assuer que le DUID (DHCP Unique Identifier) correspond bien à l'adresse MAC de la bbox et activer IPv6 dans pfsense
* System/Advanced/Networking check Allow IPv6
* System/Advanced/Networking DHCP6 DUID sélectionner DUID-LL
* System/Advanced/Networking DUID-LL: l'adresse MAC de la box
* System/Advanced/Networking Do not allow PD: uncheck
3. Configurer DHCPv6 sur l'interface WAN (cf. figure ci-dessous):
* Request only an IPv6 prefix check (Option IA_PD sans l'option IA_NA dans la requête DHCPv6)
* DHCPv6 Prefix: 60
* Send IPv6 prefix hint: check
* Do not wait for a RA: check
* DHCP6 VLAN Priority: check (IC6)
Maintenant il ne reste plus qu'a configuré DHCPv6 sur les autres interfaces de tel sorte qu'elles track l'interface WAN et le tour est joué. Vous devriez recevoir un préfix IPv6 et chaque interface interne à maintenaient une adresse IPv6 globale. Cependant, l'interface WAN elle par contre n'a toujours pas d'adresse globale. Une adresse Ipv6 globale est facultative sur l'interface WAN, car c'est l'adresse de lien local (fe80) est ce qui est utilisé pour la passerelle pour effectuer le routage dans ipv6. Là le problème est plus lié a Pfsense, qui n'assigne pas automatiquement une adresse à l'interface WAN quand il reçoit un préfix (cf. ref[1] pour plus d'information). Il semble que Pfsense plus 23.01 à de nombreux bugs plus ou moins liés à IPv6 qui seront corrigés dans la prochaine release (cf. ref[3]) et il semble que l'option DHCPv6 OPTION_PD_EXCLUDE ne soit pas encore prise en compte dans les implémentations du client DHCPv6 dans Pfsense/Freebsd, mais devrait être prochainement (cf. ref[5]).
Afin d'assigner une adresse IPv6 globale a l'interface WAN, il suffit de se connecter en ssh sur le firewall et d'assigner manuellement une adresse a l'interface WAN, seul solution que j'ai trouvé pour l'instant (mais plus d'info dans ref[1] et ref[2]).
# On assigne manuellement une adresse a notre WAN dans le /60 que nous avons recut de l'opérateur
$ ifconfig WAN.100 inet6 2000:xxxx:xxxx:xxxf::1 prefixlen 64
# On restart l'interface Pfsense
$ php -r 'include("gwlb.inc"); setup_gateways_monitor();'
Références 1.
https://forum.netgate.com/topic/174980/fios-getting-56-pd-via-dhcp6-but-no-v6-is-assigned-to-wan/2.
https://github.com/luckman212/assign-gua-from-iapd3.
https://redmine.pfsense.org/projects/pfsense/roadmap4.
https://www.rfc-editor.org/rfc/rfc6603.html5.
https://redmine.pfsense.org/issues/13296