SD-WAN: связность филиалов, ЦОДов и облаков

Цикл «Виды связности и SDN», часть 12. Предыдущая часть: «SDN в Kubernetes: Flannel, Calico, Cilium и OVN-Kubernetes».
Ось: область — филиалы и выбор пути (SD-WAN).
Если между офисом и ЦОДом поднять два VPN-туннеля, мы получим резервную связность. SD-WAN появляется, когда система централизованно описывает политики, измеряет качество путей и автоматически выбирает транспорт для разных потоков.
Underlay остаётся разным
Филиал может иметь:
- проводного оператора;
- LTE/5G;
- второго локального провайдера;
- спутниковый канал;
- L3VPN;
- обычный Интернет.
SD-WAN строит общий overlay и скрывает различия от приложений, но учитывает реальное качество каждого канала.
Active/standby
Основной туннель используется постоянно, резервный включается после отказа. Просто и предсказуемо, но оплаченный резерв большую часть времени простаивает.
Критично правильно определить отказ. Наличие линка Ethernet и даже доступность gateway не означают, что удалённый сервис достижим.
Active/active
Несколько путей используются одновременно. Потоки распределяются по политике, ECMP или измеренным характеристикам.
Нельзя бездумно отправлять пакеты одного TCP-сеанса разными маршрутами с сильно отличающейся задержкой: reordering ухудшит производительность. Обычно путь выбирается на поток или применяется специальная техника packet steering.
Пробы SLA
Система измеряет:
- loss;
- latency;
- jitter;
- доступность конкретного назначения;
- иногда реальную производительность.
Для голоса важны задержка и jitter, для резервного копирования — полоса, для терминального доступа — loss и latency. Один универсальный показатель «канал зелёный» недостаточен.
Маршрутизация по приложению
Политика может сказать:
- голос идёт по каналу с минимальным jitter;
- корпоративные приложения — через ЦОД;
- обновления ОС — через локальный Интернет;
- backup использует дешёвый канал ночью;
- при деградации SaaS трафик переключается на другого оператора.
Для этого нужны классификация, измерения и механизм безопасно изменить forwarding.
Локальный выход (local breakout)
Не весь Интернет-трафик нужно возить через центральный ЦОД. Локальный выход снижает задержку и нагрузку на backbone.
Но политики безопасности, DNS, фильтрация и журналирование должны работать одинаково на всех филиалах. Иначе local breakout превращает каждый офис в отдельный маленький периметр, который надо обслуживать.
Топология
Небольшая сеть может использовать два центральных хаба.
Распределённая компания — региональные хабы и контролируемый inter-region backbone.
Прямые dynamic tunnels между филиалами полезны для голоса и локального обмена, но не обязаны подниматься между каждой парой.
Control plane и отказ
Orchestrator хранит намерение (intent) и распространяет конфигурацию. Локальное устройство должно продолжать forwarding по последней рабочей политике при потере управления.
Проверяем отдельно:
- существующие сессии;
- новые сессии;
- переключение при отказе underlay;
- обновление политики;
- возврат основного канала;
- split brain между контроллерами.
Что можно собрать самостоятельно
Базовый вариант:
- VyOS/Linux/маршрутизатор на филиале;
- туннели WireGuard или IPsec;
- BGP/OSPF внутри overlay;
- BFD или активные probes;
- policy routing;
- Ansible/API для конфигурации;
- Prometheus/Zabbix для измерений.
Это уже способно дать хорошую связность. Но придётся самостоятельно решать orchestration, безопасное обновление политик, инвентарь, откат и единое представление состояния.
Коммерческий SD-WAN продаёт именно эту операционную упаковку, а не неизвестный науке вид туннеля.
Где это ломается
- «Канал зелёный», потому что ping до gateway есть, а SaaS уже недоступен.
- Local breakout включили без единого DNS и журналирования.
- Один TCP-сеанс размазали по двум каналам с разной задержкой.
- Контроллеры в split brain раздают разные политики.
- Три туннеля называют SD-WAN, хотя выбора пути по SLA нет.
В финальной части соберём программу диагностики и начнём ломать нашу лабораторию одинаковыми способами.
Предыдущая часть: «SDN в Kubernetes: Flannel, Calico, Cilium и OVN-Kubernetes»
Оглавление цикла: «SDN без магии: карта видов связности»
Следующая часть: «Диагностика SDN и лаборатория отказов»
