DNS and BIND

目錄

DNS基本介紹

DNS服務的搭建

主從複製

子域授權

基於bind view實現智能DNS

一、DNS基本介紹

    DNS:Domain Name System,域名系統 。DNS作爲域名和IP地址相互映射的一個分佈式數據庫,能夠讓用戶更加方便的訪問互聯網。它的正向映射是把一個主機和IP地址關聯起來,它的反向映射是把IP地址和主機名關聯起來。DNS協議運用在UDP協議上,使用端口號53.

    

域名:DNS名字空間被組織成一個樹形結構,每個完整的域名是這棵樹的分支上的一個節點。

域名級別:

        根域:/

        頂級域:

      國際頂級域:.com  .net   .org  .edu等

      國家地區頂級域:.cn  .de  .jp  .hk  .us等

        二級域:www.mage.com,其中.magedu就是一個二級域名


DNS查詢類型:

        遞歸查詢:客戶機向服務器發送請求,根服務器並不返回真實的答案,而是轉交給下一級域,一次類似,直到查到客戶機請求的域名所對應的IP地址,然後將此IP地址返回給客戶機。

        迭代查詢:客戶機向DNS服務器發送請求,DNS服務器不管是否查到對應的IP地址直接返回給客戶機答案。


DNS域名解析:

        正向解析:FQDN到IP地址的解析

        反向解析:IP地址到FQDN的解析


DNS服務器的類型:

       主服務器:維護所負責區域內解析庫的服務器

       從服務器:從主服務器中同步複製對應的解析庫文件

       緩存服務器:緩存所查詢多的解析條目

       轉發服務器:負責非本地區域內的域名,而通過轉發到別的DNS服務器上進行本地查詢


DNS一次完整查詢的過程:

        首先客戶機發送一個DNS解析請求,查看host文件中是否有相應的對應解析條目,如果沒有就差本地的緩存,緩存沒有就向根服務器發送請求查詢,根服務器會根據域名來告訴你去哪個對應的域中查詢,以此類推,查到對應的 IP然後返回給客戶機。

     

DNS的資源記錄:

        SOA:定義一個DNS區域

        NS:標識域名服務器名稱

        A:名字到IPv4地址的轉換

        AAAA:名字到ipv6地址的轉換

        PTR:地址到名字的轉換

        MX:郵件記錄

        CNAME:主機的別名記錄



二、DNS服務的搭建

1、安裝DNS服務程序包bind:

      yum -y install bind 


2、修改/ec/named.conf配置文件 

[root@bogon ~]# vim /etc/named.conf
options {
        listen-on port 53 { any; };####DNS監聽的端口號及允許哪些主機監聽此端口號
        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     { any; };###允許哪些主機可以進行查詢請求

        recursion yes;###是否允許遞歸解析

        dnssec-enable yes;
        dnssec-validation yes;

      
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";


3、編輯/etc/named.rfc1912.zones文件,建立正向區域文件和反向區域文件

[root@bogon ~]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {        ##正向解析
        type master;          ##類型爲主DNS
        file "magedu.com.zone";###正向解析庫文件
};

zone "1.168.192.in-addr.arpa" IN {   ##反向解析
        type master;                ##反向解析類型爲主DNS        
        file "192.168.1.zone";       ##反向解析庫文件
};


4、在/var/named目錄下建立正向區域和反向區域文件的解析庫數據

[root@bogon named]# vim magedu.com.zone######建立正向解析庫數據
$TTL  1D
@   IN   SOA   ns1.magedu.com.  admin.magedu.com. (
                           2016070901
                           1H
                           2M
                           3D
                           1D
                           )
                           
        IN  NS  ns1.magedu.com.
        IN  MX  10  mx1.magedu.com.
ns1     IN  A   192.168.1.104
mx1     IN  A   192.168.1.10
www     IN  A   192.168.1.20
web     IN  CNAME www


[root@bogon named]# vim 192.168.1.zone####建立反向解析庫數據
$TTL   1D
@   IN    SOA   ns1.magedu.com.   admin.magedu.com.(
                                            2016070901
                                               1H
                                               2M
                                               3D
                                               1D
                                               ) 
      IN   NS  ns1.magedu.com.
104     IN   PTR  ns1.magedu.com.
10      IN   PTR  mx1.magedu.com.
20      IN   PTR  www.magedu.com.
20      IN   PTR  web.magedu.com.
~


5、文件限制已經建立好了我們需要來修改下權限所屬組爲named

[root@bogon named]# chown :named magedu.com.zone 192.168.1.zone 
[root@bogon named]# ll
-rw-r--r--. 1 root  named  273 Jul  9 16:28 192.168.1.zone
-rw-r--r--. 1 root  named  268 Jul  9 16:23 magedu.com.zone


6、檢查配置文件和區域文件語法是否正確

[root@bogon named]# named-checkconf
[root@bogon named]# named-checkzone magedu.com.zone /var/named/magedu.com.zone 
zone magedu.com.zone/IN: loaded serial 2016070901
OK
[root@bogon named]# named-checkzone 1.168.192.in-addr.arpa  /var/named/192.168.1.zone 
zone 1.168.192.in-addr.arpa/IN: loaded serial 2016070901
OK


7、啓動named服務然後測試是否正常

[root@bogon named]# systemctl restart named.service  

[root@bogon ~]# dig www.magedu.com @192.168.1.104  ##正向解析

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> www.magedu.com @192.168.1.104
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9645
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		86400	IN	A	192.168.1.20

;; AUTHORITY SECTION:
magedu.com.		86400	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.1.104

;; Query time: 1 msec
;; SERVER: 192.168.1.104#53(192.168.1.104)
;; WHEN: Tue Jun 21 22:15:50 2016
;; MSG SIZE  rcvd: 82            


[root@bogon ~]# dig -x 192.168.1.20 @192.168.1.104  ###反向解析

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -x 192.168.1.20 @192.168.1.104
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60239
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

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

;; ANSWER SECTION:
20.1.168.192.in-addr.arpa. 86400 IN	PTR	www.magedu.com.
20.1.168.192.in-addr.arpa. 86400 IN	PTR	web.magedu.com.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa.	86400	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.1.104

;; Query time: 0 msec
;; SERVER: 192.168.1.104#53(192.168.1.104)
;; WHEN: Tue Jun 21 22:17:12 2016
;; MSG SIZE  rcvd: 123


三、主從複製

1、從DNS的/var/named.conf配置文件同主DNS服務器是一樣的,所有此處就不進行展示了。

2、編輯/etc/named.rfc1912.zones文件配置從服務器的正向和反向區域的解析區域

[root@bogon ~]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
        type slave;
        masters {192.168.1.104;};
        file "slaves/magedu.com.slave.zone";
};

zone "1.168.192.in-addr.arpa" IN {
        type slave;
        masters {192.168.1.104;};
        file "slvaes/192.168.1.slave.zone";
};

3、啓動服務查看/var/named/slaves目錄下面會出現

192.168.1.slave.zone  magedu.com.slave.zone這兩個文件:

[root@bogon slaves]# ll
total 8
-rw-r--r-- 1 named named 413 May 11 23:37 192.168.1.slave.zone
-rw-r--r-- 1 named named 396 May 11 23:39 magedu.com.slave.zone

4、測試,此時我們把客戶機的DNS指向到我們的從服務器地址然後看看是否可以使用呢

[root@bogon ~]# dig -x 192.168.1.20 @192.168.1.100(192.168.1.100是從DNS服務器的地址)

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -x 192.168.1.20 @192.168.1.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16233
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

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

;; ANSWER SECTION:
20.1.168.192.in-addr.arpa. 86400 IN	PTR	web.magedu.com.
20.1.168.192.in-addr.arpa. 86400 IN	PTR	www.magedu.com.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa.	86400	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.1.104

;; Query time: 31 msec
;; SERVER: 192.168.1.100#53(192.168.1.100)
;; WHEN: Tue Jun 21 22:39:33 2016
;; MSG SIZE  rcvd: 123

[root@bogon ~]# dig www.magedu.com @192.168.1.100(192.168.1.100是從DNS服務器的地址)

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> www.magedu.com @192.168.1.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10729
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		86400	IN	A	192.168.1.20

;; AUTHORITY SECTION:
magedu.com.		86400	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.1.104

;; Query time: 0 msec
;; SERVER: 192.168.1.100#53(192.168.1.100)
;; WHEN: Tue Jun 21 22:39:53 2016
;; MSG SIZE  rcvd: 82

ok經過測試時我們的從DNS服務器是沒有問題的。但是如果主DNS中有更新條目那麼我們從服務器此時是
每有辦法同步過來的,那麼我們下一步就是做主從同步啦!


5、主從同步

在主DNS服務器的/var/named/magedu.com.zone中添加一條NS記錄,此記錄指向我們從DNS服務器的IP地址

在主DNS服務器/var/named/192.168.1.zone中添加一個NS記錄同時做相應的反向IP解析

