background img

The New Stuff

IPv6. Описание, принципы работы


Введение

В начале 1990-х годов, стало ясно, что изменения, внесенные в бесклассовые сети десять лет назад оказались явно недостаточны для предотвращения исчерпания адресов IPv4, и что дальнейшие изменения в IPv4 были необходимы. В начале 1992 года был выдвинут ряд предложений, а к концу 1992 года, IETF опубликовала несколько “белых” документов (RFC 1650) о создании “интернет-протокола следующего поколения” (IPng) и заявило о начале создания соответствующих рабочих групп.
IPng был принят Internet Engineering Task Force 25 июля 1994 года одновременно с созданием нескольких рабочих групп. К 1996 году были выпущены первые серии RFC cо свободными определениями протокола IPv6, начиная с RFC 2460. (Кстати, протокол IPv5 не был преемником IPv4, это был экспериментальный поток ориентированный на передачу потокового видео и аудио.)
Ожидается, что IPv4 будет поддерживаться наряду с IPv6 в обозримом будущем. Узлы, поддерживающие только IPv4 не смогут напрямую общаться с IPv6 узлами, но связь будет возможна через специальных “посредников”.

Нововведения и отличие от IPv4

По большому счету, IPv6 является консервативным расширением IPv4. Например, приложениям, использующим транспортный, прикладной уровень и уровень протоколов нужно совсем мало или практических ни одного изменения для начала работы с IPv6. Исключение составляют приложения, использующие протоколы сетевого уровня и уровня адресации (например, FTP или NTPv3).
В приложения, как правило, нужно внести совсем небольшие изменения для начала работы с IPv6.

Большеее адресное пространство

Главной причиной, по которой нужно вносить эти изменения является большее адресное пространство: адреса в IPv6 имеют длину 128 бит, против 32 бит в IPv4.
Большее адресное пространство позволяет избежать потенциальную проблему исчерпания адресного пространства протокола IPv4 без необходимости замены системы NAT и других устройств, которые могут препятствовать сквозному прохождению интернет-трафика. Это также упрощает администрирование средних и крупных сетей, позволяя избежать использования сложных схем подсетей. Подсети, в идеале, должны вернуть себе изначальное предназначение – логическое разбиение IP-сети для оптимальной маршрутизации и обеспечения контроля доступа.
Недостатком больших размеров адреса в IPv6 является дополнительные накладные расходы за трафик IPv4, что может стать серьезной проблемой в регионах, где трафик сильно ограничен (использование сжатия заголовков может частично решить эту проблему).

Автоконфигурация адресов

Узел IPv6 может быть сконфигурирован автоматически при подключении к сети с IPv6-маршрутизацией с помощью протокола обмена сообщениями ICMPv6. При первом подключении, узел посылает запрос на получение своих конфигурационных параметров (router solicitation), и, если это возможно, маршрутизатор отправляет пакет с настройками сетевого уровня для данного узла (router advertisement).
Если IPv6 неприменима по каким-либо причинам, хост может использовать настройки соединения (DHCPv6) либо быть сконфигурирован вручную. Автоконфигурация не может быть использована маршрутизаторами, они должна настраиваться вручную или с помощью других средств.

Широкополосное вещание

Широкополосное вещание является частью базовых спецификаций IPv6, в отличие от IPv4, где оно было введено позднее.
IPv6 не имеет ссылку для локальной трансляции; этого же эффекта можно допиться путем широкополосного вещания для всей группы хостов (FF02:: 1).
Однако, большинство сред, в настоящее время не имеют развитых сетевых инфраструктур, настроенных широкополосное вещание: широкополосное вещание можно настроить для одной подсети, но глобальное широкополосное вещание работать не будет.

Локальные ссылочные адреса

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

Джамбограммы

В IPv4 размер пакетов ограничен 64 килобайтами полезной нагрузки. В IPv6 появилась возможность обходить это ограничение за счет использования так называемых джамбограмм, которые позволяют использовать пакеты размером до 4 гигабайт. Использование джампограмм может существенно повысить производительность сетей.

Сетевой слой безопасности

