4.7.3 Конфігурування протоколу RIP

Спочатку слід увійти в режим конфігурування протоколу RIP за допомогою команди router rip (зупинити роботу протоколу RIP зі стиранням його конфігурування можна за допомогою команди no router rip). Далі за допомогою команди Rt(config-router)#network ip-directly-connected-classful-net слід вказати класові мережі, які безпосередньо під’єднані до даного маршрутизатора і повинні ним анонсуватись. Вона дозволяє надсилати та отримувати RIP-оновлення для інтерфейсів, що належать до цих мереж, а також дані мережі у RIP-повідомленнях.

Зауважимо, що у випадку, коли до маршрутизатора безпосередньо під’єднано кілька підмереж одного класу, то достатньо вказати лише одну цю класову мережу. Якщо ж вказати підмережу, то IOS автоматично конвертує її у повнокласову адресу (наприклад, якщо за-дати команду network 192.168.1.64 – маршрутизатор сприйме її як network 192.168.1.0)

Приклади таких настроювань для маршрутизаторів R1 – R3 мережі, зображеної на рис. 4.5 наведені нижче.

R1(config)# router rip
R1(config-router)# network 192.168.1.0
R1(config-router)# network 192.168.4.0

R2(config)# router rip
R2(config-router)# network 192.168.2.0
R2(config-router)# network 192.168.4.0

R3(config)# router rip
R3(config-router)# network 192.168.3.0
R3(config-router)# network 192.168.4.0

Зауважимо, що команди router rip та network є обов’язковими для настроювання протоколу.

За замовчуванням програмне забезпечення отримує пакети RIPv1 та RIPv2, а надсилає лише пакети RIPv1. Як відомо, протокол RIPv1 не підтримує технологію VLSM, і якщо у мережі використовуються маски змінної довжини цей протокол буде працювати некоректно, отже в такому випадку слід використовувати RIPv2.

Для того, щоб сконфігурувати маршрутизатор на відправлення та отримання пакетів лише однієї версії протоколу RIP слід використовувати такі команди: Router(config-router)# version {1 | 2} – вказує IOS на необхідність відправлення лише пакетів версії RIPv1 або RIPv2.

Router(config-router)# ip rip send version ХX – конфігурує інтерфейс для відправлення пакетів протоколу RIP певної версії (ХX може приймати значення "1" або "2" або "1 2", в останньому випадку приймаються пакети версії 1 або 2). Конфігурування інтерфейсу для отримання пакетів протоколу RIP певної версії виконується аналогічно. Відповідна команда конфігурування має синтаксис R1(config-router)# ip rip receive version ХХ. В нашому випадку (див. рис. 4.5) слід вказати використання протоколу RIPv2.

Після виконання цих команд можна проглянути ТМ на маршрутизаторах за допомогою команди show ip route. Для маршрутизатора R1 ТМ має вигляд:
C 192.168.1.0/24 is directly connected, FastEthernet0/0
R 192.168.2.0/24 [120/1] via 192.168.4.2, 00:00:21, Se-rial0/0
R 192.168.3.0/24 [120/2] via 192.168.4.2, 00:00:21, Se-rial0/0
192.168.4.0/30 is subnetted, 2 subnets
C 192.168.4.0 is directly connected, Serial0/0
R 192.168.4.4 [120/1] via 192.168.4.2, 00:00:21, Se-rial0/0

Для маршрутизатора R2 ТМ така:
R 192.168.1.0/24 [120/1] via 192.168.4.1, 00:00:05, Se-rial0/1
C 192.168.2.0/24 is directly connected, FastEthernet0/0
R 192.168.3.0/24 [120/1] via 192.168.4.6, 00:00:00, Se-rial0/0
192.168.4.0/30 is subnetted, 2 subnets
C 192.168.4.0 is directly connected, Serial0/1
C 192.168.4.4 is directly connected, Serial0/0

Для маршрутизатора R3 ТМ така:
R 192.168.1.0/24 [120/2] via 192.168.4.5, 00:00:27, Serial0/1
R 192.168.2.0/24 [120/1] via 192.168.4.5, 00:00:27, Serial0/1
C 192.168.3.0/24 is directly connected, FastEthernet0/0
192.168.4.0/30 is subnetted, 2 subnets
R 192.168.4.0 [120/1] via 192.168.4.5, 00:00:27, Serial0/1
C 192.168.4.4 is directly connected, Serial0/1

В першому стовпці ТМ є символи, які вказують на джерело отри-мання даного маршруту. С – вказує на те, що це безпосередньо під’єднана до даного маршрутизатора мережа (даний запис з’являється в ТМ в результаті настроювання певного порту маршрутизатора), а R – що даний маршрут отриманий від протоколу RIP.

Розглянемо складові маршрутів у ТМ, наприклад, третього рядка таблиці маршрутизації маршрутизатора R1
R 192.168.3.0/24 [120/2] via 192.168.4.2, 00:00:21, Se-rial0/0

Тут 192.168.3.0/24 – адреса мережі призначення з її маскою; [120/2]– адміністративна відстань і після слешу метрика маршруту; 192.168.4.2 – ІР-адреса порту сусіднього пристрою через який отримано даний рядок; 00:00:21 – час, що минув з моменту отримання даного маршруту (пройшло 21 секунда, наступне поновлення повинно відбутись через 9 секунд); Serial0/0 – тип та номер локального порту маршрутизатора, на який слід надіслати пакет, щоб він дістався вищевказаного пункту призначення.

Автосумаризація маршрутів

Розглянемо випадок, коли вищенаведені команди конфігурування протоколу RIP не приведуть до коректної роботи мережі. Так, якщо у складеній мережі існують підмережі, що належать одній класовій мережі, але під’єднані до різних маршрутизаторів, таблиці маршрутизації до цих підмереж будуть некоректними. Наприклад, якщо у мережі, наведеній на рис. 1 мережу 192.168.1.0/24 розбити на дві підмережі 192.168.1.0/25 і 192.168.1.128/25, перша з яких буде під’єднана до порту Fa0/0 маршрутизатора R1, а друга – Fa0/0 маршрутизатора R3 виникне така проблема. Маршрутизатори R1 і R3 будуть виконувати автоматичну сумаризацію підмереж у класову мережу, до якої входять дані підмережі (сумаризація виконується на граничному для цих підмереж маршрутизаторі, тобто маршрутизаторі, який має одну або більше підмереж, що входять до мережі певного класу і з’єднується з іншою частиною мережі через мережу, що не належить вищевказаній класовій мережі) і повідомляти маршрутизатор R2 про те, що мають безпосередній зв’язок з мережею 192.168.1.0/24. При цьому маршрутизатор R2 вважатиме, що існує два оптимальних шляхи до мережі 192.168.1.0/24. ТМ маршрутизатор R2 буде мати вигляд:
R 192.168.1.0/24 [120/1] via 192.168.4.1, 00:00:11, Serial0/1
[120/1] via 192.168.4.6, 00:00:23, Serial0/0
C 192.168.2.0/24 is directly connected, FastEthernet0/0
192.168.4.0/30 is subnetted, 2 subnets
C 192.168.4.0 is directly connected, Serial0/1
C 192.168.4.4 is directly connected, Serial0/0

ТМ для R1 буде такою
192.168.1.0/25 is subnetted, 1 subnets
C 192.168.1.0 is directly connected, FastEthernet0/0
R 192.168.2.0/24 [120/1] via 192.168.4.2, 00:00:25, Serial0/0
192.168.4.0/30 is subnetted, 2 subnets
C 192.168.4.0 is directly connected, Serial0/0
R 192.168.4.4 [120/1] via 192.168.4.2, 00:00:25, Serial0/0

ТМ для R3 буде такою
192.168.1.0/25 is subnetted, 1 subnets
C 192.168.1.128 is directly connected, FastEthernet0/0
R 192.168.2.0/24 [120/1] via 192.168.4.5, 00:00:24, Serial0/1
192.168.4.0/30 is subnetted, 2 subnets
R 192.168.4.0 [120/1] via 192.168.4.5, 00:00:24, Serial0/1
C 192.168.4.4 is directly connected, Serial0/1

В результаті маршрутизація в такій мережі буде неправильною. На-приклад, якщо з маршрутизатора R2 пропінгувати будь-який вузол ме-режі 192.168.1.0/25 або 192.168.1.128/25 пакети, внаслідок балансування навантаження будуть циклічно (почергово) передаватись різними шляхами через інтерфейси S0/0 та S0/1. Крім того маршрутизатор R1 не містить маршруту до мережі 192.168.1.128/25, а R3 – мережі 192.168.1.0/25. Очевидно, що така ситуація недопустима.

Для вирішення даної ситуації на кожному маршрутизаторі слід відмінити автоматичну сумаризацію маршрутів за допомогою команди no auto-summary в режимі конфігурування протоколу RIP. Після цього ТМ маршрутизаторів набувають вигляду для R1:
192.168.1.0/25 is subnetted, 2 subnets
C 192.168.1.0 is directly connected, FastEthernet0/0
R 192.168.1.128 [120/2] via 192.168.4.2, 00:00:02, Serial0/0
R 192.168.2.0/24 [120/1] via 192.168.4.2, 00:00:02, Serial0/0
192.168.4.0/30 is subnetted, 2 subnets
C 192.168.4.0 is directly connected, Serial0/0
R 192.168.4.4 [120/1] via 192.168.4.2, 00:00:02, Serial0/0;

для R2:
192.168.1.0/25 is subnetted, 2 subnets
R 192.168.1.0 [120/1] via 192.168.4.1, 00:00:06, Serial0/1
R 192.168.1.128 [120/1] via 192.168.4.6, 00:00:01, Serial0/0
C 192.168.2.0/24 is directly connected, FastEthernet0/0
192.168.4.0/30 is subnetted, 2 subnets
C 192.168.4.0 is directly connected, Serial0/1
C 192.168.4.4 is directly connected, Serial0/0;

для R3:
192.168.1.0/25 is subnetted, 2 subnets
R 192.168.1.0 [120/1] via 192.168.4.1, 00:00:06, Serial0/1
R 192.168.1.128 [120/1] via 192.168.4.6, 00:00:01, Serial0/0
C 192.168.2.0/24 is directly connected, FastEthernet0/0
192.168.4.0/30 is subnetted, 2 subnets
C 192.168.4.0 is directly connected, Serial0/1
C 192.168.4.4 is directly connected, Serial0/0.

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

Ще одна проблема – небажане надсилання оновлень з деяких інтер-фейсів. Справа в тому, що під час застосування команди network протокол RIP надсилає інформацію про маршрут до вказаної в цій команді мережі зі всіх інтерфейсів у діапазоні адрес цієї мережі. Для вимкнення відправлень (але не отримувань) таких оновлень з окремих інтерфейсів можна скористатися командою passive-interface. Так, повертаючись до нашої мережі (див рис. 1) бачимо, що надсилати RIP-оновлення недоцільно у порти fa0/0 маршрутизаторів R1 – R3, оскільки до відповідних мереж не під’єднані інші маршрутизатори, а лише робочі станції. Крім недоцільності такі оновлення ще будуть породжувати зайвий службовий трафік, який знижує пропускну спроможність мережі і надає можливість зловмисникам аналізувати ці оновлення. Отже, на маршрутизаторах R1 – R3 слід набрати команду Router(config-router)# passive-interface fa0/0.

Застосування команди ip classless

Іноді маршрутизатор отримує пакети, призначені для невідомої підмережі деякої мережі, яка входить у безпосередньо під’єднані мережі пристрою. Для пересилання цих пакетів за найкращим шляхом використовується команда глобального конфігурування ip classless [4]. Коли цю функцію вимкнено і пакет надсилається у підмережу мережі, до якої немає стандартного маршруту – пакет відкидається маршрутизатором.

