Теоретические основы и архитектура

Лабораторная работа: расширение протоколов IGP для поддержки Traffic Engineering (TE Extensions). Стандартные IGP знают только топологию и статическую метрику (Cost). Они ничего не знают о реальной пропускной способности линков, резервировании полосы и задержках. Расширения TE (OSPF Opaque LSA Type 10 / IS-IS Extended IS reachability TLV 22) заставляют маршрутизаторы анонсировать параметры TE: максимальную пропускную способность линка (Maximum Link Bandwidth), максимальную резервируемую полосу (Maximum Reservable Bandwidth), нераспределённую полосу по приоритетам (Unreserved Bandwidth) и цвета/группы линков (Admin Group / Affinity). На основе этих объявлений каждый маршрутизатор строит базу данных Traffic Engineering (TED). Алгоритм CSPF (Constrained Shortest Path First) использует TED для построения оптимальных туннелей с учётом ограничений по полосе и административным группам (affinity).

Зачем IGP знать больше, чем метрику

Обычный IGP хранит топологию и одну скалярную метрику. Для Traffic Engineering этого мало: чтобы вычислить путь с учётом пропускной способности и "цвета" линков, головной маршрутизатор (headend) должен знать для каждого линка в области физическую ёмкость, сколько из неё можно резервировать, сколько уже зарезервировано, а также административные атрибуты. Эти данные расширения TE (RFC 3630 для OSPF, RFC 5305 для IS-IS) рассылают тем же механизмом флудинга, а каждый узел складывает их в отдельную базу TED (Traffic Engineering Database). Алгоритм CSPF (Constrained SPF) работает по TED: сначала отбрасывает линки, не удовлетворяющие ограничениям (мало свободной полосы, запрещённый цвет), затем запускает SPF по оставшимся. Результат - явный путь, который затем сигнализируется через RSVP-TE.

Формат в OSPF

TE-информация передаётся в Opaque-LSA Type 10 (область флудинга - area), Opaque Type 1 (TE LSA). Внутри два типа TLV: Router Address (TLV 1, TE router-id, обычно loopback) и Link (TLV 2, по одному на линк). Link TLV содержит sub-TLV: 1 - тип линка (1 = point-to-point, 2 = multi-access), 2 - Link ID, 3 - локальный адрес интерфейса, 4 - адрес удалённого интерфейса, 5 - TE metric, 6 - максимальная полоса (Maximum Bandwidth), 7 - максимальная резервируемая полоса, 8 - нераспределённая полоса (Unreserved Bandwidth, 8 значений по числу приоритетов 0-7), 9 - Administrative Group (32-битная маска). Полоса передаётся как 32-битное IEEE-число с плавающей точкой в байтах в секунду. Чтобы маршрутизатор вообще генерировал и принимал Opaque-LSA, должна быть включена opaque-capability (Huawei opaque-capability enable; на Cisco и Junos это делает включение TE для OSPF).

Формат в IS-IS

IS-IS переносит те же данные как sub-TLV внутри TLV 22 (Extended IS Reachability): 3 - Administrative Group, 6 - IPv4 interface address, 8 - IPv4 neighbor address, 9 - максимальная полоса, 10 - максимальная резервируемая полоса, 11 - нераспределённая полоса, 18 - TE default metric. TE router-id передаётся в TLV 134. Всё это возможно только при wide-метриках (TLV 22/135): при metric-style narrow TLV 22 не используется, и TED остаётся пустым. На Junos IS-IS распространяет TE-атрибуты по умолчанию, а OSPF требует явного traffic-engineering; на Cisco нужны mpls traffic-eng router-id и mpls traffic-eng level-2 под процессом IS-IS.

Параметры TE, которые задаёт инженер

