如何禁用 virbr0 上的默认 DHCP 并从主机上的 DHCP 获取 IP

如何禁用 virbr0 上的默认 DHCP 并从主机上的 DHCP 获取 IP

我有一台 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>

相关内容