基本概念

更新时间:

本文为您介绍云解析 DNS 的一些基础概念,帮助您提前掌握一些基础知识,更好的理解和使用产品功能。

DNS

DNS(Domain Name System,域名系统)即“域名系统”。DNS 是整个互联网服务的基础系统之一,同时也是企业内网服务的重要基础服务系统之一,负责将人们访问的互联网域名和企业内网域名转换为 IP 地址,这一转换的过程叫做“域名解析”, 所以 DNS 又称“域名解析系统”,相当于网络访问的指路牌。DNS 作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更方便的访问网络资源和网络服务,而不用去记住能够被机器直接读取的 IP 数串。DNS 协议运行在 UDP 协议之上,使用端口号 53。DNS 从服务的网络环境来区分,分为公网 DNS 和内网 DNS。DNS 从解析链路扮演的功能角色来区分,分为权威 DNS 和递归 DNS。

域名的分层结构

域名采用层次树状结构命名,每个连接在互联网上的主机或路由器,都有唯一的层次结构名字。域名由标号(label)序列组成,各标号之间用点(小数点)隔开。关于域名层次结构如下图:

image

举例说明

  • .com 顶级域名;

  • aliyun.com 主域名 ,也叫二级域名;

  • example.aliyun.com www.aliyun.com 子域名 ,也叫三级域名;

  • test.example.aliyun.com 子域名的子域 ,也叫四级域名。

DNS 服务器层级

DNS 解析过程涉及 4 个层级的 DNS 服务器,分别如下:

服务器类型

作用

根域名服务器

英文全称:Root Name Server,简称 Root Server。本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的 IP 地址。

顶级域名服务器

英文全称:Top-Level Domain Name Server,简称:TLD Server。负责管理在该顶级域名服务器下注册的主域名,例如“example.com”,.com 则是顶级域名服务器,在向它查询时,可以返回主域名“example.com”所在的权威域名服务器地址。

权威域名服务器

英文全称:Authoritative Name Server,简称 NS。在特定区域内具有唯一性,负责维护该区域内的域名与 IP 地址之间的对应关系。例如云解析 DNS 公网权威解析 ,您可在此 添加解析记录 ,最终它会将配置的 ip 记录返回给用户。

本地域名服务器

英文全称:Local DNS Server,简称 Local DNS。本地域名服务器是响应来自客户端的递归请求,并最终跟踪直到获取到解析结果的 DNS 服务器。例如用户本机自动分配的 DNS、运营商 ISP 分配的 DNS、谷歌/223.5.5.5 公共 DNS 等。

说明

每个层级的域名都有其专属的域名服务器,最顶层是根域名服务器。每一层的域名服务器都存储着下级域名服务器的 IP 地址,从而能够逐级进行查询。

DNS 解析过程

通过域名 example.com 访问网站的域名解析过程如下。

  1. 用户在 Web 浏览器中输入 example.com , 向本地域名服务器发起查询请求。若本地域名服务器存在缓存的解析数据,则直接将域名 example.com 对应的 IP 地址返回给 Web 浏览器,跳至步骤 9。若本地域名服务器没有查到缓存的解析数据,则继续步骤 2。

  2. 本地域名服务器向根域名服务器进行查询。

  3. 根域名服务器将 .com 顶级域名服务器的地址,返回给本地域名服务器。

  4. 本地域名服务器向 .com 顶级域名服务器发起 example.com 的查询请求。

  5. .com 顶级域名服务器将为 example.com 提供权威解析的权威域名服务器地址,返回给本地域名服务器。

  6. 本地域名服务器向权威域名服务器发起查询请求。

  7. 权威域名服务器将域名 example.com 对应的 IP 地址,返回给本地域名服务器。

  8. 本地域名服务器最后把查询的 IP 地址响应给 Web 浏览器。

  9. Web 浏览器通过 IP 地址访问网站服务器。

  10. 网站服务器返回网页信息。

image

递归解析(Recursive Query)

