Product SiteDocumentation Site

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
Далее необходимо создать виртуальную сеть.
Настройка виртуальной сети в консоли:
  1. Создать файл /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>
    
  2. Определить новую сеть, используя файл /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:
Назначение маршрутизируемой сети ВМ