OpenFabric - протокол маршрутизации для ЦОД
Обзор
OpenFabric - это протокол маршрутизации на основе состояния каналов, разработанный специально для современных архитектур центров обработки данных (ЦОД). Протокол является производным от IS-IS и оптимизирован для работы в топологиях Spine-Leaf (Clos) с большим количеством ECMP путей.
Основные характеристики
- Основа на IS-IS: Использует проверенную технологию протокола IS-IS с оптимизациями для ЦОД
- Плоская топология: Отсутствие уровней L1/L2, все маршрутизаторы находятся на одном уровне
- Dual-stack: Нативная поддержка IPv4 и IPv6 одновременно
- ECMP: Эффективная поддержка множественных равноценных путей
- Масштабируемость: Оптимизирован для больших Spine-Leaf топологий
- Быстрая сходимость: Минимальное время реакции на изменения топологии
Архитектура OpenFabric
OpenFabric предназначен для работы в топологии Clos (Spine-Leaf), которая стала стандартом де-факто для современных ЦОД:
┌─────────────────────────────────────────────────────────┐
│ Leaf Layer (Tier 2) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Leaf 1 │ │ Leaf 2 │ │ Leaf 3 │ │ Leaf 4 │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
└───────┼────────────┼────────────┼────────────┼─────────┘
│ │ │ │
└────┬───────┴─────┬──────┴─────┬──────┘
│ │ │
┌────────────┼─────────────┼────────────┼────────────────┐
│ │ │ │ │
│ ┌─────────▼──┐ ┌───────▼────┐ ┌───▼───────┐ │
│ │ Spine 1 │ │ Spine 2 │ │ Spine 3 │ │
│ └────────────┘ └────────────┘ └───────────┘ │
│ Spine Layer (Tier 1) │
└────────────────────────────────────────────────────────┘Отличия от традиционного IS-IS
| Характеристика | IS-IS | OpenFabric |
|---|---|---|
| Уровни иерархии | L1, L2, L1/L2 | Плоская топология |
| Целевое применение | Провайдерские сети | Центры обработки данных |
| Топология | Произвольная | Spine-Leaf (Clos) |
| Оптимизация | Общего назначения | Для ECMP и ЦОД |
| Flood оптимизация | Стандартная | Улучшенная для fabric |
Базовая конфигурация
Network Entity Title (NET)
NET - это уникальный идентификатор маршрутизатора в домене OpenFabric. Конфигурация NET является обязательной.
Формат NET:
49.AREA.SYSTEM-ID.SELECTORКомпоненты:
- AFI (Authority and Format Identifier):
49- частная адресация - Area Identifier: Идентификатор зоны (обычно
0001) - System Identifier: Уникальный идентификатор системы (48 бит, обычно 12 шестнадцатеричных цифр)
- NET Selector: Всегда
00
Примеры NET:
# NET из IP-адреса 192.168.100.2
49.0001.1921.6810.0002.00
# NET из MAC-адреса 00:50:56:00:10:02
49.0001.0050.5600.1002.00
# Произвольный NET
49.0001.0000.0000.0001.00Конфигурация NET:
set protocols openfabric net 49.0001.1921.6810.0002.00Создание домена OpenFabric
Домен - это логическая группировка маршрутизаторов и интерфейсов в OpenFabric.
# Создание домена с именем DATACENTER
set protocols openfabric domain DATACENTER
# Конфигурация NET для домена
set protocols openfabric net 49.0001.1921.6810.0001.00Включение интерфейсов
Интерфейсы необходимо явно включить в домен OpenFabric с указанием семейств адресов.
# Включение интерфейса eth1 для IPv4
set protocols openfabric domain DATACENTER interface eth1 address-family ipv4
# Включение интерфейса eth2 для IPv4 и IPv6
set protocols openfabric domain DATACENTER interface eth2 address-family ipv4
set protocols openfabric domain DATACENTER interface eth2 address-family ipv6
# Включение loopback интерфейса
set protocols openfabric domain DATACENTER interface lo address-family ipv4Минимальная рабочая конфигурация
# Конфигурация Spine маршрутизатора
set protocols openfabric net 49.0001.1921.6810.0001.00
set protocols openfabric domain DC interface eth1 address-family ipv4
set protocols openfabric domain DC interface eth2 address-family ipv4
set protocols openfabric domain DC interface eth3 address-family ipv4
set protocols openfabric domain DC interface eth4 address-family ipv4
set protocols openfabric domain DC interface lo address-family ipv4
commit
saveКонфигурация Fabric Tier
Fabric Tier - это уровень в иерархии Spine-Leaf, который определяет роль маршрутизатора.
Уровни Fabric
- Tier 0: Зарезервировано для будущего использования
- Tier 1: Spine уровень (агрегация)
- Tier 2: Leaf уровень (доступ к серверам)
Конфигурация Tier
# Конфигурация Spine маршрутизатора (Tier 1)
set protocols openfabric domain DATACENTER fabric-tier 1
# Конфигурация Leaf маршрутизатора (Tier 2)
set protocols openfabric domain DATACENTER fabric-tier 2Важно: Правильная конфигурация Tier критична для оптимальной работы flooding механизма и предотвращения петель.
Параметры интерфейсов
Hello интервал и multiplier
Hello пакеты используются для обнаружения соседей и поддержания смежности.
# Установка hello интервала (по умолчанию: 3 секунды)
set protocols openfabric domain DATACENTER interface eth1 hello-interval 5
# Установка hello multiplier (по умолчанию: 3)
# Dead интервал = hello-interval × hello-multiplier
set protocols openfabric domain DATACENTER interface eth1 hello-multiplier 3Расчет Dead интервала:
Dead Interval = Hello Interval × Hello Multiplier
Пример: 5 секунд × 3 = 15 секундМетрика интерфейса
Метрика влияет на выбор пути. Меньшая метрика предпочтительнее.
# Установка метрики интерфейса (по умолчанию: 10)
set protocols openfabric domain DATACENTER interface eth1 metric 100
# Разные метрики для разных интерфейсов
set protocols openfabric domain DATACENTER interface eth1 metric 10
set protocols openfabric domain DATACENTER interface eth2 metric 20Диапазон метрики: 1 - 16,777,215
Passive интерфейс
Passive интерфейс анонсирует сети, но не формирует смежности.
# Полезно для loopback интерфейсов и интерфейсов к серверам
set protocols openfabric domain DATACENTER interface lo passive
# Интерфейс к серверам без OpenFabric
set protocols openfabric domain DATACENTER interface eth5 passive
set protocols openfabric domain DATACENTER interface eth5 address-family ipv4CSNP и PSNP интервалы
CSNP (Complete Sequence Number PDU) и PSNP (Partial Sequence Number PDU) используются для синхронизации базы данных состояния каналов.
# Установка CSNP интервала (по умолчанию: 10 секунд)
set protocols openfabric domain DATACENTER interface eth1 csnp-interval 15
# Установка PSNP интервала (по умолчанию: 2 секунды)
set protocols openfabric domain DATACENTER interface eth1 psnp-interval 3Параметры LSP (Link State PDU)
Генерация LSP
Контроль частоты генерации новых LSP для оптимизации нагрузки.
# Минимальный интервал между генерациями LSP (миллисекунды)
set protocols openfabric domain DATACENTER lsp-gen-interval 1
# Максимальный интервал между генерациями LSP (секунды)
set protocols openfabric domain DATACENTER lsp-mtu 1497LSP Refresh интервал
LSP периодически обновляются для предотвращения истечения срока действия.
# Интервал обновления LSP (по умолчанию: 900 секунд)
set protocols openfabric domain DATACENTER lsp-refresh-interval 600
# Максимальное время жизни LSP (по умолчанию: 1200 секунд)
set protocols openfabric domain DATACENTER max-lsp-lifetime 1800Рекомендация: max-lsp-lifetime должен быть больше lsp-refresh-interval.
Overload bit
Overload bit сигнализирует соседям, что маршрутизатор перегружен и не должен использоваться для транзитного трафика.
# Установка overload bit
set protocols openfabric domain DATACENTER overload
# Установка overload bit на определенное время (секунды)
set protocols openfabric domain DATACENTER overload on-startup 120Применение:
- Плановое обслуживание
- Graceful restart
- Временные проблемы с производительностью
Purge Originator
Идентификация источника удаления LSP в сети.
# Включение purge originator identification
set protocols openfabric domain DATACENTER purge-originatorАутентификация
Аутентификация на уровне домена
# Plaintext аутентификация
set protocols openfabric domain DATACENTER domain-password plaintext-password MySecretPassword
# MD5 аутентификация
set protocols openfabric domain DATACENTER domain-password md5 MySecretPasswordАутентификация на уровне интерфейса
# Plaintext аутентификация интерфейса
set protocols openfabric domain DATACENTER interface eth1 password plaintext-password InterfacePassword
# MD5 аутентификация интерфейса
set protocols openfabric domain DATACENTER interface eth1 password md5 InterfacePasswordРекомендация: Используйте MD5 аутентификацию для повышения безопасности.
Редистрибуция маршрутов
Редистрибуция подключенных сетей
# Редистрибуция всех подключенных интерфейсов
set protocols openfabric domain DATACENTER redistribute ipv4 connected
# Редистрибуция с route-map фильтрацией
set protocols openfabric domain DATACENTER redistribute ipv4 connected route-map CONNECTED-TO-FABRICРедистрибуция статических маршрутов
# Редистрибуция статических маршрутов
set protocols openfabric domain DATACENTER redistribute ipv4 static
# Редистрибуция с метрикой
set protocols openfabric domain DATACENTER redistribute ipv4 static metric 50Редистрибуция из других протоколов
# Редистрибуция из OSPF
set protocols openfabric domain DATACENTER redistribute ipv4 ospf
# Редистрибуция из BGP
set protocols openfabric domain DATACENTER redistribute ipv4 bgp
# Редистрибуция из Kernel
set protocols openfabric domain DATACENTER redistribute ipv4 kernelRoute-map для фильтрации
# Создание route-map для фильтрации
set policy route-map CONNECTED-TO-FABRIC rule 10 action permit
set policy route-map CONNECTED-TO-FABRIC rule 10 match interface eth5
set policy route-map CONNECTED-TO-FABRIC rule 10 set metric 20
set policy route-map CONNECTED-TO-FABRIC rule 20 action deny
# Применение route-map
set protocols openfabric domain DATACENTER redistribute ipv4 connected route-map CONNECTED-TO-FABRICIPv6 конфигурация
OpenFabric нативно поддерживает IPv6 одновременно с IPv4.
# Включение IPv6 на интерфейсах
set protocols openfabric domain DATACENTER interface eth1 address-family ipv6
set protocols openfabric domain DATACENTER interface eth2 address-family ipv6
set protocols openfabric domain DATACENTER interface lo address-family ipv6
# Редистрибуция IPv6 маршрутов
set protocols openfabric domain DATACENTER redistribute ipv6 connected
set protocols openfabric domain DATACENTER redistribute ipv6 static
# Dual-stack конфигурация
set protocols openfabric domain DATACENTER interface eth1 address-family ipv4
set protocols openfabric domain DATACENTER interface eth1 address-family ipv6Оптимизация Flooding
OpenFabric включает механизмы оптимизации flooding для уменьшения избыточного трафика в Spine-Leaf топологиях.
Принцип работы
В традиционном IS-IS каждый маршрутизатор отправляет LSP всем соседям. В Spine-Leaf топологии это создает избыточность:
- Leaf отправляет LSP всем Spine
- Каждый Spine отправляет LSP обратно всем Leaf
- Результат: многократная передача одних и тех же LSP
OpenFabric с правильно настроенными Tier оптимизирует этот процесс:
- Leaf (Tier 2) отправляет LSP только одному Spine (Tier 1)
- Spine распространяет LSP другим Spine и всем Leaf
- Значительное снижение служебного трафика
Настройка для оптимизации
# Spine конфигурация
set protocols openfabric domain DATACENTER fabric-tier 1
# Leaf конфигурация
set protocols openfabric domain DATACENTER fabric-tier 2Важно: Все маршрутизаторы на одном физическом уровне должны иметь одинаковый Fabric Tier.
Примеры конфигурации
Пример 1: Yandex Cloud - OpenFabric для Clos ЦОД
Архитектура: 3 Spine маршрутизатора и 4 Leaf маршрутизатора в Yandex Cloud.
Топология
Yandex Cloud VPC
┌────────────────────────────────────────────────────────┐
│ │
│ Spine Layer (AS 64512) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Spine-1 │ │ Spine-2 │ │ Spine-3 │ │
│ │ 10.0.1.1/32 │ │ 10.0.1.2/32 │ │ 10.0.1.3/32 │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └─────────┬────────┴────────┬─────────┘ │
│ │ │ │
│ Leaf Layer │ │ │
│ ┌────────────────▼──┐ ┌──────────▼────────┐ │
│ │ Leaf-1 │ │ Leaf-2 │ │
│ │ 10.0.2.1/32 │ │ 10.0.2.2/32 │ │
│ └───────────────────┘ └───────────────────┘ │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Leaf-3 │ │ Leaf-4 │ │
│ │ 10.0.2.3/32 │ │ 10.0.2.4/32 │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ Subnet для Spine-Leaf линков: 10.0.100.0/24 │
│ Subnet для Server линков: 10.0.200.0/22 │
└────────────────────────────────────────────────────────┘Spine-1 конфигурация
# Интерфейсы
set interfaces ethernet eth0 address 10.0.100.1/31
set interfaces ethernet eth1 address 10.0.100.9/31
set interfaces ethernet eth2 address 10.0.100.17/31
set interfaces ethernet eth3 address 10.0.100.25/31
set interfaces loopback lo address 10.0.1.1/32
# OpenFabric базовая конфигурация
set protocols openfabric net 49.0001.0100.0000.1001.00
set protocols openfabric domain YANDEX fabric-tier 1
# Включение интерфейсов в OpenFabric
set protocols openfabric domain YANDEX interface eth0 address-family ipv4
set protocols openfabric domain YANDEX interface eth1 address-family ipv4
set protocols openfabric domain YANDEX interface eth2 address-family ipv4
set protocols openfabric domain YANDEX interface eth3 address-family ipv4
set protocols openfabric domain YANDEX interface lo address-family ipv4
set protocols openfabric domain YANDEX interface lo passive
# Оптимизация таймеров для ЦОД
set protocols openfabric domain YANDEX interface eth0 hello-interval 3
set protocols openfabric domain YANDEX interface eth0 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth1 hello-interval 3
set protocols openfabric domain YANDEX interface eth1 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth2 hello-interval 3
set protocols openfabric domain YANDEX interface eth2 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth3 hello-interval 3
set protocols openfabric domain YANDEX interface eth3 hello-multiplier 3
# Метрики (одинаковые для ECMP)
set protocols openfabric domain YANDEX interface eth0 metric 10
set protocols openfabric domain YANDEX interface eth1 metric 10
set protocols openfabric domain YANDEX interface eth2 metric 10
set protocols openfabric domain YANDEX interface eth3 metric 10
# LSP параметры
set protocols openfabric domain YANDEX lsp-gen-interval 1
set protocols openfabric domain YANDEX lsp-refresh-interval 600
set protocols openfabric domain YANDEX max-lsp-lifetime 1200
# Аутентификация
set protocols openfabric domain YANDEX domain-password md5 YandexCloudSecret2024
commit
saveSpine-2 конфигурация
# Интерфейсы
set interfaces ethernet eth0 address 10.0.100.3/31
set interfaces ethernet eth1 address 10.0.100.11/31
set interfaces ethernet eth2 address 10.0.100.19/31
set interfaces ethernet eth3 address 10.0.100.27/31
set interfaces loopback lo address 10.0.1.2/32
# OpenFabric базовая конфигурация
set protocols openfabric net 49.0001.0100.0000.1002.00
set protocols openfabric domain YANDEX fabric-tier 1
# Включение интерфейсов
set protocols openfabric domain YANDEX interface eth0 address-family ipv4
set protocols openfabric domain YANDEX interface eth1 address-family ipv4
set protocols openfabric domain YANDEX interface eth2 address-family ipv4
set protocols openfabric domain YANDEX interface eth3 address-family ipv4
set protocols openfabric domain YANDEX interface lo address-family ipv4
set protocols openfabric domain YANDEX interface lo passive
# Таймеры и метрики (идентично Spine-1)
set protocols openfabric domain YANDEX interface eth0 hello-interval 3
set protocols openfabric domain YANDEX interface eth0 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth0 metric 10
set protocols openfabric domain YANDEX interface eth1 hello-interval 3
set protocols openfabric domain YANDEX interface eth1 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth1 metric 10
set protocols openfabric domain YANDEX interface eth2 hello-interval 3
set protocols openfabric domain YANDEX interface eth2 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth2 metric 10
set protocols openfabric domain YANDEX interface eth3 hello-interval 3
set protocols openfabric domain YANDEX interface eth3 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth3 metric 10
# LSP параметры
set protocols openfabric domain YANDEX lsp-gen-interval 1
set protocols openfabric domain YANDEX lsp-refresh-interval 600
set protocols openfabric domain YANDEX max-lsp-lifetime 1200
# Аутентификация
set protocols openfabric domain YANDEX domain-password md5 YandexCloudSecret2024
commit
saveSpine-3 конфигурация
# Интерфейсы
set interfaces ethernet eth0 address 10.0.100.5/31
set interfaces ethernet eth1 address 10.0.100.13/31
set interfaces ethernet eth2 address 10.0.100.21/31
set interfaces ethernet eth3 address 10.0.100.29/31
set interfaces loopback lo address 10.0.1.3/32
# OpenFabric базовая конфигурация
set protocols openfabric net 49.0001.0100.0000.1003.00
set protocols openfabric domain YANDEX fabric-tier 1
# Включение интерфейсов
set protocols openfabric domain YANDEX interface eth0 address-family ipv4
set protocols openfabric domain YANDEX interface eth1 address-family ipv4
set protocols openfabric domain YANDEX interface eth2 address-family ipv4
set protocols openfabric domain YANDEX interface eth3 address-family ipv4
set protocols openfabric domain YANDEX interface lo address-family ipv4
set protocols openfabric domain YANDEX interface lo passive
# Таймеры и метрики
set protocols openfabric domain YANDEX interface eth0 hello-interval 3
set protocols openfabric domain YANDEX interface eth0 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth0 metric 10
set protocols openfabric domain YANDEX interface eth1 hello-interval 3
set protocols openfabric domain YANDEX interface eth1 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth1 metric 10
set protocols openfabric domain YANDEX interface eth2 hello-interval 3
set protocols openfabric domain YANDEX interface eth2 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth2 metric 10
set protocols openfabric domain YANDEX interface eth3 hello-interval 3
set protocols openfabric domain YANDEX interface eth3 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth3 metric 10
# LSP параметры
set protocols openfabric domain YANDEX lsp-gen-interval 1
set protocols openfabric domain YANDEX lsp-refresh-interval 600
set protocols openfabric domain YANDEX max-lsp-lifetime 1200
# Аутентификация
set protocols openfabric domain YANDEX domain-password md5 YandexCloudSecret2024
commit
saveLeaf-1 конфигурация
# Интерфейсы к Spine
set interfaces ethernet eth0 address 10.0.100.0/31
set interfaces ethernet eth1 address 10.0.100.2/31
set interfaces ethernet eth2 address 10.0.100.4/31
# Интерфейс к серверам
set interfaces ethernet eth3 address 10.0.200.1/24
# Loopback
set interfaces loopback lo address 10.0.2.1/32
# OpenFabric базовая конфигурация
set protocols openfabric net 49.0001.0100.0000.2001.00
set protocols openfabric domain YANDEX fabric-tier 2
# Включение uplink интерфейсов
set protocols openfabric domain YANDEX interface eth0 address-family ipv4
set protocols openfabric domain YANDEX interface eth1 address-family ipv4
set protocols openfabric domain YANDEX interface eth2 address-family ipv4
set protocols openfabric domain YANDEX interface lo address-family ipv4
set protocols openfabric domain YANDEX interface lo passive
# Таймеры и метрики для uplinks
set protocols openfabric domain YANDEX interface eth0 hello-interval 3
set protocols openfabric domain YANDEX interface eth0 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth0 metric 10
set protocols openfabric domain YANDEX interface eth1 hello-interval 3
set protocols openfabric domain YANDEX interface eth1 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth1 metric 10
set protocols openfabric domain YANDEX interface eth2 hello-interval 3
set protocols openfabric domain YANDEX interface eth2 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth2 metric 10
# Редистрибуция подключенной серверной сети
set protocols openfabric domain YANDEX redistribute ipv4 connected route-map SERVER-NETWORKS
# Route-map для фильтрации
set policy route-map SERVER-NETWORKS rule 10 action permit
set policy route-map SERVER-NETWORKS rule 10 match interface eth3
# LSP параметры
set protocols openfabric domain YANDEX lsp-gen-interval 1
set protocols openfabric domain YANDEX lsp-refresh-interval 600
set protocols openfabric domain YANDEX max-lsp-lifetime 1200
# Аутентификация
set protocols openfabric domain YANDEX domain-password md5 YandexCloudSecret2024
commit
saveLeaf-2 конфигурация
# Интерфейсы к Spine
set interfaces ethernet eth0 address 10.0.100.8/31
set interfaces ethernet eth1 address 10.0.100.10/31
set interfaces ethernet eth2 address 10.0.100.12/31
# Интерфейс к серверам
set interfaces ethernet eth3 address 10.0.201.1/24
# Loopback
set interfaces loopback lo address 10.0.2.2/32
# OpenFabric базовая конфигурация
set protocols openfabric net 49.0001.0100.0000.2002.00
set protocols openfabric domain YANDEX fabric-tier 2
# Включение интерфейсов (аналогично Leaf-1)
set protocols openfabric domain YANDEX interface eth0 address-family ipv4
set protocols openfabric domain YANDEX interface eth1 address-family ipv4
set protocols openfabric domain YANDEX interface eth2 address-family ipv4
set protocols openfabric domain YANDEX interface lo address-family ipv4
set protocols openfabric domain YANDEX interface lo passive
# Таймеры и метрики
set protocols openfabric domain YANDEX interface eth0 hello-interval 3
set protocols openfabric domain YANDEX interface eth0 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth0 metric 10
set protocols openfabric domain YANDEX interface eth1 hello-interval 3
set protocols openfabric domain YANDEX interface eth1 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth1 metric 10
set protocols openfabric domain YANDEX interface eth2 hello-interval 3
set protocols openfabric domain YANDEX interface eth2 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth2 metric 10
# Редистрибуция серверных сетей
set protocols openfabric domain YANDEX redistribute ipv4 connected route-map SERVER-NETWORKS
set policy route-map SERVER-NETWORKS rule 10 action permit
set policy route-map SERVER-NETWORKS rule 10 match interface eth3
# LSP параметры
set protocols openfabric domain YANDEX lsp-gen-interval 1
set protocols openfabric domain YANDEX lsp-refresh-interval 600
set protocols openfabric domain YANDEX max-lsp-lifetime 1200
# Аутентификация
set protocols openfabric domain YANDEX domain-password md5 YandexCloudSecret2024
commit
saveLeaf-3 и Leaf-4 конфигурация
Конфигурация аналогична Leaf-1 и Leaf-2 с соответствующими изменениями:
- Leaf-3: NET
49.0001.0100.0000.2003.00, Loopback10.0.2.3/32, Server subnet10.0.202.0/24 - Leaf-4: NET
49.0001.0100.0000.2004.00, Loopback10.0.2.4/32, Server subnet10.0.203.0/24
Пример 2: VK Cloud - Spine-Leaf Fabric с OpenFabric
Архитектура: 2 Spine и 2 Leaf для VK Cloud с поддержкой IPv4 и IPv6.
Топология
VK Cloud VPC
┌─────────────────────────────────────────────────────┐
│ │
│ Spine Layer │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Spine-A │ │ Spine-B │ │
│ │ 10.10.0.1/32 │ │ 10.10.0.2/32 │ │
│ │ 2001:db8::1/128│ │ 2001:db8::2/128│ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └──────────┬───────────────┘ │
│ │ │
│ Leaf Layer │ │
│ ┌──────────────────▼───┐ ┌──────────────────┐ │
│ │ Leaf-A │ │ Leaf-B │ │
│ │ 10.10.1.1/32 │ │ 10.10.1.2/32 │ │
│ │ 2001:db8::11/128 │ │ 2001:db8::12/128│ │
│ └──────────────────────┘ └──────────────────┘ │
│ │
│ P2P Links: 10.10.100.0/24, 2001:db8:100::/64 │
│ Server Networks: 10.10.200.0/22, 2001:db8:200::/56│
└─────────────────────────────────────────────────────┘Spine-A конфигурация (VK Cloud)
# Интерфейсы
set interfaces ethernet eth0 address 10.10.100.1/31
set interfaces ethernet eth0 address 2001:db8:100::1/127
set interfaces ethernet eth1 address 10.10.100.3/31
set interfaces ethernet eth1 address 2001:db8:100::3/127
set interfaces loopback lo address 10.10.0.1/32
set interfaces loopback lo address 2001:db8::1/128
# OpenFabric базовая конфигурация
set protocols openfabric net 49.0001.0101.0000.0001.00
set protocols openfabric domain VKCLOUD fabric-tier 1
# Включение интерфейсов с dual-stack
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv6
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv6
set protocols openfabric domain VKCLOUD interface lo address-family ipv4
set protocols openfabric domain VKCLOUD interface lo address-family ipv6
set protocols openfabric domain VKCLOUD interface lo passive
# Оптимизация для низкой задержки
set protocols openfabric domain VKCLOUD interface eth0 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth0 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth0 metric 10
set protocols openfabric domain VKCLOUD interface eth1 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth1 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth1 metric 10
# LSP параметры
set protocols openfabric domain VKCLOUD lsp-gen-interval 1
set protocols openfabric domain VKCLOUD lsp-refresh-interval 900
set protocols openfabric domain VKCLOUD max-lsp-lifetime 1200
# Аутентификация
set protocols openfabric domain VKCLOUD domain-password md5 VKCloudFabric2024
commit
saveSpine-B конфигурация (VK Cloud)
# Интерфейсы
set interfaces ethernet eth0 address 10.10.100.5/31
set interfaces ethernet eth0 address 2001:db8:100::5/127
set interfaces ethernet eth1 address 10.10.100.7/31
set interfaces ethernet eth1 address 2001:db8:100::7/127
set interfaces loopback lo address 10.10.0.2/32
set interfaces loopback lo address 2001:db8::2/128
# OpenFabric конфигурация (аналогично Spine-A)
set protocols openfabric net 49.0001.0101.0000.0002.00
set protocols openfabric domain VKCLOUD fabric-tier 1
# Dual-stack интерфейсы
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv6
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv6
set protocols openfabric domain VKCLOUD interface lo address-family ipv4
set protocols openfabric domain VKCLOUD interface lo address-family ipv6
set protocols openfabric domain VKCLOUD interface lo passive
# Таймеры
set protocols openfabric domain VKCLOUD interface eth0 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth0 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth0 metric 10
set protocols openfabric domain VKCLOUD interface eth1 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth1 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth1 metric 10
# LSP параметры
set protocols openfabric domain VKCLOUD lsp-gen-interval 1
set protocols openfabric domain VKCLOUD lsp-refresh-interval 900
set protocols openfabric domain VKCLOUD max-lsp-lifetime 1200
# Аутентификация
set protocols openfabric domain VKCLOUD domain-password md5 VKCloudFabric2024
commit
saveLeaf-A конфигурация (VK Cloud)
# Uplink интерфейсы
set interfaces ethernet eth0 address 10.10.100.0/31
set interfaces ethernet eth0 address 2001:db8:100::0/127
set interfaces ethernet eth1 address 10.10.100.4/31
set interfaces ethernet eth1 address 2001:db8:100::4/127
# Server-facing интерфейс
set interfaces ethernet eth2 address 10.10.200.1/24
set interfaces ethernet eth2 address 2001:db8:200:1::1/64
# Loopback
set interfaces loopback lo address 10.10.1.1/32
set interfaces loopback lo address 2001:db8::11/128
# OpenFabric базовая конфигурация
set protocols openfabric net 49.0001.0101.0000.1001.00
set protocols openfabric domain VKCLOUD fabric-tier 2
# Uplink интерфейсы в OpenFabric
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv6
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv6
set protocols openfabric domain VKCLOUD interface lo address-family ipv4
set protocols openfabric domain VKCLOUD interface lo address-family ipv6
set protocols openfabric domain VKCLOUD interface lo passive
# Таймеры и метрики
set protocols openfabric domain VKCLOUD interface eth0 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth0 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth0 metric 10
set protocols openfabric domain VKCLOUD interface eth1 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth1 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth1 metric 10
# Редистрибуция серверных сетей (IPv4 и IPv6)
set protocols openfabric domain VKCLOUD redistribute ipv4 connected route-map SERVERS
set protocols openfabric domain VKCLOUD redistribute ipv6 connected route-map SERVERS
# Route-map для серверных интерфейсов
set policy route-map SERVERS rule 10 action permit
set policy route-map SERVERS rule 10 match interface eth2
# LSP параметры
set protocols openfabric domain VKCLOUD lsp-gen-interval 1
set protocols openfabric domain VKCLOUD lsp-refresh-interval 900
set protocols openfabric domain VKCLOUD max-lsp-lifetime 1200
# Аутентификация
set protocols openfabric domain VKCLOUD domain-password md5 VKCloudFabric2024
commit
saveLeaf-B конфигурация (VK Cloud)
# Uplink интерфейсы
set interfaces ethernet eth0 address 10.10.100.2/31
set interfaces ethernet eth0 address 2001:db8:100::2/127
set interfaces ethernet eth1 address 10.10.100.6/31
set interfaces ethernet eth1 address 2001:db8:100::6/127
# Server-facing интерфейс
set interfaces ethernet eth2 address 10.10.201.1/24
set interfaces ethernet eth2 address 2001:db8:200:2::1/64
# Loopback
set interfaces loopback lo address 10.10.1.2/32
set interfaces loopback lo address 2001:db8::12/128
# OpenFabric конфигурация (аналогично Leaf-A)
set protocols openfabric net 49.0001.0101.0000.1002.00
set protocols openfabric domain VKCLOUD fabric-tier 2
# Dual-stack uplinks
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv6
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv6
set protocols openfabric domain VKCLOUD interface lo address-family ipv4
set protocols openfabric domain VKCLOUD interface lo address-family ipv6
set protocols openfabric domain VKCLOUD interface lo passive
# Таймеры
set protocols openfabric domain VKCLOUD interface eth0 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth0 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth0 metric 10
set protocols openfabric domain VKCLOUD interface eth1 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth1 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth1 metric 10
# Редистрибуция серверных сетей
set protocols openfabric domain VKCLOUD redistribute ipv4 connected route-map SERVERS
set protocols openfabric domain VKCLOUD redistribute ipv6 connected route-map SERVERS
set policy route-map SERVERS rule 10 action permit
set policy route-map SERVERS rule 10 match interface eth2
# LSP параметры
set protocols openfabric domain VKCLOUD lsp-gen-interval 1
set protocols openfabric domain VKCLOUD lsp-refresh-interval 900
set protocols openfabric domain VKCLOUD max-lsp-lifetime 1200
# Аутентификация
set protocols openfabric domain VKCLOUD domain-password md5 VKCloudFabric2024
commit
saveВерификация и мониторинг
Проверка соседей OpenFabric
# Показать всех соседей OpenFabric
show openfabric neighbor
# Показать соседей для конкретного домена
show openfabric domain DATACENTER neighbor
# Детальная информация о конкретном соседе
show openfabric neighbor detailПример вывода:
Area DATACENTER:
System Id Interface L State Holdtime SNPA
0100.0000.1002 eth0 2 Up 27 2020.2020.2020
0100.0000.1003 eth1 2 Up 25 2020.2020.2021Проверка базы данных топологии
# Показать базу данных LSP
show openfabric database
# Детальная база данных
show openfabric database detail
# База данных для конкретного домена
show openfabric domain DATACENTER databaseПроверка маршрутов
# Показать маршруты, изученные через OpenFabric
show ip route openfabric
# Показать IPv6 маршруты OpenFabric
show ipv6 route openfabric
# Показать всю таблицу маршрутизации
show ip routeПример вывода:
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
F>* 10.0.2.1/32 [115/20] via 10.0.100.0, eth0, weight 1, 00:15:23
* via 10.0.100.2, eth1, weight 1, 00:15:23
* via 10.0.100.4, eth2, weight 1, 00:15:23
F>* 10.0.200.0/24 [115/20] via 10.0.100.0, eth0, weight 1, 00:15:23Проверка интерфейсов
# Показать информацию об интерфейсах OpenFabric
show openfabric interface
# Детальная информация об интерфейсе
show openfabric interface eth0
# Показать статус интерфейсов домена
show openfabric domain DATACENTER interfaceПроверка топологии
# Показать SPF статистику
show openfabric spf-delay-ietf
# Показать hostname mapping (если настроено)
show openfabric hostname
# Показать summary информацию
show openfabric summaryМониторинг Fabric Tier
# Проверить fabric tier маршрутизатора
show openfabric domain DATACENTER summary | grep Tier
# Проверить tier информацию в базе данных
show openfabric database detail | grep -A 5 "Fabric Tier"Troubleshooting
Проблема: Соседи не устанавливаются
Диагностика:
# Проверить конфигурацию интерфейсов
show configuration commands | grep openfabric
# Проверить состояние интерфейсов
show interfaces
# Проверить аутентификацию
show openfabric database detail | grep Authentication
# Отладка соседства
monitor logТипичные причины:
- Несовпадение аутентификации
- Неправильная конфигурация интерфейса
- MTU mismatch
- Физические проблемы с линком
Решение:
# Проверить MTU
show interfaces ethernet eth0
# Временно отключить аутентификацию для теста
delete protocols openfabric domain DATACENTER domain-password
commit
# Проверить hello пакеты
sudo tcpdump -i eth0 -vv proto 124Проблема: Маршруты не появляются в таблице
Диагностика:
# Проверить базу данных LSP
show openfabric database
# Проверить редистрибуцию
show configuration commands | grep redistribute
# Проверить route-map
show route-map
# Проверить таблицу маршрутизации
show ip route openfabricТипичные причины:
- Неправильная редистрибуция
- Route-map блокирует маршруты
- Проблемы с NET конфигурацией
- Интерфейс не включен в passive mode
Решение:
# Проверить, что подключенные сети редистрибутируются
set protocols openfabric domain DATACENTER redistribute ipv4 connected
# Проверить passive интерфейс для loopback
set protocols openfabric domain DATACENTER interface lo passive
# Проверить route-map
show policy route-map SERVERSПроблема: ECMP пути не используются
Диагностика:
# Проверить метрики интерфейсов
show openfabric interface
# Проверить FIB
show ip route 10.0.2.1
# Проверить kernel routing table
ip route showТипичные причины:
- Разные метрики на интерфейсах
- Неправильная конфигурация Fabric Tier
- Ядро не поддерживает multipath
Решение:
# Убедиться, что метрики одинаковые
set protocols openfabric domain DATACENTER interface eth0 metric 10
set protocols openfabric domain DATACENTER interface eth1 metric 10
set protocols openfabric domain DATACENTER interface eth2 metric 10
# Проверить Fabric Tier
set protocols openfabric domain DATACENTER fabric-tier 2Проблема: Высокая загрузка CPU из-за LSP flooding
Диагностика:
# Мониторинг CPU
top
# Проверить частоту генерации LSP
show openfabric database detail | grep "Generated"
# Проверить Fabric Tier конфигурацию
show configuration commands | grep fabric-tierРешение:
# Увеличить LSP generation interval
set protocols openfabric domain DATACENTER lsp-gen-interval 5
# Увеличить refresh interval
set protocols openfabric domain DATACENTER lsp-refresh-interval 900
# Правильно настроить Fabric Tier
# Spine
set protocols openfabric domain DATACENTER fabric-tier 1
# Leaf
set protocols openfabric domain DATACENTER fabric-tier 2Проблема: Частые flapping соседей
Диагностика:
# Мониторинг логов
monitor log | match openfabric
# Проверить hello параметры
show openfabric interface eth0
# Проверить качество линка
ping 10.0.100.1 size 1400 count 100Решение:
# Увеличить hello interval и multiplier
set protocols openfabric domain DATACENTER interface eth0 hello-interval 5
set protocols openfabric domain DATACENTER interface eth0 hello-multiplier 5
# Уменьшить MTU если есть фрагментация
set interfaces ethernet eth0 mtu 1400Отладочные команды
# Включить debug для OpenFabric
# Внимание: генерирует много логов
sudo vtysh -c "debug openfabric events"
sudo vtysh -c "debug openfabric adj-packets"
sudo vtysh -c "debug openfabric lsp-gen"
sudo vtysh -c "debug openfabric update-packets"
# Просмотр логов FRR
tail -f /var/log/frr/frr.log
# Выключить debug
sudo vtysh -c "no debug openfabric events"
sudo vtysh -c "no debug openfabric adj-packets"Best Practices
Проектирование сети
Fabric Tier конфигурация
- Всегда конфигурируйте Fabric Tier для оптимизации flooding
- Spine: Tier 1, Leaf: Tier 2
- Все маршрутизаторы на одном физическом уровне должны иметь одинаковый Tier
NET адресация
- Используйте консистентную схему для System ID
- Рекомендуется: последние 6 байт IP-адреса loopback
- Документируйте схему NET адресации
Метрики
- Используйте одинаковые метрики для всех uplink для ECMP
- Изменяйте метрику только для traffic engineering
Loopback интерфейсы
- Всегда включайте loopback в OpenFabric
- Всегда используйте passive mode для loopback
- Используйте /32 (IPv4) или /128 (IPv6) для loopback
Таймеры и оптимизация
Hello параметры для ЦОД
- Hello interval: 2-3 секунды
- Hello multiplier: 3
- Dead interval: 6-9 секунд (быстрое обнаружение сбоев)
LSP параметры
- lsp-gen-interval: 1-2 миллисекунды (быстрая реакция)
- lsp-refresh-interval: 600-900 секунд
- max-lsp-lifetime: 1200-1800 секунд
CSNP/PSNP
- Используйте значения по умолчанию
- Изменяйте только при конкретных проблемах
Безопасность
Аутентификация
- Всегда используйте MD5 аутентификацию
- Используйте сложные пароли
- Периодически меняйте пароли
- Можно использовать разные пароли на domain и interface уровне
Ограничение протокола
- Включайте OpenFabric только на необходимых интерфейсах
- Используйте passive mode для non-fabric интерфейсов
Масштабируемость
Размер fabric
- Рекомендуется: до 512 Leaf на 3-4 Spine
- Для больших deployment рассмотрите Multi-POD архитектуру
Количество маршрутов
- OpenFabric эффективен до десятков тысяч маршрутов
- Для очень больших таблиц рассмотрите суммаризацию
ECMP пути
- Стандартно: 4-8 ECMP путей от Leaf к Spine
- Можно масштабировать до 16-32 путей
Операционные процедуры
Обслуживание маршрутизатора
# Установить overload bit перед обслуживанием set protocols openfabric domain DATACENTER overload commit # Выполнить обслуживание # Снять overload bit delete protocols openfabric domain DATACENTER overload commitGraceful restart
# Overload на определенное время set protocols openfabric domain DATACENTER overload on-startup 300 commitМониторинг
- Мониторьте количество соседей
- Мониторьте количество маршрутов
- Настройте alerts на flapping соседей
- Мониторьте CPU utilization на Spine
Интеграция с BGP
Для подключения fabric к внешним сетям используйте BGP на Leaf или Spine:
# Border Leaf конфигурация
set protocols bgp system-as 65000
set protocols bgp neighbor 192.0.2.1 remote-as 65001
set protocols bgp neighbor 192.0.2.1 address-family ipv4-unicast
# Редистрибуция OpenFabric в BGP
set protocols bgp address-family ipv4-unicast redistribute openfabric
# Редистрибуция BGP в OpenFabric
set protocols openfabric domain DATACENTER redistribute ipv4 bgp route-map BGP-TO-FABRICDual-stack рекомендации
- Включайте IPv4 и IPv6 на всех интерфейсах одновременно
- Используйте одинаковые метрики для IPv4 и IPv6
- Применяйте одинаковые route-map для обоих семейств
- Тестируйте failover для обоих протоколов
Заключение
OpenFabric - это эффективный протокол маршрутизации для современных ЦОД, оптимизированный для архитектуры Spine-Leaf. Правильная конфигурация Fabric Tier, метрик и таймеров обеспечивает быструю сходимость, оптимальное использование ECMP путей и минимальные накладные расходы на служебный трафик.
Ключевые моменты для успешного внедрения:
- Правильная конфигурация Fabric Tier (Spine = Tier 1, Leaf = Tier 2)
- Одинаковые метрики на всех uplink для ECMP
- Агрессивные таймеры для быстрого обнаружения сбоев
- Использование MD5 аутентификации
- Регулярный мониторинг соседей и маршрутов
OpenFabric в VyOS предоставляет enterprise-grade функциональность для построения отказоустойчивых и масштабируемых сетей ЦОД в облачных средах Yandex Cloud и VK Cloud.