Hello, 😊
I have a problem related to LAN link state events in OPNsense 26.1.8_5.
Environment:
* OPNsense 26.1.8_5-amd64
* FreeBSD 14.3-RELEASE-p12
* PPPoE WAN
* Digi Spain FTTH
* DHCPv6 PD (/56)
* Identity Association mode (not legacy Track Interface)
* KEA only for IPv4
* Classic RADVD RA
What works:
* WAN receives IPv6 correctly
* PD /56 delegated correctly
* LAN gets /64 correctly
* IPv6 routing works perfectly
The issue:
A simple physical LINK DOWN event on a LAN interface consistently breaks dhcp6c.
Reproduction is extremely reliable:
* OPNsense directly connected to a PC on a LAN interface ( OpnSense is the network core; everything connects to it. I don't use switches. OpnSense has a Mellanox X4 LX, a 4-port i226v, and an Intel X550 T2. And each PC is a separate LAN )
* Turn the PC OFF
* LAN link goes DOWN
* Immediately dhcp6c restarts and enters SOLICIT loops
Typical logs:
duplicated interface: pppoe0
remove a site prefix ...
remove an IA: PD-17
restarting
Sending Solicit on pppoe0
```
I also repeatedly observed:
* `/var/etc/radvd.conf` losing all `prefix .../64` entries
* only DNSSL remaining
* IA_PD disappearing temporarily
* IPv6 connectivity dying completely
Very important finding:
If I insert a dumb unmanaged Ethernet switch between OPNsense and the PC:
OPNsense <-> switch <-> PC
the problem disappears completely.
I can:
* turn the PC off/on repeatedly
* reboot the PC
* flap the client NIC
* and IPv6 remains stable forever
This strongly suggests the trigger is specifically the physical LAN interface link-state transition reaching OPNsense.
Additional things tested:
* Identity Association vs Track Interface
* Rapid Commit disabled
* Prefix Hint enabled/disabled
* Prevent Release enabled
* Shutdown Advertisement OFF
* Different prefix IDs
* Different MTUs
None solved the core issue.
In my case, after a LAN link event triggers dhcp6c into SOLICIT state, the delegated prefix gets cleared immediately and the whole IPv6 stack starts collapsing/rebuilding.
This issue seems extremely similar to older reports from 2023/2024 mentioning:
* LAN link-state events
* disappearing IA_PD
* duplicated interface: pppoe0
* recovery after manual interface reload
* radvd.conf losing prefixes
Log when starting a PC:
Noticedhcp6creset a timer on pppoe0, state=SOLICIT, timeo=2, retrans=4217 2026-05-26T00:49:38Noticedhcp6csend solicit to ff02::1:2%pppoe0 2026-05-26T00:49:38Noticedhcp6cset IA_PD 2026-05-26T00:49:38Noticedhcp6cset IA_PD prefix 2026-05-26T00:49:38Noticedhcp6cset elapsed time (len 2) 2026-05-26T00:49:38Noticedhcp6cset identity association 2026-05-26T00:49:38Noticedhcp6cset client ID (len 14) 2026-05-26T00:49:38Noticedhcp6cSending Solicit on pppoe0 2026-05-26T00:49:38Noticeopnsense/usr/local/etc/rc.linkup: plugins_configure newwanip:rfc2136 (,[opt3]) 2026-05-26T00:49:36Noticedhcp6creset a timer on pppoe0, state=SOLICIT, timeo=1, retrans=2155 2026-05-26T00:49:36Noticedhcp6csend solicit to ff02::1:2%pppoe0 2026-05-26T00:49:36Noticedhcp6cset IA_PD 2026-05-26T00:49:36Noticedhcp6cset IA_PD prefix 2026-05-26T00:49:36Noticedhcp6cset elapsed time (len 2) 2026-05-26T00:49:36Noticedhcp6cset identity association 2026-05-26T00:49:36Noticedhcp6cset client ID (len 14) 2026-05-26T00:49:36Noticedhcp6cSending Solicit on pppoe0 2026-05-26T00:49:35Noticeopnsense/usr/local/etc/rc.linkup: plugins_configure dns (execute task : unbound_configure_do()) 2026-05-26T00:49:35Noticeopnsense/usr/local/etc/rc.linkup: plugins_configure dns (execute task : dnsmasq_configure_do()) 2026-05-26T00:49:35Noticeopnsense/usr/local/etc/rc.linkup: plugins_configure dns () 2026-05-26T00:49:35Warningradvdexiting, 1 sigterm(s) received 2026-05-26T00:49:35Warningopnsense/usr/local/etc/rc.linkup: radvd_configure_do(manual) found no suitable IPv6 address on opt3(igc1) 2026-05-26T00:49:35Warningopnsense/usr/local/etc/rc.linkup: radvd_configure_do(manual) found no suitable IPv6 address on opt11(mce0) 2026-05-26T00:49:35Noticeopnsense/usr/local/etc/rc.linkup: plugins_configure dhcp (execute task : radvd_configure_dhcp()) 2026-05-26T00:49:35Noticeopnsense/usr/local/etc/rc.linkup: plugins_configure dhcp () 2026-05-26T00:49:35Noticeopnsense/usr/local/etc/rc.linkup: plugins_configure ipsec (execute task : ipsec_configure_do(,opt3)) 2026-05-26T00:49:35Noticeopnsense/usr/local/etc/rc.linkup: plugins_configure ipsec (,opt3) 2026-05-26T00:49:35Noticeopnsense/usr/local/etc/rc.linkup: plugins_configure monitor (execute task : dpinger_configure_do(,[])) 2026-05-26T00:49:35Noticeopnsense/usr/local/etc/rc.linkup: plugins_configure monitor (,[]) 2026-05-26T00:49:35Noticedhcp6creset a timer on pppoe0, state=SOLICIT, timeo=0, retrans=1076 2026-05-26T00:49:35Noticedhcp6csend solicit to ff02::1:2%pppoe0 2026-05-26T00:49:35Noticedhcp6cset IA_PD 2026-05-26T00:49:35Noticedhcp6cset IA_PD prefix 2026-05-26T00:49:35Noticedhcp6cset elapsed time (len 2) 2026-05-26T00:49:35Noticedhcp6cset identity association 2026-05-26T00:49:35Noticedhcp6cset client ID (len 14) 2026-05-26T00:49:35Noticedhcp6ca new XID (69492) is generated 2026-05-26T00:49:35Noticedhcp6cSending Solicit on pppoe0 2026-05-26T00:49:35Noticeopnsense/usr/local/etc/rc.linkup: ROUTING: entering configure using opt3 2026-05-26T00:49:35Noticedhcp6creset a timer on pppoe0, state=INIT, timeo=0, retrans=215 2026-05-26T00:49:35Noticedhcp6cduplicated interface: pppoe0 2026-05-26T00:49:35Noticedhcp6cremove an address 2a0c:5a83:8500:5900::1/64 on mce0 2026-05-26T00:49:35Noticedhcp6cfailed to remove an address on igc1: Can't assign requested address 2026-05-26T00:49:35Noticedhcp6cremove a site prefix 2a0c:5a83:8500:5900::/56 2026-05-26T00:49:35Noticedhcp6cremove an IA: PD-17 2026-05-26T00:49:35Noticedhcp6cBypassing address release because of -n flag 2026-05-26T00:49:35Noticedhcp6cremove an address 2a0c:5a83:85ff:ffff::4f75:12d7/128 on pppoe0 2026-05-26T00:49:35Noticedhcp6cremove an address 2a0c:5a83:85ff:ffff::4f75:12d7 2026-05-26T00:49:35Noticedhcp6cremove an IA: NA-17 2026-05-26T00:49:35Noticedhcp6cBypassing address release because of -n flag 2026-05-26T00:49:35Noticedhcp6crestarting
I don't know what else to do.
Thanks for all the ongoing IPv6 work.