Опубликован: 11.02.2017 | Уровень: для всех | Доступ: свободно
Лекция 4:

Протокол OSPF

Аннотация: Рассмотрены принципы функционирования протокола динамической маршрутизации по состоянию канала. Приведены основные характеристики протокола OSPF. Рассмотрены основы конфигурирования динамической маршрутизации на базе протоколов маршрутизации OSPF2 в сетях IPv4 и OSPF3в сетях IPv6. Проанализированы таблицы маршрутизации.

4.1. Общие сведения о протоколе OSPF

Протокол состояния канала (Link-state) Open Shortest Path First (OSPF) предназначен для работы в больших гибких составных сетях, где обмен маршрутной информацией между множеством маршрутизаторов потребовал бы значительных вычислительных ресурсов и пропускной способности сети. Поэтому большая сеть делится на области или зоны (area), внутри которых и происходит рассылка обновлений (модификаций) при изменениях в сетевой топологии. Использование OSPF внутри определенной области, в которой маршрутизаторы разделяют маршрутную информацию между собой ( рис. 4.1), снижает нагрузку на сеть.

Области функционирования протокола OSPF

Рис. 4.1. Области функционирования протокола OSPF

Областей (зон) может быть несколько, среди которых нулевая область (area 0) является главной или единственной. Остальные зоны взаимодействуют с нулевой областью, а напрямую между собой не взаимодействуют. Взаимодействие периферийных областей с магистральной (area 0) производится через пограничные маршрутизаторы ABR ( рис. 4.1). Далее рассматривается случай единственной области area 0.

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

Протокол OSPF формирует три базы данных, на основе которых создает соответствующие таблицы:

  1. База данных смежности (adjacency database) позволяет сформировать таблицу соседних устройств(neighbor table), содержимое которой можно посмотреть по команде show ip ospf neighbor.
  2. На основе базы данных о состоянии каналов (Link-State Data Base - LSDB) формируется таблица топологии сети (topology table), проверяемая по команде show ip ospf database. После схождения сети базы данных о состоянии каналов LSDB должны быть одинаковы у всех маршрутизаторов области.
  3. На основе базы LSDB и базы данных смежности формируется база пересылки и создается таблица маршрутизации, которую можно посмотреть по команде show ip route.

В основе протокола OSPF лежит алгоритм Дийкстра (Dijkstra), обеспечивающий выбор кратчайшего пути (shortest path) к адресату назначения. Протокол OSPF не проводит периодический обмен объемными обновлениями (update) маршрутной информации для снижения нагрузки на сеть, и характеризуется быстрой сходимостью.

Сходимость или конвергенция (convergence) сети достигается, когда базы данных о состоянии каналов LSDB одинаковы у всех маршрутизаторов области.

Для обмена маршрутной информацией между устройствами протокол OSPF использует пять типов пакетов:

  1. Пакет приветствия Hello.
  2. Пакет описания базы данных Data Base Description - DBD.
  3. Пакет запроса Link-State Request - LSR.
  4. Пакет обновлений Link-State Update - LSU.
  5. Пакет подтверждения Link-State Acknowledgment - LSAck.

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

Различают три типа сетей:

  1. Широковещательные с множественным доступом (Broadcast multi-access), например Ethernet.
  2. Сети типа точка-точка (Point-to-point).
  3. Нешироковещательные с множественным доступом (Non broadcast multi-access - NBMA), например, сети Frame Relay, ATM.

В сетях первых двух типов период рассылки Hello-пакетов - 10 секунд, а в сетях NBMA - 30 сек. Период простоя (Dead Interval) - в четыре раза больше. Если в течение периода простоя от соседнего устройства не пришло ни одного Hello-пакета, то считается, что устройство прекратило функционирование. Протокол OSPF удалит не отвечающего соседа из базы данных LSDB. При рассылке Hello-пакетов в сетях IPv4 используется адрес 224.0.0.5 многоадресного режима без подтверждения доставки. В сетях IPv6 для рассылки используется адрес FF02::5.

Пакет DBD содержит сокращенный список базы данных передающего маршрутизатора и используется принимающим маршрутизатором для синхронизации (проверки) своей базы данных. Базы данных должны быть идентичными. Принимающий маршрутизатор может запросить полную информацию о входах базы данных передатчика, используя пакет запроса Link-State Request - LSR.

