× Install ThecoreGrid App
Tap below and select "Add to Home Screen" for full-screen experience.
B2B Engineering Insights & Architectural Teardowns

In-band SDN coordination without state explosion

Multi-controller coordination in in-band SDN control plane becomes tractable when forwarding state stays bounded. Periplus shows how to scale without inflating switch tables.

В in-band SDN control plane управление и данные делят одну сеть. Это упрощает деплой в ограниченных средах, но ломается при масштабировании. Как только появляется несколько контроллеров, возникает двойная нагрузка: контроллеры должны находить друг друга и синхронизироваться через ту же сеть, а коммутаторы — переживать отказ контроллера. Классические подходы решают это через отдельные spanning tree или выделенные пути. Цена — рост forwarding state на каждом switch пропорционально числу контроллеров. В какой-то момент это становится узким местом: таблицы растут быстрее, чем сама сеть.

Periplus предлагает более сдержанный путь. Основная идея — локализовать состояние на границах доменов. Вместо того чтобы распространять маршруты до всех контроллеров по всей сети, система использует Controller Advertisement (C-Adv) и частичные forwarding graphs. Каждый border switch добавляет только свой сегмент маршрута до следующего домена. Внутренние (interior) коммутаторы не знают о чужих контроллерах вообще. Это компромисс: чуть более сложная логика на границе, но стабильный объём состояния внутри домена.

Реализация опирается на уже существующие механизмы. Используется Ryu SDN framework и Open vSwitch без модификаций, с Nicira extensions для NSH (Network Service Header). Маршрутизация строится через embedding forwarding graph прямо в пакет. Контроллер вычисляет основной путь (Dijkstra) и альтернативы, а switch при сбое локально переключается без обращения к контроллеру. Для обнаружения контроллеров применяется тот же C-Adv, но с расширением: сообщения несут список известных контроллеров и path vector, аналогичный BGP AS_PATH, чтобы избежать циклов.

Координация между доменами происходит инкрементально. Когда один контроллер узнаёт о другом, он устанавливает flow только до ближайшего border switch. Дальше следующий домен добавляет свой сегмент. В результате полный маршрут никогда не хранится в одной точке. Это снижает требования к памяти и делает систему устойчивой к росту сети. Аналогия с segment routing уместна, но здесь сегменты добавляются по пути, а не на входе.

Отказ контроллера обрабатывается через soft-state. Если flow entries перестают обновляться, switch возвращается в начальное состояние и повторяет bootstrap. Новый контроллер выбирается по принципу first-come-first-served через anycast. Важно, что recovery не требует явной координации контроллеров. Поведение определяется локальными сигналами (C-Adv или ARP), что уменьшает latency и зависимость от глобального состояния.

Эксперименты в Mininet показывают, как это ведёт себя под нагрузкой. В топологии с 96 switches и 5 controllers время bootstrap стабилизируется около 10 секунд при разбиении на 3+ домена. Это следствие уменьшения diameter каждого домена. Discovery между контроллерами сходится за несколько секунд. Recovery после отказа контроллера занимает около 10 секунд в медиане. Важно: эти цифры зависят от реализации OVS, и часть задержек связана с reconnect-логикой, а не архитектурой.

Ключевой результат — распределение состояния. Interior switches держат постоянное число правил (~42), независимо от числа контроллеров. Дополнительная нагрузка появляется только на border switches (~52 правил), где хранятся транзитные графы. Это подтверждает исходную гипотезу: масштабирование достигается не за счёт оптимизации алгоритмов, а за счёт ограничения области распространения состояния.

В индустрии подобный подход выглядит как эволюционное улучшение. Он не требует нового железа или протоколов. Он меняет точку, где хранится сложность. Вместо “каждый знает всё” система становится “каждый знает достаточно”. Это делает in-band SDN control plane более практичным для распределённых и ресурсно-ограниченных сетей, где отдельная control-plane инфраструктура невозможна.

Ограничения остаются. Балансировка нагрузки между контроллерами пока примитивна. Консистентность состояния оставлена на уровень выше. И вся оценка выполнена в эмуляции, без полевых условий. Но сама архитектурная идея — ограничить рост forwarding state через border-centric дизайн — выглядит устойчивой и переносимой.


Источник информации

arXiv — крупнейший открытый репозиторий препринтов (с 1991 года, под эгидой Корнелла), где исследователи оперативно размещают рабочие версии статей; материалы общедоступны, но не проходят полное рецензирование, поэтому результаты следует считать предварительными и, по возможности, сверять с обновленными версиями или рецензируемыми журналами. arxiv.org

Смотреть оригинал исследования PDF

×

🚀 Deploy the Blocks

Controls: ← → to move, ↑ to rotate, ↓ to drop.
Mobile: use buttons below.