16. OSPFv3

Особенности OSPFv3

  • Стандартный открытый протокол

    • RFC 2740, RFC 5340 и разные дополнения

  • Использует тот же алгоритм для работы с топологией, что и OSPFv2

    • Топологическая и адресная информация разнесены в разные LSA

    • Использует IPv6 для обмена сообщениями

      • Работает с link-local адресами

      • All SPF Routers - FF02::5

      • All DR Routers - FF02::6

      • Cоздавался для синхронизации маршрутов IPv6, позже адаптирован для маршрутов IPv4

      • Для аутентификации используется встроенный в IPv6 протокол AH

    • Использует те же типы пакетов: Hello, DBD, LSR, LSU, LSAck

Формат пакета

  • Version = 3

  • Type

    • 1 - Hello

    • 2 - DBD

    • 3 - LS Request

    • 4 - LS Update

    • 5 - LS Acknowledgment

  • Router ID - уникальный в AS ID (32 бита)

  • Checksum - Internet Checksum

  • Нет полей для аутентификации

  • Reserved = 0

Hello

  • Изменения по сравнению с OSPFv2:

    • добавлен Interface ID (топологическая информация)

    • Убрана адресная информация (маска сети и IP-адрес из заголовка IP-пакета)

    • Поле Options увеличено до 24 бит

    • Поле Dead Interval уменьшено до 16 бит

DBD

  • Изменения по сравнению с OSPFv2

    • Поле Options увеличено до 24 бит

Заголовок LSA

  • Изменения по сравнению с OSPFv2

    • Убрано поле Options (переехало в LSA)

    • поле LSA Type увеличено до 16 бит

Типы LSA в OSPFv3

  • Базовые типы LSA OSPFv3

    • 2001 - Router LSA

    • 2002 - Network LSA

    • 2003 - Inter-Area-Prefix LSA

    • 2004 - Inter-Area-Router LSA

    • 4005 - AS-External LSA

    • 2006 - Deprecated

    • 2007 - NSSA LSA

    • 0008 - Link LSA

    • 2009 - Intra-Area-Prefix LSA

  • Бит U указывает, что делать с LSA неизвестного типа

    • 0 - трактовать LSA как Link-local

    • 1 - распространять по S-битам

  • Биты S12 указывают LSA Scope

    • 00 - Link Local Scoping

    • 01 - Area Scoping

    • 10 - AS Scoping

    • 11 - зарезервировано

Изменения в логике LSA1/2

  • В LSA1/2 осталась только топологическая информация

    • Информация о пользовательских сетях уехала в Intra-Area-Prefix LSA9

    • Информация об адресах next hop уехала в link-local link LSA8

    • В LSA2 остался только список подключенных Router ID

  • Появились Interface ID в LSA1, LSA8 и LSA9

Формат Router LSA

  • Флаги

    • Nt - NSSATranslatorRole

    • V - роутер строит Virtual Link

    • E - роутер является ASBR

    • B - роутер является ABR

  • Link Type

    • 1 - соседство с P2P-соседом (LSA1)

    • 2 - соседство в MA-канале (LSA2)

    • 3 - зарезервировано

    • 4 - OSPF Virtual Link

Network LSA

  • Исчезло поле Network Mask

  • Появилось поле Options

Изменения в адресных LSA

  • Адресная информация из LSA1 переехала в LSA8 и LSA9

  • LSA переименованы:

    • LSA3 - Inter-Area Prefix LSA

    • LSA4 - Inter-Area Router LSA

    • LSA8 - Link LSA

    • LSA9 - Intra-Area Prefix LSA

Формат inter-Area-Prefix LSA9

OSPF Instances

  • Механизм изначально создавался для разделения топологий

    • Instance ID передается в заголовке OSPFv3

  • RFC 5838 предложил расширение для адресных семейств

Instance ID

Address Family

0-31

IPv6 Unicast

32-63

IPv6 Multicast

64-95

IPv4 Unicast

96-127

IPv4 Multicast

128-191

Unassigned

192-255

Reserved

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

  • Штатный механизм аутентификации использует IPSec

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

    • OSPFv3 не задействует IKE/ISAKMP и требует ручное задание параметров SA

  • OSPFv3 Authentication Trailer

    • Дополнительный механизм, RFC 7166

    • Работает аналогично OSPFv2, передает в пакете номер ключа и подпись

Включение OSPFv3

  • На интерфейсе включается только в явном виде

  • Если на устройстве нет ни одного IPv4-адреса, маршрутизатор не сможет автоматически выбрать Router ID

    • Лучше всего задавать его вручную

Router(config)#ipv6 router ospf 1
Router(config-rtr)#router-id 0.0.0.1
Router(config)#interface gi0/0
Router(config-if)#ipv6 enable
Router(config-if)#ipv6 ospf 1 area 0

Источники маршрутной информации

  • Диагностика подсистемы маршрутизации и процесса OSPF

    • Выявляет проблемы с Router ID, пассивными интерфейсами или неправильным планированием регионов

Router#show ipv6 protocols
Router#show ipv6 ospf

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

  • Проверка интерфейсов

Router#show ipv6 ospf itnerface brief
  • Проверка соседств

Router#show ipv6 ospf neighbor
  • Проверка таблицы маршрутизации

Router#show ipv6 route ospf
  • Отображение детальной информации об интерфейсе OSPF

Router#show ipv6 ospf interface g0/0
  • Отображение детальной информации о соседе OSPF

Router#show ipv6 ospf neighbor gi0/0 2.2.2.2

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

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

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

Router(config)#ipv6 router ospf 1
Router(config-rtr)#auto-cost reference-bandwidth ?
  <1-4294967>  The reference bandwidth in terms of Mbits per second
Router(config)#interface gi0/0
Router(config-if)#ipv6 ospf cost ?
  <1-65535>  Route cost of this interface
  dynamic    Specify dynamic cost options

Passive Interface

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

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

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

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

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

Router(config)#ipv6 router ospf 1
Router(config-rtr)#passive-interface fa0/0
Router(config)#ipv6 ospf 1
Router(config-rtr)#pasive-interface default
Router(config-rtr)#no passive-interface gi0/0

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

  • Настройка абсолютно аналогична OSPFv2

Router(config-if)#ipv6 ospf priority ?
  <0-255>  Priority
Router(config-if)#ipv6 ospf hello-interval ?
  <1-65535>  Seconds
Router(config-if)#ipv6 ospf dead-interval ?
  <1-65535>  Seconds
Router(config-if)#ipv6 ospf network ?
  broadcast            Specify OSPF broadcast multi-access network
  non-broadcast        Specify OSPF NBMA network
  point-to-multipoint  Specify OSPF point-to-multipoint network
  point-to-point       Specify OSPF point-to-point network
  • IOS не поддерживает субсекундные таймеры для OSPFv3

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

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

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

    • Достаточно указать с одной стороны

    • Настраивается на интерфейсе, а не в контексте роутера

    • Требуется link-local адрес

Router(config)#interface gi0/0
Router(config-if)#ipv6 ospf network nonbroadcast
Router(config-if)#ipv6 ospf neighbor fe80::2

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

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

Router#show ipv6 ospf database
  • Просмотр Router LSA

Router#show ipv6 ospf database router adv-router 0.0.0.1
  • Просмотр Network LSA

Router#show ipv6 ospf database network adv-router 0.0.0.1
  • Просмотр отдельной Link LSA

Router#show ipv6 ospf database link interface gi0/0 adv-router0.0.0.1
  • Просмотр отдельной Intra Area Prefix LSA

Router#show ipv6 ospf databse prefix adv-router 0.0.0.1
  • Просмотр отдельной Inter Area Prefix LSA

Router#show ipv6 ospf databse inter-area prefix fd02::/64
  • Просмотр отдельной External LSA в таблице LSDB

Router#show ip ospf databse external fdff::/64
  • Просмотр LSA7

Router#show ipv6 ospf database nssa-external
  • Просмотр отдельной Inter-Area Router LSA

Router#show ipv6 ospf databse inter-area router 0.0.0.1

Дебаггинг

  • Hello Protocol

Router#debug ipv6 ospf hello
  • Обмен пакетами

Router#debug ip ospf packet
  • Построение LSDB и пересчет SPF

Router#debug ipv6 ospf spf ?
  external   SPF for external routes
  inter      SPF for inter-area routes
  intra      SPF for intra-area routes
  statistic  SPF statistics

Stub-регионы и маршрут по умолчанию

  • Настройки регионов идентична OSPFv2

Router(config)#ipv6 router ospf 1
Router(config-rtr)#area 2 stub
Router(config-rtr)#area 3 stub no-summary
Router(config-rtr)#area 4 nssa
Router(config-rtr)#area 5 nssa no-summary default-information-originate metric 15 metric-type 1
Router(config-rtr)#area 5 nssa translate type7 always suppress-fa
  • Импорт маршрута по умолчанию

Router(config)#ipv6 router ospf 1
Router(config-rtr)#default-information originate always metric 25 metric-type 1

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

  • Процесс импорта внешних маршрутов из RIB в LSDB

    • Connected

    • Static

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

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

    • Ключ include-connected импортирует из другого пртокола "свои" маршруты

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

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

Router(config)#ipv6 router ospf 1
Router(config-rtr)#redistribute connected
Router(config-rtr)#redistribute static metric 10 metric-type 1 tag 123
Router(config-rtr)#redistribute eigrp 1 include-connected route-map EIGRP_TO_OSPF
Router(config-rtr)#default-metric 25

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

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

Router(config)#ipv6 rotue fd11::/64 fe80::2 gi0/0 tag 1
Router(config)#ipv6 rotue fd12::/64 fe80::2 gi0/0 tag 2
Router(config)#route-map STATIC_TO_OSPF permit 10
Router(config-route-map)#match tag 1
Router(config-route-map)#set metric 10
Router(config-route-map)#set metric-type type-1
Router(config)#ipv6 router ospf 1
Router(config-rtr)#redistribute static route-map STATIC_TO_OSPF

Distribute-list в OSPFv3

  • Отличия от OSPFv2

    • Работает только с prefix-list (ACL или route-map не поддерживаются)

    • Нельзя контролировать адрес gateway

Router(config)#ipv6 prefix-list OSPF_TO_RIB permit ::/0 ge 128
Router(config)#ipv6 prefix-list BGP_TO_OSPF permit 2001:db8::/32 ge 64 le 64
Router(config)#ipv6 router ospf 1
Router(config-rtr)#distribute-list prefix-list OSPF_TO_RIB in gi0/0
Router(config-rtr)#distribute-list prefix-list BGP_TO_OSPF out bgp 65001

Агрегация маршрутов OSPFv3

  • агрегация inter-area маршрутов на ABR (метрика максимальная):

Router(config)#ipv6 router ospf 1
Router(config-rtr)#area 0 range fd00::/16
  • агрегация external маршрутов на ASBR

Router(config)#ipv6 router ospf 1
Router(config-rtr)#summary-prefix fd00::/16
  • Используются для связи ABR через non-backbone (и non-stub) регион

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

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

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

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

Router1(config)#ipv6 router ospf 1
Router1(config-router)#area 1 virtual-link 2.2.2.2
Router2(config)#ipv6 router ospf 1
Router2(config-router)#area 1 virtual-link 1.1.1.1

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

  • Административное расстояние задается на все маршруты протокола

  • Значения по умолчанию такие же, как в OSPFv2: 110/110/170

    • distance <#> задает все три значения

    • distance ospf позволяет задать отдельные значения

  • Отдельным маршрутам AD переопределить нельзя

Router(config-rtr)#distance ospf intra-area 120 inter-area 125 external 160

OSPF Authentication Trailer

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

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

Router(config)#key chain OSPF_KEYCHAIN
Router(config-keychain)#key 1
Router(config-keychain-key)#cryptographic-algorithm ?
Router(config-keychain-key)#key-string SECRETKEY
Router(config-keychain-key)#interface gi0/0
Router(config-if)#ospfv3 authentication key-chain OSPF_KEYCHAIN
  • Механизм поддерживается с IOS 15.4(2)T

  • Синтаксис от OSPFv3 AF-mode, но работает и с Classic Mode

OSPFv3 Classic и IPSec

  • Исходящие пакеты подписываются IPSec

  • Параметры настройки должны совпадать:

    • Номер SPI (Security Parameter Index)

    • Алгоритм подписи (MD5 или SHA-1)

    • Общий ключ размера, равного хэшу (16 байт для MD5, 20 байт для SHA-1)

  • Задание на уровне интерфейса:

Router(config-if)#ipv6 ospf authentication ipsec spi 500 md5 123456789adcdef1234567890abcdef
Router(config-if)#ipv6 ospf authentication ipsec spi 500 sha1 123456789adcdef1234567890abcdef
Router(config-if)#ipv6 ospf authentication ipsec spi 500 esp aes-cbc 128 123456789adcdef1234567890abcdef sha1
654684646464646464654654654354
  • Задание на уровне региона:

Router(config-rtr)#area 1 authentication ipsec spi 500 md5 123456789adcdef1234567890abcdef
Router(config-rtr)#area 1 authentication ipsec spi 500 esp 3des 123456789adcdef1234567890abcdef md5
654684646464646464654654654354

sha1

Last updated