Для обмена объявлениями о состоянии канала используется пакет обновлений Link-StateUpdate - LSU. Пакет LSU может содержать различные типы извещений или объявлений (Link-State Advertisements - LSA). Обмен пакетами объявлений LSA производится на начальном этапе формирования сети после установления отношения смежности, а также при возникновении изменений в топологии сети.

Когда происходят изменения в каком-либо соединении сети, то маршрутизатор, первым заметивший это изменение, создает извещение о состоянии этого соединения LSA, которое передается соседним устройствам. Каждое устройство, получив обновление LSA, транслирует копии LSA всем соседним маршрутизаторам в пределах области и затем модифицирует свою топологическую базу данных. Такая лавинообразная рассылка объявлений о состоянии каналов ускоряет процесс сходимости.

Для подтверждения принятого пакета обновлений LSU используется пакет подтверждения (Link-Stat Acknowledgment - LSAck), который рассылается в одноадресном режиме.

Состояние канала (соединения) - это описание интерфейса, которое включает IP адрес интерфейса, маску подсети, тип сети и другие параметры. Полученные пакеты LSA позволяют протоколу OSPFсформировать на маршрутизаторе базу данных о состоянии каналов LSDB. Зная базу данных, алгоритм Dijkstra (shortest path first algorithm - SPF) вычисляет кратчайшие пути к сетям назначения. При этом строится древовидная топология кратчайших путей SPF ко всем доступным сетям, свободная от маршрутных петель. Корнем в дереве является сам маршрутизатор. Первый вычисленный кратчайший путь записывается в таблицу маршрутизации.

Пакет OSPF размещается внутри IP-пакета сразу за IP-заголовком ( рис. 4.2).

Заголовок OSPF

Рис. 4.2. Заголовок OSPF

При передаче сообщения OSPF заголовок кадра включает групповой МАС-адрес назначения (01-00-5Е-00-00-05 или 01-00-5Е-00-00-06) и одноадресный МАС-адрес источника.

Заголовок IP-пакета содержит групповой адрес назначения (224.0.0.5 или 224.0.0.6) и IP-адрес источника.В поле протокола пакета задается значение 89, что говорит об использовании OSPF.

Заголовок OSPF содержит:

  • тип пакета;
  • идентификатор маршрутизатора (Router ID);
  • идентификатор области (area 0);
  • другие параметры.

Идентификатор устройства (Router ID), по сути, является IP-адресом одного из интерфейсов маршрутизатора.

Данные пакета OSPF зависят от типа пакета. Так пакет приветствия Hello включает:

  • маску сети или подсети;
  • интервалы времени рассылки пакетов (Hello Interval), интервал простоя (Dead Interval);
  • приоритет маршрутизатора;
  • идентификаторы назначенного (главного, определяющего) маршрутизатора (Designated Router - DR) и запасного назначенного маршрутизатора (Backup Designated Router - BDR) данной области;
  • список соседних устройств, содержащий идентификаторы соседей.

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

  1. Период времени обмена Hello-пакетами (Hello Interval).
  2. Период времени простоя (Dead Interval), по истечению которого связь считается потерянной, если за это время не было получено ни одного Hello-пакета.

Выбор назначенного (главного) маршрутизатора области сети (Designated - DR) и запасного назначенного маршрутизатора сети (BDR), производится в сетях с множественным доступом. В сетях "точка-точка" этот механизм не используется. В сегменте сети с множественным доступом, несколько маршрутизаторов связаны между собой. Поскольку каждый маршрутизатор должен установить полное отношение смежности со всеми соседними маршрутизаторами и обменяться информацией о состоянии связи всех соединений, то, например, при 5 маршрутизаторах необходим обмен десятью состояниями связи. В общем случае для n маршрутизаторов должно быть n*(n-1)/2 обменов, на что должны быть выделены дополнительные ресурсы, прежде всего, полоса пропускания.

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

Выбор DR и BDR происходит на основе сравнения приоритетов маршрутизаторов. По умолчанию приоритет всех маршрутизаторов равен 1. Значение приоритета может быть любым от 0 до 255. Маршрутизатор с приоритетом 0 не может быть избранным DR или BDR. Маршрутизатор с самым высоким OSPF приоритетом будет отобран как DR маршрутизатор. Маршрутизатор со вторым приоритетом будет BDR.

Когда не задано никаких дополнительных параметров и приоритет одинаков, выбор DR и BDR происходит на основе идентификаторов (ID) маршрутизаторов.

Идентификатор маршрутизатора (ID) может быть задан администратором по команде:

Router(config)#router ospf № процесса
Router(config-router)#router-id ip-адрес
  

У данной команды наивысший приоритет назначения идентификатора маршрутизатора.

Если идентификатор не задан администратором, то протокол OSPF автоматически выбирает в качестве ID адрес одного из интерфейсов с наибольшим значением. Маршрутизатор с высшим значением идентификатора ID становится DR. Маршрутизатор со вторым наибольшим значением идентификатора ID становится BDR.

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

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

Создание интерфейса loopback производится по команде interface loopback, например:

Router(config)#interface loopback 0 
Router(config-if)#ip address10.1.1.1 255.255.255.255
  

Интерфейс loopback должен формироваться с маской подсети на 32 бита - 255.255.255.255. Такая маска называется маской узла, потому что маска определяет сеть одного узла.

Изменение приоритета OSPF может производиться администратором по команде ip ospf priority в режиме конфигурирования интерфейса:

Router(config-if)#ip ospf priority №
  

Значение приоритета () интерфейса может изменяться в пределах от 0 до 255. Приоритет можно посмотреть по команде:

Router#show ip ospf interface тип интерфейса
  

При подключении маршрутизатора, например В к сети ( рис. 4.3), протокол OSPF проходит последовательно несколько стадий, чтобы достичь сходимости. На этапе установления отношения смежности происходит переход интерфейса G0/1 маршрутизатора В из выключенного состояния Down в состояние Init, когда интерфейс начинает передавать Hello-пакеты.

Маршрутизатор В отправляет Hello-пакеты с идентификатором, например 192.168.10.2, из всех своих интерфейсов по групповому адресу 224.0.0.5. Получив Hello-пакет, соседний маршрутизатор А устанавливает отношение смежности с В, добавив полученный идентификатор в свою базу данных смежности и модифицировав таблицу соседних устройств. При этом маршрутизатор А в режиме одноадресной рассылки отправляет Hello-пакет маршрутизатору В. Пакет содержит идентификатор самого устройства А, например 192.168.10.1, и список соседей, подключенных к этому интерфейсу, т.е. идентификатор 192.168.10.2.

Подключение маршрутизатора к сети

Рис. 4.3. Подключение маршрутизатора к сети

Получив Hello-пакет со своим собственным идентификатором, маршрутизатор В добавляет устройство А в свою базу данных смежности и формирует таблицу соседних устройств. Протокол OSPF переводит маршрутизатор в состояние Two-Way.

После этого в сетях Ethernet проводятся выборы назначенного (DR) и запасного (BDR). Если маршрутизаторы А и В ( рис. 4.3) имеют одинаковый приоритет, например 1, то в Ethernet-соединении между устройствами наибольшее значение IP-адреса (192.168.10.2) имеет интерфейс G0/1. Поэтому назначенным (DR) будет маршрутизатор В, резервным (BDR) - станетмаршрутизатор А.

На следующем этапе синхронизации баз данных в состоянии ExStart устройство с боле высоким значением идентификатора (маршрутизатор В) становится ведущим, которое начинает процесс обмена пакетами DBD с ведомым (состояние Exchange). Получение пакетов DBD подтверждается пакетами LSAck. Если информация в пакетах DBD показывает, что требуются дополнительные данные, то используются пакты LSR и LSU (состояние Loading, работает алгоритм SPF). Достижение маршрутизаторами сходимости характеризуется состоянием Full.

После синхронизации баз данных пакеты LSU рассылаются только при изменениях топологии сети или каждые 30 минут работы.

При отладке сети команда show ip protocols отображает номер процесса OSPF, идентификатор маршрутизатора, адреса присоединенных сетей, наличие пассивных интерфейсов, адреса источников, из которых передаются обновления, значение административного расстояния.

Богдан Божок
Богдан Божок

Поделитесь пожалуйста ► Первой частью курса.

В первой лекции упоминается, цитирую: "В первой части настоящего курса отмечалось, что соединение локальных сетей LAN..." 

Дмитрий Михайлусов
Дмитрий Михайлусов
Владислав Ветошкин
Владислав Ветошкин
Россия, Ижевск, Ижевский государственный технический университет имени А.Т. Калашникова, 2011
Саламат Исахан
Саламат Исахан
Россия, Turkistan