Оглавление


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

ПК СВ поддерживает четыре сетевых режима:

  • режим "Сетевой мост" (Bridged) – ВМ напрямую соединяется с существующим мостом в узле виртуализации. Данный режим может быть настроен на использование групп безопасности и изоляции сети на уровне L2;
  • режим VLAN – виртуальные сети внедряются с применением технологии назначения портов на виртуальные локальные сети VLAN стандарта IEEE802.1Q (VLAN-тегирование стандарта IEEE802.1Q);
  • режим VXLAN – виртуальные сети задействуют сети VLAN, используя протокол VXLAN, основанный на UDP-инкапсуляции и групповой адресации IP;
  • режим Open vSwitch – аналогичен режиму VLAN, но использует программный коммутатор Open vSwitch (OVS) вместо сетевого моста. Группы безопасности данным режимом не поддерживаются.
Режим Open vSwitch не поддерживает классификационные метки и может использоваться только на минимальном уровне конфиденциальности.
Сетевой стек облачной сети может объединяться с внешним диспетчером IP-адресов (IPAM). Для этого необходимо добавить связующий элемент. 

В режиме "Сетевой мост" трафик ВМ напрямую передается через существующий сетевой мост в узлах виртуализации. При этом устанавливается один из режимов фильтрации трафика, применяемой в облачной сети:

  • режим "сетевой мост без фильтрации" (Bridged);
  • режим "сетевой мост с группами безопасности" (Bridged with Security Groups, далее по тексту – Security Group) – устанавливаются правила iptables для внедрения правил групп безопасности;
  • режим "сетевой мост с правилами ebtables" (Bridged with ebtables isolation, далее по тексту – Ebtables VLAN) – тоже что и для режима Security Group, но с дополнительными правилами ebtables для изоляции (L2) всех виртуальных сетей.

Параметры облачной сети

Параметры облачной сети объединяются в три группы:

  • параметры физической сети, которая будет ее поддерживать, включая сетевой драйвер;
  • доступное адресное пространство. Адресами, связанными с виртуальной сетью, могут быть IPv4, IPv6, IPv4-IPv6 с двумя стеками или Ethernet;
  • параметры контекстуализации (сетевые настройки виртуальных машин, которые могут включать, например, маски сети, сервера DNS или шлюзы).

Параметры физической сети

В группу параметров физической сети входят следующие параметры:

ПараметрПрименимостьОбязательныйОписание
NAMEДля всех режимовДаНаименование сети
VN_MADДля всех режимовДаДрайвер виртуальной сети, может принимать следующие значения:
  • bridge – для режима "сетевой мост без фильтрации" (Bridged)
  • fw – для режима "сетевой мост с группами безопасности" (Security Groups)
  • ebtables – для режима "сетевой мост с правилами ebtables" (Ebtables VLAN)
  • 802.1Q – для режима VLAN
  • vxlan – для режима VXLAN
  • ovswitch – для режима Open vSwitch
BRIDGEДля всех режимовОбязательный для режимов:
  • bridge
  • fw
  • ebtables
  • ovswitch

Имя сетевого моста на серверах виртуализации.

Необязательный параметр для режимов VLAN и VXLAN. В этом случае если значение параметра BRIDGE не определено, то сетевому мосту назначается наименование вида "onebr.<vlan_id>"

VLAN_IDДля режимов:
  • 802.1Q
  • vxlan
  • ovswitch
Обязательный для режима 802.1QИдентификационный номер сети VLAN. Будет сгенерирован, если не указан и для параметра AUTOMATIC_VLAN_ID установлено значение YES
AUTOMATIC_VLAN_IDДля режимов:
  • 802.1Q
  • vxlan
  • ovswitch
Обязательный для режима 802.1QИгнорируется, если параметр VLAN_ID определен. Следует установить значение YES, если необходимо в автоматическом режиме генерировать идентификационный номер сети VLAN
PHYDEVДля режимов:
  • 802.1Q
  • vxlan
Да (для режимов 802.1Q и vxlan)Имя физического сетевого устройства, которое будет подключено к сетевому мосту
MTUДля режимов:
  • 802.1Q
  • vxlan
  • ovswitch
НетМаксимальный размер в байтах пакета данных (MTU), устанавливаемый для для тегированного интерфейса и моста

Кроме того, для каждого сетевого интерфейса ВМ, подключаемого к виртуальной сети, можно настроить параметры оптимизации сетевого трафика (QoS). Применяются для ограничения средней и пиковой пропускной способности входящего и исходящего трафика, а также объема пакетных данных, которые могут передаваться на максимальной скорости. 

ПараметрОписание
INBOUND_AVG_BWСредняя скорость входящего трафика (Кбайт/с)
INBOUND_PEAK_BWМаксимальная скорость входящего трафика (Кбайт/с)
INBOUND_PEAK_KBОбъем входящего трафика, который может быть получен на максимальной скорости (Кбайт)
OUTBOUND_AVG_BWСредняя скорость исходящего трафика (Кбайт/с)
OUTBOUND_PEAK_BWМаксимальная скорость исходящего трафика (Кбайт/с)
OUTBOUND_PEAK_KBОбъем исходящего трафика, который может быть передан на максимальной скорости (Кбайт)

Адресное пространство (AR)

IP-адреса, доступные внутри сети, определяются одним и более диапазоном адресов (AR). Каждый AR определяет непрерывный диапазон адресов и, при необходимости, опции конфигурации, которые переопределяют опции первого уровня, установленные в сети. Существует следующие типы AR:
  • IP4 – для определения адресов IPv4 (бесклассовый);
  • IP6 – для определения адресов IPv6 (уникальные глобальные и локальные адреса);
  • IP6_STATIC – для определения адресов IPv6 (no-SLAAC);
  • IP4_6 – с двумя стеками, каждый сетевой интерфейс в сети получит адрес IPv4 и адрес IPv6;
  • ETHER – для ВМ формируются только MAC-адреса. Данный AR следует использовать, когда IP-адреса предоставляются внешним сервисом, например, сервером DHCP.

Сетевые параметры контекстуализации

В шаблоне виртуальной сети можно задать сетевые настройки виртуальных машин, которые будут применены в ОС виртуальной машины. Перечень параметров, значения которых можно задать для сетевого интерфейса ВМ, приведен в таблице:

ПараметрОписание
NETWORK_ADDRESSИдентификатор (адрес) сети
NETWORK_MASKМаска подсети
GATEWAYАдрес шлюза (IPv4)
GATEWAY6Адрес шлюза (IPv6)
DNSАдрес сервера DNS
GUEST_MTUМаксимальный размер в байтах пакета данных (MTU), устанавливаемый для сетевого интерфейса ВМ
CONTEXT_FORCE_IPV4

Применяется в случае, когда в виртуальной сети настроено использование IPv6.

Необходимо установить значение "yes", чтобы для сетевого интерфейса ВМ были применены настройки IPv4

SEARCH_DOMAINДиректива настройки сети, которая указывает возможный суффикс для DNS адресов

Для того чтобы заданные сетевые настройки контекстуализации применялись автоматически, в ОС виртуальной машины должен быть установлен пакет one-context.

Настройка режима Сетевой мост (Bridged)

Особенности и ограничения

При фильтрации трафика необходимо учитывать следующее:

  • в режимах фильтрации Bridged и Security Group можно добавлять тегированные сетевые интерфейсы для обеспечения сетевой изоляции. Данный режим является рекомендуемой стратегией развертывания в работающих системах (не тестовых);
  • режим фильтрации Ebtables VLAN предназначен для небольших сред без соответствующей аппаратной поддержки для внедрения сетей VLANS. Данный режим ограничен сетями с длиной префикса 24 бита (/24) и IP-адреса не могут перекрываться в виртуальных сетях. Рекомендуется только для целей тестирования.

Настройка узла виртуализации

Для использования режима Сетевой мост необходимо выполнение следующих требований:

  • на узлы виртуализации необходимо установить пакет bridge-utils;
  • если планируется использовать режим фильтрации ebtables VLAN, на узлы необходимо установить пакет ebtables, который по умолчанию обеспечивает изоляцию сети.

На узле виртуализации необходимо создать сетевой мост для каждой сети, в которой будут работать виртуальные машины. При этом следует использовать одно имя сети на всех узлах.

Пример

Содержание файла /etc/network/interfaces c настройками сетевого моста:

auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
bridge_ports eth0
address 172.16.1.20
netmask 255.255.255.0
gateway 172.16.1.1
CODE

Настройка фронтальной машины

Дополнительных настроек не требуется.

Создание облачной сети

В интерфейсе командной строки

Пример

Создание облачной сети с использованием конфигурационного файла. Будет создана облачная сеть, работающая в режиме Сетевой мост с использованием режима фильтрации Security Group:

  1. Создать файл new-net.conf следующего содержания:

    # параметры физической сети
    NAME = "bridged_net"
    VN_MAD = "fw"
    BRIDGE = "vbr1"
    
    # доступное адресное пространство
    AR=[TYPE = "IP4", IP = "172.16.1.100", SIZE = "100" ]
    
    # параметры контекстуализации
    NETWORK_ADDRESS = "172.16.1.0"
    NETWORK_MASK = "255.255.255.0"
    DNS = "172.16.1.1"
    GATEWAY = "172.16.1.1"
    CODE
  2. Выполнить команду:

    onevnet create new-net.conf
    Пример вывода после выполнения команды:

    ID: 1
    CODE

В веб-интерфейсе ПК СВ

Пример

Будет создана облачная сеть, работающая в режиме Сетевой мост с использованием режима фильтрации Bridged.

  1. В меню слева выбрать пункт меню Сеть — Вирт.сети и на открывшейся странице Вирт.сети нажать на кнопку [+], а затем в открывшемся меню выбрать пункт Создать.
  2. На открывшейся странице Создать Виртуальную сеть во вкладке Общие в поле Название задать наименование виртуальной сети.
  3. На странице Создать Виртуальную сеть во вкладке Конфигурация:
    • в поле Интерфейс сет.моста указать наименование сетевого моста, настроенного на узле виртуализации;
    • в выпадающем списке Режим работы сети выбрать значение "Bridget".
  4. На странице Создать Виртуальную сеть во вкладке Адреса задать начало и размер диапазона адресов;
  5. Если необходимо, на странице Создать Виртуальную сеть во вкладке Контекст задать сетевые настройки виртуальных машин, которые будут применены в ОС виртуальной машины.
  6. На странице Создать Виртуальную сеть нажать на кнопку [Создать].

Пример

Правила ebtables, которые создаются при необходимости отладки настройки:

# Игнорировать пакеты, которые не соответствуют MAC-адресу сети
-s ! <mac_address>/ff:ff:ff:ff:ff:0 -o <tap_device> -j DROP
# Предотвратить MAC-спуфинг
-s ! <mac_address> -i <tap_device> -j DROP
CODE

Настройка режима VLAN

Идентификационный номер VLAN рассчитывается автоматически и будет одинаковым для всех интерфейсов в конкретной сети. Возможно также принудительно указать значение параметра VLAN_ID в настройках облачной сети.

Настройка узла виртуализации

Для использования сетевого режима VLAN необходимо выполнение следующих требований:

  • модуль 802.1Q должен быть загружен в ядро;
  • требуется наличие сетевого коммутатора, способного направлять VLAN-тегированный трафик. Физические порты сетевого коммутатора должны быть каналами связи VLAN;
  • если значение параметра BRIDGE не определено, то сетевому мосту назначается наименование вида "onebr.<vlan_id>".

Настройка фронтальной машины

Значение параметра VLAN_ID рассчитывается в соответствии с настройками, указанными в конфигурационном файле /etc/one/oned.conf (блок настроек VLAN_IDS).

Изменением значения данного параметра можно зарезервировать некоторые сети VLAN, и они не будут назначаться облачной сети. Можно также указать первый номер VLAN_ID. При создании новой изолированной облачной сети определяется свободный номер VLAN_ID из пула VLAN. Этот пул является глобальным и совместно используется с сетевым режимом Open vSwitch.

В файле /var/lib/one/remotes/vnm/OpenNebulaNetwork.conf можно откорректировать параметр настройки validate_vlan_id. Установив значение true можно проверить, что другие сети VLAN не подсоединены к мосту.

Создание облачной сети

В интерфейсе командной строки

Пример

Создание облачной сети, работающей в режиме VLAN, с использованием конфигурационного файла:

  1. Создать файл new-net.conf со следующим содержанием:

    # параметры физической сети
    NAME	= "hmnet"
    VN_MAD	= "802.1Q"
    PHYDEV= "eth0"
    VLAN_ID = 50
    BRIDGE= "brhm"
    
    # доступное адресное пространство
    AR=[TYPE = "IP4", IP = "172.16.1.100", SIZE = "100" ]
    
    # параметры контекстуализации
    NETWORK_ADDRESS = "172.16.1.0"
    NETWORK_MASK = "255.255.255.0"
    DNS = "172.16.1.1"
    GATEWAY = "172.16.1.1"
    CODE
  2. Выполнить команду:

    onevnet create new-net.conf
    Пример вывода после выполнения команды:

    ID: 1
    CODE

При выполнении команды, указанной выше, проверяется наличие моста "brhm". Если он не существует, то будет создан. Сетевое устройство eth0 будет тегировано (eth0.50) и подсоединено к "brhm".

В веб-интерфейсе ПК СВ

Пример

  1. В меню слева выбрать пункт меню Сеть — Вирт.сети и на открывшейся странице Вирт.сети нажать на кнопку [+], а затем в открывшемся меню выбрать пункт Создать.
  2. На открывшейся странице Создать Виртуальную сеть во вкладке Общие в поле Название задать наименование виртуальной сети.
  3. На странице Создать Виртуальную сеть во вкладке Конфигурация:
    • в выпадающем списке Режим работы сети выбрать значение "802.1Q";
    • в выпадающем списке VLAN ID выбрать значение "Ручной номер VLAN";
    • в появившемся поле задать идентификационный номер сети VLAN: "50";
    • в поле Физическое устройство указать наименование физического сетевого интерфейса узла виртуализации.
  4. На странице Создать Виртуальную сеть во вкладке Адреса задать начало и размер диапазона адресов;
  5. Если необходимо, на странице Создать Виртуальную сеть во вкладке Контекст задать сетевые настройки виртуальных машин, которые будут применены в ОС виртуальной машины.
  6. На странице Создать Виртуальную сеть нажать на кнопку [Создать].

После этого будет создан сетевой мост "onebr.50". Сетевое устройство eth0 будет тегировано (eth0.50) и подсоединено к "onebr.50".

Настройка режима VXLAN

Идентификационный номер VLAN рассчитывается автоматически и будет одинаковым для всех интерфейсов в конкретной сети. Возможно также принудительно указать значение параметра VLAN_ID в шаблоне виртуальной сети.

Каждая сеть VLAN назначает групповой адрес для инкапсуляции транслирования L2 и группового трафика. Данный адрес назначается по умолчанию диапазону 239.0.0.0/8 в соответствии с RFC 2365 (административно назначаемая групповая адресация IP). В частности, групповой адрес получается добавлением VLAN_ID к основному адресу 239.0.0.0/8.

Особенности и ограничения

В данном сетевом режиме задействован стандартный UDP-порт сервера 8472.

Трафик VXLAN направляется на физическое устройство, которое может быть установлено как VLAN-тегированный интерфейс, но в этом случае необходимо убедиться в том, что тегированный интерфейс будет создан вручную изначально на всех узлах.

Настройка узла виртуализации

Для настройки сетевого режима VXLAN необходимо чтобы при подключении всех узлов к одной подсети, групповой трафик не фильтровался правилами iptables в узлах. Если групповой трафик должен проходить через маршрутизаторы, необходимо настроить в сети многоадресный протокол, например, IGMP.

Настройка фронтальной машины

Значение параметра VXLAN_ID рассчитывается в соответствии с настройками, указанными в конфигурационном файле /etc/one/oned.conf (блок настроек VXLAN_IDS).

В файле /var/lib/one/remotes/vnm/OpenNebulaNetwork.conf можно откорректировать следующие параметры настройки:

ПараметрОписание
vxlan_mc

Основной групповой адрес для каждой сети VLAN.

Групповой адрес: vxlan_mc + vlan_id

vxlan_ttlВремя жизни (TTL) должно быть меньше 1 в маршрутизируемых многоадресных сетях (IGMP)
validate_vlan_idНеобходимой установить значение true для запуска проверки, что другие сети VLAN не подсоединены к мосту

Создание облачной сети

В интерфейсе командной строки

Пример

Создание облачной сети, работающей в режиме VXLAN, с использованием конфигурационного файла:

  1. Создать файл new-net.conf со следующим содержанием:

    # параметры физической сети 
    NAME = "vxlan_net"
    VN_MAD = "vxlan"
    PHYDEV = "eth0"
    VLAN_ID = 50 # optional
    BRIDGE = "vxlan50" # optional  
    # доступное адресное пространство
    AR=[TYPE = "IP4", IP = "172.16.1.100", SIZE = "100" ]
    
    # параметры контекстуализации
    NETWORK_ADDRESS = "172.16.1.0"
    NETWORK_MASK = "255.255.255.0"
    DNS = "172.16.1.1"
    GATEWAY = "172.16.1.1"
    CODE
  2. Выполнить команду:

    onevnet create new-net.conf
    Пример вывода после выполнения команды:

    ID: 1
    CODE

При выполнении команды, указанной выше, проверяется наличие моста vxlan50. Если он не существует, то будет создан. Сетевое устройство eth0 будет тегировано (eth0.50) и подсоединено
к vxlan50. Сетевое устройство eth0 может иметь 802.1Q тегированный интерфейс, если предполагается изолировать трафик сети VXLAN.

В веб-интерфейсе ПК СВ

Пример

  1. В меню слева выбрать пункт меню Сеть — Вирт.сети и на открывшейся странице Вирт.сети нажать на кнопку [+], а затем в открывшемся меню выбрать пункт Создать.
  2. На открывшейся странице Создать Виртуальную сеть во вкладке Общие в поле Название задать наименование виртуальной сети.
  3. На странице Создать Виртуальную сеть во вкладке Конфигурация:
    • в выпадающем списке Режим работы сети выбрать значение "VXLAN";
    • в выпадающем списке VLAN ID выбрать значение "Автоматический номер VLAN";
    • в поле Физическое устройство указать наименование физического сетевого интерфейса узла виртуализации.
  4. На странице Создать Виртуальную сеть во вкладке Адреса:
    • в поле Первый IPv4 адрес задать начало диапазона адресов, которые будут присваиваться создаваемым ВМ;
    • в поле Размер задать размер диапазона адресов (ожидаемое количество ВМ);
    • в поле Первый MAC-адрес указать значение "02:00:0a:00:46:50".
  5. На странице Создать Виртуальную сеть во вкладке Контекст:
    • в поле Шлюз указать значение сетевого шлюза по умолчанию;
    • в поле DNS указать IP-адрес общедоступного DNS-сервера.
  6. На странице Создать Виртуальную сеть нажать на кнопку [Создать].

Настройка сети Open vSwitch

Группы безопасности данным сетевым режимом не поддерживаются.

Особенности конфигурирования

Конфигурация всех Open vSwitch коммутаторов, портов, настройки поддерживаемых протоколов хранятся в собственной базе данных OVS (OVSDB).
В стандартной конфигурации в OVSDB существуют следующие таблицы:

  • Open_vSwitch – Cхема
  • Bridge
  • Port
  • Interface
  • Flow_Table – конфигурация OpenFlow
  • QoS
  • Mirror
  • Controller – параметры подключения к контроллеру OpenFlow
  • Manager – конфигурация OVSDB
  • NetFlow
  • SSL
  • sFlow
  • IPFIX
  • Flow_Sample_Collector_Set

Изначально почти все таблицы пусты, так как конфигурация отсутствует. Утилита ovs-vsctl предоставляет интерфейс для внесения изменений в БД. Для внесения изменений используется команда вида:

sudo ovs-vsctl <команда> <таблица> <запись> <ключ=значение>
Для создания программного коммутатора с именем, например, ovs-sw0 необходимо выполнить следующую команду:
sudo ovs-vsctl add-br ovs-sw0
После выполнения команды появится возможность подключения ВМ. При этом ВМ, подключенные к ovs-sw0, будут работать в изолированной сети. Для того, чтобы предоставить им доступ к внешней сети, необходимо подключить к ovs-sw0 в качестве порта физический интерфейс eth0, выполнив команду:
sudo ovs-vsctl add-port ovs-sw0 eth0
Для того чтобы разрешить порту eth0 пропускать во внешнюю сеть трафик из определенных VLAN, необходимо выполнить команду:
sudo ovs-vsctl set port eth0 trunks=10,20,30,40,50
Ниже представлен список вариантов команд с параметрами вызова:

list <таблица> <запись>

find <таблица> <условие>

get <таблица> <запись> <ключ=значение>

add <таблица> <запись> <ключ=значение>

remove <таблица> <запись> <ключ=значение>

clear <таблица> <запись> <ключ>

create <таблица> <запись> <ключ=значение>

destroy <таблица> <запись>

wait-until <таблица> <запись> <ключ=значение>


Пример

Для просмотра записей, присутствующих в таблице, описывающей порты, выполнить команду:

sudo ovs-vsctl list port
Для вывода списка портов, включенных в VLAN, необходимо выполнить команду:
sudo ovs-vsctl find port tag=10

Агрегирование физических интерфейсов

Для повышения пропускной способности и уровня отказоустойчивости в Open vSwitch коммутатор могут быть включены несколько физических интерфейсов с задействованной на них агрегацией по протоколу LACP (Link Aggregation Control Protocol). Выполняется на канальном уровне путем создания объединенного интерфейса (Bonding).

Пример

Для создания объединенного интерфейса на базе физических интерфейсов eth0 и eth1 необходимо выполнить следующую команду:

sudo ovs-vsctl add-bond ovs-sw0 bond0 eth0 eth1
После следует включить lacp на созданном объединенном интерфейсе:
sudo ovs-vsctl set port bond0 lacp=active
На этом настройка отказоустойчивости сетевых интерфейсов завершена.

Зеркалирование портов

Open vSwitch позволяет направлять копию потока трафика из одного или нескольких интерфейсов в другой. Так же он может организовать перенаправление трафика из всей VLAN в конкретный порт или наоборот. Зеркалироваться может только входящий, только исходящий или оба типа трафика. Использование такой возможности позволит вести контроль сетевого трафика, передаваемого между ВМ с целью обнаружения (предупреждения) компьютерных атак.

Пример

Зеркалирование трафика из интерфейса vnet2, принадлежащего одной ВМ, в специально созданный для прослушивания порт mirror0 с типом internal.

sudo ovs-vsctl -- set Bridge ovs-sw0 mirrors=@m -- \

--id=@mirror0 get Port mirror0 -- --id=@vnet2 get Port vnet2 -- \

--id=@m create Mirror name=mymirror select-dst-port=@vnet2 \

select-src-port=@vnet2 output-port=@mirror0

где:

  • конструкцией --id=@<имя_переменной> определяется использование переменной;
  • командой

    set Bridge ovs-sw0 mirrors=@m
     создается зеркало, имя и параметры которого получаются из переменной @m (см. ниже);

  • командой

    --id=@mirror0 get Port mirror0 -- --id=@vnet2 get Port vnet2
    определяются значения переменных mirror0, @vnet2 – записываются идентификаторы соответствующих портов;

  • командой

    --id=@m create Mirror name=mymirror select-dst-port=@vnet2 select-src-port=@vnet2 output-port=@mirror0
    определяется значение переменной @m – записываются имя и параметры зеркала;

  • select-dst-port – зеркалирование входящего трафика;

  • select-src-port – зеркалирование исходящего трафика;

  • output-port – место перенаправления трафика.

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

tcpdump -i mirror0
Также можно организовать ретрансляцию всех пакетов, например, пришедших на порт eth0 или eth1 на порт eth2:

sudo ovs-vsctl -- set Bridge ovs-sw0 mirrors=@m \

-- --id=@eth0 get Port eth0 -- --id=@eth1 get Port eth1 \

-- --id=@eth2 get Port eth2 \

-- --id=@m create Mirror name=mymirror -- select-dst-port=@eth0,@eth1 \

select-src-port=@eth0,@eth1 output-port=@eth2

где :

  • конструкцией --id=@<имя_переменной> определяется использование переменной;
  • командой

    set Bridge ovs-sw0 mirrors=@m
    создается зеркало, имя и параметры которого получаются из переменной @m (см. ниже);

  • командой

    -- --id=@eth0 get Port eth0 -- --id=@eth1 get Port eth1 -- --id=@eth2 get Port eth2
    определяются значения переменных @eth0, @eth1 и @eth2;

  • командой

    --id=@m create Mirror name=mymirror select-dst-port=@eth0,@eth1 select-src-port=@eth0,@eth1 output-port=@eth2
    определяется значение переменной @m – записываются имя и параметры зеркала;

  • select-dst-port – зеркалирование входящего трафика;

  • select-src-port – зеркалирование исходящего трафика;

  • output-port – место перенаправления трафика.

Для отмены зеркалирования выполнить команду:

sudo ovs-vsctl remove Bridge ovs-sw0 mirrors mymirror

Настройка узла виртуализации

Для настройки данного сетевого режима необходимо чтобы на каждом узле был установлен пакет openvswitch-switch (данный пакет размещен в базовом репозитории Astra Linux).

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

Пример

Узел, который направляет трафик виртуальных сетей через сетевой интерфейс enp0s8. Пример вывода после выполнения команды "sudo ovs-vsctl show":

c61ba96f-fc11-4db9-9636-408e763f529e Bridge "ovsbr0"
Port "ovsbr0"
Interface "ovsbr0" type: internal
Port "enp0s8"
Interface "enp0s8"
CODE

