Networking Open Source

How to configure dnsmasq on Fedora desktop and server

If you're looking to speed up DNS queries on your Linux machines, and you're using Fedora or CentOS, fear not. Here's how to install and configure dnsmasq.

Image: Jack Wallen

Recently, I covered how to install and configure dnsmasq on Linux systems (see "How to speed up DNS caching on Linux machines with dnsmasq"). However, that particular setup doesn't work for the likes of Fedora (both desktop and server editions). So I thought it time to walk through the process of getting the same system setup on Fedora 26. With this in place, you will enjoy faster dns lookups, for faster networking.

So, without further ado, let's get to the setup.

SEE: 20 quick tips to make Linux networking easier (TechRepublic)

Installation

The first thing you must do is install the necessary software. To do this, open up a terminal window and issue the command:

sudo dnf install dnsmasq

Once the installation completes, you're almost ready to configure. Before we do that, we must create a new unprivileged user and group that will handle the functions of dnsmasq. Issue the following two commands to take care of that:

sudo groupadd -r dnsmasq
​sudo useradd -r -g dnsmasq dnsmasq

Now it's time to configure.

Configuration

This is where things vary significantly to the Ubuntu installation. The first thing you want to do is copy the original configuration file with the command:

sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak

Next we're going to delete the original configuration file and create a new one with the commands:

sudo rm /etc/dnsmasq.conf
​sudo touch /etc/dnsmasq.conf

Open that new file in your editor of choice and add the following:

listen-address=127.0.0.1
port=53
bind-interfaces
user=dnsmasq
group=dnsmasq
pid-file=/var/run/dnsmasq.pid
domain-needed
bogus-priv
no-hosts
dns-forward-max=150
cache-size=1000
no-negcache
neg-ttl=3600
resolv-file=/etc/resolv.dnsmasq
no-poll

Save and close that file.

Next we must create a specific dns resolve file that the system will use. Issue the command sudo touch /etc/resolv.dnsmasq and then open that new file with your editor of choice. The setup of this file is exactly like that of /etc/resolve.conf. So if you use the Google DNS nameservers, the contents of the /etc/resolv.dnsmasq will be:

nameserver 8.8.4.4
​nameserver 8.8.8.8

Save and close that file.

Finally, in the /etc/resolv.conf file, make sure the only line is:

nameserver 127.0.0.1

Testing and starting the setup

Before we start dnsmasq, let's test out configuration with the command:

sudo dnsmasq --test

You should see no errors. That being the case, start up dnsmasq with the command:

sudo systemctl start dnsmasq

Finally, we'll enable dnsmasq at boot with the command:

sudo systemctl enable dnsmasq

Faster DNS means faster networking

Issue a dig command on a domain and you'll see a fairly standard response time. Issue the dig command a second time and you'll see that response time drop to near zero. Congratulations, dnsmasq is working and your networking (to or from your Fedora machine) should now be significantly improved.

Also see

Visit TechRepublic