Топологии связности: hub-and-spoke, partial mesh и full mesh

Обложка

Цикл «Виды связности и SDN», часть 6. Предыдущая часть: «Кто управляет сетью: контроллер, BGP и локальные агенты».

Ось: топология.

Топология отвечает не на вопрос «чем шифруем», а на вопрос «через кого проходит пакет».

Point-to-point

Один туннель между двумя площадками. Простая адресация, понятный маршрут, минимум служебного состояния.

Проблемы начинаются, когда появляется третья, десятая и сотая площадка. Ручное добавление каждой пары быстро превращается в отдельную профессию.

Hub-and-spoke

Все spokes подключаются к центральному хабу. Филиалу нужен один или два туннеля, политики сосредоточены в одном месте, легко организовать общий выход и журналирование.

Недостатки:

Два хаба улучшают ситуацию, но добавляют выбор активного маршрута и риск асимметрии.

Full mesh

Каждый узел имеет прямую связь с каждым. Количество пар:

N × (N − 1) / 2.

Для десяти участников — 45, для ста — 4950, для тысячи — 499 500 потенциальных пар.

Это не обязательно означает полмиллиона постоянно активных сокетов. Современный контроллер может выдавать endpoint и ключи по политике, а data plane поднимать связь при появлении трафика.

Но каждому узлу всё равно нужно знать разрешённых участников, их ключи, адреса или способ запроса этой информации. Масштабируется не только трафик, но и состояние.

Partial mesh

Прямые связи создаются только для реально общающихся групп.

Например:

Partial mesh часто оказывается практичнее полного: меньше состояния и радиус аварии при сохранении прямых путей там, где они дают пользу.

Региональная иерархия

Несколько локальных хабов соединяются между собой mesh или магистралью. Пользователь подключается к ближайшему региону, а межрегиональный трафик проходит по контролируемому backbone.

Такая схема удобна, когда:

Relay не всегда хаб

Relay может использоваться только тогда, когда два участника не установили прямое соединение из-за NAT или firewall. Остальные пары продолжают общаться напрямую.

Поэтому наличие relay не делает всю сеть hub-and-spoke. Но для конкретной проблемной пары relay временно становится транзитной точкой со всеми последствиями: задержкой, ограничением полосы и требованиями к резервированию.

Кольцо

Кольцевая схема знакома по транспортным сетям, но для программных туннелей используется реже. Она экономит число связей и даёт альтернативный путь, однако увеличивает количество транзитных узлов и усложняет быстрое восстановление без протокола маршрутизации.

Если поверх кольца работает BGP/OSPF и корректно выбирает путь, это уже routed overlay с выбором пути.

Как выбирать

Hub-and-spoke хорош для простого удалённого доступа и централизованного выхода.

Full mesh подходит для небольшого числа равноправных узлов с интенсивным взаимным обменом.

Partial mesh — для большинства неоднородных инфраструктур.

Региональная схема — когда узлов и географии уже достаточно, чтобы один центр стал проблемой.

Решение нужно принимать по реальной матрице потоков. Если из ста площадок девяносто девять ходят только к двум ЦОДам, полный mesh существует главным образом ради красивой схемы.

Где это ломается

В следующей части добавим NAT, CGNAT и фильтрацию. Именно там выяснится, что нарисованная прямая линия между узлами иногда является пожеланием, а фактический пакет тихо едет через relay.

Предыдущая часть: «Кто управляет сетью: контроллер, BGP и локальные агенты»

Оглавление цикла: «SDN без магии: карта видов связности»

Следующая часть: «NAT, CGNAT и ограниченные сети: где заканчивается прямая связность»

Схема

#network #selfhosting