systemd / systemd

The systemd System and Service Manager
https://systemd.io
GNU General Public License v2.0
13.08k stars 3.74k forks source link

IPv6: RA: enable unicast for AcceptRA and SendRA #31957

Open iam-TJ opened 5 months ago

iam-TJ commented 5 months ago

Component

systemd-networkd

Is your feature request related to a problem? Please describe

Unable to accept prefix delegation IPv6AcceptRA=yes to a unicast address.

In this scenario there is a Wireguard IP tunnel between host LOCAL (LC) and host DATACENTER (DC). DC has /56 prefixes to delegate to LC's networkd through the IP tunnel. Wireguard does not support multicast. radvd on DC will not advertise on a link that does not have multicast, so has to be configured in unicast mode with a list of unicast targets clients { fe80::2; }

LC networkd only listens on multicast group addresses so does not see the unicast RAs arriving on the wireguard interface addressed to fe80::2

In investigating this and figuring out workarounds I realised there is a mirror issue of this for IPv6SendRA not able to do unicast RA.

Describe the solution you'd like

The ability to configure a set of IP addresses for IPv6{Accept,Send}RA - addresses must belong to the interface of course and can be link-local or ULA/Global.

Describe alternatives you've considered

Currently trying to work around it with nftables DNAT rule to do fe80::2 > ff02::1

The systemd version you checked that didn't have the feature you are asking for

255

yuwata commented 5 months ago

Indeed. RFC4861 section 4.2

Destination Address Typically the Source Address of an invoking Router Solicitation or the all-nodes multicast address.

yuwata commented 5 months ago

If possible, could you test #31971?

yuwata commented 5 months ago

Maybe, Multicast=yes can help you. See also #17380.