IPsec, протокол для IP-сети, реализующий слой шифрования и аутентификации, является неотъемлемой частью базового протокола в IPv6, в отличие от IPv4, где он являлся опциональным (но, как правило, был реализован). Однако, в настоящее время протокол IPsec не получил широкого распространения и используется лишь для обеспечения обменом трафиком между IPv6 узлами и маршрутизаторами.

Мобильность

В отличие от мобильного IPv4, Мобильный IPv6 (MIPv6), позволяет избежать треугольной маршрутизации, оставаясь таким же эффективным, как и обычный IPv6. Но это преимущество довольно спорно, так как ни MIPv4, ни MIPv6 не получили широкого распространения.

Упрощение обработки маршрутизаторами

IPv4 имеет контрольную область, которая охватывает весь заголовок пакета. Некоторые области (например, поля TTL) изменяются в момент переадресации, и соответственно должна быть произведена перепроверка каждым маршрутизатором. IPv6 не имеет контроля ошибок на сетевом уровне, вместо этого он полагается на проверку ошибок на канальном транспортном уровнях.

Статус развертывания

По состоянию на май 2008 года, IPv6 составляет незначительную долю от используемых адресов в публично доступных сегментах Интернет. Пока все еще доминирует протокол IPv4. За исключением автоконфигурации, более гибкой адресации и Secure Neighbor Discovery (SEND), большинство нововведенийт IPv6 были портированы для для протокола IPv4. Таким образом, скорость (и приблизителная дата) развертывания IPv6 определяется в первую очередь скоростью исчерпания адресного пространства IPv4, которая была замедлена введением бесклассовых доменов маршрутизации (CIDR) и широким использованием трансляции сетевых адресов (NAT).

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

Оценки относительно того, когда пул доступных адресов IPv4 будет исчерпан сильно варьируются. В 2003 году Пол Уилсон (директор APNIC) заявил, что, судя по нынешним темпах развертывания, доступное пространство будет использоваться до 2023 года. В сентябре 2005 года в докладе Cisco Systems, которая является производителем сетевого оборудования, сообщалось, что пул доступных адресов будут исчерпаны в течение 4-5 лет.
По состоянию на ноябрь 2007 года, согласно ежедневно обновляемому докладу IANA, нераспределенный резерв адресов будет исчерпан в мае 2010 года, по оценкам различных региональных интернет-реестров – в апреле 2011 года.
На момент, когда RIR и IANA пулы будут исчерпаны, все равно будут существовать неиспользованные IPv4-адреса. Существующие механизмы выделения адресов уже не смогут обеспечивать возможность их применения.
В механизмы, распределения адресов IPv4 обсужденные ранее, включены системы утилизации неиспользуемого адресного пространства, реорганизации хостов и маршрутизаторов, позволяющие использовать области адресного пространства IPv4, которые ранее были непригодны по техническим причинам.

Готовность к IPv6

Основными этапами введения IPv6 являются:
  • Замена устаревшего оборудования по следующим причинам:
    • завод-изготовитель уже не существует, и не способен оказывать поддержку
    • изготовитель отказывается производить обновления для поддержки IPv6 или предоставляет их, но только за стоимость, которая для большинства пользователей является неприемлимой.
    • программное обеспечение не может быть обновлено, так как зашито в ROM
    • устройство не располагает достаточными ресурсами для обработки стека IPv6 (как правило, отсутствием ПЗУ и ОЗУ)
    • устройство может работать с IPv6, но с производительностью намного ниже, чем с IPv4 (большинство устаревших маршрутизаторов)
  • Обеспечение производителей нового оборудования достаточными ресурсами для обработки IPv6
  • Инвестирование в разработки нового программного обеспечения для поддержки IPv6
  • Обеспечение публичности, чтобы убедить конечных пользователей в полезности подготовки к модернизации существующего оборудования
  • Донесение информации до конечных пользователей, чтобы создать спрос на IPv6-оборудование
  • Инвестирование технических ресурсов на подготовку к IPv6 провайдерами

Проблемы внедрения

Существует два довольно различных класса пользователей сетей: хорошо информированные (в основном, коммерческий и профессиональный сектор) и плохо информированные (в основном обычные пользователи). Первый класс знает, что сетевые устройства являются по сути компьютерам, которые могут нуждаться в обновлении программного обеспечения для безопасности и исправления ошибок. Второй класс, убежден, что сетевого оборудования – приборы, которые уже настроены, когда их извлекают из коробки. Неизбежно, что последняя группа пользователей, которые не имеют знаний о IPv4 или V6, будет возмущена, когда их оборудование потребует замены.
Большинство оборудования, таких как узлы и маршрутизаторы требуют четкого поддержки IPv6. Исключением является оборудование самого низкого уровня, такое как кабели, сетевые адаптеры, и большинство двухуровневых переключателей.
Пока готовность к 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 и представляет собой добавление уникальных индексов зоны для местных интерфейсов. Текстуально оно может представлено в виде
%, например: 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 и система доменных имен

IPv6-адреса представлены в системе доменных имен в виде АААА-записей (так называемых 4А-записей) для поиска вперед; для обратного поиска используется ip6 .arpa (ранее ip6 .int) с помощью отсечения адреса. Эта схема является простой адаптацией А-записей и in-addr.arpa схемы, определенной в RFC 3596.
АААА-схема была предложена одной из первых во время разработки архитектуры IPv6. Другое предложение, содержало идею A6-записей для поиска вперед и ряд других нововведений, таких, как bit-string labels и DNAME-записи. Оно представлено в экспериментальном RFC 2874 и ссылается (с последующими обсуждение преимуществ и недостатков обеих систем) на RFC 3364.

AAAA-запись

NAMEдоменное имя
TYPEAAAA (28)
CLASSInternet (1)
TTLTime to live в секундах
RDLENGTHдлина поля RDATA
RDATAстроковое представление IPv6-адреса, определенное в RFC 3513
RFC 3484 определяет, каким образом следует приложениям выбирать IPv6 или IPv4-адрес для использования, в том числе это касается адресов, извлеченных из DNS.

IPv6 и DNS RFC

  • RFC 2874 – DNS Extensions to Support IPv6 Address Aggregation and Renumbering – Defines the A6 record
  • RFC 3364 – Tradeoffs in Domain Name System (DNS) Support for Internet Protocol version 6 (IPv6)
  • RFC 3484 – Default Address Selection for Internet Protocol version 6 (IPv6)
  • RFC 3513 – Internet Protocol Version 6 (IPv6) Addressing Architecture
  • RFC 3596 – DNS Extensions to Support IP Version 6 – Defines the AAAA record and obsoletes RFC 1886 and RFC 3152

Переходные механизмы

До тех пор, пока IPv6 окончательно не вытеснит IPv4, что вряд ли произойдет в обозримом будущем, будут использоваться переходные механизмы, необходимые для того, чтобы IPv6-узлы могли использовать IPv4-сервися и чтобы изолированные IPv6-хостов и сети могли использовать IPv6-интернет через IPv4-инфраструктуры.

Двойной стек

Поскольку IPv6 является консервативным расширением IPv4, довольно легко написать сетевой стек, поддерживающий как IPv4, так и IPv6 и содержащий большую часть совместного кода. Такая реализация называется двойным стеком, а реализация двойного стека для узла называется двухстековым узлом. Этот подход описывается в RFC 4213.
Большинство современных реализаций IPv6 используют двойной стек. В некоторых ранних экспериментальных реализациях используется независимые стеки IPv4 и IPv6. Есть также реализации, которые осуществляют поддержку только IPv6.

Туннели

Для того чтобы добраться до IPv6-интернет, изолированные узлы или сети должен иметь возможность использовать существующие инфраструктуры IPv4 для передачи IPv6-пакетов. Это можно сделать, используя метод, известный как туннелирование, который заключается во встраивании IPv6-пакетов в IPv4, по сути IPv4, используя в качестве канального уровня для IPv6.
IPv6-пакеты могут быть непосредственно встроены в IPv4-пакеты с использованием протокола номер 41. Они также могут быть встроены в UDP-пакеты, например, для использования перекрестной маршрутизации или NAT, которые блокируют трафик протокола 41. Они, конечно, могут использовать общие схемы инкапсуляции, как например, AYIYA или GRE.

Автоматическое туннелирование

Автоматическое туннелирование относится к технике, в которой конечные точки туннеля, автоматически определяется маршрутизирующей инфраструктурой. Рекомендованной методикой для автоматического туннелирования является 6to4-туннель, который использует протокол инкапсуляции 41. Конечные точки туннеля определяется с помощью хорошо известных IPv4 anycast-адресов на принимающей стороне, и вложения IPv4 адреса в IPv6 адреса на отправляющей стороне. 6to4 широко используется на данный момент.
Еще одним механизмом автоматического туннелирования является ISATAP. Этот протокол “видит” IPv4-сеть как виртуальную местную IPv6-сеть, с маппингом IPv4-адресов в локальные IPv6-адреса.
Teredo является автоматическим методом туннелирования, который использует UDP инкапсуляцию. Создатели утверждают, что пакеты способны пересечь несколько NAT-трансляций. Teredo не нашел широкого применения, но экспериментальные версии его встроены в Windows XP SP2 IPv6-стек. IPv6, 6to4 и Teredo включены по умолчанию в Windows Vista и Mac OS X Leopard от Apple AirPort Extreme.

Настраиваемое туннелирование

Настраиваемое туннелирование является методом, при котором конечные точки туннеля настраиваются вручную оператором или автоматическим сервисом, называемым туннельным брокером. Этот способ, как правило, более понятен и прост в отладке, чем автоматическое туннелирование, и поэтому рекомендуется для крупных, хорошо управляемых сетей.
Настраиваемое туннелирование использует протокол 41 в IPv4-пакетах. Этот метод также известен как 6in4.

Прокси и трансляция

Когда IPv6-узел нуждается в доступе к IPv4-сервису (например, веб-серверу), в той или или иной форме требуется трансляция. Одной из форм трансляции является двухстекового прокси уровня приложений, например, веб-прокси.
Так же возможно применение NAT-подобных методов для трнсляции на нижних слоях. Большинство из них оказались слишком ненадежными на практике из-за широкого спектра функций, необходимых протокал уровня приложений, и по мнению многих являются устаревшими.


Введение

В начале 1990-х годов, стало ясно, что изменения, внесенные в бесклассовые сети десять лет назад оказались явно недостаточны для предотвращения исчерпания адресов IPv4, и что дальнейшие изменения в IPv4 были необходимы. В начале 1992 года был выдвинут ряд предложений, а к концу 1992 года, IETF опубликовала несколько “белых” документов (RFC 1650) о создании “интернет-протокола следующего поколения” (IPng) и заявило о начале создания соответствующих рабочих групп.
IPng был принят Internet Engineering Task Force 25 июля 1994 года одновременно с созданием нескольких рабочих групп. К 1996 году были выпущены первые серии RFC cо свободными определениями протокола IPv6, начиная с RFC 2460. (Кстати, протокол IPv5 не был преемником IPv4, это был экспериментальный поток ориентированный на передачу потокового видео и аудио.)
Ожидается, что IPv4 будет поддерживаться наряду с IPv6 в обозримом будущем. Узлы, поддерживающие только IPv4 не смогут напрямую общаться с IPv6 узлами, но связь будет возможна через специальных “посредников”.

Нововведения и отличие от IPv4

По большому счету, IPv6 является консервативным расширением IPv4. Например, приложениям, использующим транспортный, прикладной уровень и уровень протоколов нужно совсем мало или практических ни одного изменения для начала работы с IPv6. Исключение составляют приложения, использующие протоколы сетевого уровня и уровня адресации (например, FTP или NTPv3).
В приложения, как правило, нужно внести совсем небольшие изменения для начала работы с IPv6.

Большеее адресное пространство

Главной причиной, по которой нужно вносить эти изменения является большее адресное пространство: адреса в IPv6 имеют длину 128 бит, против 32 бит в IPv4.
Большее адресное пространство позволяет избежать потенциальную проблему исчерпания адресного пространства протокола IPv4 без необходимости замены системы NAT и других устройств, которые могут препятствовать сквозному прохождению интернет-трафика. Это также упрощает администрирование средних и крупных сетей, позволяя избежать использования сложных схем подсетей. Подсети, в идеале, должны вернуть себе изначальное предназначение – логическое разбиение IP-сети для оптимальной маршрутизации и обеспечения контроля доступа.
Недостатком больших размеров адреса в IPv6 является дополнительные накладные расходы за трафик IPv4, что может стать серьезной проблемой в регионах, где трафик сильно ограничен (использование сжатия заголовков может частично решить эту проблему).

