Сидни Фейт - TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Рис. 8.15. Определение виртуальной связи
8.13.5 Маршрутизация через грань области OSPF
Маршрутизатор грани имеет все данные о топологии каждой из подключенных к нему областей. Кроме того, он знает и всю топологию магистрали, поскольку подключен к ней непосредственно.
8.13.6 Использование итоговой информации внутри области OSPF
Каждый маршрутизатор грани создает итоговую информацию об области и указывает другим маршрутизаторам магистрали, насколько далеко они расположены относительно сети его области. Это позволяет каждому маршрутизатору грани вычислять расстояние до точки назначения вне его собственной области и пересылать эти сведения внутрь собственной области.
Итоговая информация содержит сведения о сети, подсети или идентификатор суперсети, а также маску сети и расстояние от маршрутизатора до внешней сети.
Например, на рис. 8.16 маршрутизатору E нужно выбрать путь к сети M. Маршрутизатор E использует базу данных своей области для поиска расстояния dc и df до маршрутизаторов граней С и F. Каждый из них сообщает сведения о своем расстоянии mc и mf до сети M. Маршрутизатор E может сравнить dc+ mc и df+mf и выбрать кратчайший маршрут.
Рис 8.16. Маршрутизация между областями
Отметим, что маршрутизатор В может не беспокоиться о пересылке итоговых сведений о расстоянии в область 1. Существует только один путь из этой области и можно использовать единственный элемент, описывающий путь по умолчанию, который применим для всех внешних точек назначения. Если область имеет единственный маршрутизатор грани или если неважно, какой из нескольких маршрутизаторов будет использован, то такая область именуется тупиковой (stub), и для доступа из нее к внешней точке назначения должен использоваться один или несколько маршрутизаторов по умолчанию.
8.13.7 Точка назначения вне автономной области OSPF
Многие автономные системы соединены с Интернетом или другими автономными системами. Маршрутизаторы границ (boundary, не путать с гранями. — Прим. пер.) предоставляют информацию о расстоянии до сети, расположенной вне автономной системы.
В OSPF существует два типа метрик для внешнего расстояния. Тип 1 эквивалентен метрике состояния локальной связи. Метрика типа 2 служит для длинных расстояний — она измеряет величины в большом диапазоне. Используя аналогию, можно уподобить метрику типа 2 километражу по общенациональной карте автодорог, на которой расстояния измеряются в сотнях км, а метрику типа 1 — километражу по карте отдельной области, где расстояния измеряются в км.
На рис. 8.17 показаны два маршрута к внешней сети N. На таком расстоянии игнорируется метрика типа 1, а вычисления производятся по метрике типа 2 (будет выбран маршрут со значением этой метрики, равным 2).
Рис. 8.17. Выбор маршрута по метрике типа 2
Еще одной возможностью OSPF (специально предназначенной для провайдеров) является возможность маршрутизатора границы автономной системы работать в качестве сервера маршрутизации (route server) и предоставлять сведения, идентифицирующие другие маршрутизаторы границ. Такие сведения должны включать:
Точку назначения, Метрику, Используемый маршрутизатор границы
8.13.8 Протокол OSPF
Теперь мы готовы описать некоторые внутренние свойства протокола OSPF. Каждый маршрутизатор OSPF обслуживает подробную базу данных с информацией для создания дерева маршрутизации области. Например, в базе данных отражены:
■ Каждый интерфейс маршрутизатора, соединения и связанные с ними метрики
■ Каждая сеть с множественным доступом и список всех маршрутизаторов такой сети
Как маршрутизатор получает эту информацию? Он начинает исследование с поиска своих ближайших соседей, используя для этого сообщения Hello.
8.13.9 Сообщения Hello
Каждый маршрутизатор OSPF конфигурируется с уникальным идентификатором, использующимся в сообщениях. Обычно в качестве идентификатора применяют наименьшую часть IP-адреса этого маршрутизатора.
Маршрутизатор периодически отправляет в многоадресной рассылке сообщение Hello! (Привет!) в сети с множественным доступом (например, локальные сети Ethernet, Token-Ring или FDDI), чтобы другие маршрутизаторы смогли узнать о его активности. Это же сообщение посылается на другие концы подключенных линий "точка-точка" или виртуальных цепей, чтобы партнеры по этим связям смогли узнать о рабочем состоянии маршрутизатора.
Причина эффективности сообщения Hello кроется в передаваемом в нем списке идентификаторов ближайших соседей, от которых отправитель уже получил аналогичные сообщения. Таким способом каждый маршрутизатор узнает, через кого прошло сообщение.
8.13.10 Назначенный маршрутизатор
В сетях с множественным доступом сообщение Hello используется, кроме прочего, для выбора и идентификации назначенного маршрутизатора (designated router), который выполняет две задачи:
■ Несет ответственность за надежность изменений в базах данных своих смежных соседей в соответствии с последними изменениями в топологии
■ Служит источником объявления о сетевых связях (network link advertisement), в которых перечисляются все маршрутизаторы, подключенные к сети с множественным доступом
На рис. 8.18 назначенный маршрутизатор А обменивается сведениями с маршрутизаторами В, С и D своей сети, а также с маршрутизатором E, подключенным по связи "точка-точка".
Рис. 8.18. Назначенный маршрутизатор обновляет сведения о сети у своих соседей
8.13.11 Смежность маршрутизаторов
Назначенный маршрутизатор А является главным хранителем текущих сведений о сетевой топологии, предоставляя их для смежных с ним маршрутизаторов.
Маршрутизаторы В, С и D синхронизируют содержимое своих баз данных с маршрутизатором А. Они не обмениваются этими сведениями друг с другом. Два маршрутизатора, которые синхронизируют свои базы данных, называются смежными (adjacent). Маршрутизаторы В и С являются соседями, но не являются смежными.
Ясно, что назначенный маршрутизатор обеспечивает эффективный метод согласования содержимого баз данных маршрутизаторов локальной сети. Этот же способ применяется в сетях Frame Relay и X.25. Маршрутизаторы могут обмениваться сообщениями Hello по виртуальным цепям, выбирать назначенный маршрутизатор и синхронизовать с ним свои базы данных. Все это позволяет ускорить процесс синхронизации сведений о сети и снизить сетевой трафик.
Потеря назначенного маршрутизатора приведет к серьезному нарушению работы в сети. Поэтому следует всегда выполнять резервное копирование информации из назначенного маршрутизатора и быть готовым к восстановлению этих данных.
8.13.12 Инициализация базы данных маршрутизации
Предположим, что выполняется запуск маршрутизатора В после завершения его профилактического обслуживания с выключением питания. Прежде всего В начинает прослушивать сообщения Hello, исследуя с их помощью своих ближайших соседей и определяя назначенный маршрутизатор (А). Далее В обновляет свои сведения при обмене с А.
Если говорить более строго, то А и В обмениваются сообщениями Database Description (описание базы данных). В этих сообщениях находится список содержимого базы данных каждого маршрутизатора. Все элементы таблицы имеют порядковый номер, служащий для определения того, какой из маршрутизаторов содержит более свежие сведения (последовательный номер элемента увеличивается при каждом обновлении этого элемента, и обычно отсчет начинается с нуля).
После завершения обмена каждый маршрутизатор будет знать:
■ Какой элемент еще не находится в локальной базе данных
■ Какой элемент имеется, но не содержит информации
Сообщения Link State Request (запрос о состоянии связи) применяются для элементов, требующих обновления. Сообщение Link State Update (изменение состояния связи) приходит в ответ на Link State Request. После полного (и подтвержденного) обмена информацией базы данных считаются синхронизированными. Сообщения Link State Update применяются и для формирования отчета об изменениях в сетевой топологии. С их помощью такие изменения становятся известными по всей сети, и все базы данных синхронизируются.
8.13.13 Типы сообщений в OSPF
Протокол OSPF использует сообщения пяти типов:
Hello "Привет!" Используется для идентификации соседей, выбора и поиска в сети назначенного маршрутизатора, а также в качестве сигнала "Я присутствую в сети!". Database Description Описание базы данных Используется во время инициализации для обмена информацией, чтобы маршрутизатор мог найти сведения, отсутствующие в его базе данных. Link State Request Запрос состояния связи Служит для запроса данных, которых маршрутизатор не обнаружил в своей базе данных, либо когда его данные уже устарели. Link State Update Изменение состояния связи Применяется в ответ на Link State Request и для динамического обмена сведениями о сетевой топологии. Link State ACK Подтверждение состояния связи Используется для подтверждения приема Link State Update. Отправитель повторно отсылает данные, пока не получит это сообщение.8.13.14 Сообщения OSPF