Wildcard DNS zone in bind

Wildcard DNS zone will act as authoritative DNS for any domain name. This is useful when you have a service like domain name parking service, where customers will change name servers of their domain name to your private label name servers. You need all thse domains get resolved to a specific IP address with out manually configuring DNS zone for each of the domain name.

Install Bind DNS server.

On Ubuntu/Debian

apt-get install bind9

On CentOS/RHEL

yum install bind9

Create a Catch-All zone file.

vi  /etc/bind/catch-all.zone

Add following content to the file

@ IN SOA ns1.yourdomain.com. hostmaster.yourdomain.com. ( 1 3h 1h 1w 1d )
  IN NS YOUR_IP_ADDR_HERE
* IN A YOUR_IP_ADDR_HERE

In above, replace

YOUR_IP_ADDR_HERE = IP you need all domains resolve to.
yourdomain.com = replace with your private label name server domain.

To make this zone active, you need to add it to named.conf, edit

On CentOS

vi  /etc/bind/named.conf.local

On Debian

vi  /etc/bind/named.conf

At the end of the file, add

zone "." IN {
        type master;
        file "/etc/bind/catch-all.zone";
};

Verify there is no error.

named-checkconf

Restart bind

systemctl restart bind9

Now verify Catch all DNS zone works with

nslookup serverok.in YOUR_DNS_SERVER_IP_HERE

It should resolve to the IP address specified in DNS zone file catch-all.zone. In above example, i used serverok.in for testing, you can use any domain, that should resolve to the IP address.

If you need to set MX rcord for the domains, you can add following to end of catch-all.zone file

  IN    MX      0       mx1.mail-server.com.
  IN    MX      5       mx2.mail-server.com.

See bind

Need help with Linux Server or WordPress? We can help!

Leave a Reply

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