Мережі та системи зв’язку online

Альтернативи протоколу RIP в великих мережах

У статті "RIP: чи не час на заслужений відпочинок?" 1 ми обговорили основні принципи функціонування протоколу Routing Information Protocol (RIP) - першого протоколу маршрутизації на основі довжини векторів (distance-vector) - і показали його недоліки при роботі у великій неоднорідною мережевий середовищі. У даній статті будуть розглянуті більш сучасні протоколи маршрутизації, можливості яких ширше можливостей RIP.

Цими більш сучасними протоколами є Interior Gateway Routing Protocol (IGRP) і Enhanced IGRP (EIGRP) фірми Cisco Systems, а також Open Shortest Path First (OSPF). Протоколи RIP версії 2 і Integrated IS-IS розглядатися нами не будуть, оскільки вони мають малої поширеності.

При роботі над протоколом IGRP фірма Cisco Systems ставила перед собою ряд завдань. Створюваний протокол повинен був забезпечити стабільну і ефективну маршрутизацію (без виникнення маршрутних петель) у великих мережах, швидку реакцію на зміни мережевої топології, автоматичну адаптацію до завантаження каналу зв'язку та частотою виникнення в ньому помилок. При цьому протокол не повинен сильно завантажувати процесори маршрутизаторів і займати більшу смугу пропускання мережі.

Основні відмінності між протоколами RIP і IGRP пов'язані з методом обчислення метрик, алгоритмом Route Poisoning і використанням шлюза2 за замовчуванням. Правила передачі обмежених оновлень (split horizon), ініціювання передачі оновлень (triggered updates) і тимчасової заборони на оновлення маршруту (hold-down) в IGRP реалізовані практично так само, як і в RIP.

Обчислення метрики в IGRP

Для характеристики маршрутів протокол IGRP використовує набір параметрів (метрик), що забезпечує значну гнучкість при математичному описі лінії зв'язку. На базі цих параметрів обчислюється так звана складова метрика, яка і визначає, наскільки хороший той чи інший маршрут. Для обчислення складовою метрики використовується наступна формула:

де K1 і K2 - константи; Bе - ефективна ширина смуги пропускання каналу зв'язку (Be = Buґ (1-N), де

Bu - ширина смуги пропускання незавантаженого каналу, а N - ступінь його завантаженості); D - топологічна затримка; R - величина, що характеризує надійність каналу.

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

Кращим вважається шлях з найменшою метрикою. Якщо ж кілька шляхів мають однакову метрику, то трафік розподіляється рівномірно між ними. Ця функціональна можливість протоколу IGRP вимагає деякої обережності при проектуванні мережі. Якщо протоколи канального або транспортного рівнів зберігають порядок проходження пакетів, то все добре. Але, наприклад, при наявності декількох маршрутів для пересилання пакетів User Datagram Protocol (UDP) за допомогою протоколу Frame Relay згадане властивість IGRP може викликати проблему, оскільки ні Frame Relay, ні UDP не гарантують збереження порядку проходження пакетів. В цьому випадку вирішити проблему можна перейшовши на використання транспортного протоколу Transmission Control Protocol (TCP).

Алгоритм Route Poisoning в IGRP

Алгоритм Route Poisoning, застосовуваний в IGRP, здатний запобігати виникненню маршрутних петель великого розміру. Алгоритм же Split Horizon with the Poison-Reverse System, який використовується в RIP, "справляється" тільки з маршрутними петлями між сусідніми маршрутизаторами. Виходячи з того, що маршрутні петлі постійно збільшують метрику, протокол IGRP видаляє маршрути з метрикою, яка після поновлення збільшується більш ніж на 10%.

При використанні алгоритму Route Poisoning з таблиць маршрутизації можуть бути помилково видалені деякі правильні маршрути. Однак вони будуть відновлені вже при отриманні наступного регулярного повідомлення про оновлення. Гідність використовуваного в IGRP алгоритму полягає в тому, що він дозволяє (без будь-яких негативних наслідків) встановлювати нульовий час заборони на оновлення маршруту (таймер hold-down). А це значно зменшує час збіжності оптимальних маршрутів (convergence time).

Шлюз за замовчуванням в IGRP

Протокол RIP пересилає інформацію про маршрут за замовчуванням точно так же, як і про інші маршрути. Цей підхід може викликати труднощі, якщо в мережі використовуються машини, на яких вручну визначено, які конкретні маршрути слід використовувати за замовчуванням. Справа в тому, що повідомлення про оновлення може замінити маршрут, сконфігурованих вручну, на маршрут, який використовується за умовчанням на іншій машині. Подібні проблеми здатні зробити маршрутизацію неефективною і породити непотрібні повідомлення про зміну маршрутів (redirect) протоколу ICMP (Internet Control Message Protocol), оскільки пакети направляються до "неправильного" шлюзу за замовчуванням.

У протоколі IGRP реалізований інший підхід: реальні мережі можуть "пропонувати" себе в якості шлюзів за замовчуванням. IGRP періодично переглядає маршрути до цих мереж і вибирає один з них - з найменшою метрикою.

Крім того, протокол IGRP дозволяє визначати так званих сусідів - пристрої, яким маршрутизатор "довіряє" і тільки від яких він буде приймати повідомлення про оновлення маршрутів. Це властивість корисно при підключенні вашої мережі до мережі іншої організації, оскільки захищає ваш маршрутизатор від прийому повідомлень про оновлення, що посилаються пристроями сторонньої мережі. Необхідно відзначити, що протокол RIP, реалізований фірмою Cisco, також підтримує цю функцію, незважаючи на її відсутність в специфікації RIP.

Нижче наведено приклад типової конфігурації протоколу IGRP на маршрутизаторі фірми Cisco.

Перший рядок визначає, що IGRP є протоколом маршрутизації для автономної системи номер 12. У більшості організацій все маршрутизирующие пристрої мають однакові номери автономної системи. Протокол IGRP не допускає обміну оновленнями між маршрутизаторами з різними номерами автономної системи.

Другий рядок встановлює наступні значення таймерів IGRP:

15 с - основний часовий інтервал, який визначає періодичність широкомовних розсилок регулярних повідомлень про оновлення;

45 с - час, після закінчення якого маршрут вважається недійсним, якщо про нього не надходить жодної нової інформації;

0 с - інтервал, протягом якого після видалення маршруту забороняється приймати повідомлення про його відновленні (таймер hold-down);

60 с - час, після закінчення якого відбувається видалення маршруту з маршрутної таблиці.

Третя і четверта рядки ідентифікують мережі, безпосередньо підключені до апарата маршрутизації. П'ятий рядок відключає механізм Hold-Down (значить, після видалення маршруту повідомлення про його відновленні може бути прийнято негайно). Шостий рядок наказує видаляти пакети, якщо вони пройшли через 50 маршрутизаторів. З одного боку, це значення (число маршрутизаторів) має бути достатньо великим, щоб підтримувати всі допустимі маршрути вашої мережі, а з іншого - його бажано зробити менше, щоб прискорити процес видалення пакетів, які потрапили в маршрутну петлю.

На початку 90-х років фірма Cisco Systems представила вдосконалений протокол IGRP (Enhanced IGRP - EIGRP), в якому спробувала об'єднати переваги протоколів маршрутизації з урахуванням стану каналів (link-state) і протоколів маршрутизації на основі довжини векторів (distance-vector). Протокол EIGRP заснований на алгоритмі поновлення Diffusing-Update Algorithm (DUAL), який визначає процедуру прийняття рішень при обчисленні всіх маршрутів. Використовуючи метрики, DUAL3 вибирає найбільш ефективні і вільні від петель шляху і вносить їх в таблицю маршрутів в якості найкращих і можливих запасних. Якщо основний маршрут стає недоступним, то задіюється запасний. Це дозволяє уникнути повторного виконання алгоритму в разі відмови будь-якої лінії зв'язку і зменшити час збіжності.

Для виявлення сусідів протокол EIGRP використовує короткі повідомлення "Hello". Поки маршрутизатор отримує такі повідомлення від сусідніх маршрутизаторів, він "вважає", що вони працюють і можуть передавати інформацію про маршрутах. Застосовуючи протокол Reliable Transport Protocol, EIGRP забезпечує гарантовану доставку повідомлень про оновлення маршрутів, не «покладаючись" при цьому на трансляцію передачу.

Важлива властивість EIGRP - підтримка маршрутизації не тільки трафіку IP, але і трафіку інших мережевих протоколів, в тому числі IPX і AppleTalk. Це дає користувачам певні переваги, оскільки дозволяє їм застосовувати в змішаних мережевих середовищах тільки один протокол маршрутизації (EIGRP).

Протокол EIGRP підтримує маски підмереж змінної довжини (Variable-Length Subnet Mask - VLSM) і розсилає інформацію про оновлення тільки при необхідності, причому лише тим маршрутизаторів, яким необхідно "знати" про що відбулися зміни. Розглянутий протокол забезпечує набагато більш швидку (в порівнянні з RIP і IGRP) збіжність оптимальних маршрутів; фахівці Cisco Systems вважають, що час збіжності навіть у великих мережах становить кілька секунд.

EIGRP - фірмовий протокол компанії Cisco Systems, і тому він добре сумісний з протоколом IGRP. Існує схема автоматичного перерозподілу маршрутної інформації між протоколами IGRP і EIGRP, крім того, можливо безпосереднє перетворення метрики IGRP в метрику EIGRP і навпаки.

Нижче наведено приклад типової конфігурації протоколу EIGRP на маршрутизатор фірми Cisco Systems.

Перший рядок визначає EIGRP як процес на маршрутизаторі для автономної системи номер 13; друга і третя - вказують на мережі, безпосередньо приєднані до даного маршрутизатора. Всі інші установки рекомендується залишати стандартними.

Протокол Open Shortest Path First (OSPF) був створений Інженерної проблемної групою Internet (Internet Engineering Task Force - IETF) в кінці 80-х років, коли стало очевидним, що RIP не здатний обслуговувати великі неоднорідні мережі. Цей відкритий стандартний протокол підтримують всі основні виробники маршрутизаторів. Він є класичним протоколом маршрутизації з урахуванням стану каналів (link-state), але забезпечує маршрутизацію тільки трафіку IP.

Протокол OSPF вимагає, щоб мережа мала ієрархічну конфігурацію, т. Е. Щоб різні області маршрутизації з'єднувалися через центральну магістраль. Причому єдиний шлях з однієї області в іншу повинен вести через магістраль. Для збільшення ефективності маршрутизації магістраль може бути фізично розривної. В цьому випадку зв'язність магістралі забезпечується за допомогою організації віртуальних з'єднань між магістральними маршрутизаторами, які призначені для підключення немагістральних областей і функціонують (при роботі з віртуальними з'єднаннями) таким чином, как-будто між ними встановлені безпосередні фізичні з'єднання.

Важлива властивість протоколу OSPF - можливість об'єднання маршрутів (route summarization). Вона дозволяє зменшити число записів в таблицях маршрутів і топологічних базах даних і знизити службовий трафік протоколу. Давайте подивимося на рис. 1. Таблиця маршрутів маршрутизатора B містить записи c інформацією про двох сусідніх подсетях (200.1.1.8 і 200.1.1.12), кожна з яких знаходиться в області 1. Оскільки маршрутизатор B розташований на кордоні областей, він може об'єднати інформацію про ці подсетях, використовуючи іншу маску. Таким чином, для зв'язку з обома подсетями маршрутизатор C повинен мати тільки один запис в таблиці маршрутів.

У світі OSPF існують три типи маршрутизаторів: магістральні, інтерфейси яких "виходять" на магістраль; міжобласні, з'єднані з кількома областями; внутрішні, все безпосередні з'єднання яких лежать в межах однієї області.

Нижче наведено приклад типової конфігурації внутрішнього або магістрального процесу OSPF на маршрутизаторі фірми Cisco Systems (рис. 2).

Перший рядок визначає OSPF як процесу маршрутизації з ідентифікатором, рівним 50. Це внутрішній ідентифікатор кожного примірника процесу OSPF, запущеного на маршрутизаторі.

Другий рядок визначає інтерфейси, які будуть брати участь в процесі маршрутизації OSPF. В даному випадку все три інтерфейсу маршрутизатора належать мережі 140.8.0.0. Маску (в нашому прикладі 0.0.255.255) можна розглядати як инверсную маску підмережі. Вона закриває всі біти третього і четвертого байта і використовується для визначення того, чи буде для конкретного інтерфейсу використовуватися протокол OSPF. У другому рядку також визначена область, до якої належить маршрутизатор (в даному випадку це область 0, що означає магістраль).

Наведемо приклад типової конфігурації міжобласного процесу OSPF на маршрутизаторі фірми Cisco Systems (рис. 3).

Перерозподіл інформації про маршрути

При створенні мережі, в якій всю відповідальність за маршрутизацію трафіку нестимуть маршрутизатори, ви можете вибрати один з протоколів IGRP, EIGRP або OSPF і використовувати тільки його як протоколу маршрутизації. Але набагато частіше ситуація інша: потрібно модернізувати мережу, де вже застосовується якийсь протокол маршрутизації. Наприклад, деякі функції маршрутизації зазвичай виконують Unix-системи, а багато хто з них підтримують тільки RIP. Тому виникає питання: скільки протоколів маршрутизації постійно або тимчасово (на час модернізації) можуть співіснувати в одній мережі?

З відповіддю на це питання найтіснішим чином пов'язаний механізм перерозподілу (redistribution). Маршрутизатор можна конфігурувати так, що він буде виконувати кілька протоколів маршрутизації і перерозподіляти інформацію про маршрути між ними. Нижче наведено приклад включення маршрутів, отриманих c допомогою протоколу RIP, в маршрутні таблиці протоколу IGRP4. Ми взяли певну вище конфігурацію протоколу IGRP.

Потім додали до неї такі інструкції щодо перерозподілу.

П'ять значень, наступних за ключовим словом default-metric, - це метрики, які будуть розіслані в IGRP-поновлення для маршрутів, отриманих від протоколу RIP. Наведені тут значення обрані випадковим чином. На практиці відповідні значення метрик IGRP підбирають для кожної конкретної ситуації.

Якщо ваша мережа побудована на базі маршрутизаторів фірми Cisco Systems, то в якості протоколів маршрутизації можна вибрати IGRP, EIGRP або OSPF. У більшості випадків цілком прийнятно використання протоколу IGRP, який найбільш зрозумілий мережевим адміністраторам, вже знайомим з RIP. Протоколи EIGRP і OSPF здатні забезпечити менший час збіжності оптимальних маршрутів, але налаштовувати їх складніше. Крім того, для досягнення належної продуктивності ці протоколи зажадають від маршрутизатора більшого об'єму оперативної пам'яті і більш швидкий процесор. Якщо потрібно забезпечити маршрутизацію в середовищі IP і ви не застосовуєте обладнання фірми Cisco Systems, то в більшості випадків вам слід використовувати протокол OSPF, а не RIP.

На закінчення відзначимо, що в плані ефективного налаштування, адміністрування і виявлення несправностей OSPF є, ймовірно, найбільш складним протоколом маршрутизації. Однак він забезпечує найменший час збіжності оптимальних маршрутів і дуже стабільний