DNS深入学习-2 DNS 基础

本文介绍了DNS的基本组成部分及其工作原理。DNS通过UDP或TCP/IP发送查询,返回包含IP地址和邮件服务器详细信息的响应。DNS消息包括请求头部、请求名、答案部分等。DNS查找采用树形结构。

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消息由五部分组成

  1. 请求头部(header)
  2. 请求名和请求类型
  3. 答案部分(An answer section)
  4. 权威/权限/署名部分(An authority section)
  5. 附加部分(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的查找方式是树形查找,而不是普通的键值对方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coding随想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值