Лекція 21. Прискорення ІР-маршрутизації

IP-протокол (Internet Protocol; тж «інтернет протокол», «міжмережевий протокол») — протокол мережевого рівня для передавання датаграм між мережами.

IP-протокол — найпоширеніша реалізація ієрархічної схеми мережевої адресації. Використовуваний в мережі Інтернет, протокол відповідає за адресацію пакетів, але не відповідає за встановлення з'єднань, не є надійним і дозволяє реалізувати тільки негарантовану доставку даних. Термін «протокол без встановлення з'єднань» (англ. connectionless) означає, що протокол для взаємодії не потребує виділеного каналу, як це відбувається під час телефонної розмови і не існує процедури виклику перед початком передачі даних між мережевими вузлами. Протокол IP вибирає найефективніший шлях з числа доступних на основі рішень прийнятих протоколом маршрутизації. Відсутність надійності і негарантована доставка не означає, що система працює погано або ненадійно, а вказує лиш на те, що протокол IP не докладає ніяких зусиль, щоб перевірити чи був пакет доставлений за призначенням. Ці функції делеговані протоколам транспортного та вищих рівнів. Транспортний рівень також відповідає за збірку пакетів у повідомлення в потрібній послідовності.

 

21.1. Пересилка пакетів і комутація всередині маршрутизатора

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

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

Процеси, виконувані пристроями третього рівня, проілюстровані на малюнку справа.

Зміна пакету в процесі інкапсуляції в маршрутизаторі

Із фрейму, що приходить на інтерфейс роутера, витягається MAC-адреса і перевіряється, адресований цей пакет безпосередньо якомусь вузлу чи інтерфейсу, чи він є широкомовним (ця процедура виконується всіма пристроями всередині домену колізій). В будь-якому з цих випадків пакет буде оброблено, в іншому — відкинуто, оскільки він адресований іншому вузлу в домені колізій. Таким чином, домен колізій — розподілене середовище передачі даних, в якому пристрої працюють в режимі конкуренції. На основі значення, що зберігається в полі контрольної суми, за допомогою циклічного збиткового коду (Cyclical Redundancy Check — CRC), що був вилучений з хвоста отриманого фрейму, перевіряється чи були дані пошкоджені. Якщо перевірка дає позитивний результат — фрейм відкидається. У випадку негативного результату, заголовок і хвіст фрейму відкидаються і пакет передається на третій рівень. Далі виконується перевірка, чи було пакет адресовано маршрутизатору, чи потрібна подальша маршрутизація на шляху до місця призначення. Пакети, адресовані роутеру як IP-адреса отримувача, мають адресу одного з його інтерфейсів. У таких пакетів видаляється заголовок і вони передаються на четвертий, транспортний рівень. Якщо пакет потребує маршрутизації, IP-адреса пункту призначення пакету порівнюється з записами в таблиці маршрутизації. Якщо знайдено точну відповідність або існує стандартний маршрут, — пакет відправляється на інтерфейс, що вказано в таблиці маршрутизації. Коли пакет комутується на вихідний інтерфейс, нове значення CRC додається у хвіст фрейму і, в залежності від типу інтерфейсу (Ethernet, Frame relay або послідовний), пакету додається відповідний заголовок. Після чого фрейм пересилається в інший широкомовний домен на шляху до кінцевого пункту призначення.

 

21.2. IPv6

IPv6 (Internet Protocol version 6) — нова версія IP-протоколу — IP версії 6. Розробка протоколу IPv6 почалася 1992 року, а з 2003 р. його підтримку забезпечують виробники більшості телекомунікаційного устаткування (корпоративного рівня). IPv6 — новий крок у розвитку Інтернету. Цей протокол розроблено з урахуванням вимог до Глобальної мережі, що постійно зростають. 3 лютого 2011 року IANA виділила останні п'ять блоків IP-адрес /8 (IPv4).

Найбільш суттєва різниця між IPv4 та IPv6 полягає в тому, що раніше на інтернет-адресу виділяли 4 байти (32 біта), що відповідає стандартній на сьогодні чотирьохблоковій адресі IP, а протокол IPv6 виділяє на адресу 16 байтів (128 біт). Це відповідає 340 трильйонам адрес (3,4x1038) або по 5x1028 адрес на кожну людину.

Вночі 5 лютого 2008 року організація ICANN, яка наглядає за використанням інтернет-протоколів, почала додавати в DNS-сервери записи, що містять адреси у форматі протоколу IPv6. Це поклало початок переходу з нинішнього протоколу IPv4 на сучасніший IPv6.

У квітні 2009 у мережі UA-IX запущено процес перевірки протоколу IPv6. У числі перших компаній, що ухвалили рішення про участь в тестуванні — «ТопНЕТ» і «Датагруп». Вони встановили IPv6 BGP-з'єднання з маршрутизатором UA-IX, і здійснили обмін маршрутною інформацією між ними. У квітні 2011 розпочалось масове впровадження IPv6 серед домашніх користувачів інтернет.

 

21.3. Історія виникнення IPv6

Наприкінці 1980-х стала очевидною нестача адресного простору Інтернет. На початку 1990-х, навіть після введення безкласової адресації, виявилось, що однієї економії та використання NAT'у буде замало для попередження вичерпання адресного простору, і необхідна зміна адресації. Крім того, накопичилась певна кількість пропозицій щодо усунення недоліків наявної моделі Інтернет. Наприкінці 1992 року IETF оголосила конкурс на створення протоколу Інтернет наступного покоління (англ. IP Next Generation — IPng). 25 липня 1994 року IETF ствердила модель IPng з утворенням кількох робочих груп IPng. У 1996 було створено серію RFC, що визначали новий протокол Інтернет. Оскільки версія 5 вже була раніше призначена експериментальному протоколу передачі мультимедійних потоків, новий протокол отримав версію 6.

