Network Fundamentals — Knowledge Base
NETWORKING / INFRASTRUCTURE / DNS & DHCP
A practical guide to understanding your local network

DNS Caching & DHCP: How Devices Communicate on a Network

Every time a device connects to your network, it needs a way to configure its connection and find other devices and services.

Two important technologies make this possible: DHCP and DNS.

And when combined with DNS caching, they can make an entire network more efficient.

The short version:
DHCP tells a device how to join the network and which DNS server to use. DNS translates domain names into IP addresses. DNS caching allows a DNS server to remember previous answers so that other devices can reuse them.

1. First, DHCP: How does a device join a network?

Imagine connecting your laptop to your home Wi-Fi for the first time. Before it can communicate properly with other devices or access the internet, it needs some basic network information.

This is where DHCP (Dynamic Host Configuration Protocol) comes in.

DHCP automatically provides network configuration to clients. Instead of manually assigning an IP address to every laptop, phone, printer or server, a DHCP server handles this process.

What information does DHCP provide?

  • IP address: The address assigned to the device, such as 192.168.1.20.
  • Subnet mask: Defines which addresses belong to the local network.
  • Default gateway: Usually your router, which provides a path to other networks.
  • DNS server: The server the device should contact when resolving domain names.
  • Lease time: How long the IP configuration can be used before renewal is needed.

The DHCP process

When a device joins a network, it typically follows a four-step process known as DORA:

1 Discover
The client broadcasts a request asking if a DHCP server is available.
2 Offer
The DHCP server offers an available IP address and network configuration.
3 Request
The client indicates that it wants to use the offered configuration.
4 Acknowledgement
The DHCP server confirms the assignment and the client can start using it.

The assigned IP address is leased for a specific period. The client can renew that lease to continue using the address.

Important distinction:
DHCP does not normally distribute individual DNS records. It tells clients which DNS server to use. The actual domain-name resolution happens through DNS.

2. DNS: Turning names into IP addresses

Computers communicate using IP addresses, but humans prefer memorable names.

For example, instead of remembering an IP address, you simply enter google.com into your browser.

DNS (Domain Name System) is responsible for translating that domain name into an IP address.

When your laptop needs to access a domain, it sends a DNS query to its configured DNS resolver. The resolver finds the answer and returns the corresponding IP address.

What happens during a DNS lookup?

1 Your laptop wants to visit google.com.
2 It sends a DNS query to its configured DNS server.
3 The DNS resolver checks whether it already knows the answer.
4 If necessary, it queries other DNS servers to find the answer.
5 The resolver returns the IP address to your laptop.

Your browser can now connect to the destination using that IP address.

3. DNS caching: Why does the network remember DNS answers?

Now imagine that several devices on your network regularly visit the same websites.

Without caching, a DNS resolver may need to perform additional lookups whenever it receives a query for a name it does not already know.

DNS caching solves this by temporarily storing DNS answers.

Example: Two laptops requesting the same domain

Let’s say your network has two laptops and a central DNS resolver.

1 Laptop A requests the IP address of example.com.
2 The DNS resolver does not have the answer cached, so it performs the necessary lookup.
3 The resolver receives the answer and stores it in its DNS cache.
4 Laptop B requests example.com.
5 The resolver already has the answer cached and can return it without performing the external lookup again.
This is the important part:
The DNS cache lives on the DNS resolver, not in the DHCP configuration. Multiple clients can benefit from the same cached DNS answers because they use the same resolver.

What about the cache expiration?

DNS records have a value called TTL (Time To Live). It determines how long a DNS answer can be cached.

For example, if a DNS record has a TTL of 300 seconds, a resolver can cache that answer for five minutes. After the TTL expires, it needs to obtain a fresh answer before using it again.

4. Putting everything together

Now that we understand DHCP and DNS caching separately, let’s look at how they work together in a local network.

YOUR LOCAL NETWORK — A SIMPLIFIED OVERVIEW
💻 Laptop A 192.168.1.20
📱 Laptop B 192.168.1.21
🖥 NAS 192.168.1.50
🖨 Printer 192.168.1.60
↕
DNSMASQ / LOCAL NETWORK SERVER 192.168.1.1
DHCP DNS Resolver DNS Cache
↕
🌐 UPSTREAM DNS SERVER Cloudflare · Google · ISP DNS

In this example, dnsmasq provides both DHCP and DNS services. The clients receive their network configuration through DHCP and are instructed to use 192.168.1.1 as their DNS server.

When a client requests a domain, dnsmasq checks its DNS cache. If the answer is available, it returns it immediately. Otherwise, it forwards the query to an upstream DNS server and caches the response.

This means multiple clients can benefit from the same DNS cache.

5. So, what exactly is dnsmasq?

dnsmasq is a lightweight networking service that can provide DNS forwarding, DNS caching and DHCP functionality.

It is particularly useful for smaller networks, home labs, embedded systems and lightweight Linux servers.

Instead of running separate, more complex services for basic DHCP and DNS functionality, dnsmasq can handle both in one relatively small application.

Does every network need dnsmasq?

No. Your existing router might already provide DHCP, DNS forwarding and DNS caching.

dnsmasq becomes useful when you want more control over these services, such as:

  • Providing DHCP leases to devices on your local network.
  • Centralizing DNS caching for multiple clients.
  • Resolving local hostnames such as nas.home.
  • Forwarding DNS requests to specific upstream servers.
  • Running a lightweight DNS and DHCP service on a Linux machine.

One additional feature is that dnsmasq can associate DHCP client hostnames with their leased IP addresses. This can allow other clients using dnsmasq to resolve local device names without manually creating DNS records for every device.

6. DHCP vs. DNS vs. DNS caching

Technology Purpose Example
DHCP Provides network configuration. Assigns 192.168.1.20 to your laptop.
DNS Resolves domain names to IP addresses. google.com → IP address.
DNS caching Temporarily stores DNS answers for reuse. Returns a previously resolved IP address.
dnsmasq Can provide DHCP, DNS forwarding and DNS caching. One lightweight service handling several network tasks.
DHCP tip:
If you use dnsmasq as the DHCP server for your network, make sure your router’s DHCP server is disabled or deliberately configured as part of a coordinated setup. Two independent DHCP servers on the same network can hand out conflicting configuration.

7. Using dnsmasq on Windows, Linux and macOS

dnsmasq does not need to be installed on every device in your network. However, it is useful to know which operating systems can run it and which platform is best suited for a particular task.

Linux: the most common environment

Linux is the platform on which dnsmasq is most commonly deployed. It is available in the package repositories of many popular distributions.

On Ubuntu or Debian, you can install it with:

sudo apt update
sudo apt install dnsmasq

The main configuration file is usually:

sudo nano /etc/dnsmasq.conf

From there, you can configure DNS forwarding, local DNS names and, if required, DHCP settings. Linux is a good choice for a central DNS server, a Raspberry Pi or a home lab.

macOS: dnsmasq with Homebrew

You can also run dnsmasq on a Mac. One convenient way to install it is through Homebrew, a popular package manager for macOS.

brew install dnsmasq

You can start the service with:

brew services start dnsmasq

To check the installed version, run:

dnsmasq --version

macOS is useful for experimenting with local DNS resolution and DNS caching. If you want other devices to use your Mac as their DNS server, you must also configure the network interface, firewall and DNS settings correctly.

Windows: using WSL

dnsmasq is not normally installed as a standard native Windows service. You can, however, run it inside Windows Subsystem for Linux (WSL). WSL provides a Linux environment within Windows, such as Ubuntu, where you can install dnsmasq using the Linux package manager.

sudo apt update
sudo apt install dnsmasq

There is an important difference between testing dnsmasq locally and using it as a server for your physical network. WSL has its own network configuration, and incoming DHCP broadcasts from other devices do not automatically reach a dnsmasq instance inside WSL. For a central DHCP server, a dedicated Linux machine or virtual machine with correctly configured network access is usually a better choice.

One DNS server can serve many operating systems

The most important point is that dnsmasq does not have to run on the same operating system as the devices using it. For example, you can install dnsmasq on one Linux server and let Windows, macOS, Linux and Android devices use that server for DNS.

ONE CENTRAL DNS SERVER FOR DIFFERENT PLATFORMS
LINUX SERVER dnsmasq as a central network service
DHCP DNS CACHE
↕
Windows DNS client
macOS DNS client
Linux DNS client
Android DNS client

This works because DNS is a standardized network protocol. A Windows computer can send a DNS query to a Linux server just as easily as a Mac or an Android device can.

The key idea:
The operating system running the DNS server does not have to match the operating systems of the clients. The clients simply need to be configured to use the address of that DNS server.

For a home network or home lab, this makes a small Linux server a practical way to provide shared DNS services to the entire network.

Conclusion

DHCP and DNS solve two different problems, but they work together to make network communication easier.

DHCP gets devices configured and tells them which DNS server to use. DNS translates names into addresses, while DNS caching allows a resolver to reuse previous answers instead of repeatedly looking them up.

dnsmasq can bring DHCP, DNS forwarding and DNS caching together in one lightweight application, making it a convenient solution for managing smaller networks.

Remember:
DHCP tells your device which DNS server to ask. DNS resolves the name, and DNS caching stores the answer temporarily. dnsmasq can provide DHCP, DNS forwarding and caching in one service.
NETWORK KNOWLEDGE BASE · NETWORKING FUNDAMENTALS
End of document.

Geef een reactie