debian怎么配置静态ip地址
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~