воскресенье, 3 августа 2014 г.

Введение в протокол OSPF

В данной статье дается вводная информация о протоколе динамической маршрутизации OSPF, обсуждаются понятия автономных систем, описывается работа алгоритма Sorts Path First (SPF), предложенный Дикстрой и возможности протокола.

Введение в протокол OSPF

Открытый протокол, базирующийся на алгоритме поиска наикратчайшего пути (Open Shortest Path Fisrt - OSPF) является протоколом маршрутизации, разработанным для сетей IP рабочей группой Internet Engineering Task Force (IETF), занимающейся разработкой протоколов для внутрисистемных роутеров (interior gateway protocol - IGP).
Как видно из его названия, OSPF имеет две основных характеристики. Первая из них-это то, что протокол является открытым, т.е. его спецификация является общественным достоянием. Второй его главной характеристикой является то, что он базируется на алгоритме SPF. Алгоритм SPF иногда называют алгоритмом Dijkstra по имени автора, который его разработал.

Основы технологии протокола OSPF

OSPF является протоколом маршрутизации с объявлением состояния о канале (link-state). Это значит, что он требует отправки объявлений о состоянии канала (link-state advertisement - LSA) во все роутеры, которые находятся в пределах одной и той же иерархической области. В oбъявления LSA протокола OSPF включается информация о подключенных интерфейсах, об использованных показателях и о других переменных. По мере накопления роутерами OSPF информации о состоянии канала, они используют алгоритм SPF для расчета наикратчайшего пути к каждому узлу.
Являясь алгоритмом с объявлением состояния канала, OSPF отличается от RIP и IGRP, которые являются протоколами маршрутизации с вектором расстояния. Роутеры, использующие алгоритм вектора расстояния, отправляют всю или часть своей таблицы маршрутизации в сообщения о корректировке маршрутизации, но только своим соседям.
В отличие от RIP, OSPF может работать в пределах некоторой иерархической системы. Самым крупным объектом в этой иерархии является автономная система (Autonomous System - AS) AS является набором сетей, которые находятся под единым управлением и совместно используют общую стратегию маршрутизации. OSPF является протоколом маршрутизации внутри AS, хотя он и способен принимать маршруты из других AS и отправлять маршруты в другие AS.
Любая AS может быть разделена на ряд зон или областей(area). Зона - это группа смежных сетей и подключенных к ним хостов. Роутеры, имеющие несколько интерфейсов, могут участвовать в нескольких зонах. Такие роутеры, которые называются пограничными областными роутерами (area border routers), поддерживают отдельные топологические базы данных для каждой области.
Топологическая база (topological database) данных фактически представляет собой общую картину сети по отношению к роутерам. Топологическая база данных содержит набор LSA, полученных от всех роутеров, находящихся в одной области. Т.к. роутеры одной области коллективно пользуются одной и той же информацией, они имеют идентичные топологические базы данных.
Термин "домен" (domain) используется для описания части сети, в которой все роутеры имеют идентичную топологическую базу данных. Термин "домен" часто используется вместо AS.
Топология области является невидимой для объектов, находящихся вне этой области. Путем хранения топологий областей отдельно, OSPF добивается меньшего трафика маршрутизации, чем трафик для случая, когда AS не разделена на области.
Разделение на области приводит к образованию двух различных типов маршрутизации OSPF, которые зависят от того, находятся ли источник и пункт назначения в одной и той же или разных областях. Маршрутизация внутри области имеет место в том случае, когда источник и пункт назначения находятся в одной области; маршрутизация между областями - когда они находятся в разных областях.
Магистральная часть OSPF (backbone) отвечает за распределение маршрутной информации между областями. Она включает в себя все роутеры границы области, сети, которые не принадлежат полностью како-либо из областей, и подключенные к ним роутеры. На рисунке представлен пример объединенной сети с несколькими областями.
Введение в протокол OSPF
На этом рисунке роутеры 4, 5, 6, 10, 11 и 12 образуют магистраль. Если хост Н1 Области 3 захочет отправить пакет хосту Н2 Области 2, то пакет отправляется в роутер 13, который продвигает его в роутер 12, который в свою очередь отправляет его в роутер 11. Роутер 11 продвигает пакет вдоль стержня к роутеру 10 границы области, который отправляет пакет через два внутренних роутера этой области (роутеры 9 и 7) до тех пор, пока он не будет продвинут к хосту Н2.
Сам стержень представляет собой одну из областей OSPF, поэтому все стержневые роутеры используют те же процедуры и алгоритмы поддержания маршрутной информации в пределах стержневой области, которые используются любым другим роутером. Топология стержневой части невидима для всех внутренних роутеров точно также, как топологии отдельных областей невидимы для стержневой части.
Область может быть определена таким образом, что стержневая часть не будет смежной с ней. В этом случае связность стержневой части должна быть восстановлена через виртуальные соединения. Виртуальные соединения формируются между любыми роутерами стержневой области, которые совместно используют какую-либо связь с любой из нестержневых областей; они функционируют так, как если бы они были непосредственными связями.
Граничные роутеры AS, использующие OSPF, узнают о внешних маршрутах через протоколы внешних роутеров (EGPs), таких, как Exterior Gateway Protocol (EGP) или Border Gateway Protocol (BGP), или через конфигурацию.

