On Sat, Oct 8, 2022 at 10:55 AM Marcel Menzel <mail@xxxxxx> wrote: > > Hello List, > > after switching from radvd to systemd-networkd for router advertisements, I noticed my Android device losing IPv6 connection after a while and not displaying any IPv6 Addresses anymore in the network overview. > > I am aware with IPv6 issues on Android on certain vendors / ROMs, but after trying to troubleshoot it, I noticed systemd-networkd not sending periodic router advertisements into my network compared to radvd. > > In radvd, there's the MinRtrAdvInterval and MaxRtrAdvInterval config option, whileas for systemd-networkd I wasn't able to find any of these options. Trying to adjust timers for PreferredLifetimeSec, ValidLifetimeSec or RouterLifetimeSec I still wasn't able to get networkd to send out periodic RAs (either with the defaults or my own values). > > There will only be sent a router advertisement for client initiated router solicitations, like with the rdisc6 tool. I confirmed this with radvdump and tcpdump. As soon as I re-start radvd, IPv6 Adresses re-appear on my Android device. Multicast snooping has been disabled on all of my bridges. My sd-networkd .network config file for one bridge looks like this: > > [Match] > Name=br0 > > [Network] > Address=fe80::1/64 > Address=2a0f:85c1:beef:2031::/64 > IPv6AcceptRA=false > IPv6SendRA=yes > IPv6PrivacyExtensions=no > > [IPv6SendRA] > RouterLifetimeSec = 60 > EmitDNS = yes > DNS = fd00:0:0:10::4 > EmitDomains = no > > [IPv6Prefix] > Prefix=2a0f:85c1:beef:2031::/64 > PreferredLifetimeSec=60 > ValidLifetimeSec=300 > > Did I miss an option for enabling periodic RAs or isn't there simply a way to achieve this?` systemd-networkd sends periodic RAs on my home network. I am running systemd-251.5. The period is not directly configurable. It basically picks a random number between 200 and 600 seconds by default. However, this time can be reduced to as little as 4 seconds by setting RouterLifetimeSec to some low value. I have IPv6SendRA enabled directly on an ethernet interface; I wonder if there is some conflict with trying to enable it on a bridge. Perhaps you need to set the proper scope for your manually assigned link-local address? Something like: [Address] Address=fe80::1/64 Scope=link