мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| glossary:net:protocols:ospf [2025/09/15 13:20] – создано radi0dev | glossary:net:protocols:ospf [2025/11/09 12:07] (текущий) – внешнее изменение A User Not Logged in | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== OSPF ====== | ====== OSPF ====== | ||
| + | |||
| + | основано на http:// | ||
| OSPF (**O**pen **S**hortest **P**ath **F**irst) — протокол (3его уровня) динамической маршрутизации | OSPF (**O**pen **S**hortest **P**ath **F**irst) — протокол (3его уровня) динамической маршрутизации | ||
| Строка 7: | Строка 9: | ||
| OSPFv3 не зависит от протоколов 3-го уровня и потому может работать с IPv6 | OSPFv3 не зависит от протоколов 3-го уровня и потому может работать с IPv6 | ||
| - | Терминология протокола OSPF | + | ===== Основы ===== |
| - | ===== Термины | + | ==== Термины ==== |
| * Канал/ | * Канал/ | ||
| Строка 38: | Строка 40: | ||
| * LSAck — пакеты, | * LSAck — пакеты, | ||
| - | ===== Описание работы протокола | + | ==== Описание работы протокола ==== |
| - Включить OSPF на маршрутизаторе | - Включить OSPF на маршрутизаторе | ||
| Строка 61: | Строка 63: | ||
| - Каждый маршрутизатор строит таблицу маршрутизации, | - Каждый маршрутизатор строит таблицу маршрутизации, | ||
| + | ===== Выбор Router ID ===== | ||
| + | |||
| + | При запуске процесса OSPF на любом маршрутизаторе, | ||
| + | |||
| + | Router ID — это | ||
| + | |||
| + | В зависимости от реализации, | ||
| + | * минимальный IP-адрес или максимальный IP-адрес, | ||
| + | * также обычно есть способ задания Router ID вручную | ||
| + | * главное, | ||
| + | |||
| + | После изменения Router ID, процесс OSPF должен быть перезагружен, | ||
| + | |||
| + | ===== Установка отношений соседства ===== | ||
| + | |||
| + | Обнаружение соседей начинается после того как: | ||
| + | |||
| + | * протокол был включен глобально | ||
| + | * выбран Router ID | ||
| + | * OSPF включен на интерфейсах | ||
| + | |||
| + | Для обнаружения и мониторинга соседей используются сообщения Hello. | ||
| + | |||
| + | Процедура установки отношений соседства зависит от типа сети, в которой работает OSPF | ||
| + | |||
| + | ==== Типы сетей, поддерживаемые протоколом OSPF ==== | ||
| + | |||
| + | * Широковещательные сети со множественным доступом (broadcast): | ||
| + | * Точка-точка (point-to-point): | ||
| + | * Нешироковещательные сети со множественным доступом (Non Broadcast Multiple Access, NBMA): Frame-Relay, | ||
| + | |||
| + | В разных типах сетей работа OSPF отличается. В том числе отличается процесс установления отношений соседства и настройки протокола. | ||
| + | |||
| + | В реальной жизни, чаще всего используются два типа сетей: | ||
| + | |||
| + | * point-to-point | ||
| + | * broadcast | ||
| + | |||
| + | Для broadcast и nonbroadcast сетей (то есть, для сетей с множественным доступом), | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== Отношения соседства (adjacency) ==== | ||
| + | |||
| + | Различают понятия сосед и отношения соседства: | ||
| + | |||
| + | * Сосед (neighbor) — два маршрутизатора, | ||
| + | * Отношения соседства (adjacency или full adjacency) — два соседа, | ||
| + | |||
| + | Для того чтобы маршрутизаторы стали соседями: | ||
| + | |||
| + | * необходимо чтобы в hello-пакетах совпали значения таких полей: | ||
| + | * Hello Interval — частота отправки сообщений Hello | ||
| + | * Router Dead Interval — период времени, | ||
| + | * Area ID — так как в OSPF граница зоны проходит через маршрутизатор, | ||
| + | * Authentication — пароль использующийся для аутентификации и тип аутентификации. Маршрутизаторы не обязательно должны использовать аутентификацию, | ||
| + | * Stub area flag — не обязательный флаг, который устанавливается на всех маршрутизаторах, | ||
| + | * у маршрутизаторов должны совпадать сеть и маска сети | ||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | <note important> | ||
| + | |||
| + | Отношения соседства устанавливаются только на primary адресах. | ||
| + | |||
| + | На интерфейсе может быть настроен secondary адрес. Маршрутизаторы не отправляют hello-пакеты с secondary адреса, | ||
| + | |||
| + | === Возможные состояния === | ||
| + | |||
| + | * Down — начальное состояние процесса обнаружения соседей. Это состояние указывает на то, что от соседей не была получена свежая информация. В NBMA сетях Hello-пакеты могут отправляться и соседям в состоянии Down, однако с меньшей частотой (PollInterval) | ||
| + | * Attempt — это состояние имеет смысл только для соседей, | ||
| + | * Init — состояние, | ||
| + | * Two-way — при получении ответных hello маршрутизатор должен увидеть в них свой RID в списке соседей. Если это так, то он устанавливает отношения и переходит в состояние two-way. Когда в широковещательном сегменте более 3х маршрутизаторов, | ||
| + | * Exstart — маршрутизаторы определяют Master/ | ||
| + | * Exchange — маршрутизаторы посылают друг другу database description пакеты (DD) с информацией о сетях, содержащихся в их собственной LSDB | ||
| + | * Loading — Если маршрутизатор видит, что части маршрутов нет в его LSDB, он посылает сообщение LSR с перечислением тех сетей, по которым он хочет получить дополнительную информацию. | ||
| + | * Full — Когда маршрутизатор получил всю информацию и LSDB на обоих маршрутизаторах синхронизирована, | ||
| + | |||
| + | ==== Выделенный маршрутизатор (DR) и резервный выделенный маршрутизатор (BDR) ==== | ||
| + | |||
| + | В сетях со множественным доступом отношения соседства должны быть установлены между всеми маршрутизаторами. Это приводит к тому, что рассылается большое количество копий LSA. Если, к примеру, | ||
| + | |||
| + | Для предотвращения проблемы рассылки копий LSA в сетях со множественным доступом выбираются DR и BDR. | ||
| + | |||
| + | Выделенный маршрутизатор (designated router, DR) — управляет процессом рассылки LSA в сети. Каждый маршрутизатор сети устанавливает отношения соседства с DR. Информация об изменениях в сети отправляется DR, маршрутизатором обнаружившим это изменение, | ||
| + | |||
| + | Недостатком в схеме работы с DR маршрутизатором является то, что при выходе его из строя должен быть выбран новый DR. Новые отношения соседства должны быть сформированы и, пока базы данных маршрутизаторов не синхронизируются с базой данных нового DR, сеть будет недоступна для пересылки пакетов. Для устранения этого недостатка выбирается BDR. | ||
| + | |||
| + | Резервный выделенный маршрутизатор (backup designated router, BDR). Каждый маршрутизатор сети устанавливает отношения соседства не только с DR, но и BDR. DR и BDR также устанавливают отношения соседства и между собой. При выходе из строя DR, BDR становится DR и выполняет все его функции. Так как маршрутизаторы сети установили отношения соседства с BDR, то время недоступности сети минимизируется. | ||
| + | |||
| + | <note important> | ||
| + | |||
| + | ==== Таймеры протокола ==== | ||
| + | |||
| + | * HelloInterval — Интервал времени в секундах, | ||
| + | * RouterDeadInterval — Интервал времени в секундах, | ||
| + | * Wait Timer — Интервал времени в секундах, | ||
| + | * RxmtInterval — Интервал времени в секундах, | ||
| + | |||
| + | === Константы протокола === | ||
| + | |||
| + | Некоторым параметрам OSPF присвоены фиксированные значения. Ниже описаны эти параметры, | ||
| + | |||
| + | LSRefreshTime — | ||
| + | MinLSInterval — | ||
| + | MinLSArrival — | ||
| + | MaxAge — | ||
| + | CheckAge — | ||
| + | MaxAgeDiff — | ||
| + | LSInfinity — | ||
| + | DefaultDestination — | ||
| + | InitialSequenceNumber — | ||
| + | MaxSequenceNumber — | ||
| + | |||
| + | {{fixme}} | ||
| + | |||
| + | <note important> | ||
| + | |||
| + | ===== Зоны OSPF ===== | ||
| + | |||
| + | При разделении автономной системы на зоны, маршрутизаторам, | ||
| + | |||
| + | Разделение на зоны позволяет: | ||
| + | * Снизить нагрузку на ЦПУ маршрутизаторов за счет уменьшения количества перерасчетов по алгоритму SPF | ||
| + | * Уменьшить размер таблиц маршрутизации (засчет суммирования маршрутов на границах зон) | ||
| + | * Уменьшить количество пакетов обновлений состояния канала. | ||
| + | |||
| + | Каждой зоне присваивается идентификатор зоны (area ID). Идентификатор может быть указан в десятичном формате или в формате записи IP-адреса. Однако идентификаторы зон не являются IP-адресами, | ||
| + | |||
| + | <note important> | ||
| + | В OSPF взаимодействия между зонами возможно только через зону 0: | ||
| + | * в зоне 0 не должно быть разрывов | ||
| + | * если ненулевая зона должна быть присоединена к другой ненулевой, | ||
| + | * virtual-link | ||
| + | * или обычный туннель настроенный вручную (например, | ||
| + | </ | ||
| + | |||
| + | Коротко типы зон: | ||
| + | |||
| + | ^ Название зоны ^ Замена маршрутов ^ Типы LSA ^ Описание ^ | ||
| + | | Backbone (area 0) | - | Все LSA разрешены | Разрешены все типы маршрутов | | ||
| + | | Normal | - | Все LSA разрешены | Разрешены все типы маршрутов | | ||
| + | | Stub | EX => IA 0.0.0.0/0\\ ASBR запрещен | LSA 5 запрещены | Все внешние маршруты заменены на межзональный маршрут по умолчанию. ASBR не может находиться в зоне | | ||
| + | | Totally Stub | EX и IA => IA 0.0.0.0/0 ASBR запрещен | LSA 5 запрещены\\ Все LSA 3 заменены на LSA 3 0.0.0.0/0 | Все внешние и межзональные маршруты заменены на межзональный маршрут по умолчанию. ASBR не может находиться в зоне | | ||
| + | | NSSA | EX => 0.0.0.0\\ ASBR разрешен | LSA 5 запрещены\\ LSA 7 передает внешние маршруты только в NSSA | Все внешние маршруты **должны быть** заменены на межзональный маршрут по умолчанию. В зоне может быть ASBR | | ||
| + | | Totally NSSA | EX и IA => 0.0.0.0\\ ASBR разрешен | LSA 5 запрещены\\ Все LSA 3 заменены на LSA 3 0.0.0.0/0\\ LSA 7 передает внешние маршруты только в NSSA | Все внешние и межзональные маршруты **должны быть** заменены на межзональный маршрут по умолчанию. В зоне может быть ASBR | | ||
| + | |||
| + | ==== Магистральная зона (backbone area) ==== | ||
| + | Магистральная зона (известная также как нулевая зона или зона 0.0.0.0) формирует ядро сети OSPF. | ||
| + | Все остальные зоны соединены с ней, и межзональная маршрутизация происходит через маршрутизатор, | ||
| + | |||
| + | Магистральная зона ответственна за распространение маршрутизирующей информации между немагистральными зонами. | ||
| + | Магистральная зона должна быть смежной с другими зонами, | ||
| + | |||
| + | ==== Стандартная зона (standard area) ==== | ||
| + | Обычная зона, которая создается по умолчанию. | ||
| + | Эта зона принимает обновления каналов, | ||
| + | |||
| + | ==== Тупиковая зона (stub area) ==== | ||
| + | Тупиковая зона: | ||
| + | * Не принимает информацию о внешних маршрутах для автономной системы, | ||
| + | * Если маршрутизаторам из тупиковой зоны необходимо передавать информацию за границу автономной системы, | ||
| + | * В тупиковой зоне не может находиться ASBR. | ||
| + | ** Исключение из этого правила — ABR может быть и ASBR. | ||
| + | * На всех маршрутизаторах зоны должна быть указана " | ||
| + | |||
| + | ==== Totally stubby area ==== | ||
| + | Totally stubby area: | ||
| + | * Не принимает информацию о внешних маршрутах для автономной системы и маршруты из других зон. | ||
| + | * Если маршрутизаторам из тупиковой зоны необходимо передавать информацию за границы зоны, то они используют маршрут по умолчанию | ||
| + | * В totally stub зоне не может находиться ASBR. | ||
| + | * Исключение из этого правила — ABR может быть и ASBR. | ||
| + | * На всех маршрутизаторах зоны должна быть указана " | ||
| + | * замена межзональных маршрутов на маршрут по умолчанию настраивается только на ABR зоны | ||
| + | |||
| + | То есть, фактически totally stub зона это " | ||
| + | |||
| + | < | ||
| + | |||
| + | В RFC такой термин явно не определен, | ||
| + | </ | ||
| + | |||
| + | ==== Not-so-stubby area (NSSA) ==== | ||
| + | NSSA зона: | ||
| + | * Работает по тем же принципам, | ||
| + | * Единственное отличие в том, что в NSSA зоне может находиться ASBR. | ||
| + | * Внешние маршруты других зон также заменены на маршрут по умолчанию | ||
| + | * Так как до этого в RFC было определено, | ||
| + | * LSA 7 передает внешние маршруты | ||
| + | * Когда пограничный маршрутизатор зоны NSSA передает LSA 7 в другие зоны, вместо LSA 7 передается стандартный LSA 5. | ||
| + | |||
| + | ==== Totally NSSA ==== | ||
| + | Totally NSSA зона: | ||
| + | * Работает по тем же принципам, | ||
| + | * Единственное отличие в том, что в totally NSSA зоне все маршруты других зон и внешние маршруты для AS, заменяются на маршрут по умолчанию | ||
| + | |||
| + | ==== Типы маршрутизаторов ==== | ||
| + | * **Внутренний маршрутизатор (internal router)** — маршрутизатор, | ||
| + | * **Пограничный маршрутизатор (area border router, ABR)** — соединяет одну или больше зон с магистральной зоной и выполняет функции шлюза для межзонального трафика. У пограничного маршрутизатора всегда хотя бы один интерфейс принадлежит магистральной зоне. Для каждой присоединенной зоны маршрутизатор поддерживает отдельную базу данных состояния каналов. | ||
| + | * **Магистральный маршрутизатор (backbone router)** — маршрутизатор, | ||
| + | * **Пограничный маршрутизатор автономной системы (AS boundary router, ASBR)** — обменивается информацией с маршрутизаторами, | ||
| + | |||
| + | ===== Объявления о состоянии канала (LSA) ===== | ||
| + | |||
| + | **Объявление о состоянии канала (Link State Advertisement, | ||
| + | |||
| + | Множество всех LSA, описывающих маршрутизаторы и сети, образуют базу данных состояния каналов (LSDB). | ||
| + | |||
| + | У каждого типа LSA своя функция: | ||
| + | * Router LSA и Network LSA описывают каким образом соединены маршрутизаторы и сети внутри зоны. | ||
| + | * Summary LSA предназначены для сокращения количества передаваемой информации о зонах. Описывают сети других зон для локальной. | ||
| + | * ASBR Summary LSA описывает для других зон, как дойти до локального ASBR. | ||
| + | * AS External LSA позволяет передавать по автономной системе информацию, | ||
| + | |||
| + | Фактически, | ||
| + | * В Database Description передается описание всех LSA, которые хранятся в LSDB маршрутизатора, | ||
| + | * В Link State Request передается запрос с описанием тех LSA, которых не хватает в LSDB, | ||
| + | * В Link State Update передаются полные LSA, | ||
| + | * В Link State Acknowledgment передается подтверждение о получении конкретных LSA, с описанием этих LSA. | ||
| + | |||
| + | ==== Суммарная информация о LSA ==== | ||
| + | ^ Номер LSA ^ Название LSA ^ Link-State ID ^ Кто отправляет ^ Область распространения ^ | ||
| + | | LSA 1 | Router LSA | Router ID отправителя | Все маршрутизаторы | Внутри зоны (IntraArea) | | ||
| + | | LSA 2 | Network LSA | IP-адрес интерфейса DR | DR (в сетях со множественным доступом) | Внутри зоны (IntraArea) | | ||
| + | | LSA 3 | Network Summary LSA | Сети назначения и маска сети | ABR | AS (InterArea) | | ||
| + | | LSA 4 | ASBR Summary LSA | Router ID ASBR | ABR | AS (InterArea) | | ||
| + | | LSA 5 | AS External LSA | Внешняя сеть и маска | ASBR | AS (InterArea) | | ||
| + | | LSA 7 | AS External LSA for NSSA | Внешняя сеть и маска | ASBR в NSSA | NSSA | | ||
| + | |||
| + | ==== Заголовок LSA ==== | ||
| + | Все LSA начинаются с одинакового заголовка размером 20 байт. | ||
| + | |||
| + | < | ||
| + | 0 | ||
| + | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | LS age | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Link State ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | LS sequence number | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | LS checksum | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | </ | ||
| + | |||
| + | Любое LSA уникально идентифицируют 3 поля заголовка: | ||
| + | * LS type | ||
| + | * Link State ID | ||
| + | * Advertising Router | ||
| + | |||
| + | Так как может существовать несколько копий одного и того же LSA, необходимо определять какая из копий актуальна. | ||
| + | Это осуществляется с помощью анализа полей: | ||
| + | * LS age | ||
| + | * LS sequence number | ||
| + | * LS checksum | ||
| + | |||
| + | Описание полей заголовка LSA: | ||
| + | * LS age — время (в секундах) с момента генерации LSA | ||
| + | * Options — дополнительные опции, которые может поддерживать маршрутизатор. Это поле есть в пакетах hello, DBD, LSA. Согласно RFC 2328 могут быть установлены такие 5 битов: | ||
| + | * E-bit — указывает каким образом распространяются AS-external-LSA | ||
| + | * MC-bit — указывает соответствует ли IP multicast датаграмма спецификациям RFC 1584; | ||
| + | * N/P-bit — указывает как обрабатываются Type-7 LSA (RFC 1587); | ||
| + | * EA-bit — указывает желание маршрутизатора получать и отправлять External-Attributes-LSA; | ||
| + | * DC-bit — указывает как маршрутизатор работает с demand circuits (RFC 1793); | ||
| + | * LS type — тип LSA. У каждого типа LSA свой формат, | ||
| + | * Link State ID — о чем сообщает LSA. Содержание этого поля зависит от типа LSA. Значения поля для разных LSA описаны в соответствующих разделах | ||
| + | * Advertising Router — Router ID маршрутизатора, | ||
| + | * LS sequence number — версия LSA. Используется для обнаружения старых и дублирующихся LSA | ||
| + | * LS checksum — контрольная сумма, для проверки целостности. Контрольная сумма берется со всего LSA, кроме поля LS age | ||
| + | * Length — длина всего LSA (включая заголовок) в байтах | ||
| + | |||
| + | ==== Type 1 LSA ==== | ||
| + | **Type 1 LSA — Router LSA** — объявление о состоянии каналов маршрутизатора: | ||
| + | * LSA распространяются всеми маршрутизаторами. | ||
| + | * Распространяются только в пределах одной зоны. | ||
| + | |||
| + | В Router LSA содержится: | ||
| + | * описание всех каналов маршрутизатора | ||
| + | * стоимость (cost) каждого канала | ||
| + | * список соседей на каждом интерфейсе (в зоне маршрутизатора) | ||
| + | * Link-state ID — Router ID маршрутизатора, | ||
| + | |||
| + | LSA Type 1 link types и соответствующие link ID: | ||
| + | * Point-to-point соединение с другим маршрутизатором — Router ID соседа | ||
| + | * Соединение с тупиковой сетью (сеть, к которой присоединен только один маршрутизатор(локальный)) — сеть/ | ||
| + | * Соединение с транзитной сетью (сеть, в которой есть как минимум два непосредственно присоединенных маршрутизатора) — IP-адрес DR | ||
| + | * Virtual link — Router ID соседа | ||
| + | |||
| + | ==== Type 2 LSA ==== | ||
| + | **Type 2 LSA — Network LSA** — объявление о состоянии каналов сети: | ||
| + | * Распространяется DR в сетях со множественным доступом | ||
| + | * Network LSA не создается для сетей в которых не выбирается DR | ||
| + | * Распространяются только в пределах одной зоны | ||
| + | * Link-state ID — IP-адрес интерфейса DR | ||
| + | |||
| + | В LSA содержится описание всех маршрутизаторов присоединенных к сети, включая DR и маска сети, за которую отвечает DR. | ||
| + | |||
| + | |||
| + | < | ||
| + | Зачастую возникает вопрос: | ||
| + | |||
| + | Необходимость и преимущества LSA 2 понятны, | ||
| + | |||
| + | Тогда, если предположить, | ||
| + | |||
| + | LSA 2 позволяет существенно сократить количество каналов в LSDB. | ||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | В ситуации, | ||
| + | </ | ||
| + | |||
| + | ==== Type 3 LSA ==== | ||
| + | **Type 3 LSA — Network Summary LSA** — суммарное объявление о состоянии каналов сети: | ||
| + | * Объявление распространяется пограничными маршрутизаторами | ||
| + | * Объявление описывает маршруты к сетям вне локальной зоны | ||
| + | * Содержит информацию о сетях и о стоимости пути к этим сетям, но не отправляет информацию о топологии сети | ||
| + | * По умолчанию, | ||
| + | * При необходимости, | ||
| + | * Link-state ID — номер сети назначения. | ||
| + | |||
| + | Когда маршрутизатор получает Network Summary LSA от пограничного маршрутизатора он не запускает алгоритм вычисления кратчайшего пути. Маршрутизатор просто добавляет к стоимости маршрута указанного в LSA стоимость пути к пограничному маршрутизатору. Затем маршрут к сети через пограничный маршрутизатор помещается в таблицу маршрутизации. | ||
| + | |||
| + | ==== Type 4 LSA ==== | ||
| + | **Type 4 LSA — ASBR Summary LSA** — суммарное объявление о состоянии каналов пограничного маршрутизатора автономной системы: | ||
| + | * Объявление распространяется пограничными маршрутизаторами (ABR) | ||
| + | * ASBR Summary LSA отличается от Network Summary LSA тем, что распространяется информация не о сети, а о пограничном маршрутизаторе автономной системы | ||
| + | * Link-state ID — Router ID ASBR, информацию о котором отправляет LSA | ||
| + | |||
| + | Когда в домен OSPF помещаются сторонние маршруты, | ||
| + | |||
| + | Всем маршрутизаторам, | ||
| + | |||
| + | ==== Type 5 LSA ==== | ||
| + | **Type 5 LSA — AS External LSA** — объявления о состоянии внешних каналов автономной системы: | ||
| + | * Объявление распространяется пограничным маршрутизатором автономной системы в пределах всей автономной системы | ||
| + | * Объявление описывает маршруты внешние для автономной системы OSPF или маршруты по умолчанию внешние для автономной системы OSPF | ||
| + | * Link-state ID — номер внешней сети. | ||
| + | |||
| + | ==== Type 7 LSA ==== | ||
| + | **Type 7 LSA — AS External LSA for NSSA** — объявления о состоянии внешних каналов автономной системы в NSSA зоне: | ||
| + | * Это объявление может передаваться только в NSSA зоне | ||
| + | * LSA 7 аналогично по содержанию LSA 5, но используется только в NSSA зоне | ||
| + | * LSA 7 нужно было для того чтобы обойти ограничения, | ||
| + | * На границе зоны пограничный маршрутизатор преобразует type 7 LSA в type 5 LSA. | ||
| + | |||
| + | ===== Типы пакетов OSPF ===== | ||
| + | |||
| + | OSPF использует 5 типов пакетов: | ||
| + | * **Hello** — используется для обнаружения соседей, | ||
| + | * **Database Description (DBD)** — проверяет синхронизацию базы данных между маршрутизаторами. | ||
| + | * **Link-State Request (LSR)** — запрашивает определенные записи о состоянии каналов от маршрутизатора к маршрутизатору. | ||
| + | * **Link-State Update (LSU)** — отправляет определенные записи о состоянии каналов в ответ на запрос. | ||
| + | * **Link-State Acknowledgment (LSAck)** — подтверждает получение других типов пакетов. | ||
| + | |||
| + | ==== Формат заголовка пакета OSPF ==== | ||
| + | Все пять типов пакетов OSPF инкапсулируются непосредственно в IP-пакет. | ||
| + | Номер протокола OSPF в IP-заголовке — 89. | ||
| + | |||
| + | У всех пакетов OSPF одинаковый заголовок. | ||
| + | |||
| + | < | ||
| + | |< | ||
| + | |||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Router ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Area ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | </ | ||
| + | |||
| + | Поля заголовка пакета OSPF: | ||
| + | * Версия протокола (Version number) — версия протокола OSPF. Текущая версия для IPv4 — 2. | ||
| + | * Тип пакета (Type) — указывает какой тип пакета OSPF передается: | ||
| + | * 1 — Hello | ||
| + | * 2 — Database Description | ||
| + | * 3 — Link State Request | ||
| + | * 4 — Link State Update | ||
| + | * 5 — Link State Acknowledgment | ||
| + | * Длина пакета (Packet length) — длина пакета OSPF в байтах. Длина включает в себя и заголовок. | ||
| + | * Идентификатор маршрутизатора (Router ID) — определяет какой маршрутизатор отправил пакет. | ||
| + | * Идентификатор зоны (Area ID) — определяет в какой зоне сгенерирован пакет. | ||
| + | * Контрольная сумма (Checksum) — используется для проверки целостности пакета OSPF, для обнаружения ошибок при передаче. | ||
| + | * Тип аутентификации (Authentication type) — тип аутентификации, | ||
| + | * 0 — аутентификация не используется, | ||
| + | * 1 — аутентификация открытым текстом, | ||
| + | * 2 — MD5-аутентификация. | ||
| + | * Данные аутентификации (Authentication) — используется при аутентификации маршрутизаторов. | ||
| + | |||
| + | Поле " | ||
| + | * Hello — список известных соседей | ||
| + | * DBD — содержит суммарную информацию базы данных состояний каналов, | ||
| + | * LSR — содержит тип необходимого LSU и идентификатор маршрутизатора, | ||
| + | * LSU — содержит полные записи объявления о состоянии канала. Несколько LSA могут передаваться в одном пакете обновлений. | ||
| + | * LSAck — поле пустое | ||
| + | |||
| + | ==== Hello ==== | ||
| + | Hello-пакет используется для таких целей: | ||
| + | * С помощью него каждый маршрутизатор обнаруживает своих соседей; | ||
| + | * Он передает параметры о которых маршрутизаторы должны договориться прежде чем они станут соседями; | ||
| + | * Hello-пакеты выполняют роль keepalive-пакетов между соседями; | ||
| + | * Отвечает за установление двухсторонних коммуникаций между соседними маршрутизаторами (двухсторонняя коммуникация установлена тогда, когда маршрутизатор увидит себя в списке соседей hello-пакета полученного от соседнего маршрутизатора); | ||
| + | * Он выбирает DR и BDR в широковещательных и нешироковещательных сетях со множественным доступом. | ||
| + | |||
| + | Кроме стандартного заголовка пакета OSPF, в hello-пакете содержится такая информация: | ||
| + | |||
| + | < | ||
| + | |< | ||
| + | |||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Router ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Area ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Network Mask | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Designated Router | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Neighbor | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | ... | | ||
| + | </ | ||
| + | |||
| + | * Network mask — сетевая маска назначенная на интерфейсе с которого отправляется hello-пакет; | ||
| + | * HelloInterval — частота отправки hello-пакетов; | ||
| + | * Options — дополнительные опции, которые может поддерживать маршрутизатор. Это поле есть в пакетах hello, DBD, LSA. Согласно RFC 2328 могут быть установлены такие 5 битов: | ||
| + | * E-bit — указывает каким образом распространяются AS-external-LSA | ||
| + | * MC-bit — указывает соответствует ли IP multicast датаграмма спецификациям RFC 1584; | ||
| + | * N/P-bit — указывает как обрабатываются Type-7 LSA (RFC 1587); | ||
| + | * EA-bit — указывает желание маршрутизатора получать и отправлять External-Attributes-LSA; | ||
| + | * DC-bit — указывает как маршрутизатор работает с demand circuits (RFC 1793); | ||
| + | * Rtr Pri — приоритет маршрутизатора. Используется для выбора DR и BDR. Если приоритет установлен в 0, то маршрутизатор не может стать DR или BDR; | ||
| + | * RouterDeadInterval — интервал времени по истечению которого сосед будет считаться " | ||
| + | * Designated Router — IP-адрес DR для сети в которую отправлен hello-пакет, | ||
| + | * Backup Designated Router — IP-адрес BDR для сети в которую отправлен hello-пакет, | ||
| + | * Neighbor — идентификаторы всех маршрутизаторов от который маршрутизатор-отправитель получал hello-пакеты в течение последнего интервала RouterDeadInterval. | ||
| + | |||
| + | ==== Database Description ==== | ||
| + | DBD (Database Description) -- пакет, который описывает содержание LSDB маршрутизатора. Эти пакеты позволяют маршрутизаторам обменяться информацией о том, что они знают и чего недостает в их LSDB. | ||
| + | |||
| + | Кроме стандартного заголовка пакета OSPF, в DBD-пакете содержится такая информация: | ||
| + | |||
| + | < | ||
| + | |< | ||
| + | |||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Router ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Area ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | DD sequence number | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | | ||
| + | +- -+ | ||
| + | | | | ||
| + | +- An LSA Header | ||
| + | | | | ||
| + | +- -+ | ||
| + | | | | ||
| + | +- -+ | ||
| + | | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | ... | | ||
| + | </ | ||
| + | |||
| + | * Interface MTU — максимальный размер IP-пакета, | ||
| + | * Options — дополнительные опции, которые может поддерживать маршрутизатор. Это поле есть в пакетах hello, DBD, LSA. Согласно RFC 2328 могут быть установлены такие 5 битов: | ||
| + | * E-bit — указывает каким образом распространяются AS-external-LSA | ||
| + | * MC-bit — указывает соответствует ли IP multicast датаграмма спецификациям RFC 1584; | ||
| + | * N/P-bit — указывает как обрабатываются Type-7 LSA (RFC 1587); | ||
| + | * EA-bit — указывает желание маршрутизатора получать и отправлять External-Attributes-LSA; | ||
| + | * DC-bit — указывает как маршрутизатор работает с demand circuits (RFC 1793); | ||
| + | * I-bit — Init bit. Значение бита равное 1, означает, | ||
| + | * M-bit — More bit. Значение бита равное 1, означает, | ||
| + | * MS-bit — Master/ | ||
| + | * DD sequence number — номер последовательности, | ||
| + | * Начальный номер должен быть уникальным (Init bit оповещает о начальном пакете и номер в этом пакете и есть начальный) | ||
| + | * В процессе обмена DBD-пакетами DD sequence number растет, | ||
| + | * LSA header — в этом поле передаются заголовки тех LSA, которые находятся в LSDB: | ||
| + | * Заголовка LSA достаточно, | ||
| + | |||
| + | ==== Link State Request ==== | ||
| + | Запрос информации о состоянии канала. Этот тип пакетов запрашивает отдельные фрагменты базы данных состояния каналов маршрутизатора. | ||
| + | |||
| + | < | ||
| + | |< | ||
| + | |||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Router ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Area ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | LS type | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Link State ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | ... | | ||
| + | </ | ||
| + | |||
| + | ==== Link State Update ==== | ||
| + | |||
| + | < | ||
| + | |< | ||
| + | |||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Router ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Area ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | # LSAs | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | | ||
| + | +- +-+ | ||
| + | | | ||
| + | +- +-+ | ||
| + | | ... | | ||
| + | </ | ||
| + | |||
| + | ==== Link State Acknowledgment ==== | ||
| + | |||
| + | < | ||
| + | |< | ||
| + | |||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Router ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | Area ID | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | | | ||
| + | +- -+ | ||
| + | | | | ||
| + | +- An LSA Header | ||
| + | | | | ||
| + | +- -+ | ||
| + | | | | ||
| + | +- -+ | ||
| + | | | | ||
| + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| + | | ... | | ||
| + | </ | ||
| + | |||
| + | ===== Выбор лучшего маршрута ===== | ||
| + | |||
| + | Маршрутизатор выбирает лучший маршрут на основании наименьшего значения метрики. Однако OSPF учитывает и несколько других факторов при выборе маршрута. | ||
| + | |||
| + | ==== Выбор лучшего типа маршрута ==== | ||
| + | Если маршрутизатору известны маршруты к одной и той же сети, но эти маршруты разных типов, то маршрутизатор выбирает наиболее приоритетный тип маршрута и не учитывает стоимость маршрута. | ||
| + | |||
| + | Различные типы маршрутов, | ||
| + | * Внутренние маршруты зоны (intra-area) | ||
| + | * Маршруты между зонами (interarea) | ||
| + | * Внешние маршруты типа 1 (E1) | ||
| + | * Внешние маршруты типа 2 (E2) | ||
| + | |||
| + | Хотя стоимость маршрута E2 не меняется при передаче его по зонам (не добавляется стоимость пути к ASBR), при совпадении стоимости маршрутов E2 сравнивается стоимость пути к ASBR, который анонсирует маршрут. | ||
| + | |||
| + | ==== Метрика OSPF ==== | ||
| + | OSPF использует метрику, | ||
| + | |||
| + | В RFC 2328 не описывается как именно должна рассчитываться стоимость (cost) интерфейса. Определен только диапазон значений: | ||
| + | |||
| + | Пример (Cisco): | ||
| + | <pre> | ||
| + | cost = reference bandwidth / link bandwidth | ||
| + | </ | ||
| + | Reference bandwidth — пропускная способность, | ||
| + | |||
| + | Суммарная стоимость маршрута считается суммированием стоимости исходящих интерфейсов по пути передачи LSA. | ||
| + | |||
| + | Для обозначения недоступной сети OSPF использует метрику 16777215 (2^24 — 1), которая считается недостижимой метрикой. | ||
| + | |||
| + | ==== ABR Loop Prevention ==== | ||
| + | Внутри зон OSPF использует логику link-state протокола, | ||
| + | |||
| + | При анонсировании в зону type 3 LSA передается информация о сети назначения, | ||
| + | |||
| + | OSPF не использует традиционные механизмы дистанционно-векторных протоколов для предотвращения петель. OSPF применяет ряд правил распространения LSA между зонами, | ||
| + | |||
| + | ==== Внешние маршруты ==== | ||
| + | OSPF использует два типа маршрутов для описания сетей вне автономной системы: | ||
| + | * Type 1 external routes (E1) | ||
| + | * Type 2 external routes (E2) | ||
| + | |||
| + | Type 1 external routes — к метрике внешнего маршрута добавляется стоимость пути к ASBR, который анонсирует этот маршрут. Используется, | ||
| + | |||
| + | Маршрутизатор (не ABR), который находится в разных зонах с ASBR, будет вычислять метрику внешнего маршрута E1 суммированием: | ||
| + | * метрики внешнего маршрута из type 5 LSA, | ||
| + | * стоимости пути к ASBR, которая анонсируется в type 4 LSA, | ||
| + | * стоимости пути к ABR, который анонсировал type 4 LSA. | ||
| + | |||
| + | Type 2 external routes (по умолчанию) — используется только стоимость внешнего маршрута и при передаче по сети стоимость не увеличивается. При получении type 5 LSA маршрутизаторы добавляют в таблицу маршрут во внешнюю сеть со стоимостью, | ||
| + | |||
| + | < | ||
| + | |||
| + | === Forwarding address в Type 5 LSA === | ||
| + | В RFC 2328 (раздел 16.4) указано: | ||
| + | |||
| + | Иными словами, | ||
| + | |||
| + | ==== Вычисление таблицы маршрутизации ==== | ||
| + | Маршрутизатор, | ||
| + | |||
| + | Процесс: | ||
| + | 1. Текущая таблица маршрутизации обнуляется — строится заново. Старая таблица сохраняется для обнаружения изменений. | ||
| + | 2. С помощью построения дерева кратчайшего пути для каждой присоединённой зоны вычисляются внутризональные маршруты. Во время вычисления дерева для зоны также вычисляется TransitCapability, | ||
| + | * Сначала дерево строится с учётом только линков между маршрутизаторами и транзитными сетями. | ||
| + | * Затем тупиковые сети включаются в дерево. | ||
| + | 3. Межзональные маршруты вычисляются просмотром summary LSA. Если маршрутизатор пограничный, | ||
| + | 4. На пограничных маршрутизаторах, | ||
| + | 5. Вычисляются маршруты к внешним сетям — просматриваются AS-external-LSA. Местонахождение ASBR было обнаружено на этапах 2–4. | ||
| + | |||
| + | === Вычисление дерева кратчайшего пути для зоны === | ||
| + | |||
| + | {{fixme}} | ||
| + | |||
| + | (раздел для подробного описания алгоритма SPF — оставить заглушку для последующего наполнения) | ||
| + | |||
| + | === Вычисление next hop === | ||
| + | |||
| + | {{fixme}} | ||
| + | |||
| + | (раздел для описания логики определения следующего хопа — оставить заглушку для последующего наполнения) | ||
| + | |||
| + | === Вычисление внешних маршрутов ===== | ||
| + | |||
| + | {{fixme}} | ||
| + | |||
| + | (раздел для подробного описания вычисления E1/E2 и взаимодействия с type4/type5 — оставить заглушку) | ||
| + | |||
| + | === Equal-cost multipath === | ||
| + | |||
| + | {{fixme}} | ||
| + | |||
| + | (раздел для описания ECMP в OSPF — оставить заглушку) | ||