VirtualBox来宾之间的流量未显示在tcpdump中


9

我有一个测试环境设置,其中包含4个运行CentOS 6的VirtualBox来宾。每个来宾都有一个连接到桥接适配器的网络设备,该适配器是我PC上的主要网络连接,并且可以访问静态IP地址(范围为192.168.2.95-98)。通过我网络上的任何设备。

有时我需要能够出于一种或多种原因分析数据包。首先,我只是通过SSH进入路由器,并使用tcpdump捕获来宾的所有数据包。好吧,它没有按计划工作...

使用tcpdump显示的唯一数据包是98和我的网络中除访客之外的其他设备之间的流量。98是唯一与我的网络上的其他设备通信的访客(SSH流量除外);其余的与其他客人交流。

我开始按主机过滤每个来宾IP地址的tcpdump。我最终一路剥离下来,倾倒了一切。由于所有数据包都通过我PC上的网络适配器,因此我捕获了该卡的所有数据包仍然没有成功!

使用桥接网络时,VirtualBox会处理,注入和删除适配器上的数据包。如果该数据包要发送给另一个来宾,VirtualBox是否保留该数据包并将其转发给适当的来宾?如果是这样,我如何捕获那些数据包?


您的主机是什么操作系统?
重载了2012年

主机上的tcpdump(或其他数据包嗅探器)是否显示任何流量?我想您的主机OS / VirtualBox足够聪明,实际上并没有将数据包发送到路由器,只是让它们回到同一接口上。
Goyuix 2012年

@heavyd -这是Windows 7中
洛根毕比

@Goyuix-这就是为什么我捕获了卡上的所有数据包的原因。它显示的内容与从路由器转储的内容相同。如果确实保留了数据包,我在哪里可以找到它们?
Logan Bibby

Answers:


6

当您使用VirtualBox的桥接网络模式时,VirtualBox就像主机计算机的物理接口和虚拟网络之间的虚拟交换机一样。在虚拟网络上的计算机之间传播的数据包永远不会到达主机网络堆栈中的tcpdump可以拾取它们的位置,因此您看不到来自主机的流量。

您可以尝试使用VirtualBox的内置网络跟踪功能。这是一个调试工具,但是它会生成pcap文件,并且易于安装。要启用网络跟踪,可以在VBoxManage命令行中使用以下--nictrace*选项:

VBoxManage modifyvm [your-vm] --nictrace[adapter-number] on --nictracefile[adapter-number] file.pcap

尝试了一下,它就像一个魅力。这就是我所需要的!我希望我可以投票10次...您不知道这个问题困扰了我多长时间。
洛根·毕比

1
知道为什么在guest虚拟机中tcpdump-ing 不能捕获VM到VM的流量吗?我不太在乎主机IP堆栈。而是希望能在来宾操作系统中正确运行。从表面上看,这是一个合理的期望,因为来宾网络堆栈大概应该像往常一样工作。那怎么了 tcpdump
ulidtko '16

@ulidtko我建议您使用您的特定详细信息(包括OS-es,版本和网络配置)创建一个新问题。
重载了
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.