研究DNS相关知识

基本概念

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。 它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。 DNS使用TCP和UDP端口。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。 开始时,域名的字符仅限于ASCII字符的一个子集。

标准端口: 53。

 

DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。

本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作。我的目标是,读完此文后,你就能完全理解DNS。

DNS 大概是什么?

DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。

举例来说,如果你要访问域名math.stackexchange.com,首先要通过DNS查出它的IP地址是151.101.129.69

如果你不清楚为什么一定要查出IP地址,才能进行网络通信,建议先阅读我写的《互联网协议入门》。

 

相关定义

权威DNS:

权威DNS是经过上一级授权对域名进行解析的服务器,同时它可以把解析授权转授给其他人,如:
  COM顶级服务器可以授权dns.com这个域名的的权威服务器为NS.ABC.COM
  同时NS.ABC.COM还可以把授权转授给NS.DDD.COM
  这样NS.DDD.COM就成了ABC.COM实际上的权威服务器了
平时我们解析域名的结果都源自权威DNS。比如:
  dns.com的权威DNS服务器就是帝恩思的ns1.dns.com ns2.dns.com
  ali云的权威DNS服务器是:
      DNS9.HICHINA.COM
      DNS10.HICHINA.COM
  dnspod权威dns:
      NS3.DNSV3.COM
      NS3.DNSV3.COM

递归DNS:

负责接受用户对任意域名查询,并返回结果给用户。递归DNS可以缓存结果以避免重复向上查询。
平时使用最多的就是这类DNS,对公众开放服务,一般由网络运营商提供,自己可以架递归DNS提供服务
递归DNS一定要有可靠的互联网连接方可使用。比如:
  谷歌的8.8.8.8和8.8.4.4
  114的114.114.114.114和114.114.115.115都属于这一类DNS
你本地电脑上设置的DNS就是这类DNS

转发DNS:

负责接受用户查询,并返回结果给用户。
但此结果不是按标准域名解析过程得到的,而是直接把递归DNS的结果转发给用户。它也具备缓存功能。
他主要使用在没有直接的互联网连接,但可以连接到一个递归DNS那里,这时使用转发DNS就比较合适。
其缺陷是:
  直接受递归DNS的影响,服务品质较差。
如路由器里面的DNS就是这一类,用路由器的朋友可以看下本地电脑的DNS一般都是192.168.1.1

域名解析过程

用户—本地递归服务器—根权威服务器—COM权威服务器—xxorg.com权威服务器—用户
对顶级域服务器来说销售商有可控的写入权。

递归服务器怎么知道根权威服务器的地址?

很简单,在递归服务器上都保存有一份根服务器的地址列表。最新的根服务器地址列表在这里可以得到:
ftp://ftp.internic.net/domain/named.root

递归服务器每次查询域名都要向根那里找权威服务器吗?

不是的,一旦成功一次,递归服务器就会把权威服务器列表缓存下来
如COM顶级服务器列表可以缓存48小时

操作步骤:

  1. 在浏览器中输入www.qq.com 域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
  2. 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
  3. 如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
  4. 如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
  5. 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(http://qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找http://qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。
  6. 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。https://www.nslookuptool.com 可以查询在进行DNS修改后,域名被各个地区的域名服务器收录的情况,以及当前收录的域名对应的ip地址。
     

研究DNS相关知识_第1张图片

拓展信息

13台根DNS服务器在全球的放置:

美国VeriSign公司 2台
美国PSINet公司 1台
美国ISI(Information Sciences Institute) 1台
美国ISC(Internet Software Consortium) 1台
美国马里兰大学(University of Maryland) 1台
美国太空总署(NASA) 1台
美国国防部 1台
美国陆军研究所 1台
挪威NORDUnet 1台
日本WIDE(Widely Integrated Distributed Environments)研究计划 1台
网络管理组织IANA(Internet Assigned Number Authority) 1台
欧洲网络管理组织RIPE-NCC(Resource IP Europeens Network Coordination Centre) 1台

CANN在中国大陆授权的10家国际域名注册商:

ChinaSource Internet Service Co., Ltd.(中资源)
ename Co.,Ltd.(易名中国)
35 Technology Co., Ltd.(三五科技)
Beijing Innovative Linkage Technology Ltd.(新网互联)
Bizcn.com, Inc.(商务中国)
HiChina Web Solutions (Hong Kong) Limited(万网)
Inter China Network Software (Beijing) Co., Ltd.(3721)
OnlineNIC, Inc.(厦门精通,即中国频道)
Todaynic.com, Inc.(时代互联)
Xin Net Technology Corporation(新网)

小结

从整体对DNS有了大概的了解,很细节的东西还不是很清楚,需要自己手动搭建一个DNS服务实践一下
从现在的了解的情况来看,有几个时间:

  1. 域名解析时的TTL:递归DNS缓存过期时间:

    大多设置为10分钟
    域名请求递归DNS时,会直接从缓存中取数据,数据过期后,可能会:
    1. 直接请求顶级DNS,取得权威DNS,再请求二级权威DNS得到ip
    2. a请求超时,请求根DNS,再依次取得顶级DNS,二级权威DNS得到ip
  2. 顶级DNS更新权威DNS时间:

    这个大多是48小时内,最高可达72小时
    这也是我们遇到这个问题的根源所在
    

一些实用网站

https://www.nslookuptool.com
https://www.17ce.com

 

 

研究DNS相关知识_第2张图片

 

 

 

 

你可能感兴趣的:(Web学习笔录)