DNS & BIND(1)


what-DNS& BIND


DNS:    

  • Domain Name Service

  • 已于C/S架构的协议

  • 53/udp:  域名解析

  • 53/tcp  :  区域传输   

BIND: 

  • Bekerley Internet Name Domain

  • BIND对DNS协议的开源实现,包含对域名的查询和响应所需的所有软件

  • BIND是互联网上最广泛使用的一种DNS服务器


传输方式


1)区域传输 的时候使用TCP协议 

  1. 主DNS服务器: 从自己本机的数据文件中读取该区的DNS数据信息。

  2. 辅助服务器: 从主 DNS 服务器获取信息,也就是区域传输( 一般三小时一次 

  3. 区域传送将使用TCP而不是UDP,因为数据同步传送的数据量比一个请求和应答的数据量要得多。


 *)UDP报文的最大长度为512字节,而TCP则允许报文长度超过512字节。

           当DNS查询超过512字节时,协议的TC标志出现删除标志,这时则使用TCP发送。


    2)域名解析时使用UDP协议: 

  1. 客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。

  2. 因为不用经过TCP三次握手,这样DNS服务器负载更低,响应更快。

  3. 虽然从理论上说,客户端也可以指定向DNS服务器查询的时候使用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。


解析的发展


  1.  主机数量不多:    用自己的hosts文件

  2. 主机数量千余台:

    1. IANA 推出ftp服务器(本质还是hosts文件)

    2. 任何主机访问都需要申请ftp服务器

    3. 每个人更新自己的hosts文件(每隔一个小时更新一次) 

  3. 主机数量上万台:

    1. 把主机和IP   hash化,保存在内存中 

    2.  * hash :    特征码,hash barket(桶) 

    1. DNS服务器

  4. 主机数量百万台:    分层的DNS分布式服务器



DNS服务器每层中都存储了什么  


域名(最多127个域)


DNS&BIND——基础知识_第1张图片

顶级域名(一级域名)Top Level Domain:TLD  


  • 三类:

    • 组织类(com,edu,mil,gov,net,org,int-国际域

    • 国家类(.cn,  .iq-伊拉克,  .hk ,  .tw)

    • 反向域

  •  任何一个组织,公司拿到的都是二级域名



注意的问题:


1)DNS数据库系统和文件系统的区别

    命名规则

  1. dns自底向上命名(www.baidu.com.)

  2. 文件系统,自上而下,从/开始


2)DNS查询方式:自顶向下

  1. 递归查询:客户端 请求一次就获得最终结果

  2. 迭代查询:服务器 请求多次 才能获得最终结果    

    1. 服务器在查询时,有可能得到的是参考答案或最终答案

    2. 离用户最近本地DNS服务器当地运营商,电信联通之流

    1. 使用该种查询方式的DNS服务器有很多种


 3)DNS服务器类型

  1. 主DNS服务器(master)

  2. 辅助DNS 服务器(slave)

  3. 缓存服务器

  4. 转发器





  1. 主DNS服务器:维护所负责域内解析库服务器

    1. 解析库文件管理员维护

  2. 从DNS服务器:区域传送(TCP)

    1. 解析库文件 是从主DNS服务器或其他从 DNS服务器那“复制”来的

    2. 主从服务器协调属性(SOA):

      1. 序列号:解析库的版本号

      2. 刷新时间: 从服务器同主服务器请求同步解析库时间间隔

      3. 重试时长:从服务器同主服务器请求同步解析库失败时,再次尝试的时间

      4. 过期时长:从服务器始终联系不到主服务器,多久后放弃从服务器角色,停止提供服务。竟然不接管。。。。无语。。。。。

      5. 通知机制:主服务器主动通知从服务器

        1. 量传送:传送整个解析库

        2. 量传送:传送解析库变化的部分内容

  3. 缓存DNS服务器(递归)

    1. 不解析任何域,不注册任何域名



4)解析类型:

  1. 正向解析:FQDN  -->  IP

  2. 反向解析 :IP   --> FQDN

  3. FQDN  : Full  Qualified Domain Name    完全合格域名

    1. www.baidu.com.      .不能省略

    2. www.baidu.com   

      1. 方法:根据网段,子网

      2. 用途:反向解析是邮件服务器检验对方是不是垃圾邮件服务器重要手段

      3. 例子:

        1. -n  numeric

        2. 不指定 -n ,需要将IP反向解析成地址

          1. route    -n    

  4. 注意: 正反解析

    1. 是两个不同的名称空间(namespace)

    2. 是两棵不同的解析树

    3. 各需要一个解析库,来分别负责本地域名的正向反向解析,即

      1. 正向区域

      2. 反向区域


