zoukankan      html  css  js  c++  java
  • 搭建DNS服务器

    (1).实验环境

      DNS服务器:youxi1  192.168.5.101

      测试主机:youxi2  192.168.5.102

    (2).DNS资源记录说明

      SOA资源记录(起始授权资源记录):全称Start of Authority Record,定义了域的全局参数,进行整个域的管理设置。每个域在域开头处都包含了一个SOA资源记录,一个域文件只允许存在唯一的SOA记录。

      NS资源记录(域名服务器资源记录):用来指定该域名由哪个DNS服务器来进行解析。每个域在域根处至少包含一个NS记录。

      A资源记录(地址资源记录):用来把FQDN(全限定域名)映射到IP地址,正是因为有此记录DNS服务器才能解析域名对应的IP地址。

      PTR资源记录(指针资源记录):用来把IP地址映射到FQDN,用于反向查询。

      CNAME资源记录(别名资源记录):创建特定的FQDN的别名,隐藏用户网络的实现细节,使客户机无法知道真正的域名。

      MX资源记录(邮件交换资源记录):为DNS域名指定邮件交换服务器。

      邮件交换服务器是为DNS域名处理或转发邮件的主机。处理邮件指把邮件投递到目的地或转交另一不同类型的邮件传送者。转发邮件指把邮件发送到最终目的的服务器,用简单邮件传输协议SMTP把邮件发送给离最终目的地最近的邮件交换服务器,或使邮件经过一定时间的排队

    (3).实验

    1)安装DNS

    [root@youxi1 ~]# yum -y install bind bind-chroot bind-utils
    

      BIND 全称为Berkeley Internet Name Domain(伯克利因特网名称域系统),BIND 主要有三个版本:BIND4、BIND8、BIND9。BIND8版本融合了许多提高效率、稳定性和安全性的技术,而BIND9 增加了一些超前的理念,例如IPv6支持、密钥加密、多处理器支持、线程安全操作、增量区传送等。

      bind包里包含了DNS服务的主程序包。

      bind-chroot包是bind的一个功能包,使bind可以在chroot模式下运行。也就是说bind运行的主目录并不是系统的根目录,只是系统的一个子目录而已。这是为了提高安全性,使得访问的范围仅限于这个子目录。

      bind-utils包是客户端工具,系统默认安装,用于搜索域名指令。

    2)DNS相关配置文件

      /etc/named.conf 是BIND的核心配置文件,它包含了BIND 的基本配置,但其并不包括区域数据。

      /var/named/目录是DNS数据库文件存放目录,每一个域文件都放在这里。

      注意:DNS服务器名是named,端口53用于客户端查询,端口953用于DNS主从同步

    [root@youxi1 ~]# systemctl start named
    [root@youxi1 ~]# systemctl enable named
    [root@youxi1 ~]# netstat -antup | grep named
    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      2347/named          
    tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      2347/named          
    tcp6       0      0 ::1:53                  :::*                    LISTEN      2347/named          
    tcp6       0      0 ::1:953                 :::*                    LISTEN      2347/named          
    udp        0      0 127.0.0.1:53            0.0.0.0:*                           2347/named          
    udp6       0      0 ::1:53                  :::*                                2347/named

    3)配置文件参数

      在/etc/named.conf中大致分为针对全局生效,存放常规设置的options部分;以及针对某个区域,由各个区域设置的zone部分。另外还有logging(日志选项)和acl(访问控制列表)可选。

      去除注释后的/etc/named.conf配置文件如下:

    [root@youxi1 ~]# cat /etc/named.conf 
    options {
    //指定BIND通过哪些网络接口和哪个端口来接收客户端请求。如果省略端口号,则使用默认端口53。127.0.0.1允许接收来自本地的请求。如果完全省略此项或网络接口是any,则默认使用所有端口。
            listen-on port 53 { 127.0.0.1; };
    //指定BIND通过哪个端口监听IPv6客户端请求。IPv6,服务器只接受通配符地址,any和none。
            listen-on-v6 port 53 { ::1; };
    //BIND可以在该目录中找到包含区域数据的文件
            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";
            recursing-file  "/var/named/data/named.recursing";
            secroots-file   "/var/named/data/named.secroots";
    //定义客户端可以自此发送DNS请求的网络。可以用地址信息(192.168.5.101/24)替换或使用any替换
            allow-query     { localhost; };
            recursion yes;
            dnssec-enable yes;
            dnssec-validation yes;
            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";  //区域文件,需要手动创建。范例文件为named.localhost
    };
    
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";
    

      type字段指定区域的类型,对于区域的管理至关重要,一共分为5种:

      master:主DNS服务器,拥有区域数据文件,并对此区域提供管理数据。

      slave:辅助DNS服务器,拥有主DNS服务器的区域数据文件的副本,服务器DNS服务器会从主DNS服务器同步所有区域数据。

      stub:stub区域与slave区域类似,但只复制主DNS服务器上的NS记录,而不像slave会复制所有区域数据

      forward:转发配置域

      hint:根域服务器的初始化使用的参数

    4)搭建内网DNS服务器

      备份DNS服务器的配置文件/etc/named.conf

    [root@youxi1 ~]# cp /etc/named.conf /etc/named.conf.bak

      修改DNS服务器的配置文件/etc/named.conf

    [root@youxi1 ~]# cat /etc/named.conf
    options {
            listen-on port 53 { any; };  //修改为
            listen-on-v6 port 53 { any; };  //修改为any
            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";
            recursing-file  "/var/named/data/named.recursing";
            secroots-file   "/var/named/data/named.secroots";
            allow-query     { any; };
            recursion yes;
            dnssec-enable yes;
            dnssec-validation yes;
            dnssec-lookaside auto;  //添加此行
            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 "test.cn" IN {  //区域名称改为test.cn
            type master;  //区域类型为主DNS服务器
            file "test.cn.zone";  //区域文件,需要手动创建。范例文件为named.localhost
    };
    
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";
    

      创建区域文件,修改权限,并进行修改

    //-a选项保留源文件的权限
    [root@youxi1 ~]# cp -a /var/named/named.localhost /var/named/test.cn.zone
    -rw-r----- 1 root named 257 5月 20 17:13 /var/named/test.cn.zone
    [root@youxi1 ~]# vim /var/named/test.cn.zone
    $TTL 1D  //设置有效地址解析记录的默认缓存时间,默认为1天
    //test.cn.也可以使用@,表示当前的域
    //dns.test.cn.该域的主域名
    //root.test.cn.管理员邮件地址
    test.cn.        IN SOA  dns.test.cn. root.test.cn. (
    //更新序列号,用于标示数据库的变换,可以在10位以内。如果存在辅助DNS区域,建议每次更新完数据库,手动加1
                                            0       ; serial
    //刷新时间,从域名服务器更新该地址数据库文件的间隔时间,默认为1天
                                            1D      ; refresh
    //重试延时,从域名服务器更新地址数据库失败后,等待多长时间,默认为1小时
                                            1H      ; retry
    //到期失效时间,超过改时间人无法更新地址数据库,那么不再尝试,默认为1周
                                            1W      ; expire
    //无效地址解析记录默认缓存时间(该数据库中不存在的地址),默认为3小时。
                                            3H )    ; minimum
    test.cn.        NS      dns.test.cn.
    dns.test.cn.    A       192.168.5.101
    www.test.cn.    A       192.168.5.101
    cname.test.cn.  CNAME   www.test.cn.

      重启DNS服务器

    [root@youxi1 ~]# systemctl restart named
    

      到测试主机youxi2上修改DNS地址和网卡信息,然后重启网络服务

    [root@youxi2 ~]# vim /etc/resolv.conf
    # Generated by NetworkManager
    nameserver 192.168.5.101
    [root@youxi2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="none"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="yes"
    NAME="ens33"
    UUID="a12d9bb2-85cb-4db0-9b94-e4ed3baa6470"
    DEVICE="ens33"
    ONBOOT="yes"
    IPADDR="192.168.5.102"
    PREFIX="24"
    GATEWAY="192.168.5.2"
    DNS1="192.168.5.101"
    [root@youxi2 ~]# systemctl restart network

      最后测试

    [root@youxi2 ~]# ping www.test.cn
    PING www.test.cn (192.168.5.101) 56(84) bytes of data.
    64 bytes from youxi1.cn (192.168.5.101): icmp_seq=1 ttl=64 time=2.73 ms
    64 bytes from youxi1.cn (192.168.5.101): icmp_seq=2 ttl=64 time=0.423 ms
    ^C
    --- www.test.cn ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1002ms
    rtt min/avg/max/mdev = 0.423/1.581/2.739/1.158 ms
    [root@youxi2 ~]# ping cname.test.cn
    PING www.test.cn (192.168.5.101) 56(84) bytes of data.
    64 bytes from youxi1.cn (192.168.5.101): icmp_seq=1 ttl=64 time=4.39 ms
    64 bytes from youxi1.cn (192.168.5.101): icmp_seq=2 ttl=64 time=0.414 ms
    ^C
    --- www.test.cn ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1001ms
    rtt min/avg/max/mdev = 0.414/2.405/4.396/1.991 ms
    [root@youxi2 ~]# ping dns.test.cn  
    PING dns.test.cn (192.168.5.101) 56(84) bytes of data.
    64 bytes from youxi1.cn (192.168.5.101): icmp_seq=1 ttl=64 time=2.81 ms
    64 bytes from youxi1.cn (192.168.5.101): icmp_seq=2 ttl=64 time=0.388 ms
    ^C
    --- dns.test.cn ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1001ms
    rtt min/avg/max/mdev = 0.388/1.601/2.814/1.213 ms
    

      

  • 相关阅读:
    使用PHP QR Code生成二维码
    thinkphp伪静态(url重写)
    jQuery Ajax 实例 ($.ajax、$.post、$.get)
    php各种编码集详解和以及在什么情况下进行使用
    PHP无限极分类生成树方法,无限分级
    PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)
    Js获取当前日期时间及其它操作
    Spring源码解读Spring IOC原理
    java多线程系列六、线程池
    springMVC中ajax的实现
  • 原文地址:https://www.cnblogs.com/diantong/p/10893129.html
Copyright © 2011-2022 走看看