DNS协议

说明

  1. 如果只想关注计算机网络的应用:
    • 熟悉:DNS协议的作用和应用
  2. 如果想深入学习计算机网络:
    • 熟悉:DNS协议的全部内容。

概述

DNS协议(Domain Name System,域名系统)是互联网的核心服务之一,主要用于实现​​域名与IP地址的相互映射​​,使人类可读的域名(如www.example.com)转换为机器可识别的IP地址(如192.0.2.1)。

作用

  • ​​域名解析​​:将用户友好的域名转换为对应的IP地址,解决直接记忆复杂IP地址的难题。
  • ​​反向解析​​:支持通过IP地址查询域名,用于网络管理和安全审计。
  • ​分布式数据库​​:采用层次化、分布式的架构,避免单点故障,提升系统的可靠性和扩展性。

域名

因特网采用层次树状结构的域名结构,域名的结构有若干部分组成,各分量之间用“点”隔开,分别代表不同级别的域名:

... .三级域名.二级域名.顶级域名
  1. 每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母。
  2. 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边。
  3. 完整的域名不超过255个字符。

域名系统既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。
各级域名由其上一级的域名机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构ICANN进行管理。

例如:cas.dhu.edu.cn

cas:四级域名,dhu:三级域名,edu:二级域名,cn:顶级域名

alt text

域名服务器类型

  • 根域名服务器:根域名服务器是最高层次的域名服务器。每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。因特网上共有13个不同IP地址的根域名服务器。当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器。这就加快了DNS的查询过程,同时也更合理地利用了因特网的资源。
  • 顶级域名服务器:这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名服务器的IP地址)。
  • 权限域名服务器:这些域名服务器负责管理某个区的域名。每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外,权限域名服务器还知道其下级域名服务器的地址。
  • 本地域名服务器:本地域名服务器不属于上述的域名服务器的等级结构。当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。

域名解析

为了提高DNS的查询效率,在域服务器中广泛的使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计数器并删除超过合理时间的项

迭代查询

alt text

  1. 用户在浏览器中输入一个域名:www.server.com
  2. 客户端会先向本地 DNS 服务器询问这个域名对应的IP地址。如果缓存里的表格能找到 www.server.com,则它直接返回 IP 地址。如果本地 DNS 服务器缓存中没有该网址的IP地址,就去问根DNS服务器。根 DNS 服务器不会进行域名解析,而是指明一条道路。
  3. 根 DNS 解析服务器收到域名之后,发现其后缀是.com,归.com顶级 DNS 服务器管理。于是将.com顶级DNS服务器的IP地址发给本地 DNS 服务器。让本地DNS服务器向该服务器询问。
  4. 本地 DNS 服务器向.com顶级 DNS 服务器询问 www.server.com 的IP地址。.com顶级 DNS 服务器给出 server.com 的权限 DNS 服务器的IP地址。权限 DNS 服务器中有域名和IP地址的映射关系。
  5. 本地 DNS 服务器向 server.com 的权限 DNS 服务器询问 www.server.com 的IP地址。权限 DNS 服务器查询之后返回给本地 DNS 服务器的IP地址。本地 DNS 服务器向客户端返回结果。

递归查询

alt text

  1. 用户在浏览器中输入一个域名:www.server.com
  2. 客户端会先向本地 DNS 服务器询问这个域名对应的IP地址。如果缓存里的表格能找到 www.server.com,则它直接返回 IP 地址。如果本地 DNS 服务器缓存中没有该网址的IP地址,就去问根 DNS 服务器。
  3. 根 DNS 解析服务器收到域名之后,发现其后缀是.com,归.com顶级 DNS 服务器管理。于是向.com顶级 DNS 服务器询问 www.server.com 的IP地址。
  4. 顶级 DNS 服务器 server.com 的权限 DNS 服务器的IP地址。该权限 DNS 服务器询问 www.server.com 的IP地址。权限 DNS 服务器查询之后返回顶级 DNS 服务器。
  5. 顶级 DNS 服务器向根 DNS 服务器返回结果,根 DNS 服务器向本地 DNS 服务器返回结果,本地 DNS 服务器向客户端返回结果。