среда, 13 февраля 2013 г.

Протокол OSPF - основы работы

OSPF (Open Shortest Path Fisrt) - протокол маршрутизации по состоянию связей. Разработан для IP сетей  рабочей группой IETF (Internet Engineering Task Force) и описан в соответсвующем RFC 2328. Относится к семейству протоколов "внутреннего шлюза" IGP (interior gateway protocol). Это открытый протокол то есть его использование не регламентируется никакими патентными ограничениями.

Протокол OSPF - основы работы


Протокол разрабатывался для использования в крупных сетях уровня предприятия. Но он спроектирован с возможностями легко масштабироваться. В его основу положено понятие зон (area). Поэтому он может быть использован как в отдельной единственной зоне в небольших сетях, так и в нескольких занах большой сети. Изменения маршрутной информации в
одной зоне, не повлияет на работоспособность другой так как между зонами распространяется только обобщенная информация (суммарные маршруты). Для взаимодействия нескольких зон используют магистральную зону с нулевым номером (Area0 или backbone).



Работа протокола основана на алгоритме Дейкстры также называемом "алгоритмом поиска кратчайшего пути" SFP (shortest path first). При поиске "кратчайшего пути" алгоритм анализирует состояние канала: его пропускную способность и надежность.

Терминология OSPF:


  • Интерфейс (interface) — фактичесмки порт (не важно физический или логический) маршрутизатора на котором "висит" подсеть.
  • Объявление о состоянии канала (link-state advertisement, LSA) — пакет пересылаемый от одного OSPF маршрутизатора другому (только в пределах соседства) в котором объявляются сети известные данному маршрутизатору и состояния его каналов.
  • Состояние канала (link state) — состояние канала между двумя маршрутизаторами или между маршрутизатором и клиентской сетью. Изменение состояния канала (падение/поднятие порта) вызывает рассылку пакетов LSA.
  • Метрика (metric) — показатель качества канала. Интегральный показатель суммирующий в себя все метрики промежуточных линков между маршрутизатором и сетью назначения. Чем это значение меньше, тем маршрут надежнее;
  • Автономная система (autonomous system) — группа маршрутизаторов, обменивающаяся маршрутизирующей информацией с помощью одного протокола маршрутизации.
  • Зона (area) — совокупность сетей и маршрутизаторов, имеющих один и тот же идентификатор зоны.
  • Соседи (neighbours) — два маршрутизатора, имеющие интерфейсы в общей сети.
  • Состояние соседства (adjacency) — взаимосвязь между определенными соседними маршрутизаторами, установленная с целью обмена информацией маршрутизации.
  • Hello-протокол (hello protocol) — внутренний в структуре OSPF протокол, используемый для установления и поддержания отношений соседства между роутерами.
  • База данных соседей (neighbours database) — локальный для маршрутизатора список соседей по зоне OSPF.
  • База данных состояния каналов (link state database, LSDB) — список всех записей о состоянии каналов. Встречается также термин топологическая база данных (topological database), употребляется как синоним базы данных состояния каналов.
  • Идентификатор маршрутизатора (router ID, RID) — 32-битовое число, уникальный в пределах автономной системы идентификатор маршрутизатора. Router ID выбирается следующим образом: если сконфигурироват Loopback0 интерфейс - его ip адрес становится Rouner ID. Если Loopback0 не создан то выбирается наибольший IP адрес среди активных на момент включения процесса OSPF интерфейсов маршрутизатора.

Принципы работы OSPF:


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

Для этого каждый роутер OSPF проходит 7 стадий:
  1. Состояние отключено (down state). Это начальное состояние сети ospf только начал свою работу. В этом состоянии каждый роутер сам по себе. Никто друг друга не знает и никакой маршрутной информации в роутерах еще нет.
  2. Cостояние инициализации (init state). На этой стадии роутеры начинают обмениваться hello пакетами в попытках найти хот какого-нибудь соседа... Hello-пакеты рассылаются на все интерфейсы на которых поднят OSPF на мультикастный адрес 224.0.0.5. TTL в этих апакетов равен 1, поэтому их получают только роутеры находящиеся в пределах одного коммутируемого сегмента с интерфейсом отправителем.
  3. Двухстороннее соединение (Two-way) - на этой стадии все маршрутизаторы знают своих соседей и установили с ними adjacency
  4.  ExStart - этап выбора DR и BDR зачем они нужны скажу ниже. DR становится маршрутизатор с наибольшим Router ID а BDR - второй "сверху".
  5. Обмен (Exchange) - роутеры обмениваются со своими соседями пакетами BDB (Data Base Description), которые содержат описание LSDB (Link State Data Base) - описание всех известных роутеру сетей.
  6. Загрузка (Loading) - на этом этапе происходит "сведение" LSDB на всех роутерах внутри зоны. Роутеры обмениваются информацией о неизвестных им ранее маршрутах. Правят свои локальные LSDB.
  7. Установка полной смежности (Full adjecency) - цель достигнута, все роутеры имеют идентичную LSDB. Лампочки моргают, пакеты бегают... Идилия до тех пор пока какому-нибудь линку не вздумается упасть...

Выделенный маршрутизатор (DR) и резервный выделенный маршрутизатор (BDR)

В сетях со множественным доступом отношения соседства должны быть установлены между всеми маршрутизаторами. Это приводит к тому, что рассылается большое количество копий LSA. Причем каждое изменение топологии сети приводит к возникновению новой волны рассылки LSA. В результате растет нагрузка на сеть, процессоры маршрутизаторов и увеличивается время сходимости сети. Для устранения этих проблем введены понятия DR и BDR маршрутизаторов управляющих рассылкой LSA.

Выделенный маршрутизатор (designated router, DR) — управляет процессом рассылки LSA в сети. Каждый маршрутизатор сети устанавливает отношения соседства с DR. Информация об изменениях в сети отправляется DR, маршрутизатором обнаружившим это изменение, а DR отвечает за то, чтобы эта информация была отправлена остальным маршрутизаторам сети.

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

Резервный выделенный маршрутизатор (backup designated router, BDR). Каждый маршрутизатор сети устанавливает отношения соседства не только с DR, но и BDR. DR и BDR также устанавливают отношения соседства и между собой. При выходе из строя DR, BDR становится DR и выполняет все его функции. Так как маршрутизаторы сети установили отношения соседства с BDR, то время недоступности сети минимизируется.

Маршрутизатор, выбранный DR или BDR в одной присоединенной к нему сети со множественным доступом, может не быть DR (BDR) в другой присоединенной сети. Роль DR (BDR) является свойством интерфейса, а не свойством всего маршрутизатора.

Отношения соседства (Adjacency)

Для того, чтобы между маршрутизаторами установились отношения смежности необходимо чтобы выполнялись следующие условия:
  • Hello Interval для маршрутизаторов вступающих в отношения соседства должны совпадать. По умолчанию это 10 секунд в Broadcast сетях, типа Ethernet. Это своего рода KeepAlive сообщения. То есть каждые 10 секунд каждый маршрутизатор отправляет Hello пакет своему соседу, чтобы сказать: “Хей, я жив”,
  • Dead Interval этих маршрутизаторах должны быть идентичными. По умолчанию это 4 интервала Hello — 40 секунд. Если в течение этого времени от соседа не получено Hello, то он считается недоступным. После этого сосед запускает процедуру обновления LSDB т.к. топология сети изменилась.
  • Интерфейсы, подключенные друг к другу, должны быть в одной подсети.
  • Номера зон OSPF должны совпадать
  • Должен совпадать размер MTU

OSPFv3

    С появлением IPv6была выпущена третья версия протокола OSPFv3 в который добавили следующие изменения:
    • Добавлена возможность  включения OSPFv3 в режиме конфигурирования интерфейса, при этом автоматически запускается новый процесс OSPF и добавляется соответствующий раздел в файле конфигурации
    • Все сети (primory и secondary) привязанные к интерфейсу на котором настроен OSPF анонсируются;
    • Если на роутере не сконфигурировано ни одного IPv4 адреса - идентификатор Router ID должен быть настроен вручную;
    • Добавлены два новых типа LSA — Link LSA и Intra-Area Prefix LSA;
    • Области распространения LSA. Кроме существующих областей распространения в OSPFv2 — зона и автономная система, добавилась область — канал (области распространения LSA указаны в описании соответствующих LSA);
    • Несколько сущностей (instances) могут быть в пределах канала;
    • Пакеты OSPF отправляются с link-local адреса (за исключением virtual link);
    • Возможность защиты сессии паролем из протокола удалена. Протокол OSPFv3 использует механизм  аутентификации IPv6;

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

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