Monday, 24 December 2012

DNS Master and Slave Configuration



-->
DNS Server

DNS server is part of a global network of server that translate host name like www.facebook.com into numeraical IP address like 119.82.69.202 which computer on the Net use to communicate with each other. This is allow us to memorize or intuitive URLs and e-mail addresses instead of a long string of numbers.

Types of DNS Server.

  • A master DNS server for your domain(s), which stores authoritative records for your domain.
  • A slave DNS server, which relies on a master DNS server for data.
  • A caching-only DNS server, which stores recent requests like a proxy server. It otherwise refers to other DNS servers.
  • A forwarding-only DNS server, which refers all requests to other DNS servers.

Master DNS ( Primary DNS Server )

The authoritative server that contains the master zone file, which can be modified to update DNS information about the zone, is called the primary master server, or just master server.


Slave DNS ( Secondary DNS Server )

The additional name servers for the zone are called secondary servers or slave servers. Secondary servers retrieve information about the zone through a zone transfer from the master server or from another secondary server. DNS information about a zone is never modified directly on the secondary server.


Here I am using RHEL 5.5 64 bit operating System.

Domain name is = facebook.com
Master IP = 10.64.10.1 and host name is = server.example.com
Slave IP = 10.64.10.2 and host name is = slave.example.com
client IP = 10.64.10.3 and host name is = client.example.com

How to Setup Master DNS ( Primary DNS) Server.

First we check some file.

[root@server ~]# cat /etc/sysconfig/network
[root@server ~]# cat /etc/resolv.conf
[root@server ~]# cat /etc/hosts

Install Required RPMs.

[root@server ~] # yum install bind* caching-nameserver
[root@server ~]# /etc/init.d/named restart;chkconfig named on ( restart the service and make it permanent running )

Make the named.conf file and sysmbol link.

[root@server ~]# cd /var/named/chroot/etc/
[root@server etc]# cp -p named.caching-nameserver.conf named.conf
[root@server etc]# ln -s /var/named/chroot/etc/named.conf /etc/named.conf
[root@server etc]# ls -la /etc/named.conf
lrwxrwxrwx 1 root root 32 Dec 22 16:39 /etc/named.conf -> /var/named/chroot/etc/named.conf

Now Generate the Key. Edit it into named.conf

[root@server etc]# rndc-confgen -a -b 512
include “/etc/rndc.key”;
Now Edit the named.conf file.
options {
listen-on port 53 { 127.0.0.1; 10.64.10.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";


allow-query { localhost; 10.64.10.0/24; };
allow-query-cache { localhost; 10.64.10.0/24; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; 10.64.10.0/24; };
match-destinations { localhost; 10.64.10.0/24; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
include “/etc/rndc.key”;




Now mention the zone files in.
[root@server etc]# vim named.rfc1912.zones
zone "facebook.com" IN {
type master;
file "facebook.com.zone";
allow-update { none; };
allow-transfer { 10.64.10.2; };
};


zone "10.64.10.in-addr.arpa" IN {
type master;
file "rev-facebook.com.zone";
allow-update { none; };
allow-transfer { 10.64.10.2; };
};

Now create fowared zones files.
[root@server ~]# cd /var/named/chroot/var/named/
[root@server named]# cp -p localhost.zone facebook.com.zone

$TTL 86400
@ IN SOA master.facebook.com. root.facebook.com. (
                                                          42 ; serial (d. adams)
                                                          3H ; refresh
                                                        15M ; retry
                                                          1W ; expiry
                                                         1D ) ; minimum
                   IN NS master.facebook.com.
                      IN NS slave.facebook.com.


master       IN    A   10.64.10.1
slave          IN    A   10.64.10.2
client          IN    A  10.64.10.3


Now create reverse zone file.
[root@server named]# cp -p named.local rev-facebook.com.zone
$TTL 86400
@ IN SOA master.facebook.com. root.master.facebook.com. (
                                                                              42 ; Serial
                                                                         28800 ; Refresh
                                                                          14400 ; Retry
                                                                       3600000 ; Expire
                                                                        86400 ) ; Minimum
                 IN NS master.facebook.com.
                IN NS slave.facebook.com.
1               IN    PTR    master.
2               IN   PTR     slave.
3               IN   PTR    client.


Now Restart service.
[root@server named]# /etc/init.d/named restart
Stopping named:                               [ OK ]
Starting named:                                [ OK ]

Now check Master is running file.

[root@server named]# nslookup 10.64.10.1
Server: 10.64.10.1
Address: 10.64.10.1#53


1.10.64.10.in-addr.arpa name = master.

Or

[root@server named]# nslookup master.facebook.com
Server: 10.64.10.1
Address: 10.64.10.1#53


Name: master.facebook.com
Address: 10.64.10.1

Or

[root@server named]# dig -x 10.64.10.1


; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> -x 10.64.10.1
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17417
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2


;; QUESTION SECTION:
;1.10.64.10.in-addr.arpa. IN PTR


;; ANSWER SECTION:
1.10.64.10.in-addr.arpa. 86400 IN PTR master.


;; AUTHORITY SECTION:
10.64.10.in-addr.arpa. 86400 IN NS slave.facebook.com.
10.64.10.in-addr.arpa. 86400 IN NS master.facebook.com.


;; ADDITIONAL SECTION:
slave.facebook.com. 86400 IN A 10.64.10.2
master.facebook.com. 86400 IN A 10.64.10.1


;; Query time: 1 msec
;; SERVER: 10.64.10.1#53(10.64.10.1)
;; WHEN: Tue Dec 25 06:04:19 2012
;; MSG SIZE rcvd: 146

That means master is running fine.

How to Setup Slave DNS ( Secondary DNS) Server.

Install Required RPMs.

[root@slave ~] # yum install bind* caching-nameserver
[root@slave ~]# /etc/init.d/named restart;chkconfig named on ( restart the service and make it permanent running )

Make the named.conf file and sysmbol link.

[root@slave ~]# cd /var/named/chroot/etc/
[root@slave etc]# cp -p named.caching-nameserver.conf named.conf
[root@slave etc]# ln -s /var/named/chroot/etc/named.conf /etc/named.conf
[root@slave etc]# ls -la /etc/named.conf
lrwxrwxrwx 1 root root 32 Dec 22 16:39 /etc/named.conf -> /var/named/chroot/etc/named.conf

Now Generate the Key. Edit it into named.conf

[root@slave etc]# rndc-confgen -a -b 512
include “/etc/rndc.key”;
Now Edit the named.conf file.

options {
listen-on port 53 { 127.0.0.1; 10.64.10.2; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";


// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;


allow-query { localhost; 10.64.10.0/24; };
allow-query-cache { localhost; 10.64.10.0/24; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; 10.64.10.0/24; };
match-destinations { localhost; 10.64.10.0/24; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
include “/etc/rndc.key”;

Now mention zone files.

[root@slave ~]# cd /var/named/chroot/etc/
[root@slave etc]# vim named.rfc1912.zones

zone "facebook.com" IN {
type slave;
file "slaves/facebook.com.zone";
masters { 10.64.10.1; };
};


zone "10.64.10.in-addr.arpa" {
type slave;
file "slaves/facebook.com.zone";
masters { 10.64.10.1; };
};

Now create the zones file.

[root@slave ~]# cd /var/named/chroot/var/named/slaves
[root@slave slaves]# vim facebook.com.zone

T$TL 86400
@ IN SOA master.facebook.com. root.facebook.com. (
2010031200 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum

[root@slave slaves]# vim rev-facebook.com.zone

$TTL 86400
@ IN SOA master.facebook.com. root.facebook.com. (
                                                                         42 ; serial (d. adams)
                                                                        3H ; refresh
                                                                      15M ; retry
                                                                         1W ; expiry
                                                                        1D ) ; minimum

Create the Symbol link

[root@slave ~]# ln -s /var/named/chroot/var/named/slaves/facebook.com.zone /var/named/slaves/facebook.com.zone
[root@slave ~]# ls -la /var/named/slaves/facebook.com.zone
lrwxrwxrwx 1 root root 52 Dec 25 06:27 /var/named/slaves/facebook.com.zone -> /var/named/chroot/var/named/slaves/facebook.com.zone

Now change the permission

[root@slave ~]# chown named.named /var/named/chroot/var/named/slaves/rev-facebook.com.zone
[root@slave ~]# ls -l /var/named/chroot/var/named/slaves/rev-facebook.com.zone
-rw-r----- 1 named named 175 Dec 24 15:00 /var/named/chroot/var/named/slaves/rev-facebook.com.zone

Now Restart the service.

[root@slave ~]# /etc/init.d/named restart
Stopping named: [ OK ]
Starting named: [ OK ]

Now check the slave is working file.

[root@slave ~]# nslookup 10.64.10.2
Server: 10.64.10.2
Address: 10.64.10.2#53


2.10.64.10.in-addr.arpa name = slave.

Or

[root@slave ~]# nslookup slave.facebook.com
Server: 10.64.10.2
Address: 10.64.10.2#53


Name: slave.facebook.com
Address: 10.64.10.2

Or

[root@slave ~]# dig -x 10.64.10.2


; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> -x 10.64.10.2
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23303
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2


;; QUESTION SECTION:
;2.10.64.10.in-addr.arpa. IN PTR


;; ANSWER SECTION:
2.10.64.10.in-addr.arpa. 86400 IN PTR slave.


;; AUTHORITY SECTION:
10.64.10.in-addr.arpa. 86400 IN NS master.facebook.com.
10.64.10.in-addr.arpa. 86400 IN NS slave.facebook.com.


;; ADDITIONAL SECTION:
slave.facebook.com. 86400 IN A 10.64.10.2
master.facebook.com. 86400 IN A 10.64.10.1


;; Query time: 2 msec
;; SERVER: 10.64.10.2#53(10.64.10.2)
;; WHEN: Tue Dec 25 06:38:56 2012
;; MSG SIZE rcvd: 145

Now check the client side.

[root@client ~]# nslookup 10.64.10.1
Server: 10.64.10.1
Address: 10.64.10.1#53


1.10.64.10.in-addr.arpa name = master.


[root@client ~]# nslookup 10.64.10.2
Server: 10.64.10.1
Address: 10.64.10.1#53


2.10.64.10.in-addr.arpa name = slave.

                                                                                               
                                                                                         Thanks & Regards
                                                                                         Manish Singh Bhandari

Friday, 21 December 2012

How to install a looback interface in Ubuntu 12.04

            
                    How to install a looback interface in Ubuntu 12.04

After successful installation of GNS3, we will install loopback adapter on our Ubuntu,Centos, Redhat and Fedora systems, so that we can telnet into your routers.

Loopback tap installation on Ubuntu 12.04

$ sudo –i
#apt-get install uml-utilities
#modprobe tun
#tunctl                                       ( This will create loopback interface tap0 )
#ifconfig tap0 10.64.10.100 netmask 255.0.0.0 up
#ifconfig

If you want to add one more loopback interface

#tunctl                                       ( This will create loopback interface tap1 )
#ifconfig tap1 10.64.10.100 netmask 255.0.0.0 up

Loopback tap installation on Centos/Redhat/Fedora.We need tunctl which is not available in our local repositories. So we’ll have to add RPMForge
repository. Steps to add this repo is given here

http://wiki.centos.org/AdditionalResources/Repositories/RPMForge (Steps are the same for other 2 distros as well)

Ok lets install tunctl

$ su -
Password:                                       (Type in your root password here)
# yum install tunctl
# modprobe tun
# cd /usr/sbin
#./tunctl                                     ( This will create loopback interface tap0 )
# /sbin/ifconfig tap0 10.100.100.100 netmask 255.255.255.0 up
# /sbin/ ifconfig                ( verify that tap0 is up and given ip is assigned.)

If you want to add one more loopback interface

#./tunctl                                        ( This will create loopback interface tap1 )
# /sbin/ifconfig tap1 10.100.101.100 netmask 255.255.255.0 up

Important: Add these lines to iptables

sudo iptables -I INPUT -j ACCEPT -i tap0
sudo iptables -I OUTPUT -j ACCEPT -o tap0