我有一台带有 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 文件,然后您将其加载),并创建客户端接口。