構建一個完整的DNS系統


 

  人心不同 各如其面 如之奈何 如之奈何

——引子


  我們的目標很明了——構建一個具有根的、私有的DNS(Domain Name System)。

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

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

  上圖便是我們整個DNS系統的鳥瞰,您需要特別注意,由於我們整個過程需要啟動6個相互關聯的、位於GNU/Linux操作系統上的DNS服務器,一個小小的失誤,極可能導致最終的失敗,所以,在接下來的“游戲”里,您應該時刻知道我們目前處於系統的哪個位置。

  此次實驗共有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。

  下面,我們便開始此次游歷。

  Step root:

  目前位置——服務器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/  

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM