Глава 30. Виртуальные сети
OpenNebula позволяет создавать виртуальные сети, отображая их поверх физических.
При запуске новой ВМ OpenNebula подключит свои виртуальные сетевые интерфейсы (определяемые атрибутами NIC) к сетевым устройствам гипервизора, так как определено в соответствующей виртуальной сети. Это позволит ВМ иметь доступ к публичным и частным сетям.
onevnet
— инструмент управления виртуальными сетями в OpenNebula. Описание всех доступных опций утилиты
onevnet
можно получить, выполнив команду:
$ man onevnet
Вывести список виртуальных сетей можно, выполнив команду:
$ onevnet list
ID USER GROUP NAME CLUSTERS BRIDGE LEASES
2 oneadmin oneadmin VirtNetwork 0 onebr2 0
0 oneadmin oneadmin LAN 0 vmbr0 1
Вывести информацию о сети:
$ onevnet show 0
Создавать, редактировать, удалять и просматривать информацию о виртуальных сетях можно в веб-интерфейсе:
OpenNebula поддерживает следующие сетевые режимы:
(режим Сетевой мост) — сетевой адаптер ВМ напрямую соединяется с существующим мостом в узле виртуализации;
(режим VLAN) — сетевой адаптер ВМ соединяется с существующим мостом в узле виртуализации, а виртуальная сеть настраивается для изоляции VLAN 802.1Q;
— сетевой адаптер ВМ соединяется с существующим мостом в узле виртуализации, а виртуальная сеть реализует изоляцию с помощью инкапсуляции VXLAN;
— сетевой адаптер ВМ соединяется с существующим мостом Open vSwitch в узле виртуализации, а виртуальная сеть дополнительно обеспечивает изоляцию VLAN 802.1Q;
— сетевой адаптер ВМ соединяется с существующим мостом Open vSwitch в узле виртуализации, а виртуальная сеть дополнительно обеспечивает изоляцию с помощью инкапсуляции VXLAN и, при необходимости, VLAN 802.1Q.
Атрибут VN_MAD виртуальной сети определяет, какой из вышеуказанных сетевых режимов используется.
В этом режиме трафик ВМ передается напрямую через мост Linux на узлах гипервизора. Мостовые сети могут работать в трёх различных режимах в зависимости от дополнительной фильтрации трафика, выполняемой OpenNebula:
— сетевой мост без фильтрации, управляемый мост;
(сетевой мост с группами безопасности) — для реализации правил групп безопасности устанавливаются правила iptables;
(сетевой мост с правилами ebtables) — аналогично , плюс дополнительные правила ebtables для обеспечения изоляции L2 виртуальных сетей.
При фильтрации трафика необходимо учитывать следующее:
в режимах и для обеспечения сетевой изоляции можно добавлять тегированные сетевые интерфейсы;
режим предназначен для небольших сред без соответствующей аппаратной поддержки для реализации VLAN. Данный режим ограничен сетями /24 и IP-адреса не могут перекрываться в виртуальных сетях. Этот режим рекомендуется использовать только в целях тестирования.
На узле виртуализации необходимо создать сетевой мост для каждой сети, в которой будут работать ВМ. При этом следует использовать одно имя сети на всех узлах.
Таблица 30.1. Параметры виртуальной сети в режиме Bridged
Параметр
|
Значение
|
Обязательный
|
NAME
|
Имя виртуальной сети
|
Да
|
VN_MAD
|
Режим:
bridge — режим без фильтрации;
fw — фильтрация с группами безопасности;
ebtables — фильтрация с изоляцией ebtables;
|
Да
|
BRIDGE
|
Имя сетевого моста в узлах виртуализации
|
Нет
|
PHYDEV
|
Имя физического сетевого устройства (на узле виртуализации), которое будет подключено к мосту
|
Нет
|
AR
|
Диапазон адресов, доступных в виртуальной сети
|
Нет
|
Пример создания виртуальной сети с использованием конфигурационного файла:
Создать файл
net-bridged.conf
со следующим содержимым:
NAME = "VirtNetwork"
VN_MAD = "bridge"
BRIDGE = "vmbr0"
PHYDEV = "enp3s0"
AR=[
TYPE = "IP4",
IP = "192.168.0.140",
SIZE = "5"
]
Выполнить команду:
$ onevnet create net-bridged.conf
ID: 1
Пример создания виртуальной сети в веб-интерфейсе:
в левом меню выбрать пункт → , на загруженной странице нажать кнопку + и выбрать пункт Создать.
на вкладке указать название виртуальной сети:
на вкладке необходимо указать интерфейс сетевого моста, выбрать режим работы сети:
на вкладке можно указать диапазон IP-адресов, который будет использоваться при выделении IP-адресов для ВМ:
нажать кнопку Создать.
Если в качестве интерфейса моста указать интерфейс, через который производится управление и доступ к узлу, то при запуске ВМ этот интерфейс будет автоматически включен в сетевой мост и соединение с сервером будет потеряно. Поэтому в качестве интерфейса, на котором будут автоматически создаваться сетевые мосты (bridge) для виртуальных сетей, необходимо использовать отдельный сетевой интерфейс (в примере интерфейс enp3s0).