OSPF: различия между версиями

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
Строка 115: Строка 115:
В неё не анонсируется вообще никаких LSA. По area гуляют только LSA 1 и LSA 2. Доступность маршрутов из остальных area достигается тем же анонсированием 0/0 со стороны ABR в сторону totally stub-area. В area не вставляются LSA 3, 4, 5. И ASBR не флудит external routes в такой area. Также virtual-link не поддерживается в такой area.
В неё не анонсируется вообще никаких LSA. По area гуляют только LSA 1 и LSA 2. Доступность маршрутов из остальных area достигается тем же анонсированием 0/0 со стороны ABR в сторону totally stub-area. В area не вставляются LSA 3, 4, 5. И ASBR не флудит external routes в такой area. Также virtual-link не поддерживается в такой area.


  [edit protocols ospf area 0.0.0.1]
  [edit protocols ospf area 0.0.0.20]
  mortlach# set stub no-summaries
  stub default-metric 10 no-summaries;


==not-so-stubby==
==not-so-stubby==

Версия 21:21, 16 февраля 2017

Overview

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

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

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

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

Policy можно применят только на export.

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

Dijkstra рассчитывается только в рамках одной area (на основании одной LSDB, которая едина в рамках одной area).

Summary metric для dest = сумме outgoing interface metrics.

На бродкаст сегменте выбирается 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, либо если меняется информация о состоянии линка. Передает одну или несколько LSA. Содержит: 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).

Но если area не имеет прямого физического подключения к backbone area, то она может соединят с ней через virtual-link.

stub area

Обменивается маршрутами по ospf с ABR, не содержит с себе external routes, не принимает от ABR external routes. (не принимает LSA 4,5). Доступность внешних маршрутов достигается анонсированием 0/0 со стороны ABR в сторону stub-area. Через stub-area нельзя построить virtual-link и в ней не может размещаться ASBR. Если все же сконфигурировать ASBR внутри stub-area, то роутер разместит LSA 5 в своей локальной базе данных, но не будет пересылать ее другим роутера даже внутри area.

Все роутеры stub area должны быть сконфигурированы, как stub.

[edit protocols ospf area 0.0.0.20]
+ stub

Чтобы анонсировать 0/0, на ABR настраиваем:

[edit protocols ospf area 0.0.0.20 stub]
+     default-metric 10;

stub with no summaries (totally stub)

В неё не анонсируется вообще никаких LSA. По area гуляют только LSA 1 и LSA 2. Доступность маршрутов из остальных area достигается тем же анонсированием 0/0 со стороны ABR в сторону totally stub-area. В area не вставляются LSA 3, 4, 5. И ASBR не флудит external routes в такой area. Также virtual-link не поддерживается в такой area.

[edit protocols ospf area 0.0.0.20]
+  stub default-metric 10 no-summaries;

not-so-stubby

Обменивается маршрутами по ospf с ABR, содержит external routes (ASBR), НО не принимает external routes от ABR. (не принимает LSA 4,5)

[edit protocols ospf area 0.0.0.1]
mortlach# set nssa

Типы LSA

Все типы имеют одинаковый заголовок:

  • LS age - sec - время, когда LSA была впервые создана
  • Option - E-bit = External LSA, P bit = NSSA external LSA.
  • LS type.
  • Link-state ID - разные типы LSA используют поле по-разному.
  • Advertising router - роутер, который сгенерировал LSA.
  • LS sec number
  • LS checksum
  • Length

В выводе sh ospf database ID, отмеченный * - будет означать, что этот маршрут сгенерирован самим роутером.

  • Type 1 LSA (Router) — Описывает стоимость (metric) и состояние интерфейсов. Не передаются между Area.
  • Type 2 LSA (Network) — Отправляются DR. Описывает роутеры, подключенные в бродкаст сегменте + сам себя. Не передаются между area. В выводе sh ospf database: ID = DR, attached router = роутеры в бродкаст сегменте.
  • Type 3 LSA (Summary) — Отправляются ABR. Описывают сети, которые маршрутизатор получил из предыдущих типов LSA, и передает между Area. LSA будет флудиться каждому роутеру внутри area. ABR, получив LSA3 не перешлет ее другому ABR, а сгенерирует на основании полученной LSA3, LSA1, 2 новую LSA3, и уже ее передаст в соседние area.
  • Type 4 LSA (ASBR Summary) — Генерируются ABR, LSA содержит описание самих ASBR роутеров. В выводе sh ospf database: ID = ASBR router.
  • Type 5 LSA (External) — Описывают сети, полученные из других протоколов маршрутизации ASBR-ами. Рассылаются ими же. В выводе sh ospf database: ID + mask = external networks.
  • Type 6 LSA (Group membership) — Не используется, некогда планировался под MOSPF.
  • Type 7 LSA (NSSA External) — Генерируются ASBR-ами в NSSA. Передаются только внутри NSSA. Но на выходе из зоны ABR-ами транслируются в LSA Type 5. В выводе sh ospf database: ID + mask = external networks.
  • Type 9 (Graceful restart) - поддерживает graceful restart.
  • Type 10 LSA (Traffic Engineering) — Содержат информацию, которая в последствии находится в TED и используется при работе CSPF-алгоритма.

LSA flooding scopes: LSA 1, LSA 2 - исключительно внутри area. LSA 3 - суммирует LSA 1 + LSA2 и передает эту инфу в соседнюю area. LSA 5 (external) - передаются по всему OSPF домену. LSA 4 (about ASBR) - по всему OSPF домену.

Время жизни каждой LSA - 3600 sec (1 h).

Junos не поддерживает: LSA6, LSA8, LSA11

Можно вручную ограничить кол-во LSA: полезно в тех случаях, когда CE <> PE висит на OSPF.

set protocols ospf database-protection maximum-lsa 1000
macduff> show ospf database 
   OSPF database, Area 0.0.0.20
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router   10.200.86.2      10.200.86.2      0x80000007   277  0x22 0xcb07  72
Router   10.200.86.4      10.200.86.4      0x8000000a   106  0x22 0x7294  72
Router  *10.200.86.8      10.200.86.8      0x8000000d   105  0x22 0x5fd2  72
Network *192.168.86.14    10.200.86.8      0x80000003  2402  0x22 0xc01d  32
Summary  10.200.86.1      10.200.86.2      0x80000002  1991  0x22 0xdc09  28
Summary  10.200.86.2      10.200.86.2      0x80000004  2134  0x22 0xc41f  28
Summary  10.200.86.3      10.200.86.2      0x80000002  1705  0x22 0xd210  28
Summary  10.200.86.5      10.200.86.2      0x80000004  1420  0x22 0xba24  28
Summary  10.200.86.6      10.200.86.2      0x80000004  1277  0x22 0xa638  28
Summary  10.200.86.7      10.200.86.2      0x80000004  1134  0x22 0xb02b  28
Summary  10.200.86.9      10.200.86.2      0x80000002   848  0x22 0xa03b  28
Summary  192.168.86.4     10.200.86.2      0x80000004   991  0x22 0xec5f  28
Summary  192.168.86.8     10.200.86.2      0x80000006  2357  0x22 0xc085  28
Summary  192.168.86.24    10.200.86.2      0x80000002  1848  0x22 0x2812  28
Summary  192.168.86.28    10.200.86.2      0x80000004   705  0x22 0x62d   28
Summary  192.168.86.36    10.200.86.2      0x80000002  1563  0x22 0xb973  28
Summary  192.168.86.44    10.200.86.2      0x80000004   563  0x22 0x51d3  28
Summary  192.168.86.48    10.200.86.2      0x80000004   134  0x22 0x29f7  28
ASBRSum  10.200.86.9      10.200.86.2      0x80000001   390  0x22 0x9447  28
   OSPF AS SCOPE link state database
Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Extern   172.16.0.0       10.200.86.9      0x80000001   393  0x22 0x487b  36
Extern   172.16.1.0       10.200.86.9      0x80000001   393  0x22 0x3d85  36
Extern   172.16.2.0       10.200.86.9      0x80000001   393  0x22 0x328f  36 

Типы интерфейсов

  • 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) можно использовать для сокращения времени обнаружения аварии между роутерами.
  • Можно отложить процесс перерасчета SPF при изменении LSDB (дефолт - 200ms):
set protocols ospf spf-options delay ?
 <delay>              Time to wait before running an SPF (50..8000 milliseconds)
  • Metric - определяем желаемый интерфейс для прохождения пакета.
  • Overload - выставляет метрики на интерфейсах = 65535. Если после перерасчета SPF не для dest не нашлось обходных путей, роутер будет передавать транзитный трафик.
set protocols ospf overload