Интернет-протокол версии 6 ( IPv6 ) — это самая последняя версия Интернет -протокола (IP), протокола связи , который обеспечивает систему идентификации и определения местоположения компьютеров в сетях и маршрутизирует трафик через Интернет . IPv6 был разработан Инженерной группой Интернета (IETF) для решения давно ожидаемой проблемы исчерпания адресов IPv4 и предназначался для замены IPv4 . [1] В декабре 1998 года IPv6 стал проектом стандарта IETF, [2] который впоследствии ратифицировал его как интернет-стандарт 14 июля 2017 года. [3] [4]
Устройствам в Интернете присваивается уникальный IP-адрес для идентификации и определения местоположения. С быстрым ростом Интернета после коммерциализации в 1990-х годах стало очевидно, что для подключения устройств потребуется гораздо больше адресов, чем было доступно в адресном пространстве IPv4. К 1998 году IETF формализовал протокол-преемник. IPv6 использует 128- битные адреса, теоретически допуская 2 128 или приблизительноВсего 3,4 × 10 38 адресов. Фактическое число немного меньше, поскольку несколько диапазонов зарезервированы для специального использования или полностью исключены из общего использования. Эти два протокола не предназначены для взаимодействия , поэтому прямая связь между ними невозможна, что усложняет переход на IPv6. Однако для исправления этой ситуации было разработано несколько механизмов перехода .
IPv6 предоставляет и другие технические преимущества помимо большего адресного пространства. В частности, он допускает методы иерархического распределения адресов, которые облегчают агрегацию маршрутов в Интернете и, таким образом, ограничивают расширение таблиц маршрутизации . Использование многоадресной адресации расширяется и упрощается, а также обеспечивает дополнительную оптимизацию доставки услуг. При разработке протокола были учтены аспекты мобильности, безопасности и конфигурации устройств.
Адреса IPv6 представлены в виде восьми групп по четыре шестнадцатеричных цифр в каждой, разделенных двоеточиями. Полное изображение может быть сокращено; например, 2001:0db8:0000:0000:0000:8a2e:0370:7334 становится 2001:db8::8a2e:370:7334 .
IPv6 — это протокол интернет-уровня для межсетевых сетей с коммутацией пакетов , который обеспечивает сквозную передачу дейтаграмм по нескольким IP-сетям, строго придерживаясь принципов проектирования, разработанных в предыдущей версии протокола — интернет-протокола версии 4 (IPv4).
Помимо предоставления большего количества адресов, IPv6 также реализует функции, отсутствующие в IPv4. Он упрощает аспекты настройки адресов, перенумерации сетей и объявлений маршрутизаторов при смене поставщиков сетевых подключений. Это упрощает обработку пакетов в маршрутизаторах, возлагая ответственность за фрагментацию пакетов на конечные точки. Размер подсети IPv6 стандартизируется путем фиксации размера части адреса, представляющей идентификатор хоста, равным 64 битам.
Архитектура адресации IPv6 определена в RFC 4291 и допускает три различных типа передачи: одноадресную , произвольную и многоадресную . [5] : 210
Интернет-протокол версии 4 (IPv4) был первой общедоступной версией Интернет -протокола . IPv4 был разработан в качестве исследовательского проекта Агентством перспективных исследовательских проектов Министерства обороны США (DARPA) , прежде чем стать основой для Интернета и Всемирной паутины . IPv4 включает систему адресации, в которой используются числовые идентификаторы, состоящие из 32 битов. Эти адреса обычно отображаются в десятичном виде в виде десятичных значений из четырех октетов, каждый из которых находится в диапазоне от 0 до 255, или 8 бит на число. Таким образом, IPv4 обеспечивает возможность адресации 2 32 или примерно 4,3 миллиардов адресов. Исчерпание адресов изначально не вызывало беспокойства в IPv4, поскольку изначально предполагалось, что эта версия станет проверкой сетевых концепций DARPA. [6] В течение первого десятилетия работы Интернета стало очевидно, что необходимо разработать методы сохранения адресного пространства. В начале 1990-х годов, даже после перепроектирования системы адресации с использованием бесклассовой модели сети, стало ясно, что этого недостаточно для предотвращения исчерпания адресов IPv4 и необходимы дальнейшие изменения в инфраструктуре Интернета. [7]
Последние неназначенные блоки адресов верхнего уровня из 16 миллионов адресов IPv4 были выделены в феврале 2011 года Управлением по присвоению номеров Интернета (IANA) пяти региональным интернет-реестрам (RIR). [8] Тем не менее, каждый RIR по-прежнему имеет доступные пулы адресов и, как ожидается, продолжит использовать стандартные политики распределения адресов до тех пор, пока не останется один блок /8 бесклассовой междоменной маршрутизации (CIDR). После этого из RIR в локальный интернет-реестр (LIR) будут передаваться только блоки по 1024 адреса (/22) . По состоянию на сентябрь 2015 года все Азиатско-Тихоокеанский сетевой информационный центр (APNIC), Сетевой координационный центр Réseaux IP Européens (RIPE NCC), Сетевой информационный центр Латинской Америки и Карибского бассейна (LACNIC) и Американский реестр интернет-номеров (ARIN) имеют достиг этой стадии. [9] [10] [11] В результате Африканский сетевой информационный центр (AFRINIC) остается единственным региональным интернет-реестром, который все еще использует обычный протокол для распределения адресов IPv4. По состоянию на ноябрь 2018 года минимальное выделение AFRINIC составляет /22 или 1024 адреса IPv4. LIR может получить дополнительное распределение, когда будет использовано около 80 % всего адресного пространства. [12]
RIPE NCC объявил, что 25 ноября 2019 года у него полностью закончились адреса IPv4, [13] и призвал к большему прогрессу во внедрении IPv6.
Ожидается, что в обозримом будущем Интернет будет использовать IPv4 наряду с IPv6. [ кем? ]
В Интернете данные передаются в виде сетевых пакетов . IPv6 определяет новый формат пакетов , предназначенный для минимизации обработки заголовков пакетов маршрутизаторами. [2] [14] Поскольку заголовки пакетов IPv4 и пакетов IPv6 существенно различаются, эти два протокола несовместимы. Однако большинству протоколов транспортного и прикладного уровня для работы через IPv6 практически не требуются изменения; исключениями являются протоколы приложений, в которых встроены адреса интернет-уровня, такие как протокол передачи файлов (FTP) и протокол сетевого времени (NTP), где новый формат адреса может вызвать конфликты с синтаксисом существующего протокола.
Основным преимуществом IPv6 перед IPv4 является большее адресное пространство. Размер адреса IPv6 составляет 128 бит по сравнению с 32 битами в IPv4. [2] Таким образом, адресное пространство имеет 2 128 = 340 282 366 920 938 463 463 374 607 431 768 211 456 адресов (340 ундециллионов , приблизительно3,4 × 10 38 ). Некоторые блоки этого пространства и некоторые конкретные адреса зарезервированы для специального использования .
Хотя это адресное пространство очень велико, разработчики IPv6 не ставили перед собой задачу обеспечить географическое насыщение пригодными для использования адресами. Скорее, более длинные адреса упрощают распределение адресов, обеспечивают эффективную агрегацию маршрутов и позволяют реализовать специальные функции адресации. В IPv4 были разработаны сложные методы бесклассовой междоменной маршрутизации (CIDR), позволяющие максимально эффективно использовать небольшое адресное пространство. Стандартный размер подсети в IPv6 составляет 264 адреса , что примерно в четыре миллиарда раз превышает размер всего адресного пространства IPv4. Таким образом, фактическое использование адресного пространства в IPv6 будет небольшим, но управление сетью и эффективность маршрутизации улучшаются за счет большого пространства подсети и иерархического агрегирования маршрутов.
Многоадресная рассылка , передача пакета нескольким адресатам за одну операцию отправки, является частью базовой спецификации IPv6. В IPv4 это необязательная (хотя и обычно реализуемая) функция. [15] Групповая адресация IPv6 имеет те же функции и протоколы, что и многоадресная рассылка IPv4, но также обеспечивает изменения и улучшения, устраняя необходимость в определенных протоколах. IPv6 не реализует традиционную IP-трансляцию , т. е. передачу пакета всем хостам по прикрепленному каналу с использованием специального широковещательного адреса , и поэтому не определяет широковещательные адреса. В IPv6 тот же результат достигается путем отправки пакета в локальную группу многоадресной рассылки всех узлов по адресу ff02::1, что аналогично многоадресной рассылке IPv4 по адресу 224.0.0.1. IPv6 также обеспечивает новые реализации многоадресной рассылки, включая встраивание адресов точек встречи в адрес группы многоадресной рассылки IPv6, что упрощает развертывание междоменных решений. [16]
В IPv4 организации очень сложно получить хотя бы одно назначение группы многоадресной рассылки с глобальной маршрутизацией, а реализация междоменных решений является загадкой. [17] Присвоение одноадресных адресов локальным реестром Интернета для IPv6 имеет как минимум 64-битный префикс маршрутизации, что обеспечивает наименьший размер подсети, доступный в IPv6 (также 64 бита). При таком назначении можно встроить префикс одноадресного адреса в формат многоадресного адреса IPv6, сохраняя при этом 32-битный блок, младшие биты адреса или примерно 4,2 миллиарда идентификаторов групп многоадресной рассылки. Таким образом, каждый пользователь подсети IPv6 автоматически получает набор групп многоадресной рассылки с глобальной маршрутизацией, зависящих от источника, для приложений многоадресной рассылки. [18]
Хосты IPv6 настраиваются автоматически. Каждый интерфейс имеет самогенерируемый локальный адрес канала, и при подключении к сети выполняется разрешение конфликтов, а маршрутизаторы предоставляют сетевые префиксы через объявления маршрутизатора. [19] Конфигурацию маршрутизаторов без сохранения состояния можно обеспечить с помощью специального протокола перенумерации маршрутизаторов. [20] При необходимости хосты могут настроить дополнительные адреса с отслеживанием состояния через протокол динамической конфигурации хоста версии 6 (DHCPv6) или статические адреса вручную.
Как и IPv4, IPv6 поддерживает глобально уникальные IP-адреса . Конструкция IPv6 была призвана еще раз подчеркнуть сквозной принцип проектирования сети, который был первоначально задуман во время создания раннего Интернета, сделав преобразование сетевых адресов устаревшим. Таким образом, каждое устройство в сети доступно глобально напрямую с любого другого устройства.
Стабильный, уникальный IP-адрес с глобальной адресацией облегчит отслеживание устройства в сетях. Таким образом, такие адреса представляют собой особую проблему конфиденциальности для мобильных устройств, таких как ноутбуки и сотовые телефоны. [21] Для решения этих проблем конфиденциальности протокол SLAAC включает в себя то, что обычно называют «конфиденциальными адресами» или, точнее, «временными адресами», кодифицированными в RFC 4941, «Расширения конфиденциальности для автоматической настройки адресов без сохранения состояния в IPv6». [22] Временные адреса случайны и нестабильны. Типичное потребительское устройство ежедневно генерирует новый временный адрес и через неделю игнорирует трафик, адресованный старому адресу. Временные адреса используются по умолчанию в Windows, начиная с XP SP1, [23] macOS, начиная с (Mac OS X) 10.7, Android, начиная с 4.0, и iOS, начиная с версии 4.3. Использование временных адресов в дистрибутивах Linux различается. [24]
Перенумерация существующей сети для нового поставщика услуг связи с другими префиксами маршрутизации является серьезной задачей при использовании IPv4. [25] [26] Однако в случае IPv6 изменение префикса, объявленного несколькими маршрутизаторами, в принципе может привести к перенумерации всей сети, поскольку идентификаторы хостов (наименее значимые 64 бита адреса) могут быть самостоятельно настроены независимо друг от друга. хозяин. [19]
Метод генерации адреса SLAAC зависит от реализации. IETF рекомендует, чтобы адреса были детерминированными, но семантически непрозрачными. [27]
Безопасность интернет-протокола (IPsec) изначально была разработана для IPv6, но получила широкое распространение сначала в IPv4, для чего была переработана. IPsec был обязательной частью всех реализаций протокола IPv6, [2] и был рекомендован обмен ключами через Интернет (IKE), но в RFC 6434 включение IPsec в реализации IPv6 было понижено до рекомендации, поскольку считалось непрактичным требовать полной реализации IPsec. для всех типов устройств, которые могут использовать IPv6. Однако, начиная с RFC 4301, реализации протокола IPv6, которые реализуют IPsec, должны реализовывать IKEv2 и поддерживать минимальный набор криптографических алгоритмов . Это требование поможет сделать реализации IPsec более совместимыми между устройствами разных производителей. Заголовок аутентификации IPsec (AH) и заголовок инкапсулирующей безопасности (ESP) реализованы как заголовки расширения IPv6. [28]
Заголовок пакета в IPv6 проще, чем заголовок IPv4. Многие редко используемые поля были перенесены в дополнительные расширения заголовков. Заголовок пакета IPv6 упростил процесс пересылки пакетов маршрутизаторами . Хотя заголовки пакетов IPv6 как минимум в два раза превышают размер заголовков пакетов IPv4, обработка маршрутизаторами пакетов, содержащих только базовый заголовок IPv6, в некоторых случаях может быть более эффективной, поскольку на маршрутизаторах требуется меньше обработки из-за выравнивания заголовков. для соответствия обычным размерам слов . [2] [14] Однако многие устройства реализуют поддержку IPv6 программно (а не аппаратно), что приводит к очень плохой производительности обработки пакетов. [29] Кроме того, во многих реализациях использование заголовков расширений приводит к тому, что пакеты обрабатываются процессором маршрутизатора, что приводит к снижению производительности или даже проблемам безопасности. [30]
Более того, заголовок IPv6 не содержит контрольной суммы. Контрольная сумма заголовка IPv4 рассчитывается для заголовка IPv4 и должна пересчитываться маршрутизаторами каждый раз, когда время жизни (называемое лимитом переходов в протоколе IPv6) уменьшается на единицу. Отсутствие контрольной суммы в заголовке IPv6 способствует реализации сквозного принципа проектирования Интернета, который предполагает, что большая часть обработки в сети происходит на конечных узлах. Предполагается, что защита целостности данных, инкапсулированных в пакет IPv6, обеспечивается как канальным уровнем , так и обнаружением ошибок в протоколах более высокого уровня, а именно протоколе управления передачей (TCP) и протоколе пользовательских дейтаграмм (UDP) на транспортном уровне . слой . Таким образом, в то время как IPv4 позволяет заголовкам датаграмм UDP не иметь контрольной суммы (обозначается 0 в поле заголовка), IPv6 требует наличия контрольной суммы в заголовках UDP.
Маршрутизаторы IPv6 не выполняют фрагментацию IP . Хосты IPv6 должны либо выполнять обнаружение Path MTU , выполнять сквозную фрагментацию, либо отправлять пакеты размером не больше, чем максимальная единица передачи (MTU) по умолчанию, которая составляет 1280 октетов .
В отличие от мобильного IPv4, мобильный IPv6 избегает треугольной маршрутизации и поэтому столь же эффективен, как и собственный IPv6. Маршрутизаторы IPv6 также могут разрешать целым подсетям перемещаться на новую точку подключения маршрутизатора без изменения нумерации. [31]
Заголовок пакета IPv6 имеет минимальный размер 40 октетов (320 бит). Опции реализованы как расширения. Это дает возможность расширить протокол в будущем, не затрагивая структуру ядра пакета. [2] Однако в RFC 7872 отмечается, что некоторые сетевые операторы отбрасывают пакеты IPv6 с расширениями заголовков, когда они проходят через транзитные автономные системы .
IPv4 ограничивает пакеты до 65 535 (2 16 −1) октетов полезной нагрузки. Узел IPv6 может дополнительно обрабатывать пакеты, превышающие этот предел, называемые джамбограммами , размер которых может достигать 4 294 967 295 (2 32 −1) октетов. Использование джамбограмм может повысить производительность каналов с большим MTU . На использование Jumbograms указывает заголовок расширения Jumbo Payload Option. [32]
Пакет IPv6 состоит из двух частей: заголовка и полезной нагрузки .
Заголовок состоит из фиксированной части с минимальной функциональностью, необходимой для всех пакетов, и за ним могут следовать дополнительные расширения для реализации специальных функций.
Фиксированный заголовок занимает первые 40 октетов (320 бит) пакета IPv6. Он содержит адреса источника и назначения, класс трафика, количество переходов и тип дополнительного расширения или полезной нагрузки, которая следует за заголовком. Это поле следующего заголовка сообщает получателю, как интерпретировать данные, следующие за заголовком. Если пакет содержит опции, это поле содержит тип следующей опции. Поле «Следующий заголовок» последней опции указывает на протокол верхнего уровня, который содержится в полезной нагрузке пакета .
Текущее использование поля класса трафика IPv6 делит его между 6-битным полем кода дифференцированных услуг [33] и 2-битным полем явного уведомления о перегрузке. [34]
Заголовки расширений содержат параметры, которые используются для специальной обработки пакета в сети, например, для маршрутизации, фрагментации и обеспечения безопасности с использованием инфраструктуры IPsec .
Без специальных опций полезная нагрузка должна быть меньше 64 КБ . При использовании опции Jumbo Payload (в заголовке расширения Hop-By-Hop Options ) полезная нагрузка должна быть меньше 4 ГБ.
В отличие от IPv4, маршрутизаторы никогда не фрагментируют пакет. Ожидается, что хосты будут использовать Path MTU Discovery , чтобы сделать свои пакеты достаточно маленькими, чтобы они могли достичь пункта назначения без необходимости фрагментации. См. раздел «Фрагментация пакетов IPv6» .
Адреса IPv6 имеют длину 128 бит. В дизайне адресного пространства IPv6 реализована другая философия проектирования, чем в IPv4, в котором разделение на подсети использовалось для повышения эффективности использования небольшого адресного пространства. В IPv6 адресное пространство считается достаточно большим в обозримом будущем, и локальная подсеть всегда использует 64 бита для хостовой части адреса, обозначаемой как идентификатор интерфейса, в то время как наиболее значимые 64 бита используются для маршрутизации. префикс. [35] Хотя существует миф о невозможности сканирования подсетей IPv6, в RFC 7707 отмечается, что шаблоны, возникающие в результате некоторых методов и алгоритмов конфигурации адресов IPv6, позволяют сканировать адреса во многих реальных сценариях.
128 бит адреса IPv6 представлены в 8 группах по 16 бит каждая. Каждая группа записывается четырьмя шестнадцатеричными цифрами (иногда называемыми гекстетами [36] [37] или, более формально, гексадектами [38] и неофициально « придиркой» или «четверкой» [38] ), а группы разделяются двоеточиями (:). Примером такого представления является 2001:0db8:0000:0000:0000:ff00:0042:8329 .
Для удобства и ясности представление IPv6-адреса можно сократить с помощью следующих правил:
Пример применения этих правил:
Адрес обратной связи 0000:0000:0000:0000:0000:0000:0000:0001 определен в RFC 5156 и сокращается до ::1 с использованием обоих правил.
Поскольку адрес IPv6 может иметь более одного представления, IETF выпустил предлагаемый стандарт для их представления в тексте . [40]
Поскольку адреса IPv6 содержат двоеточия, а URL-адреса используют двоеточия для отделения хоста от номера порта, RFC2732 [41] указывает, что адрес IPv6, используемый как часть хоста URL-адреса, должен быть заключен в квадратные скобки, например http://[ 2001:db8:4006:812::200e] или http://[2001:db8:4006:812::200e]:8080/path/page.html.
Все интерфейсы хостов IPv6 требуют локального адреса канала , который имеет префикс fe80:: / 10 . За этим префиксом следуют 54 бита, которые можно использовать для создания подсетей (хотя обычно они равны нулю), а также 64-битный идентификатор интерфейса. Хост может вычислить и назначить идентификатор интерфейса самостоятельно без присутствия или сотрудничества внешнего сетевого компонента, такого как DHCP-сервер, в процессе, называемом автоконфигурацией локального адреса канала . [ нужна цитата ]
Младшие 64 бита локального адреса канала (суффикс) изначально были получены из MAC-адреса базовой сетевой интерфейсной карты. Поскольку этот метод назначения адресов может привести к нежелательным изменениям адреса при замене неисправных сетевых карт, а также поскольку он также страдает от ряда проблем безопасности и конфиденциальности, в RFC 8064 исходный метод на основе MAC заменен методом на основе хэша, указанным в RFC 7217. [ нужна ссылка ]
IPv6 использует новый механизм сопоставления IP-адресов с адресами канального уровня (например, MAC-адресами ), поскольку он не поддерживает метод широковещательной адресации, на котором основана функциональность протокола разрешения адресов (ARP) в IPv4. IPv6 реализует протокол обнаружения соседей (NDP, ND) на канальном уровне , который опирается на ICMPv6 и многоадресную передачу. [5] : 210 хостов IPv6 проверяют уникальность своих адресов IPv6 в локальной сети (LAN), отправляя сообщение запроса соседа с запросом адреса канального уровня IP-адреса. Если какой-либо другой хост в локальной сети использует этот адрес, он отвечает. [42]
Хост, подключающий новый интерфейс IPv6, сначала генерирует уникальный локальный адрес канала, используя один из нескольких механизмов, предназначенных для генерации уникального адреса. Если обнаружен неуникальный адрес, хост может повторить попытку с новым сгенерированным адресом. После того как уникальный локальный адрес канала установлен, хост IPv6 определяет, подключена ли локальная сеть по этому каналу к какому-либо интерфейсу маршрутизатора , поддерживающему IPv6. Это делается путем отправки сообщения запроса маршрутизатора ICMPv6 группе многоадресной рассылки all-routers [43] с ее локальным адресом канала в качестве источника. Если после заданного количества попыток ответа нет, хост приходит к выводу, что маршрутизаторы не подключены. Если он получает ответ, известный как объявление маршрутизатора, от маршрутизатора, ответ включает информацию о конфигурации сети, позволяющую установить глобально уникальный адрес с соответствующим префиксом одноадресной сети. [44] Также есть два бита флага, которые сообщают хосту, следует ли ему использовать DHCP для получения дополнительной информации и адресов:
Процедура назначения глобальных адресов аналогична построению локальных адресов. Префикс предоставляется из рекламы роутера в сети. Объявления с несколькими префиксами приводят к настройке нескольких адресов. [42]
Для автоконфигурации адресов без сохранения состояния (SLAAC) требуется блок из 64 адресов, как определено в RFC 4291. Локальным Интернет-реестрам назначается не менее 32 блоков, которые они делят между подчиненными сетями. [45] Первоначальная рекомендация предусматривала назначение 48-й подсети сайтам конечных потребителей ( RFC 3177). Это было заменено RFC 6177, который «рекомендует давать домашним сайтам значительно больше, чем один 64» , но также не рекомендует присваивать каждому домашнему сайту 48 ». 56 с конкретно рассматриваются. Еще неизвестно, выполнят ли интернет-провайдеры эту рекомендацию. Например, во время первоначальных испытаний клиентам Comcast была предоставлена одна сеть 64 . [46]
В системе доменных имен (DNS) имена хостов сопоставляются с адресами IPv6 с помощью записей ресурсов AAAA («quad-A»). Для обратного разрешения IETF зарезервировал домен ip6.arpa , где пространство имен иерархически разделено однозначным шестнадцатеричным представлением полубайтовых единиц (4 бита) адреса IPv6. Эта схема определена в RFC 3596.
Когда узел с двойным стеком запрашивает DNS-сервер для разрешения полного доменного имени (FQDN), DNS-клиент узла отправляет два DNS-запроса: один запрашивает записи A, а другой запрашивает записи AAAA. Операционная система хоста может быть настроена с предпочтением правил выбора адреса RFC 6724. [47]
Альтернативный тип записи использовался в ранних реализациях DNS для IPv6, предназначенных для облегчения перенумерации сети, записей A6 для прямого поиска и ряда других нововведений, таких как метки битовых строк и записи DNAME . Он определен в RFC 2874 и его ссылках (с дальнейшим обсуждением плюсов и минусов обеих схем в RFC 3364), но объявлен устаревшим до экспериментального статуса ( RFC 3363).
Не предполагается, что IPv6 мгновенно вытеснит IPv4. Оба протокола будут продолжать работать одновременно в течение некоторого времени. Таким образом, необходимы механизмы перехода IPv6 , чтобы позволить хостам IPv6 получать доступ к службам IPv4 и позволить изолированным хостам и сетям IPv6 связываться друг с другом через инфраструктуру IPv4. [48]
По словам Сильвии Хаген , реализация двойного стека IPv4 и IPv6 на устройствах — это самый простой способ перехода на IPv6. [49] Многие другие механизмы перехода используют туннелирование для инкапсуляции трафика IPv6 внутри сетей IPv4 и наоборот. Это несовершенное решение, которое уменьшает максимальную единицу передачи (MTU) канала и, следовательно, усложняет Path MTU Discovery и может увеличить задержку . [50] [51]
Реализации IP с двойным стеком обеспечивают полные стеки протоколов IPv4 и IPv6 в операционной системе компьютера или сетевого устройства поверх общей реализации физического уровня , такой как Ethernet . Это позволяет хостам с двойным стеком одновременно участвовать в сетях IPv6 и IPv4. Метод определен в RFC 4213. [52]
Устройство с двухстековой реализацией в операционной системе имеет адрес IPv4 и IPv6 и может взаимодействовать с другими узлами в локальной сети или Интернете, используя IPv4 или IPv6. Протокол DNS используется обоими протоколами IP для разрешения полных доменных имен и IP-адресов, но двойной стек требует, чтобы разрешающий DNS-сервер мог разрешать оба типа адресов. Такой DNS-сервер с двойным стеком хранит адреса IPv4 в записях A и адреса IPv6 в записях AAAA. В зависимости от пункта назначения, который необходимо разрешить, DNS-сервер имен может возвращать IP-адрес IPv4 или IPv6 или оба. Механизм выбора адреса по умолчанию или предпочтительный протокол необходимо настроить либо на хостах, либо на DNS-сервере. IETF опубликовал Happy Eyeballs , чтобы помочь приложениям с двойным стеком, чтобы они могли подключаться как по IPv4, так и по IPv6, но предпочитают соединение IPv6, если оно доступно . Однако двойной стек также необходимо реализовать на всех маршрутизаторах между хостом и службой, для которой DNS-сервер вернул адрес IPv6. Клиенты с двойным стеком должны быть настроены на предпочтение IPv6 только в том случае, если сеть может пересылать пакеты IPv6 с использованием версий протоколов маршрутизации IPv6 . При наличии двухстековых сетевых протоколов уровень приложений можно перенести на IPv6. [53]
Хотя двойной стек поддерживается основными поставщиками операционных систем и сетевых устройств, устаревшее сетевое оборудование и серверы не поддерживают IPv6.
Поставщики интернет-услуг (ISP) все чаще предоставляют своим корпоративным и частным клиентам общедоступные глобальные одноадресные адреса IPv6. Однако если IPv4 все еще используется в локальной сети (LAN) и интернет-провайдер может предоставить только один общедоступный адрес IPv6, адреса локальной сети IPv4 преобразуются в общедоступный адрес IPv6 с использованием NAT64 , преобразования сетевых адресов (NAT). ) механизм. Некоторые интернет-провайдеры не могут предоставить своим клиентам общедоступные адреса IPv4 и IPv6, тем самым поддерживая двухстековую сеть, поскольку некоторые интернет-провайдеры исчерпали свой глобально маршрутизируемый пул адресов IPv4. Тем временем клиенты интернет-провайдеров все еще пытаются подключиться к веб-серверам IPv4 и другим направлениям. [54]
Значительный процент интернет-провайдеров во всех зонах регионального реестра Интернета (RIR) получил адресное пространство IPv6. Сюда входят многие крупнейшие мировые интернет-провайдеры и операторы мобильных сетей , такие как Verizon Wireless , StarHub Cable , Chubu Telecommunication , Kabel Deutschland , Swisscom , T-Mobile , Internode и Telefónica . [55]
Хотя некоторые интернет-провайдеры по-прежнему выделяют клиентам только адреса IPv4, многие интернет-провайдеры выделяют своим клиентам только IPv6 или двойной стек IPv4 и IPv6. Интернет-провайдеры сообщают, что доля трафика IPv6 от клиентов в их сети составляет от 20% до 40%, но к середине 2017 года трафик IPv6 по-прежнему составлял лишь часть общего трафика в нескольких крупных точках обмена Интернетом (IXP). AMS-IX сообщил, что этот показатель составляет 2%, а SeattleIX сообщил о 7%. Опрос 2017 года показал, что многие клиенты DSL, обслуживаемые интернет-провайдером с двойным стеком, не запрашивали DNS-серверы для преобразования полных доменных имен в адреса IPv6. Опрос также показал, что большая часть трафика с ресурсов веб-сервера, поддерживающего IPv6, по-прежнему запрашивалась и обслуживалась через IPv4, в основном из-за клиентов интернет-провайдеров, которые не использовали функцию двойного стека, предоставляемую их интернет-провайдером, и в меньшей степени из-за клиентов. интернет-провайдеров, поддерживающих только IPv4. [56]
Техническая основа туннелирования или инкапсуляции пакетов IPv6 в пакеты IPv4 изложена в RFC 4213. Когда магистраль Интернета работала только с IPv4, одним из часто используемых протоколов туннелирования был 6to4 . [57] Туннелирование Teredo также часто использовалось для интеграции локальных сетей IPv6 с магистральной сетью Интернета IPv4. Teredo описан в RFC 4380 и позволяет локальным сетям IPv6 туннелировать через сети IPv4 путем инкапсуляции пакетов IPv6 в UDP. Ретранслятор Teredo — это маршрутизатор IPv6, который является посредником между сервером Teredo и собственной сетью IPv6. Ожидалось, что 6to4 и Teredo будут широко распространены до тех пор, пока сети интернет-провайдеров не перейдут на собственный IPv6, но к 2014 году статистика Google показала, что использование обоих механизмов упало почти до 0. [58]
Гибридные реализации IPv6/IPv4 с двойным стеком распознают особый класс адресов — адреса IPv6, сопоставленные с IPv4. [59] [60] Эти адреса обычно записываются с 96-битным префиксом в стандартном формате IPv6, а остальные 32 бита записываются в обычной десятичной записи IPv4.
Адреса в этой группе состоят из 80-битного префикса нулей, следующие 16 бит — единицы, а оставшиеся, наименее значимые 32 бита содержат адрес IPv4. Например, ::ffff:192.0.2.128 представляет IPv4-адрес 192.0.2.128 . Предыдущий формат, называемый «IPv4-совместимым адресом IPv6», был ::192.0.2.128 ; однако этот метод устарел. [60]
Из-за значительных внутренних различий между стеками протоколов IPv4 и IPv6 некоторые функции нижнего уровня, доступные программистам в стеке IPv6, не работают одинаково при использовании с адресами, сопоставленными с IPv4. Некоторые распространенные стеки IPv6 не реализуют функцию сопоставления адресов IPv4 либо потому, что стеки IPv6 и IPv4 являются отдельными реализациями (например, Microsoft Windows 2000, XP и Server 2003), либо из соображений безопасности ( OpenBSD ). [61] В этих операционных системах программа должна открывать отдельный сокет для каждого используемого ею IP-протокола. В некоторых системах, например, в ядре Linux , NetBSD и FreeBSD , эта функция контролируется опцией сокета IPV6_V6ONLY. [62] : 22
Префикс адреса 64:ff9b::/96 представляет собой класс встроенных в IPv4 адресов IPv6 для использования в методах перехода NAT64 . [63] Например, 64:ff9b::192.0.2.128 представляет IPv4-адрес 192.0.2.128 .
Использование IPv6 может привести к ряду последствий для безопасности. Некоторые из них могут быть связаны с самими протоколами IPv6, а другие — с недостатками реализации. [64] [65]
Добавление узлов, у которых IPv6 включен по умолчанию производителем программного обеспечения, может привести к непреднамеренному созданию теневых сетей , в результате чего трафик IPv6 будет поступать в сети, в которых реализовано только управление безопасностью IPv4. Это также может произойти при обновлении операционной системы, когда новая операционная система включает IPv6 по умолчанию, а старая — нет. Если не обновить инфраструктуру безопасности для поддержки IPv6, трафик IPv6 может обходить ее. [66] Теневые сети возникли в бизнес-сетях, в которых предприятия заменяют системы Windows XP , в которых по умолчанию не включен стек IPv6, на системы Windows 7 , в которых он есть. [67] Поэтому некоторые разработчики стека IPv6 рекомендуют отключить отображаемые адреса IPv4 и вместо этого использовать сеть с двойным стеком, где необходима поддержка как IPv4, так и IPv6. [68]
Исследования показали, что использование фрагментации можно использовать для обхода контроля сетевой безопасности, аналогично IPv4. В результате RFC 7112 требует, чтобы первый фрагмент пакета IPv6 содержал всю цепочку заголовков IPv6, поэтому некоторые очень патологические случаи фрагментации запрещены. Кроме того, в результате исследования обхода RA-Guard в RFC 7113, RFC 6980 объявил устаревшим использование фрагментации с помощью Neighbor Discovery и не одобрял использование фрагментации с Secure Neighbor Discovery (SEND).
В связи с ожидаемым глобальным ростом Интернета в начале 1990-х годов Инженерная группа Интернета (IETF) начала разработку протокола IP следующего поколения. [5] : 209 К началу 1992 года появилось несколько предложений по расширенной системе адресации Интернета, а к концу 1992 года IETF объявила о призыве к выпуску официальных документов. [69] В сентябре 1993 года IETF создал временную специальную зону IP Next Generation (IPng) для решения таких проблем. Новое подразделение возглавляли Эллисон Мэнкин и Скотт Брэднер , и в нем было дирекция из 15 инженеров разного происхождения для определения направления и предварительного рассмотрения документов: [7] [70] Членами рабочей группы были Дж. Аллард (Microsoft), Стив Белловин (AT&T), Джим Баунд (Digital Equipment Corporation), Росс Каллон (Wellfleet), Брайан Карпентер (ЦЕРН), Дэйв Кларк (MIT), Джон Карран (NEARNET), Стив Диринг (Xerox), Дино Фариначчи (Cisco), Пол Фрэнсис (NTT), Эрик Флейшманн (Boeing), Марк Кноппер (Ameritech), Грег Миншалл (Novell), Роб Ульманн (Lotus) и Ликсия Чжан (Xerox). [71]
Рабочая группа по разработке Интернета приняла модель IPng 25 июля 1994 года, сформировав несколько рабочих групп по IPng. [7] К 1996 году была выпущена серия RFC , определяющая версию 6 Интернет-протокола (IPv6), начиная с RFC 1883. (Версия 5 использовалась экспериментальным протоколом Интернет-потока .)
Первым RFC, стандартизировавшим IPv6, был RFC 1883 в 1995 году [72] , который устарел благодаря RFC 2460 в 1998 году. [5] : 209 В июле 2017 года этот RFC был заменен RFC 8200, который повысил статус IPv6 до «Интернет-стандарта» ( самый высокий уровень зрелости протоколов IETF). [3]
Внедрение в 1993 году бесклассовой междоменной маршрутизации (CIDR) для маршрутизации и распределения IP-адресов в Интернете, а также широкое использование трансляции сетевых адресов (NAT) отложили исчерпание адресов IPv4 , чтобы обеспечить возможность развертывания IPv6, которое началось в середине -2000-е.
Университеты были одними из первых, кто внедрил IPv6. Технологический институт штата Вирджиния развернул IPv6 в пробном месте в 2004 году, а затем расширил развертывание IPv6 по всей сети кампуса . К 2016 году 82% трафика в их сети использовало IPv6. Имперский колледж Лондона начал экспериментальное развертывание IPv6 в 2003 году, и к 2016 году трафик IPv6 в их сетях составлял в среднем от 20% до 40%. Значительная часть этого IPv6-трафика была создана благодаря сотрудничеству в области физики высоких энергий с CERN , которое полностью полагается на IPv6. [73]
Система доменных имен (DNS) поддерживает IPv6 с 2008 года. В том же году IPv6 был впервые использован на крупном мировом мероприятии во время летних Олимпийских игр 2008 года в Пекине . [74] [75]
К 2011 году все основные операционные системы, используемые на персональных компьютерах и серверных системах, имели реализацию IPv6 промышленного качества. Сотовые телефонные системы представляют собой обширное поле для развертывания устройств, использующих Интернет-протокол, поскольку услуги мобильной телефонной связи осуществили переход от технологий 3G к технологиям 4G , в которых голос предоставляется как услуга передачи голоса по IP (VoIP), которая будет использовать усовершенствования IPv6. В 2009 году американский оператор сотовой связи Verizon опубликовал технические характеристики устройств для работы в своих сетях «следующего поколения». [76] Спецификация предписывала работу IPv6 в соответствии со спецификациями версии 3GPP 8 (март 2009 г.) и объявляла IPv4 устаревшим как необязательную возможность. [76]
Продолжалось внедрение IPv6 в магистральной сети Интернет . В 2018 году только 25,3% из примерно 54 000 автономных систем рекламировали префиксы IPv4 и IPv6 в глобальной базе данных маршрутизации протокола пограничного шлюза (BGP). Еще 243 сети рекламировали только префикс IPv6. Магистральные транзитные сети Интернета, предлагающие поддержку IPv6, существовали во всех странах мира, за исключением некоторых частей Африки , Ближнего Востока и Китая. [77] : 6 К середине 2018 года некоторые крупные европейские интернет-провайдеры широкополосного доступа внедрили IPv6 для большинства своих клиентов. Sky UK обеспечила более 86% своих клиентов IPv6, Deutsche Telekom обеспечила 56% внедрения IPv6, XS4ALL в Нидерландах имела 73% внедрения, а в Бельгии интернет-провайдеры широкополосного доступа VOO и Telenet имели 73% и 63% внедрения IPv6 соответственно. [77] : 7 В США у широкополосного интернет-провайдера Xfinity уровень внедрения IPv6 составил около 66%. В 2018 году Xfinity сообщила о 36,1 миллионах пользователей IPv6, а AT&T сообщила о 22,3 миллионах пользователей IPv6. [77] : 7–8