25. Динамічні протоколи маршрутизації: протокол OSPF.
Протокол OSPF (Open Shortest Path First) разрабатывался как
механизм, посредством которого маршрутизаторы могут обмениваться информацией о
содержимом таблиц маршрутизации в большой межсетевой среде. Протокол OSPF
является протоколом маршрутизации с объявлением состояния канала связи. В
основе функционирования протокола OSPF лежит алгоритм "первоочередного
обнаружения кратчайшего пути" (Shortest Path First, SPF), который
используется для вычисления маршрутов в таблице маршрутизации. Используя
алгоритм SPF, маршрутизатор вычисляет кратчайший (т. е. обладающий наименьшей
стоимостью) путь ко всем подсетям в межсетевой среде. В маршрутах, рассчитанных
при помощи алгоритма SPF, всегда отсутствуют циклы.
В отличие от протокола RIP, протокол OSPF
поддерживает "карту" корпоративной сети. Эта карта модифицируется
каждый раз, когда происходит какое-либо изменение в структуре сети. Эта карта,
называемая базой данных состоянии связей (link state database),
синхронизирована для всех OSPF-маршрутизаторов и используется, чтобы вычислить
маршруты в таблице маршрутизации. Изменения в структуре сети приводят к
немедленному распространению сведений об этих изменениях на все маршрутизаторы,
которые, в свою очередь, обновляют собственный экземпляр базы данных состояния
связей. Обновление базы данных состояний связей приводит к повторному пересчету
таблицы маршрутизации.
Начиная свою работу, каждый маршрутизатор извещает
другие маршрутизаторы о своем существовании, отправляя специальное сообщение во
все доступные подсети. Другие маршрутизаторы получают это сообщение и обновляют
свой экземпляр базы данных о состоянии связей. Фактически указанная база данных
и формируется на основании этих сообщений.
Поскольку размер базы данных состояний связей
растет, требования к объему памяти и время на вычисление маршрута
увеличиваются. Чтобы решить эту проблему, OSPF рассматривает межсетевую среду
как совокупность областей (под областью в данном случае понимается совокупность
непрерывных сетей), соединенных друг с другом через некоторую базовую область
(backbone area). Все маршрутизаторы, принадлежащие к одной области, обладают
идентичными репликами базы данных состояния связей.
С целью идентификации областей каждой из них
выделяется специальный идентификатор (area ID), представляющий собой
32-разрядное число. Этот идентификатор записывается так же как и IP-адрес — в
десятично-точечном формате (т. е. в виде четырех однобайтовых чисел,
разделенных точками). Идентификатор области никак не связан с IP-адресацией.
Администратор может присваивать идентификаторы областям по своему усмотрению,
не оглядываясь на используемые в сети IP-адреса. При этом одна область OSPF
может включать в свой состав неограниченное количество подсетей (размер области
ограничивается исключительно размером базы данных состояния связей).
Каждый маршрутизатор хранит базу данных состояний
связей только для тех областей, которые подсоединены к маршрутизатору непосредственно.
Маршрутизаторы, соединяющие базовую область с другими областями, называются
пограничными маршрутизаторами областей (Area Border Router, ABR). Пограничные
маршрутизаторы накапливают изменения, полученные от остальных маршрутизаторов
области, и передают их разом маршрутизаторам, расположенным в других областях.
На рис. 15.1 показан пример разделения сети на
области в случае использования протокола OSPF.