IPv6 — с чем его едят. Проблемы внедрения и их решения.

SysAdmins
Существует два довольно различных класса пользователей сетей: хорошо информированные (в основном, коммерческий и профессиональный сектор) и плохо информированные (в основном обычные пользователи). Первый класс знает, что сетевые устройства являются по сути компьютерам, которые могут нуждаться в обновлении программного обеспечения для безопасности и исправления ошибок. Второй класс, убежден, что сетевого оборудования — приборы, которые уже настроены, когда их извлекают из коробки. Неизбежно, что последняя группа пользователей, которые не имеют знаний о IPv4 или V6, будет возмущена, когда их оборудование потребует замены.
Большинство оборудования, таких как узлы и маршрутизаторы требуют четкого поддержки . Исключением является оборудование самого низкого уровня, такое как кабели, сетевые адаптеры, и большинство двухуровневых переключателей.

Пока готовность к IPv6 не внедряется в большинстве потребительских решений. Поэтому, если используется оборудование не поддерживающее IPv6, возможно необходимо будет обновить или заменить его досрочно в случае подключения к новым пользователям и серверам с помощью адресов IPv6.
Как и проблема 2000-го года, совместимость IPv6 является в основном вопросом программного обеспечения или прошивки. Однако, в отличие от пробемы-2000, в настоящее время не прилагается никаких усилий для обеспечения совместимости старого оборудования и программного обеспечения производителей. Кроме того, совместимость продуктов, имеющихся в настоящее время вряд ли оправдана для многих видов программного обеспечения и оборудования. Это вызвано тем, что осознание того, что исчерпание IPv4 адресов является неизбежным, пришло довольно рано и мы получили относительно длительное время сочетании IPv4/IPv6 протоколов. Большие споры в интернет-сообществе вызывает вопрос, каким должен быть переход: быстрым или длительным. В частности, важным вопросом является готовность всех без исключения интернет-серверов к новым IPv6-клиентам к 2012 году.
Большая часть оборудования будет полностью готова к IPv6 после простого обновления прошивки, если в оборудовании имеется запас памяти для поддержки допольнительного стека протоколов. Однако, как и в случае с 64-битной версией Windows и Wi-Fi с шифрованием трафика, производители могут попытаться сэкономить на стоимости разработки аппаратных средств, которые они уже не будут продавать, и попытаются получить большую выручку с продаж новоого «IPv6-совместимого» оборудования. Даже если производители микросхем разработают новые драйверы для своих наборов схем, конечные производители производители могут препятствовать их распространению. Кроме того, как только IPv6 будет введен, необязательные функции могут стать очень важными (например, IPv6 для мобильных устройств).
Ярким примером оборудования, которое в настоящее время, как правило, не готовы к IPv6, являются домашние маршрутизаторы. Что касается CableLabs consortium, 160 Мбит/с DOCSIS 3,0 IPv6-совместимая спецификация для кабельных модемов была издана в августе 2006 года. Также была разработана спецификация Docsis 2.0b, поддерживающая IPv6. Новый DOCSIS 2.0 + IPv6 стандарт поддерживает IPv6, который может работать на кабельном модеме только после обновления микропрограммы. Ожидается, что только 60% серверов для кабельных модемов и 40% самих модемов будут поддерживать Docsis 3,0 к 2011 году.
Другое оборудование, как правило не совместимо с IPv6, от Skype и SIP-телефонов до осцилографов и принтеров. Профессиональные сетевые маршрутизаторы должны быть готовы к IPv6. Большинство персональных компьютеров также должны быть готовы к IPv6, потому что сетевой стек находится в операционной системе. Большинство приложений с сетевыми возможностями не готовы, но могут быть обновлены при поддержке со стороны разработчиков. С февраля 2002 года с выпуском J2SE 1.4, все приложения, которые являются 100% Java имеют косвенное поддержку адресов IPv6.
Для ADSL услуги, проблема может быть в том, что сети доступа действующих телефонных линий не совместимы с IPv6. Поэтому ADSL-провайдеры не могут предоставить настоящие IPv6-соединения.
IPv6 для клиентов
После исчерпания пула доступных IPv4-адресов, возможно, что вновь подключенные к Интернету, будут получать IPv6-адреса. Этих клиенты смогут устанавливать обратно-совместимые подключения к существующим IPv4-ресурсам. Доступной останется технология IPv4-NAT, которая может быть использована людьми, владеющих частными IPv4-адресами. Кроме того, останется NAT-PT, но она считается морально устаревшей технологией.
Адреса IPv6
128 бит
Главное отличие IPv6 от IPv4 — длина сетевых адресов. IPv6-адреса имеют длину128 (так определено в RFC 4291), в то время IPv4-адреса всего 32 бита. Таким образом адресное пространство IPv4 содержит около 4 млрд. адресов, IPv6 имеет 3,4 × 10^38 уникальных адресов.
Как правило адрес IPv6 состоит из двух логических частей: 64-битного префикса (под-)сети и 64-битного адреса узла, который либо автоматически генерируется на основе MAC-адреса или устанавливается вручную. Так как уникальный во всем мире MAC-адрес позволяет отслеживать пользователей оборудования, то в IPv6 были внесены изменения (RFC 3041) с возможности отключения постоянной привязки оборудования к IPv6 адресу. Таким образом, удалось восстановить некоторые возможности анонимности, существующие в IPv4. RFC 3041 определяет механизм, с помощью которого, вместо MAC-адресов могут быть использованы случайные битовые строки.
Нотация
Адреса IPv6, как правило, записываются в виде восьми групп по четыре шестнадцатеричные цифры, где каждая группа разделяется двоеточием (:). Например,
2001:0db8:85a3:08d3:1319:8a2e:0370:7334
является IPv6-адресом.
Если одна или несколько из четырех групп цифр нули (
0000
), они могут быть опущены и заменены двумя двоеточиями (::). Например,
2001:0db8:0000:0000:0000:0000:1428:57ab
может быть сокращен до
2001:0db8::1428:57
. В соответствии с этим правилом, любое число последовательных
0000
-групп может быть сокращены до двух двоеточий, до тех пор, пока существует только одно двойное двоеточие. Ведущие нули в группе могут быть опущены (например
::1
для localhost). Таким образом, следующие адреса правильны и идентичны:
2001:0db8:0000:0000:0000:0000:1428:57ab
2001:0db8:0000:0000:0000::1428:57ab
2001:0db8:0:0:0:0:1428:57ab
2001:0db8:0:0::1428:57ab
2001:0db8::1428:57ab
2001:db8::1428:57ab
Адрес с двумя двойными двоеточиями является недействительным, поскольку создает двусмысленность в нотации. Например, сократив
2001:0000:0000:FFD3:0000:0000:0000:57ab
до
2001::FFD3::57ab
мы получим возможные комбинации:
2001:0000:0000:0000:0000:FFD3:0000:57ab
,
2001:0000:FFD3:0000:0000:0000:0000:57ab
и т.д.
Последовательность из 4 байт в конце IPv6-адреса может быть записана в десятичной форме, используя в качестве разделителя точки. Эта нотация часто используется для совместимости с адресами. Кроме того, это решение удобно, когда речь идет о смешанной среде IPv4 и IPv6-адресов. Общее обозначение имеет форму
х:х:х:х:х:х:d.d.d.d
, где
х
- 6 групп шестнадцатеричных цифр верхнего октета, а
d
соответствует десятичным цифрам нижнего октета адреса, поскольку он в формате IPv4. Так, например,
::ffff:12.34.56.78
соответствует
::ffff:0c22:384e
или
0:0:0:0:0:ffff:0c22:384e
. Следует помнить, что использование данной нотации не рекомендуется и не поддерживается многими приложениями.
Дополнительная информация может быть найдена в RFC 4291 — IP Version 6 Addressing Architecture.
Использование IPv6-адресов в URL
В URL IPv6-адреса заключаются в скобки.
Пример:
http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7348]/
Эта нотация позволяет при разборе URL не перепутать IPv6-адрес и номер порта:
https://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443/
Также может быть использован сокращенный вариант
https://[2001:db8::1428:57ab]:443/
Дополнительную информацию можно найти в «RFC 2732 — Format for Literal IPv6 Addresses in URL’s » и «RFC 3986 — Uniform Resource Identifier (URI): Generic Syntax».
Сетевые нотации
IPv6-сети строятся с использованием CIDR-нотации.
IPv6-сети (или подсети) является непрерывной группой IPv6-адресов, размеры которой должны быть степенью двойки; первые биты адреса, которые являются одинаковыми для всех узлов в сети, называются префиксом сети.
Сеть задается первым адресом в сети и размером в битах префикса (в десятичной системе), разделенных косой чертой. Например,
2001:0db8:1234::/48
обозначает сеть с адресами от
2001:0db8:1234:0000:0000:0000:0000:0000
до
2001:0db8:1234:ffff:ffff:ffff:ffff:ffff
Так как каждый узел может рассматриваться как сеть со 128-битным префиксом, их адреса, иногда следуют с /128.
Специальные адреса
Есть ряд адресов, которые имеют особое значение в IPv6:
Локальные адреса:
::/128
- адрес со всеми нулями является неопределенным адресом, и будет использоваться только в программном обеспечении.
::1/128
– адрес внутренней петли («loopback») localhost. Если узел посылает пакеты на этот адрес, IPv6 стек циклично возвращает эти пакеты обратно тому же узлу (соответствует
127.0.0.1
в IPv4).
fe80::/10
- локальный префикс, указывает, что адрес является действительным только внутри местной физической сети. Это аналог автоконфигурации IP адреса
169.254.0.0/16
в IPv4.
Местные адреса:
fc00::/7
- уникальные локальные адреса (unique local addresses, ULA) являются маршрутизируемыми только в рамках набора взаимодействующих сайтов. Они были определены в RFC 4193 в качестве замены для локальных адресов. Адреса включает 40-битное псевдослучайне число, что позволяет свести к минимуму риск конфликтов при объединении сайтов и потерь пакетов.
IPv4
::ffff:0:0/96
- это префикс используется для подключаемых адресов IPv4.
2001::/32
- используется для Teredo-туннелей.
2002::/16
- это префикс используется для 6to4-адресации.
Групповые:
ff00::/8
- многоадресный префикс используется широковещания, как это определено в » IP Version 6 Addressing Architecture» (RFC 4291).
Используемые в примерах, не рекомендуюмые или устаревшие:
::/96
- нулевой префикс, используется для IPv4-совместимых адресов, но в настоящее время устарел.
2001:db8::/32
- это префикс используется в документации (RFC 3849). Везде, где приводятся примеры IPv6-адресов, следует использовать адреса этого диапазона.
fec0::/10
- местный префикс, указывает, что адрес является действительным только внутри сети организации. Не используется с сентябре 2004 года (RFC 3879) и системы не должны поддерживать этот особый тип адреса.
ORCHID:
2001:10::/28
– относится к ORCHID (Overlay Routable Cryptographic Hash Identifiers) согласно (RFC 4843). Это немаршрутизируемые IPv6-адреса, используемые для криптографических хэш-идентификаторов.
IPv6-пакеты и индексы зон
IPv6-пакет, состоит из двух основных частей: заголовка и «полезной нагрузки».
Заголовок находится в первых 40 октетах (320 бит) в пакете и содержит поля:
  • Версия — версии IP (4 бита).
  • Класс трафика – приоритет пакета (8-бит). Существует два класса: где источник обеспечивает контроль и где источник не обеспечивает контроль трафика.
  • Метка потока – QoS-менеджмент (20 бит). Первоначально был создан для предоставления специальных сервисов в реальном времени, но в настоящее время не используется.
  • Длина полезной нагрузки — длина полезной нагрузки в байтах (16 бит). Если заполнена нулями, значит используется Jumbo payload.
  • Следующий заголовок — определяет следующий инкапсулированный протокол. Значения, совместимы с теми, что определенны для протокола IPv4 (8 бит).
  • Лимит скачков — заменяет поле time to live в IPv4 (8 бит).
  • Источник и адрес назначения — 128 бит каждый.
Полезная нагрузка может быть размером до 64 Kб в стандартном режиме, или большего размера в Jumbo payload режиме.
Фрагментация производится только в отправляющем узле IPv6: маршрутизаторы никогда не фрагментируют пакеты, и ожидается, что узлы будут использовать PMTU.
Поле «Протокол» из IPv4 заменяется на поле «Следующий заголовок». Это поле, как правило, определяет уровень транспортного протокола, используемого в «полезной нагрузке».
Так же это поле может задавать дополнительные заголовки, которые следуют за основными.
Индексы зоны
Локальные адреса несут в себе проблему для систем с несколькими интерфейсами. Так как каждый интерфейс может быть подключен к разным сетям и охватывает всю подсеть, могут возникать неясности, которые не могут быть решены с помощью таблиц маршрутизации.
Например, хост имеет два интерфейса, которые автоматически получают локальные адреса:
fe80::1/64
и
fe80::2/64
, только один из которых подключен к той же физической сети в качестве принимающей стороны, которая имеет адрес
fe80::3/64
. Если хост попытается связаться с
fe80::3
как он узнает, какой интерфейс (
fe80::1
или
fe80: 2
) следует использовать?
Решение определено в RFC 4007 и представляет собой добавление уникальных индексов зоны для местных интерфейсов. Текстуально оно может представлено в виде <address>%<zone_id>, например: http://[fe80::1122:33ff:fe11:2233%eth0]:80/. Однако это вызывает новые проблемы из-за похожести на %-кодировку URI.
Microsoft Windows IPv6-стек использует цифровые идентификаторы зоны: fe80::3%1
BSD-приложения, как правило, используют имя интерфейса в качестве зоны: fe80::3%pcn0
Linux-приложения, как правило, тоже используют имя интерфейса в качестве зоны ID: fe80:: 3%eth0, хотя GNU/Linux утилиты конфигурации сетевого интерфейса, такие как ifconfig и iproute2, не показывают индексы зоны.
Только относительно небольшое число IPv6-приложений, способных понять синтаксис адреса с индексом зоны, в результате чего использование локальных адресов сильно ограничено.
IPv6 - с чем его едят. Проблемы внедрения и их решения. by

Возможно, вас также заинтересует:

  • http://linux.org.by/blog/322/ipv6-%e2%80%93-s-chem-ego-edyat-novovvedeniya-i-otlichiya-ot-ipv4/ IPv6 – с чем его едят. Нововведения и отличия от IPv4. — Linux в Беларуси

    [...] Продолжение материала и его окончание. [...]

  • Борис Иванович

    «Как и проблема 2000-го года, совместимость IPv6 является в основном вопросом программного обеспечения или прошивки.»
    Вот ещё один повод поддерживать своим рублём открытое аппаратное обеспечение. Если пользователь может перепрограммировать устройство, значит, он может выжать из устройства максимум. И Ричард Столлман тоже говорит, что открытость (ПО) — это свобода и выгода прежде всего для пользователя. А люди покупают устройства, не интересуясь, можно ли их перепрошивать, или программы без исходного кода. Скупой платит дважды.

При копировании материалов ссылка обязательна.