Mon réseau est un peu simple: tous les ordinateurs de mon réseau local (bureau Ubuntu, Win7, XP netbook) connectés à un routeur domestique dlink connecté au modem câble du FAI. Le réseau local a un sous-réseau IP 10.10.10.0/24, la passerelle (le routeur dlink) est 10.10.10.1, les PC sont 10.10.10.100-120, via DHCP. Les PC partagent des dossiers entre eux (clic droit de base -> partager, c'est de la samba, non?). Jusqu'ici tout va bien.
Maintenant, le bureau Ubuntu a VirtualBox. Je prévoyais d'installer des ordinateurs virtuels en mode bac à sable pour tester les logiciels malveillants (et surveiller la façon dont ils "appellent leur pays"). J'ai donc installé une machine virtuelle Ubuntu dont le réseau est défini sur NAT (le mode par défaut, le sous-réseau 10.0.2.0/24, je suppose).
Alors j’ouvre Nautilus dans la VM, je vais sur "réseau", et à ma grande surprise ... le VM est capable de voir tous les dossier partagé dans le LAN de l'hôte !!!
Comment? Les "dossiers partagés" ne fonctionnent-ils pas uniquement sur le réseau local? Comment se fait-il qu'un VM résidant dans un autre sous-réseau puisse accéder, par exemple, à un dossier partagé de la machine Win7? Ils ne sont pas dans le même réseau local! (ce serait le mode "ponté" de Virtualbox, n'est-ce pas?). Et non, je ne parle pas de la fonctionnalité "Dossier partagé" de VirtualBox (qui mappe un lecteur hôte en tant que partage réseau sur l'invité), je ne l'utilise pas.
Il me manque donc clairement des connaissances fondamentales sur le fonctionnement des dossiers partagés et de NAT. Je suppose que NAT isolerait la VM de mon réseau local tout en permettant de naviguer sur Internet. Je suis très surpris qu'il ait été capable de voir les groupes de travail de mon réseau local même en étant dans un sous-réseau différent.
La question est donc: comment est-ce possible? Comment cette relation entre VirtualBox, Shared Folders et NAT fonctionne-t-elle? Et comment configurer la VM pour qu’elle ne puisse pas voir le réseau local de l’invité mais puisse quand même naviguer sur Internet?
Chapitre 6. Réseaux virtuels :
Sur une application de l'hôte ou sur un autre ordinateur du même réseau que l'hôte, il semble que les données aient été envoyées par l'application VirtualBox de l'hôte, à l'aide d'une adresse IP appartenant à l'hôte. VirtualBox écoute les réponses aux paquets envoyés, les reconditionne et les renvoie à la machine invitée sur son réseau privé.
Mise en réseau dans VirtualBox (Oracle Blogs):
Chaque machine virtuelle pense être sur son propre réseau isolé. Lorsqu'ils envoient leur trafic via la passerelle (10.0.2.2), VirtualBox réécrit les paquets pour les faire apparaître comme provenant de l'hôte plutôt que de l'invité (exécuté à l'intérieur de l'hôte).
Comme sur un hôte physique, NAT empêche les connexions distantes, mais autorise les connexions sortantes. Je ne pense pas qu’il existe un mode de réseau permettant de distinguer votre réseau local du reste de l’Internet.
Juste un coup dans le noir, vous avez bien dit que l'invité d'ubuntu était le 10.0.2.0/24. Le 24 les mettrait sur le même sous-réseau non? 255.255.255.0