Product SiteDocumentation Site

28.2.3. Поддержка Q-in-Q (Stacked VLAN)

Хотя нативный Q-in-Q не поддерживается Linux-мостами (в отличие от Open vSwitch), OpenNebula предоставляет ограниченную эмуляцию данной функциональности за счёт фильтрации VLAN.
При задании параметра CVLANS:
  • нетегированный трафик от ВМ помечается внешним VLAN (VLAN_ID);
  • тегированный трафик с клиентским VLAN (CVLAN), входящим в список CVLANS, инкапсулируется во внешний VLAN;
  • весь прочий тегированный трафик отбрасывается.

Примечание

Ограничения режима:
  • ВМ не видит внутренний тег (CVLAN) и отправляет нетегированный трафик;
  • полноценный Q-in-Q, при котором ВМ самостоятельно управляет двумя VLAN-тегами, невозможен без использования Open vSwitch.
Поведение Q-in-Q контролируется дополнительными атрибутами, приведёнными в табл. Параметры виртуальной сети в режиме Q-in-Q.

Таблица 28.5. Параметры виртуальной сети в режиме Q-in-Q

Параметр
Значение
Обязательный
VLAN_ID
Внешний (сервисный) VLAN ID
Да (если AUTOMATIC_VLAN_ID = "NO")
CVLANS
Список разрешённых клиентских VLAN (через запятую, поддерживаются диапазоны)
Да
Пример определения сети с поддержкой Q-in-Q:
NAME = "qinq_net"
VN_MAD = "802.1Q"
PHYDEV = eth0
VLAN_ID = 50 # Идентификатор сервисного VLAN
CVLANS = "101,103,110-113" # Список клиентских VLAN

Примечание

Параметр CVLANS можно изменять динамически — правила фильтрации будут обновлены без перезапуска ВМ.
Поведение моста при наличии CVLANS:
  • активируется фильтрация VLAN на мосту;
  • на портах ВМ разрешаются только CVLAN из указанного списка;
  • нетегированный трафик ассоциируется с внешним VLAN;
  • при выходе в физическую сеть трафик инкапсулируется во внешний VLAN.