Назад | Перейти на главную страницу

vlan qemu: гость слушает других гостей

Я пытаюсь смоделировать небольшую сеть из 3 машин с помощью QEMU, где машина (deb1) напрямую связана с хостом, а другие 2 машины (deb2, deb3):

                      Host 
                       |
           -----------deb1-----------
           |                        |
          deb2                     deb3          

deb1 подключен к 2 разным сетям, одна (vlan 1) соединяет deb1 с хостом, другая (vlan 2) соединяет deb1 с двумя другими машинами, поэтому deb1 должен прослушивать порт 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 и deb3 оба должны быть подключены к deb1, единственная разница - их 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

После запуска трех машин я просто устанавливаю их IP-адрес:

deb1:

ifconfig eth1 192.168.10.2

deb2:

ifconfig eth0 192.168.10.3

deb3:

ifconfig eth0 192.168.10.4

Здесь проблема: связь между deb1 и deb2 работает отлично, но не между deb1 и deb3. Когда я выключаюсь deb2 тогда связь между deb1 и deb3 начать работать. Это выглядит как deb1 не может слушать одновременно deb2 и deb3.

Что я делаю не так?

Я действительно следил за тем, что написано в это руководство (см. раздел 4.2 Сеть только для гостей: «Если вы хотите использовать более трех гостевых ОС, просто подключитесь к одной. Используйте другой macaddr.») и Эта статья

-net socket,{listen|connect}=... подходит только для соединений 1: 1.

netstat -anp46|grep qemu показывает, что нет связи между qemu из deb3 и deb1.

Использовать -net socket,mcast=... вместо.