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

В качестве IGP ядра оператора связи обычно выбирается OSPF (Open Shortest Path First) или IS-IS (Intermediate System to Intermediate System). В сетях Tier-1 и крупных операторах IS-IS исторически доминирует благодаря отсутствию привязки к IP (работает непосредственно поверх L2 802.3), гибкой TLV-структуре и масштабируемости без жесткого разделения на зоны (Single Level-2 Backbone). В корпоративных и средних SP сетях часто применяется OSPF (Single Area 0). На всех Ethernet-каналах ядра обязательно настраивается режим Point-to-Point (ip ospf network point-to-point / set protocols isis interface point-to-point). Это исключает выборы DR/BDR и Network-LSA и ускоряет установление соседства; скорость реакции на отказ определяют BFD и таймеры SPF, а не сам режим point-to-point. Для IS-IS каждому узлу присваивается уникальный сетевой адрес NET (например, 49.0001.0102.5500.0001.00), где системный идентификатор System-ID строится на базе IP-адреса Loopback0 для удобства траблшутинга.

Что общего и чем отличаются

OSPF и IS-IS - протоколы состояния канала: каждый узел описывает свои линки и префиксы, флудит описание по всему домену, а затем независимо запускает алгоритм Дейкстры (SPF) по одинаковой базе (LSDB). Различия лежат в транспорте, формате сообщений и модели иерархии.

СвойствоOSPFv2 / OSPFv3IS-IS
ТранспортIP protocol 89, 224.0.0.5/224.0.0.6CLNS поверх L2 (LLC 0xFEFE), без IP
Единицы флудингаLSA (Type 1, 2, 3, 4, 5, 7, 9/10/11 opaque)LSP, фрагменты до 256 штук на узел
Расширяемостьopaque LSA, новые типы LSATLV/sub-TLV внутри того же LSP
Иерархияобласти; Area 0 - обязательный backbone, ABRуровни L1/L2; L2 - непрерывный backbone
IPv4 + IPv6OSPFv2 и OSPFv3 - два процессаодин процесс, TLV 135 и TLV 236
Идентичностьrouter-id (IPv4-подобный)NET: AFI.area.System-ID.NSEL

OSPF: типы LSA и жизненный цикл

Router-LSA (Type 1) описывает линки узла внутри области, Network-LSA (Type 2) создаёт DR на broadcast-сегменте, Summary-LSA (Type 3) переносит межзональные префиксы, Type 4 указывает путь к ASBR, Type 5 - внешние маршруты, Type 7 - внешние маршруты в NSSA. Opaque-LSA типов 9, 10 и 11 имеют соответственно link-local, area и AS-область флудинга; на Type 10 строятся Traffic Engineering и Segment Routing. В OSPFv3 Router/Network-LSA больше не содержат префиксов: их несут Intra-Area-Prefix-LSA (Type 0x2009) и Link-LSA (0x0008).

Сосед проходит состояния Down, Init, 2-Way, ExStart, Exchange, Loading, Full. На broadcast-сегменте Full строится только с DR/BDR, остальные остаются в 2-Way; на point-to-point DR не выбирается и все соседи становятся Full. Таймеры по умолчанию: Hello/Dead 10/40 с на broadcast и p2p, 30/120 с на NBMA. Каждый LSA имеет возраст: пересоздаётся раз в 30 минут (LSRefreshTime = 1800 с), стареет до MaxAge = 3600 с и затем затопляется как удаляемый. MinLSInterval 5 с не позволяет узлу выпускать один и тот же LSA чаще; на практике его снижают throttling-таймерами. Несовпадение area-id, hello/dead, типа сети, аутентификации или MTU не даёт сходиться: при MTU mismatch сосед застревает в ExStart/Exchange.

IS-IS: PDU, уровни, метрики

IS-IS использует четыре типа PDU: IIH (Hello), LSP, CSNP (полная сводка LSDB) и PSNP (запрос и подтверждение). На point-to-point линке соседство строится трёхсторонним обменом IIH (RFC 5303), на LAN выбирается DIS с псевдоузлом. Hello-интервал 10 с, hold-time = hello × multiplier (3) = 30 с; у DIS Hello идёт втрое чаще. Hello по умолчанию дополняется padding до размера MTU, что сразу выявляет несовпадение MTU: соседство не поднимается или мерцает, тогда как OSPF застревает уже на обмене DBD. LSP ID имеет вид System-ID.Pseudonode-ID-LSP-number; максимальный срок жизни по умолчанию 1200 с, обновление каждые 900 с. Размер LSP ограничен MTU (1492 байта для Ethernet), и узлу доступно 256 фрагментов (LSP number занимает один байт) - это реальный потолок количества префиксов и линков на узел.

Уровни: L1 - внутри области, L2 - между областями и backbone. Узел L1/L2 ставит бит ATT и тем самым превращается в "выход" из области. В SP-ядре чаще всего держат плоский L2 (каждое устройство level-2-only), без ATT и утечек между уровнями; L1 используют для агрегации больших POP-ов. Метрики бывают narrow (TLV 2 и 128, 6 бит на линк, максимум 63, путь до 1023) и wide (TLV 22 и 135, 24 бита на линк, 32 бита на путь). Wide обязательна для TE и Segment Routing, и значение metric-style должно совпадать на всех узлах: узел с narrow не понимает TLV 135, молча игнорирует часть префиксов, а соседство при этом остаётся UP. Cisco IOS и Huawei VRP по умолчанию работают в narrow-режиме, а Junos без wide-metrics-only принимает оба стиля, поэтому стиль задают явно. IS-IS по умолчанию даёт метрику 10 любому интерфейсу независимо от скорости, а OSPF вычисляет её как reference-bandwidth / bandwidth (подробности в уроке про метрики).

Single-topology и IPv6

В режиме single-topology IS-IS строит одну SPF-таблицу для IPv4 и IPv6: если IPv6 включён не на всех линках, трафик по лучшему IPv4-пути попадает в узел без IPv6 и теряется (IPv6 black hole). Решения - включать оба семейства на одних и тех же интерфейсах либо перейти на Multi-Topology (RFC 5120, TLV 229): тогда для IPv6 строится отдельный SPF. В OSPFv3 такой проблемы нет, но семейства IPv4/IPv6 обычно ведут разными процессами, и у каждого свой цикл флудинга и SPF.