Os endereços IP para cada uma das VMs devem ser configurados na própria VM, e não na máquina host.
Ele ajuda a visualizar cada uma das VMs e o host com suas próprias interfaces, mas apenas o host tem um cabo físico saindo delas, portanto, as interfaces de convidado da VM precisam ser conectadas à interface do host.
Você cria a ponte no arquivo / etc / networks / interfaces, da seguinte maneira:
auto lo br0 eth0
iface lo inet loopback
iface br0 inet static
bridge_ports eth0
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
Isso criará uma nova ponte quando a pilha de rede for iniciada (por exemplo, na inicialização) e adicionará sua interface a ela e fornecerá à bridge o endereço IP do host. Aqui você pode ver a ponte:
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.60a4ecf28d84 no eth0
Você pode tratar a interface br0 da mesma forma que a interface eth0 que ela contém.
Em seguida, nos arquivos de configuração do convidado, você tem uma linha como:
vif = ['bridge=br0, mac=00:16:3E:12:16:19']
Isto está dizendo, "dê a esta VM uma interface virtual e adicione-a à bridge br0, e dê a ela o seguinte mac".
Observe que a configuração de um endereço MAC não é necessária aqui, mas eu prefiro usar o DHCP para alocar um endereço IP estático aos convidados. Dessa forma, não preciso codificar nenhum endereço IP além de o host (e o servidor DHCP, que no meu caso é uma VM em si).
Em seguida, no convidado, basta configurá-lo como faria com qualquer outra máquina linux:
auto eth0
iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
gateway 192.168.1.1
Observe que isso está na configuração de rede da máquina guest .
Ao trazer a VM para cima, você verá que a ponte agora tem duas interfaces:
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.60a4ecf28d84 no eth0
vif1.0
Esse vif1.0 é a interface virtual do convidado. Agora, o convidado poderá fazer ping no gateway e se comunicar como se estivesse conectado diretamente à sua rede com um pouco de cabo.