Урок 28. Настройка протокола RIP

В данном уроке мы разберем детально весь процесс настройки протоколов RIP и RIP v2, а также рассмотрим какие проблемы могут возникнуть в работе протокола исходя из топологии сети.

Настройка RIP 

Попробуем настроить протокол RIP  для изображенной ниже сети:

Сетевая диаграмма

 

Настройка очень простая. Достаточно ввести всего лишь 2 команды. Настроим его на маршрутизаторе A: 

Router_A(config)# router rip

 

Теперь надо указать какие сети он будет анонсировать (то есть объявлять соседям): 

Router_A(config-router)# network 189.0.0.0

Router_A(config-router)# network 56.10.10.0

 

То же самое проделаем и с остальными маршрутизаторами. И на этом все. Протокол RIP настроен и сеть прекрасно работает. 

Маршрутизатор, на котором запущен RIP рассылает обновления по адресу 255.255.255.255 на UDP порт 520:

Передача обновлений маршрута RIP в Whirehark

 

Кроме того, протокол является классовым, то есть не передает по сети маски переменной длины (VLSM). То есть, если у нас имеется сеть 10.1.1.0/30, то маршрутизатор анонсирует сеть 10.0.0.0/8 - классовую сеть А.

 

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

Посмотрим результат работы протокола - проверим таблицу маршрутизации: 

Router_A# show ip route

Таблица маршрутизации в маршрутизаторе A

 

Так как протокол является классовым, то в таблице мы видим адреса сети с классовой маской. Чтобы увидеть значения таймеров, а также версию протокола выполните команду ниже: 

Router_A# show ip protocols

Настройки протокола маршрутизации

 

Чтобы увидеть сам процесс рассылки обновления достаточно выполнить: 

Router# debug ip rip

Процесс отладки  обновлений RIP

 

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

Настройка RIPv2 

RIPv2 является улучшенной версией протокола RIP. Основные отличия протокола от предыдущей версии:

    • Рассылка обновлений по многоадресному принципу (multicast) вместо широковещательной. Рассылка осуществляется по адресу 224.0.0.9. Принцип многоадресной рассылки основан на том, что только определенная группа устройств принимает и обрабатывает обновления, то есть только маршрутизаторы, на которых запущен RIP. Данный принцип можно сравнить с подпиской газеты или журнала. Например, возьмем многоквартирный дом, в котором только 10 квартир подписаны на еженедельную рассылку журнала. То есть журнал получат только те, кто хочет его почитать, а не все соседи сразу.
    • Бесклассовый протокол, то есть поддерживает передачу масок в обновлениях.
    • Аутентификация анонсирований. То есть маршрутизатор может принимать обновления только от авторизованных соседей. Достигается это с помощью установки паролей.

 Чтобы включить протокол достаточно ввести следующие команды: 

Router(config)# router rip

Router(config-router)# version 2

 

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

Возьмем сеть  предприятия, представленную на рисунке:

Сетевая диаграмма

 

Только один маршрутизатор имеет выход в интернет. Все остальные маршрутизаторы выходят в интернет через него. Обычно между маршрутизаторами провайдера и клиента не настраивается протокол маршрутизации. Вместо этого используют маршрут по умолчанию или просто шлюз по умолчанию.  

Причин тому несколько:

    • Нет смысла нагружать локальные маршрутизаторы маршрутными таблицами провайдера. Это приведет к растрате ресурсов локальных маршрутизаторов.
    • Кроме того, небезопасно и нерационально рассылать провайдеру информацию о локальной сети.
    • Так как имеется всего лишь один выход во внешнюю сеть, то гораздо проще объявить всем локальным маршрутизаторам, чтобы пересылали запросы в неизвестную сеть через пограничный маршрутизатор.

 Имеются 2 способа для установки стандартного маршрута по умолчанию.

 

1- й способ 

В пограничном маршрутизаторе выполните команду: 

Router(config)# ip route 0.0.0.0. 0.0.0.0 100.1.1.1

 

Мы просто указали “нулевую” сеть и “нулевую” маску. Как мы уже знаем это означает любая сеть с любой маской. Теперь посмотрим на таблицу маршрутизации:

Установлен маршрут последней надежды

 

Мы видим статический маршрут и шлюз последней надежды (gateway of last resort). Теперь любая сеть будет доступна для данного маршрутизатора. 

Попробуем выполнить команду PING с любого маршрутизатора, чтобы узнать о доступности сети провайдера. PING не будет работать, так как у нас не установлен стандартный маршрут на остальных маршрутизаторах, то есть они ничего не знают о о данном маршруте. Поэтому его необходимо объявить. Для этого на пограничном маршрутизаторе выполните: 

Router_A(config-rip)# default-information originate

 

Данная команда заставляет маршрутизатор объявлять о стандартном маршруте в своих объявлениях. Посмотрим таблицу в каждом маршрутизаторе и  выполним PING:

Объявление стандартного маршрута друим маршрутизаторам

 

 

2-й способ 

Удалим предыдущий статический маршрут: 

Router_A(config)# no ip route 0.0.0.0 0.0.0.0 100.1.1.1

 

Теперь снова создадим статический путь: 

Router_A(config)# ip route 100.1.1.0 255.255.255.252 100.1.1.1

 

Укажем маршрутизатору стандартный путь: 

Router_A(config)# ip default-network 100.0.0.0

 

При выполнении данной команды необходимо указывать классовую сеть. Теперь взглянем на таблицу:

Установлен маршрут по умолчанию

 

Так как команду default-information originate никто не отменял, то остальные маршрутизаторы тоже узнают об этом маршруте:

Маршрут по умолчанию объявлен остальным маршрутизаторам

 

В принципе ничего не изменилось, таблица такая же как и при первом способе. 

Следует иметь в виду, что команда работает только в том случае, если маршрутизатор уже имеет маршрут к указанной сети.

Анонсирование подключенных сетей 

Попробуем теперь выполнить PING с компьютера PC 1 на компьютер PC 4. Результат будет неуспешным. Посмотрим на таблицу в каждом маршрутизаторе:

Таблица маршрутизации маршрутизатора B

 

В них отсутствует запись о подключенных сетях соседей 172.16.1.0 и 172.16.2.0. То есть эти сети не анонсируются протоколом RIP. Чтобы исправить ситуацию можно, конечно, включить RIP и на интерфейсах FastEthernet 0/0, но это нецелесообразно, так как сеть будет загружена ненужными объявлениями протокола. Но есть способ получше. Достаточно просто объявить всем маршрутизаторам о имеющихся  подключенных сетях: 

Router(config-rip)# redistribute connected

 

В данном случае PING работает, однако иногда его работа нестабильна. 

В чем же причина? 

Маршрутизатор A является транзитным, поэтому повнимательнее посмотрим на его таблицу маршрутов:

Сеть назначения доступна через 2 интерфейса

 

Вместо адресов 172.16.1.0 и 172.16.2.0 там всего лишь один адрес 172.16.0.0, который указывает на 2 разных интерфейса. В этом и заключается проблема. Протокол автоматически осуществляет суммирование похожих адресов (вспомни VLSM).

Кстати, таблица маршрутизации маршрутизаторов В и С не изменилась, однако PING на другие компьютеры более или менее работает. В чем причина? 

Во-первых, у этих маршрутизаторов есть маршрут по умолчанию, то есть маршрутизатор А.

Во-вторых, маршрутизатор А благодаря технологии Split Horizont не отправит суммированный IP адрес своим же соседям, так как они уже имеют такой адрес. Кроме того, даже если бы маршрутизатор А и отправил обновления о суммированном адресе, то это бы все равно никак не повлияло на маршрутизаторы В и С. 

Автосуммирование функция полезная, но в данном случае она только мешает. Отключим ее и посмотрим, что произойдет: 

Router_A(router-rip)# no auto-summary

 Теперь все в порядке:

Исправленная таблица маршрутизации

 

 

Настройка авторизации 

В протоколе версии 2 была реализована возможность для авторизации поступающих обновлений от соседних маршрутизаторов. Сделано это для повышения безопасности, а также для фильтрации обновлений старой версии RIP. 

Существуют 2 режима авторизации:

    • с установкой пароля открытым текстом.
    • с использованием хэша MD5.

 Для начала разберемся в чем же отличия этих двух вариантов. 

На обоих маршрутизаторах настраивается один и тот же пароль. Однако в первом случае пароль передается между маршрутизаторами по сети открытым текстом (то есть не шифрованный) и может быть легко раскрыт любым сниффером:

Принцип авторизации между маршрутизаторами

 

Отображение процесса авторизации между маршрутизаторами в Wireshark

 

Во втором случае пароль по сети вообще не передается. Вместо этого оба маршрутизатора на основе специального алгоритма (хэш-функции) и пароля генерируют последовательность, которая называется цифровым отпечатком или просто хэш, которая затем сравнивается соседним маршрутизатором:

Принцип авторизации между маршрутизаторами с помощью MD5

 

Отображение авторизации MD5 в Wireshark

 

Второй способ гораздо безопаснее первого, однако его легко можно взломать с помощью специальным программ. 

Для настройки авторизации необходимо установить цепочку ключей, которые будут содержать пароли. Для повышения безопасности можно настроить “срок действия” каждого пароля: 

Router(config)# key chain название цепочки

Router(config-keychain)#  key номер

Router(config-keychain-key)# key-string пароль

 

Теперь на интерфейсе, на котором запущен RIP, включаем аутентификацию. Для этого мы указываем созданную цепочку ключей: 

Router(config-if)# ip rip authentication mode (text | MD5)

Router(config-if)#ip rip authentication key-chain название цепочки

 

Для того, чтобы посмотреть какие ключи настроены выполните: 

Router# show key chain

Вот и все.