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,4 x10 38) или по 5x10 28 адресов на каждого человека.

Ночью 5 февраля 2008 года организация ICANN, контролирует использование интернет-протоколов, начала добавлять в DNS-серверы записи, содержащие адреса в формате протокола IPv6 [1]. Это положило начало перехода с нынешнего протокола IPv4 на более современный IPv6.

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


1. История возникновения

В конце 1980-х стало очевидным недостаток адресного пространства Интернет. В начале 1990-х, даже после введения бесклассовой адресации, оказалось, что одной экономии и использования NAT'ом будет недостаточно для предупреждения исчерпания адресного пространства, и необходимо изменение адресации. Кроме того, накопилось определенное количество предложений по устранению недостатков существующей модели Интернет. В конце 1992 года IETF объявила конкурс на создание протокола Интернет следующего поколения ( англ. IP Next Generation - IPng). 25 июля 1994 IETF утвердила модель IPng с образованием нескольких рабочих групп IPng. В 1996 была создана серия RFC, определяющие новый протокол Интернет. Поскольку версия 5 ранее была предназначена экспериментальном протокола передачи мультимедийных потоков, новый протокол получил версию 6.


1.1. Исчерпание IPv4 адресов

Оценки полного исчерпания IPv4 адресов различались в 2000-х, но потом все оценки совпадали до 2011 года. В 2003 году директор APNIC Пол Уилсон ( англ. Paul Wilson ) Заявил, что, исходя из темпов распространения сети Интернет того времени, свободного адресного пространства хватит на одно-два десятилетия. В сентябре 2005 года Cisco Systems отметила, что пула доступных адресов хватит на 4-5 лет. В сентябре 2010, исходя из данных IANA, весь пул адресов IPv4 будет распределено регистратура (RIR) до середины 2011 года ([2]), в ноябре эта дата была перенесена на март 2011. 3 февраля 2011 года IANA выделила последние пять блоков IP -адресов / 8 ( IPv4).


2. Сравнение с IPv4

Расширение адресного пространства отменяет необходимость использования NAT, поскольку на каждого человека приходится около 3 * 10 8 уникальных адресов. Принцип назначения хоста IPv6 адреса является иерархическим. Минимальный размер подсети - / 64 (2 64). Младшая часть адреса (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 из рекомендованного превратился в обязательный.

2.1. Автоматической настройки

В момент инициализации сетевого интерфейса ему назначается локальная IPv6-адрес, с префиксом fe80 :: / 10, в младшей части адреса размещается идентификатор интерфейса. В качестве идентификатора интерфейса часто используется 64-битный расширенный уникальный идентификатор EUI-64 наиболее часто формируется с MAC-адреса. Локальный адрес действительна только в пределах сетевого сегмента канального уровня, и используется, в основном, для обмена информационными ICMPv6 пакетами.

Для получения других адресов адресов узел может запросить информацию о сети в маршрутизаторов с помощью ICMPv6 сообщение "Router Solicitation". Этот запрос отсылается на групповую (multicast) адрес маршрутизаторов. В ответ маршрутизаторы отсылают ICMPv6 сообщение "Router Advertisement", который может содержать информацию о префиксе сети, адрес шлюза, адреса рекурсивных серверов DNS [3], MTU и многие другие параметры. Сочетая сетевой префикс и идентификатор интерфейса, узел получает новый адрес. Для защиты персональных данных идентификатор интерфейса может быть заменен на псевдослучайное число.

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


2.2. Отметки потоков

Введение поля "Отметка потока" в протоколе IPv6 позволяет значительно упростить процедуру маршрутизации однородного потока пакетов. Поток - это последовательность пакетов, посылаемых отправителем определенному адресату. При этом предполагается, что все пакеты данного потока должны быть обработаны определенным образом. Характер данной обработки задается дополнительными заголовками.

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

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

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


2.3. QoS

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

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

Класс трафика Назначение
0 Нехарактеризований трафик
1 Наполнительное трафик (сетевые новости)
2 Автономный информационный трафик (электронная почта)
3 Резерв
4 Неавтономных массовый трафик ( FTP, HTTP, NFS)
5 Резерв
6 Интерактивный трафик ( Telnet, X-terminal, SSH)
7 Руководящий трафик (Маршрутная информация, SNMP)

3. Нотация

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

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

Если одна или более групп подряд равны 0000, то они могут сокращенно записываться как двойное двоеточие (::). Например, 2001:0 db8: 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:0 db8: 11a3: 09d7: 1f34: 8a2e: 07a0: 765d] / 

Если нужно указать порт, то он пишется после скобок:

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

4. Структура пакета

4.1. Заголовок пакета

Смещение в байтах 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 для классификации пакетов. [4] [5] Остальные два бита используются ECN для контроля перегрузки. [6]
  • Flow label: отметка потока (см. отметки потоков).
  • Payload length: в отличие от поля Total length протокола IPv4 данное поле не включает заголовок пакета (16 бит). Максимальный размер, который определяется размером поля - 64 Кбайта. Для пакетов большего размера используется Jumbo payload [7].
  • Next header: указывает тип расширенного заголовка ( англ. IPv6 extension ), Который размещен сразу за основным. В последнем расширенном заголовке поле Next header указывает тип транспортного протокола ( TCP, UDP и т. д.)
  • Hop limit: аналог поля time to live в IPv4 (8 бит).
  • Source Address и Destination Address: адреса отправителя и получателя соответственно; по 128 бит.

4.2. Коды расширенных заголовков (поле 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)

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

[8]


См.. также

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

Примечания

  1. Корреспондент: В интернете началась тотальная замена IP-адресов
  2. IPv4 Address Report
  3. RFC 5006
  4. Nickols, K.; Blake, S.; Baker, F.; Black, D. (December 1998) Definition of the Differentiated Service Field (DS Field) in the IPv4 and IPv6 Headers, IETF. RFC 2474.
  5. Grossman, D. (April 2002) New Terminology and Clarifications for DiffServ, IETF. RFC 3260.
  6. Ramakrishnan, K.; Floyd, S.; Black, D. (September 2001) The Addition of Explicit Congestion Notification (ECN) to IP, IETF. RFC 3168.
  7. http://www.ietf.org/rfc/rfc2675.txt
  8. IPv6