Skip to content

DHCPv6 Prefix Delegation not working on IPoE (non-PPPoE) connection #9853

@shiphrah

Description

@shiphrah

DHCPv6 Prefix Delegation not working on IPoE (non-PPPoE) connection

Environment

  • OPNsense version: 25.10.2 Business Edition
  • WAN connection type: IPoE (Deutsche Glasfaser FTTH)
  • IPv4: DHCP, CGN address (100.x.x.x), no PPPoE
  • IPv6: DHCPv6, "Request only an IPv6 prefix" enabled, Prefix delegation size /56

Description

On an IPoE connection where the ISP delegates only an IPv6 prefix via DHCPv6-PD
(no global WAN IPv6 address), the delegated prefix does not appear on the WAN
interface and IPv6 routing does not work, despite the DHCPv6 exchange completing
successfully.

Steps to reproduce

  1. Configure WAN interface: IPv4 DHCP, IPv6 DHCPv6, "Request only an IPv6 prefix"
    enabled, Prefix delegation size 56
  2. Configure a LAN/VLAN interface: IPv6 "Track Interface" pointing to WAN, Prefix ID 0
  3. Apply configuration

Observed behavior

1. DHCPv6 exchange succeeds (confirmed by tcpdump):

IP6 fe80::f690:eaff:fe01:f02.546 > ff02::1:2.547: dhcp6 solicit
  (IA_PD IAID:3 T1:0 T2:0 (IA_PD-prefix ::/56 pltime:4294967295 vltime:4294967295))

IP6 fe80::22.547 > fe80::f690:eaff:fe01:f02.546: dhcp6 advertise
  (IA_PD IAID:3 T1:1800 T2:2880 (IA_PD-prefix 2a00:6020:9842:2f00::/56
  pltime:3600 vltime:3600))
  (DNS-server 2a00:6020:100::1 2a00:6020:200::1)

IP6 fe80::f690:eaff:fe01:f02.546 > ff02::1:2.547: dhcp6 request
  (IA_PD IAID:3 T1:0 T2:0 (IA_PD-prefix 2a00:6020:9842:2f00::/56 ...))

IP6 fe80::22.547 > fe80::f690:eaff:fe01:f02.546: dhcp6 reply
  (IA_PD IAID:3 T1:1800 T2:2880 (IA_PD-prefix 2a00:6020:9842:2f00::/56
  pltime:3600 vltime:3600))

2. Prefix is not retained on WAN interface:

# /usr/local/sbin/ifctl -i igc0 -6pd
delete net 2a00:6020:9842:2f00::/56

# ifconfig igc0 | grep inet6
inet6 fe80::f690:eaff:fe01:f02%igc0 prefixlen 64 scopeid 0x1

No global IPv6 address on WAN, no "Prefix Delegated" shown under
Interfaces → Overview.

3. No IPv6 routing possible:

# ping6 -c 3 2a00:6020:100::1
3 packets transmitted, 0 packets received, 100.0% packet loss

ISP gateway (link-local) is reachable, confirming physical connectivity:

# ping6 -c 3 -S fe80::f690:eaff:fe01:f02%igc0 fe80::22%igc0
3 packets transmitted, 3 packets received, 0.0% packet loss

4. Release loop observed during initial configuration:

When the LAN/VLAN interface was set to "Track Interface", a release loop was
observed in tcpdump — dhcp6c repeatedly received the prefix and immediately
sent a Release. The loop stopped after several Apply Changes and dhcp6c restarts,
but the root cause could not be conclusively determined. The dhcp6c debug output
showed:

Sending Solicit
Sending Request
Received REPLY for REQUEST
add net 2a00:6020:9842:2400::/56: gateway ::1
restarting
Start address release
Sending Release
duplicated interface: igc0

The "duplicated interface" message suggests a second dhcp6c instance was started
while the first was still running.

Generated dhcp6c configuration

interface igc0 {
  send ia-pd 3;
  request domain-name-servers;
  request domain-name;
  script "/var/etc/dhcp6c_opt2_script.sh";
};
id-assoc pd 3 {
  prefix ::/56 infinity;
};

Expected behavior

The delegated prefix should be retained on the WAN interface, appear as
"Prefix Delegated" under Interfaces → Overview, and IPv6 routing should work.
LAN/VLAN interfaces with Track Interface should receive their /64 subnets
and clients should have working IPv6 connectivity.

Workaround

None found.

Metadata

Metadata

Assignees

No one assigned

    Labels

    supportCommunity support or awaiting triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions