RIP

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


Содержание

[править] Описание протокола

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

  • 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 

Note-icon.gif

В новых версиях IOS это ограничение снято.

[править] Просмотр настроек

[править] База данных маршрутов RIP

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

  • все маршруты, которые были получены по протоколу RIP,
  • все непосредственно присоединённые сети, которые RIP анонсирует соседям,
  • суммарные маршруты.

Note-icon.gif

Если маршрут 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] 

[править] RIP в ProCurve

Основная страница: RIP в ProCurve

[править] Дополнительная информация

Источник — «http://xgu.ru/wiki/RIP»