DNS原理详解

1.DNS简述

  DNS就是域名系统,是因特网中的一项核心的服务,是用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用记住能够被机器直接读取的IP数串。通过主机名,得到该主机名对应的IP地址的过程就是域名解析(或者叫主机名解析)。

  总结一点就是IP地址是面向主机的,而域名则是面向用户的。

  域名和IP的对应关系保存在host文件中。

2.DNS系统

  一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系。

  用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索DNS数据库,得到对应的IP地址。

  在域名解析的时候会优先查找hosts文件的内容。

3.DNS域名结构

  域名系统必须要保持唯一性。

  为了达到唯一性的目的,因特网在命名的时候采用了层次结构的命名方法:

  1. 每一个域名(英文域名)都是一个标号序列,用字母(A-z,a-z,大小写等价),数字(0-9)和连接符(-)组成。
  2. 标号序列总长度不能超过255个字符,它由点号分割成一个个的标号。
  3. 每个标号应该在63个字符之内,每个标号都可以看成一个层次的域名。
  4. 级别最低的域名写在左边,级别高的域名写在右边。

  域名服务主要是基于UDP实现的,服务器的端口号是53。

  DNS端口:53/tcp,53/udp。

 

  例如:www.baidu.com

  1. com:一级域名,表示这是一个企业域名。当然还有net(网络提供商),org(非盈利组织)等
  2. baidu:二级域名,指公司名。
  3. www:习惯用法。

4.域名的分级

  域名可以划分为各个子域名,子域名还可以继续划分为子域名的子域,这样就会出现顶级域名、二级域名、三级域名等。

国家顶级域名 中国:cn,美国:us,英国:uk....
通用顶级域名 com公司企业,edu教育机构,gov政府部门,mil军事部门,net网络,org非盈利组织.....
反向域名 arpa,用于PTR查询(IP地址转换成域名)

5.域名服务器

  域名是分成结构,域名服务器也是对应的层级结构。

  域名需要由遍及全世界的域名服务器去解析,域名服务器实际上就是装有域名系统的主机。

  由高到低进行层次划分,可以分为以下几个大类:

分类 作用
根域名服务器 最高层次的域名服务器,本地域名服务器解析不了的域名就会向其求助
顶级域名服务器 负责管理在该顶级域名服务器下注册的二级域名
权限域名服务器 负责一个区的域名解析工作
本地域名服务器 当一个主机发出DNS查询请求的时候,这个查询请求首先会发给本地的域名服务器

  一个域名服务器所负责的范围,或者说有管理权限的范围,就成为区。

  需要注意的是:

  1. 每个层的域名都有自己的域名服务器,最顶级的是根域名服务器。
  2. 每一级域名服务器都知道下级域名服务器的IP地址。
  3. 为了容灾,每一级至少设置两个或以上的域名服务器。

6.域名解析过程

  域名解析总体可以分为下面的过程:

  1. 输入域名后,会首先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据。
  2. 如果没有,就向上级域名服务器进行查找,依次类推。
  3. 最多回溯到根域名服务器,肯定可以找到这个域名的IP地址。
  4. 域名服务器自身也会进行一些缓存,把曾经访问过的域名和对应的IP地址缓存起来,可以加速查找过程。

  具体的描述如下:

  1. 主机先向本地域名服务器进行递归查询。
  2. 本地域名服务器采用迭代查询,向一个根域名服务器进行查询。
  3. 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址。
  4. 本地域名服务器向顶级域名服务器进行查询。
  5. 顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址。
  6. 本地域名服务器向权限服务器进行查询。
  7. 权限服务器告诉本地域名服务器所查询的主机的IP地址。
  8. 本地域名服务器最后把查询的结果告诉主机

 

   递归查询:本机向本地域名服务器发出一次查询请求,等待最总的结果。如果本地域名服务器无法解析,自己会以DNS客户端机器的身份向其他域名服务器查询,直到得到最终的IP地址告诉本机。

  迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉本地域名服务器下一步应该去哪里进行查询,然后它再去进行查询,每次它都是以客户端的身份去各个服务器进行查询。

7.DNS服务器的分类

 

  常见的DNS服务器就是两种:权威解析服务器和递归解析服务器。递归解析服务器也可以叫localDNS。

  权威解析服务器:

  DNS权威服务器保存域名空间中部分区域的数据。如果DNS服务器负责管辖一个或者多个区域时,称此DNS服务器为这些区域的权威服务器。

  根权威DNS或者二级权威服务器中的资源记录标记被指定为区域权威服务器的DNS服务器。通过资源记录中列出服务器,其他服务器就认为它是该区域的权威服务器。这意味着在 NS 资源记录中指定的任何服务器都被其他服务器当作权威的来源,并且能肯定应答区域内所含名称的查询。

  递归服务器:

  递归服务器在正常情况下,初始的时候里面没有任何域名解析数据,里面所有的域名解析数据都来自于它到权威解析服务器的查询结果,一旦查询完毕,递归服务器就会根据TTL时间在本地形成一条缓存记录,并为用户提供DNS解析的查询服务,这是递归服务器的功能。

posted @ 2021-08-11 10:48  coffee_kai  阅读(1220)  评论(0编辑  收藏  举报