您的位置:新葡亰496net > 服务器网络 > Linux基础之DNS服务器第一篇,6的核心DNS服务器搭

Linux基础之DNS服务器第一篇,6的核心DNS服务器搭

发布时间:2019-09-23 02:38编辑:服务器网络浏览(194)

    Google今天沉重的打击了OpenDNS:他们刚刚宣布向所有的互联网用户提供一组快速,安全并且完全免费的DNS解析服务器,地址分别是:

    简介

    • DNS服务器牵扯到家庭,企业,公司,国家等等领域,只要是互联网不必须就要用到他
    • DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器
    • DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名
    • 这一篇我讲演示DNF服务器搭建
    • 第二篇主要讲的是根服务器和COM服务器的搭建,并和其他DNS服务器通信的演示
    • 那我们开始

    RedHat6.3配置DNS服务器

    新葡亰496net 1

    1 系统环境

    OS:Red Hat Enterprise Linux Server release 6.3 (Santiago)

    DNS 服务器:172.21.20.1/255.255.0.0

    2 安装DNS

    # yum -y install bind 
    

    3 配置DNS

    3.1 开始配置DNS主配置文件 named.conf

    编辑 /etc/named.conf 配置文件,添加一个域

    options {  listen-on port 53 { 172.21.20.1; };  listen-on-v6 port 53 { ::1; };  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";  allow-query { localhost; };  recursion yes;  dnssec-enable yes;  dnssec-validation yes;  dnssec-lookaside auto;  /* Path to ISC DLV key */  bindkeys-file "/etc/named.iscdlv.key";  managed-keys-directory "/var/named/dynamic";  };  logging {  channel default_debug {  file "data/named.run";  severity dynamic;  };  };  zone "." IN {  type hint;  file "named.ca";  };  zone "aaa.com" IN {  type master; #master表示主域名服务器  file "aaa.com.zone"; #解析aaa.com域记录的文件名  allow-update { none; };  };  zone "20.21.172.in-addr.arpa" {  type master;  file "20.21.172.ptr";  allow-update { none; };  };   include "/etc/named.rfc1912.zones";  include "/etc/named.root.key"; 
    

    3.2 配置域的正向解析文件

    根据上面DNS主配置文件的配置,正向解析文件位置在 /var/named目录下

    利用bind提供的模版文件我们创建aaa.com.zone,提供了两个模版文件

    • 正向解析模版named.localhost;
    • 反向解析模版named.loopback;
    # cp named.localhost aaa.com.zone 
    

    编辑/var/named/aaa.com.zone文件

    $TTL 1D  @ IN SOA dns.aaa.com. root.aaa.com. (  0 ; serial  1D ; refresh  1H ; retry  1W ; expire  3H ) ; minimum  @ IN NS dns.aaa.com.  dns IN A 172.21.20.1  www IN A 172.21.20.1  test IN A 172.21.20.1 
    

    注意:这里用的都是全域名,后面都有一个 . 符号。

    3.3 配置域的反向解析文件

    # cp named.loopback 20.21.172.ptr 
    

    编辑 /var/named/20.21.172.ptr文件

    $TTL 1D  @ IN SOA dns.aaa.com. root.aaa.com. (  0 ; serial  1D ; refresh  1H ; retry  1W ; expire  3H ) ; minimum  @ IN NS dns.aaa.com.  1 IN PTR dns.aaa.com.  1 IN PTR www.aaa.com. 
    

    3.4 确保/var/named目录下所有dns记录文件属组为named

    # ll  total 36  -rw-r----- 1 root named 176 Aug 14 12:01 20.21.172.ptr  -rw-r----- 1 root named 218 Aug 14 10:57 aaa.com.zone 
    

    说明:只要保证属组是named就可以了,属主是root或named不影响。

    重启DNS服务

    # /etc/init.d/named restart  Stopping named: .[ OK ]  Starting named: [ OK ] 
    

    设置开机自动启动

    # chkconfig named on 
    

    4 测试

    # vi /etc/resolv.conf   nameserver 172.21.20.1  # ping www.aaa.com  PING www.aaa.com (172.21.20.1) 56(84) bytes of data.  64 bytes from localhost (172.21.20.1): icmp_seq=1 ttl=64 time=0.016 ms  64 bytes from localhost (172.21.20.1): icmp_seq=2 ttl=64 time=0.021 ms 
    

    结果返回172.21.20.1地址说明我们本地的DNS服务可以正常解析了。

    # ping www.baidu.com  PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.  64 bytes from 119.75.217.56: icmp_seq=1 ttl=51 time=4.61 ms  64 bytes from 119.75.217.56: icmp_seq=2 ttl=51 time=4.04 ms 
    

    也可以代解析互联网其他服务器

    4.1 测试正向解析

    # nslookup  > www.aaa.com  Server: 172.21.20.1  Address: 172.21.20.1#53  Name: www.aaa.com  Address: 172.21.20.1 
    

    4.2 测试反向解析

    # nslookup   > 172.21.20.1  Server: 172.21.20.1  Address: 172.21.20.1#53  1.20.21.172.in-addr.arpa name = dns.aaa.com. 
    

    5 案例1:公司内网DNS服务器添加解析互联网域名的记录

    需求:

    公司内部服务器需要一台内网的DNS服务器,用来帮助解析互联网的域名。

    原理:

    互联网的域名管理都是由各自的NS记录指向的DNS服务器管理的。我们不能直接在内网DNS服务器上添加A记录,我们必须添加这些域名的NS记录,这样每当内网客户机通过内网的DNS查询时,内网DNS首先去找管理这些域名的DNS询问对应的IP地址,然后在返回给客户机。

    5.1 DNS正向解析常见记录样例

    [domain] IN [RR type] [RR data] 
    

    主机名称. IN A IPv4 的 IP 位址

    主机名称. IN AAAA IPv6 的 IP 位址

    领域名称. IN NS 管理这个域名的DNS服务器主机名字. 例如cns2.icbc.com.cn.)

    领域名称. IN SOA 管理這個领域名称的起始授权的DNS名字.

    领域名称. IN MX 优先级 邮件服务器的主机名字.

    新葡亰496net,主机别名. IN CNAME 实际代表这个主机别名的主机名字.

    5.2 如何获得互联网域名由哪台DNS服务器提供解析

    举例说明,我们想知道中国银行域名 www.boc.cn 由哪个DNS服务提供,我们需要查询这个域名所在的NS记录。查询的时候,我们得输入全域名即 www.boc.cn才行。使用下面的命令查询

    # dig -t ns www.boc.cn  ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> -t ns www.boc.cn  ;; global options:  cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4595  ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0  ;; QUESTION SECTION:  ;www.boc.cn. IN NS  ;; AUTHORITY SECTION:  boc.cn. 3551 IN SOA ns3.boc.cn. hostmaster.ns3.boc.cn. 2013081996 10800 3600 604800 86400  ;; Query time: 0 msec  ;; SERVER: 172.21.20.1#53(172.21.20.1)  ;; WHEN: Thu Aug 14 16:40:33 2014  ;; MSG SIZE rcvd: 79 
    

    说明:我们查到www.boc.cn域名的SOA记录是 ns3.boc.cn,这个就是提供www.boc.cn解析的主DNS服务器的名字。

    5.3 配置内网DNS

    1. 编辑/etc/named.conf,添加一个ns.com域

      zone "ns.com" IN {  type master;  file "ns.com.zone";  allow-update { none; };  }; 

    2. 编辑 /var/named/ns.com.zone文件,添加不同域名的NS记录

      $TTL 1D  @ IN SOA dns.ns.com. root.ns.com. (  0 ; serial  1D ; refresh  1H ; retry  1W ; expire  3H ) ; minimum  @ IN NS dns.ns.com.  dns IN A 172.21.20.1  www.95599.cn IN NS ns1.shdc.95599.cn.  corporbank.icbc.com.cn IN NS cns2.icbc.com.cn.  ebspay.boc.cn IN NS ns3.boc.cn.  www.cebbank.com IN NS dns3.cebbank.com.  unionpaysecure.com IN NS ns1.dnsv5.com.  bjportal.zqpay.com IN NS dns17.hichina.com.  www.boc.cn IN NS ns3.boc.cn. 

    配置好后,不需要重启named服务即可生效。

    5.4 测试

    # vi /etc/resolv.conf   nameserver 172.21.20.1  # ping www.95599.cn  PING www.shdc.95599.cn (124.74.251.240) 56(84) bytes of data.  64 bytes from 124.74.251.240: icmp_seq=1 ttl=239 time=25.2 ms  64 bytes from 124.74.251.240: icmp_seq=2 ttl=239 time=25.5 ms 
    

    表示可以成功解析。

    6 FAQ

    6.1 反向解析时,提示“server can't find xxxx: SERVFAIL”错误,如何处理?

    现象如下所示:

    # nslookup   > 172.21.20.1  Server: 172.21.20.1  Address: 172.21.20.1#53   ** server can't find 1.20.21.172.in-addr.arpa: SERVFAIL 
    

    分析:首先我们查看named.conf文件是否配置正确。然后检查 /var/named/目录下是否存在反向解析文件。最后检查/var/named目录下的解析文件的属组是否是named,如果不是named,DNS服务是没有权限读取这个文件的,也会提示can’t find 的错误。

    解决:果然是因为该文件的属组不是named导致的问题。

    6.2 客户机使用DNS无法解析

    客户机配置了/etc/resolv.conf文件,但是却无法提供解析

    # cat /etc/resolv.conf   nameserver 172.21.20.1 
    

    现象:解析测试失败,内容如下

    # nslookup  > www.sina.com  Server: 172.21.20.1  Address: 172.21.20.1#53  ** server can't find www.sina.com: REFUSED 
    

    分析:查看DNS的messages日志,显示如下:

    Aug 18 11:29:31 Monitor named[9161]: client 172.21.20.2#36810: query (cache) 'quit/A/IN' denied 
    

    估计是DNS配置了某种解析限制,查看/etc/named.conf文件,修改下面的部分

    options {  listen-on port 53 { 172.21.20.1; };  listen-on-v6 port 53 { ::1; };  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";  allow-query { localhost; }; 改成 allow-query { any; };  recursion yes;  dnssec-enable yes;  dnssec-validation yes;  dnssec-lookaside auto;  /* Path to ISC DLV key */  bindkeys-file "/etc/named.iscdlv.key";  managed-keys-directory "/var/named/dynamic";  }; 
    

    重启BIND服务

    # /etc/init.d/named restart  Stopping named: .[ OK ]  Starting named: [ OK ] 
    

    再次测试客户机的解析,一切正常了。

    # nslookup  > www.sina.com  Server: 172.21.20.1  Address: 172.21.20.1#53  Non-authoritative answer:  www.sina.com canonical name = us.sina.com.cn.  us.sina.com.cn canonical name = wwwus.sina.com.  Name: wwwus.sina.com  Address: 12.130.132.30 
    

    1 系统环境 OS : Red Hat Enterprise Linux Server release 6.3 (Santiago) DNS 服务器: 172.21.20.1/255.255.0.0 2 安装 DNS #yum-yinstallbind 3 配...

    DNS服务器配置

    基于CentOS 6的主从DNS服务器搭建

    1、切换至root用户

    2、两台服务器分布安装bind

    yuminstallbind
    

    3、对比两台服务器bind版本

     

    4、修改主配置文件信息,建议将主配置文件备份后在进行修改。

    cp/etc/named.conf/etc/named.conf.bak
    vi/etc/named.conf
    options{
     listen-onport53{127.0.0.1;};//只监听本机53端口
     listen-on-v6port53{::1;};
     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";
     allow-query{localhost;};//只允许本机递归查询
     recursionyes;
    
     dnssec-enableyes;
     dnssec-validationyes;
     dnssec-lookasideauto;
    
     /*PathtoISCDLVkey*/
     bindkeys-file"/etc/named.iscdlv.key";
    
     managed-keys-directory"/var/named/dynamic";
    };
    

    默认只监听本机的53端口,若要提供服务,最少应增加一个外网地址53端口的监听,并允许所有用户进行递归查询。并且注释所有的dnssec。

    vi/etc/named.conf
    options{
     listen-onport53{192.168.0.15;127.0.0.1;};//增加监听地址,此处添加本机外网地址即可
     listen-on-v6port53{::1;};
     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";
     allow-query{any;};//允许所有
     recursionyes;
    
    // dnssec-enableyes;
    // dnssec-validationyes;
    // dnssec-lookasideauto;
    
     /*PathtoISCDLVkey*/
    // bindkeys-file"/etc/named.iscdlv.key";
    //
    // managed-keys-directory"/var/named/dynamic";
    };
    

    5、查看本服务器53端口的监听情况

    [[email protected]~]#ss-tunlp|grep:53
    udpUNCONN00192.168.0.15:53*:*users:(("named",4387,513))
    udpUNCONN00127.0.0.1:53*:*users:(("named",4387,512))
    udpUNCONN00::1:53:::*users:(("named",4387,514))
    tcpLISTEN03::1:53:::*users:(("named",4387,22))
    tcpLISTEN03192.168.0.15:53*:*users:(("named",4387,21))
    tcpLISTEN03127.0.0.1:53*:*users:(("named",4387,20))
    

    以上操作针对主从两台服务器配置相同。

    6、主DNS服务器配置:

    定义区域:

    [[email protected]~]#cat/etc/named.rfc1912.zones
    
    zone"armo.com"IN{
     typemaster;
     file"armo.com.zone";
    };//正向区域
    
    zone"0.168.192.in-addr.arpa"IN{
     typemaster;
     file"192.168.0.zone";
    };//反向区域
    

    定义区域解析库文件:

    [[email protected]~]#cat/var/named/armo.com.zone
    $TTL1d
    @ IN SOA ns1.armo.com. admin.armo.com(
       2016020301
       1H
       5M
       7D
       1D)
     IN NS ns1.armo.com.
     IN NS ns2.armo.com.
     IN MX 10 mx1.armo.com.
     IN MX 20 mx2.armo.com.
    ns1 IN A 192.168.0.1
    ns2 IN A 192.168.0.17
    mx1 IN A 192.168.0.4
    mx2 IN A 192.168.0.1
    www IN A 192.168.0.17//正向解析库文件
    
    [[email protected]~]#cat/var/named/192.168.0.zone
    $TTL1d
    $ORIGIN0.168.192.in-addr.arpa.
    @ IN SOA ns1.armo.com. admin.armo.com.(
       2016020301
       1H
       5M
       7D
       1D)
     IN NS ns1.armo.com.
     IN NS ns2.armo.com.
    1 IN PTR ns1.armo.com.
    17 IN PTR www.armo.com.
    4 IN PTR mx1.armo.com.
    1 IN PTR mx2.armo.com.
    17 IN PTR ns2.armo.com. //反向解析库文件
    

    检查是否有语法错误

    name-checkconf//检查主配置文件是否有语法错误
    named-checkzone"armo.com"/var/named/armo.com.zone//检查区域配置文件
    

    更改文件权限及属组

    [[email protected]]#chmod640armo.com.zone
    [[email protected]]#chown:namedarmo.com.zone//正向
    
    [[email protected]]#chmod640192.168.0.zone
    [[email protected]]#chown:named192.168.0.zone//反向
    

    测试主DNS服务器解析:

    [[email protected]~][email protected]
    
    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.6<<>>[email protected]
    ;;globaloptions: cmd
    ;;Gotanswer:
    ;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:52591
    ;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:2,ADDITIONAL:2
    
    ;;QUESTIONSECTION:
    ;www.armo.com.   IN A
    
    ;;ANSWERSECTION:
    www.armo.com.  86400 IN A 192.168.0.17
    
    ;;AUTHORITYSECTION:
    armo.com.  86400 IN NS ns2.armo.com.
    armo.com.  86400 IN NS ns1.armo.com.
    
    ;;ADDITIONALSECTION:
    ns1.armo.com.  86400 IN A 192.168.0.1
    ns2.armo.com.  86400 IN A 192.168.0.17
    
    ;;Querytime:2msec
    ;;SERVER:192.168.0.15#53(192.168.0.15)
    ;;WHEN:WedFeb306:01:382016
    ;;MSGSIZErcvd:114//正向
    
    [[email protected]~][email protected]
    
    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.6<<>>[email protected]
    ;;globaloptions: cmd
    ;;Gotanswer:
    ;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:63940
    ;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:0,ADDITIONAL:0
    
    ;;QUESTIONSECTION:
    ;4.0.168.192.in-addr.arpa. IN PTR
    
    ;;ANSWERSECTION:
    4.0.168.192.in-addr.arpa.86400 IN PTR localhost.
    
    ;;Querytime:29msec
    ;;SERVER:192.168.216.231#53(192.168.216.231)
    ;;WHEN:WedFeb306:03:422016
    ;;MSGSIZErcvd:65//反向
    

    7、从DNS服务器配置

    测试与主DNS服务器的区域传送

    [[email protected]~][email protected]
    
    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.6<<>>[email protected]
    ;;globaloptions: cmd
    armo.com.  86400 IN SOA ns1.armo.com.admin.armo.com.armo.com.2016020301360030060480086400
    armo.com.  86400 IN NS ns1.armo.com.
    armo.com.  86400 IN NS ns2.armo.com.
    armo.com.  86400 IN MX 10mx1.armo.com.
    armo.com.  86400 IN MX 20mx2.armo.com.
    mx1.armo.com.  86400 IN A 192.168.0.4
    mx2.armo.com.  86400 IN A 192.168.0.1
    ns1.armo.com.  86400 IN A 192.168.0.1
    ns2.armo.com.  86400 IN A 192.168.0.17
    www.armo.com.  86400 IN A 192.168.0.17
    armo.com.  86400 IN SOA ns1.armo.com.admin.armo.com.armo.com.2016020301360030060480086400
    ;;Querytime:21msec
    ;;SERVER:192.168.0.15#53(192.168.0.15)
    ;;WHEN:WedFeb306:04:402016
    ;;XFRsize:11records(messages1,bytes273)
    

    定义区域

    [[email protected]~]#cat/etc/named.rfc1912.zones
    zone"armo.com"IN{
    typeslave;
    masters{192.168.0.15;};
    file"slave/armo.com.zone";
    }
    

    启动服务

    servicenamedstart
    

    查看同步信息

    [[email protected]~]#tail/var/log/messages
    Feb306:20:42localhostnamed[15085]:zone1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN:loadedserial0
    Feb306:20:42localhostnamed[15085]:zonelocalhost.localdomain/IN:loadedserial0
    Feb306:20:42localhostnamed[15085]:zonelocalhost/IN:loadedserial0
    Feb306:20:42localhostnamed[15085]:managed-keys-zone./IN:loadedserial2
    Feb306:20:42localhostnamed[15085]:running
    Feb306:20:42localhostnamed[15085]:zonearmo.com/IN:Transferstarted.
    Feb306:20:42localhostnamed[15085]:transferof'armo.com/IN'from192.168.0.15#53:connectedusing192.168.0.17#43758
    Feb306:20:42localhostnamed[15085]:zonearmo.com/IN:transferredserial2016020301
    Feb306:20:42localhostnamed[15085]:transferof'armo.com/IN'from192.168.0.15#53:Transfercompleted:1messages,11records,273bytes,0.001secs(273000bytes/sec)
    Feb306:20:42localhostnamed[15085]:zonearmo.com/IN:sendingnotifies(serial2016020301)
    
    
    [[email protected]~]#cat/var/named/slaves/armo.com.zone
    $ORIGIN.
    $TTL86400 ;1day
    armo.com  INSOA ns1.armo.com.admin.armo.com.armo.com.(
        2016020301;serial
        3600;refresh(1hour)
        300;retry(5minutes)
        604800;expire(1week)
        86400;minimum(1day)
        )
       NS ns1.armo.com.
       NS ns2.armo.com.
       MX 10mx1.armo.com.
       MX 20mx2.armo.com.
    $ORIGINarmo.com.
    mx1   A 192.168.0.4
    mx2   A 192.168.0.1
    ns1   A 192.168.0.1
    ns2   A 192.168.0.17
    www   A 192.168.0.17
    [[email protected]~]#
    

    至此DNS主从服务器建设完毕。

    6的主从DNS服务器搭建 1、切换至root用户 2、两台服务器分布安装bind yuminstallbind 3、对比两台服务器bind版本 4、修改主配置文件信息...

    新葡亰496net 2新葡亰496net 3 

    DNS域名和DNS域名结构

    新葡亰496net 4

    名称 代表意义
    com 公司、行号、企业
    org 组织、机构
    edu 教育单位
    gov 政府单位
    net 网络、通信
    mil 军事单位
    • 根域
      • 服务器主要用来管理互联网的主目录,全世界只有13台(这13台根域名服务器名字分别为“A”至“M”),1个为主根服务器在美国
      • 其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本
    • 一级域名:Top Level Domain: tld
      • com, edu, mil, gov, net, org, int,arpa
      • 一级域名中只含有一个“.”,且“.”左边要有内容字段。一级域名又被称为顶级域名
    • 三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
    • 二级域名
      • 二级域名的权重高于二级目录,二级域名是作为一个独立的域名出现在互联网上,而二级目录是以网站子页面出现的,所以很多人认为两者之间的权重相同,这种认识是错误的
      • 很多人都误把带www当成一级域名,把其他前缀的当成二级域名,是错误的。正确的域名划分为:
      • .com 顶级域名
      • baidu.com 一级域名
      • www.baidu.com 二级域名
      • bbs.baidu .com 二级域名
      • tieba.baidu .com 二级域名
    • 三级域名
      • 三级域名是形如“www.beiji.baidu.com”的域名,可以当做是二级域名的子域名,特征为域名包含三个“.”,一般来说,三级域名都是免费的
    • 最多127级域名
      • arpa是一个特殊的域名
    • 他用于,域名的反向解析

    一、DNS概述:DNS 是域名系统 (Domain Name System) 的缩写,是一种组织域层次结构的计算机和网络服务命名系统。它的作用是:把域名转换成为网络可以识别的 IP 地址,查询结果保存起来,并告诉给客户端。

    8.8.8.8
    8.8.4.4
    我想这组ip看过后没有人会忘记吧?各位读者们,可以去换一下DNS服务器试一试。

    DNS原理

    • 比如说我想访问一个网站,你的网卡指定了DNS,一般电信或联通,铁通等等的技术员,会给网卡配他们的DNS服务器的
    • 电脑会发出一个信号,这个信号就是发给你指定的DNS服务器的,这个信号就是你想访问的这个网站
    • 但是这个DNS服务器正好里面没有这条记录,他会去找根服务器
    • 根服务器里面存放的是所有的,顶级域名服务器的DNS,如.com,.cn
    • 根里面就没有这个地址,但是他会推荐你去找个哪个顶级域名结尾的服务器如.com结尾的DNS服务器
    • 结果你电脑又去找.comDNS服务器,如果你是二级域名的话就找到了,如果你是三级域名那还要继续找下去
    • 但是他只是知道他的IP,并不是这个网站的服务器,你会跟着这个IP找到这个IP的DNS服务器
    • 最后就是找到了,因为这个DNS服务器肯定知道他服务器的IP,最后你们就可以握手,通信了
    • 不过我们电脑都会有连个DNS服务器IP,就算一个坏了我们一样可以请求找另外一个DNS服务器

    二、DNS查询过程

    1. 图文:轻松搞定DNS服务器组建
    2. DNS服务器? 谁在导演“断网门”
    3. Windows Server 2008 DNS服务器新增功能

    DNS解析

    • DNS查询类型:
      • 递归查询 :递归说简单点就是,负责到底都是他一个人,获取到最终结果
      • 迭代查询 : 迭代的意思就是,你问他问题他帮你推荐一个人叫你去问别人问题
    • 名称服务器:域内负责解析本域内的名称的主机
      • 根服务器:13组服务器
      • 中9个在美国,
      • 欧洲2个,位于英国和瑞典
      • 亚洲1个位于日本
    • 解析类型:
      • FQDN --> IP
      • IP --> FQDN
      • 注意:正反向解析是两个不同的名称空间,是两棵不同的解析树

    DNS的查询过程是指在客户端是通过DNS服务器将一个IP地址转化为一个FQDN、将一个FQDN转化为一个IP地址或查询一个区域的邮件服务器的过程。

    8.8.8.8...

    BIND等DNS软件

    • 提醒DNS服务的有很多种软件
    • Linux基础之DNS服务器第一篇,6的核心DNS服务器搭建。其中用的最多的还是BIND
    • BIND是伯克利大学发布的一款软件
    • 最近新的来代替BIND的软件,叫unbound
    • 我们在这里安装的还是BIND,首先我们来看看他的安装包
    [root@localhost ~]# yum info bind
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Available Packages
    Name        : bind
    Arch        : x86_64
    Epoch       : 32
    Version     : 9.9.4    <<<版本
    Release     : 37.el7
    Size        : 1.8 M
    Repo        : bash
    Summary     : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server
    URL         : http://www.isc.org/products/BIND/   <<官方网站
    License     : ISC
    Description : BIND (Berkeley Internet Name Domain) is an implementation of the DNS
                : (Domain Name System) protocols. BIND includes a DNS server (named),
                : which resolves host names to IP addresses; a resolver library
                : (routines for applications to use when interfacing with DNS); and
                : tools for verifying that the DNS server is operating properly.
    
    • 我们也来看看unbound,因为刚出来市场上反应好像不是很大,因为太新
    [root@localhost ~]# yum info unbound
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Available Packages
    Name        : unbound
    Arch        : x86_64
    Version     : 1.4.20   <<版本
    Release     : 28.el7
    Size        : 473 k
    Repo        : bash
    Summary     : Validating, recursive, and caching DNS(SEC) resolver
    URL         : http://www.nlnetlabs.nl/unbound/   <<官方网站
    License     : BSD
    Description : Unbound is a validating, recursive, and caching DNS(SEC) resolver.
                : 
                : The C implementation of Unbound is developed and maintained by NLnet
                : Labs. It is based on ideas and algorithms taken from a java prototype
                : developed by Verisign labs, Nominet, Kirei and ep.net.
                : 
                : Unbound is designed as a set of modular components, so that also
                : DNSSEC (secure DNS) validation and stub-resolvers (that do not run
                : as a server, but are linked into an application) are easily possible.
    
    • dnsmasq,也提供了一些简单的DNS服务和DHCP服务
    [root@localhost ~]# yum info dnsmasq
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Installed Packages
    Name        : dnsmasq
    Arch        : x86_64
    Version     : 2.66
    Release     : 21.el7
    Size        : 464 k
    Repo        : installed
    From repo   : anaconda
    Summary     : A lightweight DHCP/caching DNS server
    URL         : http://www.thekelleys.org.uk/dnsmasq/
    License     : GPLv2
    Description : Dnsmasq is lightweight, easy to configure DNS forwarder and DHCP server.
                : It is designed to provide DNS and, optionally, DHCP, to a small network.
                : It can serve the names of local machines which are not in the global
                : DNS. The DHCP server integrates with the DNS server and allows machines
                : with DHCP-allocated addresses to appear in the DNS with names configured
                : either in each host or in a central configuration file. Dnsmasq supports
                : static and dynamic DHCP leases and BOOTP for network booting of diskless
                : machines.
    

    1.按查询方式分类DNS查询

    Linux基础之DNS服务器第一篇,6的核心DNS服务器搭建。DNS服务器搭建

    • 接下来我将配置DNS服务器
    • 我是在CentOS7.3上面演示的那我们开始
    • 当然在开始之前先运行下yum repolist查看下下yum源是否正常
    • 还要在做实验之前先把防火墙和SElinux全给关了以免出问题
    • 首先安装bind,运行命令yum -y install bind
    [root@localhost ~]# yum -y install bind
    Total                                                                                                                                                         20 MB/s | 2.8 MB  00:00:00     
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : 32:bind-libs-9.9.4-37.el7.x86_64                                                                                                                                          1/2 
      Installing : 32:bind-9.9.4-37.el7.x86_64                                                                                                                                               2/2 
      Verifying  : 32:bind-9.9.4-37.el7.x86_64                                                                                                                                               1/2 
      Verifying  : 32:bind-libs-9.9.4-37.el7.x86_64                                                                                                                                          2/2 
    
    Installed:
      bind.x86_64 32:9.9.4-37.el7                                                                                                                                                                
    
    Dependency Installed:
      bind-libs.x86_64 32:9.9.4-37.el7                                                                                                                                                           
    
    Complete!
    
    • 在运行rpm -ql bind,看一下他的文件列表
    [root@localhost ~]# rpm -ql bind
    /etc/logrotate.d/named
    /etc/named
    /etc/named.conf     <<配置文件
    /etc/named.iscdlv.key
    /etc/named.rfc1912.zones
    /etc/named.root.key
    /etc/rndc.conf  
    /etc/rndc.key
    /etc/rwtab.d/named
    /etc/sysconfig/named
    /run/named
    /usr/lib/systemd/system/named-setup-rndc.service
    /usr/lib/systemd/system/named.service
    /usr/lib/tmpfiles.d/named.conf
    /usr/lib64/bind
    /usr/libexec/generate-rndc-key.sh
    /usr/sbin/arpaname
    /usr/sbin/ddns-confgen
    /usr/sbin/dnssec-checkds
    /usr/sbin/dnssec-coverage
    /var/log/named.log   <<日志
    /var/log/named.log
    /var/named
    /var/named/data
    /var/named/dynamic
    /var/named/named.ca   << 世界十三个根服务器地址
    /var/named/named.empty
    /var/named/named.localhost
    /var/named/named.loopback
    /var/named/slaves
    
    • 我们去用命令,cat /var/named/named.ca进去看下
    ;; ADDITIONAL SECTION:
    a.root-servers.net. 3600000 IN  A   198.41.0.4   <<ipv4地址 这个地址在美国,可以把IP粘贴到百度上可以查出来
    a.root-servers.net. 3600000 IN  AAAA    2001:503:ba3e::2:30   <<ipv6地址
    b.root-servers.net. 3600000 IN  A   192.228.79.201
    c.root-servers.net. 3600000 IN  A   192.33.4.12
    d.root-servers.net. 3600000 IN  A   199.7.91.13
    d.root-servers.net. 3600000 IN  AAAA    2001:500:2d::d
    e.root-servers.net. 3600000 IN  A   192.203.230.10
    f.root-servers.net. 3600000 IN  A   192.5.5.241
    f.root-servers.net. 3600000 IN  AAAA    2001:500:2f::f
    g.root-servers.net. 3600000 IN  A   192.112.36.4
    h.root-servers.net. 3600000 IN  A   128.63.2.53
    h.root-servers.net. 3600000 IN  AAAA    2001:500:1::803f:235
    i.root-servers.net. 3600000 IN  A   192.36.148.17
    i.root-servers.net. 3600000 IN  AAAA    2001:7fe::53
    j.root-servers.net. 3600000 IN  A   192.58.128.30
    j.root-servers.net. 3600000 IN  AAAA    2001:503:c27::2:30
    k.root-servers.net. 3600000 IN  A   193.0.14.129
    k.root-servers.net. 3600000 IN  AAAA    2001:7fd::1
    l.root-servers.net. 3600000 IN  A   199.7.83.42
    l.root-servers.net. 3600000 IN  AAAA    2001:500:3::42
    m.root-servers.net. 3600000 IN  A   202.12.27.33
    m.root-servers.net. 3600000 IN  AAAA    2001:dc3::35
    
    • 软件包已解决装好,接下来我启动DNS服务器,运行命令systemctl start named
    • 在用命令systemctl enable named,把他设为开机启动
    [root@localhost ~]# systemctl  enable named
    Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
    
    • 既然服务已经启动那我们看下他对应的端口号53端口打开没有,运行命令 ss -nutl,他会用两个端口一个是TCP的53一个是UDP的53
    [root@localhost ~]# ss -nutl
    Netid State      Recv-Q Send-Q                                               Local Address:Port                                                              Peer Address:Port              
    udp   UNCONN     0      0                                                                *:15562                                                                        *:*                  
    udp   UNCONN     0      0                                                        127.0.0.1:53                                                                           *:*                  
    udp   UNCONN     0      0                                                                *:68                                                                           *:*                  
    udp   UNCONN     0      0                                                              ::1:53                                                                          :::*                  
    udp   UNCONN     0      0                                                               :::10338                                                                       :::*                  
    tcp   LISTEN     0      10                                                       127.0.0.1:53                                                                           *:*                  
    tcp   LISTEN     0      128                                                              *:22                                                                           *:*                  
    tcp   LISTEN     0      128                                                      127.0.0.1:953                                                                          *:*                  
    tcp   LISTEN     0      100                                                      127.0.0.1:25                                                                           *:*                  
    tcp   LISTEN     0      10                                                             ::1:53                                                                          :::*                  
    tcp   LISTEN     0      128                                                             :::22                                                                          :::*                  
    tcp   LISTEN     0      128                                                            ::1:953                                                                         :::*                  
    tcp   LISTEN     0      100                                                            ::1:25                                                                          :::*    
    
    • 现在服务已经启动,但是他对应的端口是有问题的,因为绑在了我本地CentOS7.3的本地网卡,既然绑定的别人怎么访问我的DNS服务器
    • 我用我准备好的客户机CentOS6.9来访问下我的DNS服务器
    • 可以用命令telnet 172.16.253.8 53,telnet如果是最小化安装是没有的需要重新安装
    • 172.16.253.8是我CentOS7.3的IP,53是指定的端口
    [root@localhost ~]# telnet 172.16.253.8 53 
    Trying 172.16.253.8...
    telnet: connect to address 172.16.253.8: Connection refused   <<链接拒绝的意思
    
    • 接下来我要打开端口,要打开端口的话我们要进入/etc/named.conf,里面去修改配置文件
    • 在改之前要注意下他的所有者和组的问题,不然会出问题,组必须要有读权限,备份配置文件的时候要注意
    [root@localhost ~]# ll /etc/named.conf 
    -rw-r-----. 1 root named 1705 Mar 22  2016 /etc/named.conf
    
    • 接下来我们修改配置文件,运行命令vim /etc/named.conf
    //
    // named.conf
    //
    // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
    // server as a caching only nameserver (as a localhost DNS resolver only).
    //
    // See /usr/share/doc/bind*/sample/ for example named configuration files.
    //
    // See the BIND Administrator's Reference Manual (ARM) for details about the
    // configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
    
    options {
            listen-on port 53 { 127.0.0.1; };  <<  要修改的行,或者把他注释掉
            listen-on-v6 port 53 { ::1; };
            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";
            allow-query     { localhost; };
    
            /* 
             - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
             - If you are building a RECURSIVE (caching) DNS server, you need to enable 
               recursion. 
             - If your recursive DNS server has a public IP address, you MUST enable access 
               control to limit queries to your legitimate users. Failing to do so will
               cause your server to become part of large scale DNS amplification 
               attacks. Implementing BCP38 within your network would greatly
               reduce such attack surface 
            */
            recursion yes;
    
            dnssec-enable yes;
            dnssec-validation yes;
    
            /* Path to ISC DLV key */
            bindkeys-file "/etc/named.iscdlv.key";
    
            managed-keys-directory "/var/named/dynamic";
    
    • 把里面的127.0.0.1删除换成localhost,注释掉也可以
    • 修改玩以后,执行命令systemctl reload named,来重新读取配置文件
    • 现在在执行下ss -nutl,命令查看下成功了没
    [root@localhost ~]# ss -nutl
    Netid State      Recv-Q Send-Q                                               Local Address:Port                                                              Peer Address:Port              
    udp   UNCONN     0      0                                                                *:15562                                                                        *:*                  
    udp   UNCONN     0      0                                                     172.16.253.8:53                                                                           *:*                  
    udp   UNCONN     0      0                                                        127.0.0.1:53                                                                           *:*                  
    udp   UNCONN     0      0                                                                *:68                                                                           *:*                  
    udp   UNCONN     0      0                                                              ::1:53                                                                          :::*                  
    udp   UNCONN     0      0                                                               :::10338                                                                       :::*                  
    tcp   LISTEN     0      10                                                    172.16.253.8:53                                                                           *:*                  
    tcp   LISTEN     0      10                                                       127.0.0.1:53                                                                           *:*                  
    tcp   LISTEN     0      128                                                              *:22                                                                           *:*                  
    tcp   LISTEN     0      128                                                      127.0.0.1:953                                                                          *:*                  
    tcp   LISTEN     0      100                                                      127.0.0.1:25                                                                           *:*                  
    tcp   LISTEN     0      10                                                             ::1:53                                                                          :::*                  
    tcp   LISTEN     0      128                                                             :::22                                                                          :::*                  
    tcp   LISTEN     0      128                                                            ::1:953                                                                         :::*                  
    tcp   LISTEN     0      100                                                            ::1:25                                                                          :::*  
    
    • 已经成功,我们在用我的CentOS6.9-1,的机器连接下
    [root@localhost ~]# telnet 172.16.253.8 53 
    Trying 172.16.253.8...
    Connected to 172.16.253.8.
    Escape character is '^]'.
    
    • 连接成功,这样我的CentOS7.3服务器就可以对外服务器了
    • DNS服务配成功,呵呵这只能算是一个缓存服务器,或转发服务器
    • 第二篇我将搭建根服务器的搭建和从等等的搭建

    a.递归查询:当DNS服务器接收到查询请求时,要么做出查询成功响应,要么做出查询失败的响应。递归查询一般发生在DNS客户端与DNS服务器之间。

    b.迭代查询:DNS服务器根据自己的高速缓存或区域的数据,以最佳结果响应。如果DNS服务器无法解析,它可能返回一个指针。指针指向有下级域名的DNS服务器,继续该过程,直到找到拥有所查询名字的DNS服务器,或直到出错、超时为止。迭代查询一般发生在DNS服务器之间。

    2.按查询内容分类DNS查询

    a.正向查询;域名--》IP

    b.反向查询:IP----》域名

    三、DNS安装

    1.配置yum本地源,采用组安装方式

    新葡亰496net 5

    2.不要忘了也需要安装caching-nameserver

    新葡亰496net 6

    新葡亰496net 7

    本文由新葡亰496net发布于服务器网络,转载请注明出处:Linux基础之DNS服务器第一篇,6的核心DNS服务器搭

    关键词: