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

     

  • 相关阅读:
    oracle中 start with .. connect by prior.. 用法简介
    Java中com.jcraft.jsch.ChannelSftp讲解
    linux修改系统时间和linux查看时区、修改时区的方法
    map.containsKey
    Struts2中struts.multipart.maxSize配置
    oracle定时器job的使用
    java的System.getProperty()方法可以获取的值
    夜间模式的开启与关闭,父模板的制作
    开始Flask项目
    完成登录与注册页面的前端
  • 原文地址:https://www.cnblogs.com/SwordTao/p/3600919.html
Copyright © 2020-2023  润新知