Вичерпання IPv4 адрес

Оцінки повного вичерпання IPv4 адрес розрізнялись в 2000-х, але потім всі оцінки збігалися до 2011 року. У 2003 році директор APNIC Пол Уілсон (англ. Paul Wilson) заявив, що, виходячи з темпів поширення мережі Інтернет того часу, вільного адресного простору вистачить на одне-два десятиріччя. У вересні 2005 року Cisco Systems відзначила, що пула доступних адрес вистачить на 4—5 років. У вересні 2010, виходячи з даних IANA, весь пул адрес IPv4 буде розподілено реєстратурам (RIR) до середини 2011 року, в листопаді ця дата була перенесена на березень 2011. 3 лютого 2011 року IANA виділила останні п'ять блоків IP-адрес /8 (IPv4).

Тестування протоколу

8 червня 2011 року відбувся Міжнародний день IPv6 — захід з тестування готовності світової інтернет-спільноти до переходу з IPv4 на IPv6, в рамках якого компанії-учасники додали до своїх сайтів IPv6-записи на один день. Тестування пройшло вдало, накопичені дані будуть проаналізовані та враховані при наступному впровадженні протоколу і для підготовки рекомендацій.

Впровадження протоколу

Переведення на IPv6 почало виконуватись всередині Google з 2008 року. У специфікації стандарта мобільних мереж LTE вказана обов'язкова підтримка IPv6. Проблемою для впровадження IPv6 є те, що не всі операційні системи повністю підтримують протокол IPv6.

 

21.4. Порівняння з IPv4

Розширення адресного простору скасовує необхідність використання NAT, оскільки на кожну людину припадає близько 3*108 унікальних адрес.

Принцип призначення хосту IPv6 адреси є ієрархічним. Мінімальний розмір підмережі — /64 (264). Молодша частина адреси (64 біти) використовується як унікальний ідентифікатор користувача, наступна частина визначає підмережу всередині оператора зв'язку, далі йде ідентифікатор самого оператора. Такий підхід значно спрощує маршрутизацію.

З IPv6 вилучено кілька функцій, що ускладнюють роботу маршрутизаторів:

Маршрутизатори більше не розбивають (фрагментують) пакет на частини (розбиття пакета можливо тільки на боці передавача). Відповідно, оптимальний MTU має визначатися за допомогою Path MTU discovery. Для покращення роботи протоколів, що потребують низького рівня втрати пакетів, мінімальний MTU збільшено до 1280 байт. Інформацію про фрагментацію пакетів перенесено з основного заголовку в розширені;

Зникла контрольна сума. Оскільки канальні (Ethernet) та транспортні (TCP) протоколи також перевіряють коректність пакета, контрольна сума на рівні IP вважається зайвою. Крім того, кожен маршрутизатор зменшує hop limit на одиницю, що призводить до потреби у перерахуванні суми в IPv4.

Незважаючи на суттєве збільшення розміру адреси IPv6, завдяки цим покращенням основний заголовок пакета збільшився лише у 2 рази: з 20 до 40 байт.

Покращення IPv6 у порівнянні з IPv4:

  • В надшвидкісних мережах можлива підтримка надвеликих пакетів (джамбограм) — до 4 гігабайт;
  • Time to Live перейменовано в Hop limit;
  • З'явились відмітки потоків та класи трафіку;
  • З'явилась багатоадресна передача;
  • Протокол IPsec з рекомендованого перетворився на обов'язковий.

Автоконфігурація

У момент ініціалізації мережевого інтерфейсу йому призначується локальна IPv6-адреса, з префіксом fe80::/10, у молодшій частині адреси розміщується ідентифікатор інтерфейсу. Ідентифікатором інтерфейсу часто слугує 64-бітний розширений унікальний ідентифікатор EUI-64[en], що найчастіше формується з MAC адреси. Локальна адреса дійсна тільки в межах мережевого сегменту канального рівня, і використовується, в основному, для обміну інформаційними ICMPv6 пакетами.

Для отримання інших адрес вузол може запросити інформацію про налаштування мережі у маршрутизаторів за допомогою ICMPv6 повідомлення «Router Solicitation». Цей запит відсилається на групову (multicast) адресу маршрутизаторів. У відповідь маршрутизатори відсилають ICMPv6 повідомлення «Router Advertisement», що може містити інформацію про префікс мережі, адресу шлюзу, адреси рекурсивних серверів DNS[3], MTU та багато інших параметрів. Поєднуючи мережевий префікс та ідентифікатор інтерфейсу, вузол отримує нову адресу. Для захисту персональних даних ідентифікатор інтерфейсу може бути замінений на псевдовипадкове число.

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

Відмітки потоків

Введення поля «Відмітка потоку» в протоколі IPv6 дозволяє значно спростити процедуру маршрутизації однорідного потоку пакетів. Потік — це послідовність пакетів, що надсилаються відправником певному адресату. При цьому припускається, що всі пакети даного потоку мають бути оброблені певним чином. Характер даної обробки задається додатковими заголовками.

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

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

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

QoS

Пріоритезація пакетів забезпечується маршрутизаторами на основі перших шести біт поля Traffic Class. Перші три біти визначають клас трафіку, решта бітів визначають пріоритет видалення. Чим більше значення пріоритету, тим вище пріоритет пакета.

Остання зміна: Friday 29 May 2020 11:55 AM