Адрес протокола Интернета версии 6 ( адрес IPv6 ) — это числовая метка, которая используется для идентификации и определения местоположения сетевого интерфейса компьютера или сетевого узла , участвующего в компьютерной сети с использованием IPv6 . IP-адреса включаются в заголовок пакета для указания источника и пункта назначения каждого пакета. IP-адрес пункта назначения используется для принятия решений о маршрутизации IP-пакетов в другие сети.
IPv6 является преемником первой адресной инфраструктуры Интернета , Интернет -протокола версии 4 (IPv4). В отличие от IPv4, который определял IP-адрес как 32-битное значение, адреса IPv6 имеют размер 128 бит. Поэтому, по сравнению с ним, IPv6 имеет значительно увеличенное адресное пространство .
Адреса IPv6 классифицируются по основным методам адресации и маршрутизации, распространенным в сетях: одноадресная адресация, произвольная адресация и многоадресная адресация. [1]
Адрес unicast идентифицирует один сетевой интерфейс. Интернет-протокол доставляет пакеты, отправленные на адрес unicast, на этот конкретный интерфейс.
Адрес anycast назначается группе интерфейсов, обычно принадлежащих разным узлам. Пакет, отправленный на адрес anycast, доставляется только на один из интерфейсов-участников, обычно на ближайший хост, в соответствии с определением расстояния протокола маршрутизации. Адреса anycast нелегко идентифицировать, они имеют тот же формат, что и адреса unicast, и отличаются только присутствием в сети в нескольких точках. Почти любой адрес unicast может использоваться как адрес anycast.
Многоадресный адрес также используется несколькими хостами, которые получают многоадресный адрес назначения, участвуя в протоколе многоадресного распределения среди сетевых маршрутизаторов. Пакет, отправленный на многоадресный адрес , доставляется на все интерфейсы, которые присоединились к соответствующей многоадресной группе. IPv6 не реализует широковещательную адресацию . Традиционная роль широковещательной рассылки сводится к многоадресной адресации для многоадресной группы all-nodes link-local ff02::1 . Однако использование группы all-nodes не рекомендуется, и большинство протоколов IPv6 используют многоадресные группы link-local, специфичные для протокола, чтобы не мешать каждому интерфейсу в данной сети.
Адрес IPv6 состоит из 128 бит. [1] Для каждой из основных методологий адресации и маршрутизации распознаются различные форматы адресов путем деления 128 бит адреса на группы бит и использования установленных правил для связывания значений этих групп бит со специальными функциями адресации.
Адреса Unicast и Anycast обычно состоят из двух логических частей: 64-битного сетевого префикса, используемого для маршрутизации , и 64-битного идентификатора интерфейса, используемого для идентификации сетевого интерфейса хоста.
Сетевой префикс ( префикс маршрутизации в сочетании с идентификатором подсети ) содержится в самых значимых 64 битах адреса. Размер префикса маршрутизации может варьироваться; больший размер префикса означает меньший размер идентификатора подсети. Биты поля идентификатора подсети доступны сетевому администратору для определения подсетей в данной сети. 64-битный идентификатор интерфейса автоматически устанавливается случайным образом, получается с сервера DHCPv6 или назначается вручную. (Исторически он автоматически генерировался из MAC-адреса интерфейса с использованием модифицированного формата EUI-64 , но этот метод теперь не рекомендуется из соображений конфиденциальности. [2] )
Уникальные локальные адреса — это адреса, аналогичные частным сетевым адресам IPv4.
Поле префикса содержит двоичное значение 1111110. Бит L равен единице для локально назначенных адресов; диапазон адресов с L, установленным на ноль, в настоящее время не определен. Случайное поле выбирается случайным образом один раз, в начале префикса маршрутизации / 48 .
Локальный адрес также основан на идентификаторе интерфейса, но использует другой формат для сетевого префикса.
Поле префикса содержит двоичное значение 1111111010. Следующие 54 нуля делают общий сетевой префикс одинаковым для всех локальных адресов связи ( префикс локального адреса связи fe80:: / 64 ), что делает их немаршрутизируемыми.
Многоадресные адреса формируются в соответствии с несколькими конкретными правилами форматирования в зависимости от приложения.
Для всех многоадресных адресов поле префикса содержит двоичное значение 11111111.
В настоящее время определены три из четырех битов флага в поле flg ; [1] старший бит флага зарезервирован для будущего использования.
Четырехбитное поле области действия ( sc ) используется для указания того, где адрес является действительным и уникальным.
Кроме того, поле области действия используется для идентификации специальных многоадресных адресов, таких как запрошенный узел .
Поле sc(ope) содержит двоичное значение 0010 (link-local). Адреса многоадресной рассылки запрошенного узла вычисляются как функция адресов одноадресной рассылки или произвольной рассылки узла. Адрес многоадресной рассылки запрошенного узла создается путем копирования последних 24 бит адреса одноадресной рассылки или произвольной рассылки в последние 24 бита адреса многоадресной рассылки.
Многоадресные адреса в области ссылок используют сопоставимый формат. [6]
Адрес IPv6 представлен в виде восьми групп по четыре шестнадцатеричных цифры, каждая группа представляет 16 бит [a] Группы разделены двоеточиями (:). Пример адреса IPv6:
Стандарты обеспечивают гибкость в представлении адресов IPv6. Полное представление восьми четырехзначных групп может быть упрощено несколькими методами, исключающими части представления. В целом, представления сокращаются настолько, насколько это возможно. Однако эта практика усложняет несколько общих операций, а именно поиск определенного адреса или шаблона адреса в текстовых документах или потоках и сравнение адресов для определения эквивалентности. Для смягчения этих осложнений IETF определил канонический формат для отображения адресов IPv6 в тексте: [9]
Эти методы могут привести к очень коротким представлениям для адресов IPv6. Например, адрес localhost (loopback), 0:0:0:0:0:0:0:1 , и неопределенный адрес IPv6, 0:0:0:0:0:0:0:0:0 , сокращаются до ::1 и :: соответственно.
При переходе Интернета с IPv4 на IPv6 типично работать в среде смешанной адресации. Для таких случаев использования была введена специальная нотация, которая выражает IPv4-отображенные и IPv4-совместимые адреса IPv6 путем записи наименее значимых 32 бит адреса в привычной точечно-десятичной нотации IPv4 , тогда как 96 наиболее значимых бит записываются в формате IPv6. Например, IPv4-отображенный адрес IPv6 ::ffff:c000:0280 записывается как ::ffff:192.0.2.128 , таким образом четко выражая исходный адрес IPv4, который был сопоставлен с IPv6.
Сеть IPv6 использует блок адресов, который представляет собой непрерывную группу адресов IPv6 размером, равным степени двойки . Начальный набор битов адресов идентичен для всех хостов в данной сети и называется адресом сети или префиксом маршрутизации .
Диапазоны сетевых адресов записываются в нотации CIDR . Сеть обозначается первым адресом в блоке (заканчивающимся всеми нулями), косой чертой (/) и десятичным значением, равным размеру префикса в битах. Например, сеть, записанная как 2001:db8:1234:: / 48, начинается с адреса 2001:db8:1234:0000:0000:0000:0000:0000 и заканчивается на 2001:db8:1234:ffff:ffff:ffff:ffff:ffff .
Префикс маршрутизации адреса интерфейса может быть указан непосредственно с адресом с использованием нотации CIDR. Например, конфигурация интерфейса с адресом 2001:db8:a::123, подключенного к подсети 2001:db8:a:: / 64, записывается как 2001:db8:a::123 / 64 .
Размер блока адресов указывается путем записи слэша (/) с последующим числом в десятичной системе счисления, значение которого является длиной сетевого префикса в битах. Например, блок адресов с 48 битами в префиксе обозначается как / 48 . Такой блок содержит 2 128 − 48 = 2 80 адресов. Чем меньше длина сетевого префикса, тем больше блок: блок / 21 в 8 раз больше блока / 24 .
Символы двоеточия (:) в адресах IPv6 могут конфликтовать с установленным синтаксисом идентификаторов ресурсов, таких как URI и URL . Двоеточие традиционно используется для завершения пути к хосту перед номером порта . [10] Чтобы устранить этот конфликт, буквальные адреса IPv6 заключаются в квадратные скобки в таких идентификаторах ресурсов, например:
Если URL также содержит номер порта, запись выглядит следующим образом:
где конечный 443 — это номер порта примера.
Для адресов с областью действия, отличной от глобальной (как описано в § Области действия адресов), и в частности для локальных адресов, выбор сетевого интерфейса для отправки пакета может зависеть от того, к какой зоне принадлежит адрес. Один и тот же адрес может быть допустимым в разных зонах и использоваться разными хостами в каждой из этих зон. Даже если один и тот же адрес не используется в разных зонах, префиксы адресов для адресов в этих зонах могут быть идентичными, что делает операционную систему неспособной выбрать исходящий интерфейс на основе информации в таблице маршрутизации (которая основана на префиксах).
Для того чтобы разрешить неоднозначность в текстовых адресах,Индекс зоны должен быть добавлен к адресу. Индекс зоны отделяется от адреса знакомпроцента(%).[11]Хотя числовые индексы зоны должны поддерживаться повсеместно, индекс зоны может также быть строкой, зависящей от реализации. Адрес локальной ссылки
может быть выражено
или
Первый вариант (использование имени интерфейса ) является общепринятым в большинстве Unix -подобных операционных систем (например, BSD , Linux , macOS ). [12] Последний вариант (использование номера интерфейса) является единственным синтаксисом в Microsoft Windows , но поскольку поддержка этого синтаксиса является обязательной по стандарту, он также доступен в других операционных системах. [c]
Операционные системы на базе BSD (включая macOS) также поддерживают альтернативный, нестандартный синтаксис, где числовой индекс зоны кодируется во втором 16-битном слове адреса. Например:
Во всех операционных системах, упомянутых выше, индекс зоны для локальных адресов ссылок фактически относится к интерфейсу, а не к зоне. Поскольку несколько интерфейсов могут принадлежать к одной и той же зоне (например, при подключении к одной и той же сети), на практике два адреса с разными идентификаторами зон могут быть фактически эквивалентны и ссылаться на один и тот же хост на одной и той же ссылке. [d]
При использовании в унифицированных идентификаторах ресурсов (URI) использование знака процента приводит к синтаксическому конфликту, поэтому его необходимо экранировать с помощью процентного кодирования , [13] например:
В операционных системах Microsoft Windows адреса IPv4 являются допустимыми идентификаторами местоположений в именах путей Uniform Naming Convention (UNC). Однако двоеточие является недопустимым символом в имени пути UNC. Таким образом, использование адресов IPv6 также является недопустимым в именах UNC. По этой причине Microsoft реализовала алгоритм транскрипции для представления адреса IPv6 в форме доменного имени, которое может использоваться в путях UNC. Для этой цели Microsoft зарегистрировала и зарезервировала домен второго уровня ipv6-literal.net в Интернете (хотя они отказались от домена в январе 2014 года [14] ). Адреса IPv6 транскрибируются как имя хоста или имя поддомена в этом пространстве имен следующим образом:
пишется как
Эта нотация автоматически разрешается локально программным обеспечением Microsoft, без каких-либо запросов к серверам имен DNS.
Если адрес IPv6 содержит индекс зоны, он добавляется к части адреса после символа «s»:
пишется как
Каждый адрес IPv6, за исключением неопределенного адреса ( :: ), имеет область действия [11] , которая определяет , в какой части сети он действителен.
Для одноадресных адресов определены две области действия: локальная для канала и глобальная.
Адреса Link-local и адрес loopback имеют область действия link-local , что означает, что они могут использоваться только в одной напрямую подключенной сети. Все остальные адреса (включая уникальные локальные адреса ) имеют глобальную (или универсальную ) область действия, что означает, что они потенциально маршрутизируемы глобально и могут использоваться для подключения к адресам с глобальной областью действия в любом месте или к адресам с областью действия link-local в напрямую подключенной сети.
Уникальные локальные адреса имеют глобальную область действия, но они не администрируются глобально. В результате, только другие хосты в том же административном домене (например, организация) или в сотрудничающем административном домене могут достичь таких адресов, если они правильно маршрутизированы. Поскольку их область действия глобальна, эти адреса действительны в качестве исходного адреса при взаимодействии с любым другим адресом глобальной области действия, даже если может быть невозможно направить пакеты от пункта назначения обратно к источнику.
Адреса anycast синтаксически идентичны и неотличимы от адресов unicast. Единственное их отличие — административное. Поэтому области действия адресов anycast такие же, как и для адресов unicast.
Для многоадресных адресов четыре младших бита второго октета адреса ( ff0 s :: ) определяют адрес s , т.е. домен, в котором должен распространяться многоадресный пакет. Предопределенные и зарезервированные области действия:
Все остальные области не назначены и доступны администраторам для определения дополнительных регионов.
Управление процессом распределения адресов IPv6 делегировано Internet Assigned Numbers Authority (IANA) [16] Советом по архитектуре Интернета и Руководящей группой по инжинирингу Интернета . Его основная функция — распределение больших блоков адресов региональным интернет-регистраторам (RIR), которым делегирована задача распределения поставщикам сетевых услуг и другим локальным регистраторам. IANA ведет официальный список распределения адресного пространства IPv6 с декабря 1995 года. [17]
Для того, чтобы обеспечить эффективное агрегирование маршрутов , тем самым уменьшая размер таблиц маршрутизации Интернета, только одна восьмая часть общего адресного пространства ( 2000:: / 3 ) в настоящее время выделяется для использования в Интернете . Остальная часть адресного пространства IPv6 зарезервирована для будущего использования или для специальных целей. Адресное пространство назначается RIR блоками от / 23 до / 12 . [18]
RIR назначают меньшие блоки локальным интернет-реестрам , которые распределяют их среди пользователей. Обычно они имеют размеры от / 19 до / 32 . [19] [20] [21] Глобальные записи назначения одноадресной рассылки можно найти на различных RIR или других веб-сайтах. [22]
Затем адреса обычно распределяются между конечными пользователями блоками размером от / 48 до / 56. [23] Адреса IPv6 назначаются организациям гораздо большими блоками по сравнению с назначением адресов IPv4 — рекомендуемое распределение — это блок / 48 , содержащий 2 80 адресов, что составляет 2 48 или около того.В 2,8 × 10 14 раз больше, чем все адресное пространство IPv4 из 2 32 адресов и примерно7,2 × 10 16 раз больше, чем / 8 блоков адресов IPv4, которые являются крупнейшими распределениями адресов IPv4. Однако общий пул достаточен для обозримого будущего, поскольку их 2 128 (ровно 340 282 366 920 938 463 463 374 607 431 768 211 456) или около3,4 × 1038 ( 340 ундециллионов ) уникальных адресов IPv6.
Каждый RIR может разделить каждый из своих множественных / 23 блоков на 512 / 32 блоков, как правило, по одному для каждого ISP; ISP может разделить свой / 32 блок на 65 536 / 48 блоков, как правило, по одному для каждого клиента; [24] клиенты могут создать 65 536 / 64 сетей из своего назначенного / 48 блока, каждый из которых будет иметь 2 64 (18 446 744 073 709 551 616) адресов. Напротив, все адресное пространство IPv4 имеет только 2 32 (ровно 4 294 967 296 или около4,3 × 10 9 ) адресов.
По замыслу, только небольшая часть адресного пространства будет активно использоваться. Большое адресное пространство гарантирует, что адреса почти всегда доступны, что делает использование трансляции сетевых адресов (NAT) для сохранения адресов ненужным. NAT все чаще используется для сетей IPv4, чтобы помочь уменьшить исчерпание адресов IPv4 .
Провайдер-независимое адресное пространство назначается непосредственно конечному пользователю региональными интернет-регистраторами из специального диапазона 2001:678:: / 29 и позволяет клиентам менять провайдера без перенумерации своих сетей.
Точкам обмена интернет-трафиком (IXP) назначаются специальные адреса из диапазонов 2001:7f8:: / 32 , 2001:504:: / 30 и 2001:7fa:: / 32 [25] для связи с подключенными к ним интернет-провайдерами .
Корневым серверам имен были назначены адреса из диапазона 2001:7f8:: / 29. [26 ]
Самый низкий адрес в каждом префиксе подсети (идентификатор интерфейса, установленный на все нули) зарезервирован как адрес произвольной рассылки подсети-маршрутизатора . [1] Приложения могут использовать этот адрес при обращении к любому из доступных маршрутизаторов, поскольку пакеты, отправленные на этот адрес, доставляются только одному маршрутизатору.
128 самых высоких адресов в каждом префиксе подсети / 64 зарезервированы для использования в качестве адресов anycast. [27] Обычно эти адреса имеют первые 57 бит идентификатора интерфейса, установленные на 1, за которыми следует 7-битный идентификатор anycast. Префиксы для сети могут иметь любую длину для целей маршрутизации, но подсети должны иметь длину 64 бита. Адрес со значением 0x7e в 7 младших битах определяется как адрес anycast мобильных домашних агентов IPv6. Адрес со значением 0x7f (все биты 1) зарезервирован и не может использоваться. Больше никаких назначений из этого диапазона не было сделано, поэтому все оставшиеся значения, от 0x00 до 0x7d, также зарезервированы.
В IPv6 есть ряд адресов, имеющих особое значение. [28] IANA ведет реестр этих адресов специального назначения. [29] Они составляют менее 2% всего адресного пространства:
Приложения могут прослушивать один или несколько определенных интерфейсов для входящих подключений, которые отображаются в списках активных интернет-подключений по определенному IP-адресу (и номеру порта, разделенному двоеточием). Когда отображается неуказанный адрес, это означает, что приложение прослушивает входящие подключения на всех доступных интерфейсах.
В конфигурации таблицы маршрутизации неуказанный адрес может использоваться для представления адреса маршрута по умолчанию (соответствующего 0.0.0.0 / 0 в IPv4) для адресов назначения (одноадресных, многоадресных и других), не указанных в другом месте таблицы маршрутизации.
IANA зарезервировала так называемый блок адресов Sub-TLA ID для специальных назначений [28] [41] 2001 :: / 23 (разделенный на диапазон из 64 сетевых префиксов 2001:0000:: / 29 по 2001:01f8:: / 29 ). В настоящее время выделены три назначения из этого блока:
См. § Устаревшие и неактуальные адреса.
Адреса многоадресной рассылки ff0x:: , где x — любое шестнадцатеричное значение, зарезервированы [1] и управляются Управлением по распределению адресов в Интернете (IANA). [44]
Наименее значимые 24 бита идентификатора группы адресов многоадресной рассылки запрошенного узла заполняются наименее значимыми 24 битами адреса одноадресной рассылки или произвольной рассылки интерфейса. Эти адреса позволяют разрешать адрес на уровне канала через протокол обнаружения соседей (NDP) на канале, не нарушая работу всех узлов локальной сети. Хост должен присоединиться к группе многоадресной рассылки запрошенного узла для каждого из его настроенных адресов одноадресной рассылки или произвольной рассылки.
При запуске системы узел автоматически создает локальный адрес связи на каждом интерфейсе с поддержкой IPv6, даже если глобально маршрутизируемые адреса настроены вручную или получены через протоколы конфигурации (см. ниже). Он делает это независимо и без какой-либо предварительной настройки с помощью автоконфигурации адресов без сохранения состояния ( SLAAC ), [46] используя компонент протокола обнаружения соседей . Этот адрес выбирается с префиксом fe80:: / 64 .
В IPv4 типичные протоколы конфигурации включают DHCP или PPP. Хотя DHCPv6 существует, хосты IPv6 обычно используют протокол обнаружения соседей для создания глобально маршрутизируемого одноадресного адреса: хост отправляет запросы на запрос маршрутизатора, а маршрутизатор IPv6 отвечает назначением префикса. [47]
Нижние 64 бита этих адресов заполняются 64-битным идентификатором интерфейса. Это должно быть псевдослучайное число по соображениям конфиденциальности. Также по соображениям конфиденциальности идентификатор интерфейса отличается для каждого автоматически настроенного адреса этого интерфейса. Это имеет тот недостаток, что для обнаружения соседей необходимо объединить несколько групп многоадресной рассылки . Для этого используется адрес многоадресной рассылки запрошенного узла, сформированный из сетевого префикса ff02::1:ff00:0 / 104 и 24 младших битов адреса.
64-битный идентификатор интерфейса может быть получен из 48-битного MAC-адреса интерфейса , хотя в настоящее время вместо него по умолчанию рекомендуются стабильные адреса конфиденциальности. [2] MAC-адрес 00-0C-29-0C-47-D5 преобразуется в 64-битный EUI-64 путем вставки FF-FE в середину: 00-0C-29- FF-FE -0C-47-D5 . [f]
Назначение одноадресного IPv6 -адреса интерфейсу включает внутреннюю проверку уникальности этого адреса с использованием сообщений Neighbor Solicitation и Neighbor Advertisement ( ICMPv6 тип 135 и 136). В процессе установления уникальности адрес имеет предварительное состояние.
Узел присоединяется к адресу многоадресной рассылки запрошенного узла для предварительного адреса и отправляет запросы соседям, с предварительным адресом в качестве целевого адреса и неуказанным адресом ( :: / 128 ) в качестве исходного адреса. Узел также присоединяется к адресу многоадресной рассылки всех хостов ff02::1 , поэтому он может получать объявления соседей .
Если узел получает запрос соседа с его собственным предварительным адресом в качестве целевого адреса, то он знает, что его адрес не является уникальным. То же самое верно, если узел получает объявление соседа с предварительным адресом в качестве источника объявления. Только после успешного установления того, что адрес является уникальным, он может быть назначен и использован интерфейсом.
Когда интерфейсу назначается произвольный адрес (например, произвольный адрес маршрутизатора подсети), из-за присущей этому типу адреса неуникальности обнаружение дубликатов адресов не выполняется.
Каждый IPv6-адрес, привязанный к интерфейсу, имеет определенный срок службы. Срок службы бесконечен, если не настроен на более короткий период. Существует два срока службы, которые управляют состоянием адреса: предпочтительный срок службы и допустимый срок службы . [48] Сроки службы можно настроить в маршрутизаторах , которые предоставляют значения, используемые для автоконфигурации, или указать при ручной настройке адресов на интерфейсах.
Когда адрес назначается интерфейсу, он получает статус preferred , который он удерживает в течение срока действия preferred-lifetime. После истечения этого срока действия статус становится устаревшим , и новые соединения с использованием этого адреса не должны устанавливаться. [g] Адрес становится недействительным после истечения срока действия valid-lifetime; адрес удаляется из интерфейса и может быть назначен где-то еще в Интернете .
Глобально уникальные и статические MAC-адреса, используемые автоконфигурацией адресов без сохранения состояния для создания идентификаторов интерфейсов, дают возможность отслеживать пользовательское оборудование с течением времени и изменениями префикса сети IPv6. [49] Чтобы уменьшить вероятность постоянной привязки идентификатора пользователя к части адреса IPv6, узел может создавать временные адреса с идентификаторами интерфейсов на основе изменяющихся во времени случайных битовых строк [50] и относительно коротким временем жизни (от нескольких часов до нескольких дней), после чего они заменяются новыми адресами.
Временные адреса могут использоваться в качестве исходных адресов для инициирования соединений, в то время как внешние хосты используют публичный адрес, отправляя запрос в систему доменных имен (DNS).
Сетевые интерфейсы, настроенные для IPv6, используют временные адреса по умолчанию в OS X Lion и более поздних системах Apple [ необходима ссылка ] , а также в Windows Vista , Windows 2008 Server и более поздних системах Microsoft. [51]
В качестве средства повышения безопасности протокола обнаружения соседей в 2005 году [52] были введены криптографически сгенерированные адреса (CGA) как часть протокола безопасного обнаружения соседей (SEND).
Такой адрес генерируется с использованием двух хэш-функций , которые принимают несколько входных данных. Первая использует открытый ключ и случайный модификатор; последний многократно увеличивается до тех пор, пока не будет получено определенное количество нулевых битов результирующего хеша. [h] Вторая хэш-функция принимает сетевой префикс и предыдущее значение хеша. Наименее значимые 64 бита второго результата хеша добавляются к 64-битному сетевому префиксу для формирования 128-битного адреса.
Хэш-функции также могут использоваться для проверки того, удовлетворяет ли конкретный адрес IPv6 требованию быть допустимым CGA. Таким образом, связь может быть установлена исключительно между доверенными адресами.
Использование измененного формата EUI-64 имеет серьезные последствия для проблем безопасности и конфиденциальности, [53], поскольку базовый аппаратный адрес (чаще всего MAC-адрес ) раскрывается за пределами локальной сети, что позволяет отслеживать действия пользователя и сопоставлять учетные записи пользователей с другой информацией. Это также позволяет использовать стратегии атак, специфичные для поставщика, и уменьшает размер адресного пространства для поиска целей атаки.
Для исправления этих недостатков были введены стабильные адреса конфиденциальности. Они стабильны в пределах определенной сети, но меняются при переходе в другую, чтобы улучшить конфиденциальность. Они выбираются детерминированно, но случайным образом во всем адресном пространстве сети.
Генерация стабильного адреса конфиденциальности основана на хэш-функции, которая использует несколько стабильных параметров. Это зависит от реализации, но рекомендуется включать по крайней мере сетевой префикс, имя сетевого интерфейса, счетчик дубликатов адресов и секретный ключ. Полученное значение хэша используется для построения окончательного адреса: обычно 64 младших бита объединяются с 64-битным сетевым префиксом, чтобы получить 128-битный адрес. Если сетевой префикс меньше 64 бит, используется больше бит хэша. Если полученный адрес не конфликтует с существующими или зарезервированными адресами, он назначается интерфейсу. Конфликты разрешаются путем корректировки счетчика дубликатов адресов. [53]
Сетевые интерфейсы с поддержкой IPv6 обычно имеют более одного адреса IPv6, например, локальный адрес и глобальный адрес. Они также могут иметь временные адреса, которые меняются после истечения определенного срока службы. IPv6 вводит концепции области действия адреса и предпочтения выбора, предоставляя множественный выбор для адресов источника и назначения при общении с другим хостом.
Алгоритм выбора предпочтений выбирает наиболее подходящий адрес для использования в коммуникациях с определенным пунктом назначения, включая использование сопоставленных IPv4 адресов в реализациях с двойным стеком . [54] Он использует настраиваемую таблицу предпочтений, которая связывает каждый префикс маршрутизации с уровнем приоритета. Таблица по умолчанию имеет следующее содержимое:
Конфигурация по умолчанию отдает предпочтение использованию IPv6 и выбирает адреса назначения в пределах наименьшего возможного диапазона, так что локальная связь по каналу предпочтительнее глобально маршрутизируемых путей, когда в остальном они одинаково подходят. Таблица политики префиксов похожа на таблицу маршрутизации, в которой значение приоритета играет роль стоимости канала, где более высокое предпочтение выражается как большее значение. Предпочтительно, чтобы исходные адреса имели то же значение метки, что и адрес назначения. Адреса сопоставляются с префиксами на основе самой длинной совпадающей последовательности наиболее значимых битов. Кандидаты на исходные адреса получаются из операционной системы , а кандидаты на адреса назначения могут быть запрошены через DNS.
Чтобы минимизировать время установления соединения, когда для связи доступно несколько адресов, был разработан алгоритм Happy Eyeballs . Он запрашивает DNS для адресов IPv6 и IPv4 целевого хоста, сортирует адреса-кандидаты с использованием таблицы выбора адресов по умолчанию и пытается установить соединения параллельно. Первое установленное соединение прерывает текущие и будущие попытки подключения к другим адресам.
В системе доменных имен имена хостов сопоставляются с адресами IPv6 с помощью записей ресурсов AAAA , так называемых записей quad-A . [55] Для обратного поиска IETF зарезервировал домен ip6.arpa , где пространство имен иерархически разделено однозначным шестнадцатеричным представлением полубайтовых единиц (4 бита) адреса IPv6.
Как и в IPv4, каждый хост представлен в DNS двумя записями DNS: записью адреса и записью указателя обратного отображения. Например, хост-компьютер с именем derrick в зоне example.com имеет уникальный локальный адрес fdda:5cc1:23:4::1f . Его запись адреса quad-A —
derrick.example.com. В AAAA fdda:5cc1:23:4::1f
и его запись указателя IPv6 -
f.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.0.0.0.3.2.0.0.1.cc5.addfip6.arpa. В PTR derrick.example.com.
Эта запись указателя может быть определена в нескольких зонах в зависимости от цепочки делегирования полномочий в зоне dfip6.arpa.
Протокол DNS независим от протокола транспортного уровня . Запросы и ответы могут передаваться по протоколам IPv6 или IPv4 независимо от семейства адресов запрашиваемых данных.
if_nametoindex()
для преобразования имени в номер интерфейса, она не поддерживает обычное расширение «имя после %».Все клиенты получают один
/
48
, если только они не могут доказать, что им нужно более 65 тыс. подсетей. [...] Если у вас много клиентов-потребителей, вы можете назначить
/
56
частным резиденциям.
Представьте любой адрес IPv6 в 20 октетах.Этот юмористический RFC определяет альтернативный способ представления адресов IPv6 с использованием кодировки base-85.