Протокол ipv6

 

Адресное пространство IPv4 стремительно заканчивается, а это значит, что знание протокола IPv6 (rfc1883) рожденного в 1996 году может быть актуально ещё при нашей жизни. Тем, более, что шестая версия IP помимо неудобочитаемых адресов обладает массой достоинств, вроде огромного в масштабах сегодняшнего дня адресного пространства и шифрования «из коробки». Рассмотрим IPv6 подробнее:

 

 

Особенности IPv6:

  • Длинна адреса 16 байт потенциально даёт адресное пространство в 2128 хостов и хотя тут не всё так просто всё равно хватит на всех.

  • Возможность поддержки больших пакетов (джамбограмм) - до 4 гигабайт в достаточно быстрых сетях.

  • Протокол IPv6 не смотря на значительно выросшее поле адреса имеет размер 40 байт всего в 2 раза больше заголовка IPv4. Из заголовка IPv6 исключена контрольная сумма, а полей в заголовке 8, в сравнении с 14ю полями IPv4 , что в теории позволит маршрутизаторам работать чуть быстрее.

  • Поддержка IPSec теперь проще и обязательнее, хотя в rfc видно не долистал до того места где написано про обязательный IPSec, впрочем сама структура заголовка подразумевает простоту его (IPSec) поддержки.

  • Упрощена работа многоадресных рассылок с помощью указания областей рассылки.

  • В основном без бубна поверх IPv6 могут работать все привычные нам протоколы верхних уровней.

  • Улучшенная поддержка необязательных параметров. В новом заголовке обязательными остались только поля необходимые для маршрутизации пакета из точки А в точку В. Всё остальное стало опционально.

Заголовок IPv6

Структура IP пакетов версии 6:

Формат заголовка IPv6

  • Версия — поле, содержащее 4-битное двоичное значение, которое определяет версию IP-пакета. Для пакетов IPv6 в этом поле всегда указано значение 0110 то есть 6.

  • Приоритет – 8-битное поле, соответствующее полю «Дифференцированные сервисы (DS)» в заголовке IPv4. Оно также содержит 6-битное значение точки кода дифференцированных сервисов (DSCP), которое используется для классификации пакетов, а также 2-битное значение явного уведомления о перегрузке (ECN), используемое для управления перегрузками трафика..

  • Метка потока – 20-битное поле, предоставляющее специальную службу для приложений реального времени. Используя это поле, маршрутизаторам и коммутаторам передается информация о необходимости поддерживать один и тот же путь для потока пакетов, что поможет избежать их переупорядочивания.

  • Длина полезной нагрузки – 16-битное поле, в котором указан размер всего пакета (фрагмента), включая заголовок и дополнительные расширения..

  • Следующий заголовок – 8-битное поле, в котором указано, какой из дополнительных заголовков следует за основным. По этому полю можно определить тип полезной нагрузки данных, которые переносит пакет, что позволяет сетевому уровню пересылать данные на соответствующий протокол более высокого уровня

  • Мах число транзитных узлов – время жизни пакета в узлах (Hop). Бывшее TTL, название которого теперь отражает его суть.

  • Адрес отправителя - 128-битовое поле, определяющее IPv6-адрес отправившего пакет узла

  • Адрес получателя - 128-битовое поле, определяющее IPv6-адрес принимающего узла

  • Дополнительные заголовки:

    • Параметры маршрутизации – разнообразная информация для маршрутизаторов;

    • Параметры получения – дополнительная информация для получателя

    • Маршрутизация – частичный список транзитных маршрутизаторов на пути пакета;

    • Фрагментация – управление фрагментами дейтаграмм;

    • Аутентификация – проверка подлинности отправителя;

    • Шифрованные данные – информация о зашифрованном содержимом.

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

  • Каноническая форма - является предпочтительной и имеет вид n:n:n:n:n:n:n:n. Где n соответствует 4-х значному шестнадцатеричному числу (всего 8 шестнадцатеричных чисел, для каждого числа отводится 16 бит).

    • Например: FFFF:ACDA:2621:2245:1FA9:4167:3412:BF98.

  • Сжатая форма - Для упрощения записи адресов используется сжатая форма, в которой смежные последовательности нулевых блоков заменяются парами символов двоеточий (::).Однако такой символ может встречаться в адресе только один раз.

    • Примеры:

      • адрес групповой рассылки FFEA:0:0:0:0:CA28:1210:4362 имеет сжатую форму FFEA::CA28:1210:4362.

      • Адрес одноадресной рассылки 3FFE:FFFF:0:0:8:800:02A1:0 в сжатой форме имеет вид: 3FFE:FFFF::8:800:02A1:0.

      • Адрес обратной петли (lo) 0:0:0:0:0:0:0:1 записывается так ::1.

      • Неопределенный адрес 0:0:0:0:0:0:0:0 выглядит как :: .

  • Смешанная форма - Эта форма представляет собой сочетание адресов протоколов IPv4 и IPv6. В этом случае адрес имеет формат n:n:n:n:n:n:d.d.d.d, где каждый символ n соответствует 4-х значному шестнадцатеричному числу (6 шестнадцатеричных чисел, для каждого числа отводится 16 бит), а d.d.d.d -часть адреса, записанная в формате IPv4 (32 бита). Естественно в данном случае множество адресов IPv4 это всего лишь подмножество адресного пространства IPv6. Такая запись придумана для удобства перехода на IPv6. Эта форма устарела.

    • Например:

      • 0:0:0:0:0:0:19.8.62.32

      • 0:0:0:0:0:FFFF:111.214.2.34

      • или в сжатом виде:

      • ::73.3.68.45

      • ::F2F3:129.131.32.31

Типы адресов

