Маршрутизація за допомогою IP-адрес
Розглянемо тепер принципи, на підставі яких в мережах IP відбувається вибір маршруту передачі пакету між мережами.
Спочатку необхідно звернути увагу на той факт, що не тільки маршрутизатори, але і кінцеві вузли - комп'ютери - повинні брати участь у виборі маршруту.
Довжина маршруту може істотно змінитися залежно від того, який маршрутизатор вибере комп'ютер для передачі свого пакету на сервер, розташований, наприклад, в Німеччині, якщо маршрутизатор 1 сполучений виділеною лінією з маршрутизатором в Копенгагені, а маршрутизатор 2 має супутниковий канал, що сполучає його з Токіо.
В стеку TCP/IP маршрутизатори і кінцеві вузли ухвалюють рішення про те, кому передавати пакет для його успішної доставки вузлу призначення, на підставі так званих таблиць маршрутизації (routing tables).
Наступна таблиця є типовим прикладом таблиці маршрутів, що використовує IP-адреси мереж:
Адреса мережі призначення | Адреса наступного маршрутизатора | Номер вихідного порту. Відстань до мережі призначення |
56.0.0.0 | 198.21.17.7 | |
56.0.0.0 | 213.34.12.4. | |
116.0.0.0 | 213.34.12.4 | |
129.13.0.0 | 198.21.17.6 | |
198.21.17.0 | - | |
213. 34.12.0 | - | |
default | 198.21.17.7 |
|
(Альтернативою одно кроковому підходу є вказівка в пакеті всієї послідовності маршрутизаторів, які пакет повинен пройти на своєму шляху. Такий підхід називається маршрутизацією від джерела - Source Routing. В цьому випадку вибір маршруту проводиться кінцевим вузлом або першим маршрутизатором на шляху пакету, а вся решта маршрутизаторів тільки відпрацьовує вибраний маршрут, здійснюючи комутацію пакетів, тобто передачу їх з одного порту на іншій. Алгоритм Source Routing застосовується в мережах IP тільки для від ладки, коли маршрут задається в полі Резерв (IP OPTIONS) пакету.)
У випадку, якщо в таблиці маршрутів є більше одного рядка, відповідної одній і тій же адресі мережі призначення, то при ухваленні рішення про передачу пакету використовується той рядок, в якому вказано якнайменше значення в полі "Відстань до мережі призначення".
При цьому під відстанню розуміється будь-яка метрика, що використовується відповідно до заданим в мережному пакеті класу сервісу. Це може бути кількість транзитних маршрутизаторів в даному маршруті (кількість хопов від hop - стрибок), час проходження пакету по лініях зв'язку, надійність ліній зв'язку, або інша величина, що відображає якість даного маршруту по відношенню до конкретного класу сервісу. Якщо маршрутизатор підтримує декілька класів сервісу пакетів, то таблиця маршрутів складається і застосовується окремо для кожного виду сервісу (критерію вибору маршруту).
Для відправки пакету наступному маршрутизатору потрібне знання його локальної адреси, але в стеку TCP/IP в таблицях маршрутизації прийнято використовування тільки IP-адрес для збереження їх універсального формату, не залежного від типу мереж, що входять в інтермережу. Для знаходження локальної адреси по відомій IP-адресі необхідно скористатися протоколом ARP.
Кінцевий вузол, як і маршрутизатор, має в своєму розпорядженні таблицю маршрутів уніфікованого формату і на підставі її даних ухвалює рішення, якому маршрутизатору потрібно передавати пакет для мережі N. Рішення про те, що цей пакет потрібно взагалі маршрутизувати, комп'ютер приймає у тому випадку, коли він бачить, що адреса мережі призначення пакету відрізняється від адреси його власної мережі (кожному комп'ютеру при конфігуруванні адміністратор привласнює його IP-адресу або декілька IP-адрес, якщо комп'ютер одночасно підключений до декількох мереж). Коли комп'ютер вибрав наступний маршрутизатор, то він проглядає кеш-таблицю адрес свого протоколу ARP і, можливо, знаходить там відповідність IP-адреси наступного маршрутизатора його MAC-адресі. Якщо ж ні, то по локальній мережі передається широкомовний ARP-запит і локальна адреса витягується з ARP-відповіді.
Після цього комп'ютер формує кадр протоколу, що використовується на вибраному порту, наприклад, кадр Ethernet, в який поміщає МАС-адресумаршрутизатора. Маршрутизатор приймає кадр Ethernet, витягує з нього пакет IP і проглядає свою таблицю маршрутизації для знаходження наступного маршрутизатора. При цьому він виконує ті ж дії, що і кінцевий вузол.
Одно крокова маршрутизація володіє ще однією перевагою - вона дозволяє скоротити об'єм таблиць маршрутизації в кінцевих вузлах і маршрутизаторах за рахунок використовування як номер мережі призначення так званого маршруту за умовчанням - default, який звичайно займає в таблиці маршрутизації останній рядок. Якщо в таблиці маршрутизації є такий запис, то всі пакети з номерами мереж, які відсутні в таблиці маршрутизації, передаються маршрутизатору, вказаному в рядку default. Тому маршрутизатори часто бережуть в своїх таблицях обмежену інформацію про мережі інтермережі, пересилаючи пакети для решти мереж в порт і маршрутизатор, що використовуються за умовчанням. Мається на увазі, що маршрутизатор, що використовується за умовчанням, передасть пакет на магістральну мережу, а маршрутизатори, підключені до магістралі, мають повну інформацію про склад інтермережі.
Особливо часто прийомом маршрутизації за умовчанням користуються кінцеві вузли. Хоча вони також в загальному випадку мають в своєму розпорядженні таблицю маршрутизації, її об'єм звичайно незначний, оскільки маршрутизація для комп'ютера - не основне заняття. Головна роль в маршрутизації пакетів в концепції протоколу IP відводиться, природно, маршрутизаторам, які повинні володіти набагато більш повними таблицями маршрутизації, ніж кінцеві вузли. Кінцевий вузол часто взагалі працює без таблиці маршрутизації, маючи тільки відомості про IP-адресу маршрутизатора за умовчанням. За наявності одного маршрутизатора в локальній мережі цей варіант - єдино можливий для всіх кінцевих вузлів. Але навіть за наявності декількох маршрутизаторів в локальній мережі, коли проблема їх вибору стоїть перед кінцевим вузлом, завдання маршруту за умовчанням часто використовується в комп'ютерах для скорочення об'єму їх маршрутної таблиці.
Іншим способом розвантаження комп'ютера від необхідності ведення великих таблиць маршрутизації є отримання від маршрутизатора відомостей про раціональний маршрут для якої-небудь конкретної мережі за допомогою протоколу ICMP.
Окрім маршруту default, в таблиці маршрутизації можуть зустрітися два типи спеціальних записів - запис про специфічному для вузла маршруту і запис про адреси мереж, безпосередньо підключених до портів маршрутизатора.
|
Записи в таблиці маршрутизації, що відносяться до мереж, безпосередньо підключеним до маршрутизатора, в полі "Відстань до мережі призначення" містять нулі.
Ще однією відмінністю роботи маршрутизатора і кінцевого вузла при виборі маршруту є спосіб побудови таблиці маршрутизації. Якщо маршрутизатори звичайно автоматично створюють таблиці маршрутизації, обмінюючись службовою інформацією, то для кінцевих вузлів таблиці маршрутизації створюються, як правило, вручну адміністраторами, і зберігаються у вигляді постійних файлів на дисках.
Існують різні алгоритми побудови таблиць для одно крокової маршрутизації. Їх можна розділити на три класи:
· алгоритми фіксованої маршрутизації
· алгоритми простої маршрутизації
· алгоритми адаптивної маршрутизації.
Незалежно від алгоритму, що використовується для побудови таблиці маршрутизації, результат їх роботи має єдиний формат. За рахунок цього в одній і тій же мережі різні вузли можуть будувати таблиці маршрутизації по своїх алгоритмах, а потім обмінюватися між собою бракуючими даними, оскільки формати цих таблиць фіксовані. Тому маршрутизатор, що працює по алгоритму адаптивної маршрутизації, може забезпечити кінцевий вузол, алгоритм фіксованої маршрутизації, що застосовує, відомостями про шлях до мережі, про яку кінцевий вузол нічого не знає.
Фіксована маршрутизація
Цей алгоритм застосовується в мережах з простою топологією зв'язків і заснований на ручному складанні таблиці маршрутизації адміністратором мережі. Алгоритм часто ефективно працює також для магістралей крупних мереж, оскільки сама магістраль може мати просту структуру з очевидними якнайкращими шляхами проходження пакетів в під мережі, приєднані до магістралі.
Розрізняють одно маршрутні таблиці, в яких для кожного адресата заданий один шлях, і багато маршрутні таблиці, визначальні декілька альтернативних шляхів для кожного адресата. При використовуванні багато маршрутних таблиць повинно бути задано правило вибору одного з них. Частіше всього один шлях є основним, а інші - резервними.
Проста маршрутизація
Алгоритми простої маршрутизації підрозділяються на три підкласи:
- Випадкова маршрутизація - пакети передаються в будь-кому, випадковому напрямі, окрім початкового.
- Лавинна маршрутизація - пакети передаються на всіх напрямках, окрім початкового (застосовується в мостах для пакетів з невідомою адресою доставки).
- Маршрутизація по попередньому досвіду - таблиці маршрутів складаються на підставі даних, що містяться в проходячих через маршрутизатор пакетах. Саме так працюють прозорі мости, збираючи відомості про адреси вузлів, що входять в сегменти мержі. Такий спосіб маршрутизації володіє адаптивністю повільним до змін топології мережі.
Адаптивна маршрутизація
Це основний вид алгоритмів маршрутизації, що застосовуються маршрутизаторами в сучасних мережах зі складною топологією. Адаптивна маршрутизація заснована на тому, що маршрутизатори періодично обмінюються спеціальною топологічною інформацією про інтермережі в мережі, а також про зв'язки між маршрутизаторами. Звичайно враховується не тільки топологія зв'язків, але і їх пропускна спроможність і стан.
Адаптивні протоколи дозволяють всім маршрутизаторам збирати інформацію про топологію зв'язків в мережі, оперативно відпрацьовувати всі зміни конфігурації зв'язків. Ці протоколи мають розподілений характер, який виражається в тому, що в мережі відсутні які-небудь виділені маршрутизатори, які б збирали і узагальнювали топологічну інформацію: ця робота розподілена між всіма маршрутизаторами.