Настройка фронтальной машины

Значение параметра VLAN_ID рассчитывается в соответствии с настройками, указанными в конфигурационном файле /etc/one/oned.conf (блок настроек VLAN_IDS).

Изменением значения данного параметра можно зарезервировать некоторые сети VLAN, и они не будут назначаться облачной сети. Можно также указать первый номер VLAN_ID. При создании новой изолированной облачной сети определяется свободный номер VLAN_ID из пула VLAN. Этот пул является глобальным и совместно используется с сетевым режимом VLAN.

В файле /var/lib/one/remotes/vnm/OpenNebulaNetwork.conf можно откорректировать параметр настройки arp_cache_poisoning, отвечающий за подключение правила предотвращения изменения кэша ARP (ARP Cache Poisoning).

После корректировки значения параметра arp_cache_poisoning необходимо выполнить команду onehost sync для применения изменений на всех узлах виртуализации.

Создание облачной сети

В интерфейсе командной строки

Пример

Создание облачной сети с использованием конфигурационного файла. Будет создана облачная сеть, работающая в режиме Сетевой мост с использованием режима фильтрации Security Group:

  1. Создать файл new-net.conf следующего содержания:

    # параметры физической сети 
    NAME	= "ovswitch_net"
    VN_MAD	= "ovswitch"
    BRIDGE	= vbr1
    VLAN_ID = 50 # optional
    	  
    # доступное адресное пространство
    AR=[TYPE = "IP4", IP = "172.16.1.100", SIZE = "100" ]
    
    # параметры контекстуализации
    NETWORK_ADDRESS = "172.16.1.0"
    NETWORK_MASK = "255.255.255.0"
    DNS = "172.16.1.1"
    GATEWAY = "172.16.1.1"
    CODE
  2. Выполнить команду:

    onevnet create new-net.conf
    Пример вывода после выполнения команды:

    ID: 1
    CODE

В веб-интерфейсе ПК СВ

Пример

  1. В меню слева выбрать пункт меню Сеть — Вирт.сети и на открывшейся странице Вирт.сети нажать на кнопку [+], а затем в открывшемся меню выбрать пункт Создать.
  2. На открывшейся странице Создать Виртуальную сеть во вкладке Общие в поле Название задать наименование виртуальной сети.
  3. На странице Создать Виртуальную сеть во вкладке Конфигурация:
    • в поле Интерфейс сет.моста указать наименование сетевого моста, настроенного на узле виртуализации;
    • в выпадающем списке Режим работы сети выбрать значение "Open vSwitch";
    • в выпадающем списке VLAN ID выбрать значение "Ручной номер VLAN";
    • в появившемся поле задать идентификационный номер сети VLAN: "50".
  4. На странице Создать Виртуальную сеть во вкладке Адреса задать начало и размер диапазона адресов;
  5. Если необходимо, на странице Создать Виртуальную сеть во вкладке Контекст задать сетевые настройки виртуальных машин, которые будут применены в ОС виртуальной машины.
  6. На странице Создать Виртуальную сеть нажать на кнопку [Создать].

Многоканальные сети VLAN (VLAN транкинг)

VLAN транкинг поддерживается путем добавления тега VLAN_TAGGED_ID: к элементу NIC в шаблоне ВМ или шаблоне виртуальной сети. Тег позволяет указать диапазон сетей VLAN, подлежащий тегированию, например: 1,10,30,32.

Правила OpenFlow

MAC-спуфинг

Данные правила предотвращают выход любого трафика с порта, если был изменен MAC-адрес.

Пример

in_port=<PORT>,dl_src=<MAC>,priority=40000,actions=normal

in_port=<PORT>,priority=39000,actions=normal

IP-захват

Данные правила предотвращают выход любого трафика с порта для IPv4, если не настроен IP-адрес для ВМ.

Пример

in_port=<PORT>,arp,dl_src=<MAC>priority=45000,actions=drop

in_port=<PORT>,arp,dl_src=<MAC>,nw_src=<IP>,priority=46000,actions=normal

Черные порты

Применяется одно правило на порт.

Пример

tcp,dl_dst=<MAC>,tp_dst=<PORT>,actions=drop

ICMP-игнорирование

С помощью данной настройки можно, например, заблокировать ping-запросы к ВМ.

Пример

icmp,dl_dst=<MAC>,actions=drop