Unicast (индивидуальный) - Идентификатор одиночного интерфейса. Пакет, посланный по адресу типа unicast, доставляется интерфейсу, указанному в адресе.

  • Global unicast адрес - Это уникальные в масштабах всего интернета адреса, к которым можно проложить маршрут. Глобальные индивидуальные адреса могут быть настроены статически или присвоены динамически.

  • Link-local IPv6 - адреса сети, которые предназначены только для коммуникаций в пределах одного сегмента местной сети или магистральной линии. Они позволяют обращаться к хостам, не используя общий префикс адреса. В качестве link-local адресов выделена подсеть FE80::/10. /10

  • Loopback - адрес используется узлом для отправки пакета самому себе и не может быть назначен физическому интерфейсу. Loopback-адрес IPv6 выглядит как ::1/128 или просто ::1 и на него можно послать эхо-запрос.

  • Unspecified address - Неопределённый адрес состоит из нулей и в сжатом формате представлен как ::/128 или просто :: Он не может быть назначен интерфейсу и используется только в качестве адреса источника в IPv6-пакете. Неопределённый адрес используется в качестве адреса источника, когда устройству еще не назначен постоянный IPv6-адрес или когда источник пакета не относится к месту назначения.

  • Unique local — Уникальные локальные адреса используются для локальной адресации в пределах узла или между ограниченным количеством узлов. Эти адреса не следует маршрутизировать в глобальном протоколе IPv6. Уникальные локальные адреса находятся в диапазоне от FC00::/7 до FDFF::/7.Но Unique local не скрыты от интернета по средствам технологий подобных NAT/PAT.

  • IPv4 embedded - встроенные IPv4-адреса. Использование этих адресов должно было способствовать переходу с протокола IPv4 на IPv6. Выглядят как ::73.3.68.45

Глобальный индивидуальный адрес состоит из трёх частей:

  • Префикс глобальной маршрутизации — это префиксальная или сетевая часть адреса, назначаемая интернет-провайдером заказчику или узлу. В настоящее время /48 является префиксом глобальной маршрутизации, который интернет-регистраторы назначают своим заказчикам.

  • Идентификатор подсети — Идентификатор подсети используется организациями для обозначения подсетей в каждом узле.

  • Идентификатор интерфейса — Идентификатор IPv6 относящейся к конкретному интерфейсу узла. Термин «идентификатор интерфейса» используется так как один узел может иметь несколько интерфейсов, каждый из которых обладает одним или более IPv6-адресами.

Формат адреса IPv6

Anycast (Произвольный) - Идентификатор набора интерфейсов (принадлежащих разным узлам). Пакет, посланный по anycast адресу, доставляется одному из интерфейсов, указанному в адресе (ближайший, в соответствии с мерой, определенной протоколом маршрутизации).

Multicast (Групповой) - Идентификатор набора интерфейсов (которые могут принадлежать разным узлам). Пакет, посланный по multicast, доставляется всем интерфейсам, заданным этим адресом.

Широковещательных адресов в IPv6 нет, вместо них используются адреса multicast. Так же, все нули и все единицы являются допустимыми кодами для любых полей, если не оговорено исключение.

Адресация

IPv6 адреса всех типов ассоциируются с интерфейсами. Так как каждый интерфейс принадлежит только одному узлу, unicast адрес интерфейса может идентифицировать узел.

IPv6 unicast адрес соответствует одному интерфейсу. Одному интерфейсу могут соответствовать много IPv6 адресов различного типа (unicast, anycast и multicast). Существует два исключения из этого правила:

  • Одиночный адрес может приписываться нескольким физическим интерфейсам, если приложение рассматривает эти несколько интерфейсов как единое целое при представлении его на уровне Интернет.

  • Маршрутизаторы могут иметь ненумерованные интерфейсы (например, интерфейсу не присваивается никакого IPv6 адреса) для соединений точка-точка, чтобы исключить необходимость вручную настраивать и объявлять эти адреса. Адреса не нужны для соединений точка-точка маршрутизаторов, если эти интерфейсы не используются в качестве точки отправления или назначения при посылке IPv6 пакетов.

Протокол IPv6 использует длину префикса для обозначения части префикса адреса. IPv6 не использует для маски подсети десятичное представление с разделительными точками. Длина префикса обозначает сетевую часть IPv6-адреса с помощью адреса или длины IPv6-префикса. Диапазон длины префикса может составлять от 0 до 128. Предполагается использовать длину IPv6-префикса для локальных и других типов сетей — /64. То есть, сетевая часть адреса, составляет 64 бита, а оставшиеся 64 бита остаются для идентификатора интерфейса (узловой части) адреса.

Зарезервированные адреса 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

Адрес IPv4, отображённый на IPv6

Нижние 32 бита — это адрес IPv4 для хостов, не поддерживающих IPv6.

64:ff9b::

96

NAT64

Зарезервирован для доступа из подсети IPv6 к публичной сети IPv4 через механизм трансляции NAT64

2001::

32

Teredo

Зарезервирован для туннелей Teredo в RFC 4380

2001:db8::

32

Документирование

Зарезервирован для примеров в документации в RFC 3849

2002::

16

6to4

Зарезервирован для туннелей 6to4 в RFC 3056

fe80:: — febf::

10

link-local

Аналог 169.254.0.0/16 в IPv4 — адреса устанавливаемые автоматически при недоступности DHCP сервера.

fec0:: — feff::

10

site-local

 

Помечен как устаревший в RFC 3879 (Аналог приватных сетей 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16 не маршрутизируемых в интернете)

fc00::

7

Unique Local Unicast

Пришёл на смену Site-Local RFC 4193

ff00::

8

multicast

 

Комментарии  

#1 Вера 17.05.2017 07:19
Отличная статья! )
Цитировать