Backname
Backname is a DNS server that gives every IP address its very own domain:
- 142.250.147.138.backname.io resolves to 142.250.147.138
IPv4 with dots - 127-0-0-1.backname.io resolves to 127.0.0.1
IPv4 with dashes - 2a00.1450.401b.810.0.0.0.200e.backname.io resolves to 2a00:1450:401b:810::200e
IPv6 with dots - 0--1.backname.io resolves to ::1
IPv6 with dashes
The service is live publicly and for free over at backname.io, but feel free to host your own instance if you wish.
Self-hosting
Hosting Backname yourself is easy with docker compose.
The only prerequisite: a Linux server instance with a public IPv4 address attached, and with git + docker compose installed.
With the server instance ready, follow the steps below:
-
Get Backname onto your disk, e.g. in your home directory (
~):git clone https://github.com/Twixes/backname.git
-
Enter the
backnamedirectory: -
Use your favorite text editor to create the
.envfile storing configuration:This file must follow the format below. Only
ZONEandNAMESERVER_Aare required for operation:# The domain name under which Backname will be running (real-world example: backname.io) ZONE=your-backname-domain.com # The public IPv4 address of this server hosting Backname (in a dual-server setup, two comma-separated addresses) NAMESERVER_A=123.123.123.123 # Optional: The public IPv6 address of this server hosting Backname, if supporting IPv6 (in a dual-server setup, two comma-separated addresses) NAMESERVER_AAAA= # Optional: Website A and/or AAAA records that will be served for your-backname-domain.com + www.your-backname-domain.com (comma-separated) WEBSITE_A= WEBSITE_AAAA= # Optional: TXT record values server at the root of the zone (comma-separated), if needed for e.g. domain verification ROOT_TXT= # Optional: IP addresses blocked from receiving a backname (comma-separated), if seeing problematic usage BLOCKLIST=
Once done, save the
.envfile. -
Start the Backname server:
In older versions of Docker, the command may be
docker-composewith a hyphen. -
Verify that startup succeeded:
You should be seeing
DNS server listening on :53at the very top. If that is the case, the Backname server is now ready to process DNS queries! -
The final step is to configure your domain (
ZONE) to use this server for its own DNS resolution:-
Go to your domain registrar's DNS settings for the domain.
-
Set the domain's nameservers to:
alpha.your-backname-domain.comDual-server setup
alpha.your-backname-domain.com omega.your-backname-domain.comDo not change try to change these subdomains from
alphaandomegato something else – they are hard-coded. -
Also set glue records so that the nameservers can be found initially:
alpha.your-backname-domain.com → value of NAMESERVER_AIf supporting IPv6:
alpha.your-backname-domain.com → value of NAMESERVER_A alpha.your-backname-domain.com → value of NAMESERVER_AAAADual-server setup
IPv4-only
alpha.your-backname-domain.com → first value in NAMESERVER_A omega.your-backname-domain.com → second value in NAMESERVER_AIPv4 + IPv6
alpha.your-backname-domain.com → first value in NAMESERVER_A alpha.your-backname-domain.com → first value in NAMESERVER_AAAA omega.your-backname-domain.com → second value in NAMESERVER_A omega.your-backname-domain.com → second value in NAMESERVER_AAAA
-
-
Now wait for DNS propagation to complete. It can be quick but may take up to 48 hours.
Use
dig NS your-backname-domain.comto check the status of propagation. Once this command returnsalpha.your-backname-domain.co– your Backname DNS is operational!
Achieving high availability
For redundancy, you should host two Backname instances in different data centers. In that case everything stays the same, except that NAMESERVER_A (and optionally NAMESERVER_AAAA too) contains two comma-separated IP address values, rather than just one (refer to "dual-server setup" annotations in the steps above).