Как выполнить настройку сети libvirt?¶
В настоящий момент по умолчанию при создании виртуальной машины для контроллеров и баз данных используется xml для определения сети следующего вида:
<network>
<name>ovs-network</name>
<forward mode='bridge'/>
<bridge name='br-ex'/>
<virtualport type='openvswitch'/>
<portgroup name='all-vlan' default='yes'>
</portgroup>
</network>
Где br-ex
- это мост, к которому будут подключаться интерфейсы виртуальных машин, ovs-network
- название сети.
При такой настройке сети в виртуальную машину будут пробрасываться все тегированные и не тегированные сети как есть для br-ex
.
Для того, чтобы сделать один vlan из br-ex не тегированным для виртуальной машины, необходимо перечислить нужные для проброса тегированные vlan и указать один не тегированный vlan:
<network>
<name>ovs-network</name>
<forward mode='bridge'/>
<bridge name='br-ex'/>
<virtualport type='openvswitch'/>
<portgroup name='all-vlan' default='yes'>
<vlan>
<tag id='4001' nativeMode='untagged'/>
<tag id='4020' />
</vlan>
</portgroup>
</network>
При такой настройке сети vlan 4001 будет проброшен в виртуальную машину как нетегированный vlan, а 4020 - как тегированный. Можно указать много тегированных vlan для проброса.
Также можно указать в одной сети несколько portgroup и указать нужное значение в настройках виртуальной машины.
Пример с несколькими portgroup:
<network>
<name>ovs-network</name>
<forward mode='bridge'/>
<bridge name='br-ex'/>
<virtualport type='openvswitch'/>
<portgroup name='all-vlan' >
<vlan>
<tag id='4001' nativeMode='untagged'/>
<tag id='4020' />
</vlan>
</portgroup>
<portgroup name='other1' >
<vlan>
<tag id='4002' nativeMode='untagged'/>
<tag id='4022' />
</vlan>
</portgroup>
</network>
Пример части xml для виртуальной машины, относящейся к сетевому интерфейсу:
<interface type='network'>
<mac address='52:54:00:2f:00:02'/>
<source network='ovs-network' portgroup='all-vlan'/>
<virtualport type='openvswitch'>
</virtualport>
<model type='virtio'/>
<mtu size='1500'/>
</interface>
Где portgroup='all-vlan'
- это параметр, который указывали ранее в настройках сети.
Команда создания сети:
virsh net-define /tmp/ovs-network.xml
Где /tmp/ovs-network.xml
- это файл, в котором описана сеть.
Команда активации сети:
virsh net-start ovs-network
Где ovs-network
- название созданной сети.
Команда задания активации сети после рестарта системы:
virsh net-autostart ovs-network