Linux

如何在 virbr0 上禁用預設 DHCP 並從主機上的 DHCP 獲取 IP

  • February 22, 2020

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

我在 enp7s0 上執行的主機 ubuntu 上有一個 dhcp 伺服器

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 預設值。

如何實現這一點。

如評論中所述。

聽起來您需要將 VM 網路與本地物理乙太網設備橋接。可以在此處的 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>

引用自:https://serverfault.com/questions/1003855