5)专业名词

  1. 名称服务器:域内负责解析本域内的名称的主机

    1. 根服务器:13组服务器(戒备森严,安全等级高)

  2. 解析答案

    1. 肯定答案

    2. 否定答案:请求的条目不存在等原因,导致无法返回结果.

    3. 权威答案:负责这个域的服务器给的答案

    4. 非权威答案


6)资源记录:Resource  Record ,RR

  1. 记录类型

    1. SOA

      1. Start of Authority,起始授权记录

      2. 一个区域解析库有且仅能有一个SOA记录

      3. 而且必须位于解析库第一条

    2. A

      1. internet Address: FQDN  -->IP

    3. AAAA

      1. internet Address: FQDN  -->IPv6

    4. PTR

      1. pointer:   IP-->FQDN

    5. NS

      1. name server,专门用于标明当前区域的Dns服务器

    6. CNAME

      1. Canonical Name,别名记录

    7. MX

      1. Mail  eXchanger,邮件交换器

  2. 资源记录定义的格式:

    1.     语法:     name  [TTL] IN rr_type   value
      注意:
         1.TTL可以从全局继承
         2.@用于引用当前区域的名字
         3.同一个名字可以通过多条记录定义多个不同的值(rr);
         4.同一个值也可有多个不同的名字
         5.通过多个不同的名字可以找到同一个主机

  3. 资源记录详解

    1. SOA:(Start of Authority)

      1. name:

        1. 当前区域的名字

      2. value:

        1. 当前区域内的主DNS服务器FDQN,也可以使用当前区域的名字

        2. 当前区域中管理员邮箱地址;但地址中不能使用@,用点替换

        3. 主从服务器协调属性的定义以及否定的答案统一的TTL

      3. 例如

        1. lalala.com.     86400  IN  SOA   ns.lalala.com.    nsadmin.lalala.com.    (
                               2015042201;序列号
                               2H              ;刷新时间
                               10M             ;重试时间
                               1W              ;过期时间
                               1D               ;否定答案的缓存时间(TTL值)
          )

      4. H(hour),D(day),M(min),W(week)

    2. NS:(Name Server):是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析

      1. name

      2. value:当前区域的某DNS服务器的名字,例如ns.lalala.com

        1. 一个区域可以有多个NS服务器

      3. 例如:
         

        1.                             FQDN
          lalala.com.   IN   NS    ns1.lalala.com.
          lalala.com.   IN   NS    ns2.lalala.com.

      4. 注意

        1. 两个相邻的资源记录(rr)的name相同时,后续的可以省略;

        2. 对NS记录而言,任何一个NS记录后面的服务器名字(FQDN),都应该在后续有一个A记录

    3. MX:

      1. name:当前区域名字

      2. value:当前区域某邮件服务器(smtp服务器)的主机名

        1. 一个区域内,MX记录可有多个;

        2. 优先级:但每个记录的value之前应该有一个数字(0~99)

        3. 数字越小优先级越高

      3. 例如

        1. lalala.com.   IN   MX   10    ns1.lalala.com.
                       IN   MX   20    ns2.lalala.com.

      4. 注意

        1. 对于MX记录而言,任何一个MX记录服务器后面的名字,都应该在后续有一个A记录

    4. A记录:

      1. name: 某主机的FQDN,例如www.lalala.com

      2. value:  主机名对应主机的IP地址

      3. 例如

        1. 同一个名字可以定义多条记录(值) rr

          1. www.lalala.com.  IN   A   1.1.1.1
            www.lalala.com.  IN   A   1.1.1.2

        2. 通过不同名字找到一个主机

          1. mx1.lalala.com.    IN    A   1.1.1.3
            mx2.lalala.com.    IN    A   1.1.1.3

      4. 注意

        1.   *.lalala.com.     IN   A  1.1.1.4
           lalala.com.       IN   A  1.1.1.4

          避免用户写错名称时,可通过泛域名解析进行解析至某特定地址

    5. AAAA记录:

      1. name: 某主机的FQDN

      2. value:  主机名对应主机的IPv6地址

    6. PTR:

      1. name: IP

        1. 有特定格式:   1.2.3.4,写做4.3.2.1

        2. 有特定后缀:   in-addr.arpa.

        3. 完整写法:   4.3.2.1.in-addr.arpa.

      2. value: FQDN

      3. 例如

        1. 4.3.2.1.in-addr.arpa.   IN  PTR  www.lalala.com

        2. 简写:

          1. 如果网络地址是1.2.0.0 

            1. 4   IN  PTR    www.lalala.com.
          2. 如果网络地址1.2.3.0 

            1. 4.3   IN  PTR    www.lalala.com.
          3. 注意:

            1. 网络地址及后缀可省略,主机地址依然需要反着写


CNAME:
  1. name:  别名的FQDN

  2.  value:   正式名字的FQDN

  3. 例如:

    正式名字                                 别名
   web.lalala.com.    IN     CNAME    www.lalala.com.