Содержание

RIP

Описание протокола

Характеристики протокола:

Таймеры протокола

Описание работы протокола

Когда маршрутизатор отправляет обновление RIP, он добавляет к метрике маршрута, которую он использует, 1 и отправляет соседу.

Сосед получает обновление, в котором указано какую метрику для полученного маршрута ему использовать.

Маршрутизатор отправляет каждые 30 секунд все известные ему маршруты соседним маршрутизаторам. Но, кроме этого, для предотвращения петель и для улучшения времени сходимости, используются дополнительные механизмы:

В обновлениях RIPv2 могут передаваться до 25 сетей.

RIP v2 в Cisco

Базовые настройки

router(conf)# router rip
router(conf-router)# version 2
router(conf-router)# network <классовая сеть>

RIPv2 бесклассовый протокол маршрутизации, но в команде network может быть указана только классовая сеть.

Даже если указать сеть с маской, которая не соответствует классовой, RIP автоматически преобразует её в классовую сеть.

Команда network указывает только на каких интерфейсах включить RIP, а фактическая сеть и маска будет взята из настроек интерфейса.

Включение RIP для классовой сети (команда network) значит включение его на всех интерфейсах, которые являются частью этой сети.

А включение RIP на интерфейсе означает, что маршрутизатор:

Для того чтобы отключить эти функции на интерфейсе:

Функция Как отключить
Отправление обновлений Указать интерфейс как passive
Ожидание обновлений Фильтровать входящие обновления с помощью distribute list
Анонсирование сети Фильтровать исходящие обновления с помощью distribute list на остальных интерфейсах (указать сеть интересующего интерфейса)

Особенности анонсирования сетей

Схема (используется классовый протокол маршрутизации):

10.10.11.0/24–(R1)–10.10.12.0/24–(R2)–192.168.1.0/24–(R3)–10.10.13.0/24–(R4)–10.10.14.0/24

Информация о сети 10.10.11.0/24 не дойдет до R4.

R2 передаст к R3 информацию о классовой сети 10.0.0.0/8, но у R3 есть более специфический маршрут в сеть 10.0.0.0/8, то он не будет анонсировать эту информацию R4.

Маршрут по умолчанию

Команда default-information originate

Синтаксис команды:

dyn3(config-router)# default-information originate [route-map <map-name>]

RIP будет анонсировать маршрут по умолчанию, даже если маршрута по умолчанию нет в таблице маршрутизации.

Команда redistribute static

Если в таблице маршрутизации есть статический маршрут по умолчанию, то можно анонсировать его с помощью команды redistribute static.

Синтаксис команды:

dyn3(config-router)# redistribute static [metric <metric>] [route-map <map-name>]

Суммирование маршрутов

Маршрутизатор может суммировать сети:

Автоматическое суммирование

Автоматическое суммирование маршрутов перебивает настройки суммарного маршрута на интерфейсе, за исключением случая когда выполняются следующие условия:

int fa0/0
ip add 10.10.10.1 255.255.255.0
ip summary-address rip 10.20.0.0 255.255.0.0
no ip split-horizon

router rip
network 10.0.0.0

Административное суммирование

Настройка суммарного маршрута:

router(config-if)# ip summary-address rip 10.1.1.0 255.255.255.0

Ограничения суммирования маршрутов в RIP

RIP не позволяет настраивать суммарный маршрут с маской, которая меньше классовой (supernet).

Например, нельзя настроить суммарный маршрут 10.0.0.0/6:

router(config-if)# ip summary-address rip 10.0.0.0 252.0.0.0
Summary mask must be greater or equal to major net

OSPF и EIGRP такое сделать позволяют.

У каждого суммарного маршрута настроенного на интерфейсе маршрутизатора должна быть уникальная классовая сеть.

RIP не позволяет настраивать несколько суммарных подсетей из одной классовой сети на одном интерфейсе.

Например, такие суммарные маршруты не разрешены:

interface FastEthernet 0/0
ip summary-address rip 10.1.0.0 255.255.0.0
ip summary-address rip 10.2.0.0 255.255.0.0
В новых версиях IOS это ограничение снято.

Просмотр настроек

База данных маршрутов RIP

В базе данных хранятся такие маршруты:

Если маршрут RIP не может быть помещен в таблицу маршрутизации (существует другой маршрут с лучшим значением AD), то он не хранится в базе данных маршрутов RIP.

Просмотр базы данных маршрутов RIP:

router# show ip rip database

Работа с таймерами

В таблице маршрутизации, в каждом маршруте, который получен по протоколу RIP указан Invalid timer:

router# show ip route

Когда маршрут находится в таблице маршрутизации в состоянии possibly down, это значит, что Invalid timer истек, а Flush timer еще нет:

router# show ip route

Для того чтобы посмотреть информацию о текущем значении таймера flush, необходимо дать команду:

router# show ip route <сеть назначения>

Изменение значений таймеров RIP:

router(conf)# router rip
router(conf-router)# timers basic <update invalid hold-down flush>

Для ускорения процесса сходимости можно удалить маршруты из таблицы маршрутизации (это приведет к тому, что и все таймеры RIP обнулятся).

Удалить можно все маршруты:

router# clear ip route *

или маршрут к конкретной сети:

router# clear ip route  <сеть назначения>

Дополнительные возможности

Проверка адреса отправителя обновления

Отключить проверку:

router(config-router)# no validate-update-source

Triggered extension to RIP

Triggered extension to RIP — дополнительный функционал, который позволяет RIP отправлять полную информацию о всех маршрутах только один раз и после этого не отправлять её. Функция разработана для demand circuit и описана в RFC 2091.

Включается на интерфейсе командой ip rip triggered.

Статическое указание соседа

Для того чтобы ограничить отправления обновлений в сети с множественным доступом можно использовать команду neighbor.

До этого надо указать интерфейс как passive.

Тогда, после выполнения команды neighbor, RIP будет отправлять обновления unicast-пакетами только указанному соседу.

Статическое указание соседа:

router(conf)# router rip
router(conf-router)# passive-interface <interface>
router(conf-router)# neighbor <ip-address>

Split horizon

Split horizon по умолчанию включён на всех интерфейсах, кроме случаев когда Frame Relay настроен с IP-адресом на физическом интерфейсе.

Отключить split horizon на интерфейсе:

router(conf-if)# no ip split-horizon

Offset List

Offset list — механизм для увеличения входящей или исходящей метрики маршрутов, которые были выучены через RIP.

Можно применить offset list к конкретному интерфейсу или с помощью ACL отфильтровать конкретные сети для которых надо увеличить метрику.

Создание offset list:

router(conf)# router rip
router(conf-router)# offset-list [access-list-number | name] {in | out} offset [type number]