同一物理网卡下的每个虚拟机都有单独的 LAN/DHCP 网络

同一物理网卡下的每个虚拟机都有单独的 LAN/DHCP 网络

我有一台带有 2 个 NIC(eth0 和 eth1)的裸机服务器。eth0 连接到互联网,eth1 连接到 LAN(DHCP 必须)。现在我需要多个这样的服务器。所以我决定使用虚拟机。我在这个裸机下安装了 5 个虚拟机,每个虚拟机都使用 eth0 连接互联网,使用 eth1 连接 LAN(DHCP)。

问题在于,每个虚拟机(eth1)都为物理 eth1 下的所有设备提供 DHCP/IP。我想虚拟化这部分。每个虚拟机都有单独的 eth1 DHCP LAN 网络。如何实现?

答案1

根据设置(我无法评论,但 OP 需要添加详细信息,例如使用的虚拟机系统(VMWare、QEMU KVM 等)、网络接口或主机和客户端的 netplan yaml 文件)我假设 OP 希望每个 VM 在同一个网络上都有不同的 IP。

要向每个客户端虚拟机添加单独的子网,需要一个主机桥接设备,以便虚拟机创建一个接口,并准备好合适的 DHCP 服务器来分配地址。

网络接口方法:

# Do not set an IP - bind IP to bridge
auto eno2
iface eno2 inet manual

# Bridge interface
auto br26eno2
iface br26eno2 inet static
      address 172.26.0.10
      netmask 255.255.255.0
      bridge_ports eno2
      gateway 172.26.0.201
      # Options for VM's:
      bridge_fd 0
      bridge_stp off
      bridge_fd 0
      bridge_maxwait 0

Netplan(在桥梁方面有些奇怪,因此主要用于生产,我们已经禁用它,而改用网络):

ethernets:
    eno2:
      dhcp4: yes
      dhcp6: no
      # Don't wait for it to come up during boot.
      optional: true

bridges:
    br8eno1:
      interfaces: [ eno2 ]
      dhcp4: no
      dhcp6: no

然后将桥接到 VM 主机(libvirt 使用 xml 文件,然后您将其加载),并创建客户端接口。

相关内容