Я пытаюсь использовать libvirt + dsnmasq + openvswitch для создания мостовой сети с включенным dhcp. Я создал сеть libvirt со следующим XML:
<network connections='1'>
<name>ovs-net</name>
<uuid>fffd6fea-a753-4fca-b684-76fb24866ba3</uuid>
<forward mode='bridge'/>
<bridge name='ovsbr0'/>
<vlan>
<tag id='1298'/>
</vlan>
<virtualport type='openvswitch'/>
</network>
Я могу создавать гостей, используя эту сеть, например:
<domain>
...
<interface type='network'>
<mac address='52:54:00:a6:3b:48'/>
<source network='ovs-net'/>
<model type='virtio'/>
<address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0001'/>
</interface>
</domain>
Я могу вручную настроить IP-адрес гостя и отправлять входящий / исходящий трафик. Когда я редактирую ovs-net xml, чтобы включить IP-адрес и конфигурацию DHCP, он не работает следующим образом:
virsh net-edit --network ovs-net
<network connections='1'>
<name>ovs-net</name>
...
<ip address='10.20.101.121' netmask='255.255.255.0'>
<dhcp>
<range start='10.20.101.121' end='10.20.101.130'/>
<host mac='52:54:00:7a:6d:e7' name='test.com' ip='10.20.101.120'/>
</dhcp>
</ip>
</network>
error: unsupported configuration: Unsupported <ip> element in network ovs-net with forward mode='bridge'
Мои знания в области сетевых технологий ограничены, поэтому я не уверен, возможно ли то, что я пытаюсь сделать.
Схема по существу поддерживает два класса настройки. Управляемая установка основана на традиционном мостовом устройстве, которое libvirt создает сама и запускает dnsmasq для службы DNS / DHCP. Неуправляемая установка основана на традиционном мосте, openvswitch или macvtap или нескольких других вариантах. В последнем случае libvirt фактически ничего не создает - это просто способ связать libvirt с внешней сетевой инфраструктурой. Таким образом, libvirt не будет запускать dnsmasq для них, поэтому он отклоняет ваш запрос на настройку диапазонов IP-адресов / dhcp.