No, libvirt added these configuration options, just as I have suspected libvirt and `bind-interfaces` in my original answer (click for more)
While your removal of two configuration files (libvirt-bin
and network-manager
) allowed Pi-hole to work again (as it is bound to all interfaces now), I am not entirely convinced that this won't interfere with libvirts designated use of dnsmasq
.
Keep an eye on this, as libvirt could re-enable these configuration options on consecutive runs.
With regards to your IPv6 address:
NetworkManager would not touch any interfaces declared in /etc/network/interfaces
by default, and you've disabled/uninstalled it anyhow.
Some musings on NetworkManager (click for details)
NetworkManager tries to simplify your network setup by aggregating configuration options (including dnsmasq
, iptables
, sysctl
) for each network it detects into separate profiles.
By default, NetworkManager does not handle any interface declared in /etc/network/interfaces
.
Also by default, NetworkManager is configuring its own dnsmasq
instance via /etc/NetworkManager/dnsmasq.d/
, which might well result in conflicts with Pi-hole.
Uninstalling it is a good idea, but if you are dependent on NetworkManager (e.g. because your favourite VPN tool requires it), you could try to disable it by commenting the corresponding line in /etc/NetworkManager/NetworkManager.conf
like this:
# dns=dnsmasq
So that means IPv6 auto configuration has taken over, which means your system works as expected (if not quite as intended by you )
Auto configuration is a core feature of IPv6, so not at all a bad thing (though it is bound to create some head-aches with regards to enforcing Pi-hole as DNS, but that's an entirely different topic).
However, you should use a ULA prefix address (e.g. fd00::) for your Pi-hole, not a global one (like 2606:: - click for more)
Your address starts with 2606:
, and that means it is using a globally visible (which is not the same as accessible) address prefix, likely supplied by your ISP.
It would be better if you'd use a ULA prefix (fd00:
by default) as supplied by your router - read Use IPv6 ULA addresses for Pi-hole for details. You'd have to consult your router's documentation on how you do this for your network.
If you do not need IPv6, you could also disable IPv6 altogether in your router (if your router allows this), sparing you many of the afore-mentioned head-aches.
If you decide to disable IPv6 on just your Linux machine instead, you can do so (click)
The following lines will disable IPv6 for your entire machine.
Edit /etc/sysctl.conf
:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
If you'd prefer to disable IPv6 for just one interface, just use
net.ipv6.conf.eth0.disable_ipv6 = 1
Replace eth0
above with another interface name as needed.
Be aware that other programs (like libvirt and NetworkManager) also write to these files and might overwrite your settings if you use their configuration facilities.