Сетевая архитектура KeyStack

Обзор сетевой архитектуры

В референсной архитектуре KeyStack для управления сетевой инфраструктурой в OpenStack-облаке используется Open vSwitch (OVS). OVS работает по классической схеме с использованием L2/L3/DHCP-агентов на каждом узле и взаимодействием через RabbitMQ.

Фильтрация трафика на портах виртуальных машин

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

ML2/OVS — драйвер iptables_hybrid

В стандартной конфигурации OVS правила фильтрации реализуются через iptables-nft на Linux bridge (qbr), который создаётся для каждого порта виртуальной машины. Между узлами трафик передаётся через VXLAN-туннель. Процесс настройки приведён в разделе Настройка ML2/OVS.

Фильтрация трафика на портах ВМ — ML2/OVS (iptables_hybrid)

Фильтрация трафика на портах ВМ — ML2/OVS (iptables_hybrid)

ML2/OVS — драйвер openvswitch

При использовании драйвера openvswitch правила фильтрации реализуются внутри OVS-коммутатора br-int. Архитектура сети при этом остаётся прежней. Подробнее о переключении драйвера см. в разделе Настройка ML2/OVS.

Фильтрация трафика на портах ВМ — ML2/OVS (openvswitch)

Фильтрация трафика на портах ВМ — ML2/OVS (openvswitch)

Маршрутизация трафика виртуальной инфраструктуры во внешние сети

Для примера на схеме отображены два варианта маршрутизации:

  1. Трафик VM1, VM6 маршрутизируется через Gateway-узлы при помощи SNAT.

  2. На виртуальные машины VM3, VM4, VM5 назначен Floating IP (назначаемый внешний адрес), и их трафик проходит напрямую во внешнюю сеть без Gateway-узлов.

Схема маршрутизации трафика в KeyStack

Маршрутизация трафика виртуальной инфраструктуры

Дополнительные сетевые функции KeyStack

Фильтрация трафика

Фильтрация сетевого трафика между узлами и сервисами в KeyStack работает на основе nftables — современного инструмента для управления сетевым трафиком в Linux. Единая архитектура и гибкая модель построения правил nftables обеспечивают эффективный контроль и ограничение трафика в соответствии с политиками безопасности и требованиями инфраструктуры.

Фильтрация трафика на Control-узле

Фильтрация трафика на Control-узле

Примечание

Фильтрация трафика на Compute-узле выполняется аналогично за исключением отсутствия правил для External VIP и Internal VIP.

Официальная страница проекта: https://wiki.nftables.org.

Более подробно об управлении правилами фильтрации для узлов и сервисов описано в разделе Настройка механизма фильтрации трафика.

Сервис LBaaS

В KeyStack реализован сервис LBaaS. Сервис LBaaS построен на основе OpenStack Octavia и предоставляет сетевые балансировщики как сервис.

Схема LBaaS в KeyStack

Схема LBaaS в KeyStack

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

  • HTTP-балансировка

  • HTTP-балансировка с health-монитором

  • Session-persistent HTTP-балансировка

  • TCP-балансировка

  • UDP-балансировка

  • QoS ruled-балансировка

  • Балансировка с ACL по IP

  • Non-terminated HTTPS-балансировка

  • TLS-terminated HTTPS-балансировка

  • TLS-terminated HTTPS-балансировка с SNI

  • TLS-terminated HTTPS-балансировка с аутентификацией

  • HTTP/2-балансировка с ALPN TLS-расширением

  • Другие режимы балансировки