一、DNS概述

       DNS是Domain Name System(域名系统)的简称。DNS可以为计算机、服务以及接入互联网或局域网的任何资源提供分层的域名解析功能。DNS提供了很

目录

一、DNS概述

二、域名概述

三、IP概述

 三、DNS域名解析全过程

四、参考文献


多功能,其中最主要的功能就是进行域名与IP之间的解析。在互联网中标记唯一一台计算机使用的是IP地址,通过合法的IP地址,我们可以与全世界任何一台主机进行通信。然而以人类现有的智慧与记忆力很难将大量的IP地址背诵下来,这时使用域名系统就可以将难以记忆的数字IP地址与容易记忆的域名建议映射关系,用户通过输入域名,计算机会寻找指定的DNS服务器,请求服务器帮助解析该域名对应的IP地址,成功解析后,将获得该域名对应的真实IP地址,然后使用该IP地址与对方通信。

       应用在互联网中的域名系统 DNS 被设计成一个层次树状结构的联机分布式数据库系统,并且采取的是客户服务器的方式。DNS 使大多数名字都在本地进行解析,只有少量的解析需要在互联网通信,因此效率很高。采取分布式的一个好处是,即使单个计算机出了故障,也不会妨碍 DNS 系统的正常运行。

二、域名概述

       上述中我们引出了域名,那么什么是域名呢?

       域名是指:通常由左右两部分组成,左边是TCP/IP协议的种类(例如http,https)和万维网所构成的无识别性的通用前缀部分,右边是由英文中的句点“.”依次隔开的一级、二级、三级甚至四级域名代码所构成的域名代码部分,如http://www.ipr.gov.cn

       域名结构图如下:

DNS域名负载均衡 dns负责域名的解析_DNS

 

三、IP概述

       IP地址是指互联网协议地址(Internet protocol address),它为互联网上每一个网络和每一台主机分配一个逻辑地址。IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数,例点分十进制IP地址(100.4.5.6),实际上32位二进制数(01100100.00000100.00000101.00000110)。常见的IP地址分为IPv4和IPv6两大类,在此不在对此叙述。

       对于IP地址类别解释如下:

 

    

DNS域名负载均衡 dns负责域名的解析_https_02

DNS域名负载均衡 dns负责域名的解析_https_03

 

 三、DNS域名解析全过程

      DNS域名解析过程采用  递归查询 和 迭代查询

1.如果DNS查询的域名是本地缓存没有的,那么将以DNS客户方式向根服务器发送报文查询,而不是主机自己查询。所以产生的结果要不是报错,要么是返回查询的ip地址。

 

2.迭代查询是指根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器下一步应该去哪。

 

     DNS查询中涉及到四个DNS服务器

  • DNS recursor - recursor可以被认为是一个图书管理员,被要求在图书馆的某个地方找到一本特定的书。DNS recursor是一个服务器,旨在通过Web浏览器等应用程序从客户端计算机接收查询。通常,recursor负责发出其他请求以满足客户端的DNS查询。
  • 根名称服务器 - 根服务器是将人类可读主机名转换(解析)为IP地址的第一步。它可以被认为是图书馆中指向不同书籍书籍的索引 - 通常它可以作为对其他更具体位置的参考。
  • TLD名称服务器 - 顶级域名服务器(TLD)可以被视为库中特定的书架。此名称服务器是搜索特定IP地址的下一步,它托管主机名的最后一部分(在https://www.baidu.com中,TLD服务器是“com”)。
  • 权威名称服务器 - 这个最终名称服务器可以被认为是书架上的字典,其中可以将特定名称翻译成其定义。权威名称服务器是名称服务器查询中的最后一站。如果权威名称服务器可以访问所请求的记录,它将把请求的主机名的IP地址返回给发出初始请求的DNS Recursor(图书管理员)。

DNS域名负载均衡 dns负责域名的解析_DNS_04

 

    DNS查询步骤:

  1. 浏览器缓存: 如果从浏览器开始,浏览器首先会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,就直接返回。浏览器的缓存也有一些限制,比如大小限制和时间限制。缓存时间一般在几分钟到几小时不等,太短了缓存命中率低,太长了容易更新不及时。
  2. 操作系统缓存:如果浏览器缓存未找到,浏览器就会去操作系统中查找DNS解析结果,这个解析文件在windows中放在c:\windows\system32\drivers\etc\下面,平时以host来做测试就用了这个。
  3. LDNS(local dns): 如果都未找到,那就会找到本地的DNS服务器(recursive dns server)。这个服务器一般不会太远,一般就由移动、电信这种运营商来提供。服务器会缓存上一次的结果来提升效率。如果缓存未找到,那就会向Root nameserver发请求,即向根域名服务器发请求。
  4. Root nameserver: 根域名服务器返回给LDNS一个所查询的主域名服务器(gTLD Server),也就是顶级域名服务器,如.com、.cn、.org等,全球只有13台左右
  5. LDNS:回到LDNS,拿到了Root nameserver返回的结果,向下一级TLD查找。
  6. TLD nameserver:顶级域名服务器 返回 对应的Authoritative nameserver的地址。
  7. LDNS: 再次回到LDNS,拿到TLD nameserver返回的结果,向下一级Authoritative nameserver查找。
  8. Authoritative nameserver:查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP地址。
  9. LDNS:最后缓存这个域名和IP的对应关系, 并把结果返回给请求方。

 

 

四、参考文献

1.   DNS学习小结

2.   什么是DNS

3.    DNS域名解析

4.   DNS域名解析服务器