DNS 服务器帮你把整个查询流程走到底,中间任何一步都由这台服务器去处理,最后直接把最终结果返回给你。如:

  • 客户端将“请帮我查出 www.example.com IP”递交给本地 DNS(递归服务器)。

  • 递归服务器自己如果不知道答案,会去根 DNS、TLD、权威 DNS 不断发问,并跟进每一步;直到获得最终答案。

  • 用户只需要等递归服务器给出最后的解析结果即可。

特点

  • 用户只需问一次、等一次。

  • 递归服务器压力较大,需要走完整查询流程。

  • 这是客户端和本地 DNS 之间最常见的方式。

常见应用

  • 普通用户/PC/浏览器 :只有递归查询,不处理迭代查询。

  • 本地 DNS 服务器(如你的宽带运营商、公网 8.8.8.8、公司内网 DNS):通常承担递归解析的角色,对外(向根、TLD、权威 DNS)发起迭代查询。

  • 公共 DNS 服务器:对用户递归,对更上级 DNS 迭代。

迭代解析(Iterative Query)

DNS 服务器只帮你查“它知道的下一步线索”,如果自己没有答案就告诉你下一步去哪问,用户必须自己去完成整个查询流程。如:

  • 客户端问本地 DNS:“www.example.com IP 是多少?”

  • 本地 DNS 不知道,查问根 DNS。根 DNS 不直接回答 IP,而是答:“你去问 TLD 服务器”,这里的根 DNS 则在进行迭代解析。

  • 本地 DNS TLD 服务器,TLD 告诉你“去找这个权威 DNS”,这里的 TLD 服务器则在做迭代解析。

  • 直到找到权威服务器,获取最终结果。

特点

  • 每一步都需要客户端自己去问。

  • 服务器压力较小,但客户端负担大(通常不这样用)。

常见应用

  • DNS 服务器、TLD 服务器、权威 DNS 服务器。

  • 企业、学校等自建的 DNS 服务器。

  • 公共 DNS 服务器:对用户递归,对更上级 DNS 迭代。

DNS 缓存

DNS 缓存是将解析数据存储在靠近发起请求的客户端的位置,也可以说 DNS 数据是可以缓存在任意位置,最终目的是以此减少递归查询过程,可以更快的让用户获得请求结果。

TTL

英文全称 Time To Live ,这个值是告诉本地域名服务器,域名解析结果可缓存的最长时间,缓存时间到期后本地域名服务器则会删除该解析记录的数据,删除之后,如有用户请求域名,则会重新进行递归查询/迭代查询的过程。

IPV4、IPV6 双栈技术

双栈英文 Dual IP Stack,就是在一个系统中可同时使用 IPv6/ IPv4 这两个可以并行工作的协议栈。

DNS Query Flood Attack

指域名查询攻击,攻击方法是通过操纵大量傀儡机器,发送海量的域名查询请求,当每秒域名查询请求次数超过 DNS 服务器可承载的能力时,则会造成解析域名超时从而直接影响业务的可用性。

URL 转发

英文 Url Forwarding,也可称地址转向,它是通过服务器的特殊设置,将一个域名指向到另外一个已存在的站点。

edns-client-subnet

google 提交了一份 DNS 扩展协议,允许 DNS resolver 传递用户的 IP 地址给 authoritative DNS server。

DNSSEC

域名系统安全扩展(DNS Security Extensions),简称 DNSSEC。它是通过数字签名来保证 DNS 应答报文的真实性和完整性,可有效防止 DNS 欺骗和缓存污染等攻击,能够保护用户不被重定向到非预期地址,从而提高用户对互联网的信任。

移动解析 HTTPDNS 相关概念

应用终端

指专门用于网络接入的终端设备和应用服务,包括并不限于移动终端、物联网终端、APP 应用等。

DoH(DNS-over-Https)

用来加密的 DNS 请求流量,阿里云公共 DNS 通过 RFC 8484 指定的经过 TLS 加密的 HTTP 连接提供 DNS 解析。

DoT(DNS-over-TLS)

用来加密的 DNS 请求流量,阿里云公共 DNS 通过 RFC 7858 指定的经过 TLS 加密的 TCP 连接提供 DNS 解析。