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

——引子


  我们的目标很明了——构建一个具有根的、私有的DNS(Domain Name System)。

  这里不会陈述太多关于DNS与BIND的基础知识,如果需要查看一些基础性的文章,文章末尾附录之中有传送门

构建一个完整的DNS系统

  上图摘自《DNS与BIND》中文第四版。

构建一个完整的DNS系统

  上图便是我们整个DNS系统的鸟瞰,您需要特别注意,由于我们整个过程需要启动6个相互关联的、位于GNU/Linux操作系统上的DNS服务器,一个小小的失误,极可能导致最终的失败,所以,在接下来的“游戏”里,您应该时刻知道我们目前处于系统的哪个位置。

构建一个完整的DNS系统

构建一个完整的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

相关文章: