How to Install DNS server in UBUNTU 16?
STEP 1: Update server-
# Sudo apt-get update
# sudo apt-get upgrade
# sudo apt-get dist-upgrade
STEP 2: Install BIND9 -
# sudo apt-get install bind9 bind9utils bind9-doc
STEP 3: caching name server-
To configure Caching name server, edit /etc/bind/named.conf.options file:
# sudo nano /etc/bind/named.conf.options
Uncomment the below lines. Make the entry of forwarders (default 8.8.8.8)
{`
forwarders {
8.8.8.8;
};`}
Save and close the file. Restart bind.
# sudo systemctl restart bind9
STEP 4: Testing the name server
# dig -x 127.0.0.1
( the status should return with STATUS : NOERROR )
STEP 5: Installing/configuring DNS server –
Edit /etc/bind/named.conf file
# sudo nano /etc/bind/named.conf
If these lines are not there just add them -
{`
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
`}
Save and close the file.
STEP 6: now define forward and reverse zone file. To do so edit the file
#sudo nano /etc/bind/named.conf.local
Add these lines to the file and make the changes like IP, DOMAIN NAME according to you…
{`
zone "example.com" {
type master;
file "/etc/bind/for.example.com";
allow-transfer { 192.168.1.1; };
also-notify { 192.168.1.1; };
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/rev.example.com";
allow-transfer { 192.168.1.1; };
also-notify { 192.168.1.1; };
};`}
Save and close the file.
NOW CREATE THE ZONE FILE –
# sudo nano /etc/bind/for.example.com
Add the following lines in it –
{`
$TTL 86400
@ IN SOA pri.example.com. root.example.com. (
2011071001 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS pri.example.com.
pri IN A 192.168.1.1
`}
Here you can add secondary DNS server and client entry according to the scheme/pattern.
Save and close the file.
NEXT create reverse zone file –
# sudo nano /etc/bind/rev.example.com
Add the following lines
{`
$TTL 86400
@ IN SOA pri.example.com. root.example.com. (
2011071002 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS pri.example.com.
@ IN PTR example.com.
pri IN A 192.168.1.1
1 IN PTR pri.example.com.
`}
Save and close the file.
NOW set the permission –
# sudo chmod -R 755 /etc/bind
# sudo chown -R bind:bind /etc/bind
STEP 7 – Verify the DNS configuration files :
# sudo named-checkconf /etc/bind/named.conf
# sudo named-checkconf /etc/bind/named.conf.local
If the commands return nothing that means DNS configuration is valid. If it show error, correct them In particular file.
Verify the ZONE file –
# sudo named-checkzone example.com /etc/bind/for.example.com
Sample output :
{`
zone example.com/IN: loaded serial 2011071001
OK
`}
In same manner check the reverse zone file –
# sudo named-checkzone example.com /etc/bind/rev.example.com
Sample Output :
{`
zone example.com/IN: loaded serial 2011071002
OK
`}
STEP 8 – Checking the DNS server is working or not –
To do so, First Add the DNS IP address in this file :
# sudo nano /etc/network/interfaces
Add these lines to the file :
{`
# primary network interface
auto ens33
iface ens33 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.10
dnsnameservers 192.168.1.1
`}
Save and close the file.
Finally Restart the BIND9 service :
# sudo systemctl restart bind9
STEP 10 – Testing DNS server –
# dig pri.example.com
( it should return with STATUS : NOERROR)
# nslookup example.com
Sample Output :
{`
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: example.com
Address: 192.168.1.1
`}
IF YOU GOT THE RESULT, SOMETHING LIKE ABOVE, THAT MEANS YOUR DNS SERVER IS UP and IS WORKING PROPERLY.


