56.3.2. Маршрутизируемая сеть
Маршрутизируемую сеть следует использовать только тогда, когда использовать сеть на базе моста невозможно (либо из-за ограничений хостинг-провайдера, либо из-за того, что сервер libvirt подключен к локальной сети по беспроводной сети.) При настройке маршрутизируемой сети все ВМ находятся в одной подсети, маршрутизируемой через виртуальный коммутатор. Пакеты, предназначенные для этих адресов, статически маршрутизируются на сервер libvirt и пересылаются на ВМ (без использования NAT).
Маршрутизируемая сеть возможна только в том случае, если имеется достаточно IP-адресов, чтобы выделить один для каждой ВМ.
В первую очередь необходимо выбрать, какие IP-адреса сделать доступными для ВМ (в примере 192.168.30.0/24). Так как маршрутизатор локальной сети не знает, что выбранная подсеть расположена на сервере libvirt, необходимо настроить статический маршрут на маршрутизаторе локальной сети, например:
# ip -4 route add 192.168.30.0/24 via 192.168.0.175
Далее необходимо создать виртуальную сеть.
Настройка виртуальной сети в консоли:
Создать файл
/tmp/routed_network.xml
со следующим содержимым:
<network>
<name>routed_network</name>
<forward mode="route"/>
<ip address="192.168.30.0" netmask="255.255.255.0">
<dhcp>
<range start="192.168.30.128" end="192.168.30.254"/>
</dhcp>
</ip>
</network>
Определить новую сеть, используя файл
/tmp/routed_network.xml
:
# virsh net-define /tmp/routed_network.xml
Сеть routed_network определена на основе /tmp/routed_network.xml
# virsh net-autostart routed_network
Добавлена метка автоматического запуска сети routed_network
# virsh net-start routed_network
Сеть routed_network запущена
Настройка виртуальной сети в virt-manager:
Созданную виртальную сеть можно назначить ВМ.
Назначение маршрутизируемой сети в консоли:
Новая ВМ:
# virt-install --network network=routed_network ...
Существующая ВМ:
открыть конфигурацию XML ВМ в текстовом редакторе:
# virsh edit alt-server
найти раздел <interface>:
<interface type='network'>
<mac address='52:54:00:85:11:34'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
если необходимо изменить существующий интерфейс, заменить название сети на routed_network:
<interface type='network'>
<mac address='52:54:00:85:11:34'/>
<source network='routed_network'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
если необходимо добавить дополнительный интерфейс Ethernet, добавить новый раздел <interface>, (libvirt сгенерирует случайный MAC-адрес для нового интерфейса, если <mac> опущен):
<interface type='network'>
<source bridge="routed_network"/>
</interface>
Назначение маршрутизируемой сети в virt-manager: