In-band SDN с несколькими контроллерами упирается в координацию и рост состояния. Periplus решает это через border-switch forwarding graphs, удерживая state локальным.
Первое узкое место in-band SDN — это не сам контроль трафика, а его эволюция при росте сети. Когда один контроллер перестаёт справляться, сеть делят на домены. Но появляется новая проблема: multi-controller coordination. Контроллеры должны обнаруживать друг друга и обмениваться состоянием по тем же каналам (in-band), не раздувая таблицы потоков (flow tables) на каждом коммутаторе. В классических подходах это ломается о масштаб: каждый новый контроллер добавляет состояние на все switches. В итоге выигрыша от partitioning почти не остаётся — растёт не latency, а state overhead.
Periplus выбирает более локальную стратегию. Основная идея — ограничить forwarding state только пограничными узлами (border switches). Для этого используется механизм Controller Advertisement (C-Adv) и инкрементальная сборка маршрутов между контроллерами. Вместо того чтобы прокладывать полный путь через всю сеть, каждый домен добавляет только свой сегмент в forwarding graph. Это похоже на segment routing, но с важным отличием: граф не задаётся целиком на входе, а “достраивается” на границах доменов. Компромисс здесь очевиден: больше логики на border switches, но резкое снижение давления на interior switches.
Реализация опирается на несколько ключевых механизмов:
- C-Adv сообщения выполняют двойную роль: discovery и liveness. Они распространяются контролируемым flooding без штормов.
- Каждый контроллер ведёт soft-state таблицу соседей с таймерами (alive counter).
- Для предотвращения циклов используется логика, аналогичная BGP AS_PATH.
- Маршруты строятся через Dijkstra внутри домена, но только до ближайшего border switch.
Forwarding graph кодируется в пакетах через NSH (Network Service Header) с использованием расширений Open vSwitch. Это важно: не требуется модификация firmware. Однако появляется зависимость от возможностей OVS и его таймингов. В эксперименте даже понадобился патч, чтобы ускорить reconnection — иначе поведение контроллера маскируется задержками на уровне реализации.
Отдельный аспект — отказоустойчивость. Если контроллер падает, коммутатор не ждёт явного сигнала. Его flow entries просто истекают (hard timeout), и он возвращается в bootstrap-состояние. Далее он повторно подключается к любому доступному контроллеру через C-Adv или ARP. Это даёт простую модель recovery без централизованной координации. Trade-off — временная потеря управления и зависимость от таймеров.
Результаты показывают, что архитектурное решение работает именно за счёт локальности состояния.
- В топологии с 96 коммутаторами и до 5 контроллеров bootstrap занимает около 10 секунд после partitioning.
- Время обнаружения контроллеров — несколько секунд, зависит от связности, а не от их количества.
- Recovery после отказа контроллера — около 10 секунд (в patched OVS).
- Главное: количество правил на коммутаторе определяется ролью (root, border, interior), а не размером сети.
Interior switches держат постоянное число правил независимо от числа контроллеров. Дополнительное состояние появляется только на border switches и линейно зависит от числа соседних доменов, а не всей сети. Это и есть ключевой эффект: масштабирование через изоляцию состояния.
Важно отметить ограничения:
- Нет строгой модели консистентности между контроллерами. Это оставлено на уровень приложений.
- Балансировка нагрузки между контроллерами — примитивная (first-come-first-served).
- Все результаты получены в Mininet; поведение на реальной сети может отличаться.
В индустрии давно обсуждают, что in-band SDN — это компромисс между стоимостью и управляемостью. Periplus делает этот компромисс более управляемым: он не устраняет сложность, но локализует её. Вместо того чтобы бороться с ростом состояния глобально, система ограничивает его географией доменов.
Это прагматичный шаг. Не универсальное решение, но рабочая модель для сетей, где выделенный control plane невозможен и где важнее предсказуемость, чем идеальная консистентность.
Источник информации
arXiv — крупнейший открытый репозиторий препринтов (с 1991 года, под эгидой Корнелла), где исследователи оперативно размещают рабочие версии статей; материалы общедоступны, но не проходят полное рецензирование, поэтому результаты следует считать предварительными и, по возможности, сверять с обновленными версиями или рецензируемыми журналами. arxiv.org