ПараметрЧто означаетГде задаётся
Max / Reservable bandwidthЁмкость линка и доля, доступная под резервированиеCisco ip rsvp bandwidth, Junos rsvp interface bandwidth, Huawei mpls te bandwidth
Unreserved bandwidth [0-7]Свободная полоса для каждого приоритета удержаниявычисляется из резервирований
Admin group / affinity32-битная маска "цветов" линкаCisco attribute-flags, Junos admin-groups, Huawei mpls te link administrative group
TE metricОтдельная метрика для CSPF (например, задержка)Cisco administrative-weight, Junos te-metric, Huawei mpls te metric

Бит 0 маски 0x1 в Cisco соответствует admin-group со значением 0 в Junos (в Junos указывается номер бита, а не маска). Расхождение в нумерации - частая причина того, что туннель "исключает" не тот линк. RFC 7308 расширяет маску до 256 бит (Extended Admin Group).

Когда и как флудится TED

Изменение свободной полосы не может флудиться при каждой сигнализации - иначе LSA заполнят сеть. Поэтому вводятся пороги: Cisco отправляет обновление при пересечении настраиваемых уровней загрузки (по умолчанию серия порогов вверх от 15% до 100% и вниз) и периодически раз в 180 секунд; события линка (up/down, смена атрибутов) флудятся сразу. Слишком частые обновления перегружают IGP, слишком редкие дают головному узлу устаревшие данные, и CSPF отправляет туннель на перегруженный линк. Параллельно существует предел MinLSInterval/arrival: LSA об одном линке не чаще чем раз в несколько секунд.

Область действия TED

TED строится из LSDB одной области OSPF или одного уровня IS-IS. Туннель через несколько областей CSPF полностью вычислить не может: либо задают loose-hop (ABR-ы пересчитывают сегмент), либо используют PCE. В плоском ядре (Area 0 или единственный Level 2) эта проблема не возникает, поэтому в SP-ядре с TE принято избегать многозональности.

Резервирование не равно трафику

Unreserved bandwidth уменьшается по факту сигнализации туннелей (RSVP), а не по реальной загрузке интерфейса. Если на линке 10G зарезервировано 8G, а реальный трафик 1G, CSPF всё равно не поставит туда новый туннель на 3G. Обратная ситуация: туннели вообще не сигнализируются, TED показывает 100% свободно, а линк загружен. Для связи с реальной нагрузкой используют auto-bandwidth (следующие уроки) и DS-TE, где пулы BC0/BC1 разделяют классы трафика (RFC 4124).

Диагностика и типовые отказы

Линк отсутствует в TED, если на интерфейсе не включён TE или router-id TE не совпадает с loopback-ом: CSPF сообщает "No path", хотя IGP-маршрут есть. Нулевая max-reservable bandwidth (нет ip rsvp bandwidth или rsvp interface bandwidth) делает линк непригодным для любого туннеля с ненулевой полосой. Без opaque-capability (Huawei) или traffic-engineering (Junos OSPF) Opaque-LSA Type 10 просто не создаются. Узел с narrow-метриками в IS-IS не публикует TLV 22. После изменения полосы или цвета TED должен обновиться в течение нескольких секунд: проверьте show mpls traffic-eng topology, а на соседе - наличие LSA с новым номером последовательности.

Лабораторная работа ниже включает IGP TE в OSPF Area 0, назначает ёмкость, цвета и TE-метрики двум путям PE1-P1 и PE1-P2 и проверяет, что TED на PE1 видит оба линка с правильными атрибутами: это основа для CSPF и RSVP-TE следующих уроков.

Схема архитектуры и топология

text
+-----------+        [Path A: Cost 10, BW 10G]        +-----------+
|   PE-1    | =======================================> |   PE-2    |
| (Headend) | -------- [Path B: Cost 30, BW 100G] ---> | (Tailend) |
+-----------+                                          +-----------+

Схема прохождения трафика и стек меток

text
Traffic Engineering Database (TED) Synchronization:
1. IGP TE Floods: Link Max BW, Unreserved BW (per priority 0..7), TE Metric, Administrative Group (Colors).
2. Headend PE builds separate TED alongside standard IGP topology database.