欢迎访问 SJsir 圣杰博客

A Linux operation and maintenance engineer's Blogs

DNS服务基础

  DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。

  1.互联网中常用的通信协议:

    基于sockets的传输;常用的为C/S架构;
        Client:发起应用请求的程序;
        Server:相应请求(提供服务)的程序;
            LISTEN:Socket

  2.互联网上面的传输协议:TCP UDP SCTP

    TCP:Transmission Control Protocol
        面向连接的协议:双方通信之前需要事先建立虚连接;
    UDP:User Datagram Protocol
        无连接的协议:双方无需通信之前需要事先建立连接;

  3.tid:Top Level Domain

    组织域:.com .net .org .gov .edu .mil
    国家域:.jp .tw .hk .jp .cn

  4.DNS查询类型:

    递归查询:
        递归查询是最常见的查询方式,域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,
        若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,
        最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。
    迭代查询:
        迭代查询又称重指引,当服务器使用迭代查询时能使其他服务器返回一个最佳的查询点提示或主机地址,
        若此最佳的查询点中包含需要查询的主机地址,则返回主机地址信息,
        若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,
        直到服务器给出的提示中包含所需要查询的主机地址为止,
        一般每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。
        B访问C、D、E、F、G,都是迭代查询,首先B 访问C,得到了提示访问D的提示信息后,
        开始访问D,D又返回给B提示信息,告诉B应该访问E,依次类推。

  5.DNS名称解析方式:

    正向解析:名称---->IP
    反向解析:IP---->名称
    注意:二者的名称空间,非为同一个空间,即非为同一棵树,因此也不是同一个解析库;

  6.域:sjsir.wang

    www.sjsir.wang
    ftp.sjsir.wang
    bbs.sjsir.wang
    cloud.sjsir.wang

  7.DNS服务器类型:

    负责解析至少一个域:
        主名称服务器;
        辅助名称服务器;
    不负责解析:
        缓存名称服务器;

  8.一次完整的查询请求经过的流程:

    Client --> hosts文件 → DNS Local Cache --> DNS Server(recursion) -->
        自己负责解析的域:直接查询数据库并返回答案;
        不是自己负责解析的域:Server Cache --> iteration(迭代)
    解析答案:
        肯定答案,可以找到;
        否定答案:不存在查询的键,因此,不存在与其查询键对应的值;
        权威答案:由直接负责的DNS服务器返回的答案;
        非权威答案:除了DNS服务器返回的答案,包括系统中缓存的答案;

  9.主·辅DNS服务器:

    主DNS服务器:维护所负责解析的域的数据库的服务器;读写操作均可进行;(新域名的解析和请求依靠主DNS服务器)
    从DNS服务器:从主DNS服务器那里或者从其他的DNS服务器那里“复制”一份解析库;但是只能执行读操作;(只能接受查询,不能接受修改)
    从DNS服务器和主DNS服务器之间的操作:
        “复制”操作的实施方式:
            序列号:serial,也是数据库的版本号;主服务器数据库内容发生变化时,其版本号递增;
            刷新时间间隔:refresh,从服务器每多久到主服务器检查序列号更新状况;
            重试时间间隔:retry,从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔;
            过期时长:expire,从服务器始终联系不到主服务器,多久之后放弃从主服务器同步数据;停止提供服务;
            否定答案的缓存时长:
        主服务器 通知 从服务器随时更新数据:
        区域传送:
            全量传送:axfr,传送整个数据库;
            增量传送:ixfr,仅传送改变量的数据;

  10.区域(zone)和域(domain):

    一个域(domian)是由两个区域(zone)组成的。
    以sjsir.wang域为解析介绍:
        FQDN(主机名) --> IP(主机IP):正向解析库;称为正向解析域
        IP(主机IP) --> FQDN(主机名):反向解析库;称为反向解析域

  11.区域数据库文件:

    资源记录:Resource Record,简称rr
        记录的类型有:A,AAAA,PTR,SOA,NS,CNAME,MX
            SOA:Start Of Authority,起始授权记录;一个区域解析库有且只能有一个SOA记录,而且必须放在第一条;
            NS:Name Service;域名服务记录;一个域名解析库可以有多个NS记录,其中一个为主的;
            A:Address;地址记录,FQDN --> IPv4
            AAAA:地址记录,FQDN --> IPv6
            CNAME:Canonical Name,别名记录
            PTR:Pointer,IP --> FQDN
            MX:Mail eXchanger,邮件交换器;
            优先级:0-99,数字越小,优先级越高;
        资源记录的定义格式:
            语法:   name    [TTL]  IN  RR_TYPE  value
            (1)SOA:
                name:当前区域的名字;例如"sjsir.cn",或者"2.3.4.in-ddr.arpa"
                value:有多部分组成;
                    A.当前区域的区域名称(也可以使用主DNS服务器名称);
                    B.当前区域管理员的邮箱地址;但地址总不能使用@符号,一般用.点号来代替;
                    C.(主从服务协调属性的定义以及否定答案的TTL)
                例如:
                sjsir.wang.  86400  IN  SOA  sjsir.wang.    admin.sjsir.wang.  (
                    2017010801  ; serial
                    2H             ; refresh
                    10M            ; retry
                    1W             ; expire
                    1D             ; negative answer ttl
                )
            (2)NS:
                name:当前区域的区域名称
                value:当前区域某DNS服务器的名字;例如,ns.sjsir.wang.
                    注意:一个区域可以有多个ns记录;
                例如:
                    sjsir.wang.   86400  IN  NS  ns1.sjsir.wang.
                    sjsir.wang.   86400  IN  NS  ns2.sjsir.wang.
            (3)MX:
                name:当前区域的区域名称;
                value:当前区域某邮件交换器的主机名;
                    注意:MX记录可以有多个;但每个记录之前应该有一个数字表示其优先级;
                例如:
                    sjsir.wang.    IN    MX  10  mx1.sjsir.wang.
                    sjsir.wang.    IN    MX  20  mx2.sjsir.wang.
            (4)A:
                name:某FQDN,例如  www.sjsir.wang.
                value:某 IPv4地址;
                例如:
                    www.sjsir.wang.     IN    A    1.1.1.1
                    www.sjsir,wang.     IN    A    1.1.1.2
                    bbs.sjsir.wang.     IN    A    1.1.1.1
            (5)AAAA:
                name:FQDN
                value:IPv6
            (6)PTR:
                name:IP地址,有特定格式,IP反过来写,而且加特定后缀;例如1.2.3.4的记录应该写4.3.2.1.in-addr.arpa.;
                value:FQDN
                例如:
                    4.3.2.1.in-addr.arpa.    IN    PTR    www.sjsir.wang.
            (7)CNAME:
                name:FQDN格式的别名;
                value:FQDN格式的正式名字;
                例如:
                    web.sjsir.wang.   IN   CNAME    www.sjsir.wang.
                注意:
                    TTL可以全局继承;
                    @表示当前区域的名称;
                    相邻的两条记录name相同时,后面的可省略;
                    对于正向区域来说,各MX,NS等类型的记录的value为 FQDN,此FQDN应该有一个A记录;

  12.DNS服务器的搭建建议:

    需要搭建DNS服务器:
        需要连接Internet的主机数量庞大;
        时长修改Server的名字,或者Server随时增加的可能性或变动性;
    不需要搭建DNS服务器:
        网络主机数量很少;
        有较好的上层DNS主机管理员,代理DNS解析;
        对DNS知识了解不足,架设DNS服务器容易造成网络不通时;
        架设DNS服务器价格高昂;
点赞