Le trafic entre les invités VirtualBox ne s'affiche pas dans tcpdump

9

J'ai une configuration d'environnement de test avec 4 invités VirtualBox exécutant CentOS 6. Chacun a un périphérique réseau connecté à un adaptateur ponté, qui est ma connexion réseau principale sur mon PC, avec une adresse IP statique (allant de 192.168.2.95-98) accessible par n'importe quel appareil sur mon réseau.

Parfois, je dois pouvoir analyser des paquets pour une raison ou une autre. Au début, je viens de SSH dans mon routeur et utilisé tcpdump pour capturer tous les paquets des invités. Eh bien, cela ne fonctionne pas comme prévu ...

Les seuls paquets qui apparaissent à l'aide de tcpdump sont le trafic entre 98 et d'autres appareils sur mon réseau en plus des invités. 98 est le seul invité qui communique avec d'autres appareils sur mon réseau (en plus du trafic SSH); le reste communique avec les autres clients.

J'ai commencé par filtrer tcpdump par hôte pour chacune des adresses IP invitées. J'ai fini par le dépouiller jusqu'à tout vider . Étant donné que tous les paquets transitent par l'adaptateur réseau sur mon PC, j'ai capturé tous les paquets de cette carte sans succès!

VirtualBox modifie, injecte et supprime les paquets sur l'adaptateur lors de l'utilisation d'un réseau ponté. Si le paquet doit aller à un autre invité, VirtualBox conserve-t-il le paquet et le transmet-il à l'invité approprié? Si oui, comment puis-je capturer ces paquets?

Logan Bibby
la source
Quel OS est votre ordinateur hôte?
Heavyd
Et tcpdump (ou un autre renifleur de paquets) sur votre hôte affiche-t-il du trafic? Je suppose que votre système d'exploitation / VirtualBox hôte est suffisamment intelligent pour ne pas envoyer de paquets à votre routeur uniquement pour qu'ils reviennent directement sur la même interface.
Goyuix
@heavyd - c'est Windows 7.
Logan Bibby
@Goyuix - C'est pourquoi j'ai capturé tous les paquets sur la carte. Il montre la même chose que le vidage de mon routeur. S'il garde les paquets, où puis-je les trouver?
Logan Bibby

Réponses:

6

Lorsque vous utilisez le mode réseau ponté de VirtualBox, VirtualBox agit comme un commutateur virtuel entre l'interface physique de votre ordinateur hôte et le réseau virtuel. Les paquets voyageant entre les ordinateurs du réseau virtuel n'atteignent jamais un point dans la pile de mise en réseau hôte où tcpdump peut les récupérer, vous ne pouvez donc pas voir ce trafic provenant de l'hôte.

Vous pouvez essayer d'utiliser la fonction de traçage réseau intégrée de VirtualBox . Il s'agit d'un outil de débogage, mais il génère des fichiers pcap et est construit dans un environnement facile à configurer. Pour activer le traçage réseau, vous pouvez utiliser la VBoxManageligne de commande avec les --nictrace*options:

VBoxManage modifyvm [your-vm] --nictrace[adapter-number] on --nictracefile[adapter-number] file.pcap
lourd
la source
Je l'ai essayé et cela a fonctionné comme un charme. C'est tout ce dont j'avais besoin! J'aimerais pouvoir voter 10 fois ... Vous ne savez pas depuis combien de temps ce problème me tourmente.
Logan Bibby
1
Avez-vous une idée pourquoi tcpdump-l'invité interne ne capture pas le trafic de machine virtuelle à machine virtuelle? Je ne me soucie pas tant de la pile IP hôte; je m'attendrais plutôt à le voir tcpdumpfonctionner correctement dans l'OS invité. En apparence, c'est une attente raisonnable, car la pile du réseau invité devrait probablement fonctionner comme d'habitude. Alors, qu'est-ce qui ne va pas?
ulidtko
@ulidtko Je recommanderais de créer une nouvelle question avec vos détails spécifiques, y compris les systèmes d'exploitation, les versions et les configurations réseau.
heavyd