You are not logged in.

#1 2026-01-29 19:34:06

flacer
Member
Registered: 2016-09-15
Posts: 4

[SOLVED] IPv6 routing: Prefix doesn't get delegated with networkd

Hello fellows,

I'm currently setting up a server for my internet at home, which is providing some services (currently only blocky) and acts as a firewall.
The IPv4 stuff is no problem and is working fine (Masquerading etc.) but I can't get the IPv6 Prefix delegation working.
I am trying for two days and have read the whole man page, tried "all" online howtos an blog posts, but no luck.

Here are some details about my setup

  • small PC with one LAN and one USB<->LAN interface

  • did a Syu today (systemd version: 259-2-arch)

  • currently sitting behind a router for configuration works (ISP – Router – Switch – Server – client (my laptop) )

  • firewall is no problem: currently accepting all traffic on the local interface, and there is no difference when I disable the firewall

  • I have configured a VLAN for PPPoE using networkd (tried to remove from config, didn't work also)

  • docker is running (tried to disable it, no difference)

Things I have noticed

  • The server is getting correctly an IPv6 address and can connect to the internet.

  • The client (my laptop with arch) is getting the prefix correctly, when I connect it directly to the router, but not behind the server

  • The RA packets are being sent successfully, but there is no entry for the prefix

  • If I manually set a prefix using

     [IPv6Prefix]
    Prefix=2003:aaaa:bbbb:cccc::/64

    the prefix is successfully transmitted and accepted by the client. (but then I can't connect to the internet using IPv6; maybe a different problem)

Here is my config of the "local" interface:

[Match]
Name=enp1s0

[Network]
Address=10.8.0.1/24
DNS=::1
DNS=127.0.0.1
IPv6SendRA=yes
DHCPPrefixDelegation=yes

I have captured the RA packets from the router and from the server, so you can see clearly the difference:

# RA packet from router 
17:53:38.835985 IP6 (hlim 255, next-header ICMPv6 (58), payload length 64) _gateway > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 64
	hop limit 255, Flags [other stateful], pref medium, router lifetime 180s, reachable time 0ms, retrans timer 0ms
	  source link-address option (1), length 8 (1): 9c:80:df:11:10:85
	  mtu option (5), length 8 (1):  1492
	  prefix info option (3), length 32 (4): 2003:aaaa:bbbb:cccc::/64, Flags [onlink, auto], valid time 86400s, pref. time 86400s
	  
# RA packet from server. notice there is no "prefix" field.	  
17:57:56.434632 IP6 (flowlabel 0xc5748, hlim 255, next-header ICMPv6 (58), payload length 48) gideon > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 48
	hop limit 0, Flags [none], pref medium, router lifetime 1800s, reachable time 0ms, retrans timer 0ms
	  source link-address option (1), length 8 (1): 84:39:be:65:3e:b9
	  rdnss option (25), length 24 (3):  lifetime 3600s, addr: gideon
	  

# RA packet from server with manually set IP
17:59:59.124823 IP6 (flowlabel 0xc5748, hlim 255, next-header ICMPv6 (58), payload length 80) gideon > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 80
	hop limit 0, Flags [none], pref medium, router lifetime 1800s, reachable time 0ms, retrans timer 0ms
	  source link-address option (1), length 8 (1): 84:39:be:65:3e:b9
	  prefix info option (3), length 32 (4): p2003aaaabbbbcccc0000000000000000.dip0.t-ipconnect.de/64, Flags [onlink, auto], valid time 3600s, pref. time 1800s
	  rdnss option (25), length 24 (3):  lifetime 3600s, addr: gideon

I have no idea where to look further and what to try. Maybe this is just a bug in systemd?

Thank you very much for any ideas!

Last edited by flacer (2026-01-31 12:50:34)

Offline

#2 2026-01-30 06:42:26

-thc
Member
Registered: 2017-03-15
Posts: 1,085

Re: [SOLVED] IPv6 routing: Prefix doesn't get delegated with networkd

Some guesswork on my part is required: Do you assume your server to just delegate the normal (ISP) IPv6 /64 prefix to it's client and act as a kind of IPv6 go-between?

That's not how prefix delegation works.

Your ISP (Telekom) serves a /56 network to your router (via DHCPv6) which gets advertised to the clients (check your routing table when directly attached to the router). Additionally the router chooses one or more /64 subnets and advertises those. This is prefix delegation on your providers side.

It looks like this: a:b:c:d00::/56. Notice the last two zeroes. This allows your router to delegate up to 256 /64 subnets to sub-routers (from 00 to ff). A famous router (Fritz!Box) uses two of them itself: 00 for the main network and 01 for the guest network.

Theoretically your router has to provide a subnet (say 0c) via DHCPv6 prefix delegation to your server which in turn advertises that subnet to the attached client. This requires full prefix delegation support in your router.

Offline

#3 2026-01-31 12:59:03

flacer
Member
Registered: 2016-09-15
Posts: 4

Re: [SOLVED] IPv6 routing: Prefix doesn't get delegated with networkd

Thank you very much for your reply!

Indeed, I misunderstood the concept. I must admit that I'm entirely new to IPv6.

Error 1: I thought that Prefix Delegation simply announces the prefix to the subnet, from which each client then creates its GUA.
Error 2: I believed that it didn’t matter where the prefix came from—whether it was DHCP or Router Advertisements (RA)—as it would just be announced.

So, PD is a feature that distributes a prefix for a subnet via DHCP or RA, which the router creates from the subnet itself has received from the upstream DHCP (and only DHCP) server.

Another issue on my end is that my ancient "workbench" router (Speedport W924V) does not support prefix delegation at all.

Thank you very much for your support and for pointing me in the right direction!

You are truly an IPv6 expert!

Offline

Board footer

Powered by FluxBB