1.DNS全称为Domain Name System,中文为计算机域名系统,它是由解析器和域名服务
器组成的,域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址,并具有将域名转换为IP地址功能的服务器的服务器。其中域名必须对应一个IP地址,而IP地址不一定有域名。将域名映射为IP地址的过程就称为“域名解析”。在Internet上域名与IP地址之间是一对一(或者多对一)的,域名和IP地址之间的转换过程称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 就是进行域名解析的服务器。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。域名的最终指向是IP
2.DNS解析过程
(1)当客户机提出查询请求时,首先在本地计算机的缓存中查找,如果在本地无法查询信息,则将查询请求发给DNS服务器
(2)首先客户机将域名查询请求发送到本地DNS服务器,当本地DNS服务器接到查询后,首先在该服务器管理的区域的记录中查找,如果找到该记录,则进行此记录进行解析,如果没有区域信息可以满足查询要求,服务器在本地缓存中查找
(3)如果本地服务器不能在本地找到客户机查询的信息,将客户机请求发送到根域名DNS服务器
(4)根域名服务器负责解析客户机请求的根域名部分,它将包含下一级域名信息的DNS 服务器地址地址返回给客户机的DNS服务器地址
(5)客户机的DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到再下一级域名的DNS服务器地址
(6)按照上述递归方法逐级接近查询目标,最后在有目标域名的DNS服务器上找到相应IP地址信息
(7)客户机的本地DNS服务器将递归查询结构返回客户机
(8)客户机利用从本地DNS服务器查询得到的IP访问目标主机,就完成了一个解析过程
(9)同时客户机本地DNS服务器更新其缓存表,客户机也更新期缓存表,方便以后查询3.DNS处于IP分层结构的应用层,是一种应用层协议,DNS协议数据单元封装在UDP
数据报文中,DNS服务器端使用公用端口号为53(使用UDP协议0x11)
4.DNS协议报文结构:
该报文是由12字节的首部和4个长度可变的字节组成
标识字段:占用两个字节,由客户程序设置,并由服务器返回结果
Opcode:4bits字段,通常值为0(标准查询),其他值为1(反向查询)和2(服务器状态请求)
AA:1bits标志表示授权回答(authoritive answer),该名字服务器是授权于该领域的
TC:1bits字段,表示可截(truncated),使用UDP时,它表示当应答的总长度超过512字节时,只返回前512个字节
RD:1bits字段,表示期望递归,该比特能在一个查询中设置,并在一个响应中返回,这个标志告诉名字服务器必须处理这个查询,也称为一个递归查询,如果该位为0,且被请求的名字服务器没有一个授权回答,它就返回一个能解答该查询的其他名字服务器列表,这称为迭代查询(期望递归)
RA:1bits字段,表示可用递归,如果名字服务器支持递归查询,则在响应中将该bit置为1(可用递归)
zero:必须为0
rcode:是一个4bit的返回码字段,通常值为0(没有差错)和3(名字差错),名字差错只有从一个授权名字服务器上返回,它表示在查询中指定的域名不存在
随后的4个bit字段说明最后4个变长字段中包含的条目数,对于查询报文,问题数通常是1,其他三项为0,类似的,对于应答报文,回答数至少是1,剩余两项可以使0或非0 5.DNS查询报文中每个查询问题的格式
查询类:通常值为1,表示是互联网的地址,也就是IP协议族的地址
查询类型:有很多种查询类型,一般最常用的查询类型是A类型(表示查找域名对应的IP 地址)和PTR类型(表示查找IP地址对应的域名)
查询名为要查找的名字,它由一个或者多个标示符序列组成,每个标示符已首字符字节数的计数值来说明该表示符长度,每个名字以0结束,计数字节数必须是0~63之间,该字段无需填充字节,如:
6.DNS响应报文中的资源记录格式:
域名:记录中资源数据对应的名字,它的格式和查询名字段格式相同
类型:类型说明RR的类型码,类通常为1,指Internet数据
生存时间:客户程序保存该资源记录的秒数
资源数据长度:说明后面资源数据的数量,该数据的格式依赖于类型字段的值,对于类1(A 记录)记录数据室4字节的IP地址
资源数据:服务器端返回给客户端的记录数据
7.数据包DNS查询(DNS query)
8.数据包DNS 响应(DNS Response)
9.ARPA域的作用:
10.根据in-arpa.arpa,我们可以根据IP地址解析对应的域名,在DNS的服务器中,将要
解析的点分十进制的IP地址反过来写,然后将该域名根在这个反写的IP地址的后面就形成了一个反向查询域,然后客户端就可以根据该IP地址来解析对应的域名了
11.DDNS(即所谓的动态DNS)工作原理:
(1)Client端每次开机或者是重新拨号后,获取一个新的IP之后,会向DNS Server端提出IP和域名更新要求,希望Server端变更域名与IP的对应关系
(2)Server端接受Client端要求之后,会去查询Client提供的账号密码是否正确,正确之后会立即修改Server本身对于你的主机名称的设定值
12.
13.