Основные протоколы интернет

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

Разбить на страницы
Показывать лекцию целиком

Интернет – это комбинация сетей, соединяемых с помощью маршрутизаторов. Когда дейтаграмма идет от источника к пункту назначения, она, вероятнее всего, проходит много маршрутизаторов, пока достигает маршрутизатора, закрепленного за сетью пункта назначения. Маршрутизатор получает пакет от сети и передает его другой сети. Маршрутизатор обычно закрепляется за несколькими сетями. Когда он получает пакет, он должен решить две задачи:

  • к какой сети он должен его передать;
  • по какому пути.
  • Последнее решение основано на выборе оптимального пути. Какой доступный путь является оптимальным путем? Это обычно определяется метрикой. Метрика – это условная стоимость передачи по сети. Полное измерение конкретного маршрута равно сумме метрик сетей, которые включают в себя маршрут. Маршрутизатор выбирает маршрут с наименьшей метрикой. Метрика назначается для интерфейса сети в зависимости от типа протокола. Некоторые простые протоколы, подобно протоколу маршрутной информации (RIP – Routing Information Protocol), рассматривают все сети как одинаковые. Тогда стоимость прохождения через каждую сеть — одна и та же, и для определения метрики подсчитываются участки. Так, если пакет, чтобы достигнуть конечного пункта, проходит через 10 сетей, полная стоимость составляет 10 участков.

    Другие протоколы, такие как "первоочередное открытие наикратчайших путей" (OSPF — Open Shortest Path First), позволяют администратору назначить стоимость для передачи через сеть, основанную на типе требуемого обслуживания. Маршрут через сеть может иметь различную стоимость (метрику). Например, если для типа сервиса желательна максимальная производительность, спутниковый канал имеет меньшую метрику, чем оптическая линия. С другой стороны, если типу сервера желательна минимальная задержка, оптическая линия имеет меньшую метрику, чем спутниковый канал. OSPF позволяет каждому маршрутизатору иметь таблицу последовательностей маршрутов, основанную на требуемом типе сервиса.

    Другие протоколы определяют метрику различно. В протоколе пограничной маршрутизации (BGPBorder Gateway Protocol) критерий — это политика, которую может устанавливать администратор. Политика — это принцип, по которому определяется путь.

    В любой метрике маршрутизатор должен иметь таблицы маршрутизации, чтобы консультироваться при дальнейшей передаче пакета. Таблица маршрутизации задает оптимальный путь для пакета. Таблица может быть либо статическая, либо динамическая. Статическая таблица — одна из тех, которые часто не меняются. Динамическая таблица — одна из тех, которая обновляется автоматически, когда имеются изменения где-либо в Интернете. Сегодня Интернет нуждается в динамических таблицах. Таблицы нужно обновлять по мере появления изменений в Интернете. Например, их нужно обновить, когда маршрут вышел из строя, или они должны быть обновлены всякий раз, когда создается лучший маршрут.

    Протоколы маршрутизации созданы для отображения требований таблиц динамической маршрутизации. Протокол маршрутизации — комбинация правил и процедур, которые позволяют в Интернете маршрутизаторам информировать друг друга об изменениях. Протоколы маршрутизации также включают процедуры для комбинирования информации, полученной от других маршрутизаторов.

    В этой лекции мы поговорим об однонаправленных протоколах маршрутизации. Многонаправленные протоколы маршрутизации мы обсудим в следующей лекции.

    Внутренняя и внешняя маршрутизация

    Сегодня Интернет — громадная сеть, так что один протокол маршрутизации не может обрабатывать задачу обновления таблиц всех маршрутизаторов. По этой причине Интернет разделяется на автономные системы. Автономная система (Autonomous System – AS) — группа сетей и маршрутизаторов под управлением одного администратора. Маршрутизация внутри автономной системы отнесена к внутренней маршрутизации. Маршрутизация между автономными системами отнесена к внешней маршрутизации. Каждая автономная система может выбрать протокол внутренней маршрутизации для того, чтобы обрабатывать маршрутизацию внутри автономной системы. Однако для обработки маршрутизации между автономными системами выбирается только один протокол маршрутизации.

    Разработано несколько внутренних и внешних протоколов. В этой лекции мы коснемся только наиболее популярных из них — внутренних протоколов RIP и OSPF и одного внешнего протокола BGP. RIP и OSPF используются для обновления таблиц маршрутизации внутри автономной системы. Протокол BGP применяется в обновлении таблиц маршрутизации для маршрутизаторов, которые объединяют вместе автономные системы.

    Протокол маршрутной информации (RIP)

    Протокол маршрутной информации (RIP – Routing Information Protocol) — внутренний протокол маршрутизации, используется внутри автономной системы. Это очень простой протокол, основанный на применении дистанционного вектора маршрутизации. В этом разделе сначала рассмотрим принцип дистанционного вектора маршрутизации, так как он применяется в RIP, а затем обсудим сам протокол RIP.

    Вектор расстояния маршрутизации

    Используя вектор расстояния маршрутизации, каждый маршрутизатор периодически делится своей информацией о входах в Интернет со своими соседями. Ниже приводятся три основных принципа этого процесса, для того чтобы понять, как работает алгоритм.

  • Распределение информации о входе в автономную систему. Каждый маршрутизатор распределяет информацию о входе соседним автономным системам. Вначале эта информация может быть не подробной. Однако объем и качество информации не играют роли. Маршрутизатор посылает, во всяком случае, все что имеет.
  • Распределение только соседям. Каждый маршрутизатор посылает свою информацию только к соседям. Он посылает информацию, которую получает через все интерфейсы.
  • Распределение через регулярные интервалы. Каждый маршрутизатор посылает свою информацию соседней автономной системе через фиксированные интервалы, например, каждые 30 с.
  • Таблицы маршрутизации

    Каждый маршрутизатор хранит таблицы маршрутизации, имеющие один вход для каждой сети назначения, которую маршрутизатор зарегистрировал. Вход содержит:

  • адрес сети пункта назначения,
  • кратчайший путь для того, чтобы достичь пункта назначения, отсчитываемый в участках,
  • следующий участок (следующий маршрутизатор), к которому должен быть доставлен пакет по пути к своему конечному пункту назначения,
  • счетчик участков – это число сетей, которые пакет пересечет для достижения своего конечного пункта назначения.
  • Таблица может содержать другую информацию, такую как маску подсети (или префикс) или время, когда этот вход был обновлен. Табл. 8.1. показывает пример таблицы маршрутизации.

    Таблица вектора расстояния маршрутизации
    Номер входа в таблицу участков Пункт назначения Счет участков Следующий участок Другая информация
    0 163.5.0.0 7 172.6.23.4
    1 197.5.13.0 5 176.3.6.17
    2 189.45.0.0 4 200.5.1.6
    3 115.0.0.0 6 131.4.7.19

    Алгоритм обновления таблиц в RIP

    Таблица маршрутизации обновляется после получения "квитанции" ответного сообщения RIP. На рис. 8.1 показан алгоритм модификации, использованный RIP.

    (рис 8.1) Алгоритм обновления таблицы маршрутизации

    На рис. 8.2 показан пример обновления таблицы. Маршрутизатор получает RIP-сообщение от соседнего маршрутизатора. Сообщение перечисляет сети пунктов назначения и их соответствующие счетчики участков. Первый шаг соответствует алгоритму обновления по рис. 8.1. Он увеличивает счетчики участков сообщения на единицу. Следующий шаг алгоритма RIP обновления: таблица, полученная в сообщении, и старая таблица маршрутов сравниваются. Результат — это таблица маршрутизации с обновленными счетчиками участков для каждого пункта назначения. Для "Сети 1" нет новой информации в сообщении, поэтому вход "Сети 1" остается без изменений.

    (рис 8.2) Пример обновления таблицы

    Для "Сети 2" информация в таблице и сообщения определены как счетчик участков от маршрутизатора C. Хотя значения счета участков (см. рис. 8.2) в таблице (2) меньше, чем единица сообщения (5), алгоритм выбирает значение, полученное в сообщении, потому что исходное значение пришло от того же самого маршрутизатора C.

    "Сеть 3" в таблице отсутствует, в таблицу устанавливается значение сообщения. Таблица дополняется новой сетью. Для "Сети 6" RIP-сообщение содержит меньшее значение счетчика участков, поэтому значение маршрутизатора F, содержащееся в таблице, заменяется на C (значение маршрутизатора, предоставившего более короткий путь), а в таблицу записывается значение счетчика участков, содержащееся в сообщении. "Сеть 8" сохраняет первоначальное значение, поскольку соответствующий счетчик участков в сообщении равен значению аналогичного счетчика в таблице. "Сеть 9" в сообщении имеет большее значение, но оно не касается узла, от которого пришло сообщение, поэтому в новой таблице сохраняется старое значение.

    Инициализация таблицы маршрутизации

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

    Обновление таблицы маршрутизации

    Каждая таблица маршрутизации обновляется по сигналу RIP-сообщения, используя RIP-алгоритм обновления, рассмотренный выше.

    Формат сообщения RIP

    Формат сообщения RIP показан на рис. 8.3.

    (рис 8.3) Формат RIP сообщения
  • Команда. Это поле 8 бит задает тип сообщения: запрос (1) или ответ (2).
  • Версия. Это поле 8 бит определяет версию. В этой книге мы используем версию 1, но в конце этого раздела мы назовем некоторые особенности версии 2.
  • Семейство. Это поле 16 бит определяет семейство используемых протоколов. Для TCP/IP значение равно 2.
  • Адрес сети. Поле адрес определяет адрес пункта назначения. RIP отводит 14 байт для этого поля в приложении к любым протоколам. Однако IP в настоящее время использует только 4 байта. Остаток адреса заполняется нулями.
  • Расстояние. Это поле 32 бита определяет счет участков для каждого объявленного маршрутизатора к сети назначения.
  • Заметим, что часть сообщения повторяется для каждой сети назначения. Эта часть относится к понятию вход.

    Запрос и ответ

    RIP имеет два типа сообщения: запрос и ответ.

    Запрос

    Сообщение-запрос посылается маршрутизатором, который только что включен в систему, или маршрутизатором, который запущен по таймауту. Запрос может запрашивать о задании одного входа или всех входов. В первом случае в поле "адрес сети" указывается сетевой адрес, во втором — все поле заполняется нулями.

    Ответ

    Ответ может быть двух типов: либо запрошенный, либо не запрошенный. Запрошенный ответ посылается только в ответ на запрос. Он содержит информацию о пункте назначения, заданном в соответствующем запросе. Не запрошенный ответ посылается периодически, каждые 30 с., и содержит информацию о входе в таблицу маршрутизации. Этот периодический ответ иногда называется обновлением пакета.

    Таймеры в RIP

    RIP использует три таймера для поддержки своих операций: периодический таймер посылает сообщения, таймер окончания времени проверяет правильность маршрута и третий таймер собирает мусор объявленных ошибочными маршрутов.

    Периодический таймер

    Периодический таймер контролирует объявленные регулярные и сообщения обновления. Хотя протокол задает, что этот таймер может быть установлен на 30 с., работающая модель использует случайное число между 25 и 35 с. Это сделано, чтобы предотвратить любую возможную синхронизацию и, в связи с этим, перегрузку Интернета, если маршрутизаторы станут обновляться одновременно.

    Каждый маршрутизатор должен иметь один периодический таймер, который устанавливается случайно между 25 и 35. Он отсчитывает время назад; когда достигается нуль, посылается сообщение обновления и таймер снова устанавливается на случайную величину.

    Если RIP использует методы дополнительного таймирования для рассылки обновлений, периодический таймер не подходит. Сообщения периодического обновления выходят по их собственному расписанию, не учитывая другие сообщения обновления от других систем таймирования.

    Таймер истечения срока

    Таймер истечения срока управляет утвержденным маршрутом. Когда маршрутизатор получает информацию обновления для маршрута, таймер окончания устанавливается на 180 с. для конкретного маршрута. Каждый раз, когда получено новое обновление для маршрута, таймер переустанавливается. В нормальной ситуации это возникает каждые 30 с. Однако если имеются проблемы в Интернете и не получено обновление в течение установленных 180 с, маршрут считается законченным и счет участков маршрута устанавливается на 16, что означает, что пункт назначения не достижим. Каждый маршрут имеет свое собственное время окончания.

    Таймер сбора мусора

    Когда поступила некорректная информация о маршруте, маршрутизатор не сразу стирает маршрут из своей таблицы. Вместо этого он продолжает объявлять маршрут со значением счетчика 16. На это время таймер называется таймером сбора мусора и устанавливается на 120 с. для этого маршрута. Когда счет достигает нуля, маршрут стирается из таблицы. Это время позволяет соседям получить сведения о недействительности маршрута, прежде чем он будет изъят.

    Медленная сходимость

    Одна из проблем RIP — медленная сходимость, то есть изменения, произошедшие на одном из участков Интернета, распространяются очень медленно через остальной Интернет. Допустим, имеется изменение на "Сети 1", управляемой маршрутизатором R1. Он обновляется немедленно. Однако поскольку каждый маршрутизатор посылает свои периодические обновления каждые 30 с., то пройдет в среднем 15 с. (в пределах от 0 до 30), прежде чем изменения достигнут следующего узла (обозначим его R2). Если распространить эти рассуждения на другие участки (среднее время 15 с.), то пройдет 30 с. до того момента, когда третий маршрутизатор (R3) получит изменения, и так далее. Когда информация, в конечном счете, достигает маршрутизатора Rn, проходит 15 * (n – 1) с. Если n = 20, тогда это 285 с. За это время сеть ATM может передать более чем один миллиард бит. Если эти изменения не затронут этих передач, то будут потеряны миллиарды бит.

    Один метод сокращения этого недостатка — лимитировать счетчик участков до 15. Это предотвращает пакеты данных от вечного блуждания – "зацикливания" Интернета. Автономная система, используемая RIP, ограничена числом переприемных участков 15. Поэтому число 16 означает недостижимую сеть.

    Нестабильность

    Гораздо более важная проблема RIP — нестабильность, которая означает, что сеть Интернет, работающая по протоколу RIP, может стать нестабильной.

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

    Для того чтобы понять проблему, предположим, что соединение к Сети 1 на рис. 8.4. не работает. Маршрутизатор A показывает стоимость 1 для этой сети в его таблице маршрутизации. Когда доступ определяет, что Сеть 1 повреждена, маршрутизатор A немедленно изменяет колонку стоимости Сети 1 на 16 (бесконечность). Однако он должен ждать 30 с., прежде чем послать свое обновление с этой новой информацией. Тем временем может случиться, что маршрутизатор B посылает сообщение собственного обновления к A. Маршрутизатор A теперь имеет два входа для Сети 1: от своей таблицы (стоимость равна 16) и от маршрутизатора B (стоимость равна 2). Согласно алгоритму обновления A заменяет доступ к сети Сеть 1 через более короткий путь B. Маршрутизатор A затем изменяет колонку стоимости (счетчик участков) для Сети 1 на 3 (2+1), и это обновление идет к B. Маршрутизатор B знает, что Сеть 1 доступна через маршрутизатор A, согласно алгоритму обновления изменяет свою стоимость до 4 (3+1). Это обновление "туда и обратно" продолжается, пока оба маршрутизатора достигнут стоимости 16. На этой точке маршрутизаторы останавливаются, и соединение к Сети 1 становится недостижимым.

    (рис 8.4) Пример нестабильной работы сети

    Некоторые средства увеличения стабильности

    Чтобы увеличить стабильность, предлагаются некоторые средства. Однако ни одно из них не является эффективным на 100 процентов.

    Запускаемое обновление

    Если отсутствуют изменения в сети, обновление посылается обычно через 30-секундные интервалы. Однако если имеется изменение, маршрутизатор запускается в действие для немедленной рассылки новых таблиц; этот процесс называется запускаемое обновление.

    Запускаемое обновление может увеличить стабильность. Каждый маршрутизатор, который получает обновление с изменениями, рассылает новые таблицы с меньшим интервалом времени, чем в среднем за 15 с. Например, на рис. 8.4, когда маршрутизатор A распознает, что Сеть 1 недоступна, он изменяет стоимость до 16 в таблице маршрутизации и затем немедленно посылает эти сведения к B. Маршрутизатор B затем изменяет свою таблицу, и теперь обе таблицы показывают стоимость 16 для Сети 1. Рассылаемые сообщения обновления с изменениями приращения в стоимости позволяют избежать любых проблем зацикливания.

    Хотя запускаемое обновление может значительно улучшить маршрутизацию, оно не может решить все проблемы маршрутизации. Например, ошибка маршрутизатора не может быть обнаружена этим методом.

    Расщепление горизонта

    Второй метод для улучшения стабильности — "расщепленный горизонт" (spilt horizon). При этом методе данные о достижимых узлах сети передаются регулярно всем маршрутизаторам, кроме того, от которого эта информация исходит. Если маршрутизатор передал информацию, чтобы помочь обновлению, эта информация не должна быть послана назад; он уже все знает. "Расщепленный горизонт" может улучшить стабильность. Предположим, что на рис. 8.4 Сеть 1 недоступна маршрутизатору А. Маршрутизатор B принимает свою информацию о Сети 1 из А и не посылает информацию о Сети 1 к маршрутизатору А. Маршрутизатор поэтому имеет один сигнал для Сети 1 стоимостью 1 и не обманывается, думая, что имеет обходной доступ к Сети 1 через маршрутизатор B. Маршрутизатор А посылает свою таблицу маршрутизации к B, и оба будут иметь в таблице значение 16.

    Поглощение ответа

    Поглощение ответа – вариант "расщепленного горизонта". В этом методе информация, полученная маршрутизатором, используется маршрутной таблицей и затем передается всем интерфейсам. Однако вход таблицы, который получил информацию через интерфейс, устанавливает для этого интерфейса метрику 16 и исключает его из процесса рассылки обновления.

    При использовании поглощения возврата стабильность улучшается. Рассмотрим снова рис. 8.4 Маршрутизатор B получает информацию о Сети 1 от А. В каждом обновлении B посылает свою таблицу маршрутизации к А со значением 16 для Сети 1. Это неэффективно на А, если Сеть 1 недоступна, потому что он не будет проверять входы B для Сети 1 и устанавливать значение 16. Однако если Сеть 1 не испорчена, он будет устанавливать меньшее значение.

    RIP версии 2

    RIP версии 2 был разработан для преодоления некоторых недостатков версии 1. Разработчики версии 2 не дополнили длину сообщения для каждого входа. Они только заменили те поля в версии 1, которые были заполнены нулями для TCP/IP-протокола, некоторыми новыми полями.

    Формат сообщения

    Pис. 8.5 показывает формат сообщения RIP версии 2. Новые поля этого сообщения приводятся ниже.

    (рис 8.5) Формат RIP версии 2
  • Тэг маршрута. Это поле переносит такую информацию, как номер автономной системы. Он может использоваться для обеспечения возможности RIP получать информацию от внешнего протокола маршрутизации.
  • Маска подсети. Это поле в 4 байта, которое несет маску к подсети (или префикс). Это означает, что RIP2 поддерживает классическую адресацию и бесклассовую междоменную маршрутизацию CIDR (Classless Inter Domain Routing).
  • Адрес следующего участка. Он используется, например, если две автономных системы вместе используют сеть (основную). По этому сообщению можно определить маршрутизатор той же самой системы или другой автономной системы, к которому должен пройти пакет.
  • Аутентификация

    Аутентификация дополняет защиту сообщения против неполномочного объявления, но добавляет новые поля в пакет: вместо первого входа сообщения устанавливается отдельно информация для аутентификации. Чтобы указать, что вход содержит информацию аутентификации, а не информацию маршрутизации, вводится значение FFFF16 в поле семейство ( рис. 8.6). Второе поле, тип аутентификации, определяет метод, используемый для аутентификации, а третье поле содержит реальные данные аутентификации.

    (рис 8.6) Аутентификация

    Множественный доступ (Multicasting)

    Версия 1 RIP использует широковещательный доступ, чтобы посылать сообщения RIP к каждому соседу. При этом методе все маршрутизаторы в сети получают пакеты, так же как и хосты. В RIP версии 2 используют множественный доступ с адресом 224.0.0.9 для сообщений только RIP-маршрутизаторов в сети.

    Инкапсуляция

    RIP-сообщения инкапсулируется в UDP пользовательские дейтаграммы. RIP-сообщение не включает поле, которое указывает на длину сообщения. Это может быть определено из UDP пакета. Закрепленным (well-known) портом назначается для RIP в UDP порт 520.

    Первоочередное открытие кратчайших путей (OSPF — Open Shortest Path First)

    Протокол "первоочередное открытие кратчайших Путей" (OSPF — Open Shortest Path First) — это другой внутренний протокол, который получил популярность. Его область также автономные системы. Специальный маршрутизатор, называемый пограничным маршрутизатором автономных систем, отвечает за распространение информации об автономных системах в текущей системе. Для того чтобы обработать маршрутизацию эффективно и вовремя, OSPF разделяет автономную систему на зоны.

    Зоны

    Зона — это набор всех сетей, хостов и маршрутизаторов, содержащихся в автономной системе ( рис. 8.7. Автономная система может разделяться на много различных зон. Все сети внутри зоны должны быть соединены.

    (рис 8.7) Зоны автономной системы

    Маршрутизаторы внутри зоны содержат зоновую информацию маршрутизации. На границе зоны специальные маршрутизаторы, называемые пограничными маршрутизаторами зоны, суммируют информацию о зоне и посылают другим зонам. Среди зон внутри автономной системы есть специальная зона, называемая основной. Все другие зоны внутри автономной системы должны быть подсоединены к основной. Иначе говоря, основная зона обслуживает как первичная зона, а другие зоны — как вторичные. Однако это не означает, что маршрутизаторы в пределах зон не могут соединяться каждый с каждым.

    Маршрутизатор внутри основной зоны называется основным маршрутизатором. Заметим, что основной маршрутизатор может также быть пограничным маршрутизатором.

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

    Каждая зона имеет идентификатор зоны.

    Метрика

    Протокол OSPF позволяет администратору назначать стоимость, называемую метрикой, для каждого маршрута. Метрика может быть основана на типе сервиса (минимальная задержка, максимальное число переприемов и так далее). Фактически, маршрутизатор может иметь множество таблиц, каждая из которых базируется на различном типе сервиса.

    Маршрутизация по состоянию канала

    Для обновления таблиц маршрутизации OSPF использует маршрутизацию по состоянию канала. Маршрутизация по состоянию линии — процесс, при помощи которого каждый маршрутизатор распространяет свою информацию о его соседях каждому маршрутизатору в зоне.

    Ниже приводятся три основных положения для понимания того, как работает метод.

  • Распределение информации об окружении. Каждый маршрутизатор посылает информацию о состоянии своего окружения для каждого другого маршрутизатора зоны.
  • Распределение информации другим маршрутизатором. Каждый маршрутизатор посылает информацию о состоянии окружения для каждого другого маршрутизатора зоны. Он делает это с помощью волнового процесса. При его помощи маршрутизатор посылает свою информацию всем другим соседям (через все выходные порты). Каждый сосед посылает пакет ко всем его соседям, и так далее. Каждый маршрутизатор, который получает пакет, посылает копии для каждого своего соседа. В конечном счете, каждый маршрутизатор (без исключения) получает копию одной и той же информации.
  • Распределение информации, когда имеются изменения. Каждый маршрутизатор распределяет информацию о состоянии его окружения, только когда есть изменения. Это правило резко отличается от дистанционного вектора маршрутизации, где информация рассылается через регулярные интервалы, не принимая во внимание изменения.
  • Идея маршрутизации по состоянию линии – это то, что каждый маршрутизатор должен иметь точную топологию Интернета на каждый момент. Другими словами, каждый маршрутизатор должен иметь полную "картину" Интернета. Исходя из этой топологии, маршрутизатор может вычислить самый короткий путь между ним самим и каждой сетью. Топология здесь означает граф существующих узлов и границ. Однако для того чтобы представить Интернет графом, нам нужно привести некоторые определения.

    Типы связей

    В OSPF-терминологии соединение называется связь (link). Определены четыре типа связи: "точка-точка", транзит, ответвление и виртуальная.

    Связь "точка-точка". Связь "точка-точка" соединяет два маршрутизатора без участия любого другого хоста или маршрутизатора между ними. Другими словами, цель связи (сети) — соединить два маршрутизатора. Например, этот тип связи представляют два маршрутизатора, соединенные телефонной линией или уплотненной линией.

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

    (рис 8.8) Связь "точка-точка"

    Транзитная связь. Транзитная связь – это сеть с несколькими маршрутизаторами, соединенными линиями. Данные могут войти в сеть через любой маршрутизатор и покинуть сеть через любой другой. Все локальные сети (LAN) и глобальные сети (WAN) с двумя и более маршрутизаторами являются связями этого типа. В этом случае, каждый маршрутизатор имеет несколько соседей. Например, рассмотрим сеть Ethernet на рис. 8.9 а. Маршрутизатор A имеет соседей B, C, D. Маршрутизатор B имеет соседей A, C, D. Отношение соседей в этой ситуации показано в виде графа на рис. 8.9 а.

    На рис. 8.9 б. показана транзитная связь в сети типа "каждый с каждым". Такой тип подключения требует обмена каждого маршрутизатора с большим числом маршрутизаторов. При числе таких соседей n число связей = C2 n Это не эффективно и попросту не реалистично. Эта проблема, как будет показано в другом разделе, встречалась и в телефонных сетях.

    Для такой сети реальным является назначение узлового маршрутизатора ( рис. 8.9 б.).

    (рис 8.9) Транзитная связь

    Теперь каждый маршрутизатор имеет только одного соседа, назначенный маршрутизатор (сеть) имеет четырех соседей. Мы видим, что число оповещаемых соседей уменьшилось до 8 (поскольку связь двунаправленная). Однако пока имеется метрика от каждого узла к назначенному маршрутизатору, нет метрики от назначенного маршрутизатора ни к одному узлу. Причина в том, что назначенный маршрутизатор является единственным представителем сети для внешнего мира.

    Ответвление связи – это сеть, которая подключает только один маршрутизатор. Пакеты данных вводятся сетью через отдельный маршрутизатор и покидают сеть через тот же самый маршрутизатор. Это специальный случай транзитной сети.

    Виртуальная линия. Когда линия между двумя маршрутизаторами повреждена, администратор может создать виртуальную линию между ними, используя более длинный путь, который, вероятнее всего, пройдет через несколько маршрутизаторов.

    Извещение о состоянии связи

    Для того чтобы распределять информацию о соседях, каждый вход распределяет извещения о состоянии связи (Link State AdvertisementsLSAs). LSA извещают состояние доступа к связи. В зависимости от типа доступа, мы можем определить пять типов различных извещений о состоянии связи (LSAs), которые различаются объектами рассылки:

  • связь маршрутизатора;
  • сетевая связь (узловым маршрутизатором);
  • суммарная связь к автономной системе;
  • внешняя связь.
  • Связь маршрутизатора. Связь маршрутизатора определяет все подключения к данному маршрутизатору. Маршрутизатор использует для извещения информацию обо всех его связях и связях соседей.

    Сетевая связь. Узловой маршрутизатор от имени всей транзитной сети распределяет этот тип LSA-пакетов. Пакеты извещают о состоянии всех маршрутизаторов, подключенных к сети.

    Суммарная связь сети. Информация о линиях маршрутизаторов и сетевых линиях внутри зоны распространяется внутри зоны. Информация о состоянии линий вне зоны распространяется пограничным маршрутизатором. Пограничный маршрутизатор зоны действует более чем в одной зоне. Он получает извещения о линиях маршрутизатора данной зоны и линиях сети и, как мы увидим, создает таблицу маршрутов для каждой из этих зон. Например, на рис. 8.10 маршрутизатор R1 есть пограничный маршрутизатор.

    (рис 8.10) Суммарная связь сети

    Он имеет две таблицы маршрутизации, одна для зоны 1 и одна для зоны 0. R1 заполняется информацией о зоне 1 и вторая — информацией о том, как достигнуть сети, расположенной в зоне 0. Тем же самым способом маршрутизатор R2 заполняется информацией о зоне 2 и о том, как достигнуть по этой же самой сети зоны 0. Суммарная связь в зоне 0 позволяет обмен между маршрутизаторами, она может быть реализована одним из уже рассмотренных четырех типов связи: "точка-точка", транзит, ответвление и виртуальная.

    Суммарная связь к пограничному маршрутизатору автономной системы. Предыдущее извещение позволяло каждому маршрутизатору знать стоимость маршрута для того, чтобы выбрать маршрут внутри автономной системы. Если маршрутизатор внутри зоны хочет послать пакет внешней автономной системе, он должен сначала знать маршрут к пограничному маршрутизатору автономной системы. Суммарная линия к пограничному маршрутизатору автономной системы (АС) обеспечивает эту информацию. Зоновый пограничный маршрутизатор заполняет их зоны этой информацией ( рис. 8.11).

    (рис 8.11) Суммарная связь к пограничному маршрутизатору автономной системы

    Внешняя связь. Извещения внешней связи обеспечивают информацией о том, какая сеть доступна вне автономной системы. Используют таблицу маршрутизации, создаваемую внешним протоколом маршрутизатора. Каждое извещение оповещает одну отдельную сеть. Если имеется более чем одна сеть, делаются отдельные извещения.

    База данных состояний линии

    Каждый маршрутизатор в зоне получает линию LSAs маршрутизатора и сетевую линию от каждого маршрутизатора и формы базы данных состояний линии.

    База данных состояния связи – это таблица, представляющая топологию Интернета внутри зоны. Она показывает связь между каждым маршрутизатором и соседним к нему, включая метрику.

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

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

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

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

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

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

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

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

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

    Типы пакетов

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

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

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

    (рис 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) для создания отображения окружающей его сети и для проверки достижимости соседей. Это первый шаг в маршрутизации по состоянию линий. Прежде чем маршрутизатор может заполнить все другие маршрутизаторы своей информацией о соседях, он должен сначала стать доступным для обмена своим соседям. Он должен определить, работоспособны ли они. И он должен знать, доступны ли они.

    (рис 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). Формат этого заголовка обсуждался в разделе "сообщение обновления состояния линии" Этот заголовок — краткое описание каждой линии, без деталей. Он повторяется для каждой линии в линейке состояний базы данных.
  • Пакет запроса состояния линейки

    Этот формат пакета запроса состояния линейки показан на рис. 8.17 Это пакет, который посылается маршрутизатором, нуждающимся в информации о маршрутах. На него отвечают пакетом с обновлением состояний линий. Он может быть использован во вновь подключенном маршрутизаторе для запроса большей информации о некоторых маршрутизаторах после получения пакета описания базы данных. Три поля являются частью LSA-заголовка, который мы кратко рассмотрели. Каждый набор трех полей запрашивают для единственного LSA. Набор повторяется, если желательно иметь более чем одно извещение.

    (рис 8.17) Пакет запроса состояния линии

    Пакет обновления состояния связи

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

    (рис 8.18) Пакет обновления состояния связи

    Например, пакет обновления состояния связи может содержать 14 LSAs,

  • четыре из которых — извещения линий маршрутизатора;
  • три из которых — извещения о сетевых связях;
  • два из которых — извещения о суммарных связях сети;
  • два из которых — суммарные связи к пограничным маршрутизаторам автономной системы.
  • Ниже приводятся поля.

    Номер извещения о состоянии связи. Поле на 32 бита, определяющее номер извещения. Один пакет может извещать о состоянии нескольких линий.

    Извещения о состоянии связи. Как уже обсуждалось раньше, существует пять различных LSAs, имеющих один и тот же формат заголовка, но различное содержание. Рассмотрим сначала общий для всех заголовок. Формат заголовка LSA показан на рис. 8.19

    (рис 8.19) Заголовок LSA

    Возраст состояния связи. Это поле показывает число секунд, прошедших с момента генерации этого сообщения. Этот тип сообщения может повторяться при переходе от маршрутизатора к маршрутизатору (распространение). Когда маршрутизатор создает сообщение, значение этого поля равно нулю. Когда каждый успешно отработавший маршрутизатор передает сообщение дальше, он устанавливает транзитное время и дополняет его для накопления в этом поле.

    E-флаг. Это поле 1 бит – флаг, устанавливаемый на 1, если это зона ответвления. Напомним, что зона ответвления – это зона, которая подключена к основной зоне только по одному пути.

    T-флаг. Это поле 1 бит – флаг, устанавливаемый на 1. Это означает, что маршрутизатор может работать со многими типами обслуживания.

    Тип состояния связи. Это поле определяет тип LSA.

    ID состояния связи. Значение этого поля зависит от типа линии. Для типа 1 (связь маршрутизатора) — это IP-адрес маршрутизатора. Для типа 2 (сетевая связь) — это IP-адрес сети. Для типа 3 (суммарная связь сети) — это IP-адрес сети. Для типа 4 (суммарная связь пограничного маршрутизатора к автономной системе) — это IP-адрес автономной системы. Для типа 5(внешняя связь) — это адрес внешней сети.

    Извещающий маршрутизатор. Это IP-адрес извещающего маршрутизатора для этого сообщения.

    Порядковый номер состояния линии. Это порядковый номер, назначаемый для каждого сообщения обновления состояния линии.

    Контрольная сумма состояния связи. Это поле — не обычное поле контрольной суммы. Оно используется для вычисления специальной суммы, которая основана на полном пакете, за исключением поля возраста сообщения.

    Длина. Это поле определяет длину полного пакета в битах.

    Извещение о состоянии связи маршрутизатора. Извещение о состоянии линии (LSA) связи маршрутизатора сообщает обо всех связях маршрутизатора. Формат пакета линии маршрутизатора показан на рис. 8.20 Поля маршрутизатора показаны ниже.

    (рис 8.20) LSA Состояния связи маршрутизатора

    ID-связи. Значение этого поля зависит от типа связи. Табл. 8.3. показывает различные идентификаторы линии, указывающие тип связи.

    Данные связи. Это поле дает дополнительную информацию о связи. Значение зависит от типа связи (см. табл. 8.3.)

    Тип связи. Различают четыре типа связей, основанных на типе сети, к которой подключен маршрутизатор (см. табл. 8.3.).

    Типы связей, идентификаторы связей и данные связей
    Тип линий Идентификатор линий Данные линий
    Тип 1: Подключение к другому маршрутизатору "Точка – точка" Адрес соседнего маршрутизатора Номер интерфейса
    Тип:2: Подключение к сети "любой с любым" Адрес соседнего маршрутизатора Адрес маршрутизатора
    Тип 3:Подключение сети "ответвление" Сетевой адрес Сетевая маска
    Тип 4: Виртуальная линия Адрес соседнего маршрутизатора Адрес маршрутизатора

    Число типов обслуживания (TOS – Type of Service). Это поле определяет число типов обслуживания, закрепленных за этой связью.

    Метрика для TOS 0. Это поле определяет метрику по умолчанию для данного типа обслуживания (TOS).

    Тип сервиса TOS (The type of Service). Поле определяет тип обслуживания.

    Метрика. Это поле определяет метрику для соответствующего TOS.

    Извещение о состоянии сетевой связи. Извещение о состоянии сетевой связи несет информацию об устройствах, подключенных к сети связи. Формат извещения сетевой связи показан на рис. 8.21 Поля LSA сетевой связи следующие:

    (рис 8.21) Формат извещения LSA сетевой связи
  • Маска сети. Это поле определяет сетевую маску.
  • Подключаемые маршрутизаторы. Эти повторяющиеся поля определяют IP-адреса всех подключаемых маршрутизаторов.
  • Извещение о суммарном состоянии связи к сетям. Оно используется узловым маршрутизатором от имени всей транзитной сети зоны, чтобы разослать извещения о состоянии всех маршрутизаторов, подключенных к сети. Извещение суммарной связи сети очень простое. Оно содержит маску сети и метрику для каждого типа обслуживания. Заметим, что каждое извещение описывает только единственную сеть.

    Если имеется более чем одна отдельная сеть, извещение должно повторятся для каждой сети. Извещение маски сети передается для того, чтобы определить IP-адрес извещающего маршрутизатора, содержащегося в заголовке в поле "ID состояния связи". Из этой информации и маски можно однозначно вывести адрес сети. Формат этого извещения показан на рис. 8.21 Поля LSA суммарной связи сети следуют ниже рис. 8.22.

    (рис 8.22) Формат LSA суммарной связи сети
  • Маска сети. Это поле определяет маску сети.
  • TOS. Это поле определяет тип обслуживания (the Type Of Service).
  • Метрика. Это поле задает метрику для типа обслуживания, определенного в поле TOS.
  • Извещение о суммарном состоянии связи к пограничному маршрутизатору автономной системы. Этот пакет используется для описания маршрута к пограничному маршрутизатору автономной системы (АС). Его формат такой же, как в предыдущей суммарной линии. Пакет непосредственно определяет сеть, к которой подключен маршрутизатор. Если сообщение может достигнуть сети, оно может быть принято пограничным маршрутизатором автономной сети. Формат пакета показан на рис. 8.23 Поля такие же, как и поля у сообщения суммарной сетевой связи.

    (рис 8.23) LSA суммарной линии к пограничному маршрутизатору автономной сети (АС)

    Извещение о состоянии внешней связи. Оно используется, чтобы известить все станции сети о внешних связях к другим АС. Этот формат похож на LSA суммарной линии пограничного маршрутизатора автономной сети, с двумя дополнительными полями. Пограничный маршрутизатор АС может определяться маршрутизатором, устанавливающим соединение, который может обеспечивать лучший маршрут к пункту назначения. Пакет также может включать тэг внешнего маршрута, используемый другими протоколами, но не OSPF. Этот формат пакета показан на рис. 8.24.

    (рис 8.24) LSA внешней связи

    Пакет подтверждения состояния связи

    OSPF делает маршрутизацию более достоверной благодаря подтверждению каждым маршрутизатором каждого пакета обновления состояния линии. Формат пакета подтверждения состояния связи показан на рис. 8.25 Он имеет общий заголовок OSPF и заголовок, характерный для обновления состояния связи.

    (рис 8.25) Пакет подтверждения состояния связи

    Инкапсуляция

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

    Протокол пограничной маршрутизации (BGP — Border Gateway Protocol)

    Протокол пограничной маршрутизации (BGPBorder Gateway Protocol) – это протокол маршрутизации между автономными системами [21, 41]. Он основан на методах маршрутизации, называемых "маршрутизация вектором пути". Рассмотрим вначале принципы такой маршрутизации. Попробуем понять, почему два ранее показанных метода, а именно маршрутизация с помощью вектора расстояния маршрута (RIP) и маршрутизация по состоянию линии (OSF), не являются желательными для использования системой маршрутизации между автономными системами.

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

    Маршрутизация по состоянию линий также не является желательной для системы маршрутизации между автономными системами, потому что Интернет обычно слишком большая сеть для этого метода маршрутизации. Чтобы использовать маршрутизацию по состоянию линий для всего Интернета, каждому маршрутизатору понадобилось бы иметь огромную базу данных состояний. Это также привело к длительному времени работы каждого маршрутизатора для вычисления его таблицы маршрутов с использованием алгоритма Дейкстры.

    Маршрутизация с использованием вектора путей

    Маршрутизация с использованием вектора путей отличается и от маршрутизации с использованием вектора длины маршрута, и от маршрутизации состоянием линии. Каждый вход в таблицу маршрутизации содержит сеть пункта назначения, следующий маршрутизатор и путь до пункта назначения. Путь обычно определяется как упорядоченный список автономной системы, который должен пройти пакет для достижения пункта назначения. Табл. 8.4. показывает пример таблицы маршрутизации векторов пути.

    Маршрутного вектора пути
    Сеть Следующий маршрутизатор Путь
    N01 R01 AS14,AS23, AS67
    N02 R05 AS22,AS67, AS05, AS89
    N03 R06 AS67,AS89, AS09, AS34
    N04 R12 AS62,AS02, AS09

    Сообщения вектора путей

    Автономный пограничный маршрутизатор, который участвует в маршрутизации с использованием вектора путей, извещает о достижимости сетей в их собственной автономной системе для соседних автономных пограничных маршрутизаторов. Концепция окружения здесь та же самая, как в уже рассмотренных протоколах RIP и OSPF. Два пограничных маршрутизатора автономных систем, подключенные к той же самой сети, – соседи.

    Заметим, что пограничный маршрутизатор автономной системы получает свою информацию от внутреннего алгоритма маршрутизации, такого как RIP и OSPF.

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

    Например, рис. 8.26 показывает сеть Интернет с четырьмя автономными системами. Маршрутизатор R1 посылает сообщение вектора путей, извещающего о достижимости N1, маршрутизатор R2 получает сообщение, обновляет свою таблицу маршрутизации, после этого добавляет свою информацию об автономной системе к информации пути и вставляет самого себя как соседний маршрутизатор, посылает сообщение к маршрутизатору R3. Маршрутизатор R3 получает сообщение, обновляет свою таблицу маршрутизации и посылает сообщение после изменения к маршрутизатору R4.

    (рис 8.26) Принцип формирования вектора путей

    Предотвращение петли

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

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

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

    Атрибуты пути

    При рассматриваемом методе путь был представлен как список автономных систем, но фактически это список атрибутов.

    Список атрибутов помогает принимающему маршрутизатору вырабатывать решение, когда применяется его политика.

    Атрибуты разделяются на две категории: закрепленные (well-know) и опциональные.

    Закрепленный атрибут — единица, которую каждый BGP-маршрутизатор должен распознавать. Опциональный атрибут — единица, которую не надо распознавать каждому BGP-маршрутизатору.

    Закрепленный атрибут сам разделяется на две категории: обязательный и по усмотрению. Закрепленный атрибут по усмотрению — единица, которая должна быть опознана каждым маршрутизатором, но не требует включения в каждое обновленное сообщение.

    Единица обязательного закрепленного атрибута – это ORIGIN. Она определяет информацию об источнике маршрутизации (RIP, OSPF и так далее). Другой хорошо известный закрепленный обязательный атрибут – это AS_PATH. Он определяет список автономных систем, через которые может быть достигнут пункт назначения. Еще один обязательный атрибут – это NEXT-HOP, он определяет следующий маршрутизатор, к которому должен быть послан пакет данных.

    Опциональные атрибуты могут также быть подразделены на две категории: транзитные и не транзитные. Опциональный транзитный атрибут — единица, которая должна быть передана к следующему маршрутизатору маршрутизатором, который не выполняет этот атрибут. Опциональный не транзитный атрибут — единица, которая должна быть удалена, если приемный маршрутизатор не может выполнить ее.

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

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

    (рис 8.27) Заголовок пакета BGP
  • Маркер. Это 16-байтовое поле, зарезервированное для опознавания.
  • Длина. Это поле в 2 байта, которое определяет длину полного сообщения, включающего заголовок.
  • Тип. Это поле 1 байт — тип пакета. Как было сказано раньше, мы имеем четыре типа, от 1 до 4.
  • Типы пакетов

    BGP использует четыре различных типа сообщений: открытия, обновления, дежурные и уведомления.

    Сообщение "открытие"

    Для того чтобы создать информацию об окружении, маршрутизатор, выполняющий протокол BGP, устанавливает TCP-соединение с соседями и посылает сообщение "открытие". Если сосед согласно политике принимает отношения соседства, он отвечает дежурным сообщением, которое означает, что отношения между двумя маршрутизаторами установлены. Описание формата "открытие" см. на рис. 8.28

    (рис 8.28) Сообщение открытия

    Поля сообщения "открытие" приведены ниже.

    Версия. Это поле 1 байт, определяющее версию BGP. Текущая версия — 4.

    Моя автономная система. Это поле 2 байта, определяющее номер автономной системы.

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

    BGP-идентификатор. Это поле 4 байта, определяющее маршрутизатор, который прислал сообщения "открытие". Маршрутизатор обычно использует для этой цели один из своих адресов IP (потому что он уникален).

    Длина параметра опции. Сообщение "открытие" может содержать некоторые параметры опции. Если это так, то здесь содержится 1 байт, определяющий длину всех параметров опции. Если параметров опции нет, значение этого поля — ноль.

    Параметры опции. Если значение длины параметров опции не равно нулю, это означает, что имеются некоторые параметры опций. Каждый параметр опции сам имеет два подполя: длина параметра и значение параметра.

    Единственный параметр опции, определенный до сих пор, — аутентификация.

    Сообщение "обновление"

    Сообщение "обновление" — основа протокола BGP — используется маршрутизатором для изменения пункта назначения, который был заявлен раньше, объявления маршрута к новому конечному пункту или замены обоих пунктов назначения. Заметим, что BGP может отозвать несколько пунктов назначений, которые были переданы раньше, но может известить только один новый пункт назначения в одном сообщении. Формат обновленного сообщения показан на рис. 8.29.

    (рис 8.29) Сообщение обновления

    Поля сообщения обновления перечислены ниже.

    Длина отзываемых маршрутов. Это поле определяет длину следующего за ним поля.

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

    Длина атрибутов пути. Это поле 2 байта определяет длину следующего поля.

    Атрибуты пути. Это поле определяет атрибуты пути (маршрута) к сети, которая достижима и объявлена в этом маршруте.

    Информация достижимости сетевого уровня. Это поле определяет сеть, которая заявлена этим сообщением. Оно имеет длину поля и префикс IP-адреса. Длина определяет число бит в префиксе. Префикс определяет общую часть сетевого адреса. Например, 153.18.7.0/24.

    Префикс 153.18.7, длина префикса – это 24 бита. Это означает, что BGP4 поддерживает классическую адресацию и CIDR (Classes InterDomain Routing – бесклассовая междоменная маршрутизация).

    Дежурное сообщение

    Маршрутизатор (называемый равный – peers на языке BGP), выполняющий BGP-протоколы, обменивается регулярно с соседями дежурными сообщениями (прежде чем истечет время удержания) для того, чтобы сказать друг другу, что они в режиме ожидания. Дежурные сообщения, с типом сообщений 3 (поле Тип = 3), содержат только общий заголовок, показанный на рисунке 8.28.

    Сообщение уведомления

    Сообщение уведомления посылается маршрутизатором всегда, когда обнаружены признаки ошибки или маршрутизатор завершает соединение. Формат сообщения показан на рис. 8.30

    (рис 8.30) Сообщение уведомления

    Поля, содержащиеся в поле извещения, следующие:

    Код ошибки. Это поле 1 байт, определяющее категорию ошибки ( табл. 8.5.).

    Подкод ошибки. Это поле 1 байт дополнительно определяет тип ошибки в каждой категории.

    Данные об ошибке. Это поле может быть использовано, чтобы дать больше диагностической информации об ошибке.

    BGP инкапсулируются в TCP-сегменты, использующие закрепленный порт 179. Это означает, что не нужен контроль ошибок и управление потоком. Когда TCP-соединение открывается, обмен сообщениями обновления, дежурными и уведомления продолжается до тех пор, пока не будет послано сообщение уведомления.

    Коды ошибок
    Код ошибки Описание подкода ошибки Описание подкода ошибки
    1 Ошибка заголовка сообщения Определены три различных подкода для этого типа ошибки: проблемы синхронизации(1), плохая длина сообщения (2), плохой тип сообщения (3)
    2 Ошибка сообщения открытия Определены 6 различных подкодов для этого типа ошибки: номер неподдерживаемой версии (1), плохой прямой АС (2), плохой идентификатор BGP (3), неподдерживаемые опциональные параметры (4), ошибка опознавания (5), неприемлемое время удержания (6)
    3 Ошибка сообщения обновления Определены 6 различных подкодов для этого типа ошибки: плохо сформированный список атрибутов (1), неопознанные атрибуты хорошо известного порта (3), ошибка флага атрибутов(5), ошибка длины атрибутов (6), АС-зацикливание маршрутизации (7), недействительный атрибут следующего участка (8), ошибка опциональных атрибутов (9), недействительное поле сети (10), плохо сформированный AS_PATH (11)
    4 Истекло время удержания Подкод не определен
    5 Ошибка автомата с конечным числом состояний Это определенная процедурная ошибка. Подкод не определен.
    6 Прекращение Подкод не определен

    Краткие итоги

  • Интернет – это комбинация сетей, соединяемых с помощью маршрутизаторов.
  • Выбор оптимального пути определяется метрикой.
  • Метрика – это условная стоимость передачи по сети. Полное измерение конкретного маршрута равно сумме метрик сетей, которые включают в себя маршрут.
  • Протокол маршрутной информации (RIP – Routing Information Protocol) рассматривает все сети как одинаковые. Стоимость прохождения через каждую сеть одна и та же, и для определения метрики подсчитываются участки.
  • Протокол "первоочередное открытие наикратчайших путей" (OSPF — Open Shortest Path First) позволяет администратору назначить стоимость для передачи через сеть, основанную на типе требуемого обслуживания.
  • Протокол пограничной маршрутизации (BGPBorder Gateway Protocol), критерий для выбора пути — называется "политика", т.е. данные для выбора, которые может устанавливать администратор. "Политика" — это принцип, по которому определяется путь.
  • В любой метрике маршрутизатор должен иметь таблицы маршрутизации для того, чтобы консультироваться при дальнейшей передаче пакета.
  • Таблица может быть либо статическая, либо динамическая. Статическая таблица — одна из тех, которые часто не меняются. Динамическая таблица, с другой стороны, одна из тех, которая обновляется автоматически, когда имеются изменения где-либо в сети.
  • Интернет разделяется на автономные системы. Автономная система (Autonomous System – AS) — группа сетей и маршрутизаторов под управлением одного администратора.
  • Маршрутизация внутри автономной системы отнесена к внутренней маршрутизации. Маршрутизация между автономными системами отнесена к внешней маршрутизации.
  • Протокол маршрутной информации (RIP – Routing Information Protocol) — внутренний протокол маршрутизации, используется внутри автономной системы. Это очень простой протокол, основанный на использовании дистанционного вектора маршрутизации (вектора расстояния).
  • Каждый маршрутизатор хранит таблицы маршрутизации, имеющие один вход для каждой сети назначения, которую маршрутизатор зарегистрировал. Вход содержит: адрес сети пункта назначения, кратчайший путь, для того чтобы достичь пункта назначения, следующий участок (следующий маршрутизатор), к которому должен быть доставлен пакет, счетчик участка – это число сетей.
  • При использовании протокола RIP таблица маршрутизации обновляется после получения "квитанции" — ответного сообщения RIP согласно алгоритму модификации RIP.
  • При использовании протокола RIP используется дистанционный вектор, который определяет количество участков для каждого объявленного маршрута к сети назначения.
  • Сообщение-запрос посылается маршрутизатором, который только что включен в систему, или маршрутизатором, который запущен по тайм-ауту.
  • Ответ на запрос может быть двух типов: либо запрошенный, либо не запрошенный. Запрошенный ответ посылается только в ответ на запрос. Не запрошенный ответ посылается периодически, каждые 30 с.
  • RIP использует три таймера для поддержки своих операций — периодический таймер посылает сообщения, таймер окончания времени проверяет правильность маршрута и еще один таймер собирает мусор объявленных ошибочными маршрутов.
  • Нестабильность – это явление, когда пакет от одного маршрутизатора к другому может идти по петле.
  • Для увеличения стабильности предлагаются: запускаемое обновление, "расщепленный горизонт", поглощение возврата.
  • Протокол "первоочередное открытие кратчайших путей" (OSPF — Open Shortest Path First) — это внутренний протокол. Для того чтобы обработать маршрутизацию эффективно и вовремя, OSPF разделяет автономную систему на зоны.
  • Зона — это набор всех сетей, хостов и маршрутизаторов, содержащихся в автономной системе. Автономная система может разделяться на много различных зон. Все сети внутри зоны должны быть соединены.
  • Маршрутизаторы внутри зоны содержат зоновую информацию маршрутизации. На границе зоны специальные маршрутизаторы, называемые пограничными маршрутизаторами зоны, суммируют информацию о зоне и посылают другим зонам. Среди зон внутри автономной системы есть специальная зона, называемая основной.
  • Протокол OSPF позволяет администратору назначать стоимость, называемую метрикой, для каждого маршрута. Метрика может быть основана на типе сервиса (минимальная задержка, максимальное число переприемов и так далее). Фактически, маршрутизатор может иметь множество таблиц, каждая из которых базируется на различном типе сервиса.
  • Для обновления таблиц маршрутизации OSPF использует маршрутизацию по состоянию канала. Маршрутизация по состоянию линии — процесс, при помощи которого каждый маршрутизатор распространяет свою информацию о его соседях каждому маршрутизатору в зоне.
  • В OSPF-терминологии соединение называется связь (link). Определены четыре типа связи: "точка-точка", транзит, ответвление и виртуальная.
  • Для того чтобы распределять информацию о соседях, каждый вход распределяет извещения о состоянии связи (Link State AdvertisementsLSAs).
  • В зависимости от типа доступа определены пять типов различных извещений о состоянии связи (LSAs), которые различаются объектами рассылки: связь маршрутизатора; сетевая связь (узловым маршрутизатором); суммарная связь к автономной системе; внешняя связь.
  • Для того чтобы вычислить таблицы маршрутизации, применяется алгоритм Дейкстры для баз данных состояния линии этого маршрутизатора. Этот алгоритм вычисляет кратчайший путь между двумя точками в сети, используя граф по методу узлов и границ.
  • Каждый маршрутизатор использует метод наикратчайшего пути по дереву для построения своей таблицы маршрутизации. Таблица маршрутизации показывает стоимость достижения каждого узла в зоне. Она использует извещения: суммарной линии сети, суммарной линии пограничного маршрутизатора и внешней линии.
  • OSPF использует пять различных типов пакетов: пакет "hello", пакет распределения базы данных, пакет состояния линии, пакет обновления состояния линии и пакет подтверждения состояния линии.
  • Пограничный межсетевой протокол (BGPBorder Gateway Protocol) – это протокол маршрутизации между автономными системами. Он основан на методах маршрутизации, называемых "маршрутизация вектором пути".
  • Путь обычно определяется как упорядоченный список автономной системы, который должен пройти пакет для достижения пункта назначения. Каждый вход в таблицу маршрутизации содержит сеть пункта назначения, следующий маршрутизатор и путь до пункта назначения.
  • Имеется четыре типа BGP-сообщения: открытия, обновления, дежурное и извещения.
  • Задачи и упражнения

  • Для какой цели разработан протокол RIP?
  • Какие функции выполняет протокол RIP?
  • Почему значение таймера окончания в шесть раз больше значения периодического таймера?
  • Перечислите недостатки протокола RIP и соответствующие пути их преодоления.
  • Сравните методы "разбитый горизонт" и поглощение ответа. В каких случаях один из них имеет преимущество перед другим?
  • Какие есть основы для классификации четырех типов связи в OSPF?
  • Для чего предназначены поле аутентификации типа и поле аутентификации данных?
  • Покажите отличие и совпадение дистанционного вектора маршрутизации и маршрутизации по состоянию линии.
  • Почему OSPF-сообщение распространяется быстрее, чем RIPсообщение?
  • Каков размер RIP-сообщения, которое извещает только одну сеть? Какой размер RIP-сообщения извещает N сетей? Выведите формулу, которая показывает зависимость между числом извещенных сетей и размером RIP-сообщения.
  • Маршрутизатор RIP работает с таблицей маршрутизации на 20 входов. Сколько периодических таймеров необходимо для работы с этой таблицей?
  • Маршрутизатор RIP работает с таблицей маршрутизации на 20 входов. Сколько таймеров сборщиков мусора необходимо для работы с этой таблицей?
  • Маршрутизатор RIP работает с таблицей маршрутизации на 20 входов. Сколько таймеров окончания необходимо для работы с этой таблицей?
  • Маршрутизатор имеет следующую таблицу RIP-маршрутизации:
    Сеть1 4 B
    Сеть2 2 C
    Сеть3 1 F
    Сеть4 5 G
    Каким будет содержание таблицы, если маршрутизатор получит следующее RIP-сообщение от маршрутизатора C:
    Сеть1 2
    Сеть2 1
    Сеть3 3
    Сеть4 7
  • Сколько пустых байтов содержит RIP-сообщение, которое извещает N сетей?
  • Маршрутизатор имеет следующую RIP-таблицу.
    Сеть1 4 B
    Сеть2 2 C
    Сеть3 1 F
    Сеть4 5 G
    Покажите ответное сообщение, посылаемое этим маршрутизатором.
  • Используя рис. 8.13, покажите обновление состояния связи и извещение связи маршрутизатора для маршрутизатора A.
  • Используя рис. 8.13, покажите обновление состояния связи и извещение связи маршрутизатора для маршрутизатора D.
  • Используя рис. 8.13, покажите обновление состояния связи и извещение связи маршрутизатора для маршрутизатора E.
  • Покажите обновление состояния связи и извещение связи маршрутизатора для сети N2 на рис. 8.13.
  • Покажите обновление состояния связи и извещение связи маршрутизатора для сети N4 на рис. 8.13.
  • Покажите обновление состояния связи и извещение связи маршрутизатора для сети N5 на рис. 8.13.
  • Предположим, на рис. 8.13. для сети N3 назначен сетевым маршрутизатором D.23. Покажите обновление состояния связи и извещение связи маршрутизатора для этой сети.
  • Предположим, на рис. 8.13. для сети N1 назначен сетевым маршрутизатором A.24. Покажите обновление состояния связи и извещение связи маршрутизатора для этой сети.
  • Назначьте IP-адреса для сетей и маршрутизаторов рис. 8.13.
  • Используя результат задачи 25, покажите OSPF-сообщение "hello", посылаемое маршрутизатором C.
  • Используя результат задачи 25, покажите OSPF-сообщение описания базы данных, посылаемое маршрутизатором C.
  • Используя результат задачи 25, покажите OSPF-сообщение запроса состояния связи, посылаемое маршрутизатором C.
  • Изобразите автономную систему со следующей спецификацией:
  • Имеется 8 сетей (N1—N8).
  • Имеется 8 маршрутизаторов (R1 – R8).
  • N1, N2, N3, N4 и N5 сети Ethernet.
  • N6 — это сеть с маркерным доступом (Token Ring).
  • N7 и N8 — сети "точка-точка".
  • R1 соединяет N1 и N2.
  • R2 соединяет N1 и N7.
  • R3 соединяет N2 и N8.
  • R4 соединяет N7 и N6.
  • R5 соединяет N6 и N3.
  • R6 соединяет N6 и N4.
  • R7 соединяет N6 и N5.
  • R8 соединяет N8 и N5.
  • Начертить граф автономной системы по упражнению 29.
  • Какая из сетей из упражнения 29 — транзитная сеть? Какая — сеть ответвления?
  • Показать BGP-сообщение "открытие" для маршрутизатора R1 на рис. 8.26.
  • Показать BGP-сообщение "обновление" для маршрутизатора R1 на рис. 8.26.
  • Показать BGP-сообщение уведомления для маршрутизатора R1 на рис. 8.26.
  • Показать BGP-сообщение "дежурное" для маршрутизатора R1 на рис. 8.26.
  • Дополнительный материал для прохождения тестирования к лекции, Вы можете скачать здесь.

    Страницы:

    Интернет – это комбинация сетей, соединяемых с помощью маршрутизаторов. Когда дейтаграмма идет от источника к пункту назначения, она, вероятнее всего, проходит много маршрутизаторов, пока достигает маршрутизатора, закрепленного за сетью пункта назначения. Маршрутизатор получает пакет от сети и передает его другой сети. Маршрутизатор обычно закрепляется за несколькими сетями. Когда он получает пакет, он должен решить две задачи:

  • к какой сети он должен его передать;
  • по какому пути.
  • Последнее решение основано на выборе оптимального пути. Какой доступный путь является оптимальным путем? Это обычно определяется метрикой. Метрика – это условная стоимость передачи по сети. Полное измерение конкретного маршрута равно сумме метрик сетей, которые включают в себя маршрут. Маршрутизатор выбирает маршрут с наименьшей метрикой. Метрика назначается для интерфейса сети в зависимости от типа протокола. Некоторые простые протоколы, подобно протоколу маршрутной информации (RIP – Routing Information Protocol), рассматривают все сети как одинаковые. Тогда стоимость прохождения через каждую сеть — одна и та же, и для определения метрики подсчитываются участки. Так, если пакет, чтобы достигнуть конечного пункта, проходит через 10 сетей, полная стоимость составляет 10 участков.

    Другие протоколы, такие как "первоочередное открытие наикратчайших путей" (OSPF — Open Shortest Path First), позволяют администратору назначить стоимость для передачи через сеть, основанную на типе требуемого обслуживания. Маршрут через сеть может иметь различную стоимость (метрику). Например, если для типа сервиса желательна максимальная производительность, спутниковый канал имеет меньшую метрику, чем оптическая линия. С другой стороны, если типу сервера желательна минимальная задержка, оптическая линия имеет меньшую метрику, чем спутниковый канал. OSPF позволяет каждому маршрутизатору иметь таблицу последовательностей маршрутов, основанную на требуемом типе сервиса.

    Другие протоколы определяют метрику различно. В протоколе пограничной маршрутизации (BGPBorder Gateway Protocol) критерий — это политика, которую может устанавливать администратор. Политика — это принцип, по которому определяется путь.

    В любой метрике маршрутизатор должен иметь таблицы маршрутизации, чтобы консультироваться при дальнейшей передаче пакета. Таблица маршрутизации задает оптимальный путь для пакета. Таблица может быть либо статическая, либо динамическая. Статическая таблица — одна из тех, которые часто не меняются. Динамическая таблица — одна из тех, которая обновляется автоматически, когда имеются изменения где-либо в Интернете. Сегодня Интернет нуждается в динамических таблицах. Таблицы нужно обновлять по мере появления изменений в Интернете. Например, их нужно обновить, когда маршрут вышел из строя, или они должны быть обновлены всякий раз, когда создается лучший маршрут.

    Протоколы маршрутизации созданы для отображения требований таблиц динамической маршрутизации. Протокол маршрутизации — комбинация правил и процедур, которые позволяют в Интернете маршрутизаторам информировать друг друга об изменениях. Протоколы маршрутизации также включают процедуры для комбинирования информации, полученной от других маршрутизаторов.

    В этой лекции мы поговорим об однонаправленных протоколах маршрутизации. Многонаправленные протоколы маршрутизации мы обсудим в следующей лекции.

    Внутренняя и внешняя маршрутизация

    Сегодня Интернет — громадная сеть, так что один протокол маршрутизации не может обрабатывать задачу обновления таблиц всех маршрутизаторов. По этой причине Интернет разделяется на автономные системы. Автономная система (Autonomous System – AS) — группа сетей и маршрутизаторов под управлением одного администратора. Маршрутизация внутри автономной системы отнесена к внутренней маршрутизации. Маршрутизация между автономными системами отнесена к внешней маршрутизации. Каждая автономная система может выбрать протокол внутренней маршрутизации для того, чтобы обрабатывать маршрутизацию внутри автономной системы. Однако для обработки маршрутизации между автономными системами выбирается только один протокол маршрутизации.

    Разработано несколько внутренних и внешних протоколов. В этой лекции мы коснемся только наиболее популярных из них — внутренних протоколов RIP и OSPF и одного внешнего протокола BGP. RIP и OSPF используются для обновления таблиц маршрутизации внутри автономной системы. Протокол BGP применяется в обновлении таблиц маршрутизации для маршрутизаторов, которые объединяют вместе автономные системы.

    Протокол маршрутной информации (RIP)

    Протокол маршрутной информации (RIP – Routing Information Protocol) — внутренний протокол маршрутизации, используется внутри автономной системы. Это очень простой протокол, основанный на применении дистанционного вектора маршрутизации. В этом разделе сначала рассмотрим принцип дистанционного вектора маршрутизации, так как он применяется в RIP, а затем обсудим сам протокол RIP.

    Вектор расстояния маршрутизации

    Используя вектор расстояния маршрутизации, каждый маршрутизатор периодически делится своей информацией о входах в Интернет со своими соседями. Ниже приводятся три основных принципа этого процесса, для того чтобы понять, как работает алгоритм.

  • Распределение информации о входе в автономную систему. Каждый маршрутизатор распределяет информацию о входе соседним автономным системам. Вначале эта информация может быть не подробной. Однако объем и качество информации не играют роли. Маршрутизатор посылает, во всяком случае, все что имеет.
  • Распределение только соседям. Каждый маршрутизатор посылает свою информацию только к соседям. Он посылает информацию, которую получает через все интерфейсы.
  • Распределение через регулярные интервалы. Каждый маршрутизатор посылает свою информацию соседней автономной системе через фиксированные интервалы, например, каждые 30 с.
  • Таблицы маршрутизации

    Каждый маршрутизатор хранит таблицы маршрутизации, имеющие один вход для каждой сети назначения, которую маршрутизатор зарегистрировал. Вход содержит:

  • адрес сети пункта назначения,
  • кратчайший путь для того, чтобы достичь пункта назначения, отсчитываемый в участках,
  • следующий участок (следующий маршрутизатор), к которому должен быть доставлен пакет по пути к своему конечному пункту назначения,
  • счетчик участков – это число сетей, которые пакет пересечет для достижения своего конечного пункта назначения.
  • Таблица может содержать другую информацию, такую как маску подсети (или префикс) или время, когда этот вход был обновлен. Табл. 8.1. показывает пример таблицы маршрутизации.

    Таблица вектора расстояния маршрутизации
    Номер входа в таблицу участков Пункт назначения Счет участков Следующий участок Другая информация
    0 163.5.0.0 7 172.6.23.4
    1 197.5.13.0 5 176.3.6.17
    2 189.45.0.0 4 200.5.1.6
    3 115.0.0.0 6 131.4.7.19

    Алгоритм обновления таблиц в RIP

    Таблица маршрутизации обновляется после получения "квитанции" ответного сообщения RIP. На рис. 8.1 показан алгоритм модификации, использованный RIP.

    (рис 8.1) Алгоритм обновления таблицы маршрутизации

    На рис. 8.2 показан пример обновления таблицы. Маршрутизатор получает RIP-сообщение от соседнего маршрутизатора. Сообщение перечисляет сети пунктов назначения и их соответствующие счетчики участков. Первый шаг соответствует алгоритму обновления по рис. 8.1. Он увеличивает счетчики участков сообщения на единицу. Следующий шаг алгоритма RIP обновления: таблица, полученная в сообщении, и старая таблица маршрутов сравниваются. Результат — это таблица маршрутизации с обновленными счетчиками участков для каждого пункта назначения. Для "Сети 1" нет новой информации в сообщении, поэтому вход "Сети 1" остается без изменений.

    (рис 8.2) Пример обновления таблицы

    Для "Сети 2" информация в таблице и сообщения определены как счетчик участков от маршрутизатора C. Хотя значения счета участков (см. рис. 8.2) в таблице (2) меньше, чем единица сообщения (5), алгоритм выбирает значение, полученное в сообщении, потому что исходное значение пришло от того же самого маршрутизатора C.

    "Сеть 3" в таблице отсутствует, в таблицу устанавливается значение сообщения. Таблица дополняется новой сетью. Для "Сети 6" RIP-сообщение содержит меньшее значение счетчика участков, поэтому значение маршрутизатора F, содержащееся в таблице, заменяется на C (значение маршрутизатора, предоставившего более короткий путь), а в таблицу записывается значение счетчика участков, содержащееся в сообщении. "Сеть 8" сохраняет первоначальное значение, поскольку соответствующий счетчик участков в сообщении равен значению аналогичного счетчика в таблице. "Сеть 9" в сообщении имеет большее значение, но оно не касается узла, от которого пришло сообщение, поэтому в новой таблице сохраняется старое значение.

    Инициализация таблицы маршрутизации

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

    Обновление таблицы маршрутизации

    Каждая таблица маршрутизации обновляется по сигналу RIP-сообщения, используя RIP-алгоритм обновления, рассмотренный выше.

    Формат сообщения RIP

    Формат сообщения RIP показан на рис. 8.3.

    (рис 8.3) Формат RIP сообщения
  • Команда. Это поле 8 бит задает тип сообщения: запрос (1) или ответ (2).
  • Версия. Это поле 8 бит определяет версию. В этой книге мы используем версию 1, но в конце этого раздела мы назовем некоторые особенности версии 2.
  • Семейство. Это поле 16 бит определяет семейство используемых протоколов. Для TCP/IP значение равно 2.
  • Адрес сети. Поле адрес определяет адрес пункта назначения. RIP отводит 14 байт для этого поля в приложении к любым протоколам. Однако IP в настоящее время использует только 4 байта. Остаток адреса заполняется нулями.
  • Расстояние. Это поле 32 бита определяет счет участков для каждого объявленного маршрутизатора к сети назначения.
  • Заметим, что часть сообщения повторяется для каждой сети назначения. Эта часть относится к понятию вход.

    Запрос и ответ

    RIP имеет два типа сообщения: запрос и ответ.

    Запрос

    Сообщение-запрос посылается маршрутизатором, который только что включен в систему, или маршрутизатором, который запущен по таймауту. Запрос может запрашивать о задании одного входа или всех входов. В первом случае в поле "адрес сети" указывается сетевой адрес, во втором — все поле заполняется нулями.

    Ответ

    Ответ может быть двух типов: либо запрошенный, либо не запрошенный. Запрошенный ответ посылается только в ответ на запрос. Он содержит информацию о пункте назначения, заданном в соответствующем запросе. Не запрошенный ответ посылается периодически, каждые 30 с., и содержит информацию о входе в таблицу маршрутизации. Этот периодический ответ иногда называется обновлением пакета.

    Таймеры в RIP

    RIP использует три таймера для поддержки своих операций: периодический таймер посылает сообщения, таймер окончания времени проверяет правильность маршрута и третий таймер собирает мусор объявленных ошибочными маршрутов.

    Периодический таймер

    Периодический таймер контролирует объявленные регулярные и сообщения обновления. Хотя протокол задает, что этот таймер может быть установлен на 30 с., работающая модель использует случайное число между 25 и 35 с. Это сделано, чтобы предотвратить любую возможную синхронизацию и, в связи с этим, перегрузку Интернета, если маршрутизаторы станут обновляться одновременно.

    Каждый маршрутизатор должен иметь один периодический таймер, который устанавливается случайно между 25 и 35. Он отсчитывает время назад; когда достигается нуль, посылается сообщение обновления и таймер снова устанавливается на случайную величину.

    Если RIP использует методы дополнительного таймирования для рассылки обновлений, периодический таймер не подходит. Сообщения периодического обновления выходят по их собственному расписанию, не учитывая другие сообщения обновления от других систем таймирования.

    Таймер истечения срока

    Таймер истечения срока управляет утвержденным маршрутом. Когда маршрутизатор получает информацию обновления для маршрута, таймер окончания устанавливается на 180 с. для конкретного маршрута. Каждый раз, когда получено новое обновление для маршрута, таймер переустанавливается. В нормальной ситуации это возникает каждые 30 с. Однако если имеются проблемы в Интернете и не получено обновление в течение установленных 180 с, маршрут считается законченным и счет участков маршрута устанавливается на 16, что означает, что пункт назначения не достижим. Каждый маршрут имеет свое собственное время окончания.

    Таймер сбора мусора

    Когда поступила некорректная информация о маршруте, маршрутизатор не сразу стирает маршрут из своей таблицы. Вместо этого он продолжает объявлять маршрут со значением счетчика 16. На это время таймер называется таймером сбора мусора и устанавливается на 120 с. для этого маршрута. Когда счет достигает нуля, маршрут стирается из таблицы. Это время позволяет соседям получить сведения о недействительности маршрута, прежде чем он будет изъят.

    Медленная сходимость

    Одна из проблем RIP — медленная сходимость, то есть изменения, произошедшие на одном из участков Интернета, распространяются очень медленно через остальной Интернет. Допустим, имеется изменение на "Сети 1", управляемой маршрутизатором R1. Он обновляется немедленно. Однако поскольку каждый маршрутизатор посылает свои периодические обновления каждые 30 с., то пройдет в среднем 15 с. (в пределах от 0 до 30), прежде чем изменения достигнут следующего узла (обозначим его R2). Если распространить эти рассуждения на другие участки (среднее время 15 с.), то пройдет 30 с. до того момента, когда третий маршрутизатор (R3) получит изменения, и так далее. Когда информация, в конечном счете, достигает маршрутизатора Rn, проходит 15 * (n – 1) с. Если n = 20, тогда это 285 с. За это время сеть ATM может передать более чем один миллиард бит. Если эти изменения не затронут этих передач, то будут потеряны миллиарды бит.

    Один метод сокращения этого недостатка — лимитировать счетчик участков до 15. Это предотвращает пакеты данных от вечного блуждания – "зацикливания" Интернета. Автономная система, используемая RIP, ограничена числом переприемных участков 15. Поэтому число 16 означает недостижимую сеть.

    Нестабильность

    Гораздо более важная проблема RIP — нестабильность, которая означает, что сеть Интернет, работающая по протоколу RIP, может стать нестабильной.

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

    Для того чтобы понять проблему, предположим, что соединение к Сети 1 на рис. 8.4. не работает. Маршрутизатор A показывает стоимость 1 для этой сети в его таблице маршрутизации. Когда доступ определяет, что Сеть 1 повреждена, маршрутизатор A немедленно изменяет колонку стоимости Сети 1 на 16 (бесконечность). Однако он должен ждать 30 с., прежде чем послать свое обновление с этой новой информацией. Тем временем может случиться, что маршрутизатор B посылает сообщение собственного обновления к A. Маршрутизатор A теперь имеет два входа для Сети 1: от своей таблицы (стоимость равна 16) и от маршрутизатора B (стоимость равна 2). Согласно алгоритму обновления A заменяет доступ к сети Сеть 1 через более короткий путь B. Маршрутизатор A затем изменяет колонку стоимости (счетчик участков) для Сети 1 на 3 (2+1), и это обновление идет к B. Маршрутизатор B знает, что Сеть 1 доступна через маршрутизатор A, согласно алгоритму обновления изменяет свою стоимость до 4 (3+1). Это обновление "туда и обратно" продолжается, пока оба маршрутизатора достигнут стоимости 16. На этой точке маршрутизаторы останавливаются, и соединение к Сети 1 становится недостижимым.

    (рис 8.4) Пример нестабильной работы сети

    Некоторые средства увеличения стабильности

    Чтобы увеличить стабильность, предлагаются некоторые средства. Однако ни одно из них не является эффективным на 100 процентов.

    Запускаемое обновление

    Если отсутствуют изменения в сети, обновление посылается обычно через 30-секундные интервалы. Однако если имеется изменение, маршрутизатор запускается в действие для немедленной рассылки новых таблиц; этот процесс называется запускаемое обновление.

    Запускаемое обновление может увеличить стабильность. Каждый маршрутизатор, который получает обновление с изменениями, рассылает новые таблицы с меньшим интервалом времени, чем в среднем за 15 с. Например, на рис. 8.4, когда маршрутизатор A распознает, что Сеть 1 недоступна, он изменяет стоимость до 16 в таблице маршрутизации и затем немедленно посылает эти сведения к B. Маршрутизатор B затем изменяет свою таблицу, и теперь обе таблицы показывают стоимость 16 для Сети 1. Рассылаемые сообщения обновления с изменениями приращения в стоимости позволяют избежать любых проблем зацикливания.

    Хотя запускаемое обновление может значительно улучшить маршрутизацию, оно не может решить все проблемы маршрутизации. Например, ошибка маршрутизатора не может быть обнаружена этим методом.

    Расщепление горизонта

    Второй метод для улучшения стабильности — "расщепленный горизонт" (spilt horizon). При этом методе данные о достижимых узлах сети передаются регулярно всем маршрутизаторам, кроме того, от которого эта информация исходит. Если маршрутизатор передал информацию, чтобы помочь обновлению, эта информация не должна быть послана назад; он уже все знает. "Расщепленный горизонт" может улучшить стабильность. Предположим, что на рис. 8.4 Сеть 1 недоступна маршрутизатору А. Маршрутизатор B принимает свою информацию о Сети 1 из А и не посылает информацию о Сети 1 к маршрутизатору А. Маршрутизатор поэтому имеет один сигнал для Сети 1 стоимостью 1 и не обманывается, думая, что имеет обходной доступ к Сети 1 через маршрутизатор B. Маршрутизатор А посылает свою таблицу маршрутизации к B, и оба будут иметь в таблице значение 16.

    Поглощение ответа

    Поглощение ответа – вариант "расщепленного горизонта". В этом методе информация, полученная маршрутизатором, используется маршрутной таблицей и затем передается всем интерфейсам. Однако вход таблицы, который получил информацию через интерфейс, устанавливает для этого интерфейса метрику 16 и исключает его из процесса рассылки обновления.

    При использовании поглощения возврата стабильность улучшается. Рассмотрим снова рис. 8.4 Маршрутизатор B получает информацию о Сети 1 от А. В каждом обновлении B посылает свою таблицу маршрутизации к А со значением 16 для Сети 1. Это неэффективно на А, если Сеть 1 недоступна, потому что он не будет проверять входы B для Сети 1 и устанавливать значение 16. Однако если Сеть 1 не испорчена, он будет устанавливать меньшее значение.

    RIP версии 2

    RIP версии 2 был разработан для преодоления некоторых недостатков версии 1. Разработчики версии 2 не дополнили длину сообщения для каждого входа. Они только заменили те поля в версии 1, которые были заполнены нулями для TCP/IP-протокола, некоторыми новыми полями.

    Формат сообщения

    Pис. 8.5 показывает формат сообщения RIP версии 2. Новые поля этого сообщения приводятся ниже.

    (рис 8.5) Формат RIP версии 2
  • Тэг маршрута. Это поле переносит такую информацию, как номер автономной системы. Он может использоваться для обеспечения возможности RIP получать информацию от внешнего протокола маршрутизации.
  • Маска подсети. Это поле в 4 байта, которое несет маску к подсети (или префикс). Это означает, что RIP2 поддерживает классическую адресацию и бесклассовую междоменную маршрутизацию CIDR (Classless Inter Domain Routing).
  • Адрес следующего участка. Он используется, например, если две автономных системы вместе используют сеть (основную). По этому сообщению можно определить маршрутизатор той же самой системы или другой автономной системы, к которому должен пройти пакет.
  • Аутентификация

    Аутентификация дополняет защиту сообщения против неполномочного объявления, но добавляет новые поля в пакет: вместо первого входа сообщения устанавливается отдельно информация для аутентификации. Чтобы указать, что вход содержит информацию аутентификации, а не информацию маршрутизации, вводится значение FFFF16 в поле семейство ( рис. 8.6). Второе поле, тип аутентификации, определяет метод, используемый для аутентификации, а третье поле содержит реальные данные аутентификации.

    (рис 8.6) Аутентификация

    Множественный доступ (Multicasting)

    Версия 1 RIP использует широковещательный доступ, чтобы посылать сообщения RIP к каждому соседу. При этом методе все маршрутизаторы в сети получают пакеты, так же как и хосты. В RIP версии 2 используют множественный доступ с адресом 224.0.0.9 для сообщений только RIP-маршрутизаторов в сети.

    Инкапсуляция

    RIP-сообщения инкапсулируется в UDP пользовательские дейтаграммы. RIP-сообщение не включает поле, которое указывает на длину сообщения. Это может быть определено из UDP пакета. Закрепленным (well-known) портом назначается для RIP в UDP порт 520.

    Первоочередное открытие кратчайших путей (OSPF — Open Shortest Path First)

    Протокол "первоочередное открытие кратчайших Путей" (OSPF — Open Shortest Path First) — это другой внутренний протокол, который получил популярность. Его область также автономные системы. Специальный маршрутизатор, называемый пограничным маршрутизатором автономных систем, отвечает за распространение информации об автономных системах в текущей системе. Для того чтобы обработать маршрутизацию эффективно и вовремя, OSPF разделяет автономную систему на зоны.

    Зоны

    Зона — это набор всех сетей, хостов и маршрутизаторов, содержащихся в автономной системе ( рис. 8.7. Автономная система может разделяться на много различных зон. Все сети внутри зоны должны быть соединены.

    (рис 8.7) Зоны автономной системы

    Маршрутизаторы внутри зоны содержат зоновую информацию маршрутизации. На границе зоны специальные маршрутизаторы, называемые пограничными маршрутизаторами зоны, суммируют информацию о зоне и посылают другим зонам. Среди зон внутри автономной системы есть специальная зона, называемая основной. Все другие зоны внутри автономной системы должны быть подсоединены к основной. Иначе говоря, основная зона обслуживает как первичная зона, а другие зоны — как вторичные. Однако это не означает, что маршрутизаторы в пределах зон не могут соединяться каждый с каждым.

    Маршрутизатор внутри основной зоны называется основным маршрутизатором. Заметим, что основной маршрутизатор может также быть пограничным маршрутизатором.

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

    Каждая зона имеет идентификатор зоны.

    Метрика

    Протокол OSPF позволяет администратору назначать стоимость, называемую метрикой, для каждого маршрута. Метрика может быть основана на типе сервиса (минимальная задержка, максимальное число переприемов и так далее). Фактически, маршрутизатор может иметь множество таблиц, каждая из которых базируется на различном типе сервиса.

    Маршрутизация по состоянию канала

    Для обновления таблиц маршрутизации OSPF использует маршрутизацию по состоянию канала. Маршрутизация по состоянию линии — процесс, при помощи которого каждый маршрутизатор распространяет свою информацию о его соседях каждому маршрутизатору в зоне.

    Ниже приводятся три основных положения для понимания того, как работает метод.

  • Распределение информации об окружении. Каждый маршрутизатор посылает информацию о состоянии своего окружения для каждого другого маршрутизатора зоны.
  • Распределение информации другим маршрутизатором. Каждый маршрутизатор посылает информацию о состоянии окружения для каждого другого маршрутизатора зоны. Он делает это с помощью волнового процесса. При его помощи маршрутизатор посылает свою информацию всем другим соседям (через все выходные порты). Каждый сосед посылает пакет ко всем его соседям, и так далее. Каждый маршрутизатор, который получает пакет, посылает копии для каждого своего соседа. В конечном счете, каждый маршрутизатор (без исключения) получает копию одной и той же информации.
  • Распределение информации, когда имеются изменения. Каждый маршрутизатор распределяет информацию о состоянии его окружения, только когда есть изменения. Это правило резко отличается от дистанционного вектора маршрутизации, где информация рассылается через регулярные интервалы, не принимая во внимание изменения.
  • Идея маршрутизации по состоянию линии – это то, что каждый маршрутизатор должен иметь точную топологию Интернета на каждый момент. Другими словами, каждый маршрутизатор должен иметь полную "картину" Интернета. Исходя из этой топологии, маршрутизатор может вычислить самый короткий путь между ним самим и каждой сетью. Топология здесь означает граф существующих узлов и границ. Однако для того чтобы представить Интернет графом, нам нужно привести некоторые определения.

    Типы связей

    В OSPF-терминологии соединение называется связь (link). Определены четыре типа связи: "точка-точка", транзит, ответвление и виртуальная.

    Связь "точка-точка". Связь "точка-точка" соединяет два маршрутизатора без участия любого другого хоста или маршрутизатора между ними. Другими словами, цель связи (сети) — соединить два маршрутизатора. Например, этот тип связи представляют два маршрутизатора, соединенные телефонной линией или уплотненной линией.

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

    (рис 8.8) Связь "точка-точка"

    Транзитная связь. Транзитная связь – это сеть с несколькими маршрутизаторами, соединенными линиями. Данные могут войти в сеть через любой маршрутизатор и покинуть сеть через любой другой. Все локальные сети (LAN) и глобальные сети (WAN) с двумя и более маршрутизаторами являются связями этого типа. В этом случае, каждый маршрутизатор имеет несколько соседей. Например, рассмотрим сеть Ethernet на рис. 8.9 а. Маршрутизатор A имеет соседей B, C, D. Маршрутизатор B имеет соседей A, C, D. Отношение соседей в этой ситуации показано в виде графа на рис. 8.9 а.

    На рис. 8.9 б. показана транзитная связь в сети типа "каждый с каждым". Такой тип подключения требует обмена каждого маршрутизатора с большим числом маршрутизаторов. При числе таких соседей n число связей = C2 n Это не эффективно и попросту не реалистично. Эта проблема, как будет показано в другом разделе, встречалась и в телефонных сетях.

    Для такой сети реальным является назначение узлового маршрутизатора ( рис. 8.9 б.).

    (рис 8.9) Транзитная связь

    Теперь каждый маршрутизатор имеет только одного соседа, назначенный маршрутизатор (сеть) имеет четырех соседей. Мы видим, что число оповещаемых соседей уменьшилось до 8 (поскольку связь двунаправленная). Однако пока имеется метрика от каждого узла к назначенному маршрутизатору, нет метрики от назначенного маршрутизатора ни к одному узлу. Причина в том, что назначенный маршрутизатор является единственным представителем сети для внешнего мира.

    Ответвление связи – это сеть, которая подключает только один маршрутизатор. Пакеты данных вводятся сетью через отдельный маршрутизатор и покидают сеть через тот же самый маршрутизатор. Это специальный случай транзитной сети.

    Виртуальная линия. Когда линия между двумя маршрутизаторами повреждена, администратор может создать виртуальную линию между ними, используя более длинный путь, который, вероятнее всего, пройдет через несколько маршрутизаторов.

    Извещение о состоянии связи

    Для того чтобы распределять информацию о соседях, каждый вход распределяет извещения о состоянии связи (Link State AdvertisementsLSAs). LSA извещают состояние доступа к связи. В зависимости от типа доступа, мы можем определить пять типов различных извещений о состоянии связи (LSAs), которые различаются объектами рассылки:

  • связь маршрутизатора;
  • сетевая связь (узловым маршрутизатором);
  • суммарная связь к автономной системе;
  • внешняя связь.
  • Связь маршрутизатора. Связь маршрутизатора определяет все подключения к данному маршрутизатору. Маршрутизатор использует для извещения информацию обо всех его связях и связях соседей.

    Сетевая связь. Узловой маршрутизатор от имени всей транзитной сети распределяет этот тип LSA-пакетов. Пакеты извещают о состоянии всех маршрутизаторов, подключенных к сети.

    Суммарная связь сети. Информация о линиях маршрутизаторов и сетевых линиях внутри зоны распространяется внутри зоны. Информация о состоянии линий вне зоны распространяется пограничным маршрутизатором. Пограничный маршрутизатор зоны действует более чем в одной зоне. Он получает извещения о линиях маршрутизатора данной зоны и линиях сети и, как мы увидим, создает таблицу маршрутов для каждой из этих зон. Например, на рис. 8.10 маршрутизатор R1 есть пограничный маршрутизатор.

    (рис 8.10) Суммарная связь сети

    Он имеет две таблицы маршрутизации, одна для зоны 1 и одна для зоны 0. R1 заполняется информацией о зоне 1 и вторая — информацией о том, как достигнуть сети, расположенной в зоне 0. Тем же самым способом маршрутизатор R2 заполняется информацией о зоне 2 и о том, как достигнуть по этой же самой сети зоны 0. Суммарная связь в зоне 0 позволяет обмен между маршрутизаторами, она может быть реализована одним из уже рассмотренных четырех типов связи: "точка-точка", транзит, ответвление и виртуальная.

    Суммарная связь к пограничному маршрутизатору автономной системы. Предыдущее извещение позволяло каждому маршрутизатору знать стоимость маршрута для того, чтобы выбрать маршрут внутри автономной системы. Если маршрутизатор внутри зоны хочет послать пакет внешней автономной системе, он должен сначала знать маршрут к пограничному маршрутизатору автономной системы. Суммарная линия к пограничному маршрутизатору автономной системы (АС) обеспечивает эту информацию. Зоновый пограничный маршрутизатор заполняет их зоны этой информацией ( рис. 8.11).

    (рис 8.11) Суммарная связь к пограничному маршрутизатору автономной системы

    Внешняя связь. Извещения внешней связи обеспечивают информацией о том, какая сеть доступна вне автономной системы. Используют таблицу маршрутизации, создаваемую внешним протоколом маршрутизатора. Каждое извещение оповещает одну отдельную сеть. Если имеется более чем одна сеть, делаются отдельные извещения.

    База данных состояний линии

    Каждый маршрутизатор в зоне получает линию LSAs маршрутизатора и сетевую линию от каждого маршрутизатора и формы базы данных состояний линии.

    База данных состояния связи – это таблица, представляющая топологию Интернета внутри зоны. Она показывает связь между каждым маршрутизатором и соседним к нему, включая метрику.

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

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

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

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

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

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

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

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

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

    Типы пакетов

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

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

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

    (рис 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) для создания отображения окружающей его сети и для проверки достижимости соседей. Это первый шаг в маршрутизации по состоянию линий. Прежде чем маршрутизатор может заполнить все другие маршрутизаторы своей информацией о соседях, он должен сначала стать доступным для обмена своим соседям. Он должен определить, работоспособны ли они. И он должен знать, доступны ли они.

    (рис 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). Формат этого заголовка обсуждался в разделе "сообщение обновления состояния линии" Этот заголовок — краткое описание каждой линии, без деталей. Он повторяется для каждой линии в линейке состояний базы данных.
  • Пакет запроса состояния линейки

    Этот формат пакета запроса состояния линейки показан на рис. 8.17 Это пакет, который посылается маршрутизатором, нуждающимся в информации о маршрутах. На него отвечают пакетом с обновлением состояний линий. Он может быть использован во вновь подключенном маршрутизаторе для запроса большей информации о некоторых маршрутизаторах после получения пакета описания базы данных. Три поля являются частью LSA-заголовка, который мы кратко рассмотрели. Каждый набор трех полей запрашивают для единственного LSA. Набор повторяется, если желательно иметь более чем одно извещение.

    (рис 8.17) Пакет запроса состояния линии

    Пакет обновления состояния связи

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

    (рис 8.18) Пакет обновления состояния связи

    Например, пакет обновления состояния связи может содержать 14 LSAs,

  • четыре из которых — извещения линий маршрутизатора;
  • три из которых — извещения о сетевых связях;
  • два из которых — извещения о суммарных связях сети;
  • два из которых — суммарные связи к пограничным маршрутизаторам автономной системы.
  • Ниже приводятся поля.

    Номер извещения о состоянии связи. Поле на 32 бита, определяющее номер извещения. Один пакет может извещать о состоянии нескольких линий.

    Извещения о состоянии связи. Как уже обсуждалось раньше, существует пять различных LSAs, имеющих один и тот же формат заголовка, но различное содержание. Рассмотрим сначала общий для всех заголовок. Формат заголовка LSA показан на рис. 8.19

    (рис 8.19) Заголовок LSA

    Возраст состояния связи. Это поле показывает число секунд, прошедших с момента генерации этого сообщения. Этот тип сообщения может повторяться при переходе от маршрутизатора к маршрутизатору (распространение). Когда маршрутизатор создает сообщение, значение этого поля равно нулю. Когда каждый успешно отработавший маршрутизатор передает сообщение дальше, он устанавливает транзитное время и дополняет его для накопления в этом поле.

    E-флаг. Это поле 1 бит – флаг, устанавливаемый на 1, если это зона ответвления. Напомним, что зона ответвления – это зона, которая подключена к основной зоне только по одному пути.

    T-флаг. Это поле 1 бит – флаг, устанавливаемый на 1. Это означает, что маршрутизатор может работать со многими типами обслуживания.

    Тип состояния связи. Это поле определяет тип LSA.

    ID состояния связи. Значение этого поля зависит от типа линии. Для типа 1 (связь маршрутизатора) — это IP-адрес маршрутизатора. Для типа 2 (сетевая связь) — это IP-адрес сети. Для типа 3 (суммарная связь сети) — это IP-адрес сети. Для типа 4 (суммарная связь пограничного маршрутизатора к автономной системе) — это IP-адрес автономной системы. Для типа 5(внешняя связь) — это адрес внешней сети.

    Извещающий маршрутизатор. Это IP-адрес извещающего маршрутизатора для этого сообщения.

    Порядковый номер состояния линии. Это порядковый номер, назначаемый для каждого сообщения обновления состояния линии.

    Контрольная сумма состояния связи. Это поле — не обычное поле контрольной суммы. Оно используется для вычисления специальной суммы, которая основана на полном пакете, за исключением поля возраста сообщения.

    Длина. Это поле определяет длину полного пакета в битах.

    Извещение о состоянии связи маршрутизатора. Извещение о состоянии линии (LSA) связи маршрутизатора сообщает обо всех связях маршрутизатора. Формат пакета линии маршрутизатора показан на рис. 8.20 Поля маршрутизатора показаны ниже.

    (рис 8.20) LSA Состояния связи маршрутизатора

    ID-связи. Значение этого поля зависит от типа связи. Табл. 8.3. показывает различные идентификаторы линии, указывающие тип связи.

    Данные связи. Это поле дает дополнительную информацию о связи. Значение зависит от типа связи (см. табл. 8.3.)

    Тип связи. Различают четыре типа связей, основанных на типе сети, к которой подключен маршрутизатор (см. табл. 8.3.).

    Типы связей, идентификаторы связей и данные связей
    Тип линий Идентификатор линий Данные линий
    Тип 1: Подключение к другому маршрутизатору "Точка – точка" Адрес соседнего маршрутизатора Номер интерфейса
    Тип:2: Подключение к сети "любой с любым" Адрес соседнего маршрутизатора Адрес маршрутизатора
    Тип 3:Подключение сети "ответвление" Сетевой адрес Сетевая маска
    Тип 4: Виртуальная линия Адрес соседнего маршрутизатора Адрес маршрутизатора

    Число типов обслуживания (TOS – Type of Service). Это поле определяет число типов обслуживания, закрепленных за этой связью.

    Метрика для TOS 0. Это поле определяет метрику по умолчанию для данного типа обслуживания (TOS).

    Тип сервиса TOS (The type of Service). Поле определяет тип обслуживания.

    Метрика. Это поле определяет метрику для соответствующего TOS.

    Извещение о состоянии сетевой связи. Извещение о состоянии сетевой связи несет информацию об устройствах, подключенных к сети связи. Формат извещения сетевой связи показан на рис. 8.21 Поля LSA сетевой связи следующие:

    (рис 8.21) Формат извещения LSA сетевой связи
  • Маска сети. Это поле определяет сетевую маску.
  • Подключаемые маршрутизаторы. Эти повторяющиеся поля определяют IP-адреса всех подключаемых маршрутизаторов.
  • Извещение о суммарном состоянии связи к сетям. Оно используется узловым маршрутизатором от имени всей транзитной сети зоны, чтобы разослать извещения о состоянии всех маршрутизаторов, подключенных к сети. Извещение суммарной связи сети очень простое. Оно содержит маску сети и метрику для каждого типа обслуживания. Заметим, что каждое извещение описывает только единственную сеть.

    Если имеется более чем одна отдельная сеть, извещение должно повторятся для каждой сети. Извещение маски сети передается для того, чтобы определить IP-адрес извещающего маршрутизатора, содержащегося в заголовке в поле "ID состояния связи". Из этой информации и маски можно однозначно вывести адрес сети. Формат этого извещения показан на рис. 8.21 Поля LSA суммарной связи сети следуют ниже рис. 8.22.

    (рис 8.22) Формат LSA суммарной связи сети
  • Маска сети. Это поле определяет маску сети.
  • TOS. Это поле определяет тип обслуживания (the Type Of Service).
  • Метрика. Это поле задает метрику для типа обслуживания, определенного в поле TOS.
  • Извещение о суммарном состоянии связи к пограничному маршрутизатору автономной системы. Этот пакет используется для описания маршрута к пограничному маршрутизатору автономной системы (АС). Его формат такой же, как в предыдущей суммарной линии. Пакет непосредственно определяет сеть, к которой подключен маршрутизатор. Если сообщение может достигнуть сети, оно может быть принято пограничным маршрутизатором автономной сети. Формат пакета показан на рис. 8.23 Поля такие же, как и поля у сообщения суммарной сетевой связи.

    (рис 8.23) LSA суммарной линии к пограничному маршрутизатору автономной сети (АС)

    Извещение о состоянии внешней связи. Оно используется, чтобы известить все станции сети о внешних связях к другим АС. Этот формат похож на LSA суммарной линии пограничного маршрутизатора автономной сети, с двумя дополнительными полями. Пограничный маршрутизатор АС может определяться маршрутизатором, устанавливающим соединение, который может обеспечивать лучший маршрут к пункту назначения. Пакет также может включать тэг внешнего маршрута, используемый другими протоколами, но не OSPF. Этот формат пакета показан на рис. 8.24.

    (рис 8.24) LSA внешней связи

    Пакет подтверждения состояния связи

    OSPF делает маршрутизацию более достоверной благодаря подтверждению каждым маршрутизатором каждого пакета обновления состояния линии. Формат пакета подтверждения состояния связи показан на рис. 8.25 Он имеет общий заголовок OSPF и заголовок, характерный для обновления состояния связи.

    (рис 8.25) Пакет подтверждения состояния связи

    Инкапсуляция

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

    Протокол пограничной маршрутизации (BGP — Border Gateway Protocol)

    Протокол пограничной маршрутизации (BGPBorder Gateway Protocol) – это протокол маршрутизации между автономными системами [21, 41]. Он основан на методах маршрутизации, называемых "маршрутизация вектором пути". Рассмотрим вначале принципы такой маршрутизации. Попробуем понять, почему два ранее показанных метода, а именно маршрутизация с помощью вектора расстояния маршрута (RIP) и маршрутизация по состоянию линии (OSF), не являются желательными для использования системой маршрутизации между автономными системами.

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

    Маршрутизация по состоянию линий также не является желательной для системы маршрутизации между автономными системами, потому что Интернет обычно слишком большая сеть для этого метода маршрутизации. Чтобы использовать маршрутизацию по состоянию линий для всего Интернета, каждому маршрутизатору понадобилось бы иметь огромную базу данных состояний. Это также привело к длительному времени работы каждого маршрутизатора для вычисления его таблицы маршрутов с использованием алгоритма Дейкстры.

    Маршрутизация с использованием вектора путей

    Маршрутизация с использованием вектора путей отличается и от маршрутизации с использованием вектора длины маршрута, и от маршрутизации состоянием линии. Каждый вход в таблицу маршрутизации содержит сеть пункта назначения, следующий маршрутизатор и путь до пункта назначения. Путь обычно определяется как упорядоченный список автономной системы, который должен пройти пакет для достижения пункта назначения. Табл. 8.4. показывает пример таблицы маршрутизации векторов пути.

    Маршрутного вектора пути
    Сеть Следующий маршрутизатор Путь
    N01 R01 AS14,AS23, AS67
    N02 R05 AS22,AS67, AS05, AS89
    N03 R06 AS67,AS89, AS09, AS34
    N04 R12 AS62,AS02, AS09

    Сообщения вектора путей

    Автономный пограничный маршрутизатор, который участвует в маршрутизации с использованием вектора путей, извещает о достижимости сетей в их собственной автономной системе для соседних автономных пограничных маршрутизаторов. Концепция окружения здесь та же самая, как в уже рассмотренных протоколах RIP и OSPF. Два пограничных маршрутизатора автономных систем, подключенные к той же самой сети, – соседи.

    Заметим, что пограничный маршрутизатор автономной системы получает свою информацию от внутреннего алгоритма маршрутизации, такого как RIP и OSPF.

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

    Например, рис. 8.26 показывает сеть Интернет с четырьмя автономными системами. Маршрутизатор R1 посылает сообщение вектора путей, извещающего о достижимости N1, маршрутизатор R2 получает сообщение, обновляет свою таблицу маршрутизации, после этого добавляет свою информацию об автономной системе к информации пути и вставляет самого себя как соседний маршрутизатор, посылает сообщение к маршрутизатору R3. Маршрутизатор R3 получает сообщение, обновляет свою таблицу маршрутизации и посылает сообщение после изменения к маршрутизатору R4.

    (рис 8.26) Принцип формирования вектора путей

    Предотвращение петли

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

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

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

    Атрибуты пути

    При рассматриваемом методе путь был представлен как список автономных систем, но фактически это список атрибутов.

    Список атрибутов помогает принимающему маршрутизатору вырабатывать решение, когда применяется его политика.

    Атрибуты разделяются на две категории: закрепленные (well-know) и опциональные.

    Закрепленный атрибут — единица, которую каждый BGP-маршрутизатор должен распознавать. Опциональный атрибут — единица, которую не надо распознавать каждому BGP-маршрутизатору.

    Закрепленный атрибут сам разделяется на две категории: обязательный и по усмотрению. Закрепленный атрибут по усмотрению — единица, которая должна быть опознана каждым маршрутизатором, но не требует включения в каждое обновленное сообщение.

    Единица обязательного закрепленного атрибута – это ORIGIN. Она определяет информацию об источнике маршрутизации (RIP, OSPF и так далее). Другой хорошо известный закрепленный обязательный атрибут – это AS_PATH. Он определяет список автономных систем, через которые может быть достигнут пункт назначения. Еще один обязательный атрибут – это NEXT-HOP, он определяет следующий маршрутизатор, к которому должен быть послан пакет данных.

    Опциональные атрибуты могут также быть подразделены на две категории: транзитные и не транзитные. Опциональный транзитный атрибут — единица, которая должна быть передана к следующему маршрутизатору маршрутизатором, который не выполняет этот атрибут. Опциональный не транзитный атрибут — единица, которая должна быть удалена, если приемный маршрутизатор не может выполнить ее.

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

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

    (рис 8.27) Заголовок пакета BGP
  • Маркер. Это 16-байтовое поле, зарезервированное для опознавания.
  • Длина. Это поле в 2 байта, которое определяет длину полного сообщения, включающего заголовок.
  • Тип. Это поле 1 байт — тип пакета. Как было сказано раньше, мы имеем четыре типа, от 1 до 4.
  • Типы пакетов

    BGP использует четыре различных типа сообщений: открытия, обновления, дежурные и уведомления.

    Сообщение "открытие"

    Для того чтобы создать информацию об окружении, маршрутизатор, выполняющий протокол BGP, устанавливает TCP-соединение с соседями и посылает сообщение "открытие". Если сосед согласно политике принимает отношения соседства, он отвечает дежурным сообщением, которое означает, что отношения между двумя маршрутизаторами установлены. Описание формата "открытие" см. на рис. 8.28

    (рис 8.28) Сообщение открытия

    Поля сообщения "открытие" приведены ниже.

    Версия. Это поле 1 байт, определяющее версию BGP. Текущая версия — 4.

    Моя автономная система. Это поле 2 байта, определяющее номер автономной системы.

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

    BGP-идентификатор. Это поле 4 байта, определяющее маршрутизатор, который прислал сообщения "открытие". Маршрутизатор обычно использует для этой цели один из своих адресов IP (потому что он уникален).

    Длина параметра опции. Сообщение "открытие" может содержать некоторые параметры опции. Если это так, то здесь содержится 1 байт, определяющий длину всех параметров опции. Если параметров опции нет, значение этого поля — ноль.

    Параметры опции. Если значение длины параметров опции не равно нулю, это означает, что имеются некоторые параметры опций. Каждый параметр опции сам имеет два подполя: длина параметра и значение параметра.

    Единственный параметр опции, определенный до сих пор, — аутентификация.

    Сообщение "обновление"

    Сообщение "обновление" — основа протокола BGP — используется маршрутизатором для изменения пункта назначения, который был заявлен раньше, объявления маршрута к новому конечному пункту или замены обоих пунктов назначения. Заметим, что BGP может отозвать несколько пунктов назначений, которые были переданы раньше, но может известить только один новый пункт назначения в одном сообщении. Формат обновленного сообщения показан на рис. 8.29.

    (рис 8.29) Сообщение обновления

    Поля сообщения обновления перечислены ниже.

    Длина отзываемых маршрутов. Это поле определяет длину следующего за ним поля.

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

    Длина атрибутов пути. Это поле 2 байта определяет длину следующего поля.

    Атрибуты пути. Это поле определяет атрибуты пути (маршрута) к сети, которая достижима и объявлена в этом маршруте.

    Информация достижимости сетевого уровня. Это поле определяет сеть, которая заявлена этим сообщением. Оно имеет длину поля и префикс IP-адреса. Длина определяет число бит в префиксе. Префикс определяет общую часть сетевого адреса. Например, 153.18.7.0/24.

    Префикс 153.18.7, длина префикса – это 24 бита. Это означает, что BGP4 поддерживает классическую адресацию и CIDR (Classes InterDomain Routing – бесклассовая междоменная маршрутизация).

    Дежурное сообщение

    Маршрутизатор (называемый равный – peers на языке BGP), выполняющий BGP-протоколы, обменивается регулярно с соседями дежурными сообщениями (прежде чем истечет время удержания) для того, чтобы сказать друг другу, что они в режиме ожидания. Дежурные сообщения, с типом сообщений 3 (поле Тип = 3), содержат только общий заголовок, показанный на рисунке 8.28.

    Сообщение уведомления

    Сообщение уведомления посылается маршрутизатором всегда, когда обнаружены признаки ошибки или маршрутизатор завершает соединение. Формат сообщения показан на рис. 8.30

    (рис 8.30) Сообщение уведомления

    Поля, содержащиеся в поле извещения, следующие:

    Код ошибки. Это поле 1 байт, определяющее категорию ошибки ( табл. 8.5.).

    Подкод ошибки. Это поле 1 байт дополнительно определяет тип ошибки в каждой категории.

    Данные об ошибке. Это поле может быть использовано, чтобы дать больше диагностической информации об ошибке.

    BGP инкапсулируются в TCP-сегменты, использующие закрепленный порт 179. Это означает, что не нужен контроль ошибок и управление потоком. Когда TCP-соединение открывается, обмен сообщениями обновления, дежурными и уведомления продолжается до тех пор, пока не будет послано сообщение уведомления.

    Коды ошибок
    Код ошибки Описание подкода ошибки Описание подкода ошибки
    1 Ошибка заголовка сообщения Определены три различных подкода для этого типа ошибки: проблемы синхронизации(1), плохая длина сообщения (2), плохой тип сообщения (3)
    2 Ошибка сообщения открытия Определены 6 различных подкодов для этого типа ошибки: номер неподдерживаемой версии (1), плохой прямой АС (2), плохой идентификатор BGP (3), неподдерживаемые опциональные параметры (4), ошибка опознавания (5), неприемлемое время удержания (6)
    3 Ошибка сообщения обновления Определены 6 различных подкодов для этого типа ошибки: плохо сформированный список атрибутов (1), неопознанные атрибуты хорошо известного порта (3), ошибка флага атрибутов(5), ошибка длины атрибутов (6), АС-зацикливание маршрутизации (7), недействительный атрибут следующего участка (8), ошибка опциональных атрибутов (9), недействительное поле сети (10), плохо сформированный AS_PATH (11)
    4 Истекло время удержания Подкод не определен
    5 Ошибка автомата с конечным числом состояний Это определенная процедурная ошибка. Подкод не определен.
    6 Прекращение Подкод не определен

    Краткие итоги

  • Интернет – это комбинация сетей, соединяемых с помощью маршрутизаторов.
  • Выбор оптимального пути определяется метрикой.
  • Метрика – это условная стоимость передачи по сети. Полное измерение конкретного маршрута равно сумме метрик сетей, которые включают в себя маршрут.
  • Протокол маршрутной информации (RIP – Routing Information Protocol) рассматривает все сети как одинаковые. Стоимость прохождения через каждую сеть одна и та же, и для определения метрики подсчитываются участки.
  • Протокол "первоочередное открытие наикратчайших путей" (OSPF — Open Shortest Path First) позволяет администратору назначить стоимость для передачи через сеть, основанную на типе требуемого обслуживания.
  • Протокол пограничной маршрутизации (BGPBorder Gateway Protocol), критерий для выбора пути — называется "политика", т.е. данные для выбора, которые может устанавливать администратор. "Политика" — это принцип, по которому определяется путь.
  • В любой метрике маршрутизатор должен иметь таблицы маршрутизации для того, чтобы консультироваться при дальнейшей передаче пакета.
  • Таблица может быть либо статическая, либо динамическая. Статическая таблица — одна из тех, которые часто не меняются. Динамическая таблица, с другой стороны, одна из тех, которая обновляется автоматически, когда имеются изменения где-либо в сети.
  • Интернет разделяется на автономные системы. Автономная система (Autonomous System – AS) — группа сетей и маршрутизаторов под управлением одного администратора.
  • Маршрутизация внутри автономной системы отнесена к внутренней маршрутизации. Маршрутизация между автономными системами отнесена к внешней маршрутизации.
  • Протокол маршрутной информации (RIP – Routing Information Protocol) — внутренний протокол маршрутизации, используется внутри автономной системы. Это очень простой протокол, основанный на использовании дистанционного вектора маршрутизации (вектора расстояния).
  • Каждый маршрутизатор хранит таблицы маршрутизации, имеющие один вход для каждой сети назначения, которую маршрутизатор зарегистрировал. Вход содержит: адрес сети пункта назначения, кратчайший путь, для того чтобы достичь пункта назначения, следующий участок (следующий маршрутизатор), к которому должен быть доставлен пакет, счетчик участка – это число сетей.
  • При использовании протокола RIP таблица маршрутизации обновляется после получения "квитанции" — ответного сообщения RIP согласно алгоритму модификации RIP.
  • При использовании протокола RIP используется дистанционный вектор, который определяет количество участков для каждого объявленного маршрута к сети назначения.
  • Сообщение-запрос посылается маршрутизатором, который только что включен в систему, или маршрутизатором, который запущен по тайм-ауту.
  • Ответ на запрос может быть двух типов: либо запрошенный, либо не запрошенный. Запрошенный ответ посылается только в ответ на запрос. Не запрошенный ответ посылается периодически, каждые 30 с.
  • RIP использует три таймера для поддержки своих операций — периодический таймер посылает сообщения, таймер окончания времени проверяет правильность маршрута и еще один таймер собирает мусор объявленных ошибочными маршрутов.
  • Нестабильность – это явление, когда пакет от одного маршрутизатора к другому может идти по петле.
  • Для увеличения стабильности предлагаются: запускаемое обновление, "расщепленный горизонт", поглощение возврата.
  • Протокол "первоочередное открытие кратчайших путей" (OSPF — Open Shortest Path First) — это внутренний протокол. Для того чтобы обработать маршрутизацию эффективно и вовремя, OSPF разделяет автономную систему на зоны.
  • Зона — это набор всех сетей, хостов и маршрутизаторов, содержащихся в автономной системе. Автономная система может разделяться на много различных зон. Все сети внутри зоны должны быть соединены.
  • Маршрутизаторы внутри зоны содержат зоновую информацию маршрутизации. На границе зоны специальные маршрутизаторы, называемые пограничными маршрутизаторами зоны, суммируют информацию о зоне и посылают другим зонам. Среди зон внутри автономной системы есть специальная зона, называемая основной.
  • Протокол OSPF позволяет администратору назначать стоимость, называемую метрикой, для каждого маршрута. Метрика может быть основана на типе сервиса (минимальная задержка, максимальное число переприемов и так далее). Фактически, маршрутизатор может иметь множество таблиц, каждая из которых базируется на различном типе сервиса.
  • Для обновления таблиц маршрутизации OSPF использует маршрутизацию по состоянию канала. Маршрутизация по состоянию линии — процесс, при помощи которого каждый маршрутизатор распространяет свою информацию о его соседях каждому маршрутизатору в зоне.
  • В OSPF-терминологии соединение называется связь (link). Определены четыре типа связи: "точка-точка", транзит, ответвление и виртуальная.
  • Для того чтобы распределять информацию о соседях, каждый вход распределяет извещения о состоянии связи (Link State AdvertisementsLSAs).
  • В зависимости от типа доступа определены пять типов различных извещений о состоянии связи (LSAs), которые различаются объектами рассылки: связь маршрутизатора; сетевая связь (узловым маршрутизатором); суммарная связь к автономной системе; внешняя связь.
  • Для того чтобы вычислить таблицы маршрутизации, применяется алгоритм Дейкстры для баз данных состояния линии этого маршрутизатора. Этот алгоритм вычисляет кратчайший путь между двумя точками в сети, используя граф по методу узлов и границ.
  • Каждый маршрутизатор использует метод наикратчайшего пути по дереву для построения своей таблицы маршрутизации. Таблица маршрутизации показывает стоимость достижения каждого узла в зоне. Она использует извещения: суммарной линии сети, суммарной линии пограничного маршрутизатора и внешней линии.
  • OSPF использует пять различных типов пакетов: пакет "hello", пакет распределения базы данных, пакет состояния линии, пакет обновления состояния линии и пакет подтверждения состояния линии.
  • Пограничный межсетевой протокол (BGPBorder Gateway Protocol) – это протокол маршрутизации между автономными системами. Он основан на методах маршрутизации, называемых "маршрутизация вектором пути".
  • Путь обычно определяется как упорядоченный список автономной системы, который должен пройти пакет для достижения пункта назначения. Каждый вход в таблицу маршрутизации содержит сеть пункта назначения, следующий маршрутизатор и путь до пункта назначения.
  • Имеется четыре типа BGP-сообщения: открытия, обновления, дежурное и извещения.
  • Задачи и упражнения

  • Для какой цели разработан протокол RIP?
  • Какие функции выполняет протокол RIP?
  • Почему значение таймера окончания в шесть раз больше значения периодического таймера?
  • Перечислите недостатки протокола RIP и соответствующие пути их преодоления.
  • Сравните методы "разбитый горизонт" и поглощение ответа. В каких случаях один из них имеет преимущество перед другим?
  • Какие есть основы для классификации четырех типов связи в OSPF?
  • Для чего предназначены поле аутентификации типа и поле аутентификации данных?
  • Покажите отличие и совпадение дистанционного вектора маршрутизации и маршрутизации по состоянию линии.
  • Почему OSPF-сообщение распространяется быстрее, чем RIPсообщение?
  • Каков размер RIP-сообщения, которое извещает только одну сеть? Какой размер RIP-сообщения извещает N сетей? Выведите формулу, которая показывает зависимость между числом извещенных сетей и размером RIP-сообщения.
  • Маршрутизатор RIP работает с таблицей маршрутизации на 20 входов. Сколько периодических таймеров необходимо для работы с этой таблицей?
  • Маршрутизатор RIP работает с таблицей маршрутизации на 20 входов. Сколько таймеров сборщиков мусора необходимо для работы с этой таблицей?
  • Маршрутизатор RIP работает с таблицей маршрутизации на 20 входов. Сколько таймеров окончания необходимо для работы с этой таблицей?
  • Маршрутизатор имеет следующую таблицу RIP-маршрутизации:
    Сеть1 4 B
    Сеть2 2 C
    Сеть3 1 F
    Сеть4 5 G
    Каким будет содержание таблицы, если маршрутизатор получит следующее RIP-сообщение от маршрутизатора C:
    Сеть1 2
    Сеть2 1
    Сеть3 3
    Сеть4 7
  • Сколько пустых байтов содержит RIP-сообщение, которое извещает N сетей?
  • Маршрутизатор имеет следующую RIP-таблицу.
    Сеть1 4 B
    Сеть2 2 C
    Сеть3 1 F
    Сеть4 5 G
    Покажите ответное сообщение, посылаемое этим маршрутизатором.
  • Используя рис. 8.13, покажите обновление состояния связи и извещение связи маршрутизатора для маршрутизатора A.
  • Используя рис. 8.13, покажите обновление состояния связи и извещение связи маршрутизатора для маршрутизатора D.
  • Используя рис. 8.13, покажите обновление состояния связи и извещение связи маршрутизатора для маршрутизатора E.
  • Покажите обновление состояния связи и извещение связи маршрутизатора для сети N2 на рис. 8.13.
  • Покажите обновление состояния связи и извещение связи маршрутизатора для сети N4 на рис. 8.13.
  • Покажите обновление состояния связи и извещение связи маршрутизатора для сети N5 на рис. 8.13.
  • Предположим, на рис. 8.13. для сети N3 назначен сетевым маршрутизатором D.23. Покажите обновление состояния связи и извещение связи маршрутизатора для этой сети.
  • Предположим, на рис. 8.13. для сети N1 назначен сетевым маршрутизатором A.24. Покажите обновление состояния связи и извещение связи маршрутизатора для этой сети.
  • Назначьте IP-адреса для сетей и маршрутизаторов рис. 8.13.
  • Используя результат задачи 25, покажите OSPF-сообщение "hello", посылаемое маршрутизатором C.
  • Используя результат задачи 25, покажите OSPF-сообщение описания базы данных, посылаемое маршрутизатором C.
  • Используя результат задачи 25, покажите OSPF-сообщение запроса состояния связи, посылаемое маршрутизатором C.
  • Изобразите автономную систему со следующей спецификацией:
  • Имеется 8 сетей (N1—N8).
  • Имеется 8 маршрутизаторов (R1 – R8).
  • N1, N2, N3, N4 и N5 сети Ethernet.
  • N6 — это сеть с маркерным доступом (Token Ring).
  • N7 и N8 — сети "точка-точка".
  • R1 соединяет N1 и N2.
  • R2 соединяет N1 и N7.
  • R3 соединяет N2 и N8.
  • R4 соединяет N7 и N6.
  • R5 соединяет N6 и N3.
  • R6 соединяет N6 и N4.
  • R7 соединяет N6 и N5.
  • R8 соединяет N8 и N5.
  • Начертить граф автономной системы по упражнению 29.
  • Какая из сетей из упражнения 29 — транзитная сеть? Какая — сеть ответвления?
  • Показать BGP-сообщение "открытие" для маршрутизатора R1 на рис. 8.26.
  • Показать BGP-сообщение "обновление" для маршрутизатора R1 на рис. 8.26.
  • Показать BGP-сообщение уведомления для маршрутизатора R1 на рис. 8.26.
  • Показать BGP-сообщение "дежурное" для маршрутизатора R1 на рис. 8.26.
  • Дополнительный материал для прохождения тестирования к лекции, Вы можете скачать здесь.

    Вернуться к учебному плану