OSPF

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску

Overview

OSPF - link-state IGP протокол.

Hello пакета для установления и поддержания соседства.

OSPF флудит LSA (IP 89 порт, 224.0.0.5 адрес) во все порты OSPF, кроме того, с которого прилетела LSA. С помощью LSA на каждом роутере строится топология сети и на основании этих данных затем производится рассчет кратчайшего пути.

На всех роутерах одной area поддерживается одинаковая копия LSDB.

Иерархичный дизайн сети достигается за счет использования area, которые соединяются посредством backbone area.

На бродкаст сегменте выбирается DR (наиб приоритет, затем наиб router ID), который занимается флудом LSA внутри area. Для роутеров не в бродкастном сегменте, подключенных через Ethernet, включаем interface-type p2p, чтобы на этом линке не проводились выборы DR и чтобы уменьшить время сходимости.

Типы пакетов

Hello - используются для установления и поддержания соседства ospf. Отправляются на адрес 224.0.0.5 каждые 10 сек. Содержит в себе поля: network mask, hello interval, dead interval, options, (router priority, designated router, backup designated router, neighbor).

Database description (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 (в кач-ве подтверждения о доставке).

Роутеры

  • ABR (Area border router): OSPF роутер, имеющий линки в двух area - соединяет и распространите инфо из OSPF area в backbone.
  • ASBR (AS boundary router): может находиться внутри backbone или других area. Имеет подключения к другим external routing protocols и распространяет эту инфу по сети.
  • Backbone: все линки внутри backbone area.
  • Internal: все линки внутри одной area, backbone - частный случай internal.

Типы 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) можно использовать для сокращения времени обнаружения аварии между роутерами.