Sockets qemu/kvm:无法将多台计算机连接到同一个套接字
我尝试使用QEMU模拟一个由3台机器组成的小网络,其中一台机器(deb1)直接与主机连接,另外两台机器(deb2,deb3): deb1连接到两个不同的网络,一个(vlan 1)将deb1连接到主机,另一个(vlan 2)将deb1连接到其他两台机器,因此deb1必须从端口1234侦听:Sockets qemu/kvm:无法将多台计算机连接到同一个套接字,sockets,networking,port,qemu,kvm,Sockets,Networking,Port,Qemu,Kvm,我尝试使用QEMU模拟一个由3台机器组成的小网络,其中一台机器(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 \ -
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:
deb3:
三台机器启动后,我只需设置它们的ip地址:
deb1:
deb2:
deb3:
问题是:
deb1
和deb2
之间的连接工作正常,
但不是介于deb1
和deb3
之间的。当我关闭deb2
时,deb1
和deb3
之间的连接开始工作。看起来deb1
无法同时侦听deb2
和deb3
我做错了什么
实际上,我遵循了中所写的内容(查看第4.2节仅来宾网络:“当您想要使用三个以上的来宾操作系统时,只需连接到一个。使用不同的macaddr。”)
和
-netsocket,{listen | connect}=…
仅适用于1:1连接
netstat-anp46 | grepqemu
表明deb3和deb1的qemu之间没有联系
改用-netsocket,mcast=…
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
kvm -hda deb2.img -m 256 -net nic,vlan=2,macaddr=52:54:00:12:34:01 \
-net socket,vlan=2,connect=localhost:1234
kvm -hda deb3.img -m 256 -net nic,vlan=2,macaddr=52:54:00:12:34:02 \
-net socket,vlan=2,connect=localhost:1234
ifconfig eth1 192.168.10.2
ifconfig eth0 192.168.10.3
ifconfig eth0 192.168.10.4