2. OSPF: "открыть первым наикратчайший маршрут"

(Open Shortest Path First)

OSPF это альтернативный RIP протокол внутренних маршрутизаторов. В OSPF сняты все ограничения, присущие для RIP. OSPF Version 2 описывается в RFC 1247 [Moy 1991].

OSPF - протокол состояния канала (link-state) , тогда как RIP - протокол вектора расстояний (distance-vector) . Термин вектор расстояний означает, что сообщения, посылаемые RIP, содержат вектор расстояний (счетчик пересылок). Каждый маршрутизатор обновляет свою таблицу маршрутизации на основании векторов расстояний, который он получает от своих соседей.

Когда используется протокол состояния канала, маршрутизатор не обменивается информацией о расстояниях со своими соседями. Вместо этого каждый маршрутизатор активно тестирует статус своих каналов к каждому соседнему маршрутизатору и посылает эту информацию другим своим соседям, которые могут направить поток данных в автономную систему. Каждый маршрутизатор принимает информацию о состоянии канала и уже на ее основании строит полную таблицу маршрутизации.

С практической точки зрения основное отличие заключается в том, что протокол состояния канала работает значительно быстрее, чем протокол вектора расстояний. Нужно отметить, что в случае протокола состояния канала значительно быстрее осуществляется сходимость сети. Под понятием сходимости (converge) мы подразумеваем стабилизацию сети после каких-либо изменений, как, например, поломки маршрутизатора или выхода из строя канала. В разделе 9.3 [Perlman 1992] сравниваются между собой два типа протоколов маршрутизации.

OSPF также отличается от RIP (как и многие другие протоколы маршрутизации) тем, что OSPF использует непосредственно IP. Это означает, что он не использует UDP или TCP. OSPF имеет собственную величину, которая устанавливается в поле протокола (protocol) в IP заголовке (рисунок 3.1).

К тому же, так как OSPF это протокол состояния канала, а не протокол вектора расстояний, он имеет и другие характеристики, которые делают его предпочтительным по отношению к RIP.

OSPF может рассчитать отдельный набор маршрутизаторов для каждого типа сервиса IP (type-of-service) (рисунок 3.2). Это означает, что для любого пункта назначения может быть несколько пунктов в таблице маршрутизации, по одному для каждого типа сервиса IP.

Каждому интерфейсу назначается цена. Она может быть назначена на основании пропускной способности, времени возврата, надежности или по какому-либо другому параметру. Отдельная цена может быть назначена для каждого типа сервиса IP.

Если существует несколько маршрутов к одному пункту назначения с одинаковой ценой, OSPF распределяет траффик (поток данных) поровну между этими маршрутами. Это называется балансом загруженности.

OSPF поддерживает подсети: маска подсети соответствует каждому объявленному маршруту. Это позволяет разбить IP адрес любого класса на несколько подсетей различного размера. (Мы показали это в примере в разделе "Пример подсети" главы 3 и назвали подсетями переменной длины.) Маршруты к хостам объявляются с маской подсети, из всех единичных бит. Маршрут по умолчанию объявляется как IP адрес 0.0.0.0 с маской из всех нулевых битов.

Каналы точка-точка между маршрутизаторами не имеют IP адресов на каждом конце. Это называется сетями без адреса (unnumbered). Такой подход позволяет сэкономить IP адреса - очень ценный ресурс в настоящее время!

Используется простая схема аутентификации. Может быть указан пароль в виде открытого текста, так же как это делается в схеме RIP-2 (раздел "RIP Version 2").

OSPF использует групповую адресацию (глава 12) вместо широковещательной, что уменьшает загруженность систем, которые не распознают OSPF.

Так как большинство поставщиков маршрутизаторов поддерживают OSPF, он начинает постепенно замещать собой RIP в большинстве сетей.

Начало формы


3. КОНЦЕПЦИЯ OSPF

OSPF роутер ID
LSA - Link State Advertisment
Hello protocol
Распределение обязанностей между роутерами в multicast-сети
Types LSAs
Суммаризация роутинга
LSM
Диалекты разных производителей

3.1 OSPF router ID

Порядковый номер, под которым роутер известен в OSPF. Используется при работе протокола между роутерами для координации.
По умолчанию - старший IP-адрес на активном интерфейсе.

3.2 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 пакетов с соседних роутеров.

3.3 Типы сетей

Point-to-Point - сосед определяется однозначно - это "тот-конец"
Multiaccess - соседи находятся по отклику на Hello protocol (напр. ethernet, выделяется Designate Router (за главного) FDDI)
Nonbroadcast - соседей придется задавать явно при Multiaccess конфигурации OSPF (напр. Frame relay, X.25)

3.4 Выделенные 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 ! Листинг этой команды покажет список рассылаемых LSA

(config-if)# shutdown ! интерфейс "упал"
Router (config-if)# no shutdown ! интерфейс "ожил"


3.5 Топология OSPF

Пространство адресов в OSPF организуеся по иерархическому принципу, распадаясь на непересекающиеся area (зоны?)

3.6 Классификация OSPF роутеров

Area Border Router (ABR) - имеет интерфейсы, подключенные сразу к нескольким area. Для каждого из таких интерфейсов выполняет свою копию алгоритма роутинга.

Internal router - все интерфейсы подключены к сетям, расположенным в одной и той же area. Исполняет одну копию алгоритма роутинга.

Backbone router - имеет интерфейс к бэкбону.

Autonomous System Boundary router - обменивается информацией с роутерами, принадлежащими разным автономным системам

4. Базовая конфигурация OSPF 4.1 Минимальная конфигурация

Конфигурирование протокола OSPF выполняется в контексте, попасть в который можно командой

router(config)#router ospf N

router(config-router)#

где N - номер OSPF-процесса, произвольное число (на маршрутизаторе может работать несколько независимых OSPF-процессов, но это встречается крайне редко). В лабораторных работах следует использовать N=1.

Кроме того, ряд параметров OSPF относятся к интерфейсам и, соответственно, конфигурируются в контексте интерфейсов.

Единственной обязательной командой конфигурации OSPF является команда (или несколько команд) network:

router(config-router)#network префикс шаблон area номер

Получив такую команду, маршрутизатор выполняет следующие действия:

Находит все интерфейсы, чьи IP-адреса попадают в диапазон, специфицированный в команде network. При этом шаблон функционирует также, как и списках доступа, то есть, IP-адрес интерфейса отбирается, если он побитно совпадает с префиксом в тех битовых позициях, где у шаблона стоят нули.

Например, если у маршрутизатора есть интерфейсы с адресами 1.2.3.4, 1.2.5.25, 1.2.6.36, а в команде network указаны префикс 1.2.4.0 и шаблон 0.0.3.255, то отбираются интерфейсы 1.2.5.25 и 1.2.6.36, поскольку шаблон требует совпадения первых 22 бит адресов интерфейсов с префиксом 1.2.4.0.

В обычной практике для отбора интерфейсов используют три метода:

В команде network указывается адрес сети и инвертированная маска. Отбирается интерфейс, непосредственно подключенный к указанной сети. (Напомним, что к одной IP-сети маршрутизатор позволяет подключить только один интерфейс.) Если адрес интерфейса будет изменен в пределах той же IP-сети, интерфейс все равно будет отбираться командой network.

В команде network указывается некоторый объемлющий префикс и его инвертированная маска. Отбираются все интерфейсы, непосредственно подключенные к сетям в пределах объемлющего префикса. Например, если для корпоративной сети предприятия выделен префикс 1.1.0.0/16, то для того, чтобы отобрать все интерфейсы любого маршрутизатора предприятия (не вдаваясь в подробности того, как именно выделены на предприятии IP-сети), на каждом маршрутизаторе достаточно указать префикс 1.1.0.0, шаблон 0.0.255.255.

В команде network указывается адрес интерфейса и шаблон 0.0.0.0 ("строгое соответствие"). Отбирается интерфейс с указанным адресом. Если адрес интерфейса будет изменен, даже в пределах той же IP-сети, то интерфейс уже не будет отбираться командой network.

Только основной IP-адрес интерфейса (не secondary) участвует в процессе отбора.

На интерфейсах, отобранных на предыдущем шаге запускается протокол OSPF. При этом интерфейсы помещаются в ту область OSPF-системы, которая указана в параметре area. Магистраль (backbone) - area 0.

В базу данных состояния связей добавляются записи, соответствующие сетям, к которым подключены отобранные интерфейсы.

Следует четко понимать, что префикс и шаблон, указанные в команде network (несмотря на название команды), не устанавливаются в базу данных, а служат только для отбора интерфейсов. После того как интерфейсы отобраны, префикс и шаблон из команды network маршрутизатором не используются и на формирование базы данных влияния не оказывают.

Например, интерфейс маршрутизатора 1.2.3.4/24 подключен к тупиковой сети Ethernet. Этот интерфейс может быть отобран в область 0 OSPF-системы любой из следующих команд:

network 1.2.0.0 0.0.255.255 area 0

network 1.2.3.0 0.0.0.255 area 0

network 1.2.3.4 0.0.0.0 area 0

Независимо от того, какая команда network была использована, в базу данных будет внесена тупиковая сеть 1.2.3.0/24.

Обратите внимание, что IOS использует именно IP-адреса, а не имена интерфейсов для отбора в OSPF-систему. Эту особенность необходимо учитывать при использовании ненумерованных интерфейсов (ip unnumbered интерфейс-донор): чтобы ненумерованный интерфейс был отобран, необходимо, чтобы был отобран интерфейс-донор. И наоборот: если отобран интерфейс-донор, то в ту же самую область будут отобраны и все ненумерованные интерфейсы, которые используют IP-адрес данного донора. Последнее означает, что если вы предполагаете поместить ненумерованные интерфейсы в различные области, то вы должны иметь на маршрутизаторе интерфейсов-доноров по числу областей. На практике значит, что для каждой области должен быть создан свой Loopback (поскольку именно интерфейсы loopback целесообразно использовать в качестве доноров).

4.2 Метрики

Метрики интерфейсов вычисляются автоматически исходя из пропускной способности интерфейса (108/bandwidth). Некоторые значения приведены ниже:

Последовательный интерфейс 56 кбит/с 1785
Последовательный интерфейс 64 кбит/с 1562
Последовательный интерфейс 1544 кбит/с 64
Последовательный интерфейс 2048 кбит/с 48

Ethernet 10 Мбит/с

10
FastEthernet 1
Асинхронный последовательный интерфейс 10000

Напомним, что величину bandwidth интерфейса можно изменить одноименной командой в контексте конфигурации интерфейса. Более того, bandwidth последовательных интерфейсов требует ручной модификации, если реальное значение отличается от значения по умолчанию (1544 кбит/с). Неверное значение bandwidth приведет к различным негативным эффектам (неверное вычисление метрик, некорректное управление пакетными очередями и др.).

OSPF-метрика интерфейса может быть также непосредственно изменена командой

router(config-if)#ip ospf cost метрика

Подчеркнем, что речь идет о метрике связей, исходящих из интерфейса.

4.3 Идентификаторы маршрутизаторов

Каждый OSPF-маршрутизатор идентифицируется некоторым IP-адресом, который помещается во все OSPF-пакеты, сгенерированные маршрутизатором. Поскольку у маршрутизатора есть несколько IP-адресов, то выбор идентификатора производится в следующей последовательности:

Индентификатор явно указан командой

router(config-router)#router-id IP-адрес

Если идентификатор не указан явно, то в качестве идентификатора выбирается наибольший из IP-адресов интерфейсов Loopback.

Иначе если интерфейсы Loopback отсутствуют, то в качестве идентификатора выбирается наибольший из IP-адресов интерфейсов маршрутизатора.

Следует иметь в виду, что идентификатор должен быть стабильным, поскольку при изменении индентификатора OSPF разрывает отношения смежности и устанавливает их заново с новым идентификатором. В частности, если идентификатор берется от обычного интерфейса, то при отключении интерфейса идентификатор меняется.

Кроме того, при установлении виртуальных связей (virtual link) в соответствующей конфигурационной команде (area N virtual-link router-ID) указывается идентификатор маршрутизатора, с которым устанавливается виртуальная связь. Если после перезагрузки данного маршрутизатора выяснится, что идентификатор удаленного маршрутизатора по какой-то причине изменился, то вирутальная связь установлена не будет.

Поэтому обычная практика состоит в создании интерфейса loopback с целью привязки идентификатора к IP-адресу этого интерфейса (поскольку loopback никогда не отключается). Обратите внимание, что при наличии нескольких интерфейсов loopback, выбирается наибольший IP-адрес, и повлиять на процесс выбора (явно указать, какой из интерфейсов loopback вы хотели бы использовать) нельзя.

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

4.4 Распространение маршрута по умолчанию и внешних статических маршрутов

Чтобы в OSPF-системе появился маршрут по умолчанию, ведущий за пределы системы, на соответствующем пограничном маршрутизаторе подается команда:

router(config-router)#default-information originate [always]

Необязательный параметр always заставляет маршрутизатор объявлять в OSPF-систему маршрут по умолчанию, даже если сам маршутизатор такого маршрута не имеет.

Маршрут по умолчанию объявляется в OSPF-систему как внешний, а маршрутизатор, объявивший этот маршрут автоматически становится ASBR. Разумеется, этот маршрутизатор не может целиком принадлежать тупиковой области.

Статические маршруты добавляются в OSPF-систему командой

router(config-router)#redistribute static subnets

Аналогично маршруты к непосредственно подсоединенным сетям, которые не входят в OSPF-систему, добавляются в OSPF командой

router(config-router)#redistribute connected subnets

Все эти маршруты по отношению к OSPF являются внешними, а объявляющие маршрутизаторы становятся ASBR.

Вопросы редистрибуции маршрутов между различными протоколами маршрутизации рассматриваются в отдельной теме.


4.5 Поддержка вариаций OSPF разных производителей

CISCO-router ----- > non-CISCO-router

Router (config-if)# ip ospf cost cost

При вычислении пути Cisco-роутеры для оценки стоимости интерфейса используют ширину линка (bandwidth). Реализации OSPF других производителе могут использовать для определения цены другие алгоритмы. Для согласования стоимость линка в этом случае придется задавать вручную командой ip osf cost


5. Oбнаружение соседей и выбор выделенных маршрутизаторов 5.1 Фильтрация и суммирование маршрутов между областями

Суммирование маршрутов на границе области производится командой

router(config-router)#area N range IP-префикс маска

Эта команда означает, что при объявлении в соседние области маршруты ко всем сетям области N, попадающим в указанный префикс, объявляться не будут, а вместо этого будет объявляться только указанный префикс.

При выполнении суммирования необходимо создать защитный маршрут. Начиная с версии IOS 12.1(6) защитный маршрут создается автоматически. Если его по какой-то причине необходимо не создавать, дается команда

router(config-router)#no discard-route

В ранних версиях IOS защитный маршрут создается вручную:

router(config)#ip route IP-префикс маска Null0

Для объявления области N тупиковой следует подать команду

router(config-router)#area N stub [no-summary]

Необязательный параметр no-summary дополнительно запрещает объявления внутри области маршрутов до других сетей этой же OSPF-системы (без этого параметра запрещаются объявления внутрь области только внешних маршрутов). Тип области, для которой указан параметр no-summary, называется totally stubby.

Область должна быть определена как тупиковая на всех маршрутизаторах, к ней подсоединенных, иначе они не найдут друг с другом общего языка. Однако указание no-summary имеет смысл только на ABR.

Не совсем тупиковые области (NSSA) будут рассмотрены в теме "Redistribution".

5.2 Show & debug

Просмотр текущей информации об OSPF-процессе в контексте администратора:

router#show ip ospf

В субконтексте "show ip ospf" есть дополнительные полезные команды:

router#show ip ospf database

сборная информация о базе данных состояния связей в областях, к которым подсоединен маршрутизатор. Для понимания вывода следует обратиться к пп. 5.5.7 (перечислены типы записей) и 5.5.8 (расшифрованы значения Link ID) учебного пособия.

Для получения полной информации по записям определенного типа подать команду

router#show ip ospf database тип_записи

где тип_записи: router, network, summary, asbr-summary, external для типов соответственно 1-5 (см. п. 5.5.7 учебного пособия).

router#show ip ospf neighbor [detail]

список соседей и их состояния.

router#show ip ospf interface [интерфейс]

информация о параметрах и статусе интерфейсов, имеющая отношение к OSPF.

Отладочные команды:

router#debug ip ospf packet

router#debug ip ospf events

router#debug ip ospf spf statistic

6.КРАТКИЙ СПИСОК 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

debug ip ospf packet

debug ip ospf spf statistic


Заключение Internet состоит из сетей, управляемых разными организациями. Каждая такая сеть использует внутри свои алгоритмы маршрутизации и управления. И называется Автономной системой. Наличие стандартов позволяет преодолеть различия во внутренней организации автономных систем и обеспечить их совместное функционирование. Алгоритм маршрутизации OSPF, относиться протоколам внутренних шлюзов, но может принимать и передавать данные о путях другим автономным системам. Протокол OSPF опубликован в открытой литературе - отсюда open, не является собственностью какой-либо компании, что делает его применяемым в сетях построенных на сетевом оборудовании различных фирм производителей. Алгоритм маршрутизации OSPF: умеет работать с разными метриками расстоянием, пропускной способностью, задержками и т.п.; является динамическим, т.е. реагирует на изменении в топологии сети автоматически и быстро; поддерживать разные виды сервиса; поддерживает маршрутизацию в реальном времени для одних потоков и другую для других; обеспечивает балансировку нагрузки и при необходимости разделять потоки по разным каналам. Напрашивается вывод из всего выше сказанного, что использования алгоритма динамической маршрутизации OSPF придаёт автоматизированной системе значительно большую гибкость и оптимизирует её работу.
Информация о работе «Конфигурирования программного обеспечения алгоритма OSPF на маршрутизаторе»
Раздел: Информатика, программирование
Количество знаков с пробелами: 27434
Количество таблиц: 1
Количество изображений: 4

Похожие работы

Скачать
49708
2
5

... мощные аппаратные маршрутизаторы, позволяет наилучшим образом организовать обмен информацией между подразделениями фирмы в реальном масштабе времени. 2.Технические возможности маршрутизаторов. 2.1 Принципы работы маршрутизаторов Основные принципы, по которым создаются маршрутизаторы Cisco - это универсальность и масштабируемость как на аппаратном, так и на программном уровне. Большой выбор ...

Скачать
80511
3
15

... (Open Shortest Pass First)   Назначение. Протокол OSPF (Open Shortest Pass First, алгоритмы предложены Дейкстрой) является альтернативой RIP в качестве внутреннего протокола маршрутизации. OSPF представляет собой протокол состояния маршрута (в качестве метрики используется – коэффициент качества обслуживания). Каждый маршрутизатор обладает полной информацией о состоянии всех интерфейсов всех ...

Скачать
48833
4
0

... подсети. Другие маршрутизаторы просто объявляют о своей связи с выделенным маршрутизатором. Это делает объявления о связях (которых много) более краткими, размером с объявление о связях отдельной сети. Для начала работы маршрутизатора OSPF нужен минимум информации - IP-конфигурация (IP-адреса и маски подсетей), некоторая информация по умолчанию (default) и команда на включение. Для многих сетей ...

Скачать
65710
1
9

... туннелирования показан на рис. 6. Рис. 6. Туннелирование с использованием GRE Две локальные сети, использующие протокол IPX, разделены некоторой сетью, работающей по протоколу IP. При использовании GRE маршрутизаторы Cisco, находящиеся на краях этой сети (назовем ее IP WAN) могут инкапсулировать дейтаграммы IPX в пакеты IP для передачи первых через сеть IP. Внутри туннелированных сетей сетевые ...

0 комментариев


Наверх