構建一個完整的DNS系統

 

  人心不一樣 各如其面 如之奈何 如之奈何html

——引子服務器


  咱們的目標很明瞭——構建一個具備根的、私有的DNS(Domain Name System)。網絡

  這裏不會陳述太多關於DNS與BIND的基礎知識,若是須要查看一些基礎性的文章,文章末尾附錄之中有傳送門ide

  上圖摘自《DNS與BIND》中文第四版。測試

  上圖即是咱們整個DNS系統的鳥瞰,您須要特別注意,因爲咱們整個過程須要啓動6個相互關聯的、位於GNU/Linux操做系統上的DNS服務器,一個小小的失誤,很可能致使最終的失敗,因此,在接下來的「遊戲」裏,您應該時刻知道咱們目前處於系統的哪一個位置。spa

  這次實驗共有6臺服務器參與,他們皆位於VMnet2:192.168.31.0/24網絡中,固然,若是加上Host主機,就是7臺。操作系統

  Host主機的IP地址默認爲192.168.31.1,咱們將Clone 1的IP設置爲192.168.31.98,他將擔負根DNS服務器的職責。Clone 2至Clone 6便直接對應設置爲192.168.31.2依次至192.168.31.6。3d

  下面,咱們便開始這次遊歷。code

  Step root:server

  目前位置——服務器Clone 1,192.168.31.98,職能爲根DNS服務器。

  各配置文件以下。

# /etc/named.conf
 1 acl listen_acl
 2 {
 3 any;
 4 };
 5 acl allow_query_acl
 6 {
 7 any;
 8 };
 9 acl allow_recursion_acl
10 {
11 none;  # allow_recursion none
12 };
13 acl allow_transfer_acl
14 {
15 none;
16 };
17 acl allow_update_acl
18 {
19 none;
20 };
21 options
22 {
23         listen-on port 53 { listen_acl; };
24         directory       "/var/named";
25         dump-file       "/var/named/data/cache_dump.db";
26         statistics-file "/var/named/data/named_stats.txt";
27         memstatistics-file "/var/named/data/named_mem_stats.txt";
28         allow-query     { allow_query_acl; };
29         allow-recursion { allow_recursion_acl; };
30         allow-transfer  { allow_transfer_acl; };
31         allow-update    { allow_update_acl; };
32 };
33 
34 zone "." IN {
35         type master;  #master
36         file "root.zone";
37 };
# /var/named/root.zone
 1 .      86286   IN      SOA     dns-0.dns.mil.  dns.mail.dns.mil.  2014031100 1800 900 604800 86400
 2 
 3 .                  518400  IN      NS      dns-0.dns.mil.
 4 dns-0.dns.mil.     3600000 IN      A       192.168.31.98
 5 .                          518400  IN      NS      dns-1.dns.mil.
 6 dns-1.dns.mil.     3600000 IN      A       192.168.31.98
 7 
 8 cc.                  600       IN      NS      dns-cc-0.dns.cc.
 9 dns-cc-0.dns.cc.  600  IN      A       192.168.31.3
10 org.      600              IN      NS      dns-org-0.dns.org.
11 dns-org-0.dns.org.  600    IN      A       192.168.31.3
12 
13 ;根域劃分 子域受權

  確認、啓動根DNS服務。

  Step cc & Step org

  目前位置——頂級域DNS服務器Clone 3,192.168.31.3,咱們將cc與org域的DNS服務皆放在Clone 3服務器上,其將擔負頂級域DNS服務器的職能。

  各配置文件以下。

# /etc/named.conf
 1 acl listen_acl
 2 {
 3 any;
 4 };
 5 acl allow_query_acl
 6 {
 7 any;
 8 };
 9 acl allow_recursion_acl
10 {
11 none;
12 };
13 acl allow_transfer_acl
14 {
15 none;
16 };
17 acl allow_update_acl
18 {
19 none;
20 };
21 options
22 {
23         listen-on port 53 { listen_acl; };
24         directory       "/var/named";
25         dump-file       "/var/named/data/cache_dump.db";
26         statistics-file "/var/named/data/named_stats.txt";
27         memstatistics-file "/var/named/data/named_mem_stats.txt";
28         allow-query     { allow_query_acl; };
29         allow-recursion { allow_recursion_acl; };
30         allow-transfer  { allow_transfer_acl; };
31         allow-update    { allow_update_acl; };
32 };
33 zone "." IN {
34         type hint;  #hint
35         file "root.cache";  #指定root DNS服務器的IP地址與FQDN
36 };
37 zone "cc" IN {
38         type master;
39         file "cc.zone";
40 };
41 zone "org" IN {
42         type master;
43         file "org.zone";
44 };
# /var/named/root.cache
1 .                  518400  IN      NS      dns-0.dns.mil.
2 dns-0.dns.mil.     3600000 IN      A       192.168.31.98
3 .                  518400  IN      NS      dns-1.dns.mil.
4 dns-1.dns.mil.     3600000 IN      A       192.168.31.98
# /var/named/cc.zone
 1 $TTL 600
 2 
 3 cc. IN SOA dns-cc-0.dns.cc. dns-cc.mail.dns.cc.  (
 4         2014031001
 5         3H
 6         15M
 7         3D
 8         1D
 9         );
10 
11 cc.             IN      NS      dns-cc-0.dns.cc.
12 dns-cc-0.dns.cc.    IN      A       192.168.31.3
13 
14 eecs.cc.        IN      NS      dns.eecs.cc.
15 dns.eecs.cc.    IN      A       192.168.31.4
# /var/named/org.zone
 1 $TTL 600
 2 
 3 org. IN SOA dns-org-0.dns.org. dns-org.mail.dns.org.  (
 4         2014031001
 5         3H
 6         15M
 7         3D
 8         1D
 9         );
10 
11 org.                    IN      NS      dns-org-0.dns.org.
12 dns-org-0.dns.org.      IN      A       192.168.31.3
13 
14 free.org.       IN      A       192.168.31.3
15 
16 just.org.       IN      NS      dns.just.org.
17 dns.just.org.   IN      A       192.168.31.5

  確認、啓動頂級域DNS服務。

  Step eecs.cc

  目前位置——eecs.cc域DNS服務器Clone4,192.168.31.4。

  各配置文件以下。 

# /etc/named.conf
 1 # /etc/named.conf
 2 acl listen_acl
 3 {
 4 any;
 5 };
 6 acl allow_query_acl
 7 {
 8 any;
 9 };
10 acl allow_recursion_acl
11 {
12 none;
13 };
14 acl allow_transfer_acl
15 {
16 none;
17 };
18 acl allow_update_acl
19 {
20 none;
21 };
22 options
23 {
24         listen-on port 53 { listen_acl; };
25         directory       "/var/named";
26         dump-file       "/var/named/data/cache_dump.db";
27         statistics-file "/var/named/data/named_stats.txt";
28         memstatistics-file "/var/named/data/named_mem_stats.txt";
29         allow-query     { allow_query_acl; };
30         allow-recursion { allow_recursion_acl; };
31         allow-transfer  { allow_transfer_acl; };
32         allow-update    { allow_update_acl; };
33 };
34 
35 zone "." IN {
36         type hint;
37         file "root.cache";
38 };
39 zone "eecs.cc" IN {
40         type master;
41         file "eecs.cc.zone";
42 };
View Code
# /var/named/root.cache
1 ; /var/named/root.cache
2 .                  518400  IN      NS      dns-0.dns.mil.
3 dns-0.dns.mil.     3600000 IN      A       192.168.31.98
4 .                  518400  IN      NS      dns-1.dns.mil.
5 dns-1.dns.mil.     3600000 IN      A       192.168.31.98
View Code
# /var/named/eecs.cc.zone
 1 ; /var/named/eecs.cc.zone
 2 $TTL 600
 3 
 4 eecs.cc. IN SOA dns.eecs.cc. dns.mail.eecs.cc.  (
 5         2014031001
 6         3H
 7         15M
 8         3D
 9         1D
10         );
11 
12 eecs.cc.          IN      NS      dns.eecs.cc.
13 dns.eecs.cc.    IN      A       192.168.31.4
14 
15 eecs.cc.    IN      A       192.168.31.4
16 mail.eecs.cc.   IN      A       192.168.31.4
17 www.eecs.cc.    IN      A       192.168.31.4
18 ftp.eecs.cc.    IN      A       192.168.31.4
19 cs.eecs.cc.             IN      A       192.168.31.4
View Code

  確認、啓動eecs.cc域DNS服務。

  Step just.org

  目前位置——just.org域DNS服務器Clone 5,192.168.31.5。

  各配置文件以下。

