logo search
СиСПК (ВАСИН)-лекции

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

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

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

Протоколы Link-state создают таблицы маршрутизации на основе информации, хранящейся в специальной базе данных (link-state database), а также в базе данных соседних устройств (neighbor table). При этом алгоритм Дийкстра (Dijkstra) обеспечивается выбор кратчайшего пути (shortest path) к адресату назначения. Протокол OSPF не проводит периодический обмен объемными обновлениями (update) маршрутной информации, также как протокол EIGRP, и характеризуется быстрой сходимостью (convergence).

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

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

  1. Пакет Hello

  2. Пакет описания базы данных DataBase Description – DBD

  3. Пакет запроса Link-State Request – LSR

  4. Пакет обновлений Link-State Update – LSU

  5. Пакет подтверждения Link-State Acknowledgment – LSAck.

Hello-пакеты используются, чтобы устанавливать и поддерживать отношения смежности (adjacency) между соседними устройствами. Hello-пакеты содержат идентификатор устройства (Router ID), который по сути является адресом одного из интерфейсов маршрутизатора. На этапе формирования смежности устанавливаются 3 значения:

  1. Период времени обмена Hello-пакетами (Hello Interval)

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

  3. Тип сети (Network Type).

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

1. Широковещательные с множественным доступом (Broadcast multi-access), например Ethernet.

2. Сети типа точка-точка (Point-to-point)/

3. Нешироковещательные с множественным доступом (Nonbroadcast multi-access – NBMA), например, сети Frame Relay, ATM.

В сетях первых двух типов период рассылки Hello-пакетов составляет 10 секунд, а в сетях NBMA – 30 сек. Период Dead Interval – в четыре раза больше. Обмен Hello-пакетами производится с использованием адресов 224.0.0.5 или 224.0.0.6 многоадресного режима (multicast).

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

Для ответа на запрос LSR используется пакет обновлений Link-State Update – LSU. Пакет LSU может содержать 7 различных типов извещений или объявлений (Link-State AdvertisementsLSAs). Обмен маршрутной информацией производится только при возникновении изменений в сети. Когда происходят изменения, маршрутизатор, первым заметивший это изменение, создает извещение о состоянии этого канала LSAs, которое передается соседним устройствам. Каждое устройство маршрутизации получив обновление LSAs, модифицирует свою базу данных и транслирует копии LSAs всем соседним маршрутизаторам.

Для подтверждения принятого пакета обновлений LSU используется пакет подтверждения Link-State Acknowledgment – LSAck.

Когда в сети происходит изменение, например, соседнее устройство становится недостижимым, протоколы состояния связи заполняют всю область обновлениями LSAs с использованием многоадресного режима multicast 224.0.0.5. Информация рассылается во все порты, кроме порта, на котором данная информация была получена. Каждый маршрутизатор копирует сообщение LSAs и модифицирует свое состояние связи, т.е. топологическую базу данных, которая содержит весь набор состояний. Затем маршрутизатор продвигает LSAs на все соседние маршрутизаторы в пределах области (area) и они повторно вычисляют маршруты. Итак, обновления маршрутной информации вызываются изменениями в сети.

Состояние связи (соединения) – это описание интерфейса, которое должно включать IP адрес интерфейса, маску подсети, тип сети и так далее. Содержащаяся в топологической базе данных информация используется, чтобы вычислить лучшие пути через сеть. Для вычисления кратчайшего пути к адресату назначения строится дерево, где корнем является местный маршрутизатор. Затем отбираются лучшие (кратчайшие) пути к сетям назначения и помещаются в таблицу маршрутизации. При вычислениях используется алгоритм Dijkstra выбора первого кратчайшего пути (shortest path first algorithm). Построение топологического дерева с использованием алгоритма Dijkstra позволяет формировать пути свободные от маршрутных петель (loop-free routing). Для этого протокол OSPF создает и поддерживает:

  1. Топологическую базу данных (link-state database).

  2. Базу данных смежных устройств (adjacency database).

  3. Таблицу маршрутизации.

Пакет OSPF размещается внутри IP-пакета сразу вслед за заголовком. Основной информацией пакета OSPF является:

тип пакета,

идентификатор маршрутизатора (Router ID),

номер области (area 0),

маска сети или подсети,

интервалы времени (Hello Interval, Dead Interval),

идентификаторы главного определяющего маршрутизатора (Designated Router - DR) и запасного (Backup Designated Router - BDR) данной области,

список соседних устройств.

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

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

Существует механизма выбора маршрутизаторов DR и BDR.

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

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

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

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

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

Router(config)# interface loopback 0

Router(config-if)#ip address 10.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. Приоритет и другую информацию можно посмотреть по команде show ip ospf interface:

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

Кроме того, идентификатор маршрутизатора может быть задан администратором по команде:

Router(config)#router ospf процесса

Router(config-router)#router-id ip-адрес