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

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

В референсной архитектуре KeyStack предлагается использовать OpenvSwitch (OVS) или Open Virtual network (OVN) для управления сетевой инфраструктурой в OpenStack-облаке. OVS работает по классической схеме с использованием L2/L3/DHCP агентов на каждом узле и взаимодействием через RabbitMQ. OVN является "надстройкой" над OVS и управляет сетью через собственную распределённую базу данных без использования отдельных агентов, что сокращает нагрузку на RabbitMQ и повышает масштабируемость.

OVS (ML2/OVS)

OVN (OVS+OVN)

Плюсы

  • Зрелое, проверенное решение

  • Большое сообщество и документация

  • Хорошо поддерживается в OpenStack

  • Проще архитектура

  • Отсутствует влияние на RabbitMQ

  • Лучшая масштабируемость

  • Более современный подход к SDN

Минусы

  • Зависимость от агентов (L2/L3/DHCP)

  • Высокая нагрузка на RabbitMQ

  • Ограничения по масштабированию

  • Более сложная архитектура

  • Менее зрелое решение

  • Меньше практического опыта у операторов

  • Возможны недоработки в граничных сценариях

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

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

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

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

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

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

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

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

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

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

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

Сервис LBaaS

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

Схема LBaaS в KeyStack

Балансировщики нагрузки как сервис (LBaaS)

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-расширением

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