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

Протоколы маршрутизации (RIP, OSPF и BGP)

Алгоритм Дейкстры

Для того чтобы вычислить таблицы маршрутизации, применяется алгоритм Дейкстры для баз данных состояния линии этого маршрутизатора ( рис. 8.12). Алгоритм Дейкстры вычисляет кратчайший путь между двумя точками в сети, используя граф по методу узлов и границ. Алгоритм разделяет узлы на два множества: пробные и постоянные. Он выбирает узлы, делает их пробными, анализирует их и, если они проходят по критериям, делает их постоянными. Мы можем информативно определить алгоритм, используя нижеследующие шаги.

Алгоритм вычисления наикратчайших путей

увеличить изображение
Рис. 8.12. Алгоритм вычисления наикратчайших путей

Работа алгоритма поясняется на рис. 8.13 На рис. 8.13 а приведен пример сети. Эта же сеть представлена в виде графа. На этом графе нанесена назначенная стоимость прохождения по участкам. Далее на рис. 8.13 б. приводится вычисление накопленной стоимости при прохождении.

Вычисление стоимости наикратчайшего участка

Рис. 8.13. Вычисление стоимости наикратчайшего участка

Сам алгоритм заключается в прохождении графа и вычислении накопленной стоимости. Алгоритм прохождения графа приведен во многих книгах. Ниже рассматривается порядок вычисления наикратчайшего пути. Номер следующего узла представляет накопленную стоимость от корневого узла. Заметим, что сеть достигает маршрутизатора E через два направления с накопленной стоимостью 14 и 10. При этом сохраняется направление с накопленной стоимостью 10, а второе удаляется.

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

Каждый маршрутизатор применяет метод наикратчайшего пути по дереву для построения своей таблицы маршрутизации. Таблица маршрутизации показывает стоимость достижения каждого узла в зоне, маршрутизатор использует извещения: суммарной линии сети, суммарной линии пограничного маршрутизатора и внешней линии. Табл. 8.2. показывает таблицу маршрутизации для маршрутизатора A согласно результатам вычислений по рис. 8.13 в.

Таблица 8.2. Таблица состояния линий для маршрутизатора A
Сеть Стоимость Следующий маршрутизатор Другая информация
N1 5
N2 7 C
N3 10 D
N4 11 B
N5 15 D

Типы пакетов

OSPF использует пять различных типов пакетов: пакет "hello", пакет распределения базы данных, пакет состояния линии, пакет обновления состояния линии и пакет подтверждения состояния линии.

Формат пакета

Все OSPF-пакеты имеют один и тот же состав заголовка ( рис. 8.14). Перед изучением различных типов пакетов рассмотрим этот общий заголовок.

Заголовок пакета OSPF

Рис. 8.14. Заголовок пакета OSPF

Версия. Это поле 6 бит, определяющее версию протокола OSPF. Текущая версия — 2.

Тип. Это поле 8 бит определяет тип пакета. Как уже сказано раньше, мы имеем пять типов пакетов, со значением от 1 до 5, определяющих типы.

Длина сообщения. Это поле 16 бит определяет длину всего сообщения, включая заголовок.

  • IP-адрес маршрутизатора источника. Это поле 32 бита определяет IP-адрес маршрутизатора, посылающего пакет.
  • Идентификация зоны. Это поле 32 бит определяет зону, в которой работает маршрутизатор.
  • Контрольная сумма. Это поле 16 бит используется для обнаружения ошибок во входящем пакете, исключая поля "аутентификация типа" и "аутентификация данных".
  • Тип аутентификации. Поле 16 бит, определяющее метод опознавания, который используется в этой зоне. Иногда определяют два типа опознавания: 0 для отсутствия и 1 для пароля.
  • Аутентификация данных. Это поле 64 бита для действующего значения данных. В будущем, когда определится больше типов опознавания, это поле будет содержать результат вычисления аутентификации. В настоящее время, если тип опознавания 0, это поле заполнено нулями. Если тип 1 — поле содержит пароль длиной восемь символов.

Сообщение "hello"

OSPF использует сообщение "hello" ( рис. 8.15) для создания отображения окружающей его сети и для проверки достижимости соседей. Это первый шаг в маршрутизации по состоянию линий. Прежде чем маршрутизатор может заполнить все другие маршрутизаторы своей информацией о соседях, он должен сначала стать доступным для обмена своим соседям. Он должен определить, работоспособны ли они. И он должен знать, доступны ли они.

Пакет "hello"

Рис. 8.15. Пакет "hello"

Маска сети. Это поле 32 бита определяет маску сети, по которой посылается сообщение "hello".

Интервал "hello". Это поле 16 бит определяет число секунд между сообщениями "hello".

E-флаг. Это поле 1 бит – флаг. Когда он установлен, это означает, что зона является ответвлением.

T-флаг. Это поле 1 бит флага. Когда он установлен, это означает, что маршрутизатор поддерживает множество метрик.

Приоритет. Это поле определяет приоритет маршрутизатора. Приоритет используется для выбора назначенного маршрутизатора. После того как все соседи объявят свои приоритеты, маршрутизатор с наивысшим приоритетом выбирается как назначенный. Один из них, имеющий второй наивысший приоритет, выбирается как резервный назначенный маршрутизатор. Если значение этого поля 0, это значит, что маршрутизатор не может никогда быть назначенным резервным маршрутизатором.

Интервал неисправности. Это поле 32 бита определяет число секунд до момента, когда маршрутизатор предположит, что сосед неисправен.

IP-адрес назначенного маршрутизатора. Это поле 32 бита — IP-адрес назначенного маршрутизатора для сети, через которую послано сообщение.

IP-адрес резервного назначенного маршрутизатора. Это поле 32 бита - IP-адрес резервного назначенного маршрутизатора для сети, через которую послано сообщение.

IP-адрес соседа. Это поле повторяет 32 бита, определяющее маршрутизаторы, которые согласованы как соседи для посылающего маршрутизатора. Другими словами, это текущий список всех соседей посылающего маршрутизатора, получивших сообщение "hello".

Сообщение описания базы данных

Когда маршрутизатор подключен к системе первый раз или после повреждения, ему нужно немедленно заполнить базу данных состояния связи. Чтобы создать свою собственную базу данных и вычислить таблицу маршрутов, он не может ждать, пока все состояния связи будут обновлены в соответствии с информацией, которая поступит от каждого из маршрутизаторов. Поэтому, после того как маршрутизатор подключен к системе, он посылает пакеты "hello" для того, чтобы оповестить соседей. Если соседи первый раз узнают об этом маршрутизаторе, они посылают пакет обновления с описанием собственной базы данных. Пакет обновления с описанием собственной базы данных не содержит полного описания информации о базе данных, он дает только краткое содержание, название каждой линейки в базе данных. Заново подключенный маршрутизатор анализирует общее описание и узнает, какие линейки информации у него отсутствуют. После чего он посылает один или более пакетов запросов состояния связи, чтобы иметь полную информацию об этих конкретных линиях. Когда два маршрутизатора хотят обменяться пакетами описания базы данных, один из них играет роль ведущего, а другой роль ведомого. Поскольку сообщение может быть очень длинным, содержание базы данных может быть разделено на несколько сообщений. Формат пакетов описания базы данных показан на рис. 8.16

Пакет сообщения описания базы данных

Рис. 8.16. Пакет сообщения описания базы данных

Он имеет следующие поля:

  • E-флаг. Это поле 1 бит – флаг, устанавливаемый на 1, если извещающий маршрутизатор — пограничный маршрутизатор автономной системы (E означает внешний, external).
  • B-флаг. Это поле 1 бит – флаг, устанавливаемый на 1, если извещающий маршрутизатор принадлежит автономной системе.
  • I-флаг. Это поле 1 бит – инициализирующий флаг, устанавливаемый на 1, если сообщение есть первое сообщение.
  • M-флаг. Это поле 1 бит – флаг "еще больше", устанавливаемый на 1, если это не последнее сообщение.
  • M/S-флаг. Это поле 1 бит – ведомый/ведущий, указывает, что источник пакета — ведомый (M/S=1) или ведущий (M/S=0).
  • Порядковый номер сообщения. Это поле 32 бита содержит порядковый номер сообщения. Этот номер используется для сравнения запроса с откликом.
  • LSA-заголовок. Это 20-байтное поле, используемое при каждом сообщении о состоянии связи (LSA). Формат этого заголовка обсуждался в разделе "сообщение обновления состояния линии" Этот заголовок — краткое описание каждой линии, без деталей. Он повторяется для каждой линии в линейке состояний базы данных.
Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Алексей Гончаренко
Алексей Гончаренко
Россия
Айбек Куттымурат
Айбек Куттымурат
Казахстан, Алматы