我有一台 Ubuntu 桌面,通过 virbr0 桥接设置了基于 Libvirt 的虚拟机。目前,libvirt 的默认 DHCP 服务器 (dnsmasq) 提供 IP 地址分配。
root@ngadre-Inspiron-3542:/home/ngadre# virsh net-dumpxml default
<network>
<name>default</name>
<uuid>0cc9820a-aa74-4456-88e9-ee04256effcb</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:23:0b:1b'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
root@ngadre-Inspiron-3542:/home/ngadre/route-sim# brctl show virbr0
bridge name bridge id STP enabled interfaces
virbr0 8000.525400230b1b yes virbr0-nic
vnet0 --> NIC of VM connected to bridge
我的主机 ubuntu 上有一个 dhcp 服务器,运行在 enp7s0 上
enp7s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether b8:2a:72:cc:0a:db txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
我希望这个 DHCP 服务器为 VM 客户机提供 IP,而不是 libvirt 默认 IP。
如何实现这一点。
答案1
正如评论中提到的。
听起来你需要将虚拟机网络与本地物理以太网设备桥接起来。有关桥接网络的详细信息,请参阅 libvirt 文档这里
您可以配置客户机使用桥接接口:
<interface type='bridge'>
<source bridge='br0'/>
<mac address='00:16:3e:1a:b3:4a'/>
<model type='virtio'/> # try this if you experience problems with VLANs
</interface>