RIP

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


1. История

Алгоритм маршрутизации RIP ( алгоритм Беллмана-Форда) был впервые разработан в 1969 -м, как основной для сети ARPANET.

Прототип протокола RIP - Gateway Information Protocol, часть пакета PARC Universal Packet.

Версия RIP, которая поддерживает протокол интернета была включена в пакет BSD операционной системы Unix под названием routed (route daemon), а также многими производителями, реализовал свою версию протокола. В результате протокол был унифицирован в документе RFC 1058.

В 1994 г. был разработан протокол RIP2 ( RFC 2453), который является расширением протокола RIP, обеспечивает передачу дополнительной маршрутной информации в сообщениях RIP и повышает уровень безопасности.

Для работы в среде IPv6 была разработана версия RIPng.


2. Техническая информация

RIP - так называемый дистанционно-векторный протокол, который оперирует хопамы как метрикой маршрутизации. Максимальное количество хопов, разрешен RIP - 15 (метрика 16 означает "бесконечно большую метрику", то есть недостижимый сегмент сети). Каждый RIP-маршрутизатор по умолчанию сообщает в сеть свою полную таблицу маршрутизации раз в 30 секунд, генерируя довольно много трафика на низкоскоростных линиях связи. RIP работает на прикладном уровне стека TCP / IP, используя UDP порт 520.

В современных сетевых средах RIP - не лучшее решение для выбора в качестве протокола маршрутизации, так как его возможности уступают современным протоколам, таким как EIGRP, OSPF. Ограничение в 15 хопов не дает применять его в больших сетях. Преимущество этого протокола - простота конфигурирования. Вследствие простоты его поддерживают практически все маршрутизаторы начального уровня.


2.1. Формат RIP пакета

 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | command (1) | version (1) | must be zero (2) | + --------------- + -------------- - + ------------------------------- + | | ~ RIP Entry (20) ~ | | + ---- ----------- + --------------- + --------------- + ------ --------- + 

command - Команда, определяет назначение датаграммы (1 - request 2 - response)

version - Номер версии в зависимости от версии, определяется формат пакета

must be zero - должно быть нулем;

RIP Entry - (RTE) Запись маршрутной информации RIP. RIP пакет может содержать от 1 до 25 записей RIP Entry.


2.1.1. Формат RIP Entry для протокола RIP-1 (version = 1)

 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | address family identifier (2) | must be zero (2) | + ------------------------------- + - ------------------------------ + | IPv4 address (4) | + ----------- -------------------------------------------------- - + | must be zero (4) | + -------------------------------------- ------------------------- + | must be zero (4) | + --------------- ------------------------------------------------ + | metric (4) | + -------------------------------------------- ------------------- + 

address family identifier - (AFI) Тип адреса, обычно поддерживается только запись AF_INET, равное 2 (то есть используется для протокола IP)

must be zero - должно быть нулем

IPv4 address - IP адрес места назначения (хост или сеть)

metric - Метрика маршрута


2.1.2. Формат RIP Entry для протокола RIP-2 (version = 2)

 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | Address Family Identifier (2) | Route Tag (2) | + ------------------------------- + - ----------------------------- + | IP Address (4) | + ------------ -------------------------------------------------- - + | Subnet Mask (4) | + ---------------------------------------- ----------------------- + | Next Hop (4) | + ------------------ --------------------------------------------- + | Metric (4 ) | + ----------------------------------------------- ---------------- + 

Address Family Identifier - (AFI) Тип адреса, обычно поддерживается только запись AF_INET, равное 2 (то есть используется для протокола IP)

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

IP Address - IP адрес места назначения

Subnet Mask - Маска подсети

Next Hop - Следующий хоп. Содержит IP адрес маршрутизатора к месту назначения. Значение 0.0.0.0 - хопом до места назначения является отправитель пакета. Незаменимо, если протокол RIP не может быть запущен на всех маршрутизаторах!

Metric - Метрика маршрута


2.1.3. Аутентификация

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


 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | Command (1) | Version (1) | unused | + --------------- + --------------- + --- ---------------------------- + | 0xFFFF | Authentication Type (2) | + ----------- -------------------- + ----------------------------- - + ~ Authentication (16) ~ + ---------------------------------------- ----------------------- + 

Command - команда, определяет назначение датаграммы (1 - запрос, 2 - ответ)

Version - номер версии;, в зависимости от версии, определяется формат пакета.

unused - зарезервированное поле.

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

Authentication Type - определяет метод, который используется для аутентификации.

Authentication - содержит реальные данные аутентификации.


3. Реализации

См.. также