pcap文件可读性差

pcap文件可读性差,第1张

域名查询(Domain Name Query)在Linux上的执行主要由glibc库函数 gethostbyname 与 gethostbyaddr 来完成,通过 strace 跟踪可知 gethostbyname 的执行流程如下:

注:关于DNS与 dig 命令的介绍请阅读 阮一峰 老师的文章 DNS原理入门 。

先介绍下我的系统环境:

没有 配置 nscd 的服务器上,用 strace 追踪 gethostbyname ,其大致流程摘录如下(省略的部分用 表示)。库函数 gethostbyname 的使用可参考 该页面 。

要想查看某个程序是否调用 gethostbyname ,只需用 ltrace 命令跟踪一下查看其库函数调用即可:

注:在 man gethostbyname 中有一句:

笔者所在公司的服务器上并没有配置 nscd ,但笔者的阿里云个人服务器上却默认配置了 nscd 。从 man nscd 摘录如下:

Linux服务器上一般都会配置 dnsmasq 服务,用于缓存DNS请求结果,节省应用程序的域名解析时间。笔者的笔记本 Ubuntu 1604 LTS 也默认配置了 dnsmasq ,同样笔者的 macOS Sierra 上也默认有一个叫 mDNSResponder 的服务。 dnsmasq 简介如下:

dnsmasq 通常会绑定本地 127001:53 ,假设配置的DNS服务器是Google Public DNS,则 dnsmasq 的配置 /etc/dnsmasqconf 一般如下:

这样, /etc/resolvconf 的配置如下。注意第一项 nameserver 是本地IP 127001 ,也就利用上了 dnsmasq 的DNS缓存功能。

网络上广泛使用的DNS服务器通常是 bind ,简介如下:

用 strace 追踪可知, dig 命令是通过读配置文件 /etc/resolvconf ,然后向其中列出的DNS服务器发出DNS请求。

在日常开发和学习中,遇到问题或对某个东西感到疑惑的时候,对程序进行调用跟踪和对网络进行抓包,是非常有效的分析方式。

用 strace 来跟踪系统函数调用,细节请参考 man strace 。

用 ltrace 来跟踪库函数调用,细节参考 man ltrace 。

用 wireshark (GUI)、 tshark 、 tcpdump 来进行网络抓包,细节参考各自的 man 说明页。

更加强大和复杂的动态追踪技术,请参考 SystemTap 和DTrace( DTrace for Linux 2016 , wikipedia ),我还没尝试过。还可以阅读大神章亦春(春哥)写的文章 动态追踪技术漫谈 。

以上就是关于pcap文件可读性差全部的内容,包括:pcap文件可读性差、Wireshark怎么自动保存网络数据包、gethostbyname与DNS等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10083584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存