zoukankan      html  css  js  c++  java
  • centos的DNS服务工作流程及搭建

    1  什么是DNS? 

      DNS(Domain Name Server,域名服务器)即域名解析服务,是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。

    2 DNS工作方式

      递归查询  #若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。
      迭代查询 #根据客户机向非权威域名服务器提交域名解析查询请求后,逐级进行查询直到查到结果或者没有得到结果,都将最终结果传送给客户机的行为。
      说明:假设你要寻找一家你从未去过的公司,你会有2种解决方案,1是找一个人替你问路,那可能是你的助手,2是自己问路,每走过一个路口,就问一个人,这就好比递归查询和迭代查询,递归查询在这里代表你的第1种解决方案,而迭代则是第2种解决方案。

    3 DNS应用层协议及端口

      使用的协议有两种,TCP和UDP协议,端口是53,TCP协议负责主从服务器同步记录,UDP协议除了负责主从同步记录并且负责查询工作。

    4  DNS服务器类型

      主DNS服务器:管理和维护所负责解析的域内解析库的服务器

      从DNS服务器:从主服务器或从服务器复制解析库副本

      序列号:解析库版本号,主服务器解析库变化时,其序列递增刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔                        重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔过期时长:从服务器联系不到主服务器时,多久后                         停止服务

       “通知”机制:主服务器解析库发生变化时,会主动通知从服务器

     5 DNS解析流程

       一次完整的查询请求经过的流程:Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 顶级域名DNS-->         二级域名DNS…
      centos6.9版本里,提供DNS域名解析服务的默认组件是bind,可以用 yum info bind 查询当前安装包库里的bind版本信息,其服务名是named,主要文件如下:
     
     在/etc/named.conf文件里可以修改DNS相关参数
     
    named-chkconf命令可以检测named.conf文件的语法错误。
    /etc/resolv.conf           #文件里存的是本机的DNS服务器地址
     dig www.qq.com @127.0.0.1     #查询www.qq.com对应的IP地址,@后边跟地址意思是向那个地址的DNS服务器查询
     
    区域数据库的增加及修改,此文件位置在/etc/named.rfc1912.zones,在相对应的格式下添加自己的域名,比如我们这里要添加一个chykj.com的主域名解析记录
     
    1 zone "chykj.com" IN {         #此处填上你的域名信息
    2         type master;               #因为是主解析服务器,所以这里应该是master类型                                                                                
    3         file "chykj.com.zone"       #此处填你此域名数据库文件名字,相对应的在/var/named下边也要创建你的同名文件,格式参考/var/named/named.localhost文件
    4         allow-update { none; };   #是否允许从解析服务器同步更新
    5 };
    1 cp -p /var/named/named.localhost /var/named/chykj.com.zone  #将named.localhost作为模板,复制一份名字为chykj.com.zone,文件属性要相同所以这里-p

     

     这两个文件改完了,可以用named-checkconf来检测有没语法错误。

    解析库文件语法检查:
    named-checkzone "chykj.com" /var/named/chykj.com.zone
    rndc status|reload ;service named reload      

    这两步都做完了,切记启动named服务,不然会报错,如果启动服务还报以下错误。

    运行 rndc reload 提示 rndc: neither /etc/rndc.conf nor /etc/rndc.key was found 

    解决方法:  1  rndc-confgen -r /dev/urandom -a    #手动创建key

           2 chown root:named /etc/rndc.key     #修改rndc.key 文件属主

           3 chmod 644 /etc/rndc.key        # 修改rndc.key 读权限   

           4 /etc/init.d/named restart         # 重启named 服务

    建立主从域名服务器:

    1 yum install bind                  #安装bind服务
    systemctl start named                #启动服务
    systemctl enable named               #开启开机自启动

    2 vim /etc/named.conf                #修改主配置文件
    listen-on port 53 { localhost; };
    allow-query { any; };                 #允许所有人查询

    3 vim /etc/named.rfc1912.zones            #修改rfc配置文件

    zone "chykj.com" IN {            
    type master;                     #设置其为主域名服务器
    file "chykj.com.zone";                 
    };

    4 vim /var/named/chykj.com.zone            #修改区域数据库文件
    $TTL 1D                       #本段域,刷新周期为1天
    @ 2D IN SOA dns1 admin.chykj.com. (          #SOA记录,声明dn1为主域服务器,邮件服务器为admin.chykj.com. (如果要添加域名后缀,需在后缀加.)
    2017 ; serial                              #标签为2017
    86400 ; refresh                    #主从服务器更新周期为86400秒即1D
    1H ; retry                       #如果从主联系失败后,每隔1小时重新尝试连接更新
    1M ; expire                       #
    3H ) ; minimum
    NS dns1
    dns1 2D A 192.168.25.107
    websrv A 192.168.25.106
    www CNAME websrv

    chgrp named /var/named/chykj.com.zone         #修改文件属组为named组

    5
    named-checkconf
    named-checkzone chykj.com /var/named/chykj.com.zone   #此两项为检查配置文件语法正确与否
    systemctl restart named                 #重启服务生效

    测试命令dig

    dig [-t type] name [@SERVER] [query options]
    dig只用于测试dns系统,不会查询hosts文件进行解析
     查询选项:
    +[no]trace:跟踪解析过程 : dig +trace chykj.com
    +[no]recurse:进行递归解析
    测试反向解析:
    dig -x IP = dig –t ptr reverseip.in-addr.arpa
    模拟区域传送:
    dig -t axfr ZONE_NAME @SERVER
    dig -t axfr chykj.com @10.10.10.11
    dig –t axfr 100.1.10.in-addr.arpa @172.16.1.1
    dig -t NS . @114.114.114.114
    dig -t NS . @a.root-servers.net

     ========================================================================

    域名反向解析

    1 修改/etc/named.rfc1912.zones         #修改区域数据库

    1 zone  "40.18.172.in-addr.arpa" IN {      #建立一个172.18.40.0段的反向解析
    2            type master;             
    3            file "172.18.40.zone";
    4 };

    2  在/var/named目录下建立一个172.18.40.zone配置文件

    1 $TTL  1D
    2 @  IN SOA dns1.chykj.com.   admin.chykj.com.  ( 1 10m 2m 1h 3h )
    3            NS   dns1.
    4 101    PTR    dns1.chykj.com.
    5 104    PTR    dns3.chykj.com.
    6 105    PTR    chykj.com.

     =================================================

    创建转发服务器

    (1) 全局转发: 对非本机所负责解析区域的请求,全转发给指定的服务器
    Options {
    forward first|only;
    forwarders { ip;};
    };

    #first选项:如果A向B提交一个域名解析请求,B会去网络找地址,如果找不到地址,则A机器会亲自去互联网或者根DNS找地址。

    #only选项:如果A向B提交一个域名解析请求,B如果找不到地址,则此次解析任务就失败,A也不会去互联网继续找。

     (2) 特定区域转发:仅转发对特定的区域的请求,比全局转发优先级高
    zone "ZONE_NAME" IN {
    type forward;
    forward first|only;
    forwarders { ip;};
    };

    以上操作均是在/etc/named.rfc1912.zones修改

    --------------------------------------------------------------

    根服务器建立是在/var/named/named.ca 修改

    然后将此文件都传到各自角色的机器里即可。

  • 相关阅读:
    poj2942 点-双联通+二分图染色
    poj1523割顶-点双联通
    poj3694 边-双连通分量+lca
    poj3177边-双连通分量
    poj3352 边-双联通分量
    Codeforces Round #377 (Div. 2) F
    Educational Codeforces Round 30D. Merge Sort
    洛谷p3369 treap
    hdu3572线性欧拉筛
    HYSBZ
  • 原文地址:https://www.cnblogs.com/chenyongmou/p/7553862.html
Copyright © 2011-2022 走看看