$TTL  1D
@       IN   SOA   ns1.magedu.com.    admin.magedu.com.  (
                                        2016070902###版本號需要更改
                                        1H
                                        2M
                                        3D
                                        1D
                                        )
        IN  NS  ns1.magedu.com.
        IN  NS  ns2.magedu.com.###此條爲添加的ns記錄
        IN  MX  10  mx1.magedu.com.
ns1     IN  A   192.168.1.104
ns2     IN  A   192.168.1.100####對應的ns解析地址,此地址爲從DNS服務器的地址
mx1     IN  A   192.168.1.10
www     IN  A   192.168.1.20
web     IN  CNAME www
~
$TTL   1D
@       IN      SOA     ns1.magedu.com.     admin.magedu.com. (
                                                2016070902###版本號需要更改
                                                1H
                                                2M
                                                3D
                                                1D
                                                )
        IN   NS  ns1.magedu.com.
        IN   NS  ns2.magedu.com.###此條爲添加的ns記錄
100     IN   PTR  ns2.magedu.com.###對應的解析地址
104     IN   PTR  ns1.magedu.com.
10      IN   PTR  mx1.magedu.com.
20      IN   PTR  www.magedu.com.
20      IN   PTR  web.magedu.com.
~

重新加載主DNS服務器的服務:rndc reload,然後我們到從DNS中查看是已經同步了。

[root@bogon slaves]# cat 192.168.1.slave.zone 
$ORIGIN .
$TTL 86400	; 1 day
1.168.192.in-addr.arpa	IN SOA	ns1.magedu.com. admin.magedu.com. (
				2016070902 ; serial
				3600       ; refresh (1 hour)
				120        ; retry (2 minutes)
				259200     ; expire (3 days)
				86400      ; minimum (1 day)
				)
			NS	ns1.magedu.com.
			NS	ns2.magedu.com.
$ORIGIN 1.168.192.in-addr.arpa.
10			PTR	mx1.magedu.com.
100			PTR	ns2.magedu.com.
104			PTR	ns1.magedu.com.
20			PTR	www.magedu.com.
			PTR	web.magedu.com.

[root@bogon slaves]# 
[root@bogon slaves]# cat magedu.com.slave.zone 
$ORIGIN .
$TTL 86400	; 1 day
magedu.com		IN SOA	ns1.magedu.com. admin.magedu.com. (
				2016070902 ; serial
				3600       ; refresh (1 hour)
				120        ; retry (2 minutes)
				259200     ; expire (3 days)
				86400      ; minimum (1 day)
				)
			NS	ns1.magedu.com.
			NS	ns2.magedu.com.
			MX	10 mx1.magedu.com.
$ORIGIN magedu.com.
mx1			A	192.168.1.10
ns1			A	192.168.1.104
ns2			A	192.168.1.100
web			CNAME	www
www			A	192.168.1.20

  ok經過查此處已經完成了同步了。  


 四、子域授權 

我們已經擁有域magedu.com

現在我有一個子域sport.magedu.com需要對此子域進行解析

1)主DNS服務器上編輯/var/named.rfc1912.zones文件在此中添加子域的區域文件

[root@bogon named]# vim /etc/named.rfc1912.zones 
zone "sport.magedu.com" IN {
	type master;
	file "sport.magedu.com.zone";
};

2)在/var/named/目錄下建立sport.magedu.com.zone的區域解析數據

[root@bogon named]# vim /var/named/sport.magedu.com.zone 
$TTL  1D
@       IN   SOA   ns1.sport.magedu.com.    admin.sport.magedu.com.  (
                                        2016070902
                                        1H
                                        2M
                                        3D
                                        1D
                                        )
        IN  NS  ns1.sport.magedu.com.
ns1     IN  A   192.168.1.100
www     IN  A  192.168.1.200

3)重啓服務或者重新加載服務rndc reload

4)測試我們子域解析是否正常

[root@bogon ~]# dig www.sport.magedu.com @192.168.1.104

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> www.sport.magedu.com @192.168.1.104
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31997
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.sport.magedu.com.		IN	A

;; ANSWER SECTION:
www.sport.magedu.com.	86400	IN	A	192.168.1.200

;; AUTHORITY SECTION:
sport.magedu.com.	86400	IN	NS	ns1.sport.magedu.com.

;; ADDITIONAL SECTION:
ns1.sport.magedu.com.	86400	IN	A	192.168.1.100

;; Query time: 0 msec
;; SERVER: 192.168.1.104#53(192.168.1.104)
;; WHEN: Tue Jun 21 23:12:13 2016
;; MSG SIZE  rcvd: 88



五、基於bind view實現智能DNS

由於我們網絡訪問時候可能使用的是電信和聯通的IP地址,現在我想要實現用戶DNS請求的時候能夠判斷用戶是電信還是聯通從而給用戶對應網絡運營商IP地址。

###此實驗是單獨的與以上沒關係。

1、安裝bind服務

2、在主配置文件中定義acl規則

acl liantong {                ###此處定義聯通的acl
        192.168.1.104;        ###模擬192.168.1.104是聯通客戶端
};

acl dianxin {                ###定義電信acl
        192.168.1.100;       ###模擬192.168.1.100是電信客戶端
};
####此規則需要添加到options前面
options {
        listen-on port 53 { any; };
        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     { any; };


3、定義view

view  liantong {
        match-clients {liantong;};  調用lingtong定義的acl
        include "/etc/liantong.zones"; 定義linatong區域數據存放位置
};
view  dianxin {
        match-clients {dianxin;};
        include "/etc/dianxin.zones"
};
view  otherview  {
        match-clients  {any;};
        include "/etc/named.rfc1912.zones";
};

//include "/etc/named.rfc1912.zones";###此行註釋掉
include "/etc/named.root.key";


4、將/etc/named.conf中的根區域移動到/etc/naemd.rfc1912.zones此處來,把原來的根文件需要給刪除了

[root@bogon ~]# vim /etc/named.rfc1912.zones 
zone "." IN {
        type hint;
        file "named.ca";
};


5、建立數據區域文件

[root@bogon ~]# vim /etc/liantong.zones
zone "magedu.com." IN {
        type master;
        file liantong.zone;
};


[root@bogon ~]# vim /etc/dianxin.zones
zone "magedu.com" IN {
        type master;
        file "dianxin.zone";
};


6、更改權限:

[root@bogon ~]# chown :named /etc/liantong.zones /etc/dianxin.zones 
[root@bogon ~]# ll /etc/liantong.zones 
-rw-r--r--. 1 root named 64 6月  21 23:54 /etc/liantong.zones
[root@bogon ~]# ll /etc/dianxin.zones 
-rw-r--r--. 1 root named 62 6月  21 23:55 /etc/dianxin.zones


7、建立數據區域文件的解析庫數據

[root@bogon ~]# vim /var/named/liantong.zone
$TTL 1D

@    IN  SOA  ns1.magedu.com. admin.magedu.com. (
                                                 2016070401
                                                        1D
                                                        1H
                                                        1W
                                                        3H
                                                        )
                                                       
        IN  NS   ns1
ns1    IN   A  192.168.1.108
www    IN   A  5.5.5.5  (模擬聯通IP)
[root@bogon ~]# vim /var/named/dianxin.zone 
$TTL  1D
@   IN  SOA  ns1.magedu.com.   admin.magedu.com. (
                          2016070401
                                                        1D
                                                        1H
                                                        1W
                                                        3H
                                                        )
            IN  NS   ns1                              

ns1    IN   A  192.168.1.108
www     IN  A  6.6.6.6(模擬電信IP)


8、更改權限

[root@bogon named]# chown :named dianxin.zone liantong.zone 
drwxrwx---. 2 named named 4096 5月  11 07:07 data
-rw-r--r--. 1 root  named  410 6月  22 00:05 dianxin.zone
drwxrwx---. 2 named named 4096 5月  11 07:07 dynamic
-rw-r--r--. 1 root  named  407 6月  22 00:05 liantong.zone
-rw-r-----. 1 root  named 3171 1月  11 22:12 named.ca
-rw-r-----. 1 root  named  152 12月 15 2009 named.empty
-rw-r-----. 1 root  named  152 6月  21 2007 named.localhost
-rw-r-----. 1 root  named  168 12月 15 2009 named.loopback
drwxrwx---. 2 named named 4096 5月  11 07:07 slaves

9、重啓服務測試:

[root@bogon ~]# dig www.magedu.com @192.168.1.108

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> www.magedu.com @192.168.1.108
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17536
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
  ###此處可以看到電信模擬地址以解析 

;; AUTHORITY SECTION:
magedu.com.		86400	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.1.108

;; Query time: 1 msec
;; SERVER: 192.168.1.108#53(192.168.1.108)
;; WHEN: Thu May 12 01:22:51 2016
;; MSG SIZE  rcvd: 82
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章