Виртуальные машины и контейнеры

Общие сведения

На платформе маршрутизатора кроме встроенного программного обеспечения EcoRouterOS может быть запущено программное обеспечение сторонних производителей. Для этого используются технологии виртуализации двух типов:

  • полная виртуализация на базе QEMU/KVM;
  • контейнерная виртуализация на базе Docker.

Полная виртуализация позволяет запускать операционные системы и эмулировать платформы, поддерживаемые QEMU/KVM. Если стороннее программное обеспечение работает на Linux и не требует эмуляции дополнительного оборудования, то более подходящим вариантом будет контейнерная виртуализация на основе одной ОС.

Функционал виртуальных машин и контейнеров позволяет отказаться от приобретения и поддержки дополнительных серверов и разместить непосредственно на маршрутизаторе программное обеспечение для различных сетевых сервисов.

При конфигурировании виртуальных машин и контейнеров необходимо различать два варианта взаимодействия:

  • управление виртуальной машиной, которое производится внешними средствами (создание, запуск, остановка, уничтожение);
  • конфигурирование подключения интерфейсов виртуальной машины к портам EcoRouter, которое делается из командной строки EcoRouterOS.

Рисунок


Внимание! При использовании сетевых интерфейсов с драйвером virtio необходимо отключить TCP offload engine, так как на данный момент существует ошибка при подсчёте контрольной суммы в TCP-заголовке.

Отключить TCP offload engine можно следующими способами:

  1. В ОС на виртуальной машине выполнить следующую команду:
ethtool --offload eth0 tx off
  1. В virsh отредактировать свойства сетевого интерфейса, добавив следующие строки:
<host csum='off' gso='off' tso4='off' tso6='off' ecn='off' ufo='off' mrg_rxbuf='off'/>
<guest csum='off' tso4='off' tso6='off' ecn='off' ufo='off'/>

Для этого необходимо выполнить следующие действия:

2.1. подключиться к удалённому хосту:

virsh -c qemu+tls://admin@ecorouter/system

2.2. остановить виртуальную машину:

shutdown virt_name

2.3. войти в режим редактирования xml-файла настроек для этой машины:

edit virt_name

2.4. в секцию interface добавить следующие строки:

<driver>
 <host csum='off' gso='off' tso4='off' tso6='off' ecn='off' ufo='off' mrg_rxbuf='off'/>
 <guest csum='off' tso4='off' tso6='off' ecn='off' ufo='off'/>
</driver>

2.5. сохранить файл и выйти;

2.6. запустить виртуальную машину и проверить применение данных опций: ethtool -k ifname