Команда ip classless не впливає на ТМ, а лише на операцію пересилання пакета. Якщо маршрутизатор отримує пакет з невідомою адресою отримувача, що знаходиться в невідомій підмережі під’єднаної мережі, то передбачається, що такої підмережі неіснує. Тому маршрутизатор відкидає пакет навіть якщо існує стандартний маршрут. Виконання команди ip classless – вирішує цю проблему за рахунок вказання маршрутизатору заснованої на класах межі мереж в його ТМ і просто вибирати стандартний маршрут [1].

Нагадаємо, що під час отримання інформації про мережу RIP-маршрутизатори покладаються на сусідні маршрутизатори. Протоколам RIP, як будь-якому ДВП властиві проблеми, що спричинюють повільну конвергенцію. Для уникнення петель маршрутизації і зациклювання пакетів протокол RIP використовує: розщеплення горизонту (Split horizon); вилучення маршрутів у зворотному напрямку (Poison reverse); таймери утримання інформації (Holddown counters); миттєві (тригерні) оновлення (Triggered updates). Деякі з цих методів потребують додаткового конфігурування, деякі – ні. В деяких випадках потрібно вимкнути механізм розщеплення горизонту [4]. Таке вимкнення виконується за допомогою комади Router(config-if)#no ip split-horizon.

Встановлення значень таймерів

Ще один механізм, який може потребувати змін – це застосування таймера утримання інформації. Такий таймер дозволяє попередити зациклювання пакетів, проте збільшує час конвергенції мережі. Стандартно Holddown counters складає 180 секунд. Протягом цього часу не дозволяється оновлення внутрішніх маршрутів, однак і дійсні альтернативні маршрути також не будуть встановлюватись. Для прискорення конвергенції час Holddown counters може бути зменшено. В ідеальному випадку – це встановлення цього періоду утримання трошки більшим за максимальний час оновлення маршрутів у даній об’єднаній мережі [4].

Для змінення періоду таймера утримання інформації використовується команда Rt(config-router)#timers basic update invalid holddown flush [sleeptime], де update – таймер оновлення (стандартно 30 секунд) – задає період розсилання оновлень про ма-ршрути; invalid – таймер дійсності маршруту (стандартно 180 секунд) – задає час, протягом якого маршрутизатор при відсутності анонсів про оновлення деякого маршруту чекає, перед тим, як об’явити цей маршрут недійсним. Маршрут зберігатиметься у ТМ поки не спливе час таймера скидання маршрутів flush; holddown – таймер утримання (стандартно 180 секунд) – задає час, протягом якого нові повідомлення про оновлення маршрутизації ігноруються; flush – таймер скидання маршрутів – задає час, який проходить до того, як маршрут буде вилучений з ТМ (стандартно 240 секунд).

Додатковим параметром, що впливає на час конвергенції і підлягає конфігуруванню є інтервал розсилання повідомлень оновлень маршрутів (за замовчуванням кожні 30 секунд). Цей час можна збільшити (для економії смуги пропускання) або зменшити (для скорочення часу конвергенції) за допомогою команди
Router(config-router)#update-timer seconds.

Встановлення кількості паралельних маршрутів

Під час конфігурування протоколу RIP можна встановити кількість паралельних маршрутів. Стандартно для більшості протоколів динамічної маршрутизації в ТМ встановлюється до чотирьох таких маршрутів (для статичних маршрутів їх може бути шість). Для змінення стандартної кількості паралельних маршрутів можна використати ко-манду
Router(config-router)#maximum-paths [number].

Анонсування статичних та стандартних маршрутів

Статичні маршрути, вказані на деякому інтерфейсі за замовчуванням не анонсуються протоколом RIP. Якщо статичний маршрут призначений інтерфейсу, який не вказаний у команді network – то жоден протокол маршрутизації не анонсує такий маршрут. Дозволити анонсування можна за допомогою команди redistribute static [4].

Стандартні маршрути (маршрути за замовчуванням), протоколом RIP за замовчуванням також не анонсуються. Якщо треба, щоб такі маршрути включалися до RIP-анонсів, на маршрутизаторі, де вказано маршрут за замовчуванням, слід виконати команду default-information originate [4].