Как виртуализировать сеть: часть последняя, построение наложенной сети на Tungsten Fabric
В предыдущей части мы разобрали два практических подхода к построению наложенных сетей: запуск overlay с ToR-коммутатора и запуск overlay с хоста. Теперь посмотрим, как второй вариант устроен изнутри, на конкретном примере - SDN-платформе Tungsten Fabric (в прошлом OpenContrail).
Важно, если читаете это в 2026 году. Сам проект Tungsten Fabric закрыт: сообщество объявило о прекращении разработки, и 1 августа 2024 года проект был остановлен, причиной названа нехватка ресурсов и активности. Разбирать его архитектуру всё ещё полезно - на тех же принципах построены и живые платформы: коммерческий Contrail от Juniper, OVN в OpenStack, VMware NSX, Cisco ACI. Но начинать новый проект на Tungsten Fabric не стоит.
Что делает vRouter
У каждой физической машины есть vRouter - виртуальный маршрутизатор. Он знает, какие сети к нему подключены и каким клиентам они принадлежат, и в этом смысле похож на provider edge-маршрутизатор. Для каждого клиента vRouter держит изолированную таблицу маршрутизации, и он же выполняет overlay-туннелирование.
Виртуальные машины на гипервизоре подключаются к vRouter через TAP-интерфейс - виртуальное сетевое устройство в ядре Linux. Пара TUN/TAP работает на разных уровнях: TUN передаёт IP-пакеты сетевого уровня, TAP - Ethernet-кадры канального, поэтому для подключения виртуальной машины к виртуальному коммутатору используется именно TAP.
Когда за vRouter стоит несколько сетей, для каждой создаётся отдельный виртуальный интерфейс со своим IP-адресом - он и становится шлюзом по умолчанию для этой сети. Все сети одного клиента складываются в общую VRF-таблицу, а каждому следующему клиенту достаётся своя. Так и достигается изоляция.
Трафик внутри такой сети делится на две категории:
- между машинами на разных физических хостах - идёт через overlay-туннель по физической сети;
- между машинами на одном хосте - в физическую сеть не выходит вовсе, а маршрутизируется внутри vRouter.
Вторая категория часто оказывается заметной долей трафика, и она бесплатна с точки зрения нагрузки на underlay.
Кто держит overlay в актуальном состоянии
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 в серверной инфраструктуре. Про то, как выбор сетевой карты влияет на производительность виртуальных сетей, писали отдельно.
Весь цикл
- Часть 1: вступительная - зачем вообще виртуализировать сеть
- Часть 2: Hyper-V - виртуализация сети на платформе Microsoft
- Часть 3: построение наложенных сетей - overlay с ToR-коммутатора и с хоста (ссылка в начале статьи)
- Часть 4: построение наложенной сети - эта статья
Подберём железо под виртуализацию сети
Overlay снимает зависимость от конкретных коммутаторов, но не от их пропускной способности: underlay всё равно должен тянуть туннелированный трафик, а хосты - обрабатывать инкапсуляцию. Узким местом чаще оказываются сетевые карты и процессоры хостов, а не сама SDN-платформа.
Мы 11+ лет на рынке серверов и подбираем конфигурации под конкретную нагрузку. Посмотрите оборудование для сети или напишите нам - разберём вашу схему и подскажем, где считать запас.
Телефон: 8 (800) 551-80-12
Почта: info@ittelo.ru


