DNS深入学习-2 DNS 基础
#网络/DNS#
本节先忽略后来添加到DNS的一些可选扩展,比如EDNS和DNSSEC
DNS主要用于提供IP地址和邮件服务器的详细信息,但其实它可以携带任意数据。DNS是关于名称的。每个名称可以有多种类型的数据。最著名的外部有用类型是用于IPv4地址的A、用于IPv6地址的AAAA和用于mailserver详细信息的MX。具体类型介绍参见另一篇DNS域名解析文章
发起一个DNS请求我们称为查询(query)。返回的应答我们称为response。这些query和response包含在DNS消息中。当使用UDP时,消息也是包。
一个DNS消息由五部分组成
- 请求头部(header)
- 请求名和请求类型
- 答案部分(An answer section)
- 权威/权限/署名部分(An authority section)
- 附加部分(An additional section)
在基本DNS中,请求消息应该有空答案,权限和附加部分
头部(header)包含:
- ID:一种16位标识符,用于将查询与响应进行匹配的过程
- QR:0表示是query,1表示是response
- OPCODE:0表示标准query,也存在其他OPCODE值
- RD:表示此问题需要递归/循环
与response相关:
- AA:此response具有权威的答案(Authoritative Answers)
- RA:递归(Recursive)服务可用
- TC:并不是响应的所有必需部分都符合UDP消息
- RCODE:结果代码:0表示ok,2表示SERVFAIL,3表示NXDOMAIN
DNS查询主要通过UDP发送,UDP数据包很容易被欺骗。要识别对查询的真实响应,ID字段必须是随机的,或者至少是不可预测的。然而还不够,UDP DNS 的源端口也必须是不可预测的
DNS也可以用TCP/IP来发送,因为TCP不是面向数据报的协议,所以使用TCP/IP的每个DNS消息之前都有一个16位网络尾端长度字段。DNS服务器必须在53端口同时监听UDP,TCP。
DNS的查找方式是树形查找,而不是普通的键值对方式
本文介绍了DNS的基本组成部分及其工作原理。DNS通过UDP或TCP/IP发送查询,返回包含IP地址和邮件服务器详细信息的响应。DNS消息包括请求头部、请求名、答案部分等。DNS查找采用树形结构。
6726

被折叠的 条评论
为什么被折叠?



