OSPF Open Shortest Path First
OSPF часто применяемый протокол маршрутизации внутри автономной системы. Роутер хранит топологическую базу описывающую полную структуру сети. По базе роутер вычисляет shortest-path tree, с собой в качестве корня. Обращением дерева вычисляется таблица маршрутизаци. При изменениии состояния линков роутеры рассылает соседям Link State Advertise(LSA)-сообщения с информацией о состоянии линков. LSA так же рассылаются каждые 30 минут. После получения LSA роутер перестраивает топологическую базу.
Конкуренты протокола OSPFВ
RIP (routed) - РЅРµ поддерживает сетевые маски, рассылает полную таблицу роутинга каждые 30 сек. Считает оптимальность пути только РїРѕ числу С…РѕРїРѕРІ. В
IGRP - поддерживает сетевые маски, работает по событию, хранит "веса" линков, не требует больших ресурсов, но реализован только на CISCO-роутерах.
Характеристики
Link-state протокол.
VLSM - Variable Length Subnet Mask. Классы - отменяются.
Простая схема с сетями класса A,B,C недостаточно гибка, требуется чтобы протоколы роутинга умели поддерживать VSML.
OSPF это делает.
Расчитан для работы в иерархических сетях.
Areas - группировка подсетей в "areas" - непересекающиеся зоны.
Умеет суммаризовать роутинг с поглощением.
Поддерживается роутерами большинства производителей.
* Концепции OSPF *
OSPF роутер ID.
LSA - Link State Advertisment.
Hello protocol
Распределение обязанностей между роутерами в multicast-сети
Types LSAs
Суммаризация роутинга
LSM
Диалекты разных производителей
OSPF router ID В
Порядковый номер, под которым роутер известен в OSPF.
Рспользуется РїСЂРё работе протокола между роутерами для координации.В
По умолчанию - старший IP-адрес на активном интерфейсе.
LSA - Link State Advertisment В
LSA - оповещающее сообщение, посылается роутером РЅР° активный интерфейс. Содержит РІСЃСЋ информацию Рѕ вызванном изменении роутинга.В
Если LSA принес изменения, то РѕРЅРё вносятся РІ топологическую базу, РїРѕ SFP-алгоритму перестраивается таблица роутинга Рё LSA рассылается дальше.В
Рначе LSA дальше РЅРµ рассылается. В
Посланный пакет распространяется далее всеми роутерами (если РІ этом есть необходимость) В
Посылается только РїСЂРё изменении состояния линка В
Рђ так же посылается каждые 30 РјРёРЅСѓС‚. (РќР° РІСЃСЏРєРёР№ случай) В

Пример:
---------------------------------------------------------------
Router# show ip ospf database
OSPF Router with id(192.168.239.66) (Autonomous system 300)В
В Displaying Router Link States(Area 0.0.0.0)
Link ID ADV Router Age Seq# Checksum Link count
172.18.21.6 172.18.21.6 1731 0x80002CFB 0x69BC 8
172.18.21.5 172.18.21.5 1112 0x800009D2 0xA2B8 5
172.18.1.2 172.18.1.2 1662 0x80000A98 0x4CB6 9
172.18.1.1 172.18.1.1 1115 0x800009B6 0x5F2C 1
172.18.1.5 172.18.1.5 1691 0x80002BC 0x2A1A 5В
Displaying Net Link States(Area 0.0.0.0)
Link ID ADV Router Age Seq# Checksum
172.18.1.3 192.20.239.66 1245 0x800000EC 0x82EВ
В Displaying Summary Net Link States(Area 0.0.0.0)
Link ID ADV Router Age Seq# Checksum
172.18.240.0 172.18.241.5 1152 0x80000077 0x7A05
172.18.241.0 172.18.241.5 1152 0x80000070 0xAEB7
172.18.244.0 172.18.241.5 1152 0x80000071 0x95CB В
Выводит листинг с временами последний обновлений LSA
пакетов с соседних роутеров.
---------------------------------------------------------------
Типы сетей
Point-to-Point - сосед определяется однозначно - это    "тот-конец"
Multiaccess - соседи находятся по отклику на Hello protocol (напр. ethernet, выделяется Designate Router (за главного) FDDI)
Nonbroadcast - соседей придется задавать явно при Multiaccess конфигурации OSPF (напр. Frame relay, X.25)
Выделенные DR роутеры РІ Multiaccess-сети В
Рассылать РІ multicast-сети LSA-сообщения РѕС‚ каждого Рє каждому - слишком РґРѕСЂРѕРіРѕРµ удовольствие. "Соседи" РІСЃРµ СЃРІРѕРё LSA шлют только выделенному Designed Router'Сѓ(DR). DR рассылает аккумулированные LSA всем "соседям". В
DR выбирается РїРѕ протоколу Hello. Hello использует сетевые multicast сообщения РїРѕ 224.0.0.5.В
Выбирается так же Backup Designate Routera (BDR) - запасной. РћРЅ автоматически заменит DR если РѕС‚ того РЅРµ придет РЅРё РѕРґРЅРѕРіРѕ LSA дольше определенного времени. Став DR РѕРЅ проинициирует выборы РЅРѕРІРѕРіРѕ BDR. В
В В
В
Р’РЅРѕРІСЊ включенный router отдает СЃРІРѕР№ LSA DR'Сѓ (точнее DR+BDR) посылая multicast РїРѕ 224.0.0.6 В
В В
В
DR рассылает свои LSA всем "своим" посылая multicast по 224.0.0.5
Пример:
---------------------------------------------------------------
Router# debug ip osfp events
Router (config-if)# shutdown
! интерфейс "упал" В
В
Листинг этой команды покажет список рассылаемых LSA
Router (config-if)# no shutdown
! интерфейс "ожил" В
Листинг этой команды покажет список рассылаемых LSA
---------------------------------------------------------------
Топология OSPF В
Пространство адресов РІ OSPF организуеся РїРѕ иерархическому принципу, распадаясь РЅР° непересекающиеся area (Р·РѕРЅС‹?) В

Классификация OSPF роутеров
Area Border Router (ABR) - имеет интерфейсы, подключенные сразу к нескольким area. Для каждого из таких интерфейсов выполняет свою копию алгоритма роутинга.
Internal router - РІСЃРµ интерфейсы подключены Рє сетям, расположенным РІ РѕРґРЅРѕР№ Рё той же area. Рсполняет РѕРґРЅСѓ РєРѕРїРёСЋ алгоритма роутинга.
Backbone router - имеет интерфейс к бэкбону
Autonomous System Boundary router - обменивается информацией с роутерами, принадлежащими разным автономным системам
* Конфигурирование OSPF *
Запуск процесса роутинга OSPF
---------------------------------------------------------------
Router# router ospf process-id
---------------------------------------------------------------
process-id Внутренний номер - уникальное значение для   каждого процесса роутинга. OSPF процессы на   "дружественных" роутерах запускаются с одним и тем же   process-id
Определить, какие интерфейсы исполняют OSPF
---------------------------------------------------------------
Router# network netaddress wildcard-mask area area-id
---------------------------------------------------------------
netaddress Адрес напрямую подключенных сетей или подсетей
wildcard-mask Обращенная маска для сравнения заданного адреса   с адресами интерфейсов (чтоб выяснить - исполнять   ли OSPF на данном интерфейсе)
area-id Задает, какой area принядлежат адреса
Пример 1
---------------------------------------------------------------
router ospf 63
network 1.0.0.0 0.255.255.255 area 0
---------------------------------------------------------------
Пример 2. Внутренний роутер
---------------------------------------------------------------
interface e 0
ip address 131.108.25.1 255.255.255.0
interface e 1
ip address 131.108.2.26 255.255.255.0
interface e 2
ip address 131.108.3.7 255.255.255.0
interface loopback 0
ip address 3.3.3.3 255.0.0.0
---------------------------------------------------------------
Вариант 1
Разрешаем в OSPF только перечисленные интерфейсы
router ospf 63
network 131.108.25.1 0.0.0.0 area 0
network 131.108.3.7 0.0.0.0 area 0
network 131.108.2.26 0.0.0.0 area 0
Вариант 2
Разрешаем в OSPF все, что попадет в маску
router ospf 63
network 131.108.0.0 0.0.255.255 area 0
Вариант 3
Разрешаем в OSPF все, в т.ч. адреса на loopback-интерфейсе
router ospf 63
network 0.0.0.0 255.255.255.255 area 0
Пример 3. Конфигурирование Area Border Router

---------------------------------------------------------------
network 131.108.25.1 0.0.0.255 area 0
network 131.108.0.0 0.0.255.255 area 34
--------------------------------------------------------------- В
В
В примере интерфейсы (e0) и (е1 + е3) "смотрят" в разные area. Хотя 131.108.25.1 попадает внутрь 131.108.0.0, но преимущество имеет более точный роутинг.
РўРёРїС‹ Link State Andvertisement
Router LSAВ
 Посылается внутри-area роутерамиВ
 Вызывают перерасчет SPF дереваВ
В "O" (OSPF derived router)
Summary LSAВ
 Посылается Area Border роутеромВ
В "IA" (Inter Area routes)

---------------------------------------------------------------
Roter# show ip ospf
Routing Process "ospf 201" with ID 192.168.110.200
Supports only single TOS(TOS0) route
It is an area border and autonomous system boundary router
Summary Link update interval is 0:30:00 and the update due in 0:16:26
External Link update interval is 0:30:00 and the update due in 0:16:27
Redistributing External Routes from,В
igrp 200 with metric mapped to 2, includes subnets in redistributionВ
rip with metric mapped to 2В
igrp 2 with metric mapped to 100В
igrp 32 with metric mapped to 1
Number of areas in this access server is 3
Area 192.168.110.0В
Number of interfaces in this area is 1В
Area has simple password authenticationВ
SPF algorithm executed 6 timesВ
Area ranges areВ
Link State Update Interval is 0:30:00 and due in 0:16:55В
Link State Age Interval is 0:20:00 and due in 0:06:55
---------------------------------------------------------------
Типы роутинга
"O" - OSPF derived router (Router LSA)
"IA" - Inter Area routes (Summary LSA)
"E1" - Type-1 External Routes
"E2" - Type-2 External Routes
Метрика типа E1 сумирует внутренние и внешние метрики
Метрика типа E2 сумирует только внешние метрики   (т.е. не учитывает метрику при прохождении   одной и той же area
Конфигурирование РІ nonbroadcast сетях В
Если сеть не имеет broadcast'а (напр. frame-relay, X.25),
"соседей" по OSPF придется задавать в явном виде
Пример:
---------------------------------------------------------------
router ospf
neighbor 172.16.3.4 priority 1 poll-interval 180
---------------------------------------------------------------
* РЎРЈРњРњРђР РР—РђР¦РРЇ Р РћРЈРўРНГА *В
В

Таблицы роутинга для B
---------------------------------------------------------------
131.108.4.0 255.255.252.0
131.108.8.0 255.255.252.0
131.108.12.0 255.255.252.0
~~~~~~~~~
131.108.16.0 255.255.252.0
. . .
131.108.28.0 255.255.252.0
~~~~~~~~~В
||В
/
131.108.16.0 255.255.240.0
---------------------------------------------------------------
Суммаризация роутинга сокращает количество строк в таблице роутинга, при этом расширяется (виртуальная) сетевая маска - включающая в себя настоящие сетевые маски.
Суммаризация роутинга может порождать фантомный роутинг (несуществующих сетей)
~~~~~~~~~
131.108.12.0 255.255.252.0
~~~~~~~~~В
||В
/
131.108.12.0 255.255.240.0
При этом 131.108.8.0 255.255.252.0 выпадает по такой сетевой
маске в 0-ю подсетку.
Конфигурация суммаризации роутинга
---------------------------------------------------------------
Route# area area-id range address mask
--------------------------------------------------------------- В
В

---------------------------------------------------------------
router ospf 63
network 1.0.0.0 0.255.255.255 area 0
network 2.0.0.0 0.255.255.255 area 2
area 0 range 1.0.0.0 255.0.0.0
area 2 range 2.0.0.0 255.0.0.0В
В В router ospf 63В
В В network 1.0.0.0 0.255.255.255 area 0В
В В network 3.0.0.0 0.255.255.255 area 3В
В В area 0 range 1.0.0.0 255.0.0.0В
В В area 3 range 3.0.0.0 255.0.0.0
--------------------------------------------------------------- В
Для корректной суммаризации роутинга требуется распределение адресов непрерывными кусками
Мониторинг OSPF
---------------------------------------------------------------
Route# show ip protocols
. . .
Routing Protocol is "ospf 109"
Sending updates every ?? seconds, next due in ?? seconds
Invalid after ??? seconds, hold down 280, flushed after 630
. . .
---------------------------------------------------------------
Поддержка вариаций OSPF разных производителей
CISCO-router ----- > non-CISCO-router
---------------------------------------------------------------
Router (config-if)# ip ospf cost cost
--------------------------------------------------------------- В
В
При вычислении пути Cisco-роутеры для оценки стоимости интерфейса используют ширину линка (bandwidth). Реализации OSPF других производителе могут использовать для определения цены другие алгоритмы. Для согласования стоимость линка в этом случае придется задавать вручную командой ip osf cost
* РљР РђРўРљРР™ РЎРџРРЎРћРљ OSPF РљРћРњРђРќР” *В
area authenticationВ
area virtual-linkВ
default-information originate (OSPF)В
default-metric (BGP, EGP, OSPF, and RIP)В
ip ospf authentication-keyВ
ip ospf costВ
ip ospf dead-intervalВ
ip ospf hello-intervalВ
ip ospf message-digest-keyВ
ip ospf networkВ
ip ospf priorityВ
ip ospf retransmit-intervalВ
ip ospf transmit-delayВ
ip ospf-name-lookupВ
match route-typeВ
network areaВ
neighbor (OSPF)В
ospf auto-cost-determinationВ
router ospfВ
redistributeВ
set metric-typeВ
show ip ospfВ
show ip ospf border-routersВ
show ip ospf databaseВ
show ip ospf interfaceВ
show ip ospf neighborВ
show ip ospf virtual-links
Список литературы
Для подготовки данной работы были использованы материалы с сайта http://mdforum.dynu.com