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[1]. Це поклало початок переходу з нинішнього протоколу IPv4 на сучасніший IPv6.

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

Історія виникнення[ред.ред. код]

Наприкінці 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 року[3], в листопаді ця дата була перенесена на березень 2011. 3 лютого 2011 року IANA виділила останні п'ять блоків IP-адрес /8 (IPv4).

Порівняння з 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, що найчастіше формується з MAC адреси. Локальна адреса дійсна тільки в межах мережевого сегменту канального рівня, і використовується, в основному, для обміну інформаційними ICMPv6 пакетами.

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

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

Відмітки потоків[ред.ред. код]

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

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

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

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

QoS[ред.ред. код]

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

В залежності від задач розробники IPv6 рекомендують використовувати наступні коди класу трафіку:

Клас трафіку Призначення
0 Нехарактеризований трафік
1 Наповнювальний трафік (мережеві новини)
2 Автономний інформаційний трафік (електрона пошта)
3 Резерв
4 Неавтономний масовий трафік (FTP, HTTP, NFS)
5 Резерв
6 Інтерактивний трафік (Telnet, X-terminal, SSH)
7 Керівний трафік (BGP, SNMP)

Нотація[ред.ред. код]

IPv6 адреси показуються як вісім груп по чотири шістнадцяткові цифри, розділених двокрапками. Приклад адреси:

2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d

Якщо одна чи більше груп підряд дорівнюють 0000, то вони можуть скорочено записуватись як подвійна двокрапка (::). Наприклад, 2001:0db8:0000:0000:0000:0000:ae21:ad12 може бути скорочена до 2001:db8::ae21:ad12, 0000:0000:0000:0000:0000:0000:ae21:ad12 — до ::ae21:ad12. Скорочення не дозволяється у випадку, коли адреса містить 2 окремі нульові групи через виникнення невизначеності.

При використанні IPv6-адреси в URL необхідно брати адресу в квадратні дужки:

http://[2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d]/

Якщо потрібно вказати порт, то він пишеться після дужок:

http://[2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d]:8080/

Структура пакету[ред.ред. код]

Заголовок пакету[ред.ред. код]

Зміщення в байтах 0 1 2 3
Відступ в бітах 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 Version Traffic Class Flow Label
4 32 Payload Length Next Header Hop Limit
8 64 Source Address
C 96
10 128
14 160
18 192 Destination Address
1C 224
20 256
24 288

Опис полів:

  • Version: версія протоколу; для IPv6 це значення дорівнює 6 (значення в бітах — 0110).
  • Traffic class: пріоритет пакету (8 біт). Це поле містить два параметри. Старші 6 біт використовуються DSCP для класифікації пакетів.[5][6] Решта два біта використовуються ECN для контролю перевантаження.[7]
  • Flow label: відмітка потоку (див. відмітки потоків).
  • Payload length: на відміну від поля Total length протоколу IPv4 дане поле не включає заголовок пакету (16 біт). Максимальний розмір, що визначається розміром поля, — 64 Кбайти. Для пакетів більшого розміру використовується Jumbo payload[8].
  • Next header: вказує тип розширеного заголовку (англ. IPv6 extension), що розміщений одразу за основним. В останньому розширеному заголовку поле Next header вказує тип транспортного протоколу (TCP, UDP і т. д.)
  • Hop limit: аналог поля time to live в IPv4 (8 біт).
  • Source Address і Destination Address: адреси відправника та отримувача відповідно; по 128 біт.

Коди розширених заголовків (поле Next header)[ред.ред. код]

Заголовок Тип Розмір Опис RFC
Hop-By-Hop Options 0 Містить вказівки для всіх пристроїв на шляху передачі пакета. RFC 2460
Routing 43 Дозволяє відправнику визначати перелік вузлів, крізь які пакет має пройти. RFC 2460, RFC 3775, RFC 5095
Fragment 44 64біта Заголовок містить інформацію щодо фрагментації пакета. RFC 2460
Authentication Header (AH) 51 див. IPsec RFC 4302
Encapsulating Security Payload (ESP) 50 див. IPsec RFC 4303
Destination Options 60 Опції, що мають оброблятися тільки отримувачем. RFC 2460
No Next Header 59 0 Визначає відсутність наступного заголовка. Дані, що містяться за цим заголовком мають ігноруватися і передаватися без змін (у випадку маршрутизації). RFC 2460

Якщо використовується декілька заголовків розширення, RFC 1883 рекомендує наступний порядок:

  • IPv6 заголовок
  • Hop-by-Hop Options
  • Destination Options
  • Routing
  • Fragment
  • Authentication
  • Encapsulating Security Payload
  • Destination Options
  • заголовок вищого рівня (наприклад TCP)

Зарезервовані адреси IPv6[ред.ред. код]

IPv6 адреса Довжина префікса (біти) Опис Примітки
 :: 128 див. 0.0.0.0 в IPv4
 ::1 128 loopback адреса див. 127.0.0.1 в IPv4
 ::xx.xx.xx.xx 96 вбудований IPv4 Нижні 32 біти — це IPv4 адреса. Також називається IPv4-сумісною IPv6 адресою. Застарілий, більше не використовується.
 ::ffff: xx.xx.xx.xx 96 Адреса IPv6, що відображена на IPv4 Нижні 32 біти — це адреса IPv4. Для хостів, що не підтримують IPv6.
2001:db8:: 32 Документування Зарезервовано для прикладів в документації в rfc3849
fe80:: — febf:: 10 link-local Аналог 169.254.0.0/16 в IPv4
fec0:: — feff:: 10 site-local Відмічений як застарілий в rfc3879
fc00:: 7 Unique Local Unicast Прийшов на заміну Site-Local rfc4193
ffxx:: 8 multicast  

[9]

Див. також[ред.ред. код]

  • IPv4
  • IPv5
  • Teredo — протокол інкапсуляції IPv6 в IPv4 UDP
  • 6to4 — протокол інкапсуляції IPv6 в IPv4
  • TCP/IP

Примітки[ред.ред. код]

Посилання[ред.ред. код]


Інтернет Це незавершена стаття про Інтернет.
Ви можете допомогти проекту, виправивши або дописавши її.