мета-данные страницы
Это старая версия документа!
RIP
Описание протокола
Характеристики протокола:
- RIPv1 и RIPv2 используют UDP порт 520.
- RIPng использует UDP порт 521.
- Для передачи сообщений RIPv1 в адресе получателя используется широковещательный адрес 255.255.255.255, а RIPv2 — мультикаст адрес 224.0.0.9.
Таймеры протокола
Update timer— частота отправки обновлений протокола, по истечению таймера отправляется обновление. По умолчанию равен 30 секундам.Invalid timer— Если обновление о маршруте не будет получено до истечения данного таймера, маршрут будет помечен как Invalid, то есть с метрикой 16. По умолчанию таймер равен 180 секундам.Flush timer (garbage collection timer)— По умолчанию таймер равен 240 секундам, на 60 больше чем invalid timer. Если данный таймер истечет до прихода обновлений о маршруте, маршрут будет исключен из таблицы маршрутизации. Если маршрут удален из таблицы маршрутизации то, соответственно, удаляются и остальные таймеры, которые ему соответствовали.Holddown timer— Запуск таймера произойдет после того, как маршрут был помечен как не достижимый. До истечения данного таймера маршрут будет находиться в памяти для предотвращения образования маршрутной петли и по этому маршруту передается трафик. По умолчанию равен 180 секундам. Таймер не является стандартным, добавлен в реализации Cisco.
Описание работы протокола
Когда маршрутизатор отправляет обновление RIP, он добавляет к метрике маршрута, которую он использует, 1 и отправляет соседу.
Сосед получает обновление, в котором указано какую метрику для полученного маршрута ему использовать.
Маршрутизатор отправляет каждые 30 секунд все известные ему маршруты соседним маршрутизаторам. Но, кроме этого, для предотвращения петель и для улучшения времени сходимости, используются дополнительные механизмы:
Split horizon— если маршрут достижим через определенный интерфейс, то в обновление, которое отправляется через этот интерфейс не включается этот маршрут;Triggered update— обновления отправляются сразу при изменении маршрута, вместо того чтобы ожидать когда истечет Update timer;Route poisoning— это принудительное удаление маршрута и перевод в состояние удержания, применяется для борьбы с маршрутными петлями.
Poison reverse— Маршрут помечается, как не достижимый, то есть с метрикой 16 и отправляется в обновлениях.
В обновлениях 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 на интерфейсе означает, что маршрутизатор:
- отправляет с него обновления RIP,
- слушает обновления RIP на 520 порту,
- анонсирует сеть интерфейса соседям.
Для того чтобы отключить эти функции на интерфейсе:
| Функция | Как отключить |
|---|---|
| Отправление обновлений | Указать интерфейс как passive |
| Ожидание обновлений | Фильтровать входящие обновления с помощью distribute list |
| Анонсирование сети | Фильтровать исходящие обновления с помощью distribute list на остальных интерфейсах (указать сеть интересующего интерфейса) |
Особенности анонсирования сетей
- RIP по умолчанию выполняет суммирование маршрутов на границах сетей.
- RIP не анонсирует суперсети (сети, у которых маска меньше классовой, например, 192.168.0.0/20)
- RIP анонсирует маршруты к хостам (маска 32)
Схема (используется классовый протокол маршрутизации):
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>]
Суммирование маршрутов
Маршрутизатор может суммировать сети:
- автоматически, суммируя подсети в классовую сеть на границе классовой сети (auto-summary),
- в соответствии с настройками, анонсируя указанную сеть на интерфейсе.
Автоматическое суммирование
Автоматическое суммирование маршрутов перебивает настройки суммарного маршрута на интерфейсе, за исключением случая когда выполняются следующие условия:
- Настроенный суммарный адрес на интерфейсе и IP-адрес интерфейса разделяют общую классовую сеть,
- split horizon выключен на интерфейсе
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
Просмотр настроек
База данных маршрутов RIP
В базе данных хранятся такие маршруты:
- все маршруты, которые были получены по протоколу RIP,
- все непосредственно присоединённые сети, которые 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]