В предыдущей части мы разобрали два практических подхода к построению наложенных сетей: запуск overlay с ToR-коммутатора и запуск overlay с хоста. Теперь посмотрим, как второй вариант устроен изнутри, на конкретном примере - SDN-платформе Tungsten Fabric (в прошлом OpenContrail).
Важно, если читаете это в 2026 году. Сам проект Tungsten Fabric закрыт: сообщество объявило о прекращении разработки, и 1 августа 2024 года проект был остановлен, причиной названа нехватка ресурсов и активности. Разбирать его архитектуру всё ещё полезно - на тех же принципах построены и живые платформы: коммерческий Contrail от Juniper, OVN в OpenStack, VMware NSX, Cisco ACI. Но начинать новый проект на Tungsten Fabric не стоит.
У каждой физической машины есть vRouter - виртуальный маршрутизатор. Он знает, какие сети к нему подключены и каким клиентам они принадлежат, и в этом смысле похож на provider edge-маршрутизатор. Для каждого клиента vRouter держит изолированную таблицу маршрутизации, и он же выполняет overlay-туннелирование.
Виртуальные машины на гипервизоре подключаются к vRouter через TAP-интерфейс - виртуальное сетевое устройство в ядре Linux. Пара TUN/TAP работает на разных уровнях: TUN передаёт IP-пакеты сетевого уровня, TAP - Ethernet-кадры канального, поэтому для подключения виртуальной машины к виртуальному коммутатору используется именно TAP.
Когда за vRouter стоит несколько сетей, для каждой создаётся отдельный виртуальный интерфейс со своим IP-адресом - он и становится шлюзом по умолчанию для этой сети. Все сети одного клиента складываются в общую VRF-таблицу, а каждому следующему клиенту достаётся своя. Так и достигается изоляция.
Трафик внутри такой сети делится на две категории:
Вторая категория часто оказывается заметной долей трафика, и она бесплатна с точки зрения нагрузки на underlay.
Overlay-сеть может меняться в реальном времени, и работа делится так: конфигурация и контроль таблиц лежат на центральном SDN-контроллере, коммутация и маршрутизация - на vRouter.
Контроллер устанавливает пиринговое соединение со всеми vRouter по BGP или похожему протоколу и распространяет маршрутную информацию. Важная деталь протокола - наличие Address Family для передачи метода инкапсуляции, MPLS-in-GRE или MPLS-in-UDP.
Главный выигрыш здесь в том, что конфигурация underlay-сети при всём этом не меняется. Как мы говорили в предыдущей части, это принципиально: автоматизировать underlay на порядок сложнее, а риск положить работающую сеть при её перестройке заметно выше.
Чтобы попасть из виртуальной сети во внешний мир, применяют два подхода.
Аппаратный маршрутизатор. Классика: отдельная железка на границе.
Виртуальный шлюз (VNGW, Virtual Network GateWay). Роль маршрутизатора выполняет appliance, запущенный как виртуальная машина.
| Аппаратный маршрутизатор | Виртуальный шлюз | |
|---|---|---|
| Масштабирование | Через закупку железа: стойки, юниты, питание, монтаж | Запуском ещё одной виртуальной машины |
| Производительность | Выше: софт подогнан под собственную аппаратную базу | Ниже, даже у многоядерной ВМ |
| Стабильность | Программно-аппаратный комплекс, отлажен вендором | Зависит от того, как настроено окружение |
| Требования к команде | Нужна настройка | Нужны более глубокие знания у администраторов |
Виртуальный шлюз интересен прежде всего дешёвым горизонтальным масштабированием: не хватило мощности - подняли ещё одну машину со своим шлюзом. Это несопоставимо проще, чем искать свободные юниты и выводы питания, заказывать оборудование и разбираться с его установкой и коммутацией.
Описание выше - поверхностный срез: реальная работа overlay с хоста и SDN-контроллером сложнее. Но принцип переносится на любую платформу.
Какую бы вы ни выбрали - VMware NSX, Cisco ACI, OpenStack с OVN, CloudStack, коммерческий Contrail от Juniper, - устройство будет примерно тем же. Различаться станут виды инкапсуляций и заголовков, протоколы доставки маршрутной информации, детали интеграции с гипервизором. Сама же идея программно настраиваемой overlay-сети поверх простого и статичного underlay никуда не денется: она решает реальную проблему.
Overlay-сети воспроизводят структуру физической сети настолько точно, что приложения работают в них так же, как в физической. Это и даёт главный результат - меньше зависимости от конкретного оборудования и меньше ручной работы при изменениях.
Из смежного: как разворачивают VXLAN и NSX, разбирали в руководстве для инженера, а виртуализацию сетевых функций - в материале про NFV в серверной инфраструктуре. Про то, как выбор сетевой карты влияет на производительность виртуальных сетей, писали отдельно.
Подберём железо под виртуализацию сети
Overlay снимает зависимость от конкретных коммутаторов, но не от их пропускной способности: underlay всё равно должен тянуть туннелированный трафик, а хосты - обрабатывать инкапсуляцию. Узким местом чаще оказываются сетевые карты и процессоры хостов, а не сама SDN-платформа.
Мы 11+ лет на рынке серверов и подбираем конфигурации под конкретную нагрузку. Посмотрите оборудование для сети или напишите нам - разберём вашу схему и подскажем, где считать запас.
Телефон: 8 (800) 551-80-12
Почта: info@ittelo.ru