Why does the interface have an IPv6 address with IPv6 disabled?

The IPv6 address is a link-local address that is automatically configured. Network configuration programs don't touch it. If the address bothers you (it is only valid on the local LAN), to get rid of it you need to disable IPv6 in the kernel.


The relevant setting in NetworkManager's connection profile is called ipv6.method.

Until recently, disabled was not implemented (that is done now). If you have a recent NetworkManager and you set the method "disabled", it works as expected.

There is also the setting ignore. In that case NetworkManager leaves it to kernel. You would have to set the corresponding sysctl values yourself.

If the GUI calls it "disabled" while setting it to "ignore", that's a bug. I think it's even reported already (not sure). Also, that depends on which GUI you are using (looks like gnome-contol-center). If the GUI doesn't support it, use nmcli to set the property.

The reason why "ignore" exists, is because long ago NetworkManager left IPv6 to kernel. That mode does that, but arguably it's not very useful.

It took long to implement "disabled", because it didn't bother somebody enough to fix it. Nowadays it is fixed.