Auteur Sujet: bug dans dhcp6c  (Lu 1768 fois)

0 Membres et 1 Invité sur ce sujet

oprs

  • Abonné Orange Fibre
  • *
  • Messages: 4
  • Le Puy-en-Velay (43)
bug dans dhcp6c
« le: 08 août 2022 à 13:50:05 »
Bonjour à tous,

En remplacant une livebox par un routeur OPNsense ce week end, j'ai remarqué des irrégularités dans le comportement de dhcp6c.
Je suis sous OPNsense 22.7, mais selon moi il est très probable que ce problème soit également présent dans des versions antérieures.

Si vous subissez des échecs intermittents lors de l'attribution d'IPv6 ou de prefix delegation, vérifiez dans vos logs (System -> Log Files -> General, ou mieux: directement dans /var/log/system/), et recherchez ce genre de message:

invalid interface(`lan832): Device not configured
invalid interface(<D0>lan832): Device not configured

Notez que le nom de l'interface est corrompu: normalement (chez moi) c'est vlan832.

C'est la conséquence d'un bug dans le code de dhcp6c (use after free dans le parser du fichier de conf). Un correctif a été proposé en avril 2021, mais à ce jour, il n'a toujours pas trouvé son chemin dans la distribution officielle.
Ce type de bug est pénible car il dépend de pas mal de choses (environnement d'exécution du processus, compilateur, etc...) et ne se manifeste donc pas de façon systématique. Le bonheur quand on cherche à débugger sa conf...

Si vous pensez être impactés par ce bug, je vous suggère de recompiler dhcp6c depuis la branche fix_hup_loading_all_interfaces sur le GitHub de l'auteur du correctif, puis de remplacer l'original (/usr/local/sbin/dhcp6c).

note: Je proposerais bien un binaire pré-compilé pour amd64, mais c'est assez délicat et je ne suis pas sur que ce soit bienvenu ici; j'uploaderai si un modérateur passe par ici et m'en donne l'autorisation.


Compilation (sur un FreeBSD 13.1 à jour, ou directement sur OPNsense)

oprs@tc2% git clone -b fix_hup_loading_all_interfaces https://github.com/jrmithdobbs/dhcp6c.git
Cloning into 'dhcp6c'...
remote: Enumerating objects: 734, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 734 (delta 12), reused 15 (delta 7), pack-reused 710
Receiving objects: 100% (734/734), 412.00 KiB | 4.08 MiB/s, done.
Resolving deltas: 100% (534/534), done.
oprs@tc2% cd dhcp6c
oprs@tc2% ./configure   
[...]
config.status: creating Makefile
config.status: WARNING:  'Makefile.in' seems to ignore the --datarootdir setting
oprs@tc2% make
[...]
oprs@tc2% strip dhcp6c


Pour réference:

oprs@tc2% ls -l dhcp6c
-rwxr-xr-x  1 oprs  oprs  143312 Aug  8 13:37 dhcp6c
oprs@tc2% sha256 dhcp6c
SHA256 (dhcp6c) = 13abe6b81f651a4c4e1e1ccf177c0847f35ccfe8083514d97f4e9b2cf4b1ecce

ftln

  • Abonné Free fibre
  • *
  • Messages: 70
  • Sevrés
bug dans dhcp6c
« Réponse #1 le: 09 octobre 2022 à 08:35:34 »
Bonjour à tous,

En remplacant une livebox par un routeur OPNsense ce week end, j'ai remarqué des irrégularités dans le comportement de dhcp6c.
Je suis sous OPNsense 22.7, mais selon moi il est très probable que ce problème soit également présent dans des versions antérieures.

Si vous subissez des échecs intermittents lors de l'attribution d'IPv6 ou de prefix delegation, vérifiez dans vos logs (System -> Log Files -> General, ou mieux: directement dans /var/log/system/), et recherchez ce genre de message:

invalid interface(`lan832): Device not configured
invalid interface(<D0>lan832): Device not configured

Notez que le nom de l'interface est corrompu: normalement (chez moi) c'est vlan832.

