0

I am trying to fully disable IPv6 on an IPv4-configured virtual network adaptor in an LXD container, but it seems to be autoconfiguring an IPv6 address anyway.

Quoth to the documentation:

Note that an interface without any static IPv6 addresses configured, and neither DHCPv6 nor IPv6LL enabled, shall be considered to have no IPv6 support. IPv6 will be automatically disabled for that interface by writing "1" to /proc/sys/net/ipv6/conf/ifname/disable_ipv6.

I am using the following configuration:

[Match]
Name=ext0

[Link]
RequiredForOnline=no

[Network]
Address=172.29.1.12/16
Gateway=0.0.0.0
DHCP=no
LinkLocalAddressing=no
IPv6AcceptRA=no
ConfigureWithoutCarrier=yes

As you can see, systemd-networkd has not set disable_ipv6 to 1 as the documentation states:

# cat /proc/sys/net/ipv6/conf/ext0/disable_ipv6 
0

# ip addr show dev ext0
40: ext0@if17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:07:d6:95 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.29.1.12/16 brd 172.29.255.255 scope global ext0
       valid_lft forever preferred_lft forever
    inet6 fd42:158c:c543:8cfe:216:3eff:fe07:d695/64 scope global dynamic mngtmpaddr 
       valid_lft 3316sec preferred_lft 3316sec
    inet6 fe80::216:3eff:fe07:d695/64 scope link 
       valid_lft forever preferred_lft forever

The systemd-networkd log shows the interface is gaining a link-local address, even though it has been explicitly disabled:

# journalctl -u systemd-networkd
-- Logs begin at Wed 2019-10-02 10:29:04 UTC, end at Wed 2019-10-02 10:30:25 UTC. --
Oct 02 10:29:04 assist1 systemd-networkd[36]: ext0: Gained IPv6LL
Oct 02 10:29:04 assist1 systemd-networkd[36]: Enumeration completed
Oct 02 10:29:04 assist1 systemd[1]: Started Network Service.
Oct 02 10:29:04 assist1 systemd-networkd[36]: ext0: Configured

I am aware of sysctl settings to disable IPv6, which will work, but I would prefer to not use these as I don't want to disable IPv6 globally, and the virtual adaptors may be re-configured to use IPv6 or not dynamically.

1 Answer 1

4

That behavior changed in 482efedc08 for no apparent reason, docs weren't updated. Now IPv6 stack never gets disabled, only enabled by systemd-networkd.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .