OSPF в Cisco

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Автор: Наташа Самойленко

На этой странице описывается настройка OSPF на маршрутизаторах Cisco.

Тут описываются не только те настройки, которые наиболее часто встречаются в реальной жизни, то и более редкие.

Кратко основные принципы работы OSPF и основные настройки можно просмотреть в презентации Настройка OSPF на маршрутизаторах Cisco


Содержание

[править] Описание работы протокола

Тут описаны кратко основные этапы настройки/работы протокола, а также команды настройки и просмотра, которые используются для каждого этапа (подробнее этапы работы на странице OSPF).

Описание этапа Команды настройки Команды просмотра
1 Включить OSPF на маршрутизаторе router ospf 1 sh ip protocol
2 Маршрутизатор выбирает Router ID router-id 1.1.1.1 sh ip protocol
3 Включить OSPF на интерфейсах network 10.0.1.0 0.0.0.0 area 0

(-if)# ip ospf 1 area 0

sh ip protocol

sh ip ospf int br

4 Обнаружение соседей с помощью Hello-пакетов - sh ip ospf interface
5 Установка отношений соседства - sh ip ospf neighbor
6 Синхронизация LSDB - sh ip ospf database
7 Вычисление SPF - sh ip ospf
8 Помещение лучших маршрутов в таблицу маршрутизации - sh ip ospf rib

sh ip route

[править] Базовые настройки

Пример топологии

[править] Выбор идентификатора маршрутизатора (Router ID)

Router ID можно назначить административно выполнив команду:

dyn3(config-router)#router-id <ip-address>

Если RID не был назначен административно, то он выбирается автоматически, в зависимости от настроек маршрутизатора, по таким правилам:

  1. Настроен один loopback-интерфейс и несколько интерфейсов с различными адресами:
    • Адрес присвоенный loopback-интерфейсу будет Router ID.
  2. Настроены несколько loopback-интерфейсов с несколькими IP-адресами в каждом:
    • Наибольший IP-адрес присвоенный любому из loopback-интерфейсов будет Router ID.
  3. Настроены несколько интерфейсов с IP-адресом на каждом:
    • Наибольший IP-адрес из всех активных интерфейсов будет Router ID.

Перезапустить процесс OSPF можно командой:

dyn3# clear ip ospf process

[править] Включение OSPF

Включить OSPF на интерфейсах в соответствующих сетях:

dyn3(config)# router ospf <process-id>
dyn3(config-router)# network <network> <wildcard mask> area <area-id>

Параметры команды network:

  • <network> — непосредственно присоединенная сеть к маршрутизатору.
  • <wildcard mask> — маска, которая указывает с помощью 0 какая часть из указанной сети должна совпадать, а с помощью 1 какая часть сети может быть произвольной.
  • <area-id> — идентификатор зоны, в которой будет работать интерфейс маршрутизатора. Интерфейс попадет в эту зону при условии, что его IP-адрес совпадает с сетью указанной с помощью network и wildcard mask. Для небольших сетей этот параметр можно указывать равным 0, но для больших сетей необходимо соблюдать иерархический дизайн зон в OSPF. Все обновления OSPF, которые передаются между различными зонами, должны проходить через зону 0.

Команда network делает следующее:

  • включает OSPF на интерфейсе, IP-адрес которого совпадает с указанной сетью и маской,
  • анонсирует сеть этого интерфейса через другие интерфейсы, на которых включен OSPF.

Note-icon.gif

В процессе OSPF могут быть настроены команды network с перекрывающимися сетями. Интерфейс будет назначен в зону команды network, которая соответствует максимально IP-адресу этого интерфейса. Например, если есть такие настройки OSPF:

network 192.168.1.1 0.0.0.0 area 1
network 192.168.1.0 0.0.0.255 area 2
network 192.168.0.0 0.0.255.255 area 3

То интерфейс с адресом 192.168.1.1 будет в зоне 1, интерфейс с адресом 192.168.1.3 — в зоне 2, а интерфейс с адресом 192.168.2.5 — в зоне 3.

На маршрутизаторах можно использовать другой вариант включения OSPF, непосредственно на интерфейсе.

Включение OSPF на интерфейсах:

dyn3(config-if)# ip ospf <process-id> area <area-id> 

Отличия включения OSPF с помощью команд network и ip ospf area проявляется при использовании secondary адресов:

  • При использовании команды network, анонсируются сети любых secondary адресов, которые попадают в сеть;
  • Команда ip ospf area по умолчанию анонсирует сети secondary адресов, но эта возможность может быть отключена.

Не анонсировать сети secondary адресов:

dyn3(config-if)# ip ospf <process-id> area <area-id> secondaries none

Note-icon.gif

При использовании unnumbered интерфейсов, отличается влияние команд ip ospf area и network. Например, есть lo0 с адресом 192.168.1.1 и unnumbered интерфейс s0/0.

Если настроить команду network 192.168.1.1 0.0.0.0 area 1, то и на lo0 и s0/0 будет включен OSPF и они будут в зоне 1.

Для того чтобы включить OSPF командой ip ospf area на обоих интерфейсах, необходимо дать команду и на lo0 и на s0/0.

[править] Настройка OSPF для сетей различных типов

[править] OSPF в сетях точка-точка (point-to-point)

Примеры сетей point-to-point:

  • serial-интерфейс, использующий на канальном уровне протоколы PPP или HDLC
  • point-to-point подынтерфейс, использующий на канальном уровне протокол Frame Relay
  • Туннельный интерфейс
  • Тип point-to-point может быть задан и для Ethernet, как правило, если это транзитный линк, который соединяет два устройства

Характеристики работы OSPF в сетях point-to-point:

  • По умолчанию Hello Interval равен 10 секундам, Router Dead Interval — 40 секундам
  • OSPF автоматически определяет этот тип интерфейса
  • Так как на интерфейсах point-to-point есть только два соседа, то нет необходимости выбирать DR и BDR
  • Пакеты OSPF отправляются на адрес 224.0.0.5

