← All posts

Post 2

DDNS and How You're Reading This.

2026 Lab Refresh Edit: This is no longer how the lab is configured, but leaving here for historical purposes

So you want to host a website from a residential connection? Sounds easy enough, and since you’ve used the internet before you want a fancy domain name to go along with it. After some searching around you decide on the perfect domain name and purchase it. Then you get your server all setup and return to the registrar, the folks you bought the domain name from, with your public IP address in hand. You give it to them, and they enter a DNS record to create an association between the domain name you bought and your home’s public IP address.

This process is similar to the modern day Yellowpages, just a way to help others look up where to find you. Now that you’ve gone through that process visitors can go to MyWebsite.com and there’s your website, thanks to the power of DNS. However a few days later a storm came through which knocked out power and internet for the area. It only took crews a few hours to get everything back up and running but come to find out your website doesn’t work anymore, why’s that? After some digging around you notice your public IP has changed.

Now you could go and update your DNS record with the registrar, but what if you don’t notice it for a few days or the IP address changes frequently? Sounds like a real pain to me, and because I’m lazy lets automate that process. Enter Dynamic DNS, or DDNS.

DDNS is a service that you can utilize that will automatically update your public IP address using an on-site client and a set of credentials. This is exactly the process my domain is using through Google Domains. I installed the DDNS client (DDclient specifically) on an Ubuntu server and have that calling home, updating my Public IP address on a regular interval.

Here are some resources on DDNS:

One issue I ran into with this was with the default configuration, during the installation of the client on Ubuntu it had a fancy gui despite being the CLI version of Ubuntu server. It auto-setup the interface as such in the configuration file:

use=if, if=eth0

This cause a problem in that it was pulling the private IP address of the eth0 interface. To fix this I change that line to instead pull the public address from a public DDNS service server (checkip.dyndns.org). That way it will send the public IP address to the registrar and in turn deliver it to you when you try visiting Marcuslynn.com

~Marcus

← All posts