Главная страница Развитие телекоммуникационных сетей Таблица П.2. Запись в базе состояний после подключения тупиковой сети
Протокол OSPF производит разграничение хостов и маршрутизаторов. Если к IP-cemu N1 подключен еще и один из интерфейсов маршрутизаторов 2 или 5, то связь между 2 и 4 маршрутизаторами или 5 и 4 маршрутизаторами будет установлена отдельно, как если бы они были соединены линией связи по типу точка-точка . Тогда маршрутизаторы 2 и 5 также будут соединены с тупиковой сетью N1. При подключении тупиковой сети N1 в базе данных состояния связей появится запись (табл. П.2). Связей, направленных из вершины N1, в базе данных не будет, потому что вершина N1 не является маршрутизатором. Построение маршрутов до вершины N1 будет произведено каждым маршрутизатором обычным способом по алгоритму SPF. Поддержка множественных маршрутов. Если между двумя узлами сети существует несколько маршрутов с одинаковыми или близкими по значению метриками, протокол OSPF позволяет направить часть трафика по этим маршрутам в пропорции, соответствующей значениям метрик. Например, если существует два альтернативных маршрута с метриками 1 и 2, то две трети трафика будет направлено по первому из них, а оставшаяся треть - по второму. Положительный эффект от использования такого механизма заключается в уменьшении средней задержки прохождения дейтаграмм между отправителем и получателем, а также в уменьшении колебаний значения средней задержки. Менее очевидное преимущество поддержки множественных маршрутов состоит в следующем. Если при использовании только одного из возможных маршрутов этот маршрут внезапно выходит из строя, весь трафик будет разом перемаршрутизирован на альтернативный маршрут, при этом во время процесса массового переключения больших объемов трафика с одного маршрута на другой весьма велика вероятность образования затора на новом маршруте. Если же до аварии использовалось разделение трафика по нескольким маршрутам, отказ одного из них вызовет перемаршрутизацию лишь части трафика, что существенно сгладит нежелательные эффекты. Рассмотрим пример, иллюстрирующий работу особенности поддержки множественных маршрутов (рис. П.4). Узел 1 отправляет данные в узел 3, используя поддержку множественных маршрутов, по маршрутам С (2/3 трафика) и по маршрутам А и В (1/3 трафика). Однако узел 2 тоже поддерживает механизм множественных путей, и когда к нему прибывают дейтаграммы, адре- Рис. П.4. Пример особой ситуации при поддержке множественных маршрутов сованные в узел 3 (в том числе, и отправленные из узла 1), он применяет к ним ту же логику, т.е. 2/3 трафика отправляется в узел 3 по маршруту В, а одна треть - по маршрутам А и С. Следовательно, 1/9 дейтаграмм, отправленных узлом 1 в узел 3, возвращаются опять в узел 1, и тот 1/3 трафика опять отправляет в узел 3 по маршруту С, а 2/3 трафика по маршруту А и В через узел 2 и т.д. В итоге сформировался частичный цикл при посылке дейтаграмм из узла 1 в узел 3, который, помимо частичного зацикливания дейтаграмм, ведет к быстрой перегрузке линии А. Для того чтобы избежать зацикливания, следует воспользоваться следующим правилом: если узел X отправляет данные в узел У, он может пересыпать их через узел Q только в том случае, если Q ближе к У, чем X. Накладывающиеся маршруты. Пусть в графе OSPF-системы некий маршрутизатор имеет связи с вершинами N и М, которые представляют сети хостов, подключенные к различным интерфейсам маршрутизатора. Это означает, что в таблице маршрутов этого маршрутизатора будет две записи: одна для сети N, другая для сети М. Предположим теперь, что адрес и маска сети М таковы, что она является подсетью сети N. Например, N = 173.26.0.0 netmask 255.255.0.0; М = 173.26.11.0 netmask 255.255.255.0. В этом случае дейтафаммы, следующие по адресу, находящемуся в обеих сетях, будут отправлены в сеть с более длинной маской. Например, адрес 173.26.11.1 находится как в сети N, так и в сети М, но маска сети М длиннее, следовательно, дейтафамма, следующая по этому адресу, будет отправлена в сеть М. Внешние маршруты. Для достижения сетей, не входящих в OSPF-систему (в автономную систему), используются пограничные маршрутизаторы автономной системы (autonomous system border router, ASBR), имеющие связи, уходящие за пределы системы. ASBR вносят в базу данных состояния связей данные о сетях за пределами системы, достижимых через тот или иной ASBR. Такие сети, а также ведущие к ним маршруты, называются внешними (external). В простейшем случае, если в системе имеется только один ASBR, он объявляет через себя маршрут по умолчанию (default route), и все дейтаграммы, адресованные в сети, не входящие в базу данных системы, отправляются через этот маршрутизатор. Если в системе имеется не- сколько ASBR, то, возможно, внутренним маршрутизаторам системы придется выбирать, через какой именно пограничный маршрутизатор нужно отправлять дейтаграммы в ту или иную внешнюю сеть. Это делается на основе специальных записей, вносимых ASBR в базу данных системы. Эти записи содержат адрес и маску внешней сети и метрику расстояния до нее, которая может быть, а может и не быть, сравнимой с метриками, используемыми в OSPF-системе. Если возможно, адреса нескольких внешних сетей агрегируются в общий адрес с более короткой маской. ASBR может получать информацию о внешних маршрутах от протоколов внешней маршрутизации, а также все или некоторые внешние маршруты могут быть сконфигурированы администратором (в том числе единственный маршрут по умолчанию). Основные форматы сообщений. После инициализации модуля OSPF (например, после подачи питания на маршрутизатор) через все интерфейсы, включенные в OSPF-систему, начинают рассьтаться Hello-сообщения. Задача Hello-протокола - обнаружение соседей и установление с ними отношений смежности. Соседями называются OSPF-маршрутизаторы, подключенные к одной сети (к одной линии связи) и обменивающиеся Hello-сообщениями. Смежными называются соседние OSPF-маршрутизаторы, которые приняли решение обмениваться друг с другом информацией, необходимой для синхронизации базы данных состояния связей и построения маршрутов. Не все соседи становятся смежными. Другая задача протокола Hello - выбор выделенного маршрутизатора в сети с множественным доступом, к которой подключено несколько маршрутизаторов. Hello-пакеты продолжают периодически рассылаться и после того, как соседи были обнаружены. Таким образом маршрутизатор контролирует состояние своих связей с соседями и может своевременно обнаружить изменение этого состояние (например, обрыв связи или отключение одного из соседей). Обрыв связи может быть также обнаружен и с помощью протокола канального уровня, который просигнализирует о недоступности канала. В сетях с возможностью широковещательной рассылки (broadcast networks) Hello-пакеты рассылаются по мультикастинговому адресу 224.0.0.5 ( Всем OSPF-маршрутизаторам ). В других сетях все возможные адреса соседей должны быть введены администратором. OSPF-заголовок. Размер OSPF-сообщения ограничен максимальным размером дейтаграммы. Все сообщения OSPF имеют общий заголовок; следующий в дейтаграмме непосредственно за IP-заголовком (рис. П.5). Рассмотрим назначение полей: Поле Версия (1 октет) - версия протокола; Поле тип сообщения (1 октет), применяются следующие типы сообщений:
Рис. П.5. Формат заголовка OSPF 1. Hello - используется для знакомства с соседями. 2. Описание базы данных (Database Description) - сообщает о том, насколько свежей информацией располагает отправитель. 3. Запрос состояния связей (Link State Request) - запрашивает информацию у партнера. 4. Обновление состояния связей (Link State Update) - сообщает соседям информацию о связях отправителя. 5. Подтверждение приема сообщения о состоянии связей (Link State Acknowledgment) - подтверждает обновление состояния связей. Длина сообщения в октетах, включая заголовок (2 октета). Идентификатор маршрутизатора, отправившего сообщение (4 октета), - равен адресу одного из IP-интерфейсов маршрутизатора. У маршрутизаторов Cisco это наибольший из адресов локальных интерфейсов, а если таковых нет, то наибольший из адресов внешних интерфейсов. Номер области, к которой относится данное сообщение (4 октета), - номер О зарезервирован для машстрали. Часто номер области полагают равным адресу 1Р-сети (одной из IP-сетей) этой области. Контрольная сумма (2 октета) - охватывает все OSPF-сообщение, включая заголовок, но исключая поле аутентификационные данные ; вычисляется по тому же алгоритму, что и в IP-заголовке. Аутентификации сообщения (2 октета). Стандарт определяет несколько возможных типов, самые простые из них: О - нет аутентификации, 1 - аутентификация с помощью пароля. Аутентификационные данные (8 октетов) - например, восьмисимвольный пароль. Далее при рассмотрении формата сообщений вышеописанный заголовок будет изображаться в виде поля OSPF-заголовок , помещенного в начало сообщения. Рассмотрим значение полей сообщения Hello (рис. П.6): Маска IP-cemu (4 октета), - в которой находится интерфейс маршрутизатора, отправившего сообщение. Период посылки Hello (2 октета) - сообщений, в секундах. Опции (1 октет) - определено значение нескольких бит: DC, ЕА, N/P, МС, Е, Т. Сообщение Hello OSPF-заголовок Маска IP-сети Интервал Hello Опции Приоритет Время Идентификатор выделенного маршрутизатора Идентификатор запасного выделенного маршрутизатора Список идентификаторов соседей Список идентификаторов соседей Рис. П.6. Формат сообщения Hello Бит Т установлен. Поддерживается маршрутизация по типу сервиса (этот бит исключен из последней версии стандарта OSPF, но может поддерживаться для совместимости с предыдущими версиями). Бит Е установлен. Маршрутизатор может принимать и объявлять внешние маршруты через данный интерфейс, сброшен данный интерфейс маршрутизатора, принадлежит тупиковой области. Бит МС установлен. Маршрутизатор поддерживает маршрутизацию мультикастинговых дейтаграмм (RFC 1584). Бит N/P установлен. Данный интерфейс маршрутизатора принадлежит не совсем тупиковой области (NSSA). Бит ЕА установлен. Маршрутизатор может получать и ретранслировать объявления о внешних атрибутах (к настоящему моменту описание опции не разработано). Бит DC установлен. Маршрутизатор поддерживает работу с соединениями, устанавливаемыми по требованию (demand circviits, RFC 1793) - это, например, означает, что записи о связях, устанавливаемых по требованию, не устаревают. Поле Опции используется для согласования возможностей маршрутизаторов-соседей (маршрутизатор может прервать соседские отношения, если какие-то опции соседа его не устраивают) и для определения того, какую информацию о состоянии связей не нужно посылать маршрутизатору-соседу, потому что он все равно не сможет ее обработать. Приоритет (1 октет) - приоритет маршрутизатора; устанавливается администратором, используется при выборах выделенного маршрутизатора; маршрутизатор с нулевым приоритетом никогда не будет избран. Время (4 октета) - время в секундах, по истечении которого маршрутизатор-сосед, не посылающий сообщения Hello, считается отключенным. Идентификатор выделенного маршрутизатора (4 октета) - с точки зрения маршрутизатора, посылающего сообщение (О, если выделенный маршрутизатор еще не выбран). Идентификатор запасного выделенного маршрутизатора (4 октета) - с точки зрения маршрутизатора, посылающего сообщение (О, если запасной выделенный маршрутизатор еще не выбран). Список идентификаторов соседей, от которых получены Hello-сообщения за последние Dead Interval секунд; число полей Neighbor определяется из общей длины сообщения, указанной в OSPF-заго-повке. Длина одного поля - 4 октета. После того, как пара маршрутизаторов начинает обмениваться Hello-сообщениями с каким-то соседом, этот процесс проходит через несколько стадий: DOWN - сосед не обнаружен или отключился; INIT - послано Hello-сообщение или получено от маршрутизатора, еще не зачисленного в список соседей; 2-WAY (двусторонняя связь) - получено Hello-сообщение, в котором данный маршрутизатор-получатель перечислен в списке соседей, а отправитель этого сообщения также зачислен в список соседей данного маршрутизатора; WAIT - ожидание в течение Dead Interval секунд для обнаружения всех соседей; в это время маршрутизатор передает Hello-сообщения, но не участвует в выборах выделенного маршрутизатора и в синхронизации баз данных; EXSTART - установление ролей главный/подчиненный и инициализация структур данных для обмена описаниями баз данных (протокол обмена); EXCHANGE - обмен описаниями баз данных (протокол обмена); LOADING - синхронизация баз данных, пересылка сообщений-запросов о состояниях связей и ответов на них (протокол обмена); FULL - базы данных синхронизированы. Каждый маршрутизатор самостоятельно производит выборы выделенного и запасного выделенного маршрутизаторов на основании имеющихся у него данных о соседях и о том, кого каждый из соседей назначил на эту роль. Фактически процесс выборов происходит постоянно, после получения каждого Hello-сообщения, но алгоритм гарантирует, что при стабильном состоянии сети всеми маршрутизаторами будут выбираться одни и те же идентификаторы выделенного маршрутизатора (Designated Router, DR) и идентификаторы запасного выделенного маршрутизатора (Backup Designated Router, BDR). Каждый маршрутизатор может объявить себя либо выделенным, либо запасным, поместив свой идентификатор в соответствующее поле своих Hello-сообщений. Иначе он может поместить туда адреса других маршрутизаторов, если он считает их занимающими соответ-
|
© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования. |