Поскольку RIP относится к дистанционно-векторным протоколам, то маршрутизаторы не владеют информацией о структуре сети, как в OSPF, передавая информацию, полученную от других маршрутизаторов с определённой метрикой.
Таким образом, устройства «несут ответственность» только за непосредственно подключенные сети. Негативной особенностью протокола RIP в изложенном алгоритме работы является вероятность появления ложных маршрутов. Для рассмотрения такой ситуации обратимся к схеме сети на рисунке 6.
Пусть R1 отправил update-сообщение для R2 и сразу после этого вышел из строя интерфейс ether4 – сеть 192.168.10.0/24 стала недоступна. R1 изменяет метрику для этой сети в своей таблице RIP на максимальную, однако сделает рассылку с обновлённой информацией для R2 только через update-timer, по умолчанию равный 30 секунд.
Поскольку таймеры протокола носят локальный характер и не синхронизированы между маршрутизаторами, то высока вероятность, что R2 сформирует update-сообщение для R1 до истечения update-timer. В этом update-сообщении R2 передаст информацию о том, что в его таблице маршрутов есть путь к сети 192.168.10.0/24 с метрикой 2 и, поскольку метрика будет лучше, чем бесконечная, R1 поместит её в таблицу маршрутов и импортирует в таблицу маршрутизации.
В этой ситуации, если хост сети 192.168.20.0/24 попытается передать пакет хосту в сети 192.168.10.0/24 (за исключением ситуации, когда dst-address=192.168.10.1), R2 отправит пакет в сторону R1, а R1 – в сторону R2. Пакет будет существовать до тех пор, пока его поле TTL не достигнет предельного значения 255, после чего будет отброшен.
Спустя timeout-timer, значение по умолчанию которого равно 3 минуты, R2 присваивает маршруту в сеть 192.168.10.0/24 бесконечную метрику, т.к. не получал update-сообщений с метрикой меньше 2. В этот момент R1 передаст R2 информацию о пути к данной сети с метрикой 3, а R2 инкрементирует значение метрики и поместит его в таблицу маршрутов RIP и таблицу маршрутизации.
Процесс циклической передачи маршрута будет продолжаться до тех пор, пока метрика не достигнет предельного значения, т.е. при настройках по умолчанию более получаса. В сети на протяжении 36 минут будет активен маршрут к недоступной сети.
Для того, чтобы предотвратить возникновение ложных маршрутов в протоколе RIP предусмотрен ряд защитных механизмов:
- Расщепление горизонта;
- Триггерные обновления;
- Замораживание изменений.
Расщепление горизонта
Метод расщепления горизонта заключается в том, что маршрутизаторы не отправляют в update-сообщениях информацию о маршрутах, полученных от этих устройств. Т.е. в рассмотренной ситуации с ложным маршрутом, R2 не передаёт R1 информацию о сети 192.168.10.0/24, поскольку эта информация получена от R1 и ложный маршрут не возникнет.
Однако, метод расщепления горизонта не избавит от возможности возникновения ложного маршрута в схемах, где используется большее число маршрутизаторов.
Так, если перенести рассмотренный случай с возникновением ложного маршрута на схему сети, представленную на рисунке 1, то R2 и R3 не будут передавать update-сообщения о сети 192.168.10.0/24, однако R4 будет анонсировать эту сеть одному из маршрутизаторов (R4 получит маршрут к сети либо от R2, либо от R3, в зависимости от того, кто ранее её анонсирует). Т.е. R4 будет анонсировать маршрут к сети 192.168.10.0/24 с метрикой 3 и данный маршрут распространится по всему RIP-домену.
Триггерные обновления
Метод триггерных обновлений заключается в том, что маршрутизатор, изменивший метрику для какого-либо маршрута по сравнению со старой записью, не ожидает периода следующей рассылки update-сообщений, а выжидает короткий промежуток времени и осуществляет рассылку маршрутной информации.
Данный метод увеличивает служебный трафик и имеет уязвимость: если какое-либо устройство успевает выполнить регулярную рассылку update-сообщений раньше, чем закончился период ожидания перед рассылкой триггерных сообщений, то в сети может появиться ложный маршрут.
Замораживание изменений
Недостаток метода триггерных обновлений помогает преодолеть метод замораживания изменений. Он заключается в том, что маршрутизатор, в таблице маршрутов которого изменилась метрика для одной из сетей, в течении определённого интервала времени не принимает для этой сети обновлений от других устройств. Таким образом другие устройства, не получая обновлений, вычеркнут этот маршрут из своей таблицы маршрутизации и таблицы маршрутов RIP.