† † RIP Коляденко А. В. Белоусов И. О. Шейко А. С. Лелюк А. А.
ROUTING INFORMATION PROTOCOL • Протокол маршрутной информации (англ. Routing Information Protocol) — один из самых простых протоколов маршрутизации. Применяется в небольших компьютерных сетях, позволяет маршрутизаторам динамически обновлять маршрутную информацию (направление и дальность в хопах), получая ее от соседних маршрутизаторов.
ИСТОРИЯ RIP
ИСТОРИЯ • Алгоритм маршрутизации RIP (алгоритм Беллмана — Форда) был впервые разработан в 1969 году, как основной для сети ARPANET.
АЛГОРИТМ БЕЛЛМАНА-ФОРДА • Алгоритм Беллмана–Форда — алгоритм поиска кратчайшего пути во взвешенном графе. Алгоритм находит кратчайшие пути от одной вершины графа до всех остальных. В отличие от алгоритма Дейкстры, алгоритм Беллмана–Форда допускает рёбра с отрицательным весом. Предложен независимо Ричардом Беллманом и Лестером Фордом.
АЛГОРИТМ БЕЛЛМАНА-ФОРДА • На рисунке в вершинах графа показаны значения атрибутов d на каждом этапе работы алгоритма, а выделенные ребра указывают на значения предшественников: если ребро (u, v) выделено, то prev[v] = u. В рассматриваемом примере при каждом проходе ребра ослабляются в следующем порядке: (t, х), (t, у), (t, z), (x, t), (у, х), (у, z), (z, x), (z, s), (s, t), (s, y).
АЛГОРИТМ БЕЛЛМАНА-ФОРДА • В части а рисунка показана ситуация, сложившаяся непосредственно перед первым проходом по ребрам. В частях б-д проиллюстрирована ситуация после каждого очередного прохода по ребрам. Значения атрибутов d и prev, приведенные в части д, являются окончательными
АЛГОРИТМ БЕЛЛМАНА-ФОРДА • Если в графе, представленном выше, поменять вес дуги (1; 4) на -8, то мы получим отрицательный цикл из вершин 1 -4 -2 (дуги цикла отмечены красным цветом). После окончания основных итераций алгоритма проходит проверка на наличие отрицательных циклов. Для данного графа во время проверки будет найдено ребро, которое можно ослабить, что является показателем существования цикла из дуг отрицательных весов. Цикл обнаружен, алгоритм прекращает работу.
ИСТОРИЯ • Прототип протокола RIP — Gateway Information Protocol, часть пакета PARC Universal Packet. • Версия RIP, которая поддерживает протокол интернета была включена в пакет BSD операционной системы Unix под названием routed (route daemon), а также многими производителями, реализовавшими свою версию этого протокола. В итоге протокол был унифицирован в документе RFC 1058
ИСТОРИЯ • В 1994 году был разработан протокол RIP 2 (RFC 2453), который является расширением протокола RIP, обеспечивающим передачу дополнительной маршрутной информации в сообщениях RIP и повышающим уровень безопасности. • Для работы в среде IPv 6 была разработана версия RIPng.
ТЕХНИЧЕСКАЯ ИНФОРМАЦИЯ RIP
ТЕХНИЧЕСКАЯ ИНФОРМАЦИЯ • RIP — так называемый протокол дистанционно-векторной маршрутизации, который, оперирует хопами (ретрансляционными «скачками» ) в качестве метрики маршрутизации. Максимальное количество хопов, разрешенное в RIP — 15 (метрика 16 означает «бесконечно большую метрику» ). Каждый RIP-маршрутизатор по умолчанию вещает в сеть свою полную таблицу маршрутизации раз в 30 секунд, довольно сильно нагружая низкоскоростные линии связи. • RIP работает на прикладном уровне стека TCP/IP, используя UDP порт 520.
ПРЕИМУЩЕСТВО ЭТОГО ПРОТОКОЛА • В современных сетевых средах RIP — не самое лучшее решение для выбора в качестве протокола маршрутизации, так как его возможности уступают более современным протоколам, таким как EIGRP, OSPF. Ограничение на 15 хопов не дает применять его в больших сетях. • Преимущество этого протокола безусловно является простота конфигурирования.
ФОРМАТ RIP ПАКЕТА • command — Команда, определяет назначение датаграммы (1 - request; 2 - response) • version — Номер версии, в зависимости от версии, определяется формат пакета • must be zero — Должно быть нулём (В RIP v 2 здесь находится поле «Routing Domain» ) • «Routing Domain» — идентификатор RIP-системы, к которой принадлежит данное сообщение; часто — номер автономной системы. Используется, когда к одному физическому каналу подключены маршрутизаторы из нескольких автономных систем, в каждой автономной системе поддерживается своя таблица маршрутов. Поскольку сообщения RIP рассылаются всем маршрутизаторам, подключенным к сети, требуется различать сообщения, относящиеся к «своей» и «чужой» автономным системам. • RIP Entry — (RTE) Запись маршрутной информации RIP пакет может содержать от 1 до 25 записей RIP Entry.
RIP ENTRY ДЛЯ ПРОТОКОЛА RIP-1 • address family identifier — (AFI) Тип адреса, обычно поддерживается только запись AF_INET, которое равно 2 (т. е. используется для протокола IP) • must be zero — Должно быть нулём • IPv 4 address — IP адрес места назначения (хост или сеть) • metric — Метрика маршрута
ФОРМАТ RIP ENTRY ДЛЯ ПРОТОКОЛА RIP-2 • Address Family Identifier — (AFI) Тип адреса, обычно поддерживается только запись AF_INET, которое равно 2 (т. е. используется для протокола IP) • Route Tag — (RT) Тег маршрута. Предназначен для разделения «внутренних» маршрутов от «внешних» , взятых, например, из другого IGP или EGP • IP Address — IP адрес места назначения • Subnet Mask — Маска подсети • Next Hop — Следующий хоп. Содержит IP адрес маршрутизатора к месту назначения. Значение 0. 0 — хопом к месту назначения является отправитель пакета. Необходимо, если протокол RIP не может быть запущен на всех маршрутизаторах. • Metric — Метрика маршрута
АУТЕНТИФИКАЦИЯ • При включенной аутентификации производится обработка только тех сообщений, которые содержат правильный аутентификационный код. Это используется для повышения безопасности передачи RIP пакетов. Есть возможность шифровать аутентификационный код с помощью MD 5.
ФУНКЦИОНИРОВАНИЕ RIP
ИНИЦИАЛИЗАЦИЯ • Когда демон стартует, он определяет все активизированные интерфейсы и посылает пакет с запросом на каждый интерфейс, с требованием к удаленным маршрутизаторам послать полные таблицы маршрутизации. • В случае канала точка-точка этот запрос отправляется на другой конец канала. Запрос рассылается широковещательными сообщениями, если сеть их поддерживает. • Порт назначения - UDP порт 520 (демон маршрутизации на другом маршрутизаторе). Характеристики подобного запроса следующие: поле команды установлено в 1, поле семейство адресов установлено в 0 и показатель установлен в 16. • Подобный формат соответствует специальному запросу, в ответ на который требуется послать полную таблицу маршрутизации.
ЗАПРОС ПРИНЯТ • В случае специального запроса, который мы только что описали, запрашивающему отправляется полная таблица маршрутизации. • Иначе обрабатывается каждый пункт в запросе: если присутствует маршрут на указанный адрес, показатель устанавливается в определенное значение, иначе показатель устанавливается в 16. (Показатель, установленный в 16, это специальное значение, которое означает "бесконечно" (infinity) и сообщает, что маршрута к этому пункту назначения не существует. ) • Возвращается ответ.
ОТВЕТ ПРИНЯТ • Если ответ признан корректным, таблица маршрутизации может быть обновлена. Могут быть добавлены новые записи, существующие записи могут быть модифицированы или удалены.
РЕГУЛЯРНОЕ ОБНОВЛЕНИЕ МАРШРУТИЗАЦИИ • Каждые 30 секунд вся или часть таблицы маршрутизации отправляется каждому соседнему маршрутизатору. • Таблица маршрутизации распространяется широковещательными сообщениями (в случае Ethernet) или отправляется на другой конец канала точка-точка.
НЕЗАПЛАНИРОВАННОЕ ОБНОВЛЕНИЕ • Происходит в том случае, если изменяется показатель маршрута. В этом случае нет необходимости посылать таблицу маршрутизации целиком, передается только та запись, которая была изменена.
• С каждым маршрутом связан тайм-аут.
• С каждым маршрутом связан тайм-аут. • Если система, использующая RIP, определила, что маршрут не был обновлен в течение трех минут, показатель маршрута устанавливается в состояние "бесконечно" (16) и помечается для удаления.
• С каждым маршрутом связан тайм-аут. • Если система, использующая RIP, определила, что маршрут не был обновлен в течение трех минут, показатель маршрута устанавливается в состояние "бесконечно" (16) и помечается для удаления. • Это означает, что было пропущено шесть 30 -секундных обновлений от маршрутизатора, который объявил маршрут.
• С каждым маршрутом связан тайм-аут. • Если система, использующая RIP, определила, что маршрут не был обновлен в течение трех минут, показатель маршрута устанавливается в состояние "бесконечно" (16) и помечается для удаления. • Это означает, что было пропущено шесть 30 -секундных обновлений от маршрутизатора, который объявил маршрут. • Однако, удаление маршрута из локальной таблицы маршрутизации откладывается еще на 60 секунд, чтобы убедиться что маршрут действительно исчез.
METRICS, TIMERS AND FAILURES…
ПОКАЗАТЕЛИ METRICS • В качестве показателя в RIP используются счетчик пересылок. • Для всех непосредственно подключенных интерфейсов счетчик пересылок равен 1. Рассмотрим маршрутизаторы и сети, показанные на рисунке. • Четыре пунктирные линии показывают широковещательные сообщения RIP.
ПОКАЗАТЕЛИ METRICS • Маршрутизатор R 1 объявляет маршрут к N 2 со счетчиком пересылок равным 1, послав широковещательное сообщение на N 1. • Он также объявляет маршрут к N 1 со счетчиком пересылок равным 1, послав широковещательное сообщение на N 2.
ПОКАЗАТЕЛИ METRICS • Точно так же, R 2 объявляет маршрут к N 2 с показателем 1 и маршрут к N 3 с показателем 1. • Если смежный с нами маршрутизатор объявил маршрут к удаленной сети со счетчиком пересылок равным 1, то для нас показатель к этой сети будет равен 2, так пакет необходимо послать сначала на наш маршрутизатор, чтобы получить доступ к сети.
ПОКАЗАТЕЛИ METRICS • В примере, приведенном выше, показатель к N 1 для R 2 равен 2, так же как и показатель к N 3 для R 1. • Так каждый маршрутизатор посылает свои таблицы маршрутизации соседям, определяется каждая сеть в каждой автономной системе (AS). Если внутри AS существует несколько путей от маршрутизатора к сети, маршрутизатор выбирает путь с наименьшим количеством пересылок и игнорирует другие пути.
ПОКАЗАТЕЛИ METRICS • Величина счетчика пересылок ограничена значением 15, что означает, что RIP может быть использован только внутри AS, где максимальное количество пересылок между хостами составляет 15. Специальное значение показателя, равное 16, указывает на то, что на данный IP адрес не существует маршрута.
ТАЙМЕРЫ В RIP TIMERS • RIP использует три таймера для поддержки своих операций: • периодический таймер (посылает сообщения) • таймер окончания времени (проверяет правильность маршрута) • третий таймер (собирает мусор объявленных ошибочными маршрутов)
ТАЙМЕРЫ В RIP TIMERS • Периодический таймер контролирует объявленные регулярные и сообщения обновления. • Работающая модель использует случайное число между 25 и 35 с. • Это сделано, чтобы предотвратить любую возможную синхронизацию и, в связи с этим, перегрузку Интернета, если маршрутизаторы станут обновляться одновременно.
ПЕРИОДИЧЕСКИЙ ТАЙМЕР • Каждый маршрутизатор должен иметь один периодический таймер, который устанавливается случайно между 25 и 35. • Он отсчитывает время назад; когда достигается нуль, посылается сообщение обновления и таймер снова устанавливается на случайную величину.
ТАЙМЕР ИСТЕЧЕНИЯ СРОКА • Таймер истечения срока управляет утвержденным маршрутом • Когда маршрутизатор получает информацию обновления для маршрута, таймер окончания устанавливается на 180 с. для конкретного маршрута • Каждый раз, когда получено новое обновление для маршрута, таймер переустанавливается • В нормальной ситуации это возникает каждые 30 с. Однако если имеются проблемы в Интернете и не получено обновление в течение установленных 180 с, маршрут считается законченным и счет участков маршрута устанавливается на 16, что означает, что пункт назначения не достижим. Каждый маршрут имеет свое собственное время окончания.
ТАЙМЕР СБРОСА • Когда поступила некорректная информация о маршруте, маршрутизатор не сразу стирает маршрут из своей таблицы. • Вместо этого он продолжает объявлять маршрут со значением счетчика 16. На это время таймер называется таймером сбора мусора и устанавливается на 120 с. для этого маршрута. • Когда счет достигает нуля, маршрут стирается из таблицы. Это время позволяет соседям получить сведения о недействительности маршрута, прежде чем он будет изъят.
…AND FAILURES
МЕДЛЕННАЯ СХОДИМОСТЬ • Одна из проблем RIP — медленная сходимость, то есть изменения, произошедшие на одном из участков Интернета, распространяются очень медленно через остальной Интернет. • Допустим, имеется изменение на "Сети 1", управляемой маршрутизатором R 1 • Он обновляется немедленно. Однако поскольку каждый маршрутизатор посылает свои периодические обновления каждые 30 с. , то пройдет в среднем 15 с. (в пределах от 0 до 30), прежде чем изменения достигнут следующего узла (обозначим его R 2) • Если распространить эти рассуждения на другие участки (среднее время 15 с. ), то пройдет 30 с. до того момента, когда третий маршрутизатор (R 3) получит изменения
МЕДЛЕННАЯ СХОДИМОСТЬ • Когда информация, в конечном счете, достигает маршрутизатора Rn, проходит 15 * (n – 1) с. Если n = 20, тогда это 285 с. • За это время сеть ATM может передать более чем один миллиард бит. Если эти изменения не затронут этих передач, то будут потеряны миллиарды бит.
МЕДЛЕННАЯ СХОДИМОСТЬ • Один метод сокращения этого недостатка — лимитировать счетчик участков до 15. • Это предотвращает пакеты данных от вечного блуждания – "зацикливания" Интернета. • Автономная система, используемая RIP, ограничена числом переприемных участков 15. Поэтому число 16 означает недостижимую сеть.
НЕСТАБИЛЬНОСТЬ • Гораздо более важная проблема RIP — нестабильность, которая означает, что сеть Интернет, работающая по протоколу RIP, может стать нестабильной. • Это случается, когда пакет от одного маршрутизатора к другому может идти по петле. Ограничение участков в 15 будет увеличивать стабильность, но не снимет все проблемы
НЕСТАБИЛЬНОСТЬ • Для того чтобы понять проблему, предположим, что соединение к Сети 1 на рисунка не работает.
НЕСТАБИЛЬНОСТЬ • Маршрутизатор A показывает стоимость 1 для этой сети в его таблице маршрутизации. Когда доступ определяет, что Сеть 1 повреждена, маршрутизатор A немедленно изменяет колонку стоимости Сети 1 на 16 (бесконечность).
НЕСТАБИЛЬНОСТЬ • Однако он должен ждать 30 с. , прежде чем послать свое обновление с этой новой информацией. Тем временем может случиться, что маршрутизатор B посылает сообщение собственного обновления к A.
НЕСТАБИЛЬНОСТЬ • Однако он должен ждать 30 с. , прежде чем послать свое обновление с этой новой информацией. Тем временем может случиться, что маршрутизатор B посылает сообщение собственного обновления к A. • Маршрутизатор A теперь имеет два входа для Сети 1: от своей таблицы (стоимость равна 16) и от маршрутизатора B (стоимость равна 2).
НЕСТАБИЛЬНОСТЬ • Однако он должен ждать 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 становится недостижимым.
Чтобы увеличить стабильность, предлагаются некоторые средства. Однако ни одно из них не является эффективным на 100 процентов. СРЕДСТВА УВЕЛИЧЕНИЯ СТАБИЛЬНОСТИ
ЗАПУСКАЕМОЕ ОБНОВЛЕНИЕ • Если отсутствуют изменения в сети, обновление посылается обычно через 30 -секундные интервалы.
ЗАПУСКАЕМОЕ ОБНОВЛЕНИЕ • Если отсутствуют изменения в сети, обновление посылается обычно через 30 -секундные интервалы. • Однако если имеется изменение, маршрутизатор запускается в действие для немедленной рассылки новых таблиц; этот процесс называется запускаемое обновление.
ЗАПУСКАЕМОЕ ОБНОВЛЕНИЕ • Если отсутствуют изменения в сети, обновление посылается обычно через 30 -секундные интервалы. • Однако если имеется изменение, маршрутизатор запускается в действие для немедленной рассылки новых таблиц; этот процесс называется запускаемое обновление. • Запускаемое обновление может увеличить стабильность. Каждый маршрутизатор, который получает обновление с изменениями, рассылает новые таблицы с меньшим интервалом времени, чем в среднем за 15 с.
ЗАПУСКАЕМОЕ ОБНОВЛЕНИЕ • Например, на рисунке, когда маршрутизатор A распознает, что Сеть 1 недоступна, он изменяет стоимость до 16 в таблице маршрутизации и затем немедленно посылает эти сведения к B. • Маршрутизатор B затем изменяет свою таблицу, и теперь обе таблицы показывают стоимость 16 для Сети 1. • Рассылаемые сообщения обновления с изменениями приращения в стоимости позволяют избежать любых проблем зацикливания.
ЗАПУСКАЕМОЕ ОБНОВЛЕНИЕ • Хотя запускаемое обновление может значительно улучшить маршрутизацию, оно не может решить все проблемы маршрутизации. Например, ошибка маршрутизатора не может быть обнаружена этим методом.
РАСЩЕПЛЕНИЕ ГОРИЗОНТА • Второй метод для улучшения стабильности — "расщепленный горизонт" (spilt horizon)
РАСЩЕПЛЕНИЕ ГОРИЗОНТА • Второй метод для улучшения стабильности — "расщепленный горизонт" (spilt horizon) • При этом методе данные о достижимых узлах сети передаются регулярно всем маршрутизаторам, кроме того, от которого эта информация исходит
РАСЩЕПЛЕНИЕ ГОРИЗОНТА • Второй метод для улучшения стабильности — "расщепленный горизонт" (spilt horizon) • При этом методе данные о достижимых узлах сети передаются регулярно всем маршрутизаторам, кроме того, от которого эта информация исходит • Если маршрутизатор передал информацию, чтобы помочь обновлению, эта информация не должна быть послана назад; он уже все знает. "Расщепленный горизонт" может улучшить стабильность.
ПОГЛОЩЕНИЕ ОТВЕТА • Поглощение ответа – вариант "расщепленного горизонта". • В этом методе информация, полученная маршрутизатором, используется маршрутной таблицей и затем передается всем интерфейсам. • Однако вход таблицы, который получил информацию через интерфейс, устанавливает для этого интерфейса метрику 16 и исключает его из процесса рассылки обновления.
ВЫВОДЫ
ВЫВОДЫ • RIP лучше всего подходит для: • Небольших локальных сетей • Сетей с пропускными способностями одного порядка на узлах • основным преимуществом RIP является простота конфигурирования • К недостаткам можно отнести: • Низкий уровень стабильности • Большой объем служебного траффика