Como forçar o Vagrant a ter uma única interface de rede em ponte

7

Usando o vagrant 1.7.2 no OSX (MacBook Pro), o Ubuntu 14.04 convidados, o VirtualBox 4.3.26. O Mac está conectado ao mundo através da interface WiFi padrão.

Eu quero que as caixas do Vagrant usem a rede em ponte na LAN local como sua principal (e única) interface. Isso é necessário para experimentar o tcptraceroute, que não faz a coisa certa através da rede NAT. O que eu tenho agora no meu Vagrantfile é:

Vagrant.configure(2) do |config|
  config.vm.provider "virtualbox"
  config.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)"
  config.vm.box = 'ubuntu/trusty64'
end

E o que eu entro na caixa do Vagrant é:

$ ip -o -4 a
1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft forever preferred_lft forever
2: eth0    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0\       valid_lft forever preferred_lft forever
3: eth1    inet 172.16.69.16/24 brd 172.16.69.255 scope global eth1\       valid_lft forever preferred_lft forever

(172.16.69 / 24 é o meu endereço de LAN). Se eu remover manualmente eth0 e mudar a rota padrão para 172.16.69.1 , então eu posso usar o VirtualBox como eu quero:

# ifdown eth0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/08:00:27:56:a8:46
Sending on   LPF/eth0/08:00:27:56:a8:46
Sending on   Socket/fallback
DHCPRELEASE on eth0 to 10.0.2.2 port 67 (xid=0x69745103)
# route add -net default gw 172.16.69.1
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use    Iface
0.0.0.0         172.16.69.1     0.0.0.0         UG    0      0        0 eth1
172.16.69.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

E agora tcptraceroute funciona bem.

A minha pergunta é - como posso configurar o Vagrantfile para evitar trazer a interface eth0 como uma interface NAT e apenas trazê-la como uma única interface em ponte?

Eu tentei brincar com config.vm.network "private_network" como parcialmente explicado no link , mas até onde eu segui tudo o que fez foi adicionar interfaces à caixa, e não substituir a inetface padrão do NAT em eth0 .

    
por Amos Shapira 15.08.2015 / 07:57

1 resposta

7

Você pode tentar adicionar o adapter: 1 à configuração. Embora eu ainda encontre algum problema com isso. Veja se isso te ajudará a partir de algum lugar.

Exemplo:

config.vm.network "public_network", bridge: "Broadcom BCM5709C", adapter: "1", ip: "192.168.x.xx"

Você ainda terá a eth1, que é uma rede somente de host ...

    
por 09.10.2015 / 12:33