DDNS With FreeDNS Part 1

Published on February 9, 2022 at 6:14 am by LEW

Introduction

Today we will dive into a rather interesting and very useful topic, Dynamic Domain Name Service, Dynamic DNS, or just DDNS for short. We will be exploring this topic through the freedns.afarid.org DDNS service.

There are several DDNS services available out there that I have used, though I am most familiar with FreeDNS.afaraid.org.

What is DDNS

Before continuing, we need to look at what DDNS is. For the example used here, lets assume we are running a personal locally hosted cloud server (NextCloud for instance). Lets also assume we would like to be able to access it outside of our local network, say the coffee shop down the street. To do this you need two things; your public facing IP address, and the https port (usually 443) forwarded through your router to your server.

The IP address provided by your Internet Service Provider (ISP) is probably dynamic (unless you paid for a static IP address). Without getting overly in depth, this basically means it can change. With your modem connected 24/7, things are more stable than back in the dial up days. But the connection can still be interrupted by power failures, service outages, and hardware failures. And when your connection is restored, you might have a new IP address.

Domain Names also rely on Static IP addresses, as they are the human interface to the IP address. This is another of those in depth discussions that is out of scope for this post.

This is where DNS and DDNS comes in. DNS ties a domain name to an IP address. DDNS allows you to update the IP address when required. Technically you could update the IP address in DNS, but it tends to be a laborious process that DDNS simplifies.

For example, lets say you have a IP address of 73.39.238.246, and you have the domain frickfrac.biz that points to it. Now lets assume your ISP has a massive outage, and when they come back up you get IP address 73.39.238.235. With a DDNS service you can quickly point frickfrac.biz to 73.39.238.235 instead of 73.39.238.246.

This can be done either manually or automatically. In this post we will talk about associating a IP address with a domain manually through freedns.afraid.org. In the next post we will talk about setting up something more automatic.

There is one more concept we need to visit before proceeding, the subdomain. Once you have a domain name, you can create subdomains under it. In our above example you could add the subdomain wumpus” to the frickfrac.biz domain  by prepending it to the domain name. This would look like this.

https://wumpus.frickfrac.biz

FreeDNS.afraid.org Basics

Before going any further, you need to hop over to the freedns.afarid.org website and setup a basic starter account (its free). We will need this moving forward. Note the basic account does not allow you to attach your own domains. But you can create up to five sub domains off any of the available shared domains.

You need to determine your current public IP address. This can be done in a number of ways. In this post I use icanhazip.com. Right click on the link and open it in a new browser tab. You should see your public IP address displayed. Write it down.

Now back to freedns.afaraid.org. Click on the Registry entry in the left hand menu. This should bring up a list of shared domains. We are going to chose one to attach a subdomain too, and then point to our public IP address. Just click on one.

It should bring you to the Add a new subdomains form, with the domain already filled in. You just need to enter a subdomain and your public IP address in the appropriate fields, then Save.

Since this is a basic account it will take some time to propagate. So now is a good time to make sure you have enabled your routers port forwarding of https to your server (usually port 443).

Once a sufficient amount of time has passed, you can try reaching your server from outside your network.

An Example is in order: If you chose the mooo.com public shared domain, and you entered a subdomain of bovine, then your domain name would be bovine.mooo.com.

Lets assume you have an instance of NextCloud running in a folder of the same name at the web root of your server. And lets assume that in your router you have forwarded port 443 (https) to your server. You would point a browser, outside your local network, to then following address.

https://bovine.moo.com/NextCloud

If everything is working and sufficient time for propagation has passed, you should end up on your NextCloud login screen.

Connection Problems

If you have visited your cloud server on this device from inside your network, you may need to clear the browser cache, or it might try to default to whatever address you used locally, which won’t work very well.

Double check your public IP address and port forwarding on your router if you continue to experience connection problems.

Log back in to freedns.afraid.org, and check if the last IP in the upper right corner is green. If it is red, review your subdomain setup.

If you get a security warning, then you may need to generate a certificate. I suggest using Lets Encrypt. Depending on your browser, you may be able to choose Advanced, and proceed to your site with some security warnings.

Conclusion

This was a quick look at setting up a subdomain.domain to point towards your local server. The process here is manual. If your IP address changes, you will need to manually update the DDNS reference.

In the next post we will talk about how to automate IP address updates at freedns.afaraid.org with just a little bit of code writing.

Reviewing this post, I also need to write a post on using “Lets Encrypt” to go along with this series of posts.

Add New Comment

Your email address will not be published. Required fields are marked *