Обычно в качестве IP-адреса отправителя в пакетах OSPF указывается адрес исходящего интерфейса маршрутизатора. Однако возможно использование IP unnumbered интерфейсов с OSPF.

Если интерфейс unnumbered и OSPF на primary интерфейсе включается командой network, тогда процесс запускается на обоих интерфейсах. Если OSPF на primary интерфейсе включается через ip ospf [id] area [area], тогда процесс запускается только на нем.

Note-icon.gif

OSPF не проверяет сеть и маску сети при установке отношений соседства в point-to-point сетях. Поэтому можно использовать IP unnumbered интерфейсы.

[править] OSPF в широковещательных сетях со множественным доступом

Характеристики работы OSPF в широковещательных сетях:

  • Необходимо выбирать DR и BDR.
  • Все пакеты предназначенные DR и BDR отправляются на адрес 224.0.0.6.
  • Пакеты предназначенные другим маршрутизаторам отправляются на адрес 224.0.0.5.
  • Все соседние маршрутизаторы устанавливают полные отношения соседства (full adjacencies) только с DR и BDR.

[править] Выбор DR и BDR

Для того чтобы выбрать для сети DR и BDR, маршрутизаторы просматривают значение приоритета в hello-сообщениях и следуют таким условиям для того чтобы определить какой маршрутизатор выбрать:

  • Маршрутизатор с наивысшим значением приоритета становится DR.
  • Маршрутизатор со вторым наивысшим значением приоритета становится BDR.
  • По умолчанию приоритет интерфейса равен 1. Если у маршрутизаторов одинаковые приоритеты, то DR и BDR выбираются по значению Router ID. Маршрутизатор с наивысшим Router ID становится DR, а маршрутизатор со вторым наивысшим Router ID — BDR.
  • Маршрутизатор с приоритетом равным 0 не может стать DR или BDR. Маршрутизатор не ставший DR или BDR называется DROTHER.
  • Если в сети появляется новый маршрутизатор с более высоким приоритетом чем у текущего DR, то это не влияет на выбранных DR и BDR, переизбрание их не происходит. DR и BDR меняются только тогда, когда один из них вышел из строя. Если из строя вышел DR, то его заменяет BDR и происходят выборы нового BDR. Если из строя выходит BDR, то выбирается новый BDR.

Для того чтобы определить, что DR вышел из строя BDR использует Wait Timer. Если в течение этого таймера BDR не получает подтверждения того, что DR отправляет LSA, то он считает, что DR вышел из строя.

Присвоить интерфейсу приоритет:

dyn3(config-if)#ip ospf priority <1-255>

[править] OSPF в NBMA сетях

Общая таблица сравнения различных режимов работы OSPF:

Режим работы OSPF Отношения соседства Выбор DR/BDR Соответствие RFC HelloInterval Адреса подсетей
Broadcast Автоматически Выбирается Cisco 10 секунд Одна подсеть
Nonbroadcast Настраиваются Выбирается RFC 2328 30 секунд Одна подсеть
Point-to-multipoint Автоматически Не выбирается RFC 2328 30 секунд Одна подсеть
Point-to-multipoint nonbroadcast Настраиваются Не выбирается Cisco 30 секунд Одна подсеть
Point-to-point Автоматически Не выбирается Cisco 10 секунд Разные для каждого подынтерфейса

В сетях NBMA по умолчанию HelloInterval равен 30 секундам, RouterDeadInterval — 120 секундам.

Существует несколько режимов работы OSPF в NBMA сетях. Выбор режима работы влияет на то, как будет работать hello-протокол:

  • каким образом будут передаваться пакеты протокола по нешироковещательной сети,
  • будут ли выбираться DR и BDR,
  • как будут устанавливаться отношения соседства.

Настройка режима работы OSPF:

dyn3(config-if)#ip ospf network <broadcast | non-broadcast | point-to-multipoint [non-broadcast] | point-to-point >

По умолчанию на интерфейсах настроены такие режимы:

  • на подынтерфейсе point-to-point Frame Relay — режим point-to-point;
  • на подынтерфейсе point-to-multipoint Frame Relay — режим nonbroadcast;
  • на основном (физическом) интерфейсе Frame Relay — режим broadcast.

[править] Broadcast mode (Cisco extension)

Пример настройки интерфейса для работы в broadcast режиме:

dyn3(config)# interface serial 0/0
dyn3(config-if)#encapsulation frame-relay
dyn3(config-if)#ip ospf network broadcast

[править] Nonbroadcast mode (RFC 2328 compliant)

В Nonbroadcast режиме работы:

  • эмулируется работа OSPF в широковещательных сетях,
  • соседи должны быть настроены вручную,
  • hello отправляются unicast,
  • требуется выбор DR и BDR,
  • как правило, используется в сетях с топологией full mesh.
[править] Статическое задание соседей (команда neighbor)

Статическое задание соседа для установления отношения соседства:

dyn3(config-router)# neighbor <ip-address> [priority <number>] [poll-interval <number>] [cost <number>] [database-filter all]

Опции команды neighbor:

  • <ip-address> — IP-адрес соседнего маршрутизатора
  • priority <number> — приоритет соседа. По умолчанию 0. Диапазон значений от 0 до 255.
  • poll-interval <number> — интервал времени в течение которого NBMA-интерфейс ждет, прежде чем отправить hello-пакет соседу, даже в том случае, если сосед неактивен. Диапазон значений от 0 до 4294967295 секунд.
  • cost <number> — задает cost соседа. Диапазон значений от 1 до 65535. Соседи, для которых не указан cost используют значение назначенное на интерфейсе (командой ip ospf cost). Эта опция не используется для сетей NBMA.
  • database-filter all — фильтрует исходящие LSA, которые отправляются этому соседу.