Алгоритм SPF

Алгоритм маршрутизации SPF является основой для операций OSPF. Когда на какой-нибудь роутер SPF подается питание, он инициализирует свои структуры данных о протоколе маршрутизации, а затем ожидает индикации от протоколов низшего уровня о том, что его интерфейсы работоспособны.
После получения подтверждения о работоспособности своих интерфейсов роутер использует приветственный протокол (hello protocol) OSPF, чтобы приобрести соседей (neighbor). Соседи - это роутеры с интерфейсами с общей сетью. Описываемый роутер отправляет своим соседям приветственные пакеты и получает от них такие же пакеты. Помимо оказания помощи в приобретении соседей, приветственные пакеты также действуют как подтверждение дееспособности, позволяя другим роутерам узнавать о том, что другие роутери все еще функционируют.
В сетях с множественным доступом (multi-access networks) (сетях, поддержиающих более одного роутера), протокол Hello выбирает назначенный роутер (designated router) и дублирующий назначенный роутер. Назначеный роутер, помимо других функций, отвечает за генерацию LSA для всей сети с множественным доступом. Назначенные роутеры позволяют уменьшить сетевой трафик и об'ем топологической базы данных.
Если базы данных о состоянии канала двух роутеров являются синхронными, то говорят, что эти роутеры смежные (adjacent). В сетях с множественным доступом назначенные роутеры определяют, какие роутеры должны стать смежными. Топологические базы данных синхронизируются между парами смежных роутеров. Смежности управляют распределением пакетов протокола маршрутизации. Эти пакеты отправляются и принимаются только на смежности.
Каждый роутер периодически отправляет какое-нибудь LSA. LSA также отправляются в том случае, когда изменяется состояние какого- нибудь роутера. LSA включает в себя информацию о смежностях роутера. При сравнении установленных смежностей с состоянием канала быстро обнаруживаются отказавшие роутеры, и топология сети изменяется сооответствующим образом. Из топологической базы данных, генерируемых LSA, каждый роутер рассчитывает дерево наикратчайшего пути, корнем которого является он сам. В свою очередь дерево наикратчайшего пути выдает маршрутную таблицу.

Формат OSPF-пакетов

OSPF-пакет инкапсулируется непосредственно в поле данных IP-пакета. Значение поля «протокол верхнего уровня» в заголовке IP-дейтаграммы для OSPF равно 89.

Заголовок пакета

ОКТЕТ012345678910111213141516171819202122232425262728293031
0—3VersionTypePacket length
4—7Router ID
8—11Area ID
12—15ChecksumAuthentication type
16—19Authentication
20—23
  •  Version — номер версии протокола OSPF, текущая версия OSPF для сетей IPv4 — 2;
  • Type — тип OSPF-пакета;
  • Packet length — длина пакета, включая заголовок;
  • Router ID — идентификатор маршрутизатора, уникальное 32-битное число, идентифицирующее маршрутизатор в пределах автономной системы;
  • Area ID — 32-битный идентификатор зоны;
  • Checksum — поле контрольной суммы, подсчитывается для всего пакета, включая заголовок;
  • Authentication type — тип используемой схемы аутентификации, возможные значения:
    • 0 — аутентификация не используется
    • 1 — аутентификация открытым текстом
    • 2 — MD5-аутентификация
  • Authentication — поле данных аутентификации.

 Hello-пакет

Hello-пакет предназначен для установления и поддержания отношений с соседями. Пакет периодически посылается на все интерфейсы маршрутизатора.
ОКТЕТ012345678910111213141516171819202122232425262728293031
0—3VersionType = 1Packet length
4—7Router ID
8—11Area ID
12—15ChecksumAuthentication type
16—19Authentication
20—23
24—27Network mask
28—31Hello intervalOptionsRouter priority
32—35Router dead interval
36—39Designated router
40—43Backup designated router
44—47Neighbor ID
  • Network mask — сетевая маска интерфейса, через который отправляется hello-пакет;
  • Hello interval — интервал задающий частоту рассылки приветственных сообщений для обнаружения соседей в автономной системе, для LAN значение по умолчанию равно 10 секундам;
  • Options — 8-битное поле опций, описывает возможности маршрутизатора;
  • Router priority — приоритет маршрутизатора, 8-битное число, символизирующее приоритет маршрутизатора при выборе DR (англ. Designated router) и BDR (англ. Backup designated router);
  • Router dead interval — период времени, в течение которого маршрутизатор ожидает ответа соседей;
  • Designated router (DR) — IP-адрес DR;
  • Backup designated router (BDR) — IP-адрес BDR;
  • Neighbor ID — идентификатор соседа. Список составляется из идентификаторов соседей, от которых маршрутизатор получил hello-пакеты в течение времени, заданного в поле router dead interval;

 Database Description

 Пакет Database Description описывает содержание базы данных состояния канала. Обмен пакетами производится при установлении состояния смежности.
ОКТЕТ012345678910111213141516171819202122232425262728293031
0—3VersionType = 2Packet length
4—7Router ID
8—11Area ID
12—15ChecksumAuthentication type
16—19Authentication
20—23
24—27Interface MTUOptions00000IMMS
28—31DD sequence number
LSA headers
  •  Interface MTU — размер в байтах наибольшей IP дейтаграммы, которая может быть послана через данный интерфейс без фрагментации;
  • I-бит — устанавливается для первого пакета в последовательности;
  • M-бит — указывает наличие последующих дополнительных пакетов;
  • MS-бит — устанавливается для ведущего, сбрасывается для ведомого;
  • DD sequence number — в начальном пакете устанавливается на уникальное значение, при передаче каждого последующего пакета увеличивается на единицу, пока не будет передана вся база данных;
  • LSA headers — массив заголовков базы данных состояния каналов.

 Link State Request

Пакет Link State Request предназначен для запроса части базы данных соседнего маршрутизатора.
ОКТЕТ012345678910111213141516171819202122232425262728293031
0—3VersionType = 3Packet length
4—7Router ID
8—11Area ID
12—15ChecksumAuthentication type
16—19Authentication
20—23
24—27LS Type
28—31Link State ID
32—35Advertising Router
  •  LS Type — тип объявления о состоянии канала;
  • Link State ID — идентификатор домена маршрутизации;
  • Advertising Router — идентификатор маршрутизатора, создавшего объявление о состоянии канала.

 Link State Update

 Пакет Link State Update предназначен для рассылки объявлений о состоянии канала. Пакет посылается по групповому адресу на один транзитный участок.
ОКТЕТ012345678910111213141516171819202122232425262728293031
0—3VersionType = 4Packet length
4—7Router ID
8—11Area ID
12—15ChecksumAuthentication type
16—19Authentication
20—23
24—27Number of LSA
LSA
  •  Number of LSA — количество объявлений в пакете.

 Link State Acknowledgment

 Подтверждает получение пакета Link State Update.
ОКТЕТ012345678910111213141516171819202122232425262728293031
0—3VersionType = 5Packet length
4—7Router ID
8—11Area ID
12—15ChecksumAuthentication type
16—19Authentication
20—23
LSA headers
  •  Hello - Отправляется через регулярные интервалы времени для установления и поддержания соседских взаимоотношений.
  • Database Description - Описание базы данных. Описывает содержимое базы данных; обмен этими пакетами производится при инициализации смежности.
  • Link-State Request - Запрос о состоянии канала. Запрашивает части топологической базы данных соседа. Обмен этими пакетами производится после того, как какой-нибудь роутер обнаруживает, (путем проверки пакетов описания базы данных), что часть его топологической базы данных устарела.
  • Link-State Update - Корректировка состояния канала. Отвечает на пакеты запроса о состоянии канала. Эти пакеты также используются для регулярного распределения LSA. В одном пакете могут быть включены несколько LSA.
  • Link-State Acknowledgement- Подтверждение состояния канала. Подтверждает пакеты корректировки состояния канала. Пакеты корректировки состояния канала должны быть четко подтверждены, что является гарантией надежности процесса лавинной адресации пакетов корректировки состояния канала через какую-нибудь область.
Каждое LSA в пакете корректировки состояния канала содержит тип поля. Существуют 4 типа LSA:
  • Router links advertisements (RLA) - Об'явления о каналах роутера. Описывают собранные данные о состоянии каналов роутера, связывающих его с конкретной областью. Любой роутер отправляет RLA для каждой области, к которой он принадлежит. RLA направляются лавинной адресацией через всю область, но они не отправляются за ее пределы.
  • Network links advertisements (NLA) - Об'явления о сетевых каналах. Отправляются назначенными роутерами. Они описывают все роутеры, которые подключены к сети с множественным доступом, и отправляются лавинной адресацией через область, содержащую данную сеть с множественным доступом.
  • Summary links advertisements (SLA) - Суммарные об'явления о каналах. Суммирует маршруты к пунктам назначения, находящимся вне какой-либо области, но в пределах данной AS. Они генерируются роутерами границы области, и отправляются лавинной адресацией через данную область. В стержневую область посылаются об'явления только о внутриобластных роутерах. В других областях рекламируются как внутриобластные, так и межобластные маршруты.
  • AS external links advertisements - Об'явления о внешних каналах AS. Описывают какой-либо маршрут к одному из пунктов назначения, который является внешним для данного AS. Об'явления о внешних каналах AS вырабатываются граничными роутерами AS. Этот тип об'явлений является единственным типом об'явлений, которые продвигаются во всех направлениях данной AS; все другие об'явления продвигаются только в пределах конкретных областей.
За полем типа заголовка пакета OSPF идет поле длины пакета (packet length). Это поле обеспечивает длину пакета вместе с заголовком OSPF в байтах.
Поле идентификатора роутера (router ID) идентифицирует источник пакета.
Поле идентификатора области (area ID) идентифицирует область, к которой принадлежит данный пакет. Все пакеты OSPF связаны с одной отдельной областью.
Стандартное поле контрольной суммы IP (checksum) проверяет содержимое всего пакета для выявления потенциальных повреждений, имевших место при транзите.
За полем контрольной суммы идет поле типа удостоверения (authentication type). Примером типа удостоверения является "простой пароль". Все обмены протокола OSPF проводятся с установлением достоверности. Тип удостоверения устанавливается по принципу "отдельный для каждой области".
За полем типа удостоверения идет поле удостоверения (authentication). Это поле длиной 64 бита и содержит информацию удостоверения.

Конфигурация OSPF

Для того, чтобы настроить OSPF необходимо выполнить следующие шаги:
  • Включить OSPF (обязательно)
  • Определить интерфейсы на которых OSPF будет работать (обязательно).
  • Настроить параметры OSPF на интерфейсах (необязательно)
Пример:
interface ethernet 1
ip address 192.168.1.1 255.255.255.0
!
router ospf 1
network 192.168.0.0 0.0.255.255 area 1
В этом примере мы включили OSPF роутинг с помощью команды router ospf 1. Эта команда перебросит вас в режим конфигурации протокола маршрутизации OSPF. Далее с помощью команды network 192.168.0.0 0.0.255.255 area 1 мы определили интерфейс на котором будет работать OSPF и номер зоны (area) для этого интерфейса. Поскольку в адресном диапазоне 192.168.0.0/16 находиться только один интерфейс ethernet 1, то на этом интерфейсе начинает работать протокол OSPF.
Источник: blogsvazista.ru/vvedenie-v-protocol-ospf/

Комментариев нет:

Отправить комментарий