DNS解析服务
一、DNS简介
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
二、DNS查询办法
1.Windows查询办法
在Windows平台下,使用命令行工具,输入nslookup,返回的结果包括域名对应的IP地址(A记录)、别名(CNAME记录)等
2.ESP32查询办法
在ESP32连接网互联网后,可以使用AT指令来进行查询:
>>AT+CIPDOMAIN="baidu.com"
三、DNS数据包结构
1、回话标识
回话标识为从设备端自定义字段(2byte),用户可以自由设备,服务器在收到DNS请求后会将该字段内容重新发送给从设备,以便从设备进行区分;
2、标志
(1)QR(1bit)查询/响应标志,为查询,1为响应
(2)opcode(4bit)表示标准查询,1表示反向查询,2表示服务器状态请求
(3)AA(1bit)表示授权回答
(4)TC(1bit)表示可截断的
(5)RD(1bit)表示期望递归
(6)RA(1bit)表示可用递归
(7)rcode(4bit)表示返回码,表示没有差错,3表示名字差错,2表示服务器错误(Server Failure)
3、数量字段(总共8字节):
Questions、Answer RRs、Authority RRs、Additional RRs各自表示后面的四个区域的数目。Questions表示查询问题区域节的数量,Answers表示回答区域的数量,Authoritative namesversers表示授权区域的数量,Additional recoreds表示附加区域的数量
4、
四、数据包发送内容解析
10 34 01 00 00 01 00 00 00 00 00 00 03 77 77 77 06 66 75 68 6f 6d 65 03 6e 65 74 00 00 01 00 01
10 34 //会话标识
01 00 //报文参数
“报文参数”拆分解析图表
00 01 //问题数为1个
00 00 00 00 00 00 //此六个字节分别是应答数、授权机构数和附加信息数,这个报文是查询报文,全部为0x0000
03 77 77 77 06 66 75 68 6f 6d 65 03 6e 65 74 00 //实际查询的IP地址,www.fuhome.net
00 01 //要求域名转换为IPv4地址
00 01 //要求查询的是因特网的域名
五、数据包接送内容解析
10 34 81 80 01 01 03 77 77 77 06 66 75 68 6F 6D 65 03 6E 65 74 01 01 3F 01 01 1E 04 73 1C 5D C9
10 34 //回话标识
81 80 //报文参数
01 //查询报文数
01 //应答数
03 77 77 77 06 66 75 68 6F 6D 65 03 6E 65 74 //实际应答的IP地址,www.fuhome.net
01 01 3F 01 01 1E
04 //IP地址长度
73 1C 5D C9 //实际对应的IP地址:115.28.93.63.201
六、实际比对效果
七、
领取专属 10元无门槛券
私享最新 技术干货