Если в команде neighbor не задан приоритет соседа, то по умолчанию он будет равен 0. Но задание приоритета в команде neighbor не гарантирует, что такой приоритет и будет использоваться для соседа. Маршрутизатор будет сравнивать приоритет, который указан в команде neighbor, и приоритет, который пришел в hello-пакете. И выберет больший их двух приоритетов.

Если, например, на маршрутизаторе dyn1 задан приоритет соседа dyn3 равный 1, а от dyn3 приходит hello-пакет, в котором указан приоритет равный 3, то dyn1 будет использовать высший приоритет — 3. Эти изменения автоматически появятся в конфигурационном файле, где вместо строки neighbor 3.3.3.3 priority 1, появится строка neighbor 3.3.3.3 priority 3.

При статическом задании соседей, достаточно указать соседей только на одном маршрутизаторе.

[править] Point-to-multipoint mode (RFC 2328 compliant)

В режиме Point-to-multipoint:

  • сеть рассматривается как несколько соединений point-to-point,
  • point-to-multipoint virtual circuit должны поддерживать multicast и broadcast,
  • маршрутизаторы автоматически обнаруживают соседей,
  • не выбираются DR и BDR,
  • Type 2 LSA не отправляются соседям,
  • LSA дублируются. Маршрутизатор должен скопировать LSU каждому соседу,
  • как правило, используется в сетях с топологией частичный mesh (partial mesh).

[править] Point-to-multipoint Nonbroadcast mode (Cisco extension)

Если point-to-multipoint virtual circuit не поддерживают multicast и broadcast, то режим Point-to-multipoint не может использоваться, так как тогда нельзя автоматически обнаружить соседей. В таких случаях используется проприетарный режим Point-to-multipoint nonbroadcast.

В режиме Point-to-multipoint nonbroadcast:

  • сеть рассматривается как несколько соединений point-to-point,
  • соседи должны быть настроены вручную,
  • не выбираются DR и BDR.

[править] Point-to-point mode (Cisco extension)

В режиме Point-to-multipoint:

  • маршрутизаторы автоматически обнаруживают соседей,
  • не выбираются DR и BDR,
  • каждому подынтерфейсу выделяется своя подсеть,
  • как правило, используется в сетях с топологией частичный mesh (partial mesh).

[править] Изменения параметров протокола

[править] Изменение cost и reference bandwidth

Изменение значения cost на интерфейсе:

dyn3(config-if)# ip ospf cost <1 - 65535>

Для тех режимов работы OSPF, в которых соседи задаются с помощью команды neighbor, cost можно указать так:

dyn3(config-router)# neighbor <neighbor> cost <1 - 65535>

Изменение формулы подсчета cost, значение задается в Mbps и по умолчанию 100 Mbps:

dyn3(config-router)# auto-cost reference-bandwidth <ref-bw>

Note-icon.gif

Так как стоимость интерфейса высчитывается на основании пропускной способности интерфейса, один из вариантов поменять стоимость это изменить параметр bandwidth на соответствующем интерфейсе.

[править] Изменение hello и dead-интервалов

Изменение hello-интервала:

router(config-if)# ip ospf hello-interval <sec> 

Изменение dead-интервала:

router(config-if)# ip ospf dead-interval <sec> 

[править] Fast Hello

OSPF fast hello-пакеты — это hello-пакеты, которые отправляются с интервалом менее 1 секунды. Это достигается установкой dead-интервала равным 1 секунде (множитель равен 4 по умолчанию).

Более частая отправка hello-пакетов позволяет увеличить скорость сходимости сети и скорость обнаружения соседей.

Когда на интерфейсе настроена отправка hello-пакетов, с интервалом менее 1 секунды, то в hello-пакете, который отправляется с этого интерфейса, hello-интервал будет равен 0. Hello-интервал полученный в hello-пакетах, которые приходят на этот интерфейс, игнорируется. Dead-интервал должен быть одинаковым.

Настройка dead-интервала равным 1 и изменение множителя:

router(config-if)# ip ospf dead-interval minimal hello-multiplier 5 

Посмотреть установленные значения:

router# show ip ospf interface

[править] Отключение проверки значения MTU

Для того чтобы маршрутизаторы установили отношения соседства у них должны совпадать значения MTU на интерфейсах. Информация о значении MTU передается в DD-пакетах и сравнивается в начале обмена DD-пакетами.

Отключение проверки MTU:

router(config-if)# ip ospf mtu-ignore

[править] Изменение administrative distance

По умолчанию administrative distance для всех типов маршрутов OSPF 110. Однако можно изменить AD и настроить различные значения для разных типов маршрутов.

Изменение administrative distance:

dyn3(config-router)# distance ospf <[external <dist1>] [inter-area <dist2>] [intra-area <dist3>]>

[править] Изменение таймеров

[1]

dyn3(config-router)# timers lsa arrival
dyn3(config-router)# timers pacing flood
dyn3(config-router)# timers pacing lsa-group
dyn3(config-router)# timers pacing retransmission
dyn3(config-router)# timers throttle lsa all

[править] Вычисления SPF

dyn3(config-router)# timers throttle spf <spf-start> <spf-hold> <spf-max-wait> 

Параметры команды:

  • spf-start — Initial delay to schedule an SFP calculation after a change, in milliseconds. Range is from 1 to 600000.
  • spf-hold — Minimum hold time between two consecutive SPF calculations, in milliseconds. Range is from 1 to 600000.
  • spf-max-wait — Maximum wait time between two consecutive SPF calculations, in milliseconds. Range is 1 to 600000.

[править] Управление информацией о маршрутах

[править] Фильтрация маршрутов

Для OSPF фильтрация маршрутов отличается от остальных протоколов, так как OSPF не анонсирует маршруты в сети, а анонсирует информацию о топологии с помощью LSA. Фильтрация LSA будет означать, что у маршрутизаторов в зоне будут отличаться LSDB и это приведет к сбоям в маршрутизации трафика.

IOS поддерживает три варианта фильтрации, которые можно считать фильтрацией маршрутов для OSPF:

  • Фильтрация маршрутов с использованием команды distribute-list in (настройка distribute-list описана на странице Маршрутизация в Cisco). Маршрутизатор фильтрует маршруты, которые помещаются в таблицу маршрутизации, но LSDB остается неизменной.
  • ABR type 3 LSA filtering — предотвращение создания конкретных type 3 LSA на ABR.
  • Использование параметра area range no-advertise — вариант управления type 3 LSA, которые создаёт ABR.

[править] ABR type 3 LSA filtering

Настройка ABR type 3 LSA filtering:

router(config-router)# area <area-id> filter-list prefix <prefix-name> <in | out>

ABR type 3 LSA фильтрация применённая в различных направлениях:

  • in — фильтрация сетей, которые передаются в указанную зону,
  • out — фильтрация сетей, которые передаются из указанной зоны.

Посмотреть применённые фильтры на ABR:

router# show ip ospf

[править] Суммирование маршрутов

Суммарный маршрут для зоны (настраивается на ABR):

dyn3(config-router)# area <area-id> range <address> <mask> [advertise|not-advertise] [cost <cost>]

Параметры команды:

  • area-id — зона в которой находятся компоненты суммарного маршрута
  • not-advertise — позволяет фильтровать маршруты

Суммарный внешний маршрут (настраивается на ASBR):

dyn3(config-router)# summary-address <ip-address> <mask> [not-advertise]  [tag <tag>]

На маршрутизаторе, на котором настроено суммирование маршрутов, автоматически создается суммарный маршрут на интерфейс null0. Это позволяет отбрасывать пакеты, которые идут в не использующиеся сети суммарного маршрута. Иначе, эти пакеты были бы отправлены на default gateway, а это может привести к петле.

При необходимости, можно отключить автоматическую вставку суммарного маршрута на null0:

dyn(config-router)# no discard-route [internal] [external]

Суммарные маршруты, которые автоматически вставляются OSPF получают значение AD 110. С помощью команды discard-route можно поменять значение AD суммарного маршрута на null0:

dyn(config-router)# discard-route [internal] [AD] [external] [AD]

Note-icon.gif

Если трафик идёт в сети, которых нет на ABR, но они попадают в суммарный маршрут в Null 0, то ABR отбрасывает его и генерирует ICMP unreachable. Можно отключить отправку ICMP unreachable:

interface Null0
no ip unreachables

[править] Пример настройки

Настройка суммирования маршрутов:

router ospf 1
 area 0 range 192.0.0.0 255.255.0.0
 area 4 range 192.4.0.0 255.255.0.0
 network 192.0.1.0 0.0.0.255 area 0
 network 192.4.1.0 0.0.0.255 area 4

Суммарные маршруты в таблице маршрутизации маршрутизатора, на котором они настроены:

O    192.4.4.0/24 [110/11] via 192.4.1.11, 00:00:04, FastEthernet2/0
     192.0.0.0/32 is subnetted, 4 subnets
C       192.0.0.1 is directly connected, Loopback0
O       192.0.0.2 [110/2] via 192.0.2.2, 00:00:04, FastEthernet1/0
O       192.0.0.3 [110/2] via 192.0.1.3, 00:00:04, FastEthernet0/0
O       192.0.0.4 [110/2] via 192.0.1.4, 00:00:04, FastEthernet0/0
C    192.0.1.0/24 is directly connected, FastEthernet0/0
C    192.4.1.0/24 is directly connected, FastEthernet2/0
C    192.0.2.0/24 is directly connected, FastEthernet1/0
O    192.4.2.0/24 [110/11] via 192.4.1.9, 00:00:04, FastEthernet2/0
O    192.4.3.0/24 [110/11] via 192.4.1.10, 00:00:04, FastEthernet2/0
O    192.0.0.0/16 is a summary, 00:00:04, Null0
O IA 192.1.0.0/16 [110/2] via 192.0.1.3, 00:00:04, FastEthernet0/0
O IA 192.2.0.0/16 [110/2] via 192.0.1.4, 00:00:05, FastEthernet0/0
O IA 192.3.0.0/16 [110/21] via 192.0.1.12, 00:00:05, FastEthernet0/0
O    192.4.0.0/16 is a summary, 00:00:05, Null0

Значение AD у суммарного маршрута:

dyn1(config)#do sh ip route 192.4.0.0
Routing entry for 192.4.0.0/16, supernet
  Known via "ospf 1", distance 110, metric 1, type intra area
  Routing Descriptor Blocks:
  * directly connected, via Null0
      Route metric is 1, traffic share count is 1

После отключения автоматической вставки суммарного маршрута:

O    192.4.4.0/24 [110/11] via 192.4.1.11, 00:00:06, FastEthernet2/0
     192.0.0.0/32 is subnetted, 4 subnets
C       192.0.0.1 is directly connected, Loopback0
O       192.0.0.2 [110/2] via 192.0.2.2, 00:00:06, FastEthernet1/0
O       192.0.0.3 [110/2] via 192.0.1.3, 00:00:06, FastEthernet0/0
O       192.0.0.4 [110/2] via 192.0.1.4, 00:00:06, FastEthernet0/0
C    192.0.1.0/24 is directly connected, FastEthernet0/0
C    192.4.1.0/24 is directly connected, FastEthernet2/0
C    192.0.2.0/24 is directly connected, FastEthernet1/0
O    192.4.2.0/24 [110/11] via 192.4.1.9, 00:00:07, FastEthernet2/0
O    192.4.3.0/24 [110/11] via 192.4.1.10, 00:00:07, FastEthernet2/0
O IA 192.1.0.0/16 [110/2] via 192.0.1.3, 00:00:07, FastEthernet0/0
O IA 192.2.0.0/16 [110/2] via 192.0.1.4, 00:00:07, FastEthernet0/0
O IA 192.3.0.0/16 [110/21] via 192.0.1.12, 00:00:07, FastEthernet0/0

Включение вставки суммарного маршрута со значением AD 250:

dyn1(config-router)#discard-route internal 250

Проверка значения AD:

dyn1#sh ip route 192.4.0.0
Routing entry for 192.4.0.0/16, supernet
  Known via "ospf 1", distance 250, metric 1, type intra area
  Routing Descriptor Blocks:
  * directly connected, via Null0
      Route metric is 1, traffic share count is 1

[править] Маршрут по умолчанию

dyn3(config-router)# default-information originate [always] [metric <metric-value>]
[metric-type <type-value>] [route-map <map-name>]

Информация распространяется только если маршрут по умолчанию присутствует в таблице маршрутизации (это можно обойти с помощью параметра always).

Команда default-information originate говорит OSPF перераспределить любой маршрут по умолчанию найденный в таблице маршрутизации (статический или полученный по другому протоколу маршрутизации).

По умолчанию метрика маршрута будет 1, а тип маршрута — E2.

[править] Настройка разных тупиковых зон

Тупиковая зона (stub area):

router(config-router)# area 1 stub

Стоимость, которая будет присвоена маршруту по умолчанию, при анонсировании его в stub или NSSA зону (по умолчанию 1):

router(config-router)# area 1 default-cost 20

Totally stubby area (no-summary нужно настраивать только на ABR):

router(config-router)# area 1 stub no-summary

Not-so-stubby area (NSSA):

router(config-router)# area 1 nssa

Генерация маршрута по умолчанию на ABR для NSSA зоны (маршрут будет с типом N2):

router(config-router)# area 1 nssa default-information-originate

Totally not-so-stubby area (Totally NSSA) автоматически генерирует маршрут по умолчанию как межзональный:

router(config-router)# area 1 nssa no-summary

Если ABR, является ASBR и к нему присоединена NSSA зона, можно отключить генерацию Type 7 LSA в NSSA зону (type 5 LSA в зону 0 генерируется):

router(config-router)# area 1 nssa no-redistribution

На ABR, который соединяет NSSA зону с нулевой, происходит преобразование Type 7 LSA в Type 5 LSA. Когда ABR несколько, то фактически преобразованием занимается только один из них. Выбирается тот ABR, у которого больше Router ID.

Однако, это не значит, что данные могут передаваться только через одного из ABR. При преобразовании Type 7 LSA в Type 5, в LSA сохраняется информация о ASBR от которого был получен внешний маршрут, в виде Forwarding address. Остальные маршрутизаторы передают трафик по кратчайшему пути к ASBR, который указан в поле Forwarding address, независимо от того какой ABR выполнял преобразование.

Если на ABR настроена фильтрация маршрутов и отфильтрован маршрут к ASBR, который анонсировал внешний маршрут в NSSA зоне, то внешний маршрут будет в LSDB, но его не будет в таблице маршрутизации (так как нет пути к ASBR).

Можно настроить на ABR обнуление forwarding address. Тогда передачу трафика к внешним маршрутам NSSA зоны будет выполнять именно тот ABR, который выполняет трансляцию Type 7 LSA в Type 5 (так как если forwarding address равен нулю, то трафик передается на тот маршрутизатор, который анонсировал маршрут).

Обнуление forwarding address:

router(config-router)# area 1 nssa translate type7 suppress-fa

[править] Stub router

Stub router — функция, которая позволяет указать, что маршрутизатор, временно или постоянно, не будет транзитным маршрутизатором. Эта функциональность описана в RFC 3137.

router(config-router)# max-metric router-lsa on-startup <announce-time | wait-for-bgp>

Опции команды:

  • announce-time — время в секундах, в течение которого маршрутизатор будет анонсировать infinite метрику для всех транзитных маршрутов,
  • wait-for-bgp — маршрутизатор перестанет быть тупиковым, когда BGP просигнализирует о том, что convergence complete или по истечению 10 минут (по первому из этих событий).

[править] Перераспределение маршрутов

Перераспределение маршрутов (route redistribution) — обмен маршрутной информацией между двумя различными маршрутизирующими протоколами

[править] Перераспределение статических маршрутов

redistribute static

пример:

R2(config)# router ospf 100
 router-id 10.xx.243.3
 log-adjacency-changes
 redistribute static route-map POS
 network 10.xx.0.0 0.0.255.255 area 84
!
route-map POS permit 100
 match ip address 10
!
access-list 10 permit 192.168.84.0 0.0.0.255
!
ip route 192.168.84.0 255.255.255.0 Tunnel0

при этом статический маршрут 192.168.84.0 255.255.255.0 передается по OSPF маршрутизатору R3:

R3#sh ip route ospf
     10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O       10.xx.246.0/30 [110/11112] via 10.xx.243.3, 00:54:54, FastEthernet0/0
O       10.xx.238.0/24 [110/2] via 10.xx.243.3, 00:54:54, FastEthernet0/0
O E2 192.168.xx.0/24 [110/20] via 10.xx.243.3, 00:20:54, FastEthernet0/0

редистрибуция всех статических и директ-коннектед маршрутов, описанных в акцесс листе 53:

router ospf 84
 router-id 10.250.84.200
 log-adjacency-changes
 redistribute connected metric-type 1 subnets
 redistribute static metric-type 1 subnets
 network 10.84.0.0 0.0.255.255 area 84
 distribute-list 53 out
!
access-list 53 remark ***  redistribute static route ***
access-list 53 permit 10.250.84.200
access-list 53 permit 10.xx.0.0 0.0.255.255

просмотр переданных маршрутов:

asa-sm#  sh route dmz-out  | i 10.xx.243.3
O E1 10.xx.129.158 255.255.255.255 [110/31] via 10.xx.243.3, 0:15:09, dmz-out
O E1 10.xx.129.157 255.255.255.255 [110/31] via 10.xx.243.3, 0:15:09, dmz-out
O    10.xx.246.248 255.255.255.248 [110/11] via 10.xx.243.3, 0:15:09, dmz-out
           [110/11121] via 10.84.243.3, 0:15:09, dmz-out
O    10.xx.253.96 255.255.255.248 [110/11] via 10.xx.243.3, 0:15:09, dmz-out
O E1 10.xx.129.2 255.255.255.255 [110/31] via 10.xx.243.3, 0:07:08, dmz-out
O E1 10.xx.249.120 255.255.255.252 [110/30] via 10.xx.243.3, 0:03:33, dmz-out
O E1 10.xx.236.64 255.255.255.224 [110/30] via 10.xx.243.3, 0:03:13, dmz-out
O E1 10.xx.252.80 255.255.255.240 [110/31] via 10.xx.243.3, 0:05:59, dmz-out

[править] База данных состояния каналов (LSDB)

[править] Просмотр информации OSPF

[править] Таймеры, статистика, общая информация

Параметры, статистика протоколов маршрутизации запущенных на маршрутизаторе:

dyn3# show ip protocols

Информация о Router ID, таймерах и статистика:

dyn3# show ip ospf

Просмотр RIB OSPF (команда доступна с версии 12.4(15)T):

show ip ospf <process-id> rib

[править] Дополнительная информация о маршрутах OSPF

show ip ospf rib <>

[править] Таблица маршрутизации

Маршруты полученные по протоколу OSPF:

dyn3# show ip route ospf 

Обозначения маршрутов OSPF:

  • O — OSPF intra-area (router LSA) и network LSA — сети в зоне маршрутизатора.
  • O IA — OSPF interarea (summary LSA) — сети вне зоны маршрутизатора, но в той же автономной системе.
  • O E1 — Type 1 external routes — сети вне автономной системы маршрутизатора. К метрике внешнего маршрута добавляется cost всех линков по которым передавался маршрут. Используется когда несколько маршрутизаторов анонсируют внешнюю сеть.
  • O E2 — Type 2 external routes (по умолчанию) — сети вне автономной системы маршрутизатора. Используется только cost внешнего маршрута.
  • O N1 — Type 1 NSSA external routes
  • O N2 — Type 2 NSSA external routes

[править] Информация об интерфейсах

Информация о настройках OSPF на интерфейсах:

dyn3# show ip ospf interface

Краткий вывод информации об интерфейсах:

dyn2#sh ip ospf interface brief 
Interface    PID   Area            IP Address/Mask    Cost  State Nbrs F/C
Lo3          1     0               199.2.2.2/24       1     LOOP  0/0
Fa1/0        1     0               192.168.1.5/30     1     BDR   1/1
Fa0/0        1     0               192.168.1.2/30     1     BDR   1/1

[править] База данных состояния каналов

База данных состояния каналов (link state database):

dyn3# show ip ospf database 

Дополнительные параметры команды show ip ospf database позволяют выводить информацию о конкретных LSA:

  • adv-router Advertising Router link states
  • asbr-summary ASBR summary link states
  • database-summary Summary of database
  • external External link states
  • network Network link states
  • nssa-external NSSA External link states
  • opaque-area Opaque Area link states
  • opaque-as Opaque AS link states
  • opaque-link Opaque Link-Local link states
  • router Router link states
  • self-originate Self-originated link states
  • summary Network summary link states

Note-icon.gif

При просмотре LSDB с дополнительными параметрами, вывод некоторых полей LSA более очевиден. Например, дополнительно указано, что в конкретном LSA используется в роли Link ID.

dyn3# show ip ospf database database-summary 

[править] Пример

Настройки маршрутизатора dyn2:

dyn2# sh ip int br
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            192.168.1.2     YES NVRAM  up                    up      
FastEthernet1/0            192.168.1.5     YES NVRAM  up                    up      
Loopback0                  197.1.2.1       YES NVRAM  up                    up      
Loopback1                  197.1.3.1       YES NVRAM  up                    up      
Loopback3                  199.2.2.2       YES manual up                    up      

dyn2# sh run | sec router ospf
router ospf 1
 log-adjacency-changes
 network 192.168.0.0 0.0.255.255 area 0
 network 199.0.0.0 0.255.255.255 area 0

База данных состояния каналов:

dyn2# show ip ospf database 

            OSPF Router with ID (199.2.2.2) (Process ID 1)

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
199.1.1.1       199.1.1.1       1692        0x80000288 0x00A7A3 4
199.2.2.2       199.2.2.2       1496        0x80000287 0x000B5D 3
199.3.3.3       199.3.3.3       1122        0x80000288 0x00F15B 3
199.4.4.4       199.4.4.4       399         0x80000287 0x0082A1 4

                Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.1.1     199.1.1.1       1692        0x80000286 0x0010D6
192.168.1.6     199.3.3.3       1122        0x80000286 0x00E9EB
192.168.1.10    199.4.4.4       399         0x80000286 0x00EED9

LSA 1, которые анонсирует локальный маршрутизатор:

dyn2# show ip ospf database router self-originate 

            OSPF Router with ID (199.2.2.2) (Process ID 1)

                Router Link States (Area 0)

  LS age: 951
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 199.2.2.2
  Advertising Router: 199.2.2.2
  LS Seq Number: 80000287
  Checksum: 0xB5D
  Length: 60
  Number of Links: 3

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 199.2.2.2
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 192.168.1.6
     (Link Data) Router Interface address: 192.168.1.5
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 192.168.1.1
     (Link Data) Router Interface address: 192.168.1.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

Все LSA type 2 в LSDB:

dyn2#show ip ospf database network 

            OSPF Router with ID (199.2.2.2) (Process ID 1)

                Net Link States (Area 0)

  Routing Bit Set on this LSA
  LS age: 1866
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 192.168.1.1 (address of Designated Router)
  Advertising Router: 199.1.1.1
  LS Seq Number: 80000286
  Checksum: 0x10D6
  Length: 32
  Network Mask: /30
        Attached Router: 199.1.1.1
        Attached Router: 199.2.2.2

  Routing Bit Set on this LSA
  LS age: 1295
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 192.168.1.6 (address of Designated Router)
  Advertising Router: 199.3.3.3
  LS Seq Number: 80000286
  Checksum: 0xE9EB
  Length: 32
  Network Mask: /30
        Attached Router: 199.3.3.3
        Attached Router: 199.2.2.2

  Routing Bit Set on this LSA
  LS age: 590
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 192.168.1.10 (address of Designated Router)
  Advertising Router: 199.4.4.4
  LS Seq Number: 80000286
  Checksum: 0xEED9
  Length: 32
  Network Mask: /30
        Attached Router: 199.4.4.4
        Attached Router: 199.3.3.3

[править] Информация о ABR

Информация о ABR (например, стоимость пути к ABR):

dyn3# show ip ospf border-routers

[править] Соседи, установленные отношения соседства

Информация о соседях:

dyn3# show ip ospf neighbor

Более подробная информация об изменениях отношений соседства (каждое изменение состояния):

router(config-router)# log-adjacency-changes detail

[править] SPF

Информация о том как часто маршрутизатор запускал алгоритм SPF:

dyn2# sh ip ospf statistics

OSPF process ID 1
------------------------------------------

  Area 0: SPF algorithm executed 7 times

  Summary OSPF SPF statistic

  SPF calculation time
Delta T   Intra D-Intra Summ    D-Summ  Ext     D-Ext   Total   Reason
2w2d   8        0       0       0       0       0       8       R, N, X
2w2d   8        0       0       0       0       0       8       R,
2w1d   4        4       0       0       0       0       8       R, N,
2w1d   0        0       0       0       0       0       0       R,
2w1d   4        0       0       0       0       0       4       R, N,
2w1d   4        0       0       0       0       0       4       R, N,
2w1d   8        0       0       0       0       0       8       R, N,
1d15h   8       0       0       0       0       0       16      R, N, SN, SA, X
1d15h   0       0       0       0       0       0       0       R, N, SN, SA, X
1d15h   0       0       0       0       0       0       0       R, N, SN, SA, X

Причины запуска алгоритма:

  • N — возникли изменения в network LSA (type 2).
  • R — возникли изменения в router LSA (type 1).
  • SA — возникли изменения в Summary autonomous system boundary router (ASBR) (SA) LSA.
  • SN — возникли изменения в Summary Network (SN) LSA.
  • X — возникли изменения в External Type-7 (X7) LSA.

[править] Virtual link

show ip ospf virtual-links

[править] Дополнительные возможности

[править] Virtual link

Virtual link — специальное соединение, которое позволяет соединять, например, разорванную на части зону или присоединить зону к магистральной, через другую зону. Настраивается между двумя ABR.

Для того, чтобы маршрутизаторы могли передать пакеты OSPF через virtual link, они инкапсулируют их в IP-пакеты. Этот механизм используется как временное решение или как backup на случай выхода из строя основных соединений.

Некоторые характеристики virtual link:

  • Работа hello-протокола в virtual link не отличается от его работы при обычных соединениях.
  • Через virtual link маршрутизаторы могут установить отношения соседства также как и в случае, если они непосредственно присоединены друг к другу.
  • В LSA, которые отправляются через virtual link, устанавливается опция DoNotAge (DNA).
  • Virtual link находится в area 0.

Настройка virtual link:

dyn3(config-router)# area <area-id> virtual-link <router-id> 

Параметры команды virtual link:

  • <area-id> — транзитная зона, через которую идет virtual link (транзитная зона не может быть тупиковой),
  • <router-id> — Router ID соседа, с которым устанавливается соединение с помощью virtual link.

Просмотр информации о virtual link:

dyn3# show ip ospf virtual-links

[править] Аутентификация

OSPF поддерживает три типа аутентификации:

  • type 0 (none)
  • type 1 (clear text)
  • type 2 (MD5)

Note-icon.gif

Фактически OSPF позволяет указать только тип аутентификации, без указания пароля. При такой ситуации отношения соседства установятся (если у соседей указан одинаковый тип аутентификации), но сама аутентификация не будет выполняться.

Тип аутентификации может быть настроен на интерфейсе или для всей зоны. А сам пароль только на интерфейсах.

Note-icon.gif

Тип аутентификации может быть настроен на интерфейсе и для всей зоны. Настройки на интерфейсе являются более приоритетными.

[править] Настройка типа аутентификации для зоны

Настройка аутентификации type 1 для зоны 1 (пароль надо задавать на интерфейсах):

router(config-router)# area 1 authentication

Настройка аутентификации type 2 для зоны 0 (пароль надо задавать на интерфейсах):

router(config-router)# area 0 authentication message-digest

[править] Настройка типа аутентификации и пароля на интерфейсах

Настройка аутентификации type 0:

router(config-if)# ip ospf authentication null

Настройка аутентификации type 1:

router(config-if)# ip ospf authentication 
router(config-if)# ip ospf authentication-key <key-value>

Настройка аутентификации type 2:

router(config-if)# ip ospf authentication message-digest
router(config-if)# ip ospf message-digest-key <key-number> md5 <key-value>

[править] Аутентификация для virtual link

Аутентификация type 1 (plaintext) для virtual link:

router(config-router)# area <id> virtual-link <router-id> authentication-key <key-value>

Аутентификация type 2 (MD5) для virtual link:

router(config-router)# area <id> virtual-link <router-id> message-digest-key <key-number> md5 <key-value>

[править] Защита LSDB от перегрузки

dyn3(config-router)# max-lsa <maximum-number> [<threshold-percentage>] 
[warning-only] [ignore-time <minutes>]
[ignore-count <count-number>] [reset-time <minutes>]

Параметры команды max-lsa:

  • max-lsa <maximum-number> — максимальное количество LSA, которое маршрутизатор может хранить в LSDB (сгенерированных не локальным маршрутизатором);
  • <threshold-percentage> — процент от максимального количества LSA при достижении которого будет сгенерировано log-сообщение. По умолчанию 75%;
  • warning-only — указывает, что при достижении максимума LSA будет только сгенерировано сообщение. Выключено по умолчанию;
  • ignore-time <minutes> — время, в течение которого будут игнорироваться LSA полученные от соседей после достижения максимума LSA. По умолчанию 5 минут;
  • ignore-count <count-number> — количество раз, которое OSPF процесс может попадать в состояние игнорирования LSA. Если количество будет превышено, то процесс OSPF надо будет поднимать вручную. По умолчанию 5 раз;
  • reset-time <minutes> — время, после которого счетчик включения состояния игнорирования собьется в ноль. В течение этого диапазона времени количество LSA не должно превышать максимума. По умолчанию 10 минут.

Состояние игнорирования — наступает если включена защита от перегрузки. В этом состоянии процесс OSPF разрывает все отношения соседства и очищает свою базу данных.

[править] Graceful restart (nonstop forwarding)

Graceful restart позволяет маршрутизатору, при перезагрузке процесса OSPF, передавать трафик и избегать появления петель в сети.

Описан в RFC 3623. В RFC этот функционал называется nonstop forwarding (NSF).

Cisco реализовала функционал аналогичный RFC, до появления стандартной процедуры graceful restart, поэтому маршрутизаторы Cisco поддерживают два варианта выполнения это процедуры.

Для того чтобы трафик передавался без петель во время перезагрузки процесса OSPF, должны выполняться такие условия:

  • Маршрутизатор, на котором выполняется NSF, должен оповестить соседей, что будет выполняться перезагрузка с помощью отправки "grace LSA";
  • База данных LSA остается неизменной во время перезагрузки;
  • Все соседи маршрутизатора поддерживают NSF и соответствующим образом настроены;
  • Перезагрузка выполняется в пределах "grace period";
  • Во время перезагрузки маршрутизаторы, с которыми установлены отношения соседства, должны работать в режиме "helper".

По умолчанию оба варианта graceful restart включены (начиная с IOS 12.4(6)T). Отключить graceful restart:

router(config-router)# nsf [cisco | ietf] helper disable

[править] OSPF LSA Group Pacing

[2]

dyn3(config-router)# timers pacing lsa-group 

[править] LSA flooding

[править] Блокирование LSA flooding

По умолчанию маршрутизатор анонсирует LSA через все интерфейсы. Можно указать через какие интерфейсы или какому соседу не анонсировать LSA.

Для broadcast, nonbroadcast, point-to-point сетей:

dyn1(config-if)# ip ospf database-filter all out

Для point-to-multipoint сетей:

dyn1(config-router)# neighbor <ip-address> database-filter all out

[править] Уменьшение LSA flooding

dyn1(config-if)# ip ospf flood-reduction

[править] Разное

[править] Indication LSA

Если в сети где работает OSPF есть не только маршрутизаторы Cisco, но и маршрутизаторы других производителей, которые не поддерживают demand circuit, то в LSDB может появится Indication LSA.

При использовании DC не отправляются периодические обновления LSA, поэтому в LSA устанавливается бит Do Not Age (DNA). При установке отношений соседства маршрутизаторы договариваются между собой о поддержке DC.

Indication LSA это специальный тип LSA, который отправляет пограничный маршрутизатор (ABR) для того чтобы оповестить маршрутизаторы в своей зоне о том, что в сети есть маршрутизаторы, которые не поддерживают DC (demand circuit).

Маршрутизатор dyn4 это ABR и он сообщает маршрутизаторам в своей зоне о том, что в сети есть маршрутизаторы, которые не поддерживают DC. Сообщает он это с помощью специального Indication LSA.

Indication LSA это LSA type 4 в котором Link-state ID это ABR, а не ASBR. Даже если в сети не используется перераспределение маршрутов в OSPF и нет ASBR, это LSA будет в LSDB.

LSDB на dyn4:

dyn4#show ip ospf database
            OSPF Router with ID (192.0.0.4) (Process ID 1)
.....
                Summary ASB Link States (Area 2)
Link ID         ADV Router      Age         Seq#       Checksum
192.0.0.4       192.0.0.4       1263        0x80000005 0x00844A

Подробная информация о LSA:

dyn4#show ip ospf database asbr-summary 
            OSPF Router with ID (192.0.0.4) (Process ID 1)
                Summary ASB Link States (Area 2)

  LS age: 1323
  Options: (No TOS-capability, No DC, Upward)
  LS Type: Summary Links(AS Boundary Router)
  Link State ID: 192.0.0.4 (AS Boundary Router address)
  Advertising Router: 192.0.0.4
  LS Seq Number: 80000005
  Checksum: 0x844A
  Length: 28
  Network Mask: /0
        TOS: 0  Metric: 16777215 

Маршрутизаторы внутри зоны, за dyn4 получают это LSA:

dyn7#sh ip ospf da asbr-summary 
            OSPF Router with ID (192.2.0.7) (Process ID 1)
                Summary ASB Link States (Area 2)

  Adv Router is not-reachable
  LS age: 1441
  Options: (No TOS-capability, No DC, Upward)
  LS Type: Summary Links(AS Boundary Router)
  Link State ID: 192.0.0.4 (AS Boundary Router address)
  Advertising Router: 192.0.0.4
  LS Seq Number: 80000005
  Checksum: 0x844A
  Length: 28
  Network Mask: /0
        TOS: 0  Metric: 16777215 

В Indication LSA метрика устанавливается в максимальное значение: 16777215.

Подробнее об Indication LSA [3].

[править] Дополнительная информация

Источник — «http://xgu.ru/wiki/OSPF_%D0%B2_Cisco»