Title is a bit vague, since I do not know what is going on. I want to switch to systemd-networkd, and I want it to autoconfigure both IPv4 and IPv6. I come from ifupdown, with the following config:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug ens3 iface ens3 inet dhcp # This is an autoconfigured IPv6 interface iface ens3 inet6 auto This works:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:4f:e8:63 brd ff:ff:ff:ff:ff:ff altname enp0s3 inet <valid ipv4>/24 brd <valid stuff> scope global dynamic ens3 valid_lft 86031sec preferred_lft 86031sec inet6 2a01:7c8:****:***:****:ff:fe4f:e863/64 scope global dynamic mngtmpaddr valid_lft 2591987sec preferred_lft 604787sec inet6 fe80::5054:ff:fe4f:e863/64 scope link valid_lft forever preferred_lft forever Then I want to switch to systemd-networkd, so I create the following config
[Match] Name=ens3 [Network] DHCP=yes I then purge ifupdown to get it out of the way, enable systemd-networkd and systemd-resolved and reboot. IPv4 works fine, IPv6 is broken:
ip a 130 ↵ 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:4f:e8:63 brd ff:ff:ff:ff:ff:ff altname enp0s3 inet <valid ipv4> brd <valid stuff> scope global dynamic ens3 valid_lft 86371sec preferred_lft 86371sec inet6 fe80::5054:ff:fe4f:e863/64 scope link valid_lft forever preferred_lft forever So there is no global ipv6 address. Looking into the debug logs of systemd-networkd gives:
jan 23 16:01:43 transip-vps systemd-networkd[3251]: ens3: Configuring route: dst: 2a01:7c8:d003::/48, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: main, proto: ra, type: unicast jan 23 16:01:43 transip-vps systemd-networkd[3251]: ens3: Setting NDisc routes. jan 23 16:01:43 transip-vps systemd-networkd[3251]: ens3: State changed: configured -> configuring jan 23 16:01:43 transip-vps systemd-networkd[3251]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_32 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=52 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a jan 23 16:01:43 transip-vps systemd-networkd[3251]: rtnl: received non-static neighbor, ignoring. jan 23 16:01:43 transip-vps systemd-networkd[3251]: ens3: NDisc routes set. jan 23 16:01:43 transip-vps systemd-networkd[3251]: ens3: Removing old NDisc information obtained from fe80::d003:1. jan 23 16:01:43 transip-vps systemd-networkd[3251]: ens3: link_check_ready(): dhcp4:yes dhcp6_addresses:no dhcp_routes:no dhcp_pd_addresses:no dhcp_pd_routes:no ndisc_addresses:yes ndisc_routes:yes jan 23 16:01:43 transip-vps systemd-networkd[3251]: ens3: State changed: configuring -> configured jan 23 16:01:43 transip-vps systemd-networkd[3251]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_32 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=53 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a jan 23 16:01:46 transip-vps systemd-networkd[3251]: NDISC: Received Router Advertisement: flags none preference medium lifetime 12 sec jan 23 16:01:46 transip-vps systemd-networkd[3251]: NDISC: Invoking callback for 'router' event. jan 23 16:01:46 transip-vps systemd-networkd[3251]: ens3: Configuring route: dst: n/a, src: n/a, gw: fe80::d003:1, prefsrc: n/a, scope: global, table: main, proto: ra, type: unicast jan 23 16:01:46 transip-vps systemd-networkd[3251]: NDISC: Invalid prefix length, ignoring prefix for stateless autoconfiguration. jan 23 16:01:46 transip-vps systemd-networkd[3251]: ens3: Configuring route: dst: 2a01:7c8:d003::/48, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: main, proto: ra, type: unicast jan 23 16:01:46 transip-vps systemd-networkd[3251]: ens3: Setting NDisc routes. jan 23 16:01:46 transip-vps systemd-networkd[3251]: ens3: State changed: configured -> configuring jan 23 16:01:46 transip-vps systemd-networkd[3251]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_32 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=54 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a jan 23 16:01:46 transip-vps systemd-networkd[3251]: rtnl: received non-static neighbor, ignoring. jan 23 16:01:46 transip-vps systemd-networkd[3251]: ens3: NDisc routes set. jan 23 16:01:46 transip-vps systemd-networkd[3251]: ens3: Removing old NDisc information obtained from fe80::d003:1. jan 23 16:01:46 transip-vps systemd-networkd[3251]: ens3: link_check_ready(): dhcp4:yes dhcp6_addresses:no dhcp_routes:no dhcp_pd_addresses:no dhcp_pd_routes:no ndisc_addresses:yes ndisc_routes:yes jan 23 16:01:46 transip-vps systemd-networkd[3251]: ens3: State changed: configuring -> configured jan 23 16:01:46 transip-vps systemd-networkd[3251]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_32 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=55 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a jan 23 16:01:47 transip-vps systemd-networkd[3251]: NDISC: Received Router Advertisement: flags none preference medium lifetime 12 sec jan 23 16:01:47 transip-vps systemd-networkd[3251]: NDISC: Invoking callback for 'router' event. jan 23 16:01:47 transip-vps systemd-networkd[3251]: ens3: Configuring route: dst: n/a, src: n/a, gw: fe80::d003:1, prefsrc: n/a, scope: global, table: main, proto: ra, type: unicast jan 23 16:01:47 transip-vps systemd-networkd[3251]: NDISC: Invalid prefix length, ignoring prefix for stateless autoconfiguration. jan 23 16:01:47 transip-vps systemd-networkd[3251]: ens3: Configuring route: dst: 2a01:7c8:d003::/48, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: main, proto: ra, type: unicast Ad infinium. What I see is that the prefix 2a01:7c8:d003::/48 looks correct (except /48 instead of 64?), but it is unable to set such an address and just tries forever.
What should I do to get systemd-networkd ipv6 working?