Теоретичні відомості про маршрутизацію для IPv6

Розглянемо деякі особливості маршрутизації, які враховуються при реалізації протоколу IPv6.

Як відомо, мережний рівень моделі Взаємодії Відкритих Систем (OSI) забезпечує з’єднання та вибір маршруту між двома кінцевими системами, які можуть знаходитись в географічно рознесених мережах [5]. При цьому постає запитання: яким чином відбувається вибір проміжних хост-машин (застаріла назва, з врахуванням теми роботи в подальшому буде використовуватись термін „вузол”) в процесі встановлення і підтримки з’єднань? Протокол IPv4 [1] як і IPv6 [6] прямої відповіді на це питання не дає: „Функція або мета протоколу Internet в тому аби передати дейтаграми (застаріла назва, в подальшому буде використовуватись термін „пакет”) через множину з’єднаних між собою комп’ютерних мереж. Це відбувається за рахунок передавання пакетів від одного модуля Internet до другого до тих пір, поки не буде досягнуто одержувача”.

Маршрутизація це є процес вибору (за певним критерієм) маршруту при з’єднанні двох кінцевих систем.

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

Маршрутизація включає в себе два основних компоненти: визначення оптимальних маршрутів і транспортування пакетів через об’єднану мережу. Ці компоненти реалізуються протоколом маршрутизації завдяки інформації, яка отримана з протоколу, що маршрутизується. Протоколи маршрутизації визначають алгоритми, які виконуються на спеціальних вузлах – маршрутизаторах.

Маршрутизатором, або шлюзом (застаріла назва), називається вузол зв’язку з декількома IP-інтерфейсами, підключеними до різних IP-мереж, який виконує на основі рішення задачі маршрутизації перенаправлення пакетів з однієї мережі в іншу для доставки від відправника до одержувача.

Більш строго, маршрутизатор (router) – проміжна система мережного рівня, яка з’єднує окремі мережі на основі загального протоколу мережного рівня.

Розрізняють апаратні і програмні маршрутизатори.

Апаратний маршрутизатор (hardware router) – мережний пристрій, розрахований тільки на виконання маршрутизації і апаратно оптимізований для цієї задачі. Прикладом є продукція компанії Cisco Systems.

Програмний маршрутизатор (software router) – мережний пристрій, який виконує маршрутизацію лише як одну із множини своїх функцій. Програмним маршрутизатором може бути комп’ютер під управлінням ОС Windows 2000/2003 Server і служби маршрутизації, або (що частіше) практично будь-який з клонів ОС Unix.

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

В даній роботі не буде різниці між апаратними і програмними маршрутизаторами, окрім випадків, оговорених окремо.

Основна функція маршрутизаторів, яка присутня у всіх реалізаціях IP:

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

Для прикладу розглянемо рис.

Операція IP-маршрутизації

Операція IP-маршрутизації

Вузли A і B знаходяться в різних мережах – X та Y. Всі пакети, які спрямовані від вузла A до B (або навпаки, від B до A) повинні пройти через вузол C, оскільки тільки цей вузол під’єднано одночасно до мереж X та Y. В такому випадку вузол C діє як маршрутизатор для вказаних мереж. Необхідно зауважити, що вузол С деінкапсулює транзитні пакети лише до рівня Інтернет (Мережний рівень моделі OSI). Тому іноді маршрутизатори називають комутаторами третього рівня (Сьогодні так прийнято називати апаратні маршрутизатори).

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

Для наведеного вище рис.  таблиця маршрутів вузла А буде мати вигляд:

Мережа призначення Прапор виду маршрутизації Шлюз Інтерфейс
X пряма <порожньо> X
Y непряма С X

Для вузла B таблиця буде практично ідентична, але вузол С, який діє як маршрутизатор, має таку таблицю маршрутів:

Мережа призначення Прапор виду маршрутизації Шлюз Інтерфейс
X пряма <порожньо> X
Y пряма <порожньо> Y

Прапор виду маршрутизації визначає яким чином буде виконуватись просування пакету. Для випадку прямої маршрутизації, вузол при інкапсуляції на канальному рівні в полі фізичної адреси (MAC-адреси для мережі Ethernet, наприклад) підставить фізичну адресу одержувача (з ARP-таблиці для випадку мережі Ethernet). При цьому обмін інформацією буде відбуватись без особливих зауважень, оскільки вузол відправника і вузол одержувача знаходяться в одній мережі. Більше того, в такому випадку інформація рівня Інтернет є надлишковою, оскільки не несе в собі жодних відомостей які б були корисні одержувачу. Зовсім інакше відбувається процес передавання інформації, якщо відправник і одержувач знаходяться в різних мережах.

При непрямій маршрутизації замість фізичної адреси одержувача буде підставлено фізичну адресу шлюзу, IP-адресу якого вказано в таблиці маршрутів в колонці „Шлюз”. Маршрутизатор, при отриманні пакету, в якому вказано його фізичну адресу, деінкапсулює його. Далі він зчитує IP адресу одержувача, вказану в пакеті, та визначає чи не збігається ця адреса з власною адресою маршрутизатора, широкомовною або якою-небудь з групових адрес. Як маршрутизатор, вузол С володіє здатністю просування (forwarding) даних. Тому після отримання пакету, в якому вказана IP-адреса, що не збігається з власною, він запускає алгоритм маршрутизації для вирішення того куди далі направити пакет. В прикладі (див. рис. 1.3), маршрутизатор С, після отримання пакету від вузла А з IP-адресою призначення вузла В, виконує процедуру перегляду таблиці маршрутів і визначає, що потрібно використовувати пряму маршрутизацію через інтерфейс Y.

Таким чином, алгоритм маршрутизації можливо записати як наступну послідовність дій:

  1. Для пакетів, що відправляються, надходячи від модулів верхнього рівня, модуль IP має визначити спосіб доставки – прямий чи непрямий, а також вибрати мережний інтерфейс. Цей вибір здійснюється на основі результатів пошуку в таблиці маршрутів.
  2. Для пакетів, що приймаються, надходячи від драйверів мережі, модуль IP має вирішити, чи потрібно ретранслювати IP-пакет по іншій мережі чи передати його на верхній рівень. Якщо модуль IP вирішує що IP-пакет має бути ретрансльовано, то подальша робота з ним відбувається так само як і з пакетами, що відправляються.
  3. Вхідний IP-пакет ніколи не ретранслюється через той самий інтерфейс, через який його отримано.
  4. Рішення про маршрутизацію приймається до того, як IP-пакет буде передано драйверу мережі, і до того як відбувається звернення до ARP-таблиці.

5. Межсетевое взаимодействие. Ресурсы Microsoft Windows 2000 Server/ Пер. с англ. – М.: Издательско-торговый дом «Русская Редакция», 2002. – 736 с.: ил.

6. S. Deering, R. Hinden., “Internet Protocol, Version 6 (IPv6) Specification”, RFC 2460, December 1998.

Далі – “Схема розподілу адрес

Опубліковано на сайті: “IPv6 українською

Advertisements

4 Responses to Теоретичні відомості про маршрутизацію для IPv6

  1. Anatoly коментує:

    Дуже приемно, що є такий ресурс, щей на рідній мові. Дякую

  2. ipv6ua коментує:

    Будь ласка.
    Але це ще не все. Приблизно 20% матеріалу потрібно доопрацювати (точніше, оновити, бо робота писалась майже 5 років тому), а потім все це обов’язково з’явиться на цьому блозі. Так що слідкуйте за оновленнями.

  3. virilis коментує:

    Суперовий ресурс! Щиро дякую!

    P.S. В тексті є помилка, замість “маршрутизуємого протоколу” слід писати “протоколу, що маршрутизується”.

Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: