You are not logged in.

#1 2021-08-25 10:03:45

tspink
Member
From: Perth, UK
Registered: 2021-08-25
Posts: 3

Losing IPv6 address after unsolicited router advertisement

Hello everyone,

(using systemd 249.3-1, 5.13.12-arch1-1 #1 SMP PREEMPT Wed, 18 Aug 2021 20:49:03 +0000)

Recently, and I'm not sure how long, my public-facing IPv6 address has been suddenly disappearing off the network interface, dropping any existing connections that were made over it.

After a bit of poking around and wiresharking, I can see that it occurs when an unsolicited RA is received from the upstream router. When doing a "networkctl reconfigure eno1", I can see that a router-solicitation message is sent, and the response arrives and correctly configures the interface.  But, after a time, the IPv6 address disappears when the next unsolicited RA arrives.  Doing the reconfigure immediately restores the address, and if I wait - later on a second unsolicited RA restores the address.

Is anyone else experiencing this behaviour, or has advice on how to narrow it down?

Let me know if I can provide any further information or logs to help diagnose the issue.

Best wishes,
Tom

Offline

#2 2021-08-25 12:12:39

amish
Member
Registered: 2014-05-10
Posts: 470

Re: Losing IPv6 address after unsolicited router advertisement

I am facing same issue but it will possibly be fixed in next systemd release.

Update:
See my post below for link.

Last edited by amish (2021-08-25 13:50:36)

Offline

#3 2021-08-25 13:05:20

tspink
Member
From: Perth, UK
Registered: 2021-08-25
Posts: 3

Re: Losing IPv6 address after unsolicited router advertisement

Thanks for the information, but taking a look at the commit in the pull request you referenced, it doesn't seem relevant because I'm not using DHCP6.

I'm using stateless IPv6, so it's through NDP that the RAs are appearing.  Judging by the networkd source code, it seems to be the ndisc subsystem that deals with this.

Best wishes,
Tom

Offline

#4 2021-08-25 13:49:11

amish
Member
Registered: 2014-05-10
Posts: 470

Re: Losing IPv6 address after unsolicited router advertisement

Actually I pasted wrong link

Here is correct link:
https://github.com/systemd/systemd/issues/20245

And fix is here:
https://github.com/systemd/systemd-stable/pull/111

Last edited by amish (2021-08-25 13:51:11)

Offline

#5 2021-08-25 14:48:09

tspink
Member
From: Perth, UK
Registered: 2021-08-25
Posts: 3

Re: Losing IPv6 address after unsolicited router advertisement

Ah, interesting - thanks for taking the time to post this!

I've taken a look at the logs, and I don't really see why it might be happening from here, but perhaps it's something to do with that lifetime fix.  This is what I see when I get an unsolicited RA:

Aug 25 15:35:21 - systemd-networkd[407252]: eno1: NDISC: Received Router Advertisement: flags none preference high lifetime 1800 sec
Aug 25 15:35:21 - systemd-networkd[407252]: eno1: NDISC: Invoking callback for 'router' event.
Aug 25 15:35:21 - systemd-networkd[407252]: eno1: Requesting route: dst: n/a, src: n/a, gw: fe80::1ae8:29ff:fe4c:9377, prefsrc: n/a, scope: global, table: main(254), proto: ra, type: unicast, nexthop: 0, priority: 1024
Aug 25 15:35:21 - systemd-networkd[407252]: eno1: Requesting route: dst: PREFIX::/64, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: main(254), proto: ra, type: unicast, nexthop: 0, priority: 1024
Aug 25 15:35:21 - systemd-networkd[407252]: eno1: Setting NDisc routes.
Aug 25 15:35:21 - systemd-networkd[407252]: eno1: Configuring route: dst: n/a, src: n/a, gw: fe80::1ae8:29ff:fe4c:9377, prefsrc: n/a, scope: global, table: main(254), proto: ra, type: unicast, nexthop: 0, priority: 1024
Aug 25 15:35:21 - systemd-networkd[407252]: eno1: Configuring route: dst: PREFIX::/64, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: main(254), proto: ra, type: unicast, nexthop: 0, priority: 1024
Aug 25 15:35:21 - systemd-networkd[407252]: eno1: NDisc routes set.
Aug 25 15:35:21 - systemd-networkd[407252]: eno1: Removing old NDisc information obtained from fe80::1ae8:29ff:fe4c:9377.
Aug 25 15:35:21 - systemd-networkd[407252]: eno1: Removing address: PREFIX:2ef0:5dff:fe06:c197/64 (valid for 23h 59min 59s, preferred for 3h 59min 59s), flags: manage-temporary-address,no-prefixroute
Aug 25 15:35:21 - systemd-networkd[407252]: eno1: Forgetting address: PREFIX:2ef0:5dff:fe06:c197/64 (valid for 23h 53min 48s, preferred for 3h 53min 48s), flags: manage-temporary-address,no-prefixroute
Aug 25 15:35:21 - systemd-networkd[407252]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_33 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=135 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
Aug 25 15:35:21 - systemd-networkd[407252]: eno1: Forgetting route: dst: PREFIX:2ef0:5dff:fe06:c197/128, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: local(255), proto: kernel, type: local, nexthop: 0, priority: 0

So, it decides to remove old NDisc information, and gets rid of the interface's address - and it doesn't come back, until another unsolicited RA ~10 mins later:

Aug 25 15:44:40 - systemd-networkd[407252]: eno1: NDISC: Received Router Advertisement: flags none preference high lifetime 1800 sec
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: NDISC: Invoking callback for 'router' event.
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: Requesting route: dst: n/a, src: n/a, gw: fe80::1ae8:29ff:fe4c:9377, prefsrc: n/a, scope: global, table: main(254), proto: ra, type: unicast, nexthop: 0, priority: 1024
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: Requesting route: dst: PREFIX::/64, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: main(254), proto: ra, type: unicast, nexthop: 0, priority: 1024
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: Requesting address: PREFIX:2ef0:5dff:fe06:c197/64 (valid for 1d, preferred for 4h), flags: manage-temporary-address,no-prefixroute
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: Setting SLAAC addresses.
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: Setting NDisc routes.
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: State changed: configured -> configuring
Aug 25 15:44:40 - systemd-networkd[407252]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_33 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=136 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: link_check_ready(): dhcp4:yes ipv4ll:no dhcp6_addresses:no dhcp6_routes:no dhcp6_pd_addresses:no dhcp6_pd_routes:no ndisc_addresses:no ndisc_routes:yes
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: State changed: configuring -> configured
Aug 25 15:44:40 - systemd-networkd[407252]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_33 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=137 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: Configuring route: dst: n/a, src: n/a, gw: fe80::1ae8:29ff:fe4c:9377, prefsrc: n/a, scope: global, table: main(254), proto: ra, type: unicast, nexthop: 0, priority: 1024
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: Configuring route: dst: PREFIX::/64, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: main(254), proto: ra, type: unicast, nexthop: 0, priority: 1024
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: Configuring address: PREFIX:2ef0:5dff:fe06:c197/64 (valid for 1d, preferred for 4h), flags: tentative,manage-temporary-address,no-prefixroute
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: NDisc routes set.
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: Remembering updated address: PREFIX:2ef0:5dff:fe06:c197/64 (valid for 1d, preferred for 4h), flags: tentative,manage-temporary-address,no-prefixroute
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: NDisc SLAAC addresses set.
Aug 25 15:44:40 - systemd-networkd[407252]: eno1: No SLAAC address obtained from fe80::1ae8:29ff:fe4c:9377 is ready. The old NDisc information will be removed later.
Aug 25 15:44:41 - systemd-networkd[407252]: eno1: Remembering updated address: PREFIX:2ef0:5dff:fe06:c197/64 (valid for 23h 59min 59s, preferred for 3h 59min 59s), flags: manage-temporary-address,no-prefixroute
Aug 25 15:44:41 - systemd-networkd[407252]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_33 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=138 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
Aug 25 15:44:41 - systemd-networkd[407252]: eno1: Removing old NDisc information obtained from fe80::1ae8:29ff:fe4c:9377.
Aug 25 15:44:41 - systemd-networkd[407252]: eno1: Remembering foreign route: dst: PREFIX:2ef0:5dff:fe06:c197/128, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: local(255), proto: kernel, type: local, nexthop: 0, priority: 0

Does any of that look suspicious, i.e. I've configured something badly?

Best wishes,
Tom

Offline

#6 2021-10-13 14:03:06

stefguy
Member
Registered: 2018-07-13
Posts: 5

Re: Losing IPv6 address after unsolicited router advertisement

good morning,

facing a very similar (maybe the same) issue for a while on arch linux ARM. Have you been able to solve this? I have started a discussion on this in the arch linux ARM forum, see https://archlinuxarm.org/forum/viewtopi … 60&t=15566

greetings, Stef

Offline

#7 2021-10-13 15:00:34

amish
Member
Registered: 2014-05-10
Posts: 470

Re: Losing IPv6 address after unsolicited router advertisement

This was resolved for me in systemd 249

Offline

Board footer

Powered by FluxBB