Q. I've nameserver like ns1.example.com and ns2.example.com. I'd like to provide Vanity DNS for each domain such as ns1.yourdomain.com and ns2.yourdomain.com. Basically, my users should able to call my dns server as their own servers. This will create the illusion that my user run their own name servers. How do I setup vanity DNS using BIND 9 under UNIX / Linux?
A. It is pretty easy to setup nameserver for each domain using BIND. For example, ns1.nixcraft.net and ns2.nixcraft.net can be used as vanity DNS for theos.in domain.
Our sample setup
| Your real DNS server | Vanity DNS | IP address for both Real and Vanity servers |
| ns1.nixcraft.net | ns1.theos.in | 202.54.1.20 |
| ns2.nixcraft.net | ns2.theos.in | 203.51.2.22 |
So instead of using ns1.nixcraft.net, you use ns1.theos.in for theos.in. Please replace domain name and IPs according to your requirements.
How do I setup Vanity DNS for theos.in domain?
You need to register ns1.theos.in and ns2.theos.in with your domain service provider or ISP with the following settings:
- ns1.theos.in : 202.54.1.20
- ns2.theos.in : 203.51.2.22
Next, you need to setup named.conf as follows on master bind 9 server, enter:
# vi named.conf
Append zone as follows, enter:
zone "theos.in" {
type master;
file "/etc/bind/zones/master.theos.in";
allow-transfer { 203.51.2.22 };
};Save and close the file. Run following command to check named.conf for error:
# named-checkconf
Now, create /etc/bind/zones/master.theos.in zone file:
# vi /etc/bind/zones/master.theos.in
Append zone as follows, enter:
$ORIGIN theos.in.
$TTL 3h
@ IN SOA ns1.theos.in. hostmaster.theos.in. (
2008071801 ; Serial yyyymmddnn
3h ; Refresh After 3 hours
1h ; Retry Retry after 1 hour
1w ; Expire after 1 week
1h) ; Minimum negative caching of 1 hour
; Vanity DNS
@ 86400 IN NS ns1.theos.in.
@ 86400 IN NS ns2.theos.in.
@ 86400 IN MX 10 smtp.theos.in.
; Vanity DNS must point to IP of ns1.nixcraft.net and ns2.nixcraft.net
ns1 86400 IN A 202.54.1.20
ns2 86400 IN A 203.51.2.22
; host stuff
@ 86400 IN A 22.33.11.44
www 86400 IN A 22.33.11.44
ftp 86400 IN A 22.33.11.44Save and close the file. Run zone file validity checking for theos.in, enter:
# named-checkzone theos.in /etc/bind/zones/master.theos.in
Sample output:
zone theos.in/IN: loaded serial 2008071801 OK
Now just reload bind 9, enter:
# rndc reload
Slave server configuration
Open named.conf on slave server and append following code:
zone "theos.in" {
type slave;
file "/etc/bind/zones/slave.theos.in";
masters { 202.54.1.20; };
allow-transfer { none; };
};Save and close the file. Run following command to check named.conf for error:
# named-checkconf
Reload named, enter:
# rndc reload
It may take anywhere from 24-48 hrs to propagate a domain across the internet. You can test your setup with the following command:
$ host -t ns theos.in
Sample output:
theos.in name server ns1.theos.in. theos.in name server ns2.theos.in.
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop













{ 7 comments… read them below or add one }
When you try to click on the Printable version link above, it comes up with an error 404 pages
@M B Richards,
Thanks for the heads up. I’ve fixed the problem. Let me know if you’ve any other problem.
Great tutorial! Thank you for your kindness.
Best regards,
Danny
Hi
I’ve got a new FreeBSD VPS and I’m in trouble with this dns stuff:
http://forums.freebsd.org/showthread.php?t=10593
http://serverfault.com/questions/105752/setting-up-nameserver-bind-freebsd
Is there anybody to help me. I’ll be apperciated.
“You need to register ns1.theos.in and ns2.theos.in with your domain service provider or ISP” Can you explain this more? Even if you run your own nameservers you still cant do it yourself? But you need to engage I presume whoever owns the ip ranges your using for you DNS servers?
I understand now you mean the domain registrar.
They obviously provide some information back to the central dns servers? I guess some registrar’s might have automated this process, others would only do it manually and others may refuse to support this at all?
I used the DNS ip ‘s provided by my network provider . is it ok or should i own from ISP .please let me know . I am using ubuntu 12.04 (bind9 to configure)