文章目录
  1. 域名系统概述
  2. 互联网的域名结构
  3. 域名服务器
    1. 域名解析

域名系统概述

域名系统DNS用来将计算机的域名解析为计算机的IP地址。DNS报文格式如下。

 

  • 16位标识字段用于标记一对DNS查询与应答;
  • 16位标志字段用于协商具体的通信方式与反馈通信状态,该字段细节如下图;
    • QR:查询/应答标志。0表示查询,1表示应答;
    • opcode:定义查询与应答的类型。0表示标准查询,1表示反向查询(由IP地址获取主机域名),2表示请求服务器状态;
    • AA:授权应答标志。仅由应答报文使用,1表示域名服务器是授权服务器;
    • TC:截断标志。仅当DNS报文使用UDP协议时使用。由于UDP数据报有长度限制,因此过长的DNS报文将被截断。1表示DNS报文超过512字节并被截断;
    • RD:递归查询标志。1表示执行递归查询,0表示执行迭代查询;
    • RA:允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询;
    • zero:未使用;
    • rcode:4位返回码。0:无错误,3:域名不存在;

 

  • 之后4个字段分别指出DNS报文最后4个字段的资源记录数目。
  • 查询问题格式如下。
    • 查询名:以一定格式封装要查询的主机域名;
    • 查询类型:如何执行查询操作。类型A(值为1):获取目标主机的IP地址,类型CNAME(值为5):获得目标主机别名,类型PTR(值为12):方向查询;
    • 查询类:通常为1,指获取因特网地址;

 

  • 其他三个字段都使用资源记录格式。其格式如下图。
    • 32位域名、16位类型、16位类与对应查询问题的查询名、查询类型、查询类内容一致;
    • 32位生存时间:该查询记录的结果可被客户端缓存多长时间,以秒为单位;

 

互联网的域名结构

互联网的域名命名采用层次结构。

域名服务器

一个DNS服务器所负责管辖的范围称为区。这个DNS服务器就是这个区的权限域名服务器,它保存区中所有主机的域名到IP地址的映射。区包含于一个域。

互联网中的DNS服务器同样以层次结构组织。

  • 根域名服务器。本地域名服务器在遇到自己无法解析的域名时,统一求助根域名服务器;
  • 顶级域名服务器。管理在顶级域名下注册的所有二级域名。
  • 权限域名服务器。
  • 本地域名服务器。一台主机发出DNS查询请求时,查询报文首先发送到本地域名服务器。

可使用host命令访问DNS服务器。

1
host -t A www.baidu.com

域名解析

递归查询:若主机请求解析的域名在本地域名服务器中不存在,则本地域名服务器以DNS客户的身份,向根域名服务器发送查询请求。

迭代查询:根域名服务器收到本地域名服务器的查询请求后,要么给出要查询的IP地址,要么给出下一个查询请求对象的IP地址。本地域名服务器就这样进行迭代查询直到得知域名的IP地址或查询失败。

本地域名服务器将查询结果(IP地址或查询失败)返回给主机,并且将查询结果缓存,以便下次查询此域名能够快速响应。