Настройка rip на linux

Обновлено: 02.07.2024

Маршрутизация - процесс определения в сети наилучшего пути, по которому пакет может достигнуть адресата. Динамическая маршрутизация может быть осуществлена с использованием одного и более протоколов ( RIP v2, OSPF и др.).

Динамическая маршрутизация — вид маршрутизации, при котором таблица маршрутизации заполняется и обновляется автоматически при помощи одного или нескольких протоколов маршрутизации (RIP, OSPF, EIGRP, BGP).

Каждый протокол маршрутизации использует свою систему оценки маршрутов ( метрику ). Маршрут к сетям назначения строится на основе таких критериев как

  • количество ретрансляционных переходов
  • пропускная способность канала связи
  • задержки передачи данных
  • и др.

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

Протоколы маршрутизации делятся на три типа:

  • Дистанционно векторные протоколы (RIP)
  • Протоколы с отслеживанием состояния каналов (OSPF)
  • Смешанные протоколы (EIGRP)
  • И др.

Протокол RIP

RIP — протокол дистанционно-векторной маршрутизации, использующий для нахождения оптимального пути алгоритм Беллмана-Форда. Алгоритм маршрутизации RIP - один из самых простых протоколов маршрутизации. Каждые 30 секунд он передает в сеть свою таблицу маршрутизации. Основное отличие протоколов в том, что RIPv2 (в отличие от RIPv1) может работать по мультикасту, то есть, рассылаясь на мультикаст адрес . Максимальное количество "хопов" (шагов до места назначения), разрешенное в RIP1, равно 15 ( метрика 15). Ограничение в 15 хопов не дает применять RIP в больших сетях, поэтому протокол наиболее распространен в небольших компьютерных сетях. Вторая версия протокола — протокол RIP2 была разработана в 1994 году и является улучшенной версией первого. В этом протоколе повышена безопасность за счет введения дополнительной маршрутной информации. Принцип дистанционно-векторного протокола: каждый маршрутизатор , использующий протокол RIP периодически широковещательно рассылает своим соседям специальный пакет- вектор , содержащий расстояния (измеряются в метрике) от данного маршрутизатора до всех известных ему сетей. Маршрутизатор получивший такой вектор , наращивает компоненты вектора на величину расстояния от себя до данного соседа и дополняет вектор информацией об известных непосредственно ему самому сетях или сетях, о которых ему сообщили другие маршрутизаторы. Дополненный вектор маршрутизатор рассылает всем своим соседям. Маршрутизатор выбирает из нескольких альтернативных маршрутов маршрут с наименьшим значением метрики, а маршрутизатор , передавший информацию о таком маршруте помечается как следующий ( next hop ). Протокол непригоден для работы в больших сетях, так как засоряет сеть интенсивным трафиком, а узлы сети оперируют только векторами-расстояний, не имея точной информации о состоянии каналов и топологии сети. Сегодня даже в небольших сетях протокол вытесняется превосходящими его по возможностям протоколами EIGRP и OSPF .

Наша задача – настроить маршрутизацию на схеме, представленной на рис. 8.1.

При помощи любого из этих решений можно превратить обычный компьютер в полнофункциональный маршрутизатор. Так как в моем случае установка планировалась на Ubuntu Linux, то OpenBGPD был сразу отброшен. Вариант nx-routed малофункционален и к тому же проект практически заброшен. Остается BIRD и Quagga. В репозитарии Ubuntu Linux доступен лишь второй, но разработчики BIRD предлагают репозитарии и пакеты для Ubuntu/Debian (сборку из исходных текстов конечно же не исключаем). Например, для Ubuntu 9.10 его можно подключить, прописав в /etc/apt/source.list:

Но далее речь пойдет о Quagga.

Установка Quagga в Ubuntu Linux

Проект Quagga основан на коде другого подобного проекта GNU Zebra, который прекратил существование в 2005 году. Нужный пакет доступен в репозитариях большинства дистрибутивов Linux, а также в портах FreeBSD, OpenBSD, NetBSD. Интегрирован Quagga и в OpenSolaris. Чтобы установить Quagga в Ubuntu, достаточно ввести:

После выполнения команды в каталоге /etc/quagga появится два конфигурационных файла. Здесь нужно отметить, что особенностью Quagga является запуск отдельного демона на каждый поддерживаемый протокол, базовое управление осуществляет демон zebra (core daemon), который представляет необходимые API остальным демонам и перестраивает таблицу маршрутизации. Статические маршруты устанавливаются также при помощи демона zebra. Такая схема позволяет при необходимости легко добавить поддержку другого протокола, но наличие нескольких процессов и конфигурационных файлов делает ее менее удобной для управления, ведь изначально команды демонам передаются при помощи telnet. Эту проблему решают при помощи терминала vtysh, который подключаясь к сокету каждого запущенного процесса Quagga выступает в качестве прокси для пользовательских команд.
В файле /etc/quagga/daemons как раз указывается, какие демоны будут загружаться, то есть протоколы будет поддерживать Quagga. По умолчанию все параметры установлены в no, и после установки ничего работать не будет.


Проверяем настройки Quagga
Далее для примера активируем лишь поддержку BGP и OSPF:

Вместо буквенных обозначений предусмотрено и использование цифровых – 0 (отключено), до 1 (высокий приоритет) … 10 (наименьший приоритет).
Список TCP портов, на которых слушают подключения демоны, можно узнать, просмотрев /etc/services:

В Quagga реализовано два способа подачи рабочих параметров демонам – при помощи конфигурационных файлов и напрямую в терминальном режиме (terminal mode), подключившись к нужному порту. Обычно используют оба варианта, загружая начальные параметры при помощи файлов, а при необходимости настройки корректируются на лету. При этом установки в terminal mode также сохраняются в конфигурационные файлы, поэтому при перезагрузке таблица маршрутизации полностью восстанавливается.
Шаблоны файлов настроек демонов находятся в каталоге /usr/share/doc/quagga/examples, переименовываем и копируем их в /etc/quagga:

При установке при помощи пакетов в системе уже создается нужная учетная запись:

Иначе ее необходимо создать вручную. Обязательно изменим владельцев конфигурационных файлов:

Теперь можно запускать Quagga.

Команды “ps aux | grep quagga” и “netstat –ant | grep 260” должны показать, что соответствующие процессы запущены, и демоны слушают свои порты.

Конфигурационные файлы Quagga

Простой конфигурационный файл для настройки BGP выглядит аналогично. Но настройки этого протокола произведем при помощи командной строки.

Управление с консоли

Демоны Quagga поддерживают управление при помощи Cisco подобного синтаксиса. Все команды, введенные в консоли, сохраняются в конфигурационный файл (автоматически и по команде). Подключиться к рабочему демону можно при помощи telnet или vtysh. При использовании консоли vtysh сразу попадаем в режим управления. В случае telnet необходимо два раза ввести пароль.


Список команд виртуальной консоли Quagga
Символ приглашения командной строки должен измениться. Чтобы получить список всех команд, достаточно нажать клавишу со знаком вопроса. Начинаем настройки:

Анонсируем свои сети.

Объявляем соседей, указав IP и номер AS.

Выходим и записываем информацию.

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

И так далее. Информация в выводе дает возможность разобраться в источнике нового маршрута и используемом при обмене протоколе. Соответственно если отключить один из маршрутизаторов, указание об анонсированных им сетях исчезнет из таблицы.
Таблицу по конкретному протоколу получаем в контексте “show ip”.

Проверяем настройки интерфейсов, конфигурационные данные, статистика использования памяти:

Все довольно просто. Чтобы разобраться, достаточно немного поэкспериментировать.
Проект Quagga в наследство от Zebra получил небольшой CGI скрипт написанный на Perl, реализующий простой веб-интерфейс позволяющий получать информацию о настройках (контекст “show ip”). Найти его можно в каталоге /usr/share/doc/quagga/tools вместе с еще несколькими скриптами. Но все они требуют доработки под свои нужды.

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

Рис.1 Проверяем настройки Quagga
Рис.2 Список команд виртуальной консоли Quagga

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

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

В маршрутизаторе с динамическим протоколом резидентно загруженная программа (демон - gated или routed для UNIX) изменяет таблицы маршрутизации на основе информации, полученной от соседних маршрутизаторов.

Динамические протоколы делят на две группы:

EGP (External Gateway Protocol) - внешний протокол маршрутизации для использования между AS. В группу входят - BGP, IDPR.

IGP (Interior Gateway Protocol) - внутреннего протокола маршрутизации для использования внутри AS. В группу входят - RIP, OSPF, IGRP (CISCO), IS-IS.

Протокол RIP

RIP (Routing Information Protocol) - протокол маршрутной информации, использует алгоритм Белмана-Форда. Выбирается самый короткий маршрут (distance-vector).

Первый стандарт RIP RFC1058 (Routing Information Protocol C.L. Hedrick Jun-01-1988).

Последняя версия RIPv2 RFC2453 (RIP Version 2 G. Malkin November 1998).

Используется транспортный протокол UDP.

Порт сервера по умолчанию 520.

Маршрут характеризуется вектором расстояния до места назначения.

Описания собранных маршрутов хранятся в таблице маршрутов (не путать с таблицей маршрутизации), из которой потом выбирается наилучший маршрут и помещается в таблицу маршрутизации, ее еще называют первичной таблицей маршрутизации.

Таблица маршрутов должна содержать для каждого маршрута:

IP-адрес места назначения (направление вектора).

Метрика маршрута (от 1 до 15; число шагов до места назначения, модуль вектора).

IP-адрес ближайшего маршрутизатора по пути к месту назначения.

Флаг, что маршрутная информация была изменена.

Различные таймеры маршрута. (например, актуальности информации)

Коды поля command

Address Family Identifier - сетевой протокол, для IP=2, для Инициализации=0xFFFF.

Route Tag - Предназначено, чтобы отделить "внутренние" маршруты RIP (маршруты для сетей в пределах RIP маршрутизируемого домена) от "внешних" маршрутов RIP, которые, возможно, были импортированы от EGP или другого IGP.

Например, маршруты, импортированные от EGP или BGP, могут иметь номер Автономной Системы, из которой маршруты были изучены.

IP Address - IP адрес, при запросе - адрес сети, для которой нужно определить маршрут. При ответе - адрес сети, которая является доступной для источника ответа.

Subnet Mask - соответствующая маска.

Metric - число шагов (hops) до места назначения, должно быть <16 (для ограничения распространения маршрутной информации).

Порядок работы

Периодические отклики - Каждые 30 сек маршрутизатор посылает широковещательно копию своей маршрутной таблицы соседним маршрутизаторам.

Запрос принят.
- Если был запрос "Аутентификация" отправляется полная таблица маршрутизации.
- Иначе обрабатывается каждый пункт в запросе: если присутствует маршрут на указанный адрес, показатель устанавливается в определенное значение, иначе показатель устанавливается в 16. (Показатель, установленный в 16, это специальное значение, которое означает "бесконечно" (infinity) и сообщает, что маршрута к этому пункту назначения не существует.) Возвращается ответ.

Ответ принят. Если ответ признан корректным, таблица маршрутизации может быть обновлена. Могут быть добавлены новые записи, существующие записи могут быть модифицированы или удалены. При этом timeout-timer (тайм-аут) выставляется =180 сек. По истечении запись, становится не активной на 120 сек (garbage-collection timer). По истечении 120 сек, запись удаляется и в регулярном обновлении запись рассылается с метрикой =16, т.е. на удаление.

Незапланированное обновление. Происходит в том случае, если изменяется метрика маршрута. В этом случае нет необходимости посылать таблицу маршрутизации целиком, передается только та запись, которая была изменена.

Недостатки RIP

Ограничение в 16 хопов. Фактически ограничивает количество сетей.

Медленная реакция на изменение сети. При этом могут возникнуть циклические маршруты.

Самый короткий маршрут может быть перегружен (медленным).

Протокол OSPF

OSPF (Open Shortest Path First) - открыть наикратчайший маршрут первым (алгоритм Дикстры), является протоколом состояния канала (link-state).

Первый стандарт - RFC1131 (OSPF specification J. Moy Oct-01-1989).

Последняя версия OSPFv2 - RFC2328 (OSPF Version 2 J. Moy April 1998).

Поле protocol = 89 (в заголовке IP).

Основные достоинства OSPF.

Отсутствие ограничения на размер сети.

Автономная система может быть поделена на области маршрутизации.

Высокая скорость установления маршрутов.

Маршрутизация учитывает тип сервиса IP (type-of-service - ToS), т.е. для разных сервисов могут быть разные маршруты.

Каждому интерфейсу может быть назначена метрика на основании
- пропускной способности
- времени возврата
- надежности
- загруженности (очередь пакетов)
- размера максимального блока данных, который может быть передан через канал.
Отдельная цена может быть назначена для каждого типа сервиса IP.

Если маршруты имеют одинаковую цену, OSPF распределяет траффик поровну между этими маршрутами. Это называется балансировкой нагрузки (Load balancing).

Поддерживает подсети (маску).

Поддержка без адресных сетей (unnumbered) - каналы точка-точка между маршрутизаторами, не имеющими IP адресов. Такой подход позволяет сэкономить IP адреса.

Используется групповая (multicast) адресация вместо широковещательной.

Области маршрутизации OSPF

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

Опорная область (backbone) - область через которую связываются другие маршрутизаторы. Имеет ID = 0.0.0.0.

Построение сети с помощью OSPF.

Маршрутизатор опорной сети (Backbone Router - BR) - подключен к опорной сети.

Граничный маршрутизатор области (Area Border Router - ABR) - подключен к нескольким областям.

Граничный маршрутизатор автономной системы (Autonomous System Boundady Router - ASBR) - подключен к другим автономным системам.

Внутренний маршрутизатор (Internal Router - IR) - все его подключения только внутри одной области.

Ответственный маршрутизатор (Designated Router - DR) - собирает и раздает маршрутную информацию в области. В OSPF существует иерархия маршрутизаторов.

Резервный ответственный маршрутизатор (Backup Designated Router - DR) - резервирует DR.

Коды поля TYPE

Коды поля AuType

Для рассылки используется групповой адрес 224.0.0.5 (ALL-OSPF-Routers).

Выполняет следующие функции:

Поиск соседних маршрутизаторов.

Выбор маршрутизаторов DR и BDR.

Определение статуса канала.

Установление партнерских отношений между маршрутизаторами.

Options (опции) - характеризует возможности, которые предоставляет данный маршрутизатор.

Rtr Pri (Приоритет) - используется при выборе Backup Designated Router.

Маршрутизаторы обмениваются данными из баз данных OSPF.

M-bit (The More bit) - станавливается в 1 если являются продолжением.

LSA (Link State Advertisement) - уведомление о состоянии канала, подробнее рассмотрен в 14.3.3.

Запрос части базы данных для обновления.

Передача части базы данных, которая была запрошена.

Используется для подтверждения получения фрагмента базы данных.

Уведомление о состоянии канала

Link State Advertisement (LSA) - уведомление о состоянии канала.

Формат заголовка LSA

Заголовок LSA

Типы уведомлений LSA

Options - содержит значения типов сервиса (TOS - type-of-service), поддерживаемые маршрутизатором.

Первый стандарт TOS - RFC1349 (Type of Service in the Internet Protocol Suite P. Almquist July 1992 ASCII).

Последняя версия TOS (теперь DSF) - RFC2474 (Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers K. Nichols, S. Blake, F. Baker, D. Black December 1998).

Формат поля Options

PRECEDENCE - приоритет дейтаграммы.

Коды типа сервиса (TOS)

описание состояния интерфейсов маршрутизатора.

bit V (virtual) - если V=1, маршрутизатор является оконечной точкой активного виртуального канала.

bit E (external) - если E=1, маршрутизатор является граничным для данной области (ABR).

bit B (border) - если B=1, маршрутизатор является граничным для автономной системы (ASBR).

Коды типов связей, поле Type

Идентификаторы канала, поле Link ID, что используется для ID в зависимости от типа связи, поле Type

Дополнительная специальная TOS-информация может быть включена, для обратной совместимости с предыдущими версиями OSPF. Для каждой связи и для каждого TOS, специальныя TOS-информация может кодироваться следующим образом:

TOS - зашифрованный код TOS в OSPF. Таблица "Коды типа сервиса (TOS)".

TOS metric - метрика для специальной TOS-информации.

описание набора маршрутизаторов подключенных к сети

сводная информация о каналах к сетям, рассылает граничный маршрутизатор области внутри своей области.

сводная информация о канале к граничному маршрутизатору автономной системы, рассылается граничным маршрутизатором области внутри своей области.

описания внешних каналов автономной системы.

bit E - при E=1 метрика считается больше любой метрики, при E=1 сравнивается с другими.

Маршрутная таблица OSPF

Маршрутная таблица OSPF содержит в себе:

IP-адрес места назначения и маску;

тип места назначения (сеть, граничный маршрутизатор и т.д.);

тип функции (возможен набор маршрутизаторов для каждой из функций TOS);

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

тип пути (характеризует путь как внутренний, межобластной или внешний, ведущий к AS);

цена маршрута до цели;

очередной маршрутизатор, куда следует послать дейтограмму;

объявляющий маршрутизатор (используется для межобластных обменов и для связей автономных систем друг с другом).

Подключится к демону OSPF, можно с помощью telnet по порту 2604, и просмотреть базу.

RIP - это сокращение от Routing Information Protocol, который представляет собой относительно простой протокол внутреннего шлюза (Internal Gateway Protocol). RIP - это протокол, основанный на алгоритме вектора расстояния, который использует количество переходов в качестве показателя для измерения расстояния до сети назначения. RIP обменивается информацией о маршрутизации через пакеты UDP, и используется номер порта 520.

RIP включает две версии: RIP-1 и RIP-2. RIP-2 расширяет RIP-1, делая его более выгодным.

Основные принципы RIP:

RIP - это протокол, основанный на алгоритме вектора расстояния, который использует количество переходов в качестве метрики для измерения расстояния до адреса назначения. В сети RIP по умолчанию количество переходов от устройства к сети, напрямую подключенной к нему, равно 0, количество переходов из сети, достижимой через устройство, равно 1, а остальные можно вычислить по аналогии. Другими словами, значение метрики равно количеству устройств от локальной сети до целевой сети. Чтобы ограничить время сходимости, RIP требует, чтобы значение метрики было целым числом от 0 до 15. Количество переходов, большее или равное 16, определяется как бесконечность, то есть сеть или узел назначения недоступны. Из-за этого ограничения использование RIP в больших сетях невозможно.

Пакет RIPv1:


Объяснение поля:

Пример захвата пакета RIPv1:


Рис.: Пример захвата пакета RIPv1

Особенности RIPv1:

  1. Есть категории протоколов маршрутизации.
  2. Трансляция обновлений.
  3. На основе UDP номер порта 520.

Анализ рабочего процесса RIP:


Рис.: Анализ рабочего процесса RIP

Формирование таблицы маршрутизации RIP:

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

Рис.: Процесс формирования таблицы маршрутизации RIP

Процесс формирования таблицы маршрутизации RIP показан на рисунке выше:

Правила отправки и получения RIPv1:

Правила отправки RIPv1:

Обратите внимание, что при отправке маска подсети отсутствует.

Сопоставьте префикс маршрута, который будет отправлен, с сегментом сети исходящего интерфейса:

  1. Если они не находятся в одной основной сети, это граница основной сети, префикс автоматически объединяется в классовый сегмент сети, и префикс отправляется на исходящий интерфейс.
  2. Если вы находитесь в той же сети, проверьте, является ли отправленный префикс 32-битным:
    1. Если да, отправьте 32-битный префикс исходящему интерфейсу.
    2. Если нет, проверьте, совпадают ли префикс и маска выхода:
      1. Если они разные, подавите отправку или сойдитесь с основным сетевым номером.
      2. Если они одинаковы и границы отсутствуют, отправьте правильный префикс на исходящий интерфейс.

      Правила получения RIPv1:

      После получения префикса, если окажется, что это номер основной сети, поместите его прямо в таблицу маршрутизации, и маска будет 8/16/24.

      Если это не основной номер сети, проверьте, находится ли он в той же основной сети:

      1. Если его нет, создается классовый маршрут, и маска рассчитывается как классовый маршрут.
      2. Если он находится в той же основной сети, замаскируйте его маской интерфейса, а затем проверьте, является ли префикс сетевым адресом или адресом хоста:
        1. Если это сетевой адрес, сгенерируйте маршрут с маской, равной его собственной маске интерфейса, и поместите его в таблицу маршрутизации.
        2. Если это не сетевой адрес, по умолчанию используется адрес хоста, создается 32-битный маршрут и помещается в таблицу маршрутизации.

        Обновление и обслуживание RIP:

        Протокол RIP в основном использует четыре таймера при обновлении и сохранении информации о маршрутизации:

        Связь между маршрутизацией RIP и таймерами:

        • Если устройство не имеет функции обновления триггера, удаление записи в таблице маршрутизации может занять до 300 секунд (время устаревания + время сборки мусора).
        • Если есть обновление триггера, то удаление записи маршрутизации может занять до 120 секунд (то есть время сборки мусора).

        Обновление триггера:

        Запуск обновления может сократить время конвергенции сети. При изменении записи в таблице маршрутизации информация будет транслироваться на другие устройства немедленно, не дожидаясь регулярных обновлений. Если обновление не запускается, по умолчанию недопустимые записи маршрутизации будут оставаться в таблице маршрутизации не более 300 секунд (таймер устаревания + таймер сборки мусора).

        Расширенные возможности RIPv2:

        Возможности RIPv2:

        1. Протокол бесклассовой маршрутизации.
        2. Многоадресное обновление, многоадресный адрес 224.0.0.9
        3. На основе UDP номер порта 520.
        4. Поддержка внешних тегов.
        5. Поддержка агрегации маршрутов и CIDR
        6. Поддержка для указания следующего перехода.
        7. Поддержка аутентификации.

        Пакеты RIPv2:


        Объяснение поля:

        Пример захвата пакета RIPv2:


        Рис.: Пример захвата пакета RIPv1

        Сравнение RIPv1 и RIPv2:

        1. RIPv1 - это протокол классовой маршрутизации, RIPv2 - это бесклассовый протокол маршрутизации.
        2. RIPv1 не может поддерживать VLSM, RIPv2 может поддерживать VLSM
        3. RIPv1 не имеет функции аутентификации, RIPv2 может поддерживать аутентификацию, и есть два типа аутентификации: открытый текст и MD5.
        4. RIPv1 не имеет функции суммирования вручную, RIPv2 может выполнять суммирование вручную при условии отключения автоматического суммирования.
        5. RIPv1 - это широковещательное обновление, RIPv2 - многоадресное обновление,
        6. RIPv1 не имеет функции маркировки маршрута, RIPv2 может пометить маршрут для фильтрации и стратегии
        7. Обновления, отправленные RIPv1, могут содержать до 25 записей маршрутов, а RIPv2 может передавать только до 24 маршрутов с аутентификацией.
        8. В пакете обновленных данных, отправленном RIPv1, нет атрибута следующего перехода, тогда как RIPv2 имеет атрибут следующего перехода, который можно использовать для сброса обновления маршрута.

        Агрегация маршрутов RIPv2:

        Принцип агрегации маршрутов заключается в том, что маршруты разных подсетей в одном и том же естественном сегменте сети агрегируются в маршруты одного сегмента сети, когда они отправляются наружу (другие сегменты сети).

        Есть два способа агрегации маршрутов:

        Классовая агрегация на основе процесса RIP:

        Агрегированные маршруты объявляются в виде маршрутов с естественной маской. Например, для двух маршрутов 10.1.1.0/24 (metric = 2) и 10.1.2.0/24 (metric = 3) они будут объединены в маршрут естественного сегмента сети 10.0.0.0/8 (metric = 2). Агрегация RIP-2 основана на агрегации классов, и агрегация получает лучшее значение метрики.

        Агрегация на основе интерфейса:

        Пользователь может указать адрес агрегации. Например, для двух маршрутов 10.1.1.0/24 (metric = 2) и 10.1.2.0/24 (metric = 3) агрегированный маршрут 10.1.0.0/16 (metric = 2) может быть настроен на указанном интерфейсе вместо исходного. маршрутизации.

        Особенности RIP:

        Разделить горизонт:

        Принцип Split Horizon заключается в том, что маршрут, полученный RIP от интерфейса, не будет отправлен обратно на соседние маршрутизаторы с этого интерфейса. Это не только снижает потребление полосы пропускания, но и предотвращает петли маршрутизации.

        Разделенный горизонт отличается в разных сетях, он делится на разделенный горизонт интерфейсом и соседом. Широковещательные сети, сети P2P и P2MP горизонтально разделены по интерфейсам, как показано на следующем рисунке:


        Рис.: Принципиальная схема горизонтального разделения в соответствии с интерфейсом

        RouterA отправит RouterB информацию о маршрутизации в сеть 10.0.0.0/8. Если разделение горизонта не настроено, RouterB отправит маршрут, полученный от RouterA, обратно в RouterA. Таким образом, RouterA может узнать два маршрута к сети 10.0.0.0/8: прямой маршрут с шагом 0; маршрут с шагом 2 до следующего перехода к RouterB.

        Однако в таблице маршрутизации RIP RouterA активны только прямые маршруты. Когда маршрут от RouterA к сети 10.0.0.0 становится недоступным, а RouterB не получил информацию о недоступности, RouterB будет продолжать отправлять информацию о достижимой маршрутизации 10.0.0.0/8 на RouterA. То есть RouterA получит неверную информацию о маршрутизации и будет думать, что он может достичь сети 10.0.0.0/8 через RouterB; в то время как RouterB все еще думает, что он может достичь сети 10.0.0.0/8 через RouterA, образуя таким образом петлю маршрутизации. После настройки разделения горизонта RouterB больше не будет отправлять маршрут в сеть 10.0.0.0/8 обратно в RouterA, что позволяет избежать петель маршрутизации.

        Для сети NBMA (Non-Broadcast Multiple Access), поскольку несколько соседей подключены к одному интерфейсу, горизонтальное разделение выполняется в соответствии с соседями. Маршруты будут отправляться в одноадресном режиме, и маршруты, полученные на том же интерфейсе, могут быть различимы соседями. Маршрут узнается от однорангового соседа определенного интерфейса и не будет отправлен обратно через интерфейс.


        Рис.: Принципиальная схема разделения горизонта по соседям

        После настройки разделения горизонта в сети NBMA RouterA отправит маршрут 172.16.0.0/16, полученный от RouterB, в RouterC, но не будет отправлять его обратно в RouterB.

        Изменение токсичности:

        Принцип Poison Reverse заключается в том, что после того, как RIP узнает маршрут от интерфейса, он отправляет его обратно на соседний маршрутизатор с исходного интерфейса и устанавливает стоимость маршрута равной 16 (то есть указывает, что маршрут недоступен). Таким образом можно очистить бесполезные маршруты в таблице маршрутизации другой стороны.

        Разница между расщепленным горизонтом и ядовитым реверсом:

        И разделение горизонта, и обратное изменение направления предназначены для предотвращения петель маршрутизации в RIP, но разделение горизонта не требует «возврата по тому же маршруту» после получения записей маршрутизации, чтобы избежать циклов, в то время как обратное изменение маршрута следует за «плохими новостями, чем ничего» Принцип «хороших новостей» означает, что запись маршрута «возвращается таким же образом», но запись маршрута помечается как недостижимая (метрика - 16).

        По умолчанию нейтрализация отравления не включена. Как правило, разделение горизонта включено в оборудовании Huawei (кроме сети NBMA), а обратный отравление отключен.

        Многопроцессорность и многоэкземплярность:

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

        Мультиэкземпляр RIP связывает процесс RIP с каждым экземпляром VPN, так что экземпляр VPN связан со всеми интерфейсами в рамках указанного процесса.

        Связь RIP и BFD:

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

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

        Процесс устранения неполадок RIP:

        1. Проверьте, включен ли интерфейс в RIP: используйте display rip process-id interface для просмотра интерфейса, на котором выполняется rip;
        2. Проверьте, совпадает ли номер версии, отправленный партнером, с номером версии, полученным локальным интерфейсом: по умолчанию интерфейс отправляет только пакеты RIPv1, но может получать пакеты RIPv1 и RIPv2. Когда входящий интерфейс и полученный пакет RIP используют разные номера версий, это может привести к неправильному получению маршрута RIP;
        3. Проверьте, настроена ли политика в RIP, и отфильтруйте полученный маршрут RIP: если он фильтруется политикой маршрутизации, вам необходимо изменить политику маршрутизации;
        4. Отключен ли порт 520, используемый RIP;
        5. Проверьте, настроен ли интерфейс для отмены ввода / вывода рипа или слишком большой показатель рипа;
        6. Проверьте, настроен ли интерфейс с интерфейсом подавления;
        7. Проверить, не превышает ли показатель маршрутизации 16;
        8. Проверьте, настроена ли аутентификация на обоих концах соединения и правильна ли конфигурация аутентификации.
        1. RIPv1 и RIPv2 по умолчанию несовместимы друг с другом.
        2. По умолчанию маршрутизаторы с RIPv2 отправляют и принимают только пакеты v2 и не получают пакеты v1.
        3. Маршрутизаторы с RIPv1 могут получать пакеты v2.

        Проверка эксперимента по совместимости RIPv1 и RIPv2:


        Рис.: Эксперимент по совместимости версий RIPv1 и RIPv2

        Конфигурация следующая:

        Экспериментальные явления:


        Рис.: Таблица маршрутизации AR1

        Версия бита RIPv2, открытая на AR1, не получила обновления маршрутизации от RIPv1 в AR2 в таблице маршрутизации.


        Изображение: AR2 настроен как RIPv1, и маршрут, отправленный из AR1, получен, запись маршрута 1.1.1.1/32 получена.


        Рис.: Захват пакета

        Результаты эксперимента:

        Версия RIP v2 будет отправлять только v2 и получать v2.

        Версия RIP v1 может получать пакеты v2.

        Когда обе стороны используют RIPv2:


        Рис.: Таблица маршрутизации Ar1, когда все являются RIPv2

        Когда обе стороны - v2, AR1 может получить запись маршрута 2.2.2.2/32, отправленную AR2, а AR2 также может получить 1.1.1.1/32.

        Когда обе стороны используют RIPv1:


        Рис.: Если обе стороны имеют версию v1, таблица маршрутизации AR1


        Рис.: Если обе стороны имеют версию v1, таблица маршрутизации AR2

        Когда обе стороны - v1, все записи маршрутизации, полученные друг от друга, являются классовыми маршрутами, 1.0.0.0/8 и 2.0.0.0/8. В версии v2 все полученные маршруты являются бесклассовыми, 1.1.1.1/32 и 2.2.2.2/32.


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

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

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

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



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

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

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


        Так как протокол является классовым, то в таблице мы видим адреса сети с классовой маской.

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


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


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

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

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

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

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

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


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

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

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

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

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

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

        Теперь посмотрим на таблицу маршрутизации:


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

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

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


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

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

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

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


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


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

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

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

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

        Посмотрим на таблицу в каждом маршрутизаторе



        В них отсутствует запись о подключенных сетях соседей 172.16.1.0 и 172.16.2.0. То есть эти сети не анонсируются протоколом RIP.

        Но есть способ получше. Достаточно просто объявить всем маршрутизаторам о имеющихся подключенных сетях:

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

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

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


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

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

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

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

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

        Отключим ее и посмотрим, что произойдет:

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


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

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

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

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

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



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



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

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

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

        Читайте также: