How to use Vanity Nameservers on AWS Route53

Not quite an open source specific tutorial – however Amazon Web Services has been a platform of cloud services that cater to many enterprises with open source utilization. In this guide, we will show you how to setup Route53 to use your own domain name as the nameservers (eg. ns1.yourdomain.com) rather than nameservers provided by AWS (eg. ns-186.awsdns-23.com).

The Prerequisite

To create a vanity (whitelabel) nameservers such as ns1.yourdomain.com, you will not be able to accomplish it within AWS Web Console – it requires AWS CLI tools. Please make sure you have it installed and configured with the correct authorization on your computer.

Create a reusable delegation set

We will start by creating a delegation set that we can reuse for all the domain name you want to use the nameservers for. In this example, we will use NS.001 as the caller reference.

aws route53 create-reusable-delegation-set --caller-reference NS.001

You will see an output such as

https://route53.amazonaws.com/2013-04-01/delegationset/N308U4GH5KEWDI
DELEGATIONSET	NS.001	/delegationset/N308U4GH5KEWDI
NAMESERVERS	ns-1292.awsdns-33.org
NAMESERVERS	ns-1814.awsdns-34.co.uk
NAMESERVERS	ns-465.awsdns-58.com
NAMESERVERS	ns-610.awsdns-12.net

The important thing is to take note of this string and keep it as a note somewhere – you will need this in the future to use the same nameservers. In this case, the delegation set ID is N308U4GH5KEWDI

/delegationset/N308U4GH5KEWDI

Next, we will be creating record for the vanity nameservers – to do so, we will have to find out the IP address of the four nameservers assigned to your delegation ID.

In this example, the nameservers assigned are ns-1292.awsdns-33.org, ns-1814.awsdns-34.co.uk, ns-465.awsdns-58.com, and ns-610.awsdns-12.net. 

dig +short ns-1292.awsdns-33.org

It will then output the IP address resolving to this nameserver – which is 205.251.197.12 – we will then do the same for the other three nameservers assigned.

You will need to add “host names” such as ns1.yourdomain.com, ns2.yourdomain.com and so on with your domain registar. I will not touch base on this part, but each registar has its own way and guide on how to accomplish this (eg. GoDaddy – How to add my own host names)

Creating a hosted zone using a reusable delegation set 

Let’s start by creating a hosted zone with the vanity nameservers domain you would like to you. We will use yourdomain.com as an example. This time the caller reference will be using NS.002 (it has to be different from the caller reference you use to create reusable delegation set. Note that we are using the same delegation set ID (N308U4GH5KEWDI)

aws route53 create-hosted-zone --caller-reference NS.002 --name YOURDOMAIN.COM --delegation-set-id /delegationset/N308U4GH5KEWDI

You will then see an output like this

https://route53.amazonaws.com/2013-04-01/hostedzone/Z2UM1Y4TFOJCBC
CHANGEINFO	/change/C3K7BKALK4N078	PENDING	2018-09-20T13:09:25.732Z
DELEGATIONSET	NS.001	/delegationset/N308U4GH5KEWDI
NAMESERVERS	ns-1292.awsdns-33.org
NAMESERVERS	ns-1814.awsdns-34.co.uk
NAMESERVERS	ns-465.awsdns-58.com
NAMESERVERS	ns-610.awsdns-12.net
HOSTEDZONE	NS.002	/hostedzone/Z2UM1Y4TFOJCBC	yourdomain.com.	2
CONFIG	False

Once this has been completed, you can login to your AWS Route53 console and start editing the record sets. Start by adding A record sets for ns1.yourdomain.com (using the IP address you extract with dig command above) and change your NS records with your vanity nameservers, Remember to also update your SOA to reflect the correct nameserver.  

In the future, if you forgotten your delegation set ID, you can retrieve them by using this command

aws route53 list-reusable-delegation-sets

Final Thoughts

While the process seems to be complicated, it is actually quite straight forward once you have the delegation sets and hostname setup on your registar. You can re-use it for other domain name without making any changes to the primary vanity nameservers record sets. If you have any comment or suggestions, feel free to share them on the comment section below. We hope this tutorial is useful to you.

Post a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.