本文已参与「新人创作礼」活动,一起开启掘金创作之路。
openstack上linux实例tcpdump抓包慢情况分析
1、实例网卡配置IP和openstack的port端口IP相同时,无论多网卡还是单网卡,tcpdump 抓包无延迟。二层包看着像被openstack网络重组
2、实例网卡不配置IP,单网卡或者所有网卡都不配置IP,tcpdump无延迟。二层报文截取。
3、实例有网卡不配IP,有网卡配IP,tcpdump有延迟。
报文和情况2,截图相同。
tcpdump源码分析
分析tcpdump使用pcap库抓包的流程。使用程序直接调用pcap库抓ARP报文。发现使用pcap库抓包,无延迟。
过滤器和捕获包分析
分析过滤器抓到的包和tcpdump捕获的包有差距
造成这种丢包的原因是由于libcap抓到包后,tcpdump上层没有及时的取出
其中“captured”的计数指的是应用层捕获到的数据。
通过分析可以确定,tcpdump分析显示数据包过程,出现卡顿,没有直接显示出来。通过tcpdump参数测试,可以分析确认,tcpdump显示抓到的数据包比较慢的原因是因为参数配置不正确。加上-n参数之后,tcpdmp抓包看到的数据库无延迟,可以直接抓到数据包。
tcpdump -n加禁止反向域名解析
反向域名解析会造成显示抓包显示,变慢。ssh、ftp连接服务,我之气也碰到了类似问题。ssh和ftp连接自己服务器的时候,会出现长时间卡顿,输完用户名之后,间隔很久才让我输入密码。linux下有类似配置。
vi /etc/ssh/sshd_config
UseDNS no
DNS反向解析,这个关闭之后linux的登录速度会变快很多。