15. OSPF в Cisco IOS

Особенности OSPF в Cisco IOS

  • Механизм выбора Router-ID

    • Назначенный вручную идентификатор

    • Самый большой адрес на loopback-интерфейсах в этом экземпляре OSPF

    • Самый большой адрес на loopback-интерфейсах на устройстве

    • Самый большой адрес на всех интерфейсах на устройстве

  • Стоимость интерфейса вычисляется по формуле:

    • Interface Cost = Reference Bandwidth / Interface Bandwidth

    • Reference Bandwidth по-умолчанию равна 100 Мб/с

  • По умолчанию IOS работает в режиме совместимости с RFC 1583

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

  • Два способа включения OSPFv2:

    • Отобрать интерфейсы, Primary IP которых попадают под условие ACL

    • Указать интерфейс в явном виде

Router(config)#router ospf 1
Router(config-router)#router-id 0.0.0.1
Router(config-router)#network 192.168.0.0 0.0.255.255 area 0
  • На интерфейсах начинается отправка Hello-пакетов и анонс сетей

    • Hello только с primary address, соседство не установится с secondary address

    • В анонс включаются все подключенные сети, включая secondary и static

Стоимость интерфейсов

  • Можно задать стоимость интерфейса в явном виде

  • Либо изменить референсную полосу для автоматического подсчета стоимости для всех интерфейсов, где она не задано явно

Passive Interface

  • OSPF анонсирует connected-сети со включенных в OSPF интерфейсов

    • Приходится включать на клиентских интерфейсах, где hello нежелательны

  • Выход - пассивное участие OSPF на интерфейсе

    • Сети с интерфейса по-прежнему анонсируются

    • Hello-пакеты не отсылаются и не принимаются

Типы канальных сред в OSPF

  • Cisco поддерживает канальные среды следующих типов:

  • Совпадение типа среды не проверяется при установлении соседства

    • Должны совпасть таймеры

    • Хорошо бы, чтобы совпали режимы выбора DR

Выбор типа канальной среды

  • IOS автоматически назначает тип среды на интерфейс:

Тип

Среда

Broadcast

Ethernet, Token Ring, FDDI

Nonbroadcast

Frame Relay, X.25, ATM

Point-to-Point

Tunnel, HDLC, PPP, FR P2P sub, ATM P2p sub

Point-to-Multipoint

Назначается вручную

Point-to-Multipoint nonbroadcast

Назначается вручную

Loopback

Нельзя назначить вручную, можно сменить тип на P2P

Конфигурация интерфейса

  • Назначение приоритета при выборах DR/BDR (0 - отказ от участия в выборах)

  • Установка Hello Interval (Deal Interval устанавливается автоматически в 4 раза больше)

  • Установка Deal Interval

  • Установка субсекундного Hello Interval и секундного Dead Interval

Алгоритм диагностики OSPF

  • Проверить работоспособность и настройки процесса OSPF

    • show ip protocols

    • show ip ospf

  • Проверить входящие интерфейсы в OSPF

    • show ip ospf interfaces

  • Проверить установленные соседства

    • show ip ospf neighbor

  • Проверить таблицу маршрутов OSPF и таблицу маршрутизации

    • show ip ospf route

    • show ip route ospf

Базовая диагностика OSPF

  • Убедится, что OSPF включен на интерфейсе

  • Убедится, что установлено соседство

  • Убедится, что установлены маршруты

  • Детальная диагностика интерфейса

  • Детальная информация о соседе

  • Детальная информация о процессе OSPF

  • Посмотреть RIB внутри процесса OSPF (show ip ospf route покажет еще больше инфо)

  • Помотреть траффик процесса OSPF

Диагностика LSA, LSDB

  • Просмотр таблицы LSDB

  • Просмотр отдельной Router LSA в таблице LSDB

  • Просмотр отдельной Network LSA в таблице LSDB

  • Просмотр отделньой Summary LSA в таблице LSDB

  • Просмотр отдельной External LSA в таблице LSDB

  • Просмотр отдельной LSA 7 в таблице LSDB

  • Просмотр отдельной ASBR-Summary LSA в таблице LSDB

Дебаггинг

  • Hello Protocol

  • Обмен пакетами

  • Построение LSDB и пересчет SPF

Stub и Totally Stub регионы

  • Команда area <#> stub помечает регион как тупиковый

    • Ключ no-summary указывает ABR суммировать и inter-area маршруты

NSSA и Totally NSSA регионы

  • Команда area <#> nssa помечает регион как not-so-stubby area

    • no-summary указывает ABR суммировать и inter-area маршруты

    • translate type-7 always указывает транслировать LSA7>5 даже с меньшим RID

    • translate type-7 supress-fa скрывает Forwarding Address в LSA5

Инъекция маршрута по умолчанию

  • OSPF импортирует маршрут по умолчанию, создавая LSA5/7

  • Команда default-information originate импортирует 0.0.0.0 из RIB

    • Ключ always импортирует маршрут безусловно (не работает в NSSA)

  • В NSSA на ABR требуется волшебный пендель (в TNSSA излишне)

Редистрибуция

  • Процесс импорта внешних маршрутов из RIB в LSDB (как LSA5/LSA7)

    • Connected

    • Static

    • Динамические

    • Глобальная таблица или VRF

  • По умолчанию LSA получают метрику 20, типа 2

    • Можно указать тип, значение метрики или метку явно или через route-map

  • Без ключа subnets импортируются только классовые сети

Route-map при редистрибуции в OSPF

  • С помощью Route-map можно отобрать префиксы для редистрибуции или назначить специальные метрики

Destribute-list в OSPF

  • OSPF оперирует LSDB

  • Distribute-list <#> in работает только для экспорта маршрутов в RIB

    • При указании интерфейса идет проверка маршрута на интерфейс next-hop

  • Distribute-list <#> out работает только для контроля редистрибуции

Агрегация inter-area маршрутов OSPF

  • Отсылается только агрегатный маршрут, но не его компоненты

    • Хотя бы один компонент должен быть в RIB

    • Метрика агрегата по-умолчанию - наименьшая метрика его компонентов

    • В RIB создается виртуальный intra-area discard route на интерфейс Null0

  • Указывается регион источника

    • area X range Y - "сети диапазона Y снаружи региона X видны как одна сеть Y"

Агрегация внешних маршрутов OSPF

  • Отсылается только агрегатный маршрут, но не его компоненты

    • Хотя бы один компонент должен быть в RIB

    • Метрика агрегата задается в default-metric или distribute-list route-map out

    • В RIB создается виртуальный discard route на интерфейс Null0

  • Команда summary-address <IP> <Mask>

    • Работает только на ASBR: выпущенная LSA5 распространяется на все роутеры

  • Используются для связи ABR через non-backbone (и non-stub) регион

    • Через псевдотуннельный интерфейс синхронизируется LSDB area 0

  • Команда area <#> virtual-link <RID> указывает другой конец туннеля

    • Номер региона, к которому принадлежат оба ABR

    • Router ID другого ABR, доступный в указанном регионе

Prefix Suppression

  • Prefix Suppression скрывает префиксы сетей на транзитных линках

    • На point-to-point линках транзитный префикс не анонсируется как stub в LSA1

    • На линках с DR в LSA2 анонсируется маска /32, такие сети не попадают в RIB

Манипуляции с AD

  • Можно задать AD префиксам OSPF в RIB

  • По умолчанию:

    • 110 для intra-area и inter-area маршрутов

    • 170 для внешних (external) маршрутов

  • Задание AD для отдельных маршрутов

    • distance <AD> <GatewayIP> <GatewayWildcardMask> <ACL>

Аутентификация по паролю

  • Во все исходящие сообщения добавляется пароль в открытом виде

    • Плохая идея во всех случаях, кроме тестирования

  • Требует предварительное указание пароля на каждом интерфейсе

  • Отдельно требует включения

    • либо на уровне отдельного интерфейса

  • На всех интерфейсах региона

Аутентификация по хэшу MD5

  • Исходящие пакеты подписываются хэшем от содержимого и ключа

  • Требует задать нумерованные ключи на каждом интерфейсе

  • Отдельно требует включения либо на интерфейсе

  • Либо на интерфейсах всего региона

  • Сообщения подписываются ключом с наибольшим номером

    • Входящие пакеты проверяются ключом с указанным в них номером

    • Key Rolleover: если хотя бы один сосед использует другой ключ, сообщения дублируются со всеми остальными сконфигурированными ключами

Аутентификация по ключевому комплекту

  • Исходящие пакеты подписываются хэшем от содержимого ключа

    • требует создания ключевого комплекта

  • Сообщения подписываются ключом с наибольшим номером

    • Входящие пакеты проверяются ключом с указанным в них номером

    • Key Rollover не нужен, используется ограничение срока действия ключа

Настройка OSPF в DMVPN фаза 2

  • Мультикаст в DMVPN между споками не передается

    • Автоматическое соседство возможно только между хабом и споком

    • При наличии LSA2 роль DR необходимо назначить хабу, BDR запретить

  • Возможны и другие схемы настройки

Статическое указание соседей

  • Команда neighbor <IP> добавляет статического соседа в таблицу

    • Требует тип среды nonbroadcast или point-to-multipoint nonbroadcast

      • Среды без поддержки мультикаста или его эмуляции

    • Достаточно указать с одной стороны соседства (логичнее с обоих)

    • Параметр priority можно указать порядок установления соседств

      • Не путать с приоритетом выбора DR/BDR, это не совсем тоже самое

Включение режима RFC 1583

  • IOS по умолчанию работает в режиме совместимости с RFC 1853

    • Метрика агрегатного маршрута - минимальная метрика его компонентов

    • Маршрут до ASBR считается только на основании суммы стоимостей

    • Может вызывать петли при работе в среде с устройствами RFC 2328

  • Можно включить работы в режиме RFC 2328

    • Метрика агрегатного маршрута - максимальная метрика его компонентов

    • Предпочитаются intra-area маршруты до ASBR

Last updated