天天看点

DNS概念、相关概念及解析流程

DNS概念

DNS,即Domain Name System,中文翻译为网域名称系统。是一项联网的服务,本质上可以理解为一个分布式的数据库,提供将域名转换为IP的服务。

  • 使用TCP和UDP端口53;
  • 每一级域名长度的限制是63个字符;
  • 域名总长度则不能超过253个字符;

相关概念

根服务器

是DNS中最高级别的域名服务器,负责返回顶级域的服务器地址。

目前逻辑上有13台根服务器,13台是因为早期的UDP报文限制了返回报文中的资源记录数量。简单讲就是在DNS查询前先要初始化根服务器列表,需要先查下13台根服务器的地址,这个过程是通过UDP报文传输来完成的。而UDP报文最多传输13组【根服务器-IP】的资源内容,所以这个数目就定在13。

然而,之所以说逻辑上有13台,是因为目前通过任播技术,已经将根服务器的物理服务器数量扩大至很大的数量,而我们实际做DNS解析时会用到的根服务器实际上是离我们较近的一台物理服务器。

顶级域名

顶级域名就是域名的最后一段,例如blog.csdn.net的顶级域名就是.net。

顶级域名目前分为三类:

  • 国家和地区顶级域名(ccTLDs):.cn,.ai等;
  • 通用顶级域名(gTLDs):.com,.net等;
  • 新顶级域名(New gTLD):.xyz,.red等;

资源类型

资源类型即通过DNS解析能得到的结果数据。一般分为:

  • 主机记录(A记录):RFC 1035定义,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。
  • 别名记录(CNAME记录): RFC 1035定义,CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。
  • IPv6主机记录(AAAA记录): RFC 3596定义,与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。
  • 服务位置记录(SRV记录): RFC 2782定义,用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等。
  • NAPTR记录:RFC 3403定义,它提供了正则表达式方式去映射一个域名。NAPTR记录非常著名的一个应用是用于ENUM查询。

DNS解析流程

DNS解析,一般指的是正向解析,也就是根据域名查找对应的IP的过程。当然也有反向解析,即根据IP查找域名。反向解析不常用,这里也不做讨论。DNS解析流程分为两种:递归和迭代。

  • 递归:互联网用户向DNS服务器解析域名的过程。
  • 迭代:多见于DNS服务器之间相互查询。
递归解析

举个例子,用户请求blog.csdn.net的域名解析。在不考虑本地缓存的情况下:

1)请求本地DNS服务器(运营商分配)或者你指定的公共DNS服务器(例如8.8.8.8),如果有缓存返回;

2)本地DNS服务器没有,则向根域名服务器请求

.net

这个顶级域名服务器的地址;

3)收到

.net

顶级域名服务器地址后,请求该服务器,查询

csdn.net

这个域名服务器地址;

4)接着去

csdn.net

服务器去查询

blog.csdn.net

这个域名的地址,返回后以此返回给用户,此为递归过程;

迭代解析

迭代解析:A问B,B不知,答去问C,A复问C,C亦不知,答去问D,A复问D,D答,完。

参考文献:

  1. 根域名服务器-维基百科
  2. DNS-维基百科
  3. 百度DNS-帮助中心
  4. 根域名服务器只有13台?(知乎)

继续阅读