4.7.1 Побудова таблиці маршрутизації
Протокол маршрутної інформації (Routing Information Protocol – RIP) початково був визначений в документі RFC 1058 в 1988 році. Най-більш суттєвими є такі його характеристики [1, 10]:
• RIP є дистанційно-векторним протоколом маршрутизації;
• як метрики при виборі маршруту використовується кількість переходів (або хопів);
• якщо кількість переходів більше ніж 15, пакет відкидається;
• стандартно оновлення маршрутизації розсилаються широкомовним способом кожних 30 секунд.
Протокол RIP значно еволюціонував: від основаного на класах протоколу першої версії (RIPv1) до безкласового протоколу другої версії (RIPv2). Вдосконалення останнього такі [1, 9, 10]:
• можливість переносити додаткову інформацію про маршрутизацію пакетів;
• механізм аутентифікації для забезпечення безпечного онов-лення ТМ;
• підтримка масок змінної довжини.
Протокол RIP запобігає появі петель маршрутизації, по яких пакети могли б циркулювати невизначено довго, встановлюючи максимально допустиму кількість переходів на маршруті між відправником та отримувачем. Стандартне максимальне значення кількості переходів становить 15. При отриманні маршрутизатором оновлення маршрутів, що містить новий або змінений запис, він збільшує значення метрики на одиницю. Якщо при цьому значення метрики перевищує 15, то мережа-отримувач вважається недосяжною. У протоколу RIP є ряд функцій спільних для нього та інших протоколів маршрутизації. Наприклад, він дозволяє використовувати механізми розщеплення горизонту та таймери утримання інформації для запобігання розповсюдження некоректних знань про маршрути.
Розглянемо процес побудови таблиці маршрутизації за допомогою протоколу RIPv1 на прикладі мережі, зображеної на рис. 4.6 [1].
Етап 1 – створення мінімальних таблиць маршрутизації
В даній мережі містяться вісім IP-мереж, зв’язаних чотир-ма маршрутизаторами з ідентифікаторами: М1, М2, М3 та М4. Маршрутизатори, що працюють за протоколом RIP, можуть мати ідентифікатори, однак, для роботи протоколу вони не є необхідними. В RIP-повідомленнях ці ідентифікатори не передаються.
У вихідному стані в кожному маршрутизаторі програмним забезпе-ченням стека TCP/IP автоматично створюється мінімальна таблиця маршрутизації, в якій враховуються лише безпосередньо під’єднані мережі.
Табл. 4.4 дозволяє оцінити приблизний вигляд мінімальної ТМ маршрутизатора М1.
Таблиця 4.4 – Мінімальна таблиця маршрутизації маршрутизатора М1
Мінімальні ТМ інших маршрутизаторів будуть виглядати відповід-но.
Етап 2 – розсилання мінімальних таблиць сусідам
Після ініціалізації кожного маршрутизатора він починає відсилати своїм сусідам повідомлення протоколу RIP, в яких міститься його мінімальна ТМ. RIP-повідомлення надсилаються в пакетах протоколу UDP і містять для кожної мережі: її IP-адресу та відстань до неї від маршрутизатора, що надсилає повідомлення. Сусідами є маршрутизатори, яким даний маршрутизатор може надіслати IP-пакет не користуючись послугами проміжних маршрутизаторів. Маршрутизатор М1 надсилає до М2 і М3 повідомлення: мережа 201.36.14.0, відстань 1; мережа 132.11.0.0, відстань 1; мережа 194.27.18.0, відстань 1.
Рисунок 4.6 – Мережа, об’єднана RIP-маршрутизаторами
Етап 3 – отримання RIP-повідомлень від сусідів і оброблення отриманої інформації
Після отримання аналогічних повідомлень від маршрутизаторів М2 та М3 маршрутизатор М1 нарощує кожне отримане поле метрики на одиницю і запам’ятовує, через який порт і від якого маршрутизатора отримана ця інформація (адреса цього маршрутизатора буде адресою наступного хопа, якщо цей запис буде внесений до ТМ). Потім маршрутизатор починає порівнювати нову інформацію з тією, що зберігається в його ТМ (табл. 4.5).
Таблиця 4.5 – Таблиця маршрутизації маршрутизатора М1
Записи 4 9 отримані від сусідніх маршрутизаторів і претендують на занесення до ТМ. Однак тільки записи з 4 7 потрапляють до неї, оскільки два останні містять дані про вже наявні у таблиці М1 мережі, а відстань до них більша, ніж в існуючих записах.
Протокол RIP заміщує запис про будь-яку мережу лише тоді, якщо нова інформація має кращу метрику, ніж наявна. В результаті в ТМ про кожну мережу лишається лише один запис. Якщо є кілька рівнозначних за метрикою шляхів до однієї і тієї ж мережі, то в ТМ лишається один запис, що надійшов першим. Для цього правила є виняток – якщо гірша інформація про будь-яку мережу прийшла від того ж маршрутизатора, на основі повідомлення якого була створено даний запис, то вона заміщує кращу [1].
Аналогічні операції з новою інформацією виконують й інші маршрутизатори мережі.
Етап 4 – розсилання нової таблиці сусідам
Кожен маршрутизатор відсилає нове RIP-повідомлення всім своїм сусідам. В цьому повідомленні він розміщує дані про всі відомі йому мережі – як безпосередньо під’єднаних, так і віддалених.
Етап 5 – отримання RIP-повідомлень від сусідів та оброблення отриманої інформації
Етап 5 фактично повторює етап 3. Розглянемо, як це робить маршрутизатор М1 (табл. 4.6).
Таблиця 4.6 – Таблиця маршрутизації маршрутизатора М1
На цьому етапі маршрутизатор М1 отримав від М3 інформацію про мережу 132.15.0.0, яку той в свою чергу на попередньому циклі роботи отримав від М4. Маршрутизатор вже знає про мережу 132.15.0.0, причому стара інформація має кращу метрику, ніж нова, тому ця нова інформація відкидається.
Про мережу 202.101.16.0 маршрутизатор М1 дізнається на цьому етапі вперше, причому дані про неї приходять від двох сусідів – від М3 та М4. Оскільки метрики в цих повідомленнях однакові, то в ТМ потрапляють дані, які прийшли першими. В нашому прикладі вважається, що маршрутизатор М2 випередив М3 і першим надіслав RIP-повідомлення до М1.
Якщо маршрутизатори періодично повторюють етапи розсилки та оброблення RIP-повідомлень, то за певний проміжок часу в мережі встановлюється коректний режим маршрутизації, коли коли всі мережі будуть досяжні з будь-якої мережі за допомогою деякого раціонального маршруту. Пакети будуть доходити до адресатів і не зациклюватися в петлях.