У меня есть рабочий стол Ubuntu с настройкой виртуальных машин на основе Libvirt через мост virbr0. В настоящее время DHCP-сервер libvirt по умолчанию (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
У меня есть dhcp-сервер на моем хосте ubuntu, работающий на 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-сервер предоставлял IP-адрес гостевым виртуальным машинам вместо стандартного libvirt.
Как этого добиться.
Как упоминалось в комментариях.
Похоже, вам нужно связать вашу сеть виртуальных машин с локальным физическим устройством Ethernet. Подробности о мостовых сетях можно найти в документации 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>