OSPF в Cisco

Опубликовано admin в Чт, 09/07/2009 - 22:39

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

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

Содержание


Базовые настройки


Выбор идентификатора маршрутизатора (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>

Включение 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


Просмотр информации OSPF


Таймеры, статистика, общая информация

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

dyn3# show ip protocols

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

dyn3# show ip ospf

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

dyn3# show ip ospf interface


Таблица маршрутизации

Маршруты полученные по протоколу 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


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

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

dyn3# show ip ospf database

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

dyn3# show ip ospf border-routers


Соседи, установленные отношения соседства

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

dyn3# show ip ospf neighbor

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

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


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

Общая таблица сравнения различных режимов работы 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 секунд Разные для каждого подынтерфейса


OSPF в сетях точка-точка (point-to-point)

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

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

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

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

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

Разобраться с использованием IP unnumbered интерфейсов с OSPF

Разобраться с использованием IP unnumbered интерфейсов с OSPF


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 сетях

В сетях 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 — режим nonbroadcast.


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 в широковещательных сетях,
  • соседи должны быть настроены вручную,
  • требуется выбор 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>


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


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


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


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

Для 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, а это может привести к петле.


Маршрут по умолчанию

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

Стоимость, которая будет присвоена default summary route при анонсировании его в stub или NSSA зону:

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

Totally not-so-stubby area (Totally NSSA):

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


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.84.243.3
 log-adjacency-changes
 redistribute static route-map POSes-LABIRINT
 network 10.84.0.0 0.0.255.255 area 84
!
route-map POSes-LABIRINT 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.84.246.0/30 [110/11112] via 10.84.243.3, 00:54:54, FastEthernet0/0
O       10.84.238.0/24 [110/2] via 10.84.243.3, 00:54:54, FastEthernet0/0
O E2 192.168.84.0/24 [110/20] via 10.84.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.84.0.0 0.0.255.255

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

asa-sm#  sh route dmz-out  | i 10.84.243.3
O E1 10.84.129.158 255.255.255.255 [110/31] via 10.84.243.3, 0:15:09, dmz-out
O E1 10.84.129.157 255.255.255.255 [110/31] via 10.84.243.3, 0:15:09, dmz-out
O    10.84.246.248 255.255.255.248 [110/11] via 10.84.243.3, 0:15:09, dmz-out
           [110/11121] via 10.84.243.3, 0:15:09, dmz-out
O    10.84.253.96 255.255.255.248 [110/11] via 10.84.243.3, 0:15:09, dmz-out
O E1 10.84.129.2 255.255.255.255 [110/31] via 10.84.243.3, 0:07:08, dmz-out
O E1 10.84.249.120 255.255.255.252 [110/30] via 10.84.243.3, 0:03:33, dmz-out
O E1 10.84.236.64 255.255.255.224 [110/30] via 10.84.243.3, 0:03:13, dmz-out
O E1 10.84.252.80 255.255.255.240 [110/31] via 10.84.243.3, 0:05:59, dmz-out


Дополнительные возможности


Virtual link

Virtual link — специальное соединение, которое позволяет соединять, например, разорванную на части зону или присоединить зону к магистральной, через другую зону.
Для того, чтобы маршрутизаторы могли передать пакеты 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


Защита 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 остается неизменной во время перезагрузки;
  • Все соседи маршрутизатора поддерживают NFS и соответствующим образом настроены;
  • Перезагрузка выполняется в пределах "grace period";
  • Во время перезагрузки маршрутизаторы, с которыми установлены отношения соседства, должны работать в режиме "helper".

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

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


Аутентификация

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

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

Настройка аутентификации 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>





Статья взята с http://xgu.ru (_http://xgu.ru)







( categories: )