I have a pi hole in my network and I set it as my primary DNS server, and my router (a Mikrotik) as secondary. DHCP sets the DNS servers as pihole, mikrotik in this exact order and I want to keep it that way. I know systemd-resolved uses some algorithm to set the fastest dns as current server, but I don’t want/need that. Is there some way to do configure it to just let it be?
I’m running Fedora 40.


Via ChatGPT 4 (accuracy unverified):
Yes, you can configure
systemd-resolvedto use the DNS servers in the order provided without dynamically switching based on speed. Here’s how you can do it:Edit the resolved configuration file:
Open the
resolved.conffile in a text editor:sudo nano /etc/systemd/resolved.confModify or add the following line:
Replace
IP_of_piholeandIP_of_mikrotikwith your actual DNS IP addresses. This tellssystemd-resolvedto only use the DNS servers in the order you’ve specified.Prevent automatic DNS changes by network manager:
If you’re using NetworkManager, create a drop-in configuration to prevent it from overriding DNS settings:
sudo mkdir -p /etc/NetworkManager/conf.d/ sudo nano /etc/NetworkManager/conf.d/dns.confAdd the following content:
Restart services:
After making these changes, restart
systemd-resolvedandNetworkManager:sudo systemctl restart systemd-resolved sudo systemctl restart NetworkManagerThis should ensure that your system uses the DNS servers in the order provided without any automatic switching.