基本概念

本文为您介绍云解析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.comwww.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.comIP”递交给本地DNS(递归服务器)。

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

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

特点

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

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

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

常见应用

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

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

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

迭代解析(Iterative Query)

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

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

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

  • 本地DNSTLD服务器,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解析。