Интернет – это комбинация сетей, соединяемых с помощью маршрутизаторов. Когда дейтаграмма идет от источника к пункту назначения, она, вероятнее всего, проходит много маршрутизаторов, пока достигает маршрутизатора, закрепленного за сетью пункта назначения. Маршрутизатор получает пакет от сети и передает его другой сети. Маршрутизатор обычно закрепляется за несколькими сетями. Когда он получает пакет, он должен решить две задачи:
Последнее решение основано на выборе оптимального пути. Какой доступный путь является оптимальным путем? Это обычно определяется метрикой. Метрика – это условная стоимость передачи по сети. Полное измерение конкретного маршрута равно сумме метрик сетей, которые включают в себя маршрут. Маршрутизатор выбирает маршрут с наименьшей метрикой. Метрика назначается для интерфейса сети в зависимости от типа протокола. Некоторые простые протоколы, подобно протоколу маршрутной информации (RIP – Routing Information Protocol), рассматривают все сети как одинаковые. Тогда стоимость прохождения через каждую сеть — одна и та же, и для определения метрики подсчитываются участки. Так, если пакет, чтобы достигнуть конечного пункта, проходит через 10 сетей, полная стоимость составляет 10 участков.
Другие протоколы, такие как "первоочередное открытие наикратчайших путей" (OSPF — Open Shortest Path First), позволяют администратору назначить стоимость для передачи через сеть, основанную на типе требуемого обслуживания. Маршрут через сеть может иметь различную стоимость (метрику). Например, если для типа сервиса желательна максимальная производительность, спутниковый канал имеет меньшую метрику, чем оптическая линия. С другой стороны, если типу сервера желательна минимальная задержка, оптическая линия имеет меньшую метрику, чем спутниковый канал. OSPF позволяет каждому маршрутизатору иметь таблицу последовательностей маршрутов, основанную на требуемом типе сервиса.
Другие протоколы определяют метрику различно. В протоколе пограничной маршрутизации (
В любой метрике маршрутизатор должен иметь таблицы маршрутизации, чтобы консультироваться при дальнейшей передаче пакета. Таблица маршрутизации задает оптимальный путь для пакета. Таблица может быть либо статическая, либо динамическая. Статическая таблица — одна из тех, которые часто не меняются. Динамическая таблица — одна из тех, которая обновляется автоматически, когда имеются изменения где-либо в Интернете. Сегодня Интернет нуждается в динамических таблицах. Таблицы нужно обновлять по мере появления изменений в Интернете. Например, их нужно обновить, когда маршрут вышел из строя, или они должны быть обновлены всякий раз, когда создается лучший маршрут.
Протоколы маршрутизации созданы для отображения требований таблиц
В этой лекции мы поговорим об однонаправленных протоколах маршрутизации. Многонаправленные протоколы маршрутизации мы обсудим в следующей лекции.
Сегодня Интернет — громадная сеть, так что один протокол маршрутизации не может обрабатывать задачу обновления таблиц всех маршрутизаторов. По этой причине Интернет разделяется на автономные системы. Автономная система (Autonomous System – AS) — группа сетей и маршрутизаторов под управлением одного администратора. Маршрутизация внутри автономной системы отнесена к внутренней маршрутизации. Маршрутизация между автономными системами отнесена к внешней маршрутизации. Каждая автономная система может выбрать протокол внутренней маршрутизации для того, чтобы обрабатывать маршрутизацию внутри автономной системы. Однако для обработки маршрутизации между автономными системами выбирается только один протокол маршрутизации.
Разработано несколько внутренних и внешних протоколов. В этой лекции мы коснемся только наиболее популярных из них — внутренних протоколов RIP и OSPF и одного внешнего протокола
Протокол маршрутной информации (RIP – Routing Information Protocol) — внутренний протокол маршрутизации, используется внутри автономной системы. Это очень простой протокол, основанный на применении дистанционного вектора маршрутизации. В этом разделе сначала рассмотрим принцип дистанционного вектора маршрутизации, так как он применяется в RIP, а затем обсудим сам протокол RIP.
Используя вектор расстояния маршрутизации, каждый маршрутизатор периодически делится своей информацией о входах в Интернет со своими соседями. Ниже приводятся три основных принципа этого процесса, для того чтобы понять, как работает алгоритм.
Каждый маршрутизатор хранит таблицы маршрутизации, имеющие один вход для каждой сети назначения, которую маршрутизатор зарегистрировал. Вход содержит:
Таблица может содержать другую информацию, такую как маску подсети (или префикс) или время, когда этот вход был обновлен. Табл. 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. На рис. 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 показан на рис. 8.3.
(рис 8.3) Формат RIP сообщенияЗаметим, что часть сообщения повторяется для каждой сети назначения. Эта часть относится к понятию вход.
RIP имеет два типа сообщения: запрос и ответ.
Сообщение-запрос посылается маршрутизатором, который только что включен в систему, или маршрутизатором, который запущен по таймауту. Запрос может запрашивать о задании одного входа или всех входов. В первом случае в поле "адрес сети" указывается сетевой адрес, во втором — все поле заполняется нулями.
Ответ может быть двух типов: либо запрошенный, либо не запрошенный. Запрошенный ответ посылается только в ответ на запрос. Он содержит информацию о пункте назначения, заданном в соответствующем запросе. Не запрошенный ответ посылается периодически, каждые 30 с., и содержит информацию о входе в таблицу маршрутизации. Этот периодический ответ иногда называется обновлением пакета.
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 был разработан для преодоления некоторых недостатков версии 1. Разработчики версии 2 не дополнили длину сообщения для каждого входа. Они только заменили те поля в версии 1, которые были заполнены нулями для TCP/IP-протокола, некоторыми новыми полями.
Pис. 8.5 показывает формат сообщения RIP версии 2. Новые поля этого сообщения приводятся ниже.
(рис 8.5) Формат RIP версии 2Аутентификация дополняет защиту сообщения против неполномочного объявления, но добавляет новые поля в пакет: вместо первого входа сообщения устанавливается отдельно информация для аутентификации. Чтобы указать, что вход содержит информацию аутентификации, а не информацию маршрутизации, вводится значение FFFF16 в поле семейство ( рис. 8.6). Второе поле, тип аутентификации, определяет метод, используемый для аутентификации, а третье поле содержит реальные данные аутентификации.
(рис 8.6) Аутентификация
Версия 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 разделяет автономную систему на зоны.
Зона — это набор всех сетей, хостов и маршрутизаторов, содержащихся в автономной системе ( рис. 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
Связь маршрутизатора. Связь маршрутизатора определяет все подключения к данному маршрутизатору. Маршрутизатор использует для извещения информацию обо всех его связях и связях соседей.
Сетевая связь. Узловой маршрутизатор от имени всей транзитной сети распределяет этот тип
Суммарная связь сети. Информация о линиях маршрутизаторов и сетевых линиях внутри зоны распространяется внутри зоны. Информация о состоянии линий вне зоны распространяется пограничным маршрутизатором. Пограничный маршрутизатор зоны действует более чем в одной зоне. Он получает извещения о линиях маршрутизатора данной зоны и линиях сети и, как мы увидим, создает таблицу маршрутов для каждой из этих зон. Например, на рис. 8.10 маршрутизатор R1 есть пограничный маршрутизатор.
(рис 8.10) Суммарная связь сетиОн имеет две таблицы маршрутизации, одна для зоны 1 и одна для зоны 0. R1 заполняется информацией о зоне 1 и вторая — информацией о том, как достигнуть сети, расположенной в зоне 0. Тем же самым способом маршрутизатор R2 заполняется информацией о зоне 2 и о том, как достигнуть по этой же самой сети зоны 0. Суммарная связь в зоне 0 позволяет обмен между маршрутизаторами, она может быть реализована одним из уже рассмотренных четырех типов связи: "точка-точка", транзит, ответвление и виртуальная.
Суммарная связь к пограничному маршрутизатору автономной системы. Предыдущее извещение позволяло каждому маршрутизатору знать стоимость маршрута для того, чтобы выбрать маршрут внутри автономной системы. Если маршрутизатор внутри зоны хочет послать пакет внешней автономной системе, он должен сначала знать маршрут к пограничному маршрутизатору автономной системы. Суммарная линия к пограничному маршрутизатору автономной системы (АС) обеспечивает эту информацию. Зоновый пограничный маршрутизатор заполняет их зоны этой информацией ( рис. 8.11).
(рис 8.11) Суммарная связь к пограничному маршрутизатору автономной системыВнешняя связь. Извещения
Каждый маршрутизатор в зоне получает линию
База данных состояния связи – это таблица, представляющая топологию Интернета внутри зоны. Она показывает связь между каждым маршрутизатором и соседним к нему, включая метрику.
Для того чтобы вычислить таблицы маршрутизации, применяется
(рис 8.12) Алгоритм вычисления наикратчайших путейРабота алгоритма поясняется на рис. 8.13 На рис. 8.13 а приведен пример сети. Эта же сеть представлена в виде графа. На этом графе нанесена назначенная стоимость прохождения по участкам. Далее на рис. 8.13 б. приводится вычисление накопленной стоимости при прохождении.
(рис 8.13) Вычисление стоимости наикратчайшего участкаСам алгоритм заключается в прохождении графа и вычислении накопленной стоимости. Алгоритм прохождения графа приведен во многих книгах. Ниже рассматривается порядок вычисления наикратчайшего пути. Номер следующего узла представляет накопленную стоимость от корневого узла. Заметим, что сеть достигает маршрутизатора E через два направления с накопленной стоимостью 14 и 10. При этом сохраняется направление с накопленной стоимостью 10, а второе удаляется.
Каждый маршрутизатор применяет метод наикратчайшего пути по дереву для построения своей таблицы маршрутизации. Таблица маршрутизации показывает стоимость достижения каждого узла в зоне, маршрутизатор использует извещения: суммарной линии сети, суммарной линии пограничного маршрутизатора и внешней линии. Табл. 8.2. показывает таблицу маршрутизации для маршрутизатора A согласно результатам вычислений по рис. 8.13 в.
| Сеть | Стоимость | Следующий маршрутизатор | Другая информация |
|---|---|---|---|
| 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 бит определяет длину всего сообщения, включая заголовок.
OSPF использует сообщение "hello" ( рис. 8.15) для создания отображения окружающей его сети и для проверки достижимости соседей. Это первый шаг в маршрутизации по состоянию линий. Прежде чем маршрутизатор может заполнить все другие маршрутизаторы своей информацией о соседях, он должен сначала стать доступным для обмена своим соседям. Он должен определить, работоспособны ли они. И он должен знать, доступны ли они.
(рис 8.15) Пакет "hello"Маска сети. Это поле 32 бита определяет
Интервал "hello". Это поле 16 бит определяет число секунд между сообщениями "hello".
E-флаг. Это поле 1 бит – флаг. Когда он установлен, это означает, что зона является ответвлением.
T-флаг. Это поле 1 бит флага. Когда он установлен, это означает, что маршрутизатор поддерживает множество метрик.
Приоритет. Это поле определяет приоритет маршрутизатора. Приоритет используется для выбора назначенного маршрутизатора. После того как все соседи объявят свои приоритеты, маршрутизатор с наивысшим приоритетом выбирается как назначенный. Один из них, имеющий второй наивысший приоритет, выбирается как резервный назначенный маршрутизатор. Если значение этого поля 0, это значит, что маршрутизатор не может никогда быть назначенным резервным маршрутизатором.
Интервал неисправности. Это поле 32 бита определяет число секунд до момента, когда маршрутизатор предположит, что сосед неисправен.
IP-адрес назначенного маршрутизатора. Это поле 32 бита — IP-адрес назначенного маршрутизатора для сети, через которую послано сообщение.
IP-адрес резервного назначенного маршрутизатора. Это поле 32 бита - IP-адрес резервного назначенного маршрутизатора для сети, через которую послано сообщение.
IP-адрес соседа. Это поле повторяет 32 бита, определяющее маршрутизаторы, которые согласованы как соседи для посылающего маршрутизатора. Другими словами, это текущий список всех соседей посылающего маршрутизатора, получивших сообщение "hello".
Когда маршрутизатор подключен к системе первый раз или после повреждения, ему нужно немедленно заполнить базу данных состояния связи. Чтобы создать свою собственную базу данных и вычислить таблицу маршрутов, он не может ждать, пока все состояния связи будут обновлены в соответствии с информацией, которая поступит от каждого из маршрутизаторов. Поэтому, после того как маршрутизатор подключен к системе, он посылает пакеты "hello" для того, чтобы оповестить соседей. Если соседи первый раз узнают об этом маршрутизаторе, они посылают пакет обновления с описанием собственной базы данных. Пакет обновления с описанием собственной базы данных не содержит полного описания информации о базе данных, он дает только краткое содержание, название каждой линейки в базе данных. Заново подключенный маршрутизатор анализирует общее описание и узнает, какие линейки информации у него отсутствуют. После чего он посылает один или более пакетов запросов состояния связи, чтобы иметь полную информацию об этих конкретных линиях. Когда два маршрутизатора хотят обменяться пакетами описания базы данных, один из них играет роль ведущего, а другой роль ведомого. Поскольку сообщение может быть очень длинным, содержание базы данных может быть разделено на несколько сообщений. Формат пакетов описания базы данных показан на рис. 8.16
(рис 8.16) Пакет сообщения описания базы данныхОн имеет следующие поля:
Этот
(рис 8.17) Пакет запроса состояния линии
Пакет обновления состояния связи — "сердце" работы OSPF. Он используется маршрутизатором для того, чтобы известить о состоянии своих линий. Общий
(рис 8.18) Пакет обновления состояния связиНапример, пакет обновления состояния связи может содержать 14
Ниже приводятся поля.
Номер извещения о состоянии связи. Поле на 32 бита, определяющее номер извещения. Один пакет может извещать о состоянии нескольких линий.
Извещения о состоянии связи. Как уже обсуждалось раньше, существует пять различных
(рис 8.19) Заголовок LSAВозраст состояния связи. Это поле показывает число секунд, прошедших с момента генерации этого сообщения. Этот тип сообщения может повторяться при переходе от маршрутизатора к маршрутизатору (распространение). Когда маршрутизатор создает сообщение, значение этого поля равно нулю. Когда каждый успешно отработавший маршрутизатор передает сообщение дальше, он устанавливает транзитное время и дополняет его для накопления в этом поле.
E-флаг. Это поле 1 бит – флаг, устанавливаемый на 1, если это зона ответвления. Напомним, что зона ответвления – это зона, которая подключена к основной зоне только по одному пути.
T-флаг. Это поле 1 бит – флаг, устанавливаемый на 1. Это означает, что маршрутизатор может работать со многими типами обслуживания.
Тип состояния связи. Это поле определяет тип
ID состояния связи. Значение этого поля зависит от типа линии. Для типа 1 (связь маршрутизатора) — это IP-адрес маршрутизатора. Для типа 2 (сетевая связь) — это IP-адрес сети. Для типа 3 (суммарная связь сети) — это IP-адрес сети. Для типа 4 (суммарная связь пограничного маршрутизатора к автономной системе) — это IP-адрес автономной системы. Для типа 5(
Извещающий маршрутизатор. Это IP-адрес извещающего маршрутизатора для этого сообщения.
Порядковый номер состояния линии. Это порядковый номер, назначаемый для каждого сообщения обновления состояния линии.
Контрольная сумма состояния связи. Это поле — не обычное поле контрольной суммы. Оно используется для вычисления специальной суммы, которая основана на полном пакете, за исключением поля возраста сообщения.
Длина. Это поле определяет длину полного пакета в битах.
Извещение о состоянии связи маршрутизатора. Извещение о состоянии линии (
(рис 8.20) LSA Состояния связи маршрутизатораID-связи. Значение этого поля зависит от типа связи. Табл. 8.3. показывает различные идентификаторы линии, указывающие тип связи.
Данные связи. Это поле дает дополнительную информацию о связи. Значение зависит от типа связи (см. табл. 8.3.)
Тип связи. Различают четыре типа связей, основанных на типе сети, к которой подключен маршрутизатор (см. табл. 8.3.).
| Тип линий | Идентификатор линий | Данные линий |
|---|---|---|
| Тип 1: Подключение к другому маршрутизатору "Точка – точка" | Адрес соседнего маршрутизатора | Номер интерфейса |
| Тип:2: Подключение к сети "любой с любым" | Адрес соседнего маршрутизатора | Адрес маршрутизатора |
| Тип 3:Подключение сети "ответвление" | Сетевой адрес | |
| Тип 4: Виртуальная линия | Адрес соседнего маршрутизатора | Адрес маршрутизатора |
Число типов обслуживания (TOS – Type of Service). Это поле определяет число типов обслуживания, закрепленных за этой связью.
Метрика для TOS 0. Это поле определяет метрику по умолчанию для данного типа обслуживания (
Тип сервиса TOS (The type of Service). Поле определяет тип обслуживания.
Метрика. Это поле определяет метрику для соответствующего
Извещение о состоянии сетевой связи. Извещение о состоянии сетевой связи несет информацию об устройствах, подключенных к сети связи. Формат извещения сетевой связи показан на рис. 8.21 Поля
(рис 8.21) Формат извещения LSA сетевой связиИзвещение о суммарном состоянии связи к сетям. Оно используется узловым маршрутизатором от имени всей транзитной сети зоны, чтобы разослать извещения о состоянии всех маршрутизаторов, подключенных к сети. Извещение суммарной связи сети очень простое. Оно содержит
Если имеется более чем одна отдельная сеть, извещение должно повторятся для каждой сети. Извещение маски сети передается для того, чтобы определить IP-адрес извещающего маршрутизатора, содержащегося в заголовке в поле "ID состояния связи". Из этой информации и маски можно однозначно вывести адрес сети. Формат этого извещения показан на рис. 8.21 Поля
(рис 8.22) Формат LSA суммарной связи сетиИзвещение о суммарном состоянии связи к пограничному маршрутизатору автономной системы. Этот пакет используется для описания маршрута к пограничному маршрутизатору автономной системы (АС). Его формат такой же, как в предыдущей суммарной линии. Пакет непосредственно определяет сеть, к которой подключен маршрутизатор. Если сообщение может достигнуть сети, оно может быть принято пограничным маршрутизатором автономной сети.
(рис 8.23) LSA суммарной линии к пограничному маршрутизатору автономной сети (АС)Извещение о состоянии внешней связи. Оно используется, чтобы известить все станции сети о
(рис 8.24) LSA внешней связи
OSPF делает маршрутизацию более достоверной благодаря подтверждению каждым маршрутизатором каждого пакета обновления состояния линии.
(рис 8.25) Пакет подтверждения состояния связи
OSPF-пакет инкапсулируется в IP-дейтаграммы. Они содержат извещающий механизм для управления потоком и контроля ошибок. Они не нуждаются в протоколе транспортного уровня, для того чтобы быть обеспеченными эти сервисом.
Протокол пограничной маршрутизации (
Маршрутизация с помощью вектора расстояния маршрута может быть нежелательной, потому что имеются случаи, в которых маршрут, вычисленный с наименьшим числом участков, не является предпочтительным. Например, существует запрет на передачу через автономную систему, которая не обеспечивает безопасности по наикратчайшему маршруту. Вектор маршрутизации с использованием вектора
Маршрутизация по состоянию линий также не является желательной для системы маршрутизации между автономными системами, потому что Интернет обычно слишком большая сеть для этого метода маршрутизации. Чтобы использовать маршрутизацию по состоянию линий для всего Интернета, каждому маршрутизатору понадобилось бы иметь огромную базу данных состояний. Это также привело к длительному времени работы каждого маршрутизатора для вычисления его таблицы маршрутов с использованием
Маршрутизация с использованием вектора путей отличается и от маршрутизации с использованием вектора
| Сеть | Следующий маршрутизатор | Путь |
|---|---|---|
| N01 | R01 | AS14,AS23, AS67 |
| N02 | R05 | AS22,AS67, AS05, AS89 |
| N03 | R06 | AS67,AS89, AS09, AS34 |
| N04 | R12 | AS62,AS02, AS09 |
Автономный пограничный маршрутизатор, который участвует в маршрутизации с использованием вектора путей, извещает о достижимости сетей в их собственной автономной системе для соседних автономных пограничных маршрутизаторов. Концепция окружения здесь та же самая, как в уже рассмотренных протоколах RIP и OSPF. Два пограничных маршрутизатора автономных систем, подключенные к той же самой сети, – соседи.
Заметим, что пограничный маршрутизатор автономной системы получает свою информацию от внутреннего
Каждый маршрутизатор, который получает вектор пути, проверяет, что предложенный путь согласован с его политикой (набором правил, назначаемых администратором, который управляет маршрутизатором). Если политика маршрутизации соответствует записанной в программе, маршрутизатор обновляет таблицы маршрутизации и модифицирует сообщение, прежде чем послать его к следующему соседу. Модификация содержит дополнение номера своей АС для пути и замещающий номер следующего маршрутизатора, входящего со своим собственным идентификатором.
Например, рис. 8.26 показывает сеть Интернет с четырьмя автономными системами. Маршрутизатор R1 посылает сообщение вектора путей, извещающего о достижимости N1, маршрутизатор R2 получает сообщение, обновляет свою таблицу маршрутизации, после этого добавляет свою информацию об автономной системе к информации пути и вставляет самого себя как соседний маршрутизатор, посылает сообщение к маршрутизатору R3. Маршрутизатор R3 получает сообщение, обновляет свою таблицу маршрутизации и посылает сообщение после изменения к маршрутизатору R4.
(рис 8.26) Принцип формирования вектора путей
Нестабильности маршрутизации с использованием дистанционного вектора маршрутизации и порождения петель можно избежать при маршрутизации с использованием вектора путей. Когда маршрутизатор получит сообщение, он проверяет его, чтобы посмотреть, есть ли в его автономной системе список путей к пункту назначения. Если он есть, то возможно возникновение петель и сообщение игнорируется.
Политика маршрутизации может быть просто реализована с использованием вектора путей. Когда маршрутизатор получает сообщение, он проверяет путь. Если одна из автономных систем, указанных в списке, не совпадет с его политикой, он может игнорировать этот путь и этот конечный пункт. Он не обновляет свою таблицу маршрутизации в части этого пути и не посылает сообщения своим соседям. Это означает, что таблицы маршрутизации в методе маршрутизации с использованием вектора путей не основываются на подсчете наикратчайшего пути или минимальной метрике. Они основаны на политике, навязываемой маршрутизатору администратором.
При рассматриваемом методе путь был представлен как список автономных систем, но фактически это список атрибутов.
Список атрибутов помогает принимающему маршрутизатору вырабатывать решение, когда применяется его политика.
Атрибуты разделяются на две категории: закрепленные (well-know) и опциональные.
Закрепленный атрибут — единица, которую каждый
Закрепленный атрибут сам разделяется на две категории: обязательный и по усмотрению. Закрепленный атрибут по усмотрению — единица, которая должна быть опознана каждым маршрутизатором, но не требует включения в каждое обновленное сообщение.
Единица обязательного закрепленного атрибута – это ORIGIN. Она определяет информацию об источнике маршрутизации (RIP, OSPF и так далее). Другой хорошо известный закрепленный обязательный атрибут – это AS_PATH. Он определяет список автономных систем, через которые может быть достигнут пункт назначения. Еще один обязательный атрибут – это NEXT-
Опциональные атрибуты могут также быть подразделены на две категории: транзитные и не транзитные. Опциональный транзитный атрибут — единица, которая должна быть передана к следующему маршрутизатору маршрутизатором, который не выполняет этот атрибут. Опциональный не транзитный атрибут — единица, которая должна быть удалена, если приемный маршрутизатор не может выполнить ее.
Все
(рис 8.27) Заголовок пакета BGPДля того чтобы создать информацию об окружении, маршрутизатор, выполняющий протокол
(рис 8.28) Сообщение открытияПоля сообщения "открытие" приведены ниже.
Версия. Это поле 1 байт, определяющее версию
Моя автономная система. Это поле 2 байта, определяющее номер автономной системы.
Время удержания. Это поле 2 байта, определяющее максимальное число секунд, которые могут пройти, прежде чем одна из сторон получит дежурное сообщение или сообщение обновления от другой стороны. Если маршрутизатор не получает одно из этих сообщений в период времени удержания, он решает, что вторая сторона вышла из строя.
BGP-идентификатор. Это поле 4 байта, определяющее маршрутизатор, который прислал сообщения "открытие". Маршрутизатор обычно использует для этой цели один из своих адресов IP (потому что он уникален).
Длина параметра опции. Сообщение "открытие" может содержать некоторые параметры опции. Если это так, то здесь содержится 1 байт, определяющий длину всех параметров опции. Если параметров опции нет, значение этого поля — ноль.
Параметры опции. Если значение длины параметров опции не равно нулю, это означает, что имеются некоторые параметры опций. Каждый параметр опции сам имеет два подполя: длина параметра и значение параметра.
Единственный параметр опции, определенный до сих пор, — аутентификация.
Сообщение "обновление" — основа протокола
(рис 8.29) Сообщение обновленияПоля сообщения обновления перечислены ниже.
Длина отзываемых маршрутов. Это поле определяет длину следующего за ним поля.
Отзываемый маршрут. Это поле — список всех маршрутов, которые должны быть удалены из предыдущего объявленного списка.
Длина атрибутов пути. Это поле 2 байта определяет длину следующего поля.
Атрибуты пути. Это поле определяет атрибуты пути (маршрута) к сети, которая достижима и объявлена в этом маршруте.
Информация достижимости сетевого уровня. Это поле определяет сеть, которая заявлена этим сообщением. Оно имеет длину поля и префикс IP-адреса. Длина определяет число бит в префиксе. Префикс определяет общую часть сетевого адреса. Например, 153.18.7.0/24.
Префикс 153.18.7, длина префикса – это 24 бита. Это означает, что BGP4 поддерживает классическую адресацию и
Маршрутизатор (называемый равный – peers на языке
Сообщение уведомления посылается маршрутизатором всегда, когда обнаружены признаки ошибки или маршрутизатор завершает соединение. Формат сообщения показан на рис. 8.30
(рис 8.30) Сообщение уведомленияПоля, содержащиеся в поле извещения, следующие:
Код ошибки. Это поле 1 байт, определяющее категорию ошибки ( табл. 8.5.).
Подкод ошибки. Это поле 1 байт дополнительно определяет тип ошибки в каждой категории.
Данные об ошибке. Это поле может быть использовано, чтобы дать больше диагностической информации об ошибке.
| Код ошибки | Описание подкода ошибки | Описание подкода ошибки |
|---|---|---|
| 1 | Ошибка заголовка сообщения | Определены три различных подкода для этого типа ошибки: проблемы синхронизации(1), плохая длина сообщения (2), плохой тип сообщения (3) |
| 2 | Ошибка сообщения открытия | Определены 6 различных подкодов для этого типа ошибки: номер неподдерживаемой версии (1), плохой прямой АС (2), плохой идентификатор |
| 3 | Ошибка сообщения обновления | Определены 6 различных подкодов для этого типа ошибки: плохо сформированный список атрибутов (1), неопознанные атрибуты хорошо известного порта (3), ошибка флага атрибутов(5), ошибка длины атрибутов (6), АС-зацикливание маршрутизации (7), недействительный атрибут следующего участка (8), ошибка опциональных атрибутов (9), недействительное поле сети (10), плохо сформированный AS_PATH (11) |
| 4 | Истекло время удержания | Подкод не определен |
| 5 | Ошибка автомата с конечным числом состояний | Это определенная процедурная ошибка. Подкод не определен. |
| 6 | Прекращение | Подкод не определен |
| Сеть1 | 4 | B | ||||
| Сеть2 | 2 | C | ||||
| Сеть3 | 1 | F | ||||
| Сеть4 | 5 | G |
| Сеть1 | 2 | ||
| Сеть2 | 1 | ||
| Сеть3 | 3 | ||
| Сеть4 | 7 |
| Сеть1 | 4 | B | ||||
| Сеть2 | 2 | C | ||||
| Сеть3 | 1 | F | ||||
| Сеть4 | 5 | G |
Дополнительный материал для прохождения тестирования к лекции, Вы можете скачать здесь.
Интернет – это комбинация сетей, соединяемых с помощью маршрутизаторов. Когда дейтаграмма идет от источника к пункту назначения, она, вероятнее всего, проходит много маршрутизаторов, пока достигает маршрутизатора, закрепленного за сетью пункта назначения. Маршрутизатор получает пакет от сети и передает его другой сети. Маршрутизатор обычно закрепляется за несколькими сетями. Когда он получает пакет, он должен решить две задачи:
Последнее решение основано на выборе оптимального пути. Какой доступный путь является оптимальным путем? Это обычно определяется метрикой. Метрика – это условная стоимость передачи по сети. Полное измерение конкретного маршрута равно сумме метрик сетей, которые включают в себя маршрут. Маршрутизатор выбирает маршрут с наименьшей метрикой. Метрика назначается для интерфейса сети в зависимости от типа протокола. Некоторые простые протоколы, подобно протоколу маршрутной информации (RIP – Routing Information Protocol), рассматривают все сети как одинаковые. Тогда стоимость прохождения через каждую сеть — одна и та же, и для определения метрики подсчитываются участки. Так, если пакет, чтобы достигнуть конечного пункта, проходит через 10 сетей, полная стоимость составляет 10 участков.
Другие протоколы, такие как "первоочередное открытие наикратчайших путей" (OSPF — Open Shortest Path First), позволяют администратору назначить стоимость для передачи через сеть, основанную на типе требуемого обслуживания. Маршрут через сеть может иметь различную стоимость (метрику). Например, если для типа сервиса желательна максимальная производительность, спутниковый канал имеет меньшую метрику, чем оптическая линия. С другой стороны, если типу сервера желательна минимальная задержка, оптическая линия имеет меньшую метрику, чем спутниковый канал. OSPF позволяет каждому маршрутизатору иметь таблицу последовательностей маршрутов, основанную на требуемом типе сервиса.
Другие протоколы определяют метрику различно. В протоколе пограничной маршрутизации (
В любой метрике маршрутизатор должен иметь таблицы маршрутизации, чтобы консультироваться при дальнейшей передаче пакета. Таблица маршрутизации задает оптимальный путь для пакета. Таблица может быть либо статическая, либо динамическая. Статическая таблица — одна из тех, которые часто не меняются. Динамическая таблица — одна из тех, которая обновляется автоматически, когда имеются изменения где-либо в Интернете. Сегодня Интернет нуждается в динамических таблицах. Таблицы нужно обновлять по мере появления изменений в Интернете. Например, их нужно обновить, когда маршрут вышел из строя, или они должны быть обновлены всякий раз, когда создается лучший маршрут.
Протоколы маршрутизации созданы для отображения требований таблиц
В этой лекции мы поговорим об однонаправленных протоколах маршрутизации. Многонаправленные протоколы маршрутизации мы обсудим в следующей лекции.
Сегодня Интернет — громадная сеть, так что один протокол маршрутизации не может обрабатывать задачу обновления таблиц всех маршрутизаторов. По этой причине Интернет разделяется на автономные системы. Автономная система (Autonomous System – AS) — группа сетей и маршрутизаторов под управлением одного администратора. Маршрутизация внутри автономной системы отнесена к внутренней маршрутизации. Маршрутизация между автономными системами отнесена к внешней маршрутизации. Каждая автономная система может выбрать протокол внутренней маршрутизации для того, чтобы обрабатывать маршрутизацию внутри автономной системы. Однако для обработки маршрутизации между автономными системами выбирается только один протокол маршрутизации.
Разработано несколько внутренних и внешних протоколов. В этой лекции мы коснемся только наиболее популярных из них — внутренних протоколов RIP и OSPF и одного внешнего протокола
Протокол маршрутной информации (RIP – Routing Information Protocol) — внутренний протокол маршрутизации, используется внутри автономной системы. Это очень простой протокол, основанный на применении дистанционного вектора маршрутизации. В этом разделе сначала рассмотрим принцип дистанционного вектора маршрутизации, так как он применяется в RIP, а затем обсудим сам протокол RIP.
Используя вектор расстояния маршрутизации, каждый маршрутизатор периодически делится своей информацией о входах в Интернет со своими соседями. Ниже приводятся три основных принципа этого процесса, для того чтобы понять, как работает алгоритм.
Каждый маршрутизатор хранит таблицы маршрутизации, имеющие один вход для каждой сети назначения, которую маршрутизатор зарегистрировал. Вход содержит:
Таблица может содержать другую информацию, такую как маску подсети (или префикс) или время, когда этот вход был обновлен. Табл. 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. На рис. 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 показан на рис. 8.3.
(рис 8.3) Формат RIP сообщенияЗаметим, что часть сообщения повторяется для каждой сети назначения. Эта часть относится к понятию вход.
RIP имеет два типа сообщения: запрос и ответ.
Сообщение-запрос посылается маршрутизатором, который только что включен в систему, или маршрутизатором, который запущен по таймауту. Запрос может запрашивать о задании одного входа или всех входов. В первом случае в поле "адрес сети" указывается сетевой адрес, во втором — все поле заполняется нулями.
Ответ может быть двух типов: либо запрошенный, либо не запрошенный. Запрошенный ответ посылается только в ответ на запрос. Он содержит информацию о пункте назначения, заданном в соответствующем запросе. Не запрошенный ответ посылается периодически, каждые 30 с., и содержит информацию о входе в таблицу маршрутизации. Этот периодический ответ иногда называется обновлением пакета.
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 был разработан для преодоления некоторых недостатков версии 1. Разработчики версии 2 не дополнили длину сообщения для каждого входа. Они только заменили те поля в версии 1, которые были заполнены нулями для TCP/IP-протокола, некоторыми новыми полями.
Pис. 8.5 показывает формат сообщения RIP версии 2. Новые поля этого сообщения приводятся ниже.
(рис 8.5) Формат RIP версии 2Аутентификация дополняет защиту сообщения против неполномочного объявления, но добавляет новые поля в пакет: вместо первого входа сообщения устанавливается отдельно информация для аутентификации. Чтобы указать, что вход содержит информацию аутентификации, а не информацию маршрутизации, вводится значение FFFF16 в поле семейство ( рис. 8.6). Второе поле, тип аутентификации, определяет метод, используемый для аутентификации, а третье поле содержит реальные данные аутентификации.
(рис 8.6) Аутентификация
Версия 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 разделяет автономную систему на зоны.
Зона — это набор всех сетей, хостов и маршрутизаторов, содержащихся в автономной системе ( рис. 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
Связь маршрутизатора. Связь маршрутизатора определяет все подключения к данному маршрутизатору. Маршрутизатор использует для извещения информацию обо всех его связях и связях соседей.
Сетевая связь. Узловой маршрутизатор от имени всей транзитной сети распределяет этот тип
Суммарная связь сети. Информация о линиях маршрутизаторов и сетевых линиях внутри зоны распространяется внутри зоны. Информация о состоянии линий вне зоны распространяется пограничным маршрутизатором. Пограничный маршрутизатор зоны действует более чем в одной зоне. Он получает извещения о линиях маршрутизатора данной зоны и линиях сети и, как мы увидим, создает таблицу маршрутов для каждой из этих зон. Например, на рис. 8.10 маршрутизатор R1 есть пограничный маршрутизатор.
(рис 8.10) Суммарная связь сетиОн имеет две таблицы маршрутизации, одна для зоны 1 и одна для зоны 0. R1 заполняется информацией о зоне 1 и вторая — информацией о том, как достигнуть сети, расположенной в зоне 0. Тем же самым способом маршрутизатор R2 заполняется информацией о зоне 2 и о том, как достигнуть по этой же самой сети зоны 0. Суммарная связь в зоне 0 позволяет обмен между маршрутизаторами, она может быть реализована одним из уже рассмотренных четырех типов связи: "точка-точка", транзит, ответвление и виртуальная.
Суммарная связь к пограничному маршрутизатору автономной системы. Предыдущее извещение позволяло каждому маршрутизатору знать стоимость маршрута для того, чтобы выбрать маршрут внутри автономной системы. Если маршрутизатор внутри зоны хочет послать пакет внешней автономной системе, он должен сначала знать маршрут к пограничному маршрутизатору автономной системы. Суммарная линия к пограничному маршрутизатору автономной системы (АС) обеспечивает эту информацию. Зоновый пограничный маршрутизатор заполняет их зоны этой информацией ( рис. 8.11).
(рис 8.11) Суммарная связь к пограничному маршрутизатору автономной системыВнешняя связь. Извещения
Каждый маршрутизатор в зоне получает линию
База данных состояния связи – это таблица, представляющая топологию Интернета внутри зоны. Она показывает связь между каждым маршрутизатором и соседним к нему, включая метрику.
Для того чтобы вычислить таблицы маршрутизации, применяется
(рис 8.12) Алгоритм вычисления наикратчайших путейРабота алгоритма поясняется на рис. 8.13 На рис. 8.13 а приведен пример сети. Эта же сеть представлена в виде графа. На этом графе нанесена назначенная стоимость прохождения по участкам. Далее на рис. 8.13 б. приводится вычисление накопленной стоимости при прохождении.
(рис 8.13) Вычисление стоимости наикратчайшего участкаСам алгоритм заключается в прохождении графа и вычислении накопленной стоимости. Алгоритм прохождения графа приведен во многих книгах. Ниже рассматривается порядок вычисления наикратчайшего пути. Номер следующего узла представляет накопленную стоимость от корневого узла. Заметим, что сеть достигает маршрутизатора E через два направления с накопленной стоимостью 14 и 10. При этом сохраняется направление с накопленной стоимостью 10, а второе удаляется.
Каждый маршрутизатор применяет метод наикратчайшего пути по дереву для построения своей таблицы маршрутизации. Таблица маршрутизации показывает стоимость достижения каждого узла в зоне, маршрутизатор использует извещения: суммарной линии сети, суммарной линии пограничного маршрутизатора и внешней линии. Табл. 8.2. показывает таблицу маршрутизации для маршрутизатора A согласно результатам вычислений по рис. 8.13 в.
| Сеть | Стоимость | Следующий маршрутизатор | Другая информация |
|---|---|---|---|
| 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 бит определяет длину всего сообщения, включая заголовок.
OSPF использует сообщение "hello" ( рис. 8.15) для создания отображения окружающей его сети и для проверки достижимости соседей. Это первый шаг в маршрутизации по состоянию линий. Прежде чем маршрутизатор может заполнить все другие маршрутизаторы своей информацией о соседях, он должен сначала стать доступным для обмена своим соседям. Он должен определить, работоспособны ли они. И он должен знать, доступны ли они.
(рис 8.15) Пакет "hello"Маска сети. Это поле 32 бита определяет
Интервал "hello". Это поле 16 бит определяет число секунд между сообщениями "hello".
E-флаг. Это поле 1 бит – флаг. Когда он установлен, это означает, что зона является ответвлением.
T-флаг. Это поле 1 бит флага. Когда он установлен, это означает, что маршрутизатор поддерживает множество метрик.
Приоритет. Это поле определяет приоритет маршрутизатора. Приоритет используется для выбора назначенного маршрутизатора. После того как все соседи объявят свои приоритеты, маршрутизатор с наивысшим приоритетом выбирается как назначенный. Один из них, имеющий второй наивысший приоритет, выбирается как резервный назначенный маршрутизатор. Если значение этого поля 0, это значит, что маршрутизатор не может никогда быть назначенным резервным маршрутизатором.
Интервал неисправности. Это поле 32 бита определяет число секунд до момента, когда маршрутизатор предположит, что сосед неисправен.
IP-адрес назначенного маршрутизатора. Это поле 32 бита — IP-адрес назначенного маршрутизатора для сети, через которую послано сообщение.
IP-адрес резервного назначенного маршрутизатора. Это поле 32 бита - IP-адрес резервного назначенного маршрутизатора для сети, через которую послано сообщение.
IP-адрес соседа. Это поле повторяет 32 бита, определяющее маршрутизаторы, которые согласованы как соседи для посылающего маршрутизатора. Другими словами, это текущий список всех соседей посылающего маршрутизатора, получивших сообщение "hello".
Когда маршрутизатор подключен к системе первый раз или после повреждения, ему нужно немедленно заполнить базу данных состояния связи. Чтобы создать свою собственную базу данных и вычислить таблицу маршрутов, он не может ждать, пока все состояния связи будут обновлены в соответствии с информацией, которая поступит от каждого из маршрутизаторов. Поэтому, после того как маршрутизатор подключен к системе, он посылает пакеты "hello" для того, чтобы оповестить соседей. Если соседи первый раз узнают об этом маршрутизаторе, они посылают пакет обновления с описанием собственной базы данных. Пакет обновления с описанием собственной базы данных не содержит полного описания информации о базе данных, он дает только краткое содержание, название каждой линейки в базе данных. Заново подключенный маршрутизатор анализирует общее описание и узнает, какие линейки информации у него отсутствуют. После чего он посылает один или более пакетов запросов состояния связи, чтобы иметь полную информацию об этих конкретных линиях. Когда два маршрутизатора хотят обменяться пакетами описания базы данных, один из них играет роль ведущего, а другой роль ведомого. Поскольку сообщение может быть очень длинным, содержание базы данных может быть разделено на несколько сообщений. Формат пакетов описания базы данных показан на рис. 8.16
(рис 8.16) Пакет сообщения описания базы данныхОн имеет следующие поля:
Этот
(рис 8.17) Пакет запроса состояния линии
Пакет обновления состояния связи — "сердце" работы OSPF. Он используется маршрутизатором для того, чтобы известить о состоянии своих линий. Общий
(рис 8.18) Пакет обновления состояния связиНапример, пакет обновления состояния связи может содержать 14
Ниже приводятся поля.
Номер извещения о состоянии связи. Поле на 32 бита, определяющее номер извещения. Один пакет может извещать о состоянии нескольких линий.
Извещения о состоянии связи. Как уже обсуждалось раньше, существует пять различных
(рис 8.19) Заголовок LSAВозраст состояния связи. Это поле показывает число секунд, прошедших с момента генерации этого сообщения. Этот тип сообщения может повторяться при переходе от маршрутизатора к маршрутизатору (распространение). Когда маршрутизатор создает сообщение, значение этого поля равно нулю. Когда каждый успешно отработавший маршрутизатор передает сообщение дальше, он устанавливает транзитное время и дополняет его для накопления в этом поле.
E-флаг. Это поле 1 бит – флаг, устанавливаемый на 1, если это зона ответвления. Напомним, что зона ответвления – это зона, которая подключена к основной зоне только по одному пути.
T-флаг. Это поле 1 бит – флаг, устанавливаемый на 1. Это означает, что маршрутизатор может работать со многими типами обслуживания.
Тип состояния связи. Это поле определяет тип
ID состояния связи. Значение этого поля зависит от типа линии. Для типа 1 (связь маршрутизатора) — это IP-адрес маршрутизатора. Для типа 2 (сетевая связь) — это IP-адрес сети. Для типа 3 (суммарная связь сети) — это IP-адрес сети. Для типа 4 (суммарная связь пограничного маршрутизатора к автономной системе) — это IP-адрес автономной системы. Для типа 5(
Извещающий маршрутизатор. Это IP-адрес извещающего маршрутизатора для этого сообщения.
Порядковый номер состояния линии. Это порядковый номер, назначаемый для каждого сообщения обновления состояния линии.
Контрольная сумма состояния связи. Это поле — не обычное поле контрольной суммы. Оно используется для вычисления специальной суммы, которая основана на полном пакете, за исключением поля возраста сообщения.
Длина. Это поле определяет длину полного пакета в битах.
Извещение о состоянии связи маршрутизатора. Извещение о состоянии линии (
(рис 8.20) LSA Состояния связи маршрутизатораID-связи. Значение этого поля зависит от типа связи. Табл. 8.3. показывает различные идентификаторы линии, указывающие тип связи.
Данные связи. Это поле дает дополнительную информацию о связи. Значение зависит от типа связи (см. табл. 8.3.)
Тип связи. Различают четыре типа связей, основанных на типе сети, к которой подключен маршрутизатор (см. табл. 8.3.).
| Тип линий | Идентификатор линий | Данные линий |
|---|---|---|
| Тип 1: Подключение к другому маршрутизатору "Точка – точка" | Адрес соседнего маршрутизатора | Номер интерфейса |
| Тип:2: Подключение к сети "любой с любым" | Адрес соседнего маршрутизатора | Адрес маршрутизатора |
| Тип 3:Подключение сети "ответвление" | Сетевой адрес | |
| Тип 4: Виртуальная линия | Адрес соседнего маршрутизатора | Адрес маршрутизатора |
Число типов обслуживания (TOS – Type of Service). Это поле определяет число типов обслуживания, закрепленных за этой связью.
Метрика для TOS 0. Это поле определяет метрику по умолчанию для данного типа обслуживания (
Тип сервиса TOS (The type of Service). Поле определяет тип обслуживания.
Метрика. Это поле определяет метрику для соответствующего
Извещение о состоянии сетевой связи. Извещение о состоянии сетевой связи несет информацию об устройствах, подключенных к сети связи. Формат извещения сетевой связи показан на рис. 8.21 Поля
(рис 8.21) Формат извещения LSA сетевой связиИзвещение о суммарном состоянии связи к сетям. Оно используется узловым маршрутизатором от имени всей транзитной сети зоны, чтобы разослать извещения о состоянии всех маршрутизаторов, подключенных к сети. Извещение суммарной связи сети очень простое. Оно содержит
Если имеется более чем одна отдельная сеть, извещение должно повторятся для каждой сети. Извещение маски сети передается для того, чтобы определить IP-адрес извещающего маршрутизатора, содержащегося в заголовке в поле "ID состояния связи". Из этой информации и маски можно однозначно вывести адрес сети. Формат этого извещения показан на рис. 8.21 Поля
(рис 8.22) Формат LSA суммарной связи сетиИзвещение о суммарном состоянии связи к пограничному маршрутизатору автономной системы. Этот пакет используется для описания маршрута к пограничному маршрутизатору автономной системы (АС). Его формат такой же, как в предыдущей суммарной линии. Пакет непосредственно определяет сеть, к которой подключен маршрутизатор. Если сообщение может достигнуть сети, оно может быть принято пограничным маршрутизатором автономной сети.
(рис 8.23) LSA суммарной линии к пограничному маршрутизатору автономной сети (АС)Извещение о состоянии внешней связи. Оно используется, чтобы известить все станции сети о
(рис 8.24) LSA внешней связи
OSPF делает маршрутизацию более достоверной благодаря подтверждению каждым маршрутизатором каждого пакета обновления состояния линии.
(рис 8.25) Пакет подтверждения состояния связи
OSPF-пакет инкапсулируется в IP-дейтаграммы. Они содержат извещающий механизм для управления потоком и контроля ошибок. Они не нуждаются в протоколе транспортного уровня, для того чтобы быть обеспеченными эти сервисом.
Протокол пограничной маршрутизации (
Маршрутизация с помощью вектора расстояния маршрута может быть нежелательной, потому что имеются случаи, в которых маршрут, вычисленный с наименьшим числом участков, не является предпочтительным. Например, существует запрет на передачу через автономную систему, которая не обеспечивает безопасности по наикратчайшему маршруту. Вектор маршрутизации с использованием вектора
Маршрутизация по состоянию линий также не является желательной для системы маршрутизации между автономными системами, потому что Интернет обычно слишком большая сеть для этого метода маршрутизации. Чтобы использовать маршрутизацию по состоянию линий для всего Интернета, каждому маршрутизатору понадобилось бы иметь огромную базу данных состояний. Это также привело к длительному времени работы каждого маршрутизатора для вычисления его таблицы маршрутов с использованием
Маршрутизация с использованием вектора путей отличается и от маршрутизации с использованием вектора
| Сеть | Следующий маршрутизатор | Путь |
|---|---|---|
| N01 | R01 | AS14,AS23, AS67 |
| N02 | R05 | AS22,AS67, AS05, AS89 |
| N03 | R06 | AS67,AS89, AS09, AS34 |
| N04 | R12 | AS62,AS02, AS09 |
Автономный пограничный маршрутизатор, который участвует в маршрутизации с использованием вектора путей, извещает о достижимости сетей в их собственной автономной системе для соседних автономных пограничных маршрутизаторов. Концепция окружения здесь та же самая, как в уже рассмотренных протоколах RIP и OSPF. Два пограничных маршрутизатора автономных систем, подключенные к той же самой сети, – соседи.
Заметим, что пограничный маршрутизатор автономной системы получает свою информацию от внутреннего
Каждый маршрутизатор, который получает вектор пути, проверяет, что предложенный путь согласован с его политикой (набором правил, назначаемых администратором, который управляет маршрутизатором). Если политика маршрутизации соответствует записанной в программе, маршрутизатор обновляет таблицы маршрутизации и модифицирует сообщение, прежде чем послать его к следующему соседу. Модификация содержит дополнение номера своей АС для пути и замещающий номер следующего маршрутизатора, входящего со своим собственным идентификатором.
Например, рис. 8.26 показывает сеть Интернет с четырьмя автономными системами. Маршрутизатор R1 посылает сообщение вектора путей, извещающего о достижимости N1, маршрутизатор R2 получает сообщение, обновляет свою таблицу маршрутизации, после этого добавляет свою информацию об автономной системе к информации пути и вставляет самого себя как соседний маршрутизатор, посылает сообщение к маршрутизатору R3. Маршрутизатор R3 получает сообщение, обновляет свою таблицу маршрутизации и посылает сообщение после изменения к маршрутизатору R4.
(рис 8.26) Принцип формирования вектора путей
Нестабильности маршрутизации с использованием дистанционного вектора маршрутизации и порождения петель можно избежать при маршрутизации с использованием вектора путей. Когда маршрутизатор получит сообщение, он проверяет его, чтобы посмотреть, есть ли в его автономной системе список путей к пункту назначения. Если он есть, то возможно возникновение петель и сообщение игнорируется.
Политика маршрутизации может быть просто реализована с использованием вектора путей. Когда маршрутизатор получает сообщение, он проверяет путь. Если одна из автономных систем, указанных в списке, не совпадет с его политикой, он может игнорировать этот путь и этот конечный пункт. Он не обновляет свою таблицу маршрутизации в части этого пути и не посылает сообщения своим соседям. Это означает, что таблицы маршрутизации в методе маршрутизации с использованием вектора путей не основываются на подсчете наикратчайшего пути или минимальной метрике. Они основаны на политике, навязываемой маршрутизатору администратором.
При рассматриваемом методе путь был представлен как список автономных систем, но фактически это список атрибутов.
Список атрибутов помогает принимающему маршрутизатору вырабатывать решение, когда применяется его политика.
Атрибуты разделяются на две категории: закрепленные (well-know) и опциональные.
Закрепленный атрибут — единица, которую каждый
Закрепленный атрибут сам разделяется на две категории: обязательный и по усмотрению. Закрепленный атрибут по усмотрению — единица, которая должна быть опознана каждым маршрутизатором, но не требует включения в каждое обновленное сообщение.
Единица обязательного закрепленного атрибута – это ORIGIN. Она определяет информацию об источнике маршрутизации (RIP, OSPF и так далее). Другой хорошо известный закрепленный обязательный атрибут – это AS_PATH. Он определяет список автономных систем, через которые может быть достигнут пункт назначения. Еще один обязательный атрибут – это NEXT-
Опциональные атрибуты могут также быть подразделены на две категории: транзитные и не транзитные. Опциональный транзитный атрибут — единица, которая должна быть передана к следующему маршрутизатору маршрутизатором, который не выполняет этот атрибут. Опциональный не транзитный атрибут — единица, которая должна быть удалена, если приемный маршрутизатор не может выполнить ее.
Все
(рис 8.27) Заголовок пакета BGPДля того чтобы создать информацию об окружении, маршрутизатор, выполняющий протокол
(рис 8.28) Сообщение открытияПоля сообщения "открытие" приведены ниже.
Версия. Это поле 1 байт, определяющее версию
Моя автономная система. Это поле 2 байта, определяющее номер автономной системы.
Время удержания. Это поле 2 байта, определяющее максимальное число секунд, которые могут пройти, прежде чем одна из сторон получит дежурное сообщение или сообщение обновления от другой стороны. Если маршрутизатор не получает одно из этих сообщений в период времени удержания, он решает, что вторая сторона вышла из строя.
BGP-идентификатор. Это поле 4 байта, определяющее маршрутизатор, который прислал сообщения "открытие". Маршрутизатор обычно использует для этой цели один из своих адресов IP (потому что он уникален).
Длина параметра опции. Сообщение "открытие" может содержать некоторые параметры опции. Если это так, то здесь содержится 1 байт, определяющий длину всех параметров опции. Если параметров опции нет, значение этого поля — ноль.
Параметры опции. Если значение длины параметров опции не равно нулю, это означает, что имеются некоторые параметры опций. Каждый параметр опции сам имеет два подполя: длина параметра и значение параметра.
Единственный параметр опции, определенный до сих пор, — аутентификация.
Сообщение "обновление" — основа протокола
(рис 8.29) Сообщение обновленияПоля сообщения обновления перечислены ниже.
Длина отзываемых маршрутов. Это поле определяет длину следующего за ним поля.
Отзываемый маршрут. Это поле — список всех маршрутов, которые должны быть удалены из предыдущего объявленного списка.
Длина атрибутов пути. Это поле 2 байта определяет длину следующего поля.
Атрибуты пути. Это поле определяет атрибуты пути (маршрута) к сети, которая достижима и объявлена в этом маршруте.
Информация достижимости сетевого уровня. Это поле определяет сеть, которая заявлена этим сообщением. Оно имеет длину поля и префикс IP-адреса. Длина определяет число бит в префиксе. Префикс определяет общую часть сетевого адреса. Например, 153.18.7.0/24.
Префикс 153.18.7, длина префикса – это 24 бита. Это означает, что BGP4 поддерживает классическую адресацию и
Маршрутизатор (называемый равный – peers на языке
Сообщение уведомления посылается маршрутизатором всегда, когда обнаружены признаки ошибки или маршрутизатор завершает соединение. Формат сообщения показан на рис. 8.30
(рис 8.30) Сообщение уведомленияПоля, содержащиеся в поле извещения, следующие:
Код ошибки. Это поле 1 байт, определяющее категорию ошибки ( табл. 8.5.).
Подкод ошибки. Это поле 1 байт дополнительно определяет тип ошибки в каждой категории.
Данные об ошибке. Это поле может быть использовано, чтобы дать больше диагностической информации об ошибке.
| Код ошибки | Описание подкода ошибки | Описание подкода ошибки |
|---|---|---|
| 1 | Ошибка заголовка сообщения | Определены три различных подкода для этого типа ошибки: проблемы синхронизации(1), плохая длина сообщения (2), плохой тип сообщения (3) |
| 2 | Ошибка сообщения открытия | Определены 6 различных подкодов для этого типа ошибки: номер неподдерживаемой версии (1), плохой прямой АС (2), плохой идентификатор |
| 3 | Ошибка сообщения обновления | Определены 6 различных подкодов для этого типа ошибки: плохо сформированный список атрибутов (1), неопознанные атрибуты хорошо известного порта (3), ошибка флага атрибутов(5), ошибка длины атрибутов (6), АС-зацикливание маршрутизации (7), недействительный атрибут следующего участка (8), ошибка опциональных атрибутов (9), недействительное поле сети (10), плохо сформированный AS_PATH (11) |
| 4 | Истекло время удержания | Подкод не определен |
| 5 | Ошибка автомата с конечным числом состояний | Это определенная процедурная ошибка. Подкод не определен. |
| 6 | Прекращение | Подкод не определен |
| Сеть1 | 4 | B | ||||
| Сеть2 | 2 | C | ||||
| Сеть3 | 1 | F | ||||
| Сеть4 | 5 | G |
| Сеть1 | 2 | ||
| Сеть2 | 1 | ||
| Сеть3 | 3 | ||
| Сеть4 | 7 |
| Сеть1 | 4 | B | ||||
| Сеть2 | 2 | C | ||||
| Сеть3 | 1 | F | ||||
| Сеть4 | 5 | G |
Дополнительный материал для прохождения тестирования к лекции, Вы можете скачать здесь.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.