Bug #11913
closedRADVD breaks on SIGHUP
0%
Description
Moving from internal Redmine 6287 since this affects CE and Plus and isn't hardware-dependent.
Original Description from Kristof Provost
Affected version: 21.05.a.20210503.0100
Observed on SG-2100, but likely affects all devices.On a dual-stack setup, with a WAN that's DHCP / DHCPv6-PD radvd breaks after some time and stops sending out router advertisements.
This turns out to happen when it receives a SIGHUP (either manually, or I assume after DCHPv6-PD reconfiguration). It then ends up in an invalid state which stops it from sending out router advertisements. Stopping and starting it through status_services.php returns it to normal operation.The logs associated with this are:
May 3 17:56:43 pfSense radvd[62319]: attempting to reread config file May 3 17:56:43 pfSense radvd[62319]: warning: AdvRDNSSLifetime <= 2*MaxRtrAdvInterval would allow stale DNS servers to be deleted faster May 3 17:56:43 pfSense radvd[62319]: warning: (/var/etc/radvd.conf:22) AdvRDNSSLifetime <= 2*MaxRtrAdvInterval would allow stale DNS servers to be deleted faster May 3 17:56:43 pfSense radvd[62319]: can't join ipv6-allrouters on mvneta1 May 3 17:56:43 pfSense radvd[62319]: resuming normal operation May 3 17:56:43 pfSense radvd[62319]: can't join ipv6-allrouters on mvneta1
Further notes from Kristof:
Brad pointed at these two commits as potentially relevant:
- https://github.com/radvd-project/radvd/commit/8c120833fd50507880ffda8e2a5cbe7319dc186c
- https://github.com/freebsd/freebsd-ports/commit/1cbc4a6ff605f36cffb881244c86aeeeb00e4664
--
The problem seems to be that we can't join a group that we've already joined. See FreeBSD-src/sys/netinet6/in6_mcast.c:2020.
An experimental patch that leaves the group before joining it (and ignores errors from the leave) fixes the issue.I'm checking to see if that's the best fix. I expect to have a pull request ready later today.
--
Merge request: https://gitlab.netgate.com/pfSense/FreeBSD-ports/-/merge_requests/86
--
We've gone with a slightly different solution. The ports merge request has been updated, and we now also need this:
https://gitlab.netgate.com/pfSense/FreeBSD-src/-/merge_requests/10
--
The relevant changes have all landed in the 21_09 branches and have been confirmed to work there.
Merge requests are open for 21_05
https://gitlab.netgate.com/pfSense/FreeBSD-src/-/merge_requests/13
https://gitlab.netgate.com/pfSense/factory-ports/-/merge_requests/2
--
And finally from Renato:
both merged to 21.05 branches
Updated by Jim Pingle over 3 years ago
- Target version changed from 2.6.0 to 2.5.2
Updated by Jim Pingle over 3 years ago
- Status changed from Closed to Feedback
Due to changes in the freebsd-src branch used to build 2.5.2 snapshots, this needs re-tested on a build dated after this comment.