Автоконфигурация адресов

Узел IPv6 может быть сконфигурирован автоматически при подключении к сети с IPv6-маршрутизацией с помощью протокола обмена сообщениями ICMPv6. При первом подключении, узел посылает запрос на получение своих конфигурационных параметров (router solicitation), и, если это возможно, маршрутизатор отправляет пакет с настройками сетевого уровня для данного узла (router advertisement).
Если IPv6 неприменима по каким-либо причинам, хост может использовать настройки соединения (DHCPv6) либо быть сконфигурирован вручную. Автоконфигурация не может быть использована маршрутизаторами, они должна настраиваться вручную или с помощью других средств.

Широкополосное вещание

Широкополосное вещание является частью базовых спецификаций IPv6, в отличие от IPv4, где оно было введено позднее.
IPv6 не имеет ссылку для локальной трансляции; этого же эффекта можно допиться путем широкополосного вещания для всей группы хостов (FF02:: 1).
Однако, большинство сред, в настоящее время не имеют развитых сетевых инфраструктур, настроенных широкополосное вещание: широкополосное вещание можно настроить для одной подсети, но глобальное широкополосное вещание работать не будет.

Локальные ссылочные адреса

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

Джамбограммы

В IPv4 размер пакетов ограничен 64 килобайтами полезной нагрузки. В IPv6 появилась возможность обходить это ограничение за счет использования так называемых джамбограмм, которые позволяют использовать пакеты размером до 4 гигабайт. Использование джампограмм может существенно повысить производительность сетей.

Сетевой слой безопасности

IPsec, протокол для IP-сети, реализующий слой шифрования и аутентификации, является неотъемлемой частью базового протокола в IPv6, в отличие от IPv4, где он являлся опциональным (но, как правило, был реализован). Однако, в настоящее время протокол IPsec не получил широкого распространения и используется лишь для обеспечения обменом трафиком между IPv6 узлами и маршрутизаторами.

Мобильность

В отличие от мобильного IPv4, Мобильный IPv6 (MIPv6), позволяет избежать треугольной маршрутизации, оставаясь таким же эффективным, как и обычный IPv6. Но это преимущество довольно спорно, так как ни MIPv4, ни MIPv6 не получили широкого распространения.

Упрощение обработки маршрутизаторами

IPv4 имеет контрольную область, которая охватывает весь заголовок пакета. Некоторые области (например, поля TTL) изменяются в момент переадресации, и соответственно должна быть произведена перепроверка каждым маршрутизатором. IPv6 не имеет контроля ошибок на сетевом уровне, вместо этого он полагается на проверку ошибок на канальном транспортном уровнях.

Статус развертывания

По состоянию на май 2008 года, IPv6 составляет незначительную долю от используемых адресов в публично доступных сегментах Интернет. Пока все еще доминирует протокол IPv4. За исключением автоконфигурации, более гибкой адресации и Secure Neighbor Discovery (SEND), большинство нововведенийт IPv6 были портированы для для протокола IPv4. Таким образом, скорость (и приблизителная дата) развертывания IPv6 определяется в первую очередь скоростью исчерпания адресного пространства IPv4, которая была замедлена введением бесклассовых доменов маршрутизации (CIDR) и широким использованием трансляции сетевых адресов (NAT).

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

