Задача протокола динамической маршрутизации OSFP (Open Shortest Path First) — построить оптимальный маршрут для передачи данных. Он используется в ситуации, когда число устройств маршрутизации насчитывает несколько сотен. Чаще всего это касается корпоративной инфраструктуры. Обо всех деталях, связанных с работой протокола, мы рассказали в данной статье.
📜 Читайте также: Нагрузочное тестирование сервера: цели, задачи и процедура тестирования
Зачем использовать протокол OSFP
Чтобы ответить на этот вопрос, используем сравнение двух компаний с двумя видами маршрутизации: статической и динамической. Предположим, что существует небольшая организация, у которой внутренняя корпоративная база данных размещена на сервере. Когда сотрудники открывают файл из этой БД, запрос отправляется на маршрутизатор. Он схватывает запрос и решает, в какую сеть доставить пакет данных. Чтобы это осуществить, системные администраторы должны вручную прописывать каждый маршрут в таблице маршрутизации.
Если в корпоративной инфраструктуре размещены несколько сотен маршрутизаторов (роутеров), то необходимо воспользоваться динамическим транспортным протоколом OSPF. Это значительно упрощает работу системных администраторов, поскольку протокол автоматически вносит данные и актуализирует таблицу маршрутизации.
Также наблюдается существенная разница во время сбоев. При использовании статической маршрутизации довольно сложно отследить доступность сетей. Если один из каналов прерывается, то сразу прекращается передача пакетов данных. С протоколом OSFP маршруты автоматически перестраиваются, и передача пакетов продолжается.
Основные понятия
Перед разбором алгоритма, по которому работает OSFP, рекомендуем изучить терминологию.
Автономная система — совокупность сетей с общим управлением и единой политикой маршрутизации для каждого из устройств.
Интерфейс — то же самое, что и канал.
Соседи — маршрутизаторы, которые находятся в одной зоне.
Зона (Area) — совокупность устройств маршрутизации (сети и роутеры) с одинаковым идентификатором, которые в процессе обмениваются LSA между собой.
LSA — пакеты, содержащие информацию о состоянии каналов.
Link State — состояние канала между роутерами, которое обновляется посредством пакета LSA.
LSDB (Link State database) — база данных с сообщениями LSA, в которой содержится список всех состояний каналов. Также ее называют топологической базой данных (topological database).
Router ID — 32-х битный номер, который присваивается отдельно каждому маршрутизатору в пределах одной автономной системы, и чаще всего совпадает с сетевым адресом интерфейса.
Adjacency — взаимосвязь между соседними роутерами, которая позволяет обмениваться информацией о маршрутизации.
Shortest Path First — алгоритм, который можно использовать для построения оптимального маршрута между сетями.
Стоимость — показатель, который оценивает уровень и сложность передачи данных по каналу.
Designated Router или DR — роутер, который находится в соседских отношениях со всеми остальными роутерами и управляет процессом передачи LSA в сети.
Backup Designated Router или BDR — это роутер, который используется в качестве резервного устройства в случае выхода из строя выделенного DR. Он также находится в соседских отношениях со всеми роутерами.
Как работает OSFP
Данный алгоритм будет работать только в том случае, если OSPF инсталлирован и включен как на роутере, так и на интерфейсе.
- Сперва нужно включить роутер. Автоматически ему будет присвоен номер Router ID. По желанию ID можно настроить вручную.
- Затем протокол OSPF начинает поиск соседних маршрутизаторов, распространяя приветственные hello-пакеты во все интерфейсы с активированными OSPF.
- Если между роутерами произошло соединение, то формируется канал связи. Если роутер не получил ответ по интерфейсу, тогда происходит смена маршрута и поиск продолжается.
- Чтобы запрограммировать оптимальный путь для передачи пакетов осуществляется обмен LSA.
- Все данные LSA сохраняются и синхронизируются в общей LSBD.
- Можно столкнуться с забиванием каналов. А можно этого избежать, если задействовать Designated Router.
- Используя этот алгоритм, протокол OSPF рассчитывает минимальный путь для сетей.
Теперь детально разберем все процессы маршрутизации OSFP.
Запуск на роутере
При запуске протокола на роутере автоматически назначается идентификатор маршрутизатора. Также есть возможность произвести это вручную. После этого назначаются сети для передачи данных протокола, и уточняется, откуда идут пакеты. Чтобы объявить сети другим роутерам, указываем номер сети, маску и номер Аrea. При правильной настройке маршрутизаторов в результате установится соседство.
Обратите внимание, что интервалы передачи hello-пакетов, Area ID и интерфейсы на соседствующих роутерах должны быть идентичными.
Соседские отношения между маршрутизатором
К примеру, у вас уже есть четыре роутера и появился еще пятый. Теперь нужно установить между ними соседские отношения. Как это сделать?
Один роутер — DR, второй — BDR. Таким образом новый роутер должен рассылать hello-пакеты для четверых. Он добавляется к ним в списки с присвоенным статусом Init. Чтобы завершить процесс, новый роутер также должен подтвердить соседство. После подтверждения происходит обмен пакетами, но не маршрутами.
Чтобы происходил обмен маршрутами, роутеры обмениваются служебными пакетами данных, которые содержат информацию о маршрутной БД и запросы Link State. Должна осуществляться синхронизация Link-State DataBase через обмен сообщениями с детальной информацией.
При корректном выполнении всех шагов в результате должны осуществиться соседские отношениями между всеми роутерами.
Как распределяются роли
DR связан со всеми устройствами сети и отвечает за обеспечение связности: передача LSA, настройка соседских отношений, синхронизация работы роутеров. Этот роутер называют выделенным.
В свою очередь, BDR может подстраховать DR, если тот недоступен. По этой причине роутеры устанавливают отношения соседства и с выделенным, и с резервным роутером. А они в свою очередь связаны между собой.
Выделенный и резервный маршрутизатор выбирается программой по умолчанию на основании длины IP или назначается пользователем вручную. После того, как в сеть добавляется новое устройство (новый роутер) есть вероятность перераспределения ролей DR и BDR.
Зоны OSPF
Каждая зона состоит из набора роутеров с базой данных, топологией и логистической структурой. Роутеры, которые находятся в другой зоне, не содержать информации о других топологиях. Также каждой зоне присвоен собственный идентификатор ID в десятичном формате или в форме IP.
Пять основных зон OSPF:
Зоны не всегда бывают физическими объектами, так как сейчас активно используется технология виртуализации. В том числе и для создания зон.
- Area 0 / зона 0.0.0.0.
Еще эту зону называют магистральной. Она является главной во всей системе маршрутизации и объединяет другие области, поскольку через нее осуществляется передача всего сетевого трафика. Мозг Area 0 — это магистральный роутер (Backbone Router).
- Normal Area / нормальная зона
Эта область отвечает за обновление каналов маршрутизации и создается по умолчанию.
- Transit Area
В этой зоне происходит передача пакетов данных между соседними зонами. Ее ставят наравне с Area 0, поскольку у них схожи функции.
- NSS Area или NSSA
В зоне осуществляется передача пакетов по всем областям без получения информации о маршрутах извне. Чтобы была возможность пересылать пакеты в этой зоне, необходимо подключить роутер ASBR. Он получает сведения о всех маршрутах. Также, обмен данными происходит на границах зон с помощью пограничного роутера ABR.
- Stub Area/тупиковая зона
В этой зоне не осуществляется прием пакета данных, которые содержат информацию о внешней маршрутизации. Но при этом можно принимать файлы из других зон, расположенных по соседству.
Устройства, которые находятся внутри зон, называются внутренними или Internal. У данных устройств есть зональный интерфейсы и единая Link-State DataBase. А каждое из этих устройств может менять роли.
При большом количестве устройств маршрутизации используется мультизональная структура. С ее помощью осуществляется сегментирование сети, снижение нагрузки на аппаратную часть, а также для сокращения пересылаемых пакетов LSA.
Тип LSA и функция
В терминологии мы упоминали это понятие, однако, остановимся на нем подробнее. LSA выполняют функцию уведомлений о состоянии канала. LSA лежит в основе создания LSBD. Всего существует 11 разновидностей пакетов с присвоенными порядковыми номерами, которые обозначают номер версии. Рассмотрим все типы анонсов и их функции.
Передача пакетов LSA независимо от пакетов OSPF не осуществляется. OSPF поддерживает 5 типов сообщений:
Hello-пакеты используют в целях поиска и установления связи между соседними устройствами.
DBD (пакет описания базы данных) содержит основную информацию о базе данных и используется для контроля синхронизации LSDB между маршрутизаторами.
LSR (пакет запроса состояния канала) используется в случаях, когда нужно получить часть LSDB у соседних маршрутизаторов, и запрашивает необходимые LSA.
LSU (пакет обновления состояния канала) рассылает записи LSA о состоянии связей роутеров.
LSAck (пакет подтверждения состояния канала) уведомляет, что пакеты данных LSA, передаваемые по протоколу, были получены.
Синхронизация LSDB (Topological DB)
Независимости от типа, каждый LSA формирует базу данных. И у каждого роутера есть собственная копия LSDB, которая должна синхронизироваться с DR. Записям в базе данных присвоен индивидуальный номер версии. Номера идут по возрастанию, то есть, у последней записи он будет больше, чем у предыдущей.
Выбор оптимального маршрута
Для построения оптимального пути используется еще один алгоритм. В его основе расчет стоимости передачи пакетов. При расчете стоимости ориентируются на такие метрики, как пропускная способность и загруженность канала связи.
Для построения пути изначально подвергаются анализу внутренние зоны, межзональные пути и только в последнюю очередь внешние каналы связи. Расчет осуществляется при помощи алгоритма Дейкстры и таблицы Topological DB. Таблица базы данных регулярно обновляется, и происходит построение новых маршрутов, но только с последними данными.
Запуск OSPF в Cisco и Juniper
Запустим и настроим протокол OSPF на устройствах Cisco с помощью команд:
show ip ospf neighbors
show ip route
То же самое, только на оборудовании Juniper:
root@R1> show ospf neighbor
root@R1> show route
OSPF для IPv6
Как вы знаете, есть несколько версий протокола. Вторая версия OSFP совместима исключительно с IPv4. Протокол IPv6 поддерживается третьей версией OSFP.
Для настройки IPv6 включаем протокол OSFP и задаем ID оборудования. Если IPv4 не настроен, то ID можно задать только вручную. Параметры Area, IP, и ID настраиваются таким же образом.
Заключение
Использование динамического протокола маршрутизации гораздо выгоднее и эффективнее, если у вас большое количество устройств. Однако, принцип работы протокола довольно ресурсоемкий. Это нужно учитывать при выборе маршрутизаторов и обращать внимание на такие показатели, как производительность и объем оперативной памяти. Они должны быть высокими.
Статья оказалась полезной? Подписывайтесь, ставьте лайки и поделитесь ссылкой с друзьями.💗