Трафик между гостями VirtualBox не отображается в tcpdump

9

У меня есть тестовая среда с 4 гостями VirtualBox, работающими с CentOS 6. У каждого есть одно сетевое устройство, подключенное к мостовому адаптеру, который является моим основным сетевым соединением на моем ПК, со статическим IP-адресом (в диапазоне от 192.168.2.95-98) любым устройством в моей сети.

Иногда мне нужно иметь возможность анализировать пакеты по той или иной причине. Сначала я просто подключил SSH к маршрутизатору и использовал tcpdump для захвата всех пакетов от гостей. Ну, это не работает, как планировалось ...

Единственными пакетами, которые обнаруживаются с помощью tcpdump, является трафик между 98 и другими устройствами в моей сети, кроме гостей. 98 - единственный гость, который общается с другими устройствами в моей сети (кроме трафика SSH); Остальные общаются с другими гостями.

Я начал фильтровать tcpdump по хосту для каждого гостевого IP-адреса. Я в конечном итоге зачистки весь путь вниз к демпингу все . Поскольку все пакеты проходят через сетевой адаптер на моем ПК, я перехватил все пакеты для этой карты до сих пор безуспешно!

VirtualBox изменяет, внедряет и удаляет пакеты на адаптере при использовании сетевого моста. Если пакет предназначен для передачи другому гостю, сохраняет ли VirtualBox пакет и передает его соответствующему гостю? Если так, как я могу захватить эти пакеты?

Логан Бибби
источник
Какая ОС у вас на хосте?
тяжело
И показывает ли tcpdump (или другой анализатор пакетов) на вашем хосте трафик? Я предполагаю, что ваша операционная система / VirtualBox достаточно умна, чтобы на самом деле не отправлять пакеты на ваш маршрутизатор, а только чтобы они возвращались на тот же интерфейс.
Goyuix
@heavyd - это Windows 7.
Логан Бибби
@Goyuix - вот почему я захватил все пакеты на карте. Он показывает то же самое, что и дамп с моего роутера. Если он хранит пакеты, где я могу их найти?
Логан Бибби

Ответы:

6

Когда вы используете режим сетевого моста VirtualBox, VirtualBox действует как виртуальный коммутатор между физическим интерфейсом вашего хост-компьютера и виртуальной сетью. Пакеты, проходящие между компьютерами в виртуальной сети, никогда не попадают в точку сетевого стека хоста, где tcpdump может их забрать, поэтому вы не можете видеть этот трафик с хоста.

Вы можете попробовать использовать встроенную функцию отслеживания сети VirtualBox . Это инструмент отладки, но он генерирует файлы pcap и прост в установке. Чтобы включить трассировку сети, вы можете использовать VBoxManageкомандную строку с --nictrace*параметрами:

VBoxManage modifyvm [your-vm] --nictrace[adapter-number] on --nictracefile[adapter-number] file.pcap
heavyd
источник
Попробовал, и это сработало как шарм. Это все, что мне нужно! Хотелось бы, чтобы я проголосовал за это 10 раз ... Вы не представляете, как долго эта проблема мучила меня.
Логан Бибби
1
Любая идея , почему tcpdump-ную внутри гость не улавливает VM-к-VM трафик? Меня не волнует стек IP хоста; скорее, я ожидал бы, что tcpdumpзапуск в гостевой ОС будет корректным. На первый взгляд, это разумное ожидание, так как стек гостевой сети, вероятно, должен работать как обычно. Так что не так?
ulidtko
@ulidtko Я бы порекомендовал создать новый вопрос с вашими конкретными данными, включая ОС, версии и сетевые конфигурации.
тяжело