Введение в OpenSDN
SDN, или программно-определяемые сети (их ещё называют
программно-конфигурируемые сети [И1], ПКС) — это де-факто стандарт для предоставления облачных услуг [И2] на основе различных платформ виртуализации, таких как OpenStack, Kubernetes, CloudStack и др. Напомним, что в основе этой технологии лежат следующие принципы [И3, И4, И5]:
разделение сетевого стека на слои по функциям администрирования, управления и пересылки;
разделение функций аппаратного и программного обеспечения;
унификация и стандартизация программных и аппаратных интерфейсов;
программное определение топологии связей между выделенными облачным сервисом ресурсами (наложенной сети) поверх однородного сетевого оборудования с простой сетевой топологией;
централизованное представление сети.
Все они позволяют существенно сократить время предоставления сервиса, упростить локализацию, а также поиск и исправление ошибок.
Почему не просто SDN, а OpenSDN
Open Source и SDN уже успели обзавестись многочисленными сторонниками в среде разработчиков и, что более важно, в среде коммерческих пользователей. Open Source полностью состоялся как подход к разработке, поддержке и эксплуатации программ. Понятно, почему его выбирают и для разработки библиотек поддержки SDN.
А вот выбору в пользу конкретного Open Source-решения могут потребоваться пояснения. Причём частные преимущества SDN на основе библиотек с открытым исходным кодом могут быть непосредственно связаны с общими достоинствами Open Source. Например:
можно оперативно вносить требуемые изменения в исходный код;
устоявшиеся открытые стандарты и технологии позволяют снизить затраты на дообучение сотрудников, упрощение отладки и поиска причин неисправностей и т. д.;
можно расширить выбор используемых алгоритмов и прикладных средств за счёт уже имеющихся реализованных открытых прототипов.
SDN и POSIX
Исторически сложилось, что промышленные вычислительные системы обслуживаются в первую очередь
POSIX-совместимыми операционными системами (см., например, [И6]). Среди них доминирующее положение занимают ОС с открытым исходным кодом, такие как Linux.
Многие из принципов ПКС можно считать схожими с POSIX, например, портируемость на уровне исходного кода, выделение уровней (слоёв) функций ОС и приложений и пр. В определённом смысле, ПКС-платформу (контроллер) можно рассматривать как специальный случай операционной системы — сетевую ОС, обеспечивающую распределение ресурсов вычислительной сети и анализ её состояния.
Кто такой OpenSDN: предыстория
В мире SDN существуют десятки игроков как с закрытым, так и с
открытым исходным кодом [И7]. Это бизнес-решения, исследовательские или обучающие приложения, например, VMWare NSX, Juniper Contrail, Cisco ACI, HPE SDE Controller, OpenDaylight, Mininet, NOX, POX, OpenFlow, OVS/OVN, ONOS (Open Network Operating System), OpenKilda, Ryu, Faucet, Calico, Cilium, а также OpenSDN.
Среди них можно выделить решение OpenSDN, которое начало самостоятельную историю в конце 2023 года. Этот проект — продолжение коммерческого решения Juniper Contrail и прямой наследник Tungsten Fabric / OpenContrail.
OpenSDN предоставляет средства виртуализации сетей в ЦОДах и позволяет связывать приложения, работающие в виртуальном окружении, с потребителями и/или приложениями, доступными через физические сети передачи данных.
Ниже краткая история появления OpenSDN:
Почему именно OpenSDN: особенности и преимущества
Накопленный годами опыт
Основное преимущество OpenSDN — это отработка его возможностей на стендах компании Juniper и их клиентов. В качестве успешного случая использования в установке сверхбольшого размера можно привести пример
развёртывания OpenStack/Tungsten Fabric в CERN [И14]. Виртуальные сети позволили охватить более 300 000 вычислительных ядер с оперативной памятью порядка 1 Пб. Весь накопленный опыт эксплуатации фактически был сформулирован и сохранён в виде исходного кода проекта с более чем 1,5 млн строк.
Кроме того, использовать OpenSDN будет проще тем, кто привык к продуктам компании Juniper.
Следование стандартам
Важная отличительная особенность OpenSDN и его предшественников — это следование устоявшимся стандартам сетевой индустрии. В первую очередь, речь о протоколе MP BGP для обмена маршрутами с соседними сетями и в виртуальных сетях, а также протоколах для обеспечения инкапсуляции пакетов наложенных сетей MPLS и VxLAN.
Что это означает?
При реализации взаимодействия OpenSDN с другими SDN-контроллерами или платформами, которые следуют международным стандартам, затраты будут ниже.
Диагностика и проверка работоспособности составляющих частей OpenSDN может осуществляться внешними инструментами, поддерживающими эти стандарты.
Обучение использованию платформы существенно упрощается в тех случаях, когда специалисты уже знакомы с этими стандартами.
Помимо международных стандартов, описываемых, например, в RFC, в различных странах действуют и национальные стандарты, как ГОСТы в РФ [И15, И16, И17, И18] и др. Таким образом, перспективным направлением является адаптация программных средств с учётом местной нормативной документации.
Управление различными виртуальными сетями
Ещё одна полезная возможность OpenSDN — это управление как виртуальными сетями Kubernetes, так и сетями OpenStack. Это ставит его в один ряд с такими крупными игроками в этой области, как OVN и Calico. Ведутся работы по использованию OpenSDN совместно с технологией CloudStack.
Поддержка протоколов IPv4 и IPv6
Возможность OpenSDN работать с обеими версиями протокола (IPv4 и IPV6) также является важной, если не ключевой, характеристикой. Пространство имён IPv4 можно считать уже истощившимся, а повсеместное внедрение IPv6 всё ещё далеко от завершения. Сегодня общее покрытие пользователей Интернет IPv6-адресами может составлять, по некоторым оценкам, до 42 %, что говорит об актуальности предыдущей версии протокола IP, которая до сих пор востребована во многих частных и государственных компаниях.
Постоянное развитие
Важное, но неявное достоинство OpenSDN — это несомненный профессиональный рост его пользователей. Он происходит из-за необходимости освоения сетевых стандартов и протоколов, а также применения интерпретирующих языков высокого уровня для автоматизации настроек сети.
Самодостаточность
В отличие от большинства схожих проектов с открытым исходным кодом OpenSDN является в определённом смысле самодостаточным. В нём реализованы и интегрированы все слои вычислительных сетей (администрирования, управления и пересылки), средства аналитики, базовые виртуальные функции сетей (VNF). Это одновременно и преимущество, и недостаток.
С одной стороны, средства, разработанные в общей среде, должны быть теснее интегрированы, а их совместное использование может быть проще. С другой стороны, их поддержка ложится бременем на сообщество, распыляя имеющиеся человеческие ресурсы.
OpenSDN, как де-факто инструмент распределения сетевых ресурсов, можно классифицировать как сетевую операционную систему. Она выполняет сетевые приложения, обеспечивает разделение вверенных ресурсов между потребителями, аутентификацию пользователей, предоставление сетевых сервисов и т. д.
OpenSDN: основы и архитектура
OpenSDN: Intent based approach
В основе OpenSDN лежит так называемый
проектно-обоснованный подход (intent-based networking) [И19]. Он заключается в задании верхнеуровневой конфигурации (или неких ориентиров со своими целевыми показателями), которая автоматически транслируется в низкоуровневые настройки (политики), а затем проверяется имеющимися средствами на достижение заданных показателей и соблюдение применённых настроек.
Таким образом, OpenSDN даёт оператору сети инструмент, позволяющий преобразовывать её с минимальным повтором действий по настройке сетевого оборудования.
Архитектура OpenSDN как платформы (или сетевой операционной системы) полностью подчиняется этой цели. Исходными данными служит язык описания отношений между участниками сети, которое в результате серии преобразований (трансляций) превращается либо в таблицу пересылки (Forwarding Information Base, FIB) на гипервизорах, либо в BGP-сообщения, передаваемые соседним маршрутизаторам.
Архитектура OpenSDN
Архитектурно OpenSDN, как и его предшественники (OpenContrail и Tungsten Fabric), представляет собой классическое микросервисное приложение, состоящее из независимых компонентов (см. Рис. 1) и модулей (см. Рис. 2) [И20, И21]. Подробнее о них можно почитать
тут и
тут. Эти компоненты классифицируются по слоям виртуализации сетевых функций:
слой администрирования (конфигурационный уровень, management plane);
слой управления (control plane);
слой передачи данных (data plane, forwarding plane).
Рис. 1. Схема связей основных компонентов OpenSDN c оркестратором облачного сервиса
Под спойлером можно подробнее узнать о предназначении основных компонентов и модулей.
На слое администрирования находятся:
Компонент настройки (Config). Он отвечает за анализ и обработку входящих управляющих запросов на изменение или чтение состояния виртуальной сети и их размещение в долговременном хранилище (Cassandra DB). Компонент можно разделить условно на модули Config API (обработка REST запросов) и Database (хранение состояния). В Config также входит модуль пользовательского интерфейса (UI) для настройки состояния виртуальной сети и сбора информации о ней (см. Рис. 2).
Компонент аналитики (Analytics). Он предназначен для сбора, хранения и обработки информации (исторической, мгновенной, журналов) в централизованном виде. Модули, входящие в Analytics, также отражены на Рис. 2.
Другие вспомогательные инструменты, такие как schema-transformer, device-manager, svc-monitor.
Рис. 2. Модули, которые входят в состав компонентов Config и Analytics
На
слое управления работает компонент Контроллер сети (Controller). Он управляет маршрутизацией в виртуальной сети и хранением оперативного (мгновенного) представления её состояния. Одной из составных частей этого компонента является модуль Агент DNS (DNS Agent). Он управляет виртуальной сетевой функцией DNS, предоставляемой на основе bind9, и перенаправляет запросы от клиентов (виртуальных машин) к серверу named. В компонент Controller входят также прочие приложения и модули. Подробнее можно почитать
здесь [И22].
На слое передачи данных работает компонент «виртуальный коммутатор-маршрутизатор» (vRouter), состоящий из двух модулей:
Модуль пересылки данных (vRouter Forwarder, «форвардер») выполняет функции пересылки и инкапсуляции пакетов между портами виртуальных машин и физическими интерфейсами (маршрутизацию и коммутацию). Может выполняться в трёх различных окружениях:
в привилегированном режиме (как модуль ядра Linux);
в режиме пользовательского приложения (для отладки);
в режиме пользовательского приложения DPDK (для повышения производительности).
Агент виртуального коммутатора-маршрутизатора (vRouter Agent) отвечает за программирование модуля пересылки данных (таблицы пересылки), передачу актуальной информации о состоянии портов виртуальной сети в контроллер и хранение локального (относительно данного вычислительного узла) оперативного представления виртуальной сети.
Агент виртуального коммутатора-маршрутизатора, выполняющий программирование уровня передачи данных, может работать как обычном режиме (Native), так и в режиме управления OVS-коммутатором.
Распространение данных в OpenSDN CP
В виртуальных сетях OpenSDN за правила распространения и передачи данных отвечает таблица пересылки (Forwarding Information Base, FIB). Она строится на двух организованных наборах данных, которые определяют состояние программно-конфигурируемой сети:
графе отношений между участниками сети (виртуальные порты, виртуальные машины, виртуальные роутеры, и т. д.) — дерево IF-MAP;
таблице маршрутизации (Routing Information Base, RIB).
В результате работы OpenSDN созданный пользователем граф отношений сетевых объектов преобразуется на основе заданных правил в таблицу маршрутизации. Та дополняется информацией, полученной от внешних маршрутизаторов, и формирует таблицу пересылки, которая устанавливается на каждый гипервизор, обслуживаемый данным SDN.
Конфигурации виртуальной сети
Теперь о том, какие компоненты и модули участвуют в описании, хранении и управлении состоянием виртуальной сети (Рис. 3).
Рис. 3. Схема распространения конфигурации виртуальной сети в составных частях OpenSDN
Config получает входящий REST-запрос от web-сервера (uWSGI), анализирует и проверяет его на непротиворечивость. При необходимости дополняет уточняющей информацией на основе имеющегося состояния или заложенных в компонент эвристик.
Модуль БД (Database) в составе Config сохраняет информацию в долговременном хранилище, оповещает заинтересованные приложения на слое управления (контроллер, DNS-агент и пр.) об изменениях и передаёт им изменения в конфигурации.
Controller вносит изменения в оперативное представление состояния виртуальной сети и оповещает о них заинтересованные виртуальные коммутаторы.
vRouter Agent (агент виртуального коммутатора-маршрутизатора) реагирует на изменения в контроллере и обновляет локальное оперативное представление состояния виртуальной сети, а также вычисляет изменения в местной таблице RIB и отправляет изменения в таблицу FIB слоя пересылки данных.
vRouter Forwarder (модуль пересылки данных) вносит изменения в таблицу пересылки данных.
Информация о конфигурации может также распространяться и в обратную сторону для учёта влияния локальных изменений на общее состояние виртуальной сети.
Граф отношений сетевых участников обмена хранится в NoSQL базе данных (БД)
Cassandra [И23] в виде индексированных строк JSON-формата. Изменения в БД, вносимые модулем Config и полученные с помощью REST-запроса в JSON-формате, провоцируют обновление графа IF-MAP у всех модулей, соединённых непосредственно с БД: контроллера и DNS-агента.
В каждом таком модуле действуют две статические таблицы правил обработки изменений. Первая отвечает за распространение изменений в графе IF-MAP, хранящемся в оперативной памяти модулей (какие элементы обновлять, в какой последовательности, в каком объёме). Вторая таблица задаёт долю данных, передаваемых из этого графа в подчинённые приложения, например, из контроллера в агент виртуального коммутатора-маршрутизатора, также называемого vRouter Agent.
Маршрутизирующая информация может передаваться (Рис. 4) как от контроллера к модулю пересылки данных через агент виртуального коммутатора-маршрутизатора, так и в обратную сторону.
Рис. 4 Схема распространения маршрутов между компонентами OpenSDN
Протоколы и форматы для работы с данными
В обмене информацией между составными частями OpenSDN участвуют разнообразные протоколы и форматы данных. Подробнее о них читайте под спойлером.
Протоколы и форматы данных
REST-запросы [И24, И25] используются для внесения изменений в конфигурацию виртуальной сети через компонент настройки (Config).
IF-MAP (InterFace to Metadata Access Points) [И26] используется для представления конфигурации виртуальной сети в виде графа, в котором узлами являются сетевые сущности (виртуальный порт, виртуальный маршрутизатор, таблица маршрутизации и т. д.) и связанные с ними настройки (политики доступа, IP-адреса, и пр.), а рёбрами выступают связи между ними.
BGP (MP BGP) [И27] — протокол обмена маршрутизирующей информацией. Он используется в OpenSDN для обмена данными как с соседними маршрутизаторами, так и между контроллером виртуальной сети и виртуальным коммутатором.
Netlink [И28] — протокол для обмена сообщениями между пользовательскими приложениями (агент виртуального коммутатора) и модулем ядра ОС (модуль пересылки данных).
Общая память используется агентом для чтения копии таблицы потоков, хранящейся в модуле пересылки данных.
Виртуальные интерфейсы (сокеты) используются для передачи новых пакетов из модуля пересылки данных в агент для последующего анализа.
Для описания данных в этих протоколах применяются форматы.
JSON [И29]. Он позволяет задавать виртуальную конфигурацию в REST-запросах, а также выбран в качестве формата хранения данных в постоянном хранилище (textAsBlob в терминах Cassandra DB).
XMPP [И30] как XML-подобный язык. Он используется в OpenSDN для описания типов элементов графа IF-MAP (конфигурации виртуальной сети) и связей между ними в виде XML-схем, а также для представления BGP-сообщений между контроллером и агентом виртуального коммутатора.
Sandesh, язык описания интерфейсов обмена данными между приложениями (расширение
Apache Thrift [И31]). Используется как для связи между компонентами (модулями), так и для централизованного сбора информации о состоянии виртуальной сети и приложений платформы.
BGP-протокол для обмена RIB-сообщениями со сторонними маршрутизаторами.
Многообразие протоколов и форматов данных можно объяснить различными обстоятельствами. Во-первых, разработку отдельных составных частей этого средства ПКС вели разные коллективы. Они использовали наиболее развитые и широкоприменяемые на тот момент и для того уровня системного ПО решения. Во-вторых, многие протоколы действуют только на определённых уровнях (BGP — между серверами в TCP/IP сети, Netlink — между пользовательским приложением и модулем ядра, и т. д.), и, следовательно, обеспечение связности между частями SDN, действующими на разных уровнях, возможно только с использованием этих протоколов.
Это разнообразие применяемых технологий, на первый взгляд, может увеличить вероятность возникновения ошибок. Однако оно является и некоторым предохранителем — при условии, что протоколы верхнего уровня по построению ограничивают ввод (передачу) некорректных данных для протоколов нижестоящих уровней.
OpenSDN: языки программирования и библиотеки
Использование разнообразных стандартов и протоколов, очевидно, сказывается и на выборе средств разработки для реализации составных частей сетевой операционной системы OpenSDN, включая языки программирования (ЯП), систему сборки проекта и сторонние библиотеки.
В зависимости от назначения модуля, требований к его надёжности и производительности, используются следующие ЯП:
модуль пересылки данных, как находящийся наиболее близко к сетевым службам ОС Linux, реализован на языке C (модуль ядра, приложение DPDK, имитатор модуля в непривилегированном режиме);
контроллер и другие приложения управления оперативной информацией о виртуальной сети (агент виртуального коммутатора-маршрутизатора, DNS агент и др.) реализуются с использованием C++, дающим производительность сопоставимую с C и гибкость синтаксиса, сходную с языками более высокого уровня;
компонент настройки (Config) виртуальной сети, система сборки контейнеров и исходного кода, а также unit-тесты модуля пересылки данных реализованы на Python;
интеграционные тесты контроллера и агента виртуального коммутатора-маршрутизатора реализованы на языке Go;
графический интерфейс реализован на языке Javascript;
и т.д.
Базовые алгоритмы и возможности реализованы через библиотечные вызовы.
многопоточность в приложениях на C++ осуществляется с использованием фреймворка Intel TBB;
работа TCP/HTTP/HTTPS-серверов, ввод/вывод и многие другие функции приложений на C++ реализованы с использованием библиотеки boost;
запись в файл журнала на внешнем диске выполняется через библиотеку log4cplus;
виртуальный сервер разрешения имён реализован с использованием проекта bind9;
повышение производительности модуля пересылки данных реализовано на основе DPDK;
связь между различными компонентами реализована с помощью языка интерфейсов Sandesh, который является расширением технологии Apache Thrift;
управление зависимостями в исходном коде проекта выполняется средствами scons;
долговременное хранение состояния виртуальной сети реализовано на основе БД Cassandra;
и т.д.
Общий объём исходного кода проекта OpenSDN составляет около 1,5 млн строк кода, из которых около 750 тысяч строк занимают программы и библиотеки на языках C/C++.
Очевидно, что такое разнообразие языков программирования, библиотек, технологий и связанных с ними подходов к разработке недоступно для освоения небольшим, пусть даже и высококвалифицированным коллективом разработчиков. Поддерживать сложную экосистему такого большого проекта, как OpenSDN, нужно силами коллектива с самыми разнообразными навыками. Например так, как это делается в рамках открытых лицензий или фондов. В качестве иллюстрации можно привести Apache Foundation.
Положительной же стороной разнообразия используемых технологий является потенциальная возможность гибкого приспособления модулей OpenSDN к задачам, решаемым в рамках их функциональности. Кроме того, использование распространённых и зарекомендовавших себя в промышленности библиотек (таких как boost, Intel TBB, Cassandra) гарантирует их регулярное обновление усилиями соответствующих сообществ разработчиков, и, как дополнительный бонус, повышение квалификации разработчика-пользователя.
OpenSDN сегодня — это кто?
Объединённый коллектив разработчиков OpenSDN состоит примерно из 20 активных участников, работающих в пяти компаниях:
Т1 Облако. Сотрудники разрабатывают ПО в основных компонентах OpenSDN (Config, Controller, vRouter, UI) и тестируют решения на крупных вычислительных кластерах;
Progmatic Lab занимаются системой CI/CD, контейнерами, модульными тестами;
Nipa дорабатывают исходный код Config, Controller и плагина Neutron, тестируют, поддерживают
opensdn.io [И32];
Mirantis дорабатывают код контроллера (драйвер доступа к базе данных постоянного хранилища) и модуль пересылки данных, тестируют производительность;
Shape Blue интегрируют OpenSDN с открытой облачной платформой CloudStack;
CloudX ведут доработку исходного кода OpenSDN и предоставляют облачные сервисы на его базе.
Исходный код проекта модерируется средствами технологии Gerrit (gerrit.opensdn.io) и дублируется в проект на GitHub. Для координации сообщества действует постоянный международный англоязычный
Telegram-канал [И33], сейчас в нём более 250 участников.
Проект OpenSDN на GitHub состоит из примерно 30 репозиториев. Основные из них вы можете найти под спойлером.
https://github.com/OpenSDN-io/tf-controller — исходный код компонентов настройки (Config), контроллера (Controller), модуля агента виртуального коммутатора-маршрутизатора и других приложений слоя управления (control plane);
Вклад Т1 Облако в OpenSDN
Каждая из компаний-участников проекта вносит уникальный вклад в его исходный код (ветка master) и инфраструктуру для его поддержки. Изменения фиксируются два раза в год и публикуются в качестве стабильных веток. Например, в 2024 году это ветка 2024.1.
Как основной контрибьютор в исходный код OpenSDN, Т1 Облако дорабатывает и развивает кодовую базу SDN-платформы в следующих направлениях:
совершенствование модуля пересылки (vRouter Forwarder);
совершенствование контроллера сети (Controller/средства управления сетью);
совершенствование виртуальных сетевых функций (Virtual DNS, например);
доработка графического интерфейса (Management plane);
доработка агента виртуального коммутатора (интерфейса между модулем пересылки данных и контроллером сети, vRouter Agent);
обновление стиля исходного кода C++ (в соответствии с последними
стандартами Google [И34]), автодокументирование (Doxygen);
обновление связей со сторонними библиотеками: boost, log4cplus, и т. д.;
тестирование функциональных возможностей, надёжности и быстродействия SDN-решения.
В результате с помощью Т1 Облако удалось обновить функциональность OpenSDN и стандарты исходного кода, устранить ошибки и повысить производительность.
Кроме того, по итогам накопленного опыта планируется развитие архитектуры OpenSDN. Например, программно-определяемые сети используются в Т1 Облако. Виртуальная сеть в облаке
Cloud Compute компании Т1 Облако построена на основе избранных компонентов проекта Tungsten Fabric, который потом был переименован в OpenSDN.
Наша цель — бесперебойное использование этой платформы SDN в условиях больших и сверхбольших облачных инсталляций.
Что нужно OpenSDN
Прошло немногим более года с момента объявления Linux Foundation Networking о закрытии проекта Tungsten Fabric, который на тот момент мог считаться действующим только номинально. За этот год сообщество активных пользователей платформы сумело организовать инфраструктуру для сборки и рецензирования исходного кода, средства обмена информацией (группа в
Telegram,
сайт проекта,
раздел на GitHub и пр.), наладить выпуск новых версий программы и дальнейшее использование для решения бизнес-задач.
На взгляд авторов статьи, основная и главная ценность OpenSDN, как наследника Tungsten Fabric и OpenContrail, — это многолетний опыт компании Juniper в развёртывании программно-конфигурируемых сетей как на собственных стендах, так и на стендах многочисленных заказчиков.
Этот опыт сейчас доступен всем в виде открытого исходного кода. Он позволяет пользователям избежать многих ошибок, обучить специалистов нюансам работы сетевых протоколов и библиотек, интегрироваться в международное сообщество пользователей и разработчиков, а также перенести тяжесть издержек по доработке, тестированию и написанию документации на плечи распределённой команды разработчиков организаций-участников.
Вместе с тем, самостоятельная жизнь проекта только начинается. Для успешного становления и устойчивого развития ему нужны поддержка и участие пользователей. Нужно повысить доступность и простоту использования OpenSDN для специалистов разного профиля в организациях различного масштаба.
Что нового в OpenSDN
Несмотря на внушительную пользовательскую базу Tungsten Fabric, есть ряд важных вопросов, которым уделялось мало внимания. Например, обновление функциональности маршрутизации и сторонних библиотек. В связи с этим выпуск первой версии OpenSDN (2024.1) был знаковым не только как факт рождения новой SDN-платформы. Он задал приоритетные направления развития проекта на ближайшее время. Иначе говоря, выпуск первой версии OpenSDN (2024.1) стал манифестом общего курса на обновление кодовой базы и внимания к запросам пользователей.
Выпущенный в августе 2024 релиз R24.1 включает в себя следующие новшества:
Переход на язык программирования Python
Перевод работы контейнеров на новый дистрибутив Rocky 9.
Реализация нового стыка VxLAN. Он существенно расширяет функциональность платформы по работе в этом режиме, включая возможность использования режимов BGPaaS (BGP-as-a-Service), FIP (Floating IP), L3 AAP (L3 Allowed Address Pair). Они позволяют гибко перенаправлять трафик и реализовывать как частные, так и внешние облачные сетевые сервисы.
Metadata6 — версия сервиса метаданных OpenStack, которая позволяет создавать ВМ, соединённые только с виртуальным сетями IPv6.
NAT66 — реализация технологии NAT (Network Address Translation) для протокола IP версии 6.
Повышение быстродействия vDNS при запуске сервиса. В предыдущих версиях при большом количестве подключённых клиентов с собственным экземпляром виртуального сервиса DNS загрузка этого компонента занимала много времени вследствие неэффективного чтения конфигурации из постоянного хранилища (БД).
Исправления для перевода кодовой базы компонента контроллера и других приложений слоя управления на C++ 11, в том числе для использования современных средств языка для борьбы с ошибками управления памятью.
В следующем выпуске OpenSDN планируется переход на современный дистрибутив Rocky9 для сборочного контейнера, обновление используемой библиотеки boost, обновление версии библиотеки записи журналов (liblog4cplus). За обновлениями можно следить здесь.
Что будет способствовать развитию проекта
дискуссии об области применения и сценариях использования OpenSDN;
сообщения об ошибках, включая подробное описание случаев для их воспроизведения;
систематизация имеющейся документации;
обмен положительным и отрицательным опытом использования, конструктивные предложения по совершенствованию функциональности программы;
формирование и поддержка актуальной версии инструкций по установке и использованию;
наконец, последнее по списку, но первое по значению, это сотрудничество с образовательной средой.
Автор статьи: Матвей Крапошин, ведущий системный архитектор Холдинга Т1
За помощь при подготовке материала автор благодарит коллег: Елену Зизганову, Данила Толкалина, Илью Попова, Андрея Павлова, Юрия Коновалова и Елизавету Титаренко.
[И1] ГОСТ Р 59163-2020 Информационные технологии (ИТ). Методы и средства обеспечения безопасности. Руководство по обеспечению безопасности при внедрении серверов виртуализации.
[И2] ГОСТ ISO/IEC 17788-2016 Информационные технологии (ИТ). Облачные вычисления. Общие положения и терминология.
[И15] ГОСТ 29099-91 Сети вычислительные локальные. Термины и определения.
[И16] ГОСТ 34.936-91 Локальные вычислительные сети.
определение услуг уровня управления доступом к среде.
[И17] ГОСТ 24402-88 Телеобработка данных и вычислительные сети. Термины и определения.
[И18] ГОСТ 33707-2016 Информационные технологии. Словарь.
[И30] Xmpp.org: The universal messaging standard. URL:
https://xmpp.org/ (дата обращения 29.01.2025)