How to setup DNS server with bind on Ubuntu

Step 1: Install Ubuntu or use your WORKING installation.

Step 2: Install bind 9:

sudo apt-get install bind9

Step 3: Configure the main Bind files.

Usually, if you install Bind from the source code, you will have to edit the file named.conf. However, Ubuntu provides you with a pre-configured Bind, so we will edit another file:

sudo vi /etc/bind/named.conf.local

This is where we will insert our zones. By the way, a zone is a domain name that is referenced in the DNS server.
Insert this in the named.conf.local file:

# This is the zone definition. replace example.com with your domain name
zone "example.com" {
        type master;
        file "/etc/bind/zones/example.com.db";
        };

# This is the zone definition for reverse DNS. replace 0.168.192 with your network address in reverse notation - e.g my network address is 192.168.0
zone "0.168.192.in-addr.arpa" {
     type master;
     file "/etc/bind/zones/rev.0.168.192.in-addr.arpa";
};

Ok, now, let's edit the options file:

sudo vi /etc/bind/named.conf.options

We need to modify the forwarder. This is the DNS server to which your own DNS will forward the requests he cannot process.

forwarders {
      # Replace the address below with the address of your provider's DNS server
      123.123.123.123;
};

Now, let's add the zone definition files (replace example.com with your domain name:

sudo mkdir /etc/bind/zones
sudo vi /etc/bind/zones/example.com.db

The zone definition file is where we will put all the addresses / machine names that our DNS server will know. You can take the following example:

example.com.      IN      SOA     ns1.example.com. admin.example.com. (
                                                        2006081401
                                                        28800
                                                        3600
                                                        604800
                                                        38400
 )

example.com.      IN      NS              ns1.example.com.
example.com.      IN      MX     10       mta.example.com.

www              IN      A       192.168.0.2
mta              IN      A       192.168.0.3
ns1              IN      A       192.168.0.1

Now, let's create the reverse DNS zone file:

sudo vi /etc/bind/zones/rev.0.168.192.in-addr.arpa

Copy and paste the following text, modify as needed:

@ IN SOA ns1.example.com. admin.example.com. (
                        2006081401;
                        28800; 
                        604800;
                        604800;
                        86400 
)

                     IN    NS     ns1.example.com.
1                    IN    PTR    example.com

Ok, now you just need to restart bind:

sudo /etc/init.d/bind9 restart

We can now test the new DNS server.

Step 4: Modify the file resolv.conf with the following settings:

sudo vi /etc/resolv.conf

Enter the following:

search example.com
nameserver 192.168.0.1

Now, test your DNS:

dig example.com

Source: Ubuntu Community





  1. Sridhar Sarnobat
    2014-09-03 06:46:31
    Excellent Tutorial, thanks. I found others very intimidating. I was surprised I got mine to work :) Just one comment - you could add some comments to indicate what 192.168.0.1 is. It took me a while to indicate that it's the machine where bind is installed.

Got a comment?

captcha =

Categories

  1. System (20)
    1. FreeBSD (5)
    2. Linux (9)
  2. Email (2)
  3. DNS (2)
  4. Databases (1)
  5. WebServer (27)
 
Copyright © 2012-2015 HowToUnix - *nix Howtos and Tutorials
All Rights Reserved.