DNS协议

1. DNS协议由两个部分组成:

  1. 用于执行对DNS特定名称查询的查询/响应协议
  2. 域名服务器用于交换数据库记录的协议(区域传输),它有方法通知辅助域名服务器区域数据库已经演变,需要进行区域传输(DNS通知),也有方法动态更新区域(动态更新)。
  3. 执行DNS查询的每台机器的递归查询会阻塞它们导致全球互联网性能不佳。 根域名服务器一般不支持递归,因此强制客户端执行迭代查询来完成域名解析

    2. DNS消息

  4. 基本的DNS消息以固定的12字节头部开始,其后跟随4个可变长度的区段:问题(或查询)、回答、授权记录、额外记录。除了第一区段,其他都包含一个或多个资源记录。
  5. 在固定长度的头部中,事物ID字段由客户端设置,由服务器返回。客户端使用它来匹配响应和查询。
  6. 固定头部中的“期望递归”字段可以在一个查询中设置,并在响应中返回,它告诉服务器执行递归查询。 如果该字段没有被设置,且被请求的域名服务器没有授权回答,则被请求的域名服务器就返回一个可以联系获取回答的其他域名服务器的列表。
  7. 每一个问题和RR以它所涉及的名称(称为域名或拥有名称)开始,每个名称由一系列的标签组成。 标签类型有数据标签和压缩标签,数据标签包含构成一个标签的字符;压缩标签充当指向其他标签的指针,当相同字符串的多个副本在多个标签中出现时,压缩标签有助于节省DNS信息的空间
    • 数据标签以字母开始,以字母或数字结束,并且内部只包含字母、数字和连字符
    • 压缩标签是一个指针(偏移量),指向另一个用于替代压缩标签的数据标签

      3. DNS扩展格式(EDNSO)

  8. DNS在使用UDP时,有总长度为512字节的限制
  9. ENDSO指定了一种特殊类型的资源记录(RR,称为OPT伪RR或元RR),它被添加到请求或响应消息中额外的数据区段来表示ENDSO的使用,在任意的DNS消息中可以出现至多一个这样的记录。
  10. 如果一个UDP DNS消息包含一个OPT RR,就允许它超过512字节的长度限制,并可能包含一套扩展的错误代码。

    4. TCP & UDP

  11. 对于TCP和UDP来说,DNS的知名端口号都是53
  12. DNS消息通常封装在UDP/ipv4数据报中,并且限制其长度为512字节,除非不适用TCP或EDNSO
  13. 当解析器发出一个查询消息,而返回的响应消息中TC字符被设置(表示“被截断”)时,真实的响应消息的长度超过512字节,因此服务器只返回前面的512字节,该解析器将会使用TCP再次发出消息,这样就允许超过512字节的信息,因为TCP将更大的消息分割成多个报文段。
  14. 完全区域传输使用TCP,因为它们可能很大 增量区域传输,即只有更新的条目被传输,可能会首先使用UDP,但是如果相应消息太大就会切换到TCP,就像常规查询一样。

    5. DNS & UDP

  15. 域名系统采用的是UDP,DNS消息通过UDP数据包发送,格式非常简单,只有查询和响应,域名服务器可以用此数据包继续进行解析操作
  16. 如果在很短的时间没有响应返回,DNS客户端必须重复查询请求;如果重复一定次数后仍然失败,则尝试域内另一台域名服务器。
  17. 查询过程这样设计的主要目的是为了应付出现服务器关闭以及查询或响应包丢失的情况。每个查询报文都包含16位的标识符,这个标识符将被复制到响应包中,以便域名服务器将接收到的答案与相应的查询匹配,即使它同时发出了多个查询也不会弄混查询结果。

    6. 资源记录集为共享相同的名称、类和类型,但是数据不同的一组资源记录。

    |RR|类型描述和目的 |备注| |–|————-|— |A |IPv4地址记录(32位IPv4地址)|主机有多少个IP地址,就会有多少个AA或AAAA资源| |AAAA|IPv6地址记录(128位)|主机有多少个IP地址,就会有多少个AA或AAAA资源| |NS|名称服务器,提供区域授权域名服务器的名称|| |CNAME|规范名称:将一个名称映射到另一个(域名别名)|只是一个宏定义| |SOA|授权开始,为区域提供授权信息|| |PTR|指针,提供地址到域名的映射| |MX邮件交换器,为一个域提供电子邮件处理主机的名称|最常用的记录类型,指定了一台准备接受该特定域名下电子邮件的主机的名字,因为并非每台机器都做好了接收电子邮件的准备| |TXT|文本,提供各种信息|| |SRV|服务器选择,通用服务器的传输终点|| |NAPTR|名称授权指针,支持交替的名称空间|| |OPT|伪RR,支持更大的数据报、标签、ENDSO的返回码|| |IXFR|增量区域传输|| |AXPR|完全区域传输,通过TCP运载||

Table of Contents