Протокол rip что это
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Базовая работа протокола RIP
Не тот RIP, о котором вы могли подумать
Эта серия статей подробно объясняет основные понятия, принципы и операции протокола маршрутизации RIP с примерами. Узнайте, как работает RIP (Routing Information Protocol) и как обновляет таблицу маршрутизации из широковещательного сообщения шаг за шагом.
Полный курс по Сетевым Технологиям
В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer
Всякий раз, когда маршрутизатор получает пакет данных, он ищет в таблице маршрутизации адрес назначения. Если маршрутизатор найдет запись сетевого пути для адреса назначения, он переадресует пакет из связанного интерфейса. Если маршрутизатор не найдет никакой записи для адреса назначения, он отбросит пакет.
В протоколе RIP маршрутизаторы узнают о сетях назначения от соседних маршрутизаторов через процесс совместного использования. Маршрутизаторы, работающие по протоколу RIP, периодически транслируют настроенные сети со всех портов. Список маршрутизаторов обновит их таблицу маршрутизации на основе этой информации.
Давайте посмотрим, как работает процесс RIP шаг за шагом. Следующий рисунок иллюстрирует простую сеть, работающую по протоколу маршрутизации RIP.
Когда мы запускаем эту сеть, маршрутизаторы знают только о непосредственно подключенной сети.
В отличие от статической маршрутизации, где мы должны настроить все маршруты вручную, в динамической маршрутизации все, что нам нужно сделать, это просто сообщить протоколу маршрутизации, какой маршрут мы хотим объявить. А остальное будет сделано автоматически, запустив динамический протокол. В нашей сети мы используем протокол маршрутизации RIP, поэтому он будет обрабатываться RIP.
Иногда RIP также известен как маршрутизация прослушки. Потому что в этом протоколе маршрутизации маршрутизаторы изучают информацию о маршрутизации от непосредственно подключенных соседей, а эти соседи учатся от других соседних маршрутизаторов.
Протокол RIP будет совместно использовать настроенные маршруты в сети через широковещательные передачи. Эти широковещательные передачи называются обновлениями маршрутизации. Прослушивающие маршрутизаторы обновят свою таблицу маршрутизации на основе этих обновлений.
Маршрутизатор выполняет несколько измерений, обрабатывая и помещая новую информацию о маршруте в таблицу маршрутизации. Мы объясним их позже в этой статье. Если маршрутизатор обнаружит новый маршрут в обновлении, он поместит его в таблицу маршрутизации.
Через 30 секунд (интервал времени по умолчанию между двумя обновлениями маршрутизации) все маршрутизаторы снова будут транслировать свои таблицы маршрутизации с обновленной информацией.
В данный момент времени:
Через 30 секунд маршрутизатор снова будет транслировать новую информацию о маршрутизации. На этот раз маршрутизаторам нечего обновлять. Эта стадия называется конвергенцией.
Конвергенция
Метрика протокола маршрутизации RIP
Например, в приведенной выше сети OFF1 есть два маршрута для достижения сети 20.0.0.0/8.
Итак, по какому маршруту OFF1 доберется до места назначения? Маршрут 1 имеет один прыжок, в то время как маршрут 2 имеет два прыжка. Маршрут 1 имеет меньшее количество переходов, поэтому он будет помещен в таблицу маршрутизации.
Резюме
Полный курс по Сетевым Технологиям
В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
RIP (Routing Information Protocol)
RIP (англ. Routing Information Protocol – Протокол маршрутной информации) — один из самых простых протоколов маршрутизации. Применяется в небольших компьютерных сетях, позволяет маршрутизаторам динамически обновлять маршрутную информацию (направление и дальность в хопах), получая её от соседних маршрутизаторов.
Содержание
История
Алгоритм маршрутизации RIP (алгоритм Беллмана — Форда) был впервые разработан в 1969 году, как основной для сети ARPANET.
Прототип протокола RIP — Gateway Information Protocol, часть пакета PARC Universal Packet.
Версия RIP, которая поддерживает протокол интернета была включена в пакет BSD операционной системы Unix под названием routed (route daemon), а также многими производителями, реализовавшими свою версию этого протокола. В итоге протокол был унифицирован в документе RFC 1058.
В период с 1993 по 1998 годы разрабатывался протокол RIP-2 (RFC 2453), который является расширением протокола RIP, обеспечивающим передачу дополнительной маршрутной информации в сообщениях RIP и повышающим уровень безопасности.
Для работы в среде IPv6 была разработана версия RIPng.
Технические характеристики
RIP — так называемый протокол дистанционно-векторной маршрутизации, который оперирует транзитными участками в качестве метрики маршрутизации. Его основные характеристики:
В современных сетевых средах RIP — не самое лучшее решение для выбора в качестве протокола маршрутизации, так как его возможности уступают более современным протоколам, таким как EIGRP, OSPF. Ограничение на 15 хопов не дает применять его в больших сетях. Преимущество этого протокола — простота конфигурирования.
Формат RIP пакета
Формат RIP Entry для протокола RIP-1
Формат RIP Entry для протокола RIP-2
Аутентификация
При включенной аутентификации производится обработка только тех сообщений, которые содержат правильный аутентификационный код. Это используется для повышения безопасности передачи RIP пакетов. Есть возможность шифровать аутентификационный код с помощью MD5.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
command (1) | version (1) | must be zero (2) | |||||||||||||||||||||||||||||
0xFFFF | Authentication Type (2) | ||||||||||||||||||||||||||||||
Authentication (16) |
Принципы работы протокола RIP
RIP — это простой дистанционно-векторный маршрутизирующий протокол, предназначенный для сетей небольшого и среднего размеров с резервированием. Он не зависит от конкретных поставщиков и версия I этого протокола определена главным образом в документе RFC 1058. Благодаря этой независимости от поставщиков протокол RIP обладает важным достоинством — обеспечивает функциональную совместимость оборудования разных поставщиков. (Протокол RIP поддерживается даже компанией Microsoft, но при условии, что в качестве маршрутизатора используется компьютер с операционной системой Windows 2000.) Кроме того, поскольку RIP представляет собой такой простой протокол, процедура настройки его конфигурации является очень несложной. Но, к сожалению, его простота может также стать причиной возникновения проблем.
Основные операции протокола RIP 1
Основные операции протокола RIP являются очень простыми и подчиняются описанным ниже весьма несложным правилам.
Чтобы ознакомиться в применением этих основных правил на практике, рассмотрим следующий пример. На рис. 1 показано четыре маршрутизатора и восемь сетей. Здесь также показано исходное состояние таблиц маршрутизации всех маршрутизаторов, но следует отметить, что часть информации (такой как адрес следующего транзитного перехода) была удалена для упрощения примера. Все начальные метрики в данном случае равны нулю, поскольку в протоколе RIP в качестве метрики используется количество транзитных переходов, а в настоящее время маршрутизаторы имеют информацию только о непосредственно подключенных к ним сетях (находящихся на нулевом расстоянии).
После загрузки маршрутизатор Richard рассылает широковещательные сообщения обо всех известных ему сетях маршрутизаторам Stan и Fran и включает в эти анонсы данные о метрике 1 маршрутов к этим сетям. Протокол RIP не предусматривает поиска или определения того, какие маршрутизаторы RIP имеются в сети, поэтому у маршрутизатора Richard нет информации о том, подключен ли к сети 5 еще один маршрутизатор. Поэтому Richard отправляет широковещательное сообщение и в сеть 5. Следует отметить, что в связи с отсутствием информации о других маршрутизаторах Richard не имеет также данных о том, сколько маршрутизаторов подключено к сетям 1 и 4, и подключены ли они вообще. Он просто рассылает широковещательные сообщения, предполагая, что их кто-то примет.
Затем маршрутизаторы Stan и Fran вводят в свои таблицы маршрутизации данные о новых сетях с метрикой 1 (используя метрику, анонсированную в обновлении). Предполагается, что по условиям данного примера в таблицах маршрутизации разрешено иметь только один маршрут к каждой сети назначения, поэтому Stan и Fran вводят в свои таблицы маршрутизации только наилучший маршрут (имеющий минимальную метрику). В связи с этим маршрутизатор Stan не изменяет свою таблицу маршрутизации, чтобы включить в нее сеть 1, анонсированную маршрутизатором Richard, поскольку он уже имеет в своей таблице лучший маршрут к этой сети (с метрикой 0). Аналогичным образом, Fran не вводит новый маршрут к сети 4. На рис. 2 показаны начальная широковещательная рассылка и вызванные ею изменения в таблицах маршрутизации.
После этого широковещательную рассылку информации об известных им сетях выполняют маршрутизаторы Fran и Stan и, кроме сведений о непосредственно подключенных к ним подсетях, включают новые сведения, только что полученные от маршрутизатора Richard. Благодаря этой широковещательной рассылке Richard получает информацию о подсетях 3 и 8 (от маршрутизатора Fran) и подсетях 2 и 6 (от маршрутизатора Stan). В ходе этого процесса обновления маршрутизатор Flagg получает данные обо всех сетях в топологии и вводит их в свою таблицу. Следует отметить, что по условиям этого примера разрешается вводить в таблицы только по одному маршруту к каждой сети, поэтому маршрутизатор Flagg, получив данные о двух маршрутах с одинаковой стоимостью к одной и той же сети (например, обновления с данными о сети 5 с метрикой 2 и от Stan, и от Fran), включает в свою таблицу маршрутизации только первый маршрут, полученный в анонсах. На рис. 3 показан процесс проведения второго этапа широковещательной рассылки и вызванные им обновления в таблице маршрутизации.
Наконец, маршрутизатор Flagg выполняет широковещательную рассылку информации о своих сетях маршрутизаторам Stan и Fran. На следующем этапе обновления Stan и Fran выполняют широковещательную рассылку сведений об этих новых маршрутах, маршрутизатор Richard принимает эти обновления, и формирование маршрутов в сети заканчивается. Достигнутое в результате этого состояние показано на рис. 4.
Несмотря на то, что этот пример в целом немного упрощен, он позволяет получить представление об основных операциях RIP. Но для более полного понимания работы RIP необходимо ознакомиться с некоторыми другими его средствами, такими как тайм-ауты обновления, разделение диапазона (с обратным вытеснением и без него), тайм-ауты удержания, вытеснение маршрута и активизированные обновления.
Тайм-ауты обновления используются для того, чтобы маршрутизатор получал сведения о том, какой должна быть продолжительность ожидания перед отправкой периодических обновлений. В протоколе RIP версии 1 каждое обновление включает Данные обо всех маршрутах (за исключением тех, которые были удалены согласно Правилу разделения диапазона), независимо от того, произошли ли какие-либо изменения со времени последнего обновления или нет. Такой процесс периодической рассылки обновлений обеспечивает для всех маршрутизаторов возможность определить, не произошел ли останов каких-либо других маршрутизаторов (маршрутизаторы как будто «слушают биение пульса» друг друга). Но интервал времени между обновлениями, предусмотренный протоколом RIP, является очень коротким, а при каждом обновлении анонсируется полная таблица маршрутизации, и это означает, что в сложных сетях обновления RIP могут занимать значительную часть пропускной способности. В маршрутизаторах Cisco предусмотрена возможность изменять значение тайм-аута обновления, но при этом необходимо обеспечить, чтобы во всех маршрутизаторах были заданы одинаковые значения таймаута.
Разделение диапазона (называемое также расщеплением горизонта — split horizon) — это одно из средств, применяемых в протоколе дистанционно-векторной маршрутизации для снижения вероятности возникновения маршрутных циклов. Это средство предусматривает разделение всего диапазона сетевых интерфейсов по тому признаку, каким образом следует передавать через них маршрутную информацию. В своей простейшей форме разделение диапазона обеспечивает, чтобы информация о маршрутах, полученная через определенный интерфейс, никогда не передавалась снова в виде широковещательных сообщений через тот же интерфейс. Кроме того, сеть, непосредственно связанная с некоторым интерфейсом, никогда не анонсируется через тот же интерфейс. Разделение диапазона с обратным вытеснением (split horizon with poison reverse) позволяет в случае возникновения маршрутного цикла сократить продолжительность перехода сети в установившееся состояние путем анонсирования через определенный интерфейс таких же данных о маршрутах, которые были получены через этот интерфейс, но с бесконечно большой метрикой. За этим кратким описанием следуют примеры, в которых рассматриваются и простой метод разделения диапазона, и метод разделения диапазона с обратным вытеснением, поэтому не беспокойтесь, если это описание вам ещё не совсем понятно.
Таймаут удержания (holddown timer) используется для предотвращения циклов в сложной топологии. При его применении требуется, чтобы маршрутизатор RIP ожидал в течение указанного периода времени (по умолчанию 180 секунд или шестикратное значение интервала обновления), прежде чем рассматривать как достоверную любую новую информацию об обновленном маршруте. Тайм-аут удержания представляет собой своего рода средство контроля подлинности информации в методах дистанционно-векторной маршрутизации. Он также более подробно рассматриваются в приведенных ниже примерах.
Кроме того, для уменьшения вероятности возникновения маршрутных циклов используется метод вытеснения маршрутов (route poisoning). Без вытеснения маршрутов запись с недостоверными данными о маршруте удаляется из таблицы только по истечении тайм-аута хранения маршрута (route timer) и тайм-аута удаления маршрута (route-flush timer). Тайм-аут хранения маршрута (называемый в ISO тайм-аутом недопустимого маршрута — invalid timer) используется для определения маршрутов, которые стали недействительными. Если в обновлениях по истечении этого тайм-аута больше не появляются сведения о некотором маршруте, маршрут рассматривается как недействительный и для него устанавливается тайм-аут удержания. Тем не менее, маршрут продолжает использоваться (но больше не анонсируется) до момента истечения тайм-аута удаления маршрута. А по истечении тайм-аута удаления маршрута этот маршрут полностью удаляется из таблицы маршрутизации.
По умолчанию для тайм-аута хранения маршрута установлено значение 180 секунд, а для тайм-аута удаления маршрута — 240 секунд. Если не используется метод вытеснения маршрута, маршрутизатор просто перестает анонсировать недействительные маршруты по истечении тайм-аута хранения маршрута. После этого следующий за ним маршрутизатор вынужден ждать истечения своего тайм-аута хранения маршрута и т.д. Это означает, что в больших сетях RIP (с количеством транзитных переходов больше 10) может потребоваться больше 30 минут для передачи информации о недействительном маршруте всем маршрутизаторам (а это ставит под сомнение саму целесообразность применения тайм-аутов удержания). Метод вытеснения маршрута применяется в сочетании с активизированными обновлениями и позволяет сократить это время путем анонсирования маршрута с бесконечно большой метрикой (в протоколе RIP таковой является метрика 16) по истечении тайм-аута хранения маршрута. При использовании в сочетании с активизированными обновлениями метод вытеснения маршрута позволяет сократить до 30 секунд и меньше продолжительность перехода в установившееся состояние сети с количеством транзитных переходов свыше 10.
Активизированные обновления используются и для уменьшения вероятности возникновения маршрутных циклов, и для сокращения продолжительности перехода сети в установившееся состояние. В этом случае средства RIP при отказе канала к непосредственно подключенной сети не ожидают истечения тайм-аута обновления, а немедленно анонсируют данные об отказе (сообщая при этом о бесконечно большой метрике маршрута к данной сети, как при вытеснении маршрута). Кроме того, после обновления маршрута средства RIP немедленно анонсируют этот обновленный маршрут, не ожидая истечения тайм-аута обновления. Наконец, если происходит отказ непрямого канала (т.е. маршрутизатор не получает информацию об анонсированном маршруте и истекает тайм-аут хранения маршрута), активизированные обновления используются в сочетании со средствами вытеснения маршрута для быстрого распространения сведений о недействительном маршруте.
На основании всего вышесказанного несложно заключить,что протокол RIP — действительно очень несложный протокол. В этом и состоит его преимущество, но вместе с тем и основной недостаток, поскольку при использовании этого протокола могут очень часто возникать маршрутные циклы. Необходимость введения всех описанных выше дополнительных средств вызвана стремлением предотвратить возникновение маршрутных циклов, но в результате протокол становится более сложным.
Рассмотрим пример простой полносвязной сети (рис. 5) и изучим процесс обновления маршрутов RIP, в котором не применяются какие-либо из описанных выше механизмов предотвращения циклов.
Первоначально все маршрутизаторы имеют информацию о маршрутах только к непосредственно подключенным к ним сетям. Это означает, что таблицы маршрутизации для маршрутизаторов Jack, Danny и Hallorann выглядят так, как показано в табл. 1.
Поле получатель | Поле следующий транзитный переход | Поле метрика | |
---|---|---|---|
Jack | 10.0.0.0 | — | — |
172.16.0.0 | — | — | |
Denny | 10.0.0.0 | — | — |
192.168.1.0 | — | — | |
Halloran | 192.168.1.0 | — | — |
172.16.0.0 | — | — | |
192.168.50.0 | — | — |
Затем маршрутизаторы приступают к рассылке обновлений в соответствии с установленным обычным интервалом обновления RIP, и примерно через 120 секунд их таблицы маршрутизации принимают вид, показанный в табл. 2.
Поле получатель | Поле следующий транзитный переход | Поле метрика | |
---|---|---|---|
Jack | 10.0.0.0 | — | — |
172.16.0.0 | — | — | |
192.168.1.0 | 10.0.0.1 | 1 | |
192.168.50.0 | 172.16.0.1 | 1 | |
Denny | 10.0.0.0 | — | — |
172.16.0.0 | 10.0.0.2 | 1 | |
192.168.1.0 | — | — | |
192.168.50.0 | 192.168.1.2 | 1 | |
Halloran | 10.0.0.0 | 172.16.0.2 | — |
172.16.0.0 | — | — | |
192.168.1.0 | — | — | |
192.168.50.0 | — | — |
Теперь допустим, что в маршрутизаторе Hallorann произошел отказ канала, ведущего к сети 192.168.50.0. Hallorann немедленно удаляет из своей таблицы соответствующую запись (поскольку он уже не подключен непосредственно к этой сети), но не передает маршрутизаторам Jack и Danny сообщения с информацией об этом удалении. (Напомним, что в данном примере не используются какие-либо средства предотвращения циклов.) Поскольку маршрутизаторам Danny и Jack не было сообщено о нарушении в работе сети, они должны ожидать истечения таймаута хранения маршрута к сети 192.168.50.0, который равен 180 секундам, прежде чем прекратить анонсирование данных об этой сети. А поскольку к ним еще не поступили сведения о том, что маршрут к сети 192.168.50.0 стал недействительным, то эти маршрутизаторы продолжают передавать анонсы о нем во все сети (напомним, что в этом примере не используется метод разделения диапазона), в том числе в свои каналы, направленные к маршрутизатору Hallorann, который имеет маршрут к сети 192.168.50.0. Полученное обновление вынуждает маршрутизатор Hallorann ввести в таблицу недействительный маршрут к сети 192.168.50.0, используя один из прочих маршрутизаторов в качестве устройства, находящегося в конце следующего транзитного перехода к этой сети (предположим, что в данном случае таковым является Danny). Теперь таблица маршрутизации для Hallorann имеет вид, показанный в табл. 3.
Поле получатель | Поле следующий транзитный переход | Поле метрика |
---|---|---|
10.0.0.0 | 1172.16.0.2 | 1 |
172.16.0.2 | — | — |
192.168.1.0 | — | — |
192.168.50.0 | 192.168.1.1 | 2 |
В этот момент возникает цикл. Маршрутизатор Hallorann перенаправляет пакеты, предназначенные для сети 192.168.50.0, маршрутизатору Danny, который перенаправляет их маршрутизатору Hallorann, который снова перенаправляет их к Danny, и т.д. до тех пор, пока не истекает время жизни пакетов (11L). Но через три минуты маршрутизатор Danny узнает о том, что маршрут через маршрутизатор Hallorann больше не действителен (поскольку больше не получает от маршрутизатора Hallorann анонсов о маршруте с метрикой 1), поэтому удаляет маршрут из своей таблицы. Об этом отказе узнает также маршрутизатор Jack и удаляет из своей таблицы первоначальный маршрут к сети 192.168.50.0.
Но на этом проблема не исчерпывается, поскольку маршрутизатор Hallorann продолжает передавать маршрутизаторам Jack и Danny данные о маршруте к сети 192.168.50.0 с метрикой 3 (на основании фиктивных данных о маршруте, полученных от Danny, которые теперь находятся в его таблице). После этого Jack и Danny вводят в свои таблицы маршрут с метрикой 3, направленный к маршрутизатору Hallorann, который как раз и собирается отправить пакет назад к Danny, после чего снова начинается циклическая переброска пакета. В конечном итоге в маршрутизаторе Hallorann истекает таймаут хранения маршрута к сети 192.168.50.0 с метрикой 2, но он получает от маршрутизатора Danny или Jack данные о маршруте с метрикой 4. Затем в маршрутизаторах Danny и Jack истекает тайм-аут хранения маршрута с метрикой 3, но они получают от маршрутизатора Hallorann данные о маршруте с метрикой 5 и т.д. Такой процесс продолжается до тех пор, пока метрика маршрута не достигает значения 16 (примерно через час). Эту проблему кто-то остроумно назвал счетом до бесконечности, и она, по-видимому, представляет основную проблему дистанционно-векторной маршрутизации.
Но проблема остается нерешенной, поскольку в течение следующих 180 секунд Danny и Jack продолжают передавать друг к другу через сеть 10.0.0.0 анонсы о маршруте к сети 192.168.50.0 с метрикой 2. Предположим, что маршрутизатор Danny по истечении тайм-аута удалил свои данные о маршруте к сети 192.168.50.0, а маршрутизатор Jack, прежде чем удалить по истечении тайм-аута свои сведения о сети, успел отправить маршрутизатору Danny обновление с информацией об этой сети с метрикой 2. После этого Jack удаляет по тайм-ауту маршрут из своей таблицы обычным образом, но вред уже нанесен. Теперь Danny предполагает, что у него имеется действительный маршрут к сети 192.168.50.0 с метрикой 2, полученный от маршрутизатора Jack. После этого он передает анонс об этом маршруте с метрикой 3 маршрутизатору Hallorann, который вводит его в свою таблицу и передает анонс о маршруте с метрикой 4 маршрутизатору Jack, и т.д. Маршрутный цикл снова возникает. Но ввод в действие в этой сети тайм-аутов удержания позволяет наконец решить проблему.
При использовании активизированных обновлений и вытеснения маршрута маршрутизатор Hallorann сразу после отказа канала передает маршрутизаторам Danny и Jack анонсы (т.е. активизированные обновления) с бесконечной метрикой (это — вытеснение маршрута), касающиеся сети 192.168.50.0. Последние немедленно отмечают маршрут как предназначенный для удаления по истечении тайм-аута и устанавливают тайм-аут удержания. Тем самым устраняется обычно применяемый первоначальный тайм-аут хранения маршрута, равный 180 секундам. Кроме того, эти маршрутизаторы немедленно рассылают анонсы о маршруте с бесконечной метрикой к сети 192.168.50.0. Хотя в данном случае распространение информации о существовании маршрута с бесконечной метрикой не оказывает значительного влияния на работу всего протокола, оно способствует существенному сокращению продолжительности перехода сети в установившееся состояние, если между маршрутизаторами Jack и Danny имеется еще несколько маршрутизаторов (ведь если применяются только таймауты, предусмотренные по умолчанию, то для распространения информации об обновлении через каждый дополнительный транзитный переход требуется еще около 180 секунд).
Наконец, если канал, ведущий от маршрутизатора Hallorann к сети 192.168.50.0, снова становится работоспособным, Hallorann немедленно рассылает анонс с этой информацией маршрутизаторам Jack и Danny. Если таймауты удержания в маршрутизаторах Jack и Danny уже истекли, то они немедленно сообщают о новом маршруте всем другим маршрутизаторам, в результате чего отпадает необходимость ждать еще 30 секунд до наступления следующего интервала обновления.
Дополнительные возможности протокола RIP версии 1
Теперь, после ознакомления с основными операциями, предусмотренными протоколом RIP, рассмотрим некоторые его дополнительные возможности. Вначале следует уделить внимание предусмотренной в протоколе RIP возможности вводить больше одного маршрута к одной сети в таблицу маршрутизации и осуществлять распределение нагрузки. По умолчанию в маршрутизаторах Cisco могут использоваться вплоть до четырех маршрутов с равной стоимостью и осуществляться распределение нагрузки между ними. В протоколе RIP предусмотрено, что если маршрутизатор получает информацию о маршруте к какойто сети от двух или нескольких маршрутизаторов и во всех этих маршрутах используется одинаковая метрика, то он осуществляет распределение нагрузки между всеми этими маршрутами с равной стоимостью. Например, как показано на рис. 6, маршрутизатор Roland получает информацию о двух маршрутах к сети 192.168.200.0 от маршрутизаторов Flagg и Eddie, и оба они имеют метрику 1. Если Roland представляет собой маршрутизатор Cisco, то вводит оба маршрута в таблицу маршрутизации и перенаправляет по тому и другому маршрутам пакеты, равномерно чередуя эти пакеты (т.е. отправляет 50% пакетов маршрутизатору Flagg и 50% — Eddie). Такая организация работы является очень удобной, если каналы имеют одинаковую скорость, а если нет, то возникает проблема, известная как микрозатор (pinhole congestion).
Микрозатор возникает, если в маршрутизаторе отсутствуют сведения о том, что два маршрута с одинаковой метрикой характеризуются разной скоростью. Такая проблема наиболее часто проявляется при использовании протокола RIP, поскольку этот протокол не предусматривает способа учета скорости канала. (Применяемые в нем метрики учитывают только количество транзитных переходов.) Но эта проблема может также возникать и при использовании других протоколов (обычно из-за неправильной настройки конфигурации). Если бы в предыдущем примере скорость канала от маршрутизатора Roland к маршрутизатору Flagg составляла 64 Кбит/с, а от маршрутизатора Roland к маршрутизатору Eddie — 1,544 Мбит/с (Т1), то Roland использовал бы только 64 Кбит/с из всей пропускной способности канала, равной 1,544 Мбит/с. В этом и проявляется микрозатор. При такой организации работы затор в канале Т1 фактически не возможен, но не существует способа передать об этом информацию маршрутизатору Roland. Этот маршрутизатор просто передает один пакет по каналу на 64 Кбит/с, второй — по каналу Т1, третий — по каналу на 64 Кбит/с и т.д. А если будут достигнуты пределы пропускной способности канала на 64 Кбит/с, прекратится дальнейшая передача пакетов и по каналу Т1. При использовании протокола RIP единственный способ предотвращения подобного микрозатора состоит в том, чтобы все резервные каналы с одинаковой метрикой имели одинаковую пропускную способность.
Еще одним недостатком протокола RIP версии 1 является то, что в нем не предусмотрена возможность передавать маски вместе с обновлениями маршрутов. Поэтому протокол RIP версии 1 нельзя использовать в сетях, работа которых основана на использовании сложных средств организации подсетей по принципу VLSM или C1DR. Поскольку в протоколе RIP версии 1 не предусмотрена передача масок вместе с обновлениями маршрутов, в маршрутизаторе должно использоваться предполагаемое значение маски, которое относится к полученному обновлению. Ниже перечислены основные правила, которые применяются в протоколе RIP к полученным обновлениям.
Ниже перечислены правила, которые применяются в протоколе RIP при передаче обновлений.
Для ознакомления с практическим примером применения этих правил рассмотрим сеть, показанную на рис. 7.
В данном примере маршрутизатор Pennywise передает маршрутизатору Silver три записи с данными о маршрутах: 10.0.0.0, 172.16.64.0 и 172.16.80.0. Обновление, касающееся сети 10.14.0.0, сводится к передаче данных о маршруте, относящемся ко всей сети 10.0.0.0, на основании правил передачи, которые предусмотрены протоколом RIP. В этом случае маршрутизатор Silver применяет маску /20 к двум Другим маршрутам к сети 172.16.0.0, поскольку их маска совпадает с маской, используемой в канале, через который были получены обновления.
Для упрощения процедуры настройки можно использовать более простое решение проблемы, связанной с отсутствием масок подсетей в обновлениях: либо применять одну и ту же маску подсети для всех подсетей сети конкретного класса А, В или С, либо использовать маршрутизирующий протокол, который поддерживает средства VLSM (такой как протокол RIP версии 2 или протокол E1GRP).
Во многих случаях протокол RIP применяется лишь потому, что администраторы, на которых возложена задача формирования сети, не разбираются достаточно хорошо в вопросах маршрутизации, чтобы правильно ввести статические маршруты. Им кажется, что проще позволить протоколу RIP построить всю конфигурацию сети. В большинстве случаев, если сеть достаточно мала для того, чтобы в ней можно было использовать RIP, то, по всей вероятности, вместо него вполне можно предусмотреть статическую маршрутизацию.
Усовершенствования, связанные с внедрением протокола RIP версии 2
Протокол RIP версии 2 (который в основном определен в документе RFC 2453) позволяет устранить некоторые ограничения версии 1, но без внесения в сам протокол каких-либо кардинальных изменений. Ниже перечислены некоторые наиболее полезные усовершенствования, введенные в версии 2.