openstack上linux实例tcpdump抓包慢情况分析

612 阅读2分钟

​本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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的登录速度会变快很多。