Что такое IPv6?

IPv6 - новая (шестая) версия протокола IP (Internet Protocol), которая пришла на смену четвертой версии IPv4. На данный момент IPv6 постепенно внедряется в работу. Многие устройства и узлы в Интернет уже поддерживают адресацию по протоколу IPv6. Например, наш сайт также доступен тем пользователям, которые подключены к Интернет с использованием протокола IPv6. Многие наши инструменты совместимы и поддерживают данный протокол. Например, на нашем сайте можно пинговать или трассировать IPv6 узлы.

IPv6 адреса

IPv6 адреса имеют длину 128 бит, что дает в общей сложности 2128 ≈ 3.4 × 1038 возможных адресов в адресном пространстве. Это в ≈79 септиллионов раз больше, чем все адресное пространство, определенное протоколом IPv4. Если сравнить это число с количеством видимых звезд в нашей Вселенной (которое оценивается примерно в 1024 звезд), то на каждую звезду можно выделить примерно чуть более 340 триллионов адресов. Это настолько большое число, что можно говорить о том, что IPv6 раз и на всегда решает проблему нехватки Интернет-адресов. Другими словами, адресное пространство IPv6 теоретически способно удовлетворить потребности в IP-адресах для всей нашей Вселенной.

В действительности же при распределении IPv6 адресов, принято решение выдавать конечному пользователю вместо одного адреса целые подсети с длинной префикса 64 бит. Что на практике означает, что каждому из жителей Земли будет выдаваться огромное количество адресов, что позволит подключать несметное количество различных устройств, каждое из которых будет "выходить" в Интернет со своим "белым" и честным IP-адресом, и, естественно, при этом, может быть адресовано в сети напрямую! Это все позволит в теории значительно упростить маршрутизацию и инфраструктуру сети.

Представление адресов в IPv6

IPv6 адреса в стандартном виде решено записывать в виде восьми блоков шестнадцатеричных чисел от 0x0000 до 0xFFFF, разделенных двоеточием. Например:

2001:0db8:0000:0000:0000:0000:0000:1

Лидирующие нули в группах могут быть опущены:

2001:db8:0:0:0:0:0:1

При этом если блоки содержат нули, они могут быть упрощены и заменены двойным двоеточием, при этом сделано это может быть лишь в одном месте (чтобы не возникало неоднозначностей). Например, приведенный выше адрес может быть сокращен до вида:

2001:db8::1

Если есть две группы нулей, например:

2001:0:0:aa:0:0:0:1

То сокращают наиболее длинную группу:

2001:0:0:aa::1

Если же группы равны:

2001:db8:0:0:aa:0:0:1

То сокращают ту, которая находится левее:

2001:db8::aa:0:0:1

Например, адрес локального хоста 0000:0000:0000:0000:0000:0000:0000:0001 в IPv6 представлении можно записать как ::1, а адрес текущей сети (известный как unspecified address) 0000:0000:0000:0000:0000:0000:0000:0000, может быть сокращен до :: соответственно.

Также при записи IPv6 адресов отдают предпочтение прописным буквам шестнадцатеричных чисел перед заглавными. То есть предпочтительнее записать:

2001:db8:dead::beef

Чем:

2001:DB8:DEAD::BEEF

Структура IPv6 адресов. Глобальные и индивидуальные адреса

IPv6 адрес 128 бит:

----------------------------------------------------------------
| Префикс провайдера | Подсеть |    Идентификатор интерфейса   |
|      48 бит        | 16 бит  |            64 бита            |
----------------------------------------------------------------
|        префикс подсети       |
--------------------------------
| глобальный префикс |
----------------------

Способы выделения IPv6 адресов из глобального адресного пространства определяют именно такую структуру адресов. Первые 48 бит адреса означают глобальный префикс и такие блоки, как правило выдаются провайдерам и различным организациям. Те в свою очередь имеют возможность использовать 16 бит адреса для организации своих подсетей. Оставшиеся 64 бита являются идентификатором интерфейса устройства пользователя. Как мы видим, теоретически это позволяет подключить в одной подсети до 264 ≈ 1.8 × 1019 устройств, что, хотя и кажется избыточным, но сделано так с целью упростить автоконфигурацию подключения этих устройств.

Адресация в IPv6

В протоколе IPv6 определены несколько типов адресов, определяющие способ адресации пакетов:

Трансляция IPv6 поверх IPv4

Существует переходной механизм, позволяющий транслировать IPv6 пакеты через существующие сети IPv4. Этот механизм необходим для того, чтобы позволить некоторым узлам подключаться к IPv6 сетям, если провайдер на данный момент не имеет возможности выделить данным узлам (сайтам или пользователям) реальный IPv6 адрес.

Специальные адреса

Согласно стандарта RFC-6890 определены следующие специальные IPv6 адреса и подсети, зарезервированые для различных нужд:

Сеть (адрес) Описание Зарезервировано
протоколом
::/128 Источник адресов текущей сети да
::1/128 Интерфейс коммутации внутри хоста да
64:ff9b::/96 Трансляция IPv4-IPv6 нет
::ffff:0:0/96 Адрес IPv4 отображенный на IPv6 да
100::/64 Блок адресов отказа нет
2001::/23 Зарезервировано IETF для нужд протокола нет
2001::/32 TEREDO - псевдо-интерфейс туннелей нет
2001:2::/48 Для тестирования производительности нет
2001:db8::/32 Для использования в примерах документации нет
2001:10::/28 ORCHID - Слой маршрутизируемых криптографических хэш-идентификаторов нет
2002::/16 6to4 - для трансляции IPv6 поверх IPv4 нет
fc00::/7 Unique-Local нет
fe80::/10 Linked-Scoped Unicast да

Главные изменения по сравнению с IPv4

Немного подробнее узнать о различиях IPv4 и IPv6 адресов вы можете в нашей краткой таблице сравнения.

Смотрите также: