Setting up Cloudflare Dynamic DNS on Your EdgeRouter-X

Created 2020-04-01 (But it's not an April Fool's joke!)

There's not a lot of great information out there on getting this set up, and what there is seems to be incorrect. Below is what I have found to be the simplest setup one can do.

First things first, in your Cloudflare control panel, make an A record for the domain you want to change. I would suggest giving it a bogus IP address, so you can see if your configuration is working. Something like 1.1.1.1 is great.

Next, go to your Profile in Cloudflare, then switch to the API Tokens tab. On the API Keys area, click the View button by your Global API Key. Copy this key, and hold on to it for later.

NOTE: This key could give a person full control over your Cloudflare account, even if you have MFA set up! Protect it like your password.

Now that we have the Cloudflare set up out of the way, log into your EdgeRouter- X and go to the Config Tree. If the CLI is more your speed, you can do that, but I'm not going to explain how.

Question: Why go to the Config Tree instead of the Services > DNS Tab?

Answer: As of versions 2.0.8 and 1.10.11, that tab does not have all necessary options.

Drill down through the Configuration Tree to Service > DNS > Dynamic > interface and click on the + Add button. Type in the name of your WAN port. If you're not sure, it's probably eth0, but you can check on the Routing tab. Also, if you're not sure, this is something you should really figure out, because your firewall might not be configured properly. Okay, that's getting a bit off-topic. Now that you've typed in the name of your WAN interface, click on Update List, and you'll see that a new option has been added to your Config tree. Click on eth0, and type in the web field: www.cloudflare.com. Now click on Service in the Config tree, and click on + Add. Type in custom-Cloudflare, and click on Update List.

We're in the home stretch now. Click on the new option in the Config tree, custom-Cloudflare that we just created. Click on the + Add button next to host-name, and type in the fully-qualified domain name that you want to manage. In the login field, type in your Cloudflare email address. In options, type zone=example.com, replacing example.com with the domain you're managing.

NOTE: Say you're setting up a host at plex.robertdherb.com. For host-name, you would use plex.robertdherb.com. For options, you'll use zone=robertdherb.com. And don't get cute, my Plex server isn't actually exposed.

Now, do you remember the API key I told you to hang onto for later? Put that into the password field here. In the protocol field, enter cloudflare, though I suspect you can put anything in here. It might be more accurate to put JSON, but I'm really not sure. Anyway, putting in cloudflare will definitely work, but have fun and experiment if you want to!

The final setting, and incidentally, the one that most guides get wrong, is the server field. Put api.cloudflare.com/client/v4 in there, then click Preview. Double check your settings, and click Apply ✔.

Once your EdgeRouter updates, you will be sent back to the root of the Config Tree, and will see at the bottom of the page The configuration has been applied successfully.

If you look back at the DNS settings for Cloudflare, they should have updated almost instantly, but in case they didn't, in your EdgeRouter control panel, go to the Services tab, then DNS, and click Force Update at the bottom.

And there you have it. That's really it! I have no idea why there is so much misinformation out there, but hopefully this helps at least one person. If you have any trouble, just let me know!

ubiquiti-cloudflare-dyndns.md

All content unless otherwise noted © 2020 Robert D Herb CC-BY-SA
Powered by ssg and OpenBSD
Site Map