Hello,

For the past few days, I am trying to configure IPv6 prefix delegation with 
systemd-networkd 261.2 on an ARM64 Raspberry Pi running ArchLinuxARM.

The setup is:

* Raspberry Pi, aarch64
* systemd 261.2
* systemd-networkd
* FRITZ!Box 7590 as upstream router
* Ethernet interface `end0` as DHCPv6/PD uplink
* WireGuard interface `wg0` as downstream interface

The upstream configuration includes:

```ini
[Match]
Name=end0

[Network]
Address=192.168.2.99/24
DHCP=ipv6
IPv6AcceptRA=yes

[IPv6AcceptRA]
DHCPv6Client=yes

[DHCPv6]
PrefixDelegationHint=::/62
RapidCommit=true
UseDelegatedPrefix=true

[Route]
Gateway=192.168.2.1
Metric=100
```

The downstream configuration (for a WireGuard tunnel) includes:

```ini
[Match]
Name=wg0

[Network]
Address=10.91.0.1/24
IPv6AcceptRA=no
IPv6SendRA=yes
DHCPPrefixDelegation=yes

[DHCPPrefixDelegation]
UplinkInterface=end0
SubnetId=0x3
Announce=yes
```

The important observation is that DHCPv6 itself appears to work correctly.

A packet capture on `end0` shows:

```text
Solicit
  IA_PD ... ::/62

Reply
  IA_PD ... 2003:....::/62
```

The FRITZ!Box therefore does provide the requested delegated `/62`.

However, systemd-networkd does not appear to process the delegated prefix any 
further:

* no `DHCP: received delegated prefix ...` message is logged
* no `/64` is assigned to `wg0`
* no corresponding DHCP-PD route appears on `wg0`

I also tested the same DHCP prefix delegation mechanism with a temporary 
`dummy` downstream interface instead of WireGuard. The result was identical: 
only the link-local address was configured; no `/64` from the delegated `/62` 
was assigned.

And I also tested several related configuration variants (`RapidCommit=false`, 
`WithoutRA=solicit`, `Assign`, `Token`, and disabling RA announcements), 
without changing the result.

This looks very similar to the behaviour described in issue #34229:

https://github.com/systemd/systemd/issues/34229

but the environment here is systemd 261.2 on aarch64. Maybe there is only a 
misconfiguration too?

Could someone point me to what part of networkd's DHCP-PD processing should 
normally take the received IA_PD and assign the corresponding subnet to the 
downstream interface? Is there anything specific to systemd 261.2 that could 
explain this behaviour?

I can provide the full networkd debug log and packet captures if useful.

Many thanks and best regards,

Andreas

Reply via email to