C'est la conséquence d'un bug dans le code de dhcp6c (use after free dans le parser du fichier de conf). Un correctif a été proposé en avril 2021, mais à ce jour, il n'a toujours pas trouvé son chemin dans la distribution officielle.
Ce type de bug est pénible car il dépend de pas mal de choses (environnement d'exécution du processus, compilateur, etc...) et ne se manifeste donc pas de façon systématique. Le bonheur quand on cherche à débugger sa conf...

Si vous pensez être impactés par ce bug, je vous suggère de recompiler dhcp6c depuis la branche fix_hup_loading_all_interfaces sur le GitHub de l'auteur du correctif, puis de remplacer l'original (/usr/local/sbin/dhcp6c).

note: Je proposerais bien un binaire pré-compilé pour amd64, mais c'est assez délicat et je ne suis pas sur que ce soit bienvenu ici; j'uploaderai si un modérateur passe par ici et m'en donne l'autorisation.


Compilation (sur un FreeBSD 13.1 à jour, ou directement sur OPNsense)

oprs@tc2% git clone -b fix_hup_loading_all_interfaces https://github.com/jrmithdobbs/dhcp6c.git
Cloning into 'dhcp6c'...
remote: Enumerating objects: 734, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 734 (delta 12), reused 15 (delta 7), pack-reused 710
Receiving objects: 100% (734/734), 412.00 KiB | 4.08 MiB/s, done.
Resolving deltas: 100% (534/534), done.
oprs@tc2% cd dhcp6c
oprs@tc2% ./configure   
[...]
config.status: creating Makefile
config.status: WARNING:  'Makefile.in' seems to ignore the --datarootdir setting
oprs@tc2% make
[...]
oprs@tc2% strip dhcp6c


Pour réference:

oprs@tc2% ls -l dhcp6c
-rwxr-xr-x  1 oprs  oprs  143312 Aug  8 13:37 dhcp6c
oprs@tc2% sha256 dhcp6c
SHA256 (dhcp6c) = 13abe6b81f651a4c4e1e1ccf177c0847f35ccfe8083514d97f4e9b2cf4b1ecce


Merci pour l'info  :)

lower

  • Abonné Orange Fibre
  • *
  • Messages: 1
  • Calais
bug dans dhcp6c
« Réponse #2 le: 08 mars 2023 à 01:25:35 »
Bonjour,

Merci beaucoup pour cette solution, cela a résolu le problème d'interprétation du nom de l'interface.  ;)
Je suis tout de même étonné que cela n'a pas été corrigé.

Est-ce un bug random sur certaines config' spécifiques ? Toutes les personnes sont concernées ?

Pour information, j'exécute OPNSENSE sur une machine x86 en baremetal avec une carte réseau Intel I350-T4 achetée directement sur le site HP.
Mon réseau interne est segmenté par plusieurs VLAN'S

Merci pour vos retours  :)

Tom.exe

  • Abonné Orange Fibre
  • *
  • Messages: 200
  • Charente-Maritime - ↓2Gbps | ↑600Mbps
bug dans dhcp6c
« Réponse #3 le: 20 avril 2023 à 18:28:08 »
Serait-ce la raison pourquoi je galère avec du DHCPv6 ?!?
Je test ça sur un opnsense ASAP
« Modifié: 22 avril 2023 à 17:23:02 par Tom.exe »

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 136
  • Paris (75)
bug dans dhcp6c
« Réponse #4 le: 20 avril 2023 à 18:56:53 »
merci de l'info.

Tu peux éventuellement hoster le binaire sur github (manuellement ou idéalement via un CI/CD (Github Actions) qui build directement sur Github mais par défaut Freebsb n'est pas supporté, il te faudra utiliser https://github.com/cross-platform-actions/action).

Une fois le binaire dans la section 'release' de ton repo, tu mettre le lien ici (edite ton 1er post)
C'est moins problématique que d'upload le binaire directement ici.




Tom.exe

  • Abonné Orange Fibre
  • *
  • Messages: 200
  • Charente-Maritime - ↓2Gbps | ↑600Mbps
bug dans dhcp6c
« Réponse #5 le: 22 avril 2023 à 17:22:56 »
Salut, le message
invalid interface(A): Device not configuredserait t'il un indicateur que je serai touché par le problème ?
Merci d'avance

tumix

  • Abonné Orange Fibre
  • *
  • Messages: 3
bug dans dhcp6c
« Réponse #6 le: 01 août 2023 à 22:03:27 »
Bug résolu à partir de la version 23.1.9  :)