你所忽略的DNS---DNS实战及深度解读

网友投稿 281 2022-11-07

你所忽略的DNS---DNS实战及深度解读

很多人没有dns的概念,或者仅仅知道dns负责解析从域名到ip地址,这对普通人来说,也许是够的,但对于开发者来说,就远远不够了。

很多中高级开发者的眼中的DNS是这样的(以百度为例):

读取hosts文件(位于C:\Windows\System32\drivers\etc)--->isp-dns

总的过程是没有问题,但忽略了很多细节。下面我们就深入的探讨一下:

1.dns的访问过程

(以window为例)

浏览器-->window缓存-->hosts文件-->DNS服务

1.1.浏览器(以chrome为例)dns

chrome://net-internals/#dns

1.2 window 本身缓存

1.3 hosts文件

位于C:\Windows\System32\drivers\etc,不再赘述。注意,一个域名可以配置多个ip地址,一个ip也可以配置多个域名上。

1.4. ISP-DNS

nslookup解析

C:\Users\dell>nslookup baidu.com服务器: ns-pd.online.sh.cnAddress: 202.96.209.133非权威应答:名称: a.shifen.comAddresses: 115.239.210.27 115.239.211.112Aliases: baidu.com

>>上海电信的服务,ip地址为202.96.209.133

>>百度的别名为:a.shifen.com

>>对应的ip地址为

115.239.210.27

115.239.211.112 两个ip地址起到灾备和负载均衡的作用

更多详细的信息可以使用dig +trace命令(window本身不支持dig命令,需要额外安装,请自行搜索windows下的dig安装过程,不再赘述)

2.dns报文深度解析

浏览器访问baidu.com,使用wireshar进行抓包,并保存。

Wireshark(前称Ethereal)是一个网络报文分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

单独分析抓取的dns报文:

2.1 请求报文

request报文:

响应报文

2.2.数据封装过程

数据封装一般分五层,第一层是应用层协议的数据,第二层分别是TCP封装,第三层IP封装,第四层以太网封装,最后转成二进制的物理报文

2.2.1 dns报文协议

分析一下请求报文

详细信息可以参考附录【3】

2.2.2 UDP协议封装

udp报文格式

其对应的封装如下

2.2.3 ip报文封装

ip报文格式

2.2.3 以太网协议

源mac+源mac地址+协议类型

3.总结

dns是上层协议,和http,ftp等协议是一层的,如下图所示

dns报文的封装是基于UDP的,udp之下是ip的封装,ip又基于以太网的封装,最终转成二进制信号发送出去。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:英特尔开始规范USB4接口标识 如何理解USB3.2 Gen1和USB3.0
下一篇:一文详细了解几款UART接口WiFi模块及WiFi+蓝牙组合模块
相关文章

 发表评论

暂时没有评论,来抢沙发吧~