Оценки относительно того, когда пул доступных адресов IPv4 будет исчерпан сильно варьируются. В 2003 году Пол Уилсон (директор APNIC) заявил, что, судя по нынешним темпах развертывания, доступное пространство будет использоваться до 2023 года. В сентябре 2005 года в докладе Cisco Systems, которая является производителем сетевого оборудования, сообщалось, что пул доступных адресов будут исчерпаны в течение 4-5 лет.
По состоянию на ноябрь 2007 года, согласно ежедневно обновляемому докладу IANA, нераспределенный резерв адресов будет исчерпан в мае 2010 года, по оценкам различных региональных интернет-реестров – в апреле 2011 года.
На момент, когда RIR и IANA пулы будут исчерпаны, все равно будут существовать неиспользованные IPv4-адреса. Существующие механизмы выделения адресов уже не смогут обеспечивать возможность их применения.
В механизмы, распределения адресов IPv4 обсужденные ранее, включены системы утилизации неиспользуемого адресного пространства, реорганизации хостов и маршрутизаторов, позволяющие использовать области адресного пространства IPv4, которые ранее были непригодны по техническим причинам.

Готовность к IPv6

Основными этапами введения IPv6 являются:
  • Замена устаревшего оборудования по следующим причинам:
    • завод-изготовитель уже не существует, и не способен оказывать поддержку
    • изготовитель отказывается производить обновления для поддержки IPv6 или предоставляет их, но только за стоимость, которая для большинства пользователей является неприемлимой.
    • программное обеспечение не может быть обновлено, так как зашито в ROM
    • устройство не располагает достаточными ресурсами для обработки стека IPv6 (как правило, отсутствием ПЗУ и ОЗУ)
    • устройство может работать с IPv6, но с производительностью намного ниже, чем с IPv4 (большинство устаревших маршрутизаторов)
  • Обеспечение производителей нового оборудования достаточными ресурсами для обработки IPv6
  • Инвестирование в разработки нового программного обеспечения для поддержки IPv6
  • Обеспечение публичности, чтобы убедить конечных пользователей в полезности подготовки к модернизации существующего оборудования
  • Донесение информации до конечных пользователей, чтобы создать спрос на IPv6-оборудование
  • Инвестирование технических ресурсов на подготовку к IPv6 провайдерами

Проблемы внедрения

Существует два довольно различных класса пользователей сетей: хорошо информированные (в основном, коммерческий и профессиональный сектор) и плохо информированные (в основном обычные пользователи). Первый класс знает, что сетевые устройства являются по сути компьютерам, которые могут нуждаться в обновлении программного обеспечения для безопасности и исправления ошибок. Второй класс, убежден, что сетевого оборудования – приборы, которые уже настроены, когда их извлекают из коробки. Неизбежно, что последняя группа пользователей, которые не имеют знаний о IPv4 или V6, будет возмущена, когда их оборудование потребует замены.
Большинство оборудования, таких как узлы и маршрутизаторы требуют четкого поддержки IPv6. Исключением является оборудование самого низкого уровня, такое как кабели, сетевые адаптеры, и большинство двухуровневых переключателей.
Пока готовность к 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 и представляет собой добавление уникальных индексов зоны для местных интерфейсов. Текстуально оно может представлено в виде
%, например: 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 и система доменных имен

IPv6-адреса представлены в системе доменных имен в виде АААА-записей (так называемых 4А-записей) для поиска вперед; для обратного поиска используется ip6 .arpa (ранее ip6 .int) с помощью отсечения адреса. Эта схема является простой адаптацией А-записей и in-addr.arpa схемы, определенной в RFC 3596.
АААА-схема была предложена одной из первых во время разработки архитектуры IPv6. Другое предложение, содержало идею A6-записей для поиска вперед и ряд других нововведений, таких, как bit-string labels и DNAME-записи. Оно представлено в экспериментальном RFC 2874 и ссылается (с последующими обсуждение преимуществ и недостатков обеих систем) на RFC 3364.

AAAA-запись

NAMEдоменное имя
TYPEAAAA (28)
CLASSInternet (1)
TTLTime to live в секундах
RDLENGTHдлина поля RDATA
RDATAстроковое представление IPv6-адреса, определенное в RFC 3513
RFC 3484 определяет, каким образом следует приложениям выбирать IPv6 или IPv4-адрес для использования, в том числе это касается адресов, извлеченных из DNS.

IPv6 и DNS RFC

  • RFC 2874 – DNS Extensions to Support IPv6 Address Aggregation and Renumbering – Defines the A6 record
  • RFC 3364 – Tradeoffs in Domain Name System (DNS) Support for Internet Protocol version 6 (IPv6)
  • RFC 3484 – Default Address Selection for Internet Protocol version 6 (IPv6)
  • RFC 3513 – Internet Protocol Version 6 (IPv6) Addressing Architecture
  • RFC 3596 – DNS Extensions to Support IP Version 6 – Defines the AAAA record and obsoletes RFC 1886 and RFC 3152

Переходные механизмы

До тех пор, пока IPv6 окончательно не вытеснит IPv4, что вряд ли произойдет в обозримом будущем, будут использоваться переходные механизмы, необходимые для того, чтобы IPv6-узлы могли использовать IPv4-сервися и чтобы изолированные IPv6-хостов и сети могли использовать IPv6-интернет через IPv4-инфраструктуры.

Двойной стек

Поскольку IPv6 является консервативным расширением IPv4, довольно легко написать сетевой стек, поддерживающий как IPv4, так и IPv6 и содержащий большую часть совместного кода. Такая реализация называется двойным стеком, а реализация двойного стека для узла называется двухстековым узлом. Этот подход описывается в RFC 4213.
Большинство современных реализаций IPv6 используют двойной стек. В некоторых ранних экспериментальных реализациях используется независимые стеки IPv4 и IPv6. Есть также реализации, которые осуществляют поддержку только IPv6.

Туннели

Для того чтобы добраться до IPv6-интернет, изолированные узлы или сети должен иметь возможность использовать существующие инфраструктуры IPv4 для передачи IPv6-пакетов. Это можно сделать, используя метод, известный как туннелирование, который заключается во встраивании IPv6-пакетов в IPv4, по сути IPv4, используя в качестве канального уровня для IPv6.
IPv6-пакеты могут быть непосредственно встроены в IPv4-пакеты с использованием протокола номер 41. Они также могут быть встроены в UDP-пакеты, например, для использования перекрестной маршрутизации или NAT, которые блокируют трафик протокола 41. Они, конечно, могут использовать общие схемы инкапсуляции, как например, AYIYA или GRE.

Автоматическое туннелирование

Автоматическое туннелирование относится к технике, в которой конечные точки туннеля, автоматически определяется маршрутизирующей инфраструктурой. Рекомендованной методикой для автоматического туннелирования является 6to4-туннель, который использует протокол инкапсуляции 41. Конечные точки туннеля определяется с помощью хорошо известных IPv4 anycast-адресов на принимающей стороне, и вложения IPv4 адреса в IPv6 адреса на отправляющей стороне. 6to4 широко используется на данный момент.
Еще одним механизмом автоматического туннелирования является ISATAP. Этот протокол “видит” IPv4-сеть как виртуальную местную IPv6-сеть, с маппингом IPv4-адресов в локальные IPv6-адреса.
Teredo является автоматическим методом туннелирования, который использует UDP инкапсуляцию. Создатели утверждают, что пакеты способны пересечь несколько NAT-трансляций. Teredo не нашел широкого применения, но экспериментальные версии его встроены в Windows XP SP2 IPv6-стек. IPv6, 6to4 и Teredo включены по умолчанию в Windows Vista и Mac OS X Leopard от Apple AirPort Extreme.

Настраиваемое туннелирование

Настраиваемое туннелирование является методом, при котором конечные точки туннеля настраиваются вручную оператором или автоматическим сервисом, называемым туннельным брокером. Этот способ, как правило, более понятен и прост в отладке, чем автоматическое туннелирование, и поэтому рекомендуется для крупных, хорошо управляемых сетей.
Настраиваемое туннелирование использует протокол 41 в IPv4-пакетах. Этот метод также известен как 6in4.

Прокси и трансляция

Когда IPv6-узел нуждается в доступе к IPv4-сервису (например, веб-серверу), в той или или иной форме требуется трансляция. Одной из форм трансляции является двухстекового прокси уровня приложений, например, веб-прокси.
Так же возможно применение NAT-подобных методов для трнсляции на нижних слоях. Большинство из них оказались слишком ненадежными на практике из-за широкого спектра функций, необходимых протокал уровня приложений, и по мнению многих являются устаревшими.


0 коммент.:

Отправить комментарий

Popular Posts