OSPF
Overview
OSPF - link-state IGP протокол.
Hello пакета для установления и поддержания соседства.
OSPF флудит LSA (IP 89 порт, 224.0.0.5 адрес) во все порты OSPF, кроме того, с которого прилетела LSA. С помощью LSA на каждом роутере строится топология сети и на основании этих данных затем производится рассчет кратчайшего пути.
Иерархичный дизайн сети достигается за счет использования area, которые соединяются посредством backbone area.
На бродкаст сегменте выбирается DR (наиб приоритет, затем наиб router ID), который занимается флудом LSA внутри area.
Типы пакетов
Hello - используются для установления и поддержания соседства ospf. Отправляются на адрес 224.0.0.5 каждые 10 сек. Содержит в себе поля: network mask, hello interval, dead interval, options, (router priority, designated router, backup designated router, neighbor).
Description database (DD) - используется только во время установления соседства. Определяет кто отвечает за синхронизацию (выбирается с большим RID). Обменивается LSA до полной синхронизации. Содержит: ospf header, sequence number, lsa header.
Link-state request - отправляется роутером, когда тот понимает, что LSBD устарела. Содержит: ospf header, link-state type, link-state ID, advertising router.
Link-state update - отправляется на адрес: 224.0.0.5 (всем) или 225.0.0.6 (для DR). Отправляется либо в ответ на link-state request, либо если меняется информация о состоянии линка. Содержит: ospf header, numbers of advertisement, link-state avertisement.
Link-state acknowledgment - ответ на link-state update. Содержит: ospf header, list of LSA headers.
Установление соседства
Соседи используют hello пакета для установления и поддержания соседства.
1. Down
Самое начало, ничего не происходит.
2. Init
В hello-packet в списке соседей нет router-id маршрутизатора, получившего этот пакет.
Если маршрутизатор не переходит в состояние 2-Way, а скачет - down-Init-down-init... вероятно на маршрутизаторах не совпали параметры:
Area ID Authentication Network Mask Hello Interva Router Dead Interval Options fields
либо до удаленного маршрутизатора не доходят ваши сообщения hello (причиной могут быть неверно настроенные фаерволы)
3. 2-Way
В hello-packet в списке соседей появился router-id маршрутизатора, получившего этот пакет.
4. ExStart
Выборы DR и BDR маршрутизаторов производятся в момент первоначальной установки соседских отношений по следующим правилам:
- Маршрутизатор с наибольшим приоритетом выбирается DR маршрутизатором;
- Маршрутизатор со вторым по величине приоритетом назначается BDR маршрутизатором;
- Если маршрутизаторы имеют равный приоритет, то в качестве DR маршрутизатора выбирается маршрутизатор с наибольшим RID, BDR маршрутизатором выбирается маршрутизатор со вторым по величине RID;
- Маршрутизатор, с приоритетом равным нулю, не принимает участия в выборах DR и BDR маршрутизаторов;
- Если после выбора DR и BDR маршрутизаторов в сегмент сети добавляется маршрутизатор с более высоким приоритетом или большим RID, то повторные выборы не производятся;
- Повторные выборы производятся только после того как DR или BDR маршрутизаторы становится недоступными.
(Происходит обмен сообщениями DD (database descr), где заполнены только поля: router-id, neighbors, mtu.
Если маршрутизатор не переходит в следующее состояние, то вероятнее всего причина в несовпадении mtu на физических интерфейсах маршрутизаторов.
5. ExChange
Процесс обмена LSDB с помощью сообщений DD (database descr) (локальной базой маршрутов, их метриками, состояний линков)
6. Loading
Обмен сообщениями link-state request, link-state update. На каждом маршрутизаторе должна быть одинаковая LSDB. (Каждый маршрутизатор восполняет недостающие знания о новых маршрутах)
7. Full
Соседство установлено, LSDB синхронизированы. Последующие изменения в топологии передаются через сообщения link-state update, в ответ приходят link-state acknowledgment (в кач-ве подтверждения о доставке).
Типы Area
backbone
Area 0 (к ней в обязательном порядке должны подключаться остальные area).
stub area
Обменивается маршрутами по ospf с ABR, не содержит с себе external routes, не принимает от ABR external routes. (не принимает LSA 4,5). Доступность внешних маршрутов достигается анонсированием 0/0 со стороны ABS в сторону stub-area.
[edit protocols ospf area 0.0.0.1] mortlach# set stub
stub with no summaries
В неё не анонсируется вообще никаких LSA. Доступность маршрутов из остальных area достигается тем же анонсированием 0/0 со стороны ABS в сторону totally stub-area.
[edit protocols ospf area 0.0.0.1] mortlach# set stub no-summaries
not-so-stubby
Обменивается маршрутами по ospf с ABR, содержит external routes, НО не принимает external routes от ABR. (не принимает LSA 4,5)
[edit protocols ospf area 0.0.0.1] mortlach# set nssa
Типы LSA
Type 1 LSA (Router) — Описывают сам маршрутизатор и его интерфейсы. Не передаются между Area.
Type 2 LSA (Network) — Описывают сети, подключенные к маршрутизатору. Не передаются между Area.
Type 3 LSA (Summary) — Описывают сети, которые маршрутизатор получил из предыдущих типов LSA, но передаются между Area.
Type 4 LSA (ASBR Summary) — Генерируются маршрутизаторами (ASBR), в которые попадают маршруты из других протоколов, чтобы описать себя.
Type 5 LSA (External) — Описывают сети, полученные из других протоколов маршрутизации ASBR-ами. Рассылаются ими же.
Type 6 LSA — Не используется, некогда планировался под MOSPF.
Type 7 LSA (NSSA External) — Генерируются ASBR-ами в NSSA, на выходе из зоны транслируются ABR-ами в LSA Type 5.
Type 10 LSA (Traffic Engineering) — Содержат информацию, которая в последствии находится в TED и используется при работе CSPF-алгоритма.
Типы интерфейсов
- Broadcast - поведение аналогично тому, когда router включен в LAN сегмент. То ест дополнительно производится выбор DR, BDR среди роутеров. И если на интерфейсе висите несколько ip, то роутер сможет установить несколько соседств в каждой сети одновременно.
- Point to point (p2p) - соединение между одним source и одним destination. Возможно установление только одного соседства с такого типа интерфейса. Можно назначать на ethernet интерфейсы без IP адресов.
- Point to multipoint (p2mp) - соединение между одним source и несколькими destination. Сеть рассматривается как набор p2p линков. Т.к. нет autodiscovery механизма, от обязательно указывать соседа.
- Nonebroadcast multiaccess (NBMA) - работает как p2mp, но может взаимодействовать с другим оборудованием.
- Demand circuit - соединение на котором можно ограничить полосу или время доступа.
- Passive - передает свой адрес, но не участвует в установлении OSPF соседства и вообще не обменивается hello-сообщениями. Также в passive можно использовать инфо об интерейсе и его сетях для TE вычислений.
- Disable - не участвует в OSPF и не передает о себе инфо в LSDB
- Peer (для OSPFv2) - требуется GMPLS
Если на маршрутизаторах указаны разные типы интерфейсов, то они между собой соседство не поднимут.
Другие фичи
- Аутентификация: простая, MD5, IPSec.
- Суммирование маршрутов, прилетающих в update сообщениях от других area.
- Можно ограничить кол-во перфиксов, экспортируемых в OSPF.
- GRES возможен.
- BFD (Bidirectional Forwarding Detection) можно использовать для сокращения времени обнаружения аварии между роутерами.
© Наталия Бобкова 2014—2022