# /etc/named.conf
 1 # /etc/named.conf
 2 acl listen_acl
 3 {
 4 any;
 5 };
 6 acl allow_query_acl
 7 {
 8 any;
 9 };
10 acl allow_recursion_acl
11 {
12 none;
13 };
14 acl allow_transfer_acl
15 {
16 none;
17 };
18 acl allow_update_acl
19 {
20 none;
21 };
22 options
23 {
24         listen-on port 53 { listen_acl; };
25         directory       "/var/named";
26         dump-file       "/var/named/data/cache_dump.db";
27         statistics-file "/var/named/data/named_stats.txt";
28         memstatistics-file "/var/named/data/named_mem_stats.txt";
29         allow-query     { allow_query_acl; };
30         allow-recursion { allow_recursion_acl; };
31         allow-transfer  { allow_transfer_acl; };
32         allow-update    { allow_update_acl; };
33 };
34 
35 zone "." IN {
36         type hint;
37         file "root.cache";
38 };
39 zone "just.org" IN {
40         type master;
41         file "just.org.zone";
42 };
View Code
# /var/named/root.cache
1 ; /var/named/root.cache
2 .                  518400  IN      NS      dns-0.dns.mil.
3 dns-0.dns.mil.     3600000 IN      A       192.168.31.98
4 .                  518400  IN      NS      dns-1.dns.mil.
5 dns-1.dns.mil.     3600000 IN      A       192.168.31.98
View Code
# /var/named/just.org.zone
 1 ; /var/named/just.org.zone 
 2 $TTL 600
 3 
 4 just.org. IN SOA dns.just.org. dns.mail.just.org.  (
 5         2014031001
 6         3H
 7         15M
 8         3D
 9         1D
10         );
11 
12 just.org.       IN      NS      dns.just.org.
13 dns.just.org.   IN      A       192.168.31.5
14 
15 www.just.org.   IN      A       192.168.31.5
16 mail.just.org.   IN      A       192.168.31.5
View Code

  認、啓動just.org域DNS服務。

 Step DNS Server

   目前位置——遞歸DNS服務器Clone 6,192.168.31.6,此服務器直接向用戶提供DNS服務。

  配置文件以下。 

# /etc/named.conf
 1 acl listen_acl
 2 {
 3 any;
 4 };
 5 acl allow_query_acl
 6 {
 7 any;
 8 };
 9 acl allow_recursion_acl
10 {
11 any;  # allow_recursion any
12 };
13 acl allow_transfer_acl
14 {
15 none;
16 };
17 acl allow_update_acl
18 {
19 none;
20 };
21 options
22 {
23         listen-on port 53 { listen_acl; };
24         directory       "/var/named";
25         dump-file       "/var/named/data/cache_dump.db";
26         statistics-file "/var/named/data/named_stats.txt";
27         memstatistics-file "/var/named/data/named_mem_stats.txt";
28         allow-query     { allow_query_acl; };
29         allow-recursion { allow_recursion_acl; };
30         allow-transfer  { allow_transfer_acl; };
31         allow-update    { allow_update_acl; };
32 
33 };
34 
35 zone "." IN {
36         type hint;
37         file "root.cache";
38 };
# /var/named/root.cache 
1 ; /var/named/root.cache
2 .                  518400  IN      NS      dns-0.dns.mil.
3 dns-0.dns.mil.     3600000 IN      A       192.168.31.98
4 .                  518400  IN      NS      dns-1.dns.mil.
5 dns-1.dns.mil.     3600000 IN      A       192.168.31.98
View Code

  確認、啓動遞歸DNS服務。

  至此,整個系統構建完成。   

  咱們使用Clone 2主機對咱們的DNS系統進行測試。

  1.編輯/etc/resolv.conf文件,已達到設置系統默認nameserver的目的;

  2.進行測試,結果以下圖:

  附錄:

  基礎資料傳送門:http://www.cnblogs.com/smilenana/p/3414077.html http://www.cnblogs.com/xiaoluo501395377/tag/CentOS/

相關文章
相關標籤/搜索