Install bind9 on Master Server
Login as root and install the bind9 package:
apt-get install bind9
Install package named dnsutils, for testing and troubleshooting any DNS issues.
apt-get install dnsutils
Configuration
In this example, we will be using two systems to setup both master and slave dns server.
Master DNS server details:
Hostname: ns01.companyname.com IP:192.168.5.200
Slave DNS server details:
Hostname: ns02.companyname.com IP: 192.168.5.201
DNS configurations are stored in /etc/bind directory. Primary configuration file is /etc/bind/namd.conf.
Edit this file based on your configuration,
vi /etc/bind/named.conf
with content:
include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; include "/etc/bind/rndc.key";
Edit file named.conf.local,
vi /etc/bind/named.conf.local
with content:
zone "companyname.com" { type master; file "/etc/bind/zones/db.companyname.com"; allow-update { key rndc.key; }; allow-transfer { 192.168.5.201; }; }; zone "168.192.in-addr.arpa" { type master; file "/etc/bind/zones/db.168.192.in-addr.arpa"; allow-update { key rndc.key; }; allow-transfer { 192.168.5.201; }; };
Create a directory named “zones” in /etc/bind.
mkdir /etc/bind/zones
Create Forward Zone file name db.companyname.com in /etc/bind/zones with content:
; ; BIND data file for companyname.com ; $TTL 604800 @ IN SOA companyname.com. root.companyname.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL IN A 192.168.5.200 ; @ IN NS ns01.companyname.com. @ IN A 192.168.5.200 @ IN AAAA ::1 ns01 IN A 192.168.5.200
Create Reverse Zone file name db.168.192.in-addr.arpa in /etc/bind/zones:
; ; BIND reverse data file for local 192.168.5.XXX net ; $TTL 604800 @ IN SOA ns01.companyname.com. root.companyname.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns01. 200.5 IN PTR ns01.companyname.com.
Setup this server act as a caching server, Add your ISP’s DNS servers.
vi /etc/bind/named.conf.options
Uncomment and add your ISP’s DNS servers
forwarders { 12.34.56.78; };
Install apparmor-utils
apt-get install apparmor-utils
Edit fileusr.sbin.named,
vi /etc/apparmor.d/usr.sbin.named
find this line:
/etc/bind/** r,
and change to:
/etc/bind/** rw,
Change permission and ownership
chmod -R 755 /etc/bind chown -R bind:bind /etc/bind
Restart service bind:
service bind9 restart
Install bind9 on Slave Server
Login as root and install the bind9 package:
apt-get install bind9
Install package named dnsutils, for testing and troubleshooting any DNS issues.
apt-get install dnsutils
Configuration
vi /etc/bind/named.conf
With content:
include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; include "/etc/bind/rndc.key";
Edit file named.conf.local,
vi /etc/bind/named.conf.local
With content:
zone "companyname.com" { type slave; file "/etc/bind/zones/db.companyname.com"; masters { 192.168.5.200; }; }; zone "10.10.in-addr.arpa" { type slave; file "/etc/bind/zones/db.168.192.in-addr.arpa"; masters { 192.168.5.200; }; };
Copy the content /etc/bind/rndc.key from master server put into slave server.
Create a blank directory name zones in /etc/bind/.
mkdir /etc/bind/zones
Install apparmor-utils
apt-get install apparmor-utils
Edit file usr.sbin.named,
vi /etc/apparmor.d/usr.sbin.named
find this line:
/etc/bind/** r,
and change to:
/etc/bind/** rw,
Change permission and ownership
chmod -R 755 /etc/bind chown -R bind:bind /etc/bind
Restart service bind:
service bind9 restart
If everything went well, there is no error in log file, On slave server should be appear the same files as master server in directory /etc/bind/zone/.