我对 Linux 的网络知识非常有限,我一直在尝试为每个 VM 分配静态 IP 地址,因为它们需要相互通信。
我一直在阅读一些有关 TUN/TAP 接口的网络 QEMU 文档,以及使用 qemu-ifup 和 qemu-ifdown 配置 br0 的文档。但是,我刚刚从完全失去 wifi 连接中恢复过来。所以我决定看看我是否能得到一些关于具体该怎么做的指示。
本质上,配置需要从主机创建 3 个虚拟机并为其分配静态 IP,以便它们可以相互通信以及与主机通信。目前,所有虚拟机共享相同的 MAC 和 IP 地址。
我正在使用基本相同的命令启动虚拟机,并且我发现-net
需要修改参数。
QEMU VM 启动示例:
sudo ./qemu-system-x86_64 \
-drive file=drive.img,format=raw \
-boot d \
-k en-us \
-object can-bus,id=canbus0 \
-object can-bus,id=canbus1 \
-device mioe3680_pci,canbus0=canbus0,canbus1=canbus1 \
-object can-host-socketcan,id=canhost0,if=can0,canbus=canbus0,if=vcan0 \
-object can-host-socketcan,id=canhost1,if=can1,canbus=canbus1,if=vcan1 \
-m size=2048 \
-nic user,hostfwd=tcp::6022-:22 \
-netdev bridge,id=hn0, \
-smp 4 \
-enable-kvm &
我能够通过 ssh 进入这个可以ssh user@localhost -p 6022
正常工作的虚拟机。但是为了使我尝试编写的软件能够正常工作,这些虚拟机需要静态 IP 地址,因为它们之间必须进行 TCP 通信。
我的主机运行的是 Ubuntu 20.04,其中一台虚拟机运行的是 Ubuntu 16.04 Xenial,另一台虚拟机运行的是 Centos 7。
所以本质上我想要的配置是:
host = 192.168.1.80
vm1 = 192.168.1.2
vm2 = 192.168.1.22
vm3 = 192.168.1.3