RIP#
Описание#
Протокол RIP является распространенным протоколом из категории IGP протоколов для маршрутизации внутри локальной сети. Протокол RIP был разработан в 1970-х годах компанией Xerox как часть другого протокола маршрутизации - XNS. Протокол RIP является дистанционно-векторным протоколом и основан на алгоритме поиска кратчайшего пути Беллмана-Форда. Маршрутизатор с поддержкой протокола RIP периодически отправляет соседствующим узлам обновления маршрутных данных, обеспечивая таким образом схождение физической топологии сети. Каждое обновление содержит параметр - дистанцию до определенных подсетей, который рассылается по всем соседствующим узлам (другим маршрутизаторам).
Поддерживаются следующие версии протокола RIP:
Список команд#
Основные настройки#
- • set protocols rip network <A.B.C.D/M>#
Активирует протокол RIP на интерфейсе, определенном указанной подсетью.
- • set protocols rip interface <interface>#
Активирует протокол RIP на интерфейсе, указанном явно по имени. На указанном интерфейсе будут включены передача и получение пакетов по протоколу RIP.
- • set protocols rip neighbor <A.B.C.D>#
Задает адрес соседствующего узла явно, если соседствующий узел не способен обрабатывать пакеты группового вещания (multicast). Не все маршрутизаторы могут обрабатывать пакеты группового вещания (multicast) - пакеты, которые адресованы целой сети или группе хостов в ней. В таких случаях необходимо устанавливать прямое соединение между маршрутизаторами.
- • set protocols rip passive-interface interface <interface>#
Переводит интерфейс в пассивный режим. В пассивном режиме все входящие пакеты интерфейс обрабатывает обычным образом и операционная система не отправляет с него ни пакеты группового вещания (multicast) ни одноадресные пакеты (unicast) по протоколу RIP, за исключением пакетов в адрес заданного конкретного соседствующего узла.
- • set protocols rip passive-interface interface default#
Переводит все интерфейсы в пассивный интерфейс.
Дополнительные настройки#
- • set protocols rip default-distance <distance>#
Задает административную дистанцию по умолчанию (1 - 255).
Примечание
Маршруты с административной дистанцией 255 фактический определяются операционной системой как отключенные и не устанавливаются в ядро.
- • set protocols rip network-distance <A.B.C.D/M> distance <distance>#
Задает административную дистанцию для определенного префикса.
- • set protocols rip network-distance <A.B.C.D/M> access-list <name>#
Задает список доступа для определенного префикса. Команда может использоваться вместе с командой
set protocols rip network-distance <A.B.C.D/M> distance <distance>
.
- • set protocols rip default-information originate#
Генерирует маршрут по умолчанию.
- • set protocols rip distribute-list access-list <in|out> <number>#
Накладывает фильтр на путь, определяемый протоколом RIP, с помощью списка доступа. Параметры
in
иout
позволяют определить направление к которому применяется список доступа.
- • set protocols rip distribute-list interface <interface> access-list <in|out> <number>#
Накладывает фильтр на путь, определяемый протоколом RIP, с помощью списка доступа. Можно указать интерфейс, к которому применяется список доступа.
- • set protocols rip distribute-list prefix-list <in|out> <name>#
Накладывает фильтр на путь, определяемый протоколом RIP, с помощью списка префиксов. Параметры
in
иout
позволяют определить направление к которому применяется список префиксов.
- • set protocols rip distribute-list interface <interface> prefix-list <in|out> <name>#
Накладывает фильтр на путь, определяемый протоколом RIP, с помощью списка префиксов. Можно указать интерфейс, к которому применяется список префиксов.
- • set protocols rip route <A.B.C.D/M>#
Задает статический маршрут только для внутреннего использования протоколом RIP.
Примечание
Команда применима только для операционной системы и подсистемы динамической маршрутизации FRR. Рекомендуется использовать с осторожность и только продвинутым пользователям, которые знакомы с деталями технической реализации протокола RIP. В большинстве случаев рекомендуется создавать статический маршрут в операционной системе и выполнять его редистрибуцию в контекст протокола RIP с помощью команды redistribute static
.
- • set protocols rip timers update <seconds>#
Задает таймер обновления данных по протоколу RIP в диапазоне 5 - 2147483647. Значение таймера обновления по умолчанию - 30. По прошествии заданного количества секунд протокол RIP в инициативном порядке отправляет всем соседствующим узлам сообщение, содержащее полный список маршрутов из таблица маршрутизации.
- • set protocols rip timers timeout <seconds>#
Задает тайм-аут в по истечении которого маршрут определяется как недоступный. Значение задается в диапазоне 5 - 2147483647, по умолчанию - 180. При этом маршрут остается в таблице маршрутизации еще некоторое время, чтобы соседствующие узлы были проинформированы об этом.
- • set protocols rip timers garbage-collection <seconds>#
Задает таймер для окончательной очистки недоступных маршрутов. Значение задается в диапазоне 5 - 2147483647, по умолчанию - 120. По прошествии заданного количества секунд недоступный маршрут окончательно удаляется из таблицы маршрутизации.
Редистрибуция маршрутов#
- • set protocols rip redistribute <route source>#
Выполняет редистрибуцию маршрутной информации от определенного источника в таблицы, используемые протоколом RIP.
- • set protocols rip redistribute <route source> metric <metric>#
Задает метрику для маршрутов, в отношении которых выполняется редистрибуция в диапазоне 1 - 16.
- • set protocols rip redistribute <route source> route-map <name>#
Настраивает определенную карту для выбора маршрутов, в отношении которых выполняется редистрибуция.
- • set protocols rip default-metric <metric>#
Изменяет значение метрики по умолчанию (число пересылок между узлами) для маршрутов, в отношении которых выполняется редистрибуция. Значение задается в диапазоне 1 - 16. Значение по умолчанию - 1. Команда не оказывает никакого влияния на маршрут до непосредственно подключенных к маршрутизатора подсетей - connected, даже если для него тоже определена редистрибуция посредством команды
redistribute connected
. Чтобы маршруты типа connected также подвергались редистрибуции, необходимо использовать командуredistribute connected metric
.
Важно
Операционная система поддерживает шесть источников маршрутной информации: bgp, connected, kernel, ospf, rip, static.
Настройка интерфейсов#
- • set interfaces <inttype> <intname> ip rip authentication plaintext-password <text>#
Выбирает интерфейс, для которого в рамках протокола RIP будет выполняться базовая аутентификация - аутентификация по паролю. Длина пароля не должна превышать 16 символов.
- • set interfaces <inttype> <intname> ip rip authentication md5 <id> password <text>#
Задает интерфейс, для которого в рамках протокола RIP будет выполняться аутентификация по ключу MD5. Длина ключа не должна превышать 16 символов.
- • set interfaces <inttype> <intname> ip rip split-horizon disable#
Отключает на интерфейсе механизм split horizon, который обычно используется дистанционно-векторными протоколами для предотвращения петель в маршрутах, во избежание которых операционная система по умолчанию не анонсирует маршруты с интерфейса, на который они были получены ранее.
- • set interfaces <inttype> <intname> ip rip split-horizon poison-reverse#
Включает обратное анонсирование источнику маршрутной информации маршрута, который был получен ранее от него, но с максимальной административной дистанцией. Такой механизм называется Poison Reverse. Если данный механизм работает совместно с механизмом split horizon, операционная система анонсирует маршруты с интерфейса, с которого они были получены, как недостижимые.
Мониторинг состояния#
- • show ip rip#
Выводит на экран маршруты, полученные в ходе использования протокола RIP.
Пример работы команды show ip rip:
admin@fakel:~$ show ip rip
Codes: R - RIP, C - connected, S - Static, O - OSPF, B - BGP
Sub-codes:
(n) - normal, (s) - static, (d) - default, (r) - redistribute,
(i) - interface
Network Next Hop Metric From Tag Time
C(i) 10.0.12.0/24 0.0.0.0 1 self 0
C(i) 10.0.13.0/24 0.0.0.0 1 self 0
R(n) 10.0.23.0/24 10.0.12.2 2 10.0.12.2 0 02:53
- • show ip rip status#
Выводит на экран текущий статус механизма, реализующего протокол RIP. Статус включает такую информацию, как значения таймеров, заданные фильтры, версию протокола RIP, интерфейс, на котором запущен механизм и данные по соседствующим узлам.
Пример работы команды show ip rip status:
admin@fakel:~$ show ip rip status
Routing Protocol is "rip"
Sending updates every 30 seconds with +/-50%, next due in 11 seconds
Timeout after 180 seconds, garbage collect after 120 seconds
Outgoing update filter list for all interface is not set
Incoming update filter list for all interface is not set
Default redistribution metric is 1
Redistributing:
Default version control: send version 2, receive any version
Interface Send Recv Key-chain
eth0 2 1 2
eth2 2 1 2
Routing for Networks:
10.0.12.0/24
eth0
Routing Information Sources:
Gateway BadPackets BadRoutes Distance Last Update
10.0.12.2 0 0 120 00:00:11
Distance: (default is 120)