logo search
Internet

Динамічна маршрутизація.

Динамічна маршрутизація – це автоматичне керування таблицею маршрутів на основі інформації, отриманої з мережі. Розглянемо дворівневу модель, в рамках якої розглядається вся множина машин Internet. Весь Internet розглядається як множина автономних систем – Autonomous System (AS). Автономна система – це множина комп’ютерів, які утворюють тісне співтовариство, де існує багато маршрутів між двома комп’ютерами, які належать до цього співтовариства. В рамках цього співтовариства можна говорити про оптимізацію маршрутів з метою досягнення максимальної швидкості передачу інформації. В протилежність цьому самі автономні системи зв’язані між собою не так тісно, як комп’ютери всередині AS. Вибір маршруту між автономними системами може ґрунтуватись не швидкості обміну інформацією, а на надійності, безвідказності, і т.д. звідси витікає існування двох типів протоколів динамічної маршрутизації:

  1. Зовнішні протоколи – служать для обміну інформацією про маршрути між автономними системами.

  2. Внутрішні протоколи - – служать для обміну інформацією про маршрути всередині автономної системи.

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

Зовнішні протоколи.

До зовнішніх протоколів відносяться:

Протокол BGP використовують всі великі вузли мережі Relcom.

Внутрішні протоколи.

До внутрішніх протоколів відносяться:

Протокол RIP призначений для автоматичного оновлення таблиць маршрутів, при цьому використовується інформація про стан мережі, яка розсилається маршрутизаторами routers. У відповідності з протоколом RIP довільна машина може бути маршрутизатором. Всі маршрутизатори діляться на активні і пасивні. Активні повідомляють про маршрути, які вони підтримують в мережі. Пасивні – читають ці широкомовні повідомлення, виправляють свої таблиці маршрутів, але самі інформацію в мережу не надають. В якості активних маршрутизаторів виступають шлюзи, в якості пасивних – звичайні комп’ютери – хости.

В основу алгоритму маршрутизації за протоколом RIP покладені прості ідеї:

  1. Чим більше шлюзів треба пройти пакету, тим більше часу вимагається для проходження маршруту. При обміні повідомленнями маршрутизатори повідомляють а мережу ІР номер мережі і кількість стрибків (hops), які треба зробити, використовуючи даний маршрут. Але такий алгоритм буде справедливий тільки для мереж, у яких однакова швидкість передачі по довільному сегменті мереж. Часто виявляється що значно вигідніше скористатися оптоволоконнною лінією з 3-ма шлюзами ніж одним телефонним каналом, який комутується.

  2. Треба враховувати не тільки кількість стрибків, але і час відгуку. Але в протоколі RIP кожний маршрутизатор обмінюється інформацією тільки з сусідами. Тому інформацію про втрату маршруту мережі, яка знаходиться на відстані декількох стрибків (хопсів) від даної локальної мережі буде отримана із запізненням.

Існує так звана лавинна маршрутизація, яка дозволяє розв’язати цю проблему за рахунок оповіщення всіх відомих шлюзів про зміни в локальній ділянці мережі. Бажано підтримувати і перший і другий підхід. Але багатоваріантну маршрутизацію підтримує не дуже багато систем. Всі версії UNIX і Windows NT орієнтовані на протокол RIP.

Програмне забезпечення динамічної маршрутизації таке:

routed – підтримує тільки RIP

gated – підтримує RIP, HELLO, OSDF, EGP, BGP

Тому розглядаємо динамічне керування таблицею маршрутів тільки стосовно до протоколу RIP.

Програма routed запускається в момент завантаження ОС. Але часто буває корисним при початковому завантаженні ініціалізувати таблицю маршрутів і вилучити рядки, які не можна вилучати ні при яких обставинах, наприклад призначення шлюзу по замовчуванню. Для цього можна використати файл etc/gateway, який програма routed проглядає при запуску і використовує при початковій настройці таблиці маршрутів. Вміст цього файлу виглядає наступним чином:

1 2 3 4

Net 0.0.0.0. gateway 144.206.136.10 metric 1 passive

[active]

1 – визначення адреси замовчування

2 – машина-шлюз, яка вибирається по замовчуванню

3 – кількість “хопів” до цього шлюзу

4 – в полі 4 passive, якщо навіть з цього шлюзу ніякої інформації про маршрут не надходить, то його все одно не треба вилучати з таблиці маршрутів якщо шлюз тільки один; active – якщо можна використати інші шлюзи, і ці шлюзи активно сповіщають машини мережі про свої таблиці маршрутів. В цьому випадку пасивний шлюз з таблиці маршрутів буде вилучено, а той, який може виконувати функції реального шлюзу, буде включений в таблицю.

Програма gated – це модульна програма для організації багатофункціонального шлюза, який би міг обслуговувати як зовнішню, так і внутрішню маршрутизацію. Gated настроюється за допомогою свого файлу конфігурації /etc/gated.conf , в ньому пишуться всі команди настройки, які gated перевіряє при запуску.

Приклад використання gated в локальній мережі:

  1. Використання замість gated на звичайній машині.

При роботі на звичайній машині системі треба тільки вказати інтерфейс та протокол динамічної маршрутизації, який gated повинна використати:

# Interface shouldn’t be removed from routing table

Interface 144.206.160.40 passive

# routing protocol is rip

rip yes

В більшості випадків достатньо просто вказати протокол, оскільки інтерфейс попадає в таблицю маршрутизації після виконання команди ifconfig.

  1. Використання gated на машині, що є шлюзом в іншу мережу.

При настройці gated на машині – шлюзі можна також обмежитись тільки вказівкою на протокол RIP і все буде працювати. Але якщо треба зберегти маршрути через інтерфейси в таблиці маршрутів, то у файлі конфігурації треба вказати обидва інтерфейси:

interface 144.206.160.32 passive

interface 144.206.160.137 passive

# routing protocol is rip

rip yes

Але можна використати більш складний опис, який ґрунтується на логіці роботи gated. А логіка ця полягає в тому, що gated оголошує сусіднім шлюзам за протоколом RIP що підмережа 144.206.160.0 доступна через інтерфейс 144.206.130.137, в свою чергу для цієї підмережі gated оголошує, що через інтерфейс 144.206.160.32 доступний весь світ. Тоді опис маршрутів буде такий:

rip yes

export proto rip interface 144.206.130.137

{proto direct

{announce 144.206.160.0 metric 0 };

};

export proto rip interface 144.206.160.32

{proto rip interface 144.206.130.137

{announce all };

};

Перша команда export анонсує підмережу 144.206.160.0 через інтерфейс 144.206.130.137 при цьому повідомляється, що це шлюз в дану підмережу, тобто інтерфейс 144.206.130.137 розташований на машині, яка включена в цю підмережу. Про те, що пакет для підмережі треба посилати безпосередньо на цей інтерфейс каже команда proto direct, а про те, що інтерфейс стоїть на шлюзі в підмережі каже метрика = 0.

Друга команда export повідомляє всім машинам підмережі через інтерфейс 144.206.160.32 всі маршрути які даний шлюз отримує з підмережі 144.206.130.0 через інтерфейс 144.206.130.137. фактично виконується наскрізна пересилка цієї інформації всередину системи. При написанні команд export треба пам’ятати, що зовнішнє речення визначає завжди інтерфейс, через який повідомляється інформація, а внутрішнє речення визначає джерело, через яке цю інформацію отримає gated.