我试图使用QEMU模拟一个由3台机器组成的小网络,其中一台机器(deb1)直接连接到主机和其他2台机器(deb2,deb3):
Host
|
-----------deb1-----------
| |
deb2 deb3 deb1连接到两个不同的网络,一个(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:1234deb2和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:1234deb3:
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.2deb2:
ifconfig eth0 192.168.10.3deb3:
ifconfig eth0 192.168.10.4这里的问题是:deb1和deb2之间的连接工作得很完美,但deb1和deb3之间的连接却不起作用。当我关闭deb2时,deb1和deb3之间的连接就开始工作了。看起来deb1不能同时收听deb2和deb3。
我做错了什么?
实际上,我遵循了用本指南编写的内容(请看4.2节中的客户专用网络:“当您想使用三个以上的来宾OSes时,只需连接到其中一个。使用不同的macaddr)。”和这篇文章
发布于 2016-03-21 07:08:13
-net socket,{listen|connect}=...只适用于1:1连接。
netstat -anp46|grep qemu表明,deb3的qemu与deb1之间没有联系。
使用-net socket,mcast=...代替。
https://serverfault.com/questions/742926
复制相似问题