DNS是一套分布式的域名服务系统。在每台服务器上存放着大量的机器名和IP地址的映射,并且是动态更新的。
网络客户端使用DNS协议向DNS服务器查询目标主机的IP。
域名结构
级别低的域名在左边,级别高的域名在右边。
域名服务器
不同级别的域名服务器分别存放下级域名对应的服务器的地址。
解析域名时通过逐渐向下寻找找到目的域名的IP地址
域名解析过程
两个步骤:
一:本机向本地域名发送DNS请求报文。(递归查询)
二:本地域名服务器向本机回应一个DNS响应报文(迭代查询)。
- 递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机
- 迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询
DNS查询应答报文:
16位标识:标记一对一的DNS查询和应答
16位标志:用于协商具体通信方式和反馈通信状态。
接下来的4个字段为最后4个字段资源记录数目,长度都为16位。对于查询报文,一般包含一个查询问题,其余三个则为0
对于应答报文,应答资源记录数至少为1,其余则可为0或非0。
查询问题:
16位查询类型(A,CNAME,PTR)和16位查询类(1)
应答字段,授权字段,额外信息字段都使用资源记录格式(RR)格式