-net socket,{listen|connect}=...
é adequado apenas para conexões 1: 1.
netstat -anp46|grep qemu
mostra que não há conexão entre o qemu de deb3 e deb1.
Use -net socket,mcast=...
em vez disso.
Estou tentando simular uma pequena rede de 3 máquinas usando o QEMU, onde uma máquina (deb1) está diretamente conectada com o host e as outras duas máquinas (deb2, deb3):
Host
|
-----------deb1-----------
| |
deb2 deb3
deb1 está conectado a 2 redes diferentes, um (vlan 1) conecta deb1 com o host, no outro (vlan 2) irá conectar deb1 com as outras duas máquinas, então deb1 deve escutar da porta 1234:
kvm -hda deb1.img -m 256 \
-net nic,vlan=1 -net user,vlan=1 -net nic,vlan=2,macaddr=52:54:00:12:34:57 \
-net socket,vlan=2,listen=localhost:1234
deb2 e deb3 ambos devem estar conectados ao deb1, a única diferença é o endereço mac:
deb2:
kvm -hda deb2.img -m 256 -net nic,vlan=2,macaddr=52:54:00:12:34:01 \
-net socket,vlan=2,connect=localhost:1234
deb3:
kvm -hda deb3.img -m 256 -net nic,vlan=2,macaddr=52:54:00:12:34:02 \
-net socket,vlan=2,connect=localhost:1234
Quando as três máquinas são iniciadas, basta definir seu endereço IP:
deb1:
ifconfig eth1 192.168.10.2
deb2:
ifconfig eth0 192.168.10.3
deb3:
ifconfig eth0 192.168.10.4
Aqui o problema:
a conexão entre deb1
e deb2
funciona perfeitamente,
mas não aquele entre deb1
e deb3
. Quando eu desligo deb2
, a conexão entre deb1
e deb3
começa a funcionar. Parece que deb1
não consegue ouvir ao mesmo tempo deb2
e deb3
.
O que estou fazendo de errado?
Na verdade, eu segui o que está escrito em este guia (veja a seção 4.2 Rede somente para convidados: "Quando você quiser usar mais de três sistemas operacionais convidados, basta conectar-se ao sistema operacional. Use macaddr diferente.") e este artigo
-net socket,{listen|connect}=...
é adequado apenas para conexões 1: 1.
netstat -anp46|grep qemu
mostra que não há conexão entre o qemu de deb3 e deb1.
Use -net socket,mcast=...
em vez disso.
Tags qemu kvm-virtualization vlan