vlan qemu:来宾正在聆听其他来宾的声音

vlan qemu:来宾正在聆听其他来宾的声音

我正在尝试使用 QEMU 模拟一个由 3 台机器组成的小型网络,其中一台机器(deb1)直接与主机相连,另外两台机器(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之间的连接开始正常工作。看起来无法同时监听和。deb1deb3deb1deb2deb3

我究竟做错了什么?

我实际上遵循了本指南(查看第 4.2 节仅限客户机的网络:“当您想使用三个以上的客户机操作系统时,只需连接到一个。使用不同的 macaddr。”)和本文

答案1

-net socket,{listen|connect}=...仅适用于1:1连接。

netstat -anp46|grep qemu说明 deb3 的 qemu 与 deb1 之间没有任何联系。

改用-net socket,mcast=...

相关内容