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

Протокол маршрутизации OSPF

< Лекция 12 || Лекция 13: 12 || Лекция 14 >
Аннотация: Рассмотрены особенности функционирования протокола состояния канала. Приведены общие сведения о протоколе OSPF и его конфигурировании. Даны примеры отладки сети.

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

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

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

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

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

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

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

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

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

Состояние связи (соединения) – это описание интерфейса, которое должно включать IP-адрес интерфейса, маску подсети, тип сети и так далее. Содержащаяся в топологической базе данных информация используется, чтобы вычислить лучшие пути через сеть. Для вычисления кратчайшего пути к адресату назначения строится дерево, где корнем является сам маршрутизатор. Затем отбираются кратчайшие пути к сетям назначения и помещаются в таблицу маршрутизации. При вычислениях используется алгоритм Дейкстры выбора первого кратчайшего пути (shortest path first algorithm). Построение топологического дерева с применением алгоритма Дейкстры позволяет формировать пути, свободные от маршрутных петель (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 \bullet (n-1)/2 обменов, на что должны быть выделены дополнительные ресурсы, прежде всего полоса пропускания.

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

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

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

После выбора 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-адрес

Метрика протокола OSPF

Протокол маршрутизации OSPF использует метрику cost. Метрика протокола OSPF базируется на полосе пропускания bandwidth. Алгоритм протокола рассчитывает суммарное значение метрики всех соединений через сеть. Меньшее число указывает лучший маршрут. Для вычисления метрики OSPF применяется следующая формула:

Метрика (Cost) = 108 / Bandwidth.

Соединение FastEthernet имеет стоимость 1 единица, Ethernet – 10 единиц, канал ОЦК со скоростью 64 Кбит/с – 1562,5 \approx 1562, канал со скоростью 128 Кбит/с – 781, канал Т1 – 64, канал Е1 – 48 единиц. Если маршрут состоит из нескольких соединений, то значения метрик складываются. Например, для сети ( рис. 13.2) метрика маршрута из локальной Сети 1 в локальную Сеть 2 будет складываться из метрики исходящей Сети 1 – Fast Ethernet (1), метрики соединения маршрутизаторов А и В (48), метрики соединения маршрутизаторов В и С (1562) и метрики сети назначения Ethernet (10).

Метрика сети OSPF

Рис. 13.2. Метрика сети OSPF

Суммарное значение метрики будет равно М \Sigma = 1+48+1562+10 = 1621.

Значение полосы пропускания может быть изменено по команде bandwidth, например:

Router(config)#interface serial 0/0
Router(config-if)#bandwidth 64

Изменение полосы пропускания должно соответствовать реальным линиям связи. Причем ширина полосы пропускания должна быть задана одинаковой на обеих сторонах соединения "точка-точка". Операционная система Cisco IOS позволяет задавать не только ширину полосы bandwidth, но и непосредственно значение cost по команде

Router(config-if)#ip ospf cost значение

Применение соединений Gigabit Ethernet и 10Gigabit Ethernet приводит к необходимости изменения значений метрики.

< Лекция 12 || Лекция 13: 12 || Лекция 14 >
Александр Хованский
Александр Хованский
в курсе построение сетей на базе коммутаторов и маршрутизаторов некорректно задан вопрос. звучит так сколько портов сконфинурировать в VLAN0 для управления коммутатором. (поменяйте например на VLAN1 или VLAN управления ) 0-го VLAN не может быть
Денис Кобзов
Денис Кобзов
Россия, Ноябрьск
Дмитрий Наумов
Дмитрий Наумов
Россия