为多个 QEMU 虚拟机提供静态 IP

为多个 QEMU 虚拟机提供静态 IP

我对 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

相关内容