【发布时间】:2015-12-14 16:39:44
【问题描述】:
我正在尝试使用 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 时,deb1 和 deb3 之间的连接开始工作。看起来deb1 无法同时收听deb2 和deb3。
我做错了什么?
我实际上遵循了this guide 中所写的内容(请参阅第 4.2 节仅限访客的网络:“当您想使用三个以上的访客操作系统时,只需连接到一个。使用不同的 macaddr。”) 和this article
【问题讨论】:
标签: sockets networking port qemu kvm