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台?(知乎)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章