我正在尝试使用QEMU模拟一个由3台机器组成的小型网络,其中一台机器(deb1)直接连接到主机和另外两台机器(deb2,deb3):
Host
|
-----------deb1-----------
| |
deb2 deb3 deb1连接到两个不同的网络,一个(VLAN1)连接deb1和主机,另一个(VLAN2)连接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。
我做错了什么?
我实际上遵循了用this guide编写的内容(请看4.2节仅访客网络:“当您想要使用三个以上的访客OSes时,只需连接到一个。使用不同的what地址。”)和this article
发布于 2016-03-21 04:53:02
-net socket,{listen|connect}=...仅适用于1:1连接。
netstat -anp46|grep qemu显示,deb3的qemu与deb1之间没有联系。
请改用-net socket,mcast=...。
https://stackoverflow.com/questions/34272185
复制相似问题