Round-Robin DNS Setup
Round-robin DNS provides load distribution across multiple machines using the same hostname but each having their own IP. Each request to the DNS server is routed to a different machine in sequential order. Configuration of round-robin DNS uses the Berkeley Internet Name Domain(BIND) named daemon. BIND uses zone files to define hostnames with address records.
An example of a round-robin BIND zone file:
nfs.test.local IN A 10.10.0.101
nfs.test.local IN A 10.10.0.102
nfs.test.local IN A 10.10.0.103
Install and Setup
This applies to RHEL.
Make sure the BIND package is installed. Do not install the bind-chroot package:
Make sure the BIND package is installed. Do not install the bind-chroot package:
yum install bind
The install creates the named service and the following configuration files:
/etc/named.conf #read when named service starts
/var/named #working directory for the named service
/var/named/dynamic #directory for the zone data
Edit named.conf to look like the following:
//
// /etc/named.conf
//
options {
listen-on port 53 { any; };
directory “/var/named/”; # states working directory
allow-query { any; }; # lists which hosts can query the nameserver
recursion yes;
forwarders { x.x.x.x; x.x.x.x; }; # site dns servers
};
logging {
channel default_debug {
file “data/named.run”;
severity dynamic;
};
};
//
// Zone Definitions
//
zone “localhost” IN {
type master;
file “named.localhost”;
};
zone “test.local” IN {
allow-transfer { any; };
file “dynamic/nfstest.main”; # zone configuration file
type master; # indicates it’s the owner of zone file
};
Edit the zone file to look like the following, adding you own hostname to IP mappings:
//
// /var/named/dynamic/nfstest.main
//
//
$TTL 1d # how long a zone record is valid
$ORIGIN test.local. # allows you to append the domain name to unqualified records
@ IN SOA s01.test. root ( #Start of Authority record
20120527 ;serial
4H ;refresh
1H ;retry
1W ;expiry
1D ) ;minimum
;
IN NS s01.test.local. # states the nameserver
; IN NS secondary.test.local.
;
;********************************
;* Domain Address Information *
;********************************
;
; Local Host
;
localhost IN A 127.0.0.1
;
; Machine Names
;
; Private Network (10.10.0.0/24)
;
;
n01 IN A 10.10.0.01
n02 IN A 10.10.0.02
n03 IN A 10.10.0.03
n04 IN A 10.10.0.04
n05 IN A 10.10.0.05
n06 IN A 10.10.0.06
n07 IN A 10.10.0.07
n08 IN A 10.10.0.08
n09 IN A 10.10.0.09
n10 IN A 10.10.0.10
;
fs01 IN A 10.10.0.21
fs02 IN A 10.10.0.22
s01 IN A 10.10.0.23
;
; Clustered NFS # this is the round robin entry
nfs IN A 10.10.0.101
nfs IN A 10.10.0.102
nfs IN A 10.10.0.103
nfs IN A 10.10.0.101
nfs IN A 10.10.0.102
nfs IN A 10.10.0.103
Start the named service:
service named start
chkconfig named on
Configure the clients to point to the DNS nameserver:
root@client# vi /etc/resolv.conf
search nfs.test.local
nameserver 10.10.0.23 # add your nameserver IP
nameserver x.x.x.x # add site nameserver
Now whenever a client machine queries the name ‘nfs’ the response from the DNS server will rotate through the entries above.