1 votes

Comment faire un simple pont réseau dans Vagrant ?

J'essaie de mettre en place la démo la plus basique d'un pont réseau dans Vagrant. J'ai deux machines dans le même sous-réseau, mais sur des LAN différents, et une machine pont avec deux interfaces et un pont réseau qui se configure dans un script de provisionnement.

Voici mon Vagrantfile :

$bridge_script = <<SCRIPT
sudo apt-get update
sudo apt-get install -y bridge-utils
sudo brctl addbr br0
sudo brctl addif br0 eth1 eth2
sudo ifconfig br0 up
SCRIPT

Vagrant.configure(2) do |config|
  config.vm.define "machine1" do |machine1|
    machine1.vm.box = "hashicorp/precise64"
    machine1.vm.network "private_network", ip: "192.168.1.2",
      virtualbox__intnet: "lan1"
  end

  config.vm.define "bridge" do |bridge|
    bridge.vm.box = "hashicorp/precise64"
    bridge.vm.network "private_network", ip: "0.0.0.0",
      virtualbox__intnet: "lan1"
    bridge.vm.network "private_network", ip: "0.0.0.0",
      virtualbox__intnet: "lan2"
    bridge.vm.provision :shell, inline: $bridge_script
  end

  config.vm.define "machine2" do |machine2|
    machine2.vm.box = "hashicorp/precise64"
    machine2.vm.network "private_network", ip: "192.168.1.3",
      virtualbox__intnet: "lan2"
  end
end

Je n'arrive pas à faire en sorte que l'une des machines envoie un ping à l'autre avec succès. Utilisation de tcpdump J'ai découvert qu'une requête ARP est passée de machine1 jusqu'à machine2 mais quand machine2 répond, la réponse ne parvient même pas à eth2 sur bridge . (Je ne vois la réponse ARP que lorsque j'écoute sur le réseau de l'entreprise). eth1 sur machine2 .

Comment faire pour que ça marche ?

1voto

seanyboy Points 3170

Il s'avère que par défaut VirtualBox ne vous permet pas d'avoir des NICs promiscuous, vous devez l'activer explicitement.

J'ai ajouté les lignes suivantes dans le fichier bridge définition et les choses ont commencé à fonctionner :

bridge.vm.provider :virtualbox do |vb|
  vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"]
  vb.customize ["modifyvm", :id, "--nicpromisc3", "allow-all"]
end

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X