Home Geekery: DNS and DHCP

Currently being between jobs, I figured that I should use some of my available time to tweak my home network and brush up on some skills whilst waiting for companies to get back to me.

A while back, I replaced the router provided by my ISP with one that is basically better. After getting it setup, I soon realized that it lacked one useful feature that my previous router did. It didn’t automatically register devices in a local DNS.
This was a bit of a pain so I decided to use my Synology NAS as a DNS server, as it has a package for it. I did a very rough-and-ready job at the time, just to basically store a few local addresses and forward the rest via my router to my ISP. No reverse-lookup functionality on the internal network, though.

This was all very well for a while. It did the basic job and was certainly “good enough” for a home network. However, with jobseeking taking longer than I would like and me starting to run out of things to fill the hours with, I figured that now was the time to do a proper job of it. Finish it off so it all works nicely, even if it’s a bit overkill for a home network, and to actually increase my knowledge of how DHCP and DNS work. After all, even when I am in work, I’ve never really had the opportunity to get into the network. And even if I had, playing around with a live network just to see how it works is very much a Bad Idea.
Potentially breaking my single-user home network to improve it and learn how it works is a more acceptable risk.

What it Now Does

  • DHCP (dynamic assigning of IP addresses) is done on the Router.
    • I have set registered addresses for much of my home equipment.
    • In some ways this is overkill, but it can be useful.
    • It’s good practice.
    • It means that my at-home network has fixed IP addresses for various devices but I can bring them elsewhere and have them “just work”.
  • There are (currently) three items that have purely static addresses:
    • The router.
    • An old PC running Proxmox VE as a virtual host. (I’m wanting to brush up on my VM skills as well.)
    • A very entry-level managed switch.
  • My NAS is running a DNS server, which the Router is set to give out as the main DNS server for my home network.
  • The DNS server will query external hostnames via my ISP’s main DNS servers but for anything on the internal-only domain, these are stored on the NAS.
    • Entries for internal servers.
    • A few (not all) bits of home gear.
  • Reverse DNS lookup is now implemented.
    • Up until now, I could only query an internal hostname to get its IP address.
    • Now I can also query the IP address to get the resulting hostname.
    • Not really essential on a home network but if I’m going to implement DNS at home, I might as well do it properly.

Next Stage

This is a step forward from what I had but still not perfect. If I have to reboot/update the NAS, or it breaks, I lose DNS resolution. Including for external sites. Not really an idea situation.

After this, I plan to implement a secondary DNS server elsewhere on the network. I am either going to use a small VM (Virtual Machine) running on the Proxmox host to run this or I shall use an old Raspberry Pi I have lying around. The latter is underpowered for any heavy lifting these days but as a backup DNS it would probably do fine.


All in all, it’s a little bit more complex than a small home network needs to be. However, it does leave everything a little more robust than just leaving it to the router.
Aside from that, the past couple of days’ geekery has given me a lot more insight into DHCP and DNS. I’d say it was definitely worth the effort.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s