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.

[править]