[systemd-devel] systemd-networkd: IPv6 prefix wrongly applied to every interface
Andreas Schultz
aschultz at tpip.net
Mon Jan 18 03:05:13 PST 2016
Hi,
I have a problem with systemd-networkd compiled from
git head (rev dd050decb6ad131ebdeabb71c4f9ecb4733269c0).
On a multi-homed system, when multiple interfaces are
configure with
LinkLocalAddressing=ipv6
(the default), when a IPv6 prefix received via RA on one
of the interfaces is mistakenly applied to all of them.
This obviously completely screws IPv6 routing.
Sample log:
ge0p5: Flags change: +LOWER_UP +RUNNING
Sent message type=signal sender=n/a destination=n/a object=/org/freedesktop/network1/link/_37 interface=org.freedesktop.DBus.Properties
member=PropertiesChanged cookie=31 reply_cookie=0 error=n/a
ge0p5: Gained carrier
e1000e: ge0p0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
IPv6: ADDRCONF(NETDEV_CHANGE): ge0p0: link becomes ready
ge0p0: Flags change: +LOWER_UP +RUNNING
Sent message type=signal sender=n/a destination=n/a object=/org/freedesktop/network1/link/_32 interface=org.freedesktop.DBus.Properties
member=PropertiesChanged cookie=32 reply_cookie=0 error=n/a
ge0p0: Gained carrier
Sent message type=signal sender=n/a destination=n/a object=/org/freedesktop/network1 interface=org.freedesktop.DBus.Properties
member=PropertiesChanged cookie=33 reply_cookie=0 error=n/a
ge0p0: Adding address: fe80::290:bff:fe2a:8506/64 (valid forever)
ge0p0: Gained IPv6LL
ge0p0: Discovering IPv6 routers
NDisc CLIENT: Start Router Solicitation
NDisc CLIENT: Sent Router Solicitation
ge0p5: Adding address: fe80::290:bff:fe2a:850b/64 (valid forever)
Sent message type=signal sender=n/a destination=n/a object=/org/freedesktop/network1/link/_37 interface=org.freedesktop.DBus.Properties
member=PropertiesChanged cookie=34 reply_cookie=0 error=n/a
ge0p5: Gained IPv6LL
ge0p5: Discovering IPv6 routers
NDisc CLIENT: Start Router Solicitation
NDisc CLIENT: Sent Router Solicitation
NDisc CLIENT: Sent Router Solicitation
NDisc CLIENT: Sent Router Solicitation
NDisc CLIENT: Received Router Advertisement: flags none preference medium lifetime 1800 sec
NDisc CLIENT: Router Advertisement link MTU 1500 using 1500
NDisc CLIENT: Received Router Advertisement: flags none preference medium lifetime 1800 sec
NDisc CLIENT: Router Advertisement link MTU 1500 using 1500
NDisc CLIENT: Received Router Advertisement: flags none preference medium lifetime 1800 sec
NDisc CLIENT: Received Router Advertisement: flags none preference medium lifetime 1800 sec
NDisc CLIENT: Received Router Advertisement: flags none preference medium lifetime 1800 sec
NDisc CLIENT: New prefix 2001:06f8:12d9:0013:0000:0000:0000:0000/64 lifetime 2592000 expires in 4w 2d
NDisc CLIENT: Received Router Advertisement: flags none preference medium lifetime 1800 sec
NDisc CLIENT: New prefix 2001:06f8:12d9:0013:0000:0000:0000:0000/64 lifetime 2592000 expires in 4w 2d
NDisc CLIENT: Received Router Advertisement: flags none preference medium lifetime 1800 sec
NDisc CLIENT: New prefix 2001:06f8:12d9:0016:0000:0000:0000:0000/64 lifetime 2592000 expires in 4w 2d
NDisc CLIENT: Received Router Advertisement: flags none preference medium lifetime 1800 sec
NDisc CLIENT: New prefix 2001:06f8:12d9:0016:0000:0000:0000:0000/64 lifetime 2592000 expires in 4w 2d
ge0p5: Updating address: 2001:6f8:12d9:16:290:bff:fe2a:850b/64 (valid for 4w 1d 23h 59min 59s)
Sent message type=signal sender=n/a destination=n/a object=/org/freedesktop/network1/link/_37 interface=org.freedesktop.DBus.Properties
member=PropertiesChanged cookie=35 reply_cookie=0 error=n/a
ge0p0: Updating address: 2001:6f8:12d9:13:290:bff:fe2a:8506/64 (valid for 4w 1d 23h 59min 59s)
ge0p5: Updating address: 2001:6f8:12d9:13:290:bff:fe2a:850b/64 (valid for 4w 1d 23h 59min 59s)
ge0p5: Configured
Sent message type=signal sender=n/a destination=n/a object=/org/freedesktop/network1/link/_37 interface=org.freedesktop.DBus.Properties
member=PropertiesChanged cookie=36 reply_cookie=0 error=n/a
ge0p0: Updating address: 2001:6f8:12d9:16:290:bff:fe2a:8506/64 (valid for 4w 1d 23h 59min 59s)
ge0p0: Configured
The resulting routing table:
~# ip -6 route
2001:6f8:12d9:13::/64 dev ge0p5 proto ra metric 1024 pref medium
2001:6f8:12d9:13::/64 dev ge0p0 proto ra metric 1024 pref medium
2001:6f8:12d9:16::/64 dev ge0p5 proto ra metric 1024 pref medium
2001:6f8:12d9:16::/64 dev ge0p0 proto ra metric 1024 pref medium
I have verified that the 2001:6f8:12d9:13::/64 prefix is only advertised on ge0p5
and the 2001:6f8:12d9:16::/64 is only advertised on ge0p0.
Regards
Andreas
More information about the systemd-devel
mailing list