The concept of caching only DNS servers has been around for a while so I decided to set it up on a Centos 6 box. For this we used the bind available in the updates repo, which should be enabled. Then we do a DNS query both locally and remotely, so you will need bind setting up on the remote host also.
You also need OpenSSH installed and set up with a static IP and port 22 forwarded from the router.
After setting up OpenSSH we install Bind.
$ sudo yum -y install bind bind-utils
$ named -v
BIND 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.4
Once that is done, the first thing we need to do is edit named.conf
$ sudo vi /etc/named.conf
Change the following values
listen-on port 53 {any;};
listen-on-v6 port 53 {none;};
(due to limited IPv6 support, set to any otherwise)
allow-transfer{none;};
allow-query {any;}
Now list the forwarders we have permission to query and determine that they should be checked first. Do this by substituting the relevant IP address values and type:
forwarders {XXX.XXX.XXX.XXX;XXX.XXX.XXX.XXX;};
forward first;
Now scroll down and find the following line to make sure that the server will always provide a recursive query behavior:
recursion yes;
Then enhance this by adding the following lines
recursion yes;
allow-recursion { any ; };
allow-query-on {any;};
allow-query-cache { any; };
Finalize the configuration process by ensuring that IPv6 is no longer required. To do this, type
echo 'OPTIONS="-4"' >> /etc/sysconfig/named
(Skip this step if still using IPv6)
Close and save the file.
Enable the service
$ sudo chkconfig named on
$ sudo service named start
$ sudo service named status
version: 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.4
CPUs found: 2
worker threads: 2
number of zones: 19
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
named (pid 2928) is running...
Now run the netstat tool to view the ports.
$ netstat -ntul
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address Stat e
tcp 0 0 192.168.0.100:53 0.0.0.0:* LIST EN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LIST EN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LIST EN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LIST EN
tcp 0 0 127.0.0.1:953 0.0.0.0:* LIST EN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LIST EN
tcp 0 0 0.0.0.0:17500 0.0.0.0:* LIST EN
tcp 0 0 ::1:53 :::* LIST EN
tcp 0 0 :::22 :::* LIST EN
tcp 0 0 ::1:631 :::* LIST EN
tcp 0 0 ::1:953 :::* LIST EN
tcp 0 0 ::1:25 :::* LIST EN
udp 0 0 192.168.0.100:53 0.0.0.0:*
udp 0 0 127.0.0.1:53 0.0.0.0:*
udp 0 0 0.0.0.0:17500 0.0.0.0:*
udp 0 0 0.0.0.0:631 0.0.0.0:*
udp 0 0 192.168.0.100:123 0.0.0.0:*
udp 0 0 127.0.0.1:123 0.0.0.0:*
udp 0 0 ::1:53 :::*
Now test DNS queries against the caching only DNS server using dig (domain information groper)
$ dig @localhost www.duckduckgo.com
![]() |
dig @localhost |
$ ssh anton2@192.168.0.101
anton2@192.168.0.101's password:
Last login: Thu Jul 11 06:46:48 2013 from 192.168.0.100
[anton2@Dell ~]$ hostname
Dell
$ dig anton2@192.168.0.101 www.duckduckgo.com
![]() |
dig @remote |
No comments:
Post a Comment