Локальные IPv6-адреса канала и локальные адреса сети — Win32 apps
- Статья
- Чтение занимает 4 мин
IPv6 link-local и site-local addresses называются адресами с заданной областью. API Windows Sockets (Winsock) поддерживает элемент sin6_scope_id в структуре sockaddr_in6 для использования с адресами с областью действия. Для локальных адресов связи IPv6 (fe80::/10) элемент sin6_scope_id в структуре sockaddr_in6 является номером интерфейса. Для IPv6-локальных адресов (префикс fec0::/10) элемент sin6_scope_id в структуре sockaddr_in6 является идентификатором сайта.
Примером локального IPv6-адреса ссылки в интерфейсе 5 является следующий пример:
fe80::208:74ff:feda:625c%5
Следующая команда доступна в Windows XP с пакетом обновления 1 (SP1) и более поздних версий для запроса и настройки IPv6 на локальном компьютере:
- Netsh.exe
Изменения конфигурации, внесенные с помощью команд Netsh.exe, являются постоянными и не теряются при перезапуске компьютера или протокола IPv6.
До Windows XP с пакетом обновления 1 (SP1) конфигурация и управление IPv6 использовали несколько старых средств командной строки (Net.exe, Ipv6.exe и Ipsec6.exe) для настройки IPv6 и управления ими. Используя эти старые средства, изменения IPv6 не являются постоянными и теряются при перезапуске компьютера или протокола IPv6. Эти старые средства командной строки поддерживаются только в Windows XP.
В Windows XP с пакетом обновления 1 (SP1) следующая команда отобразит список интерфейсов IPv6 на локальном компьютере, включая индекс интерфейса, имя интерфейса и различные другие свойства интерфейса.
Интерфейс netsh ipv6 show
В Windows XP с пакетом обновления 1 (SP1) следующая команда изменит идентификатор сайта, связанный с индексом интерфейса.
Netsh interface ipv6 set interface <InterfaceIndex или Name> siteid=value
В Windows XP следующая более старая команда также изменит идентификатор сайта, связанный с локальным адресом сайта, на 3.
ipv6 rtu fec0::/10 3
Если вы отправляете или подключаетесь к адресу с заданной областью, элемент sin6_scope_id в структуре sockaddr_in6 может остаться неопределенным (ноль), который представляет неоднозначный адрес с заданной областью. Например, следующий локальный адрес ссылки является неоднозначным:
fe80::10
Если вы привязываются к заданному адресу, элемент sin6_scope_id в структуре sockaddr_in6 должен содержать ненулевое значение, указывающее допустимый номер интерфейса для локального адреса ссылки или идентификатора сайта для локального адреса сайта.
Неоднозначные адреса с заданной областью
Если вы отправляете или подключаетесь к адресу с заданной областью и не указали элемент sin6_scope_id в структуре sockaddr_in6 , то адрес с заданной областью является неоднозначным. Чтобы устранить эту проблему, протокол IPv6 сначала определяет, привязан ли сокет к исходному адресу. В этом случае привязанный исходный адрес разрешает неоднозначность путем предоставления номера интерфейса или идентификатора сайта.
Если вы отправляете или подключаетесь к адресу с заданной областью и не указали sin6_scope_id-член
и не привязали исходный адрес, то протокол IPv6 проверяет таблицу маршрутизации. Например, следующая команда отобразит таблицу маршрутизации IPv6 на локальном компьютере:Netsh interface ipv6 show route
No Manual 256 fe80::/64 13 Local Area Connection No Manual 256 fe80::/64 14 Wireless Network Connection
Это означает, что по умолчанию локальные адреса ссылок обрабатываются как по ссылке на интерфейс #13 и #14.
Неоднозначность возникает, когда локальный компьютер имеет несколько сетевых адаптеров. Например, приведенная выше команда netsh указывает на наличие двух сетевых интерфейсов (локальное подключение и беспроводное сетевое подключение). Если приложение указывает локальный адрес целевой ссылки (fe80::10) без идентификатора области, не ясно, какой адаптер следует использовать для отправки пакета. Только одноадресная рассылка (fe80::/64) или многоадресная рассылка (ff00::/8) IPv6-адрес может не иметь идентификатор области при отправке пакета.
Обнаружение окружения
Если вы не указали элемент sin6_scope_id в структуре sockaddr_in6 , не привязали исходный адрес и не указали маршрут для адресов локальной связи, то протокол IPv6 попытается устранить локальный адрес целевой ссылки. Для отправляемого пакета выполняется один интерфейс. Этот первый проверенный интерфейс считается наиболее предпочтительным. Если при обнаружении соседей не удается разрешить локальный адрес связи в интерфейсе, пакет для отправки удаляется, и система запоминает, что локальный адрес целевой ссылки недоступен через этот интерфейс. При отправке следующего пакета в соответствии со всеми одинаковыми условиями выполняется попытка другого интерфейса для обнаружения соседей. Этот процесс продолжается через каждый интерфейс на локальном компьютере для каждого нового пакета до тех пор, пока обнаружение соседа не ответит на локальный адрес конечной ссылки или все возможные интерфейсы были проверены и завершились сбоем. Каждый раз, когда попытка устранить ошибку соседа, один интерфейс устраняется для этого соседа.
Если адрес локальной связи назначения разрешается, этот интерфейс используется для отправки текущего пакета. Этот интерфейс также используется для всех последующих неоднозначно ограниченных пакетов, отправляемых на тот же локальный адрес назначения ссылки.
Если обнаружение соседей не удается разрешить локальный адрес целевой связи во всех интерфейсах, система пытается отправить пакет в наиболее предпочтительный интерфейс (первый пробованный интерфейс). Сетевой стек продолжает пытаться разрешить локальный адрес целевой связи в наиболее предпочтительном интерфейсе.
Примечание
Если приложение привязывает тот же локальный адрес связи к другому интерфейсу после того, как обнаружение соседа разрешило локальный адрес ссылки, то оно не переопределяет интерфейс с адресом назначения, возвращаемым обнаружением соседей.
Дополнительные сведения об обнаружении соседей для IP-адреса версии 6 см. в статье RFC4861 , опубликованной IETF.
Префиксы сайта IPv6
Ipv6.exe
Netsh.exe
Использование IPv6
введение в IPv6 / Хабр
Этой статьёй я хочу начать цикл, посвященный IPv6. Я являюсь инструктором академии Cisco, поэтому, если вы в совершенстве знаете материал нового CCNA Routing & Switching, то скорее всего, не найдёте в цикле ничего нового. Речь пойдёт о структуре и особенностях протокола IPv6, а также, применении его на маршрутизаторах Cisco (маршрутизация RIP, OSPF, EIGRP, списки контроля доступа, и др. – как пойдёт). В первой статье мы поговорим о структуре IPv6 пакета, записи адресов, префиксе. Вторая статья цикла доступна здесь. Информация подойдёт для новичков, имеющих, тем не менее, некоторые знания по IPv4 и модели OSI.
Цикл статей основан на материалах моего блога, которые, в свою очередь, основаны на опыте преподавания, работы с оборудованием и вольном переводе и обдумывании официального курса CCNA Routing & Switching.
Адреса IPv6
Адрес протокола IPv6 состоит из 128 бит, то есть, он в 4 раза длиннее 32-битного IPv4 адреса. Подобно IPv4, в этом адресе можно выделить две части: сеть и хост. То есть, не все биты в адресе имеют одинаковое значение. Часть битов слева (сколько именно зависит от префикса) обозначают сеть, остальные биты справа – идентифицируют устройство внутри сети. Часть, ответственная за хранение информации о хосте называется идентификатор интерфейса (interface id). В отличие от предыдущей версии протокола, в IPv6 не применяются маски подсети, так как они получились бы очень длинными, вместо этого используется префикс. который записывается так же через слеш после адреса. Например, префикс /64 означает, что из 128 бит, первые 64 – это сеть, а оставшаяся часть (в данном случае вторые 64) – это хост. Префикс описывает, сколько бит в адресе используется под хранение информации о сети.
Сокращение IPv6
Пример адреса: 2001:0DB8:AA10:0001:0000:0000:0000:00FB. С таким длинным адресом работать достаточно неудобно, поэтому применяют сокращённую запись.
Правило 1
В каждом хекстете (группе из 4-х цифр) ведущие нули удаляются. Например, во втором хекстете 0DB0 заменяется на DB0. То есть ноль слева удаляется, ноль справа мы не трогаем. Если хекстет состоит из одних нулей, то он заменяется на один нуль. Таким образом адрес 2001:0DB0:0000:123A:0000:0000:0000:0030 преобразуется в 2001:DB0:0:123A:0:0:0:30. А, например, адрес loopback 0000:0000:0000:0000:0000:0000:0000:0001 заменяется на 0:0:0:0:0:0:0:1.
Правило 2
Это правило применяется только после первого. В адрес выбирается одна самая длинная группа, состоящая из полностью нулевых хекстетов, то есть самая длинная последовательность «:0:0:0:» и заменяется на два двоеточия «::». Эту замену можно произвести только один раз и только с самой длинной последовательностью, так как, если бы мы, например, сделали такую замену в двух местах адреса, то потом нельзя было бы восстановить, сколько именно хекстетов мы заменили в первом и во втором случае. Важный момент: нельзя заменять одну группу из :0: на ::, правило два применимо только если есть более одной нулевой группы.
Для примера возьмём адрес из предыдущей замены 2001:DB0:0:123A:0:0:0:30. Самая длинная последовательность из полностью пустых хекстетов – это «:0:0:0:», она начинается сразу после хекстета «123A». Есть ещё последовательность из одного пустого хекстета (между «DB0» и «123A»), но эта – длиннее, так что заменять будем её. Адрес станет совсем небольшим: 2001:DB0:0:123A::30 конечно, длиннее IPv4 адреса, но гораздо короче исходного.
Получение исходного адреса по сокращённой записи
Эта процедура достаточно тривиальна, если мы уже умеем сокращать адреса.
Сначала надо посчитать, сколько хекстетов в адресе осталось. В нашем случае, в адресе 2001:DB0:0:123A::30 осталось 5 хекстетов. Мы знаем, что адрес должен состоять из восьми хекстетов – значит вместо «::» возвращаем три недостающих нулевых, получаем 2001:DB0:0:123A:0:0:0:30. Теперь в каждой группе, где меньше четырёх цифр дописываем слева такое количество нулей, чтобы в группе стало четыре цифры. В результате получим исходный адрес 2001:0DB0:0000:123A:0000:0000:0000:0030.
Примеры
Теперь, чтобы закрепить понимание, приведём несколько примеров сокращения адресов. Сокращать будем по правилам в два этапа.
- FF80:0000:0000:0000:0123:1234:ABCD:EF12 → FF80:0:0:0:123:1234:ABCD:EF12 → FF80::123:1234:ABCD:EF12
- FF02:0000:0000:0000:0000:0001:FF00:0300 → FF02:0:0:0:0:1:FF00:300 → FF02::1:FF00:300
- 2001:0DB8:0000:1111:0000:0000:0000:0200 → 2001:DB8:0:1111:0:0:0:200 → 2001:DB8:0:1111::200
- 0000:0000:0000:0000:0000:0000:0000:0001 → 0:0:0:0:0:0:0:1 → ::1
- 0000:0000:0000:0000:0000:0000:0000:0000 → 0:0:0:0:0:0:0:0 → ::
Адрес loopback выглядит в сокращённой записи особенно элегантно ::1. Даже если вы не пользуетесь IPv6, но работаете на одной из современных операционных, систем, у вас наверняка установлен этот протокол. Это легко проверить, пропинговав loopback.
ping ::1 Pinging ::1 with 32 bytes of data: Reply from ::1: time<1ms Reply from ::1: time<1ms Reply from ::1: time<1ms Reply from ::1: time<1ms Ping statistics for ::1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
При использовании IPv6 адреса в качестве URL, его необходимо заключать в квадратные скобки, при этом, если необходимо указать в URL-е порт, то его следует писать за пределами скобок – http://[2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d]:8080/.
Виды IPv6 адресов
Выделяется несколько типов адресов:
- Глобальный юникаст (Global unicast) – это аналог публичных адресов в IPv4. Большая часть всех адресов относятся именно к этому классу. Эти адреса должны быть уникальными в пределах всего интернета, они выдаются IANA региональным регистраторам, те выдают их провайдерам, а провайдеры – выдают клиентам. Диапазон этих адресов – это все адреса, у которых первые три бита равны «001», что означает все адреса, у которых первый хекстет лежит в диапазоне от 2000 до 3FFF. Из этой группы отдельно выделяется сеть 2001:0DB8::/32, которая, согласно спецификации, используется для примеров и документации.
- Локальные адреса (Link-local) – адреса, использующиеся для взаимодействия с другими устройствами в той же локальной сети. Отличительной особенностью этих адресов является то, что трафик «с» или «на» эти адреса не маршрутизируется и в принципе не может выйти за пределы той сети, в которой он был создан. Уникальность от этих адресов не требуется – в каждой сети они могут быть одними и теми же. Адреса применяются для разных специальных целей, например, для процедуры обнаружения соседей (аналог ARP в IPv6). Диапазон таких адресов FE80::/10 – что означает все адреса у которых первый хекстет в диапазоне от FE80 до FEBF.
- Мультикастовые адресе (Multicast) – адреса, использующийся для мультикастовой рассылки. Все эти адреса находятся в диапазоне FF00::/8, что по-русски означает «Всё что начинается с FF». Надо сказать, что мультикаст в IPv6 выполняет важную роль, так как в нём нет широковещательных пакетов и все рассылки делаются мультикастом. Это очень большая тема, поэтому о мультикастах в IPv6 мы поговорим в одной из следующих статей.
- Loopback – специальный адрес ::1. Все пакеты, идущие на него не выходят за пределы устройства, а попадают обратно на уровень IP. Таким образом, этот адрес аналогичен 127.0.0.1 в IPv4. Командой ping ::1 можно проверить, установлен ли на компьютере стек протоколов TCP/IP и IPv6 в частности.
- Неопределённый адрес (Unspecified address) – адрес, состоящий из одних нулей. Записывается в сокращённой форме как «::». Такой адрес не может быть назначен интерфейсу, но может использоваться в некоторых пакетах в качестве адреса отправителя. Например, когда устройство ещё не получило IP адрес с помощью автоматической конфигурации, о ней – тоже в одной из следующих статей.
- Уникальные локальные адреса (Unique local) – аналог приватных адресов в IPv4, то есть они могут маршрутизироваться в пределах нашей внутренней сети, но в интернет их анонсировать нельзя. Вообще, IPv6 подразумевает отказ от приватных адресов в том смысле, в котором они использовались до этого. В IPv4 приватные адреса применяются в основном из-за нехватки публичных и только иногда из соображений безопасности. В IPv6 использовать локальные адреса надо только в том случае, если по соображениям безопасности трафик из данной сети и в неё не должен уходить за пределы нашей зоны ответственности. Во всех остальных случаях следует использовать глобальные юникастовые адреса.
- Адреса IPv4, отображенные в IPv6 (IPv4 embedded) – это адреса вида ::ffff:xxxx:xxxx, где xxxx:xxxx – это некоторый IPv4 адрес, переведённый в шестнадцатеричный вид. Эти адреса используются для устройств, не поддерживающих IPv6 и обеспечивают способ отображения адресного пространства старой версии протокола в адресное пространство новой.
Выше было сказано, что клиенту, как правило, выдаётся огромная сеть (64 бита префикс), а первые 64 бита – это идентификатор сети. Понятно, однако, что сама эта сеть тоже имеет иерархическую структуру. Как правило, региональный регистратор отдаёт провайдеру сеть с префиксом /48, а провайдер добавляет от себя ещё 16 бит и получает 65536 сетей с префиксом /64, которые затем отдаёт своим клиентам.
UPD1: В комментариях подсказывают «Региональные регистраторы давно уже дают /32 сеть по умолчанию или больше адресов, если сможешь обосновать зачем.»
UPD2: Важное замечание в комментариях относительно IPv4 embedded адресов: «Mapped-адреса используются, прежде всего, в dual-stack. Когда создаётся один сокет IPv6 на оба протокола ( IPv4 и IPv6 ), и везде используется IPv6 адреса. Т. е. если через этот сокет пришли данные через IPv4, адрес будет показан всё равно в виде вышеописанного IPv6 mapped-адреса. На канальном уровне разницы не будет вообще. Там будет старый добрый IPv4, разница только в в унификации отображения для пользователя.»
UPD3: Готова вторая статья цикла.
UPD4: Внимательный пользователь сообщил мне на счёт сокращения адресов интересную информацию, о которой я не знал. Правило 2, по RFC5952, применимо только когда у нас более одной группы, состоящей из нулей. То есть …:0:… нельзя заменить на …::…, а …:0:0:… — уже можно.
Примеры адресов IPv6 | Что такое IPv6-адрес? ⋆ IPCisco
Содержание
Что такое адрес IPv6?
IPv6-адрес — это IP-адрес нового поколения , который в основном разработан для преодоления истощения IPv4 и его ограничений. Как вы знаете, адресов IPv4 были ограничены и вскоре исчерпаны. Для новых технологий требуется больше IP-адресов, и для этого была разработана новая версия IP. Эта новая версия интернет-протокола IPv6 (интернет-протокол версии 6) . Можно сказать, что IPv6 — это новая версия интернет-протокола, которую мы будем использовать отдельно или вместе с IPv4 на наших сетевых устройствах.
Итак, что насчет IPv5 после IPv4? IPv5 получил название Internet Stream Protocol (ST) , который так и не стал официальным стандартным протоколом. Он в основном разработан для потокового видео и голоса в качестве экспериментального протокола для исследований и разработок. Он обеспечивал эффективную передачу данных на определенных частотах. Это было основой IP-телефония (VoIP) .
Подобно IPv4, IPv6 также имеет разные типы адресов IPv6 . Мы подробно поговорим об этих типах адресов один за другим в следующих уроках IPv6. Здесь мы сосредоточимся на основах этого урока. После этого урока вы также можете изучить Подсети IPv6 . Вы также можете проверить вики определение IPv6.
Вы также можете узнать Конфигурация IPv6 Packet Tracer
IPv4 — широко распространенная реализация протокола IP. Он имеет 32-битное адресное пространство, поэтому он позволяет использовать почти 2 32 = 4 294 967 296 адресов в Интернете. Из-за того, что эти адреса закончились, открылась новая версия IP. С этой новой версией IP доступно больше адресов. Количество этих новых версий IP-адресов особенно упоминается как почти неограниченное.
До Адреса IPv4 закончились, некоторые методы, такие как CIDR, NAT, частные адреса , используются для устранения этой нехватки. Но с развитием информационных технологий к Интернету присоединилось больше устройств, и они продолжают подключаться.
Новая версия IP следующего поколения, IPv6, имеет 128-битное адресное пространство. Таким образом, с этой новой версией IP можно создать почти 2 128 доступных адресов. это почти 340 ундецилионов доступных адресов, почти не ограничено!
С развитием этого нового интернет-протокола также были созданы некоторые новые функции. Это новые функции, которые IPv6 приносит . Ниже перечислены новые преимущества IPv6:
- Увеличенное адресное пространство
- Упрощенная конфигурация (с автоматической настройкой)
- Интегрированная безопасность (IPSec)
- Обратная совместимость с IPv4
Пример адреса IPv6
Как вы помните, адреса IPv4 записываются с помощью десятичных чисел . В отличие от IPv4, IPv6 адреса записываются шестнадцатеричными цифрами. Есть 10 чисел — это десятичная система счисления. Кроме того, в шестнадцатеричной системе счисления 10 цифр и 6 букв (A, B, C, D, E, F) . Мы можем использовать как цифры, так и эти буквы (A, B, C, D, E, F) для создания адреса IPv6.
IPv6-адрес состоит из 8 групп (разделенных двоеточием), и в каждом двоеточии 4 цифры . Каждая цифра может быть создана с помощью 4 бит . Итак, с этими числами адрес становится 8 x 4 x 4 бит = 128 бит .
Чтобы понять структуру IPv6-адреса, приведем пример:
2345:0425:2CA1:0000:0000:0567:5673:23b5
Как вы можете видеть выше, наш IPv6-адрес состоит из 8 групп, разделенных двоеточием, 8 групп и 900 групп is00. В каждой группе 4 цифры . Каждая из этих цифр может быть создана с помощью 4 бит. Всего имеется 128 бит адресов.
IPv6-адреса очень логичны, поэтому иногда нам нужно сократить эти адреса. Для этого мы используем специальные сокращения в IPv6 World. Другими словами, есть около аббревиатуры , которые используются с адресом IPv6. Эти сокращения упомянуты ниже с соответствующими примерами IPv6
Ведущие нули могут быть удалены
Во время создания адреса IPv6 в каждой группе могут быть начальные нули. Нет необходимости писать начальные нули в адресе. Ведущие нули можно опустить, чтобы сократить адрес. В приведенном ниже примере мы опускаем начальные нули. Здесь важно следующее: отбрасываются только начальные нули. мы не можем опустить нуль в середине или в конце группы.
2345: 0425: 2CA1: 0000: 0000: 0567: 5673: 23B5 ==> 2345: 425 : 2CA1: 0000: 0000: 567 : 5673: 23B5
. , вместо 0425 мы написали 425. Опять вместо 0567 мы написали 567. Нули в начале каждой группы пропали.
Использование нуля для всей нулевой группы
В IPv6 группа может состоять только из нулей. В таком случае нам не нужно писать все нули в адресе. Вместо него можно написать один ноль, что означает четыре нуля в группе.
Ниже вы можете найти пример использования IPv6.
2345:0425:2CA1:0000:0000:0567:5673:23b5 ==> 2345:0425:2CA1: 0:0 :0567:5673:23b5
,
3 0:0 вместо использования 0000:0000 .
Двойное двоеточие для непрерывных нулей
Во многих группах IPv6-адреса может быть много нулей. Записать все эти нули очень сложно для IP-адреса, состоящего из 128 бит. Чтобы преодолеть это, IPv6 имеет « двойное двоеточие ”механизмы сокращения. Мы можем использовать двойное двоеточие , чтобы сократить непрерывные нули в адресе. Другими словами, если у нас есть целое поле с нулями в адресе, мы можем использовать только один 0 для каждого двоеточия. Здесь важно следующее: мы можем использовать двойное двоеточие только один раз в адресе ipv6.
Ниже вы можете найти пример использования двойного двоеточия с IPv6-адресом .
2345:0425:2CA1:0000:0000:0567:5673:23b5 ==> 2345:0425:2CA1 :: 0567: 5673: 23B5
здесь, вместо того, чтобы написать 0000: 00000 , мы написали ::
IPV6. различные части. Эти части приведены ниже:
- Сетевая часть
- Узловая часть
Часть сети используется для идентификации сети и маршрутизации. Часть узла используется для идентификации самого узла.
Кроме этого разделяем сетевую часть на два . Этими частями являются адрес индивидуальной рассылки и идентификатор подсети. Итак, мы можем сказать, что адрес ipv6 состоит в основном из трех частей:
- Unicast Address
- Идентификатор подсети
- Идентификатор интерфейса
IPv6 и CIDR
Адрес IPv6 всегда использовать CIDR (бесклассовая междоменная маршрутизация) для определения префикса IPv6 . Он также используется с адресами IPv4 с косой чертой (/) и сетевыми битами. Здесь мы также используем этот механизм.
Вы можете найти пример префикса IPv6 со значением CIDR ниже:
2345: 425: 2CA1: 0000: 0000: 567: 5673: 23B5/64
990039 99999993 9000
9963
9000 29999 9000 2
9 9000 29 9000 2
9 9000 29 9000 2
9 9000 29 9000 2
999999 Формат IPv6 EUI-64
Одноадресные рассылки IPv6 обычно выделяют первые 64 бита адреса для идентификации префикса, а оставшиеся 64 бита определяют часть хоста. Этот идентификатор интерфейса основан на аппаратном адресе интерфейса. Этот идентификатор интерфейса может быть создан Формат EUI-64 для Локальный адрес канала IPv6 .
Подводя итог созданию идентификатора интерфейса в формате EUI-64, предположим, что у нас есть MAC-адрес 11-11-22-22-33-33 . Выполните шаги, описанные ниже, чтобы создать идентификатор интерфейса IPv6
из этого MAC-адреса:9 9000 2
9 9000 29 9000 2
999999 Формат IPv6 EUI-64
Одноадресные рассылки IPv6 обычно выделяют первые 64 бита адреса для идентификации префикса, а оставшиеся 64 бита определяют часть хоста. Этот идентификатор интерфейса основан на аппаратном адресе интерфейса. Этот идентификатор интерфейса может быть создан Формат EUI-64 для Локальный адрес канала IPv6 .
Подводя итог созданию идентификатора интерфейса в формате EUI-64, предположим, что у нас есть MAC-адрес 11-11-22-22-33-33 . Выполните шаги, описанные ниже, чтобы создать идентификатор интерфейса IPv6
- Разделите этот MAC-адрес на две части.
- Добавить фиксированную шестнадцатеричную часть FFFE в середину MAC-адреса.
- Преобразуйте левую часть вашего MAC-адреса в двоичный формат.
- Инвертировать 7-й бит этого бита. (от 1 до 0, от 0 до 1, 0 означает, что он администрируется локально, 1 означает глобально уникален)
Этот формат EUI-65 используется для IPv6 Link Local Address Auto Address Configuration. Существуют различные типы адресов IPv6 . Мы подробно поговорим об этих типах IPv6 и других примерах IPv6 в другом уроке. Если вы хотите узнать подробности IPv6, вы можете следовать другим урокам. 9128) на IP-адресах
Одним из основных преимуществ IPv6 является то, что его адресное пространство значительно больше, чем у IPv4.
IPv4 имеет около 4 миллиардов доступных адресов (математически, практический предел, конечно, ниже), и они быстро заканчиваются. Конечно, кто бы мог подумать в то время, что люди захотят назначать IP-адреса своим тостерам. (И даже если бы они этого не сделали, 4 миллиарда адресов даже не покрывают одно устройство на человека на планете прямо сейчас с большой вероятностью.) 9128 IP-адресов. Это много. To be exact, it’s 340,282,366,920,938,463,463,374,607,431,768,211,456 (340 undecillion, 282 decillion, 366 nonillion, 920 octillion, 938 septillion, 463 sextillion, 463 quintillion, 374 quadrillion, 607 trillion, 431 billion, 768 million, 211 thousand and 456.
Say , что в четыре раза быстрее!)
Для сравнения: если вы возьмете все атомы на поверхности Земли, вы сможете присвоить каждому (!) около сотни (!) IPv6-адресов.
Хорошо, это много. Есть ли смысл в этой математической мелочи?
Да!
Пул адресов IPv6 невероятно велик. Даже с оговорками и практическими ограничениями он невероятно огромен. И умные люди в IETF придумали несколько навигационных ярлыков, чтобы помочь нашему мозгу справиться с управлением, а также зарезервировать кучу для конкретных целей.
Давайте посмотрим на них.
Общие и зарезервированные префиксы в адресах IPv6
Из-за огромного количества возможных адресов IPv6 и поскольку формат IPv6 представляет собой 16 шестнадцатеричных значений (сгруппированных в восемь 16-битных групп) вместо более простых 4 десятичных групп IPv4, разработчики стандарта придумали способы их укоротить.
Один из способов — использовать ‘::’, когда 16-битная группа полностью состоит из нулей. Обратите внимание, что при наличии нескольких групп с нулями только первая группа будет сокращена до ‘::’. (Причиной этого является необходимость воспроизведения укороченных IPv6-адресов в полной форме.)
Еще один полезный «трюк» — резервирование специальных структур для определенных целей:
::/0 | маршрут по умолчанию | |
::/128 | не указан адрес | Все 128 бит установлены в ноль. (Например, 0.0.0.0 в IPv4.) Используется только тогда, когда устройство сначала ищет назначение IP-адреса. |
::1/128 | петлевой адрес | Эквивалент 127.0.0.1 в IPv4. Если он установлен в качестве пункта назначения, пакет будет немедленно перенаправлен обратно к своему источнику и никогда не покинет хост. Loopback полезен для тестирования. |
::ffff:0:0/96 | IPv4-сопоставленный адрес | Используется для помощи в развертывании IPv6. Последние 32 бита содержат адрес IPv4 с FFFF (после 5 групп нулей) в предыдущей группе. |
2001:1::1/128 | протокол управления портом Anycast | При использовании этого пакета пакет будет направлен на ближайшее устройство для трансляции адреса. (Например, NAT64 или NAT44.) |
2001:1::2/128 | Обход с помощью ретрансляции вокруг NAT (TURN) anycast | Блок адреса IPv6 для использования с TURN (протокол, позволяющий хосту за NAT получать данные по TCP или UDP). Известен как 192.0.0.10/32 в IPv4. |
2001:db8::/32 | Префикс документации | Используется для обозначения таких ресурсов, как RFC, документация, книги и т. д. |
2620:4f:8000::/48 | AS112 DNS-серверы-приемники | Используется в средах, где частные IP-адреса (т. е. не уникальные в глобальном масштабе) могут инициировать обратный поиск DNS по этим адресам. Хотя передовой опыт предписывает разрешать эти запросы локально, иногда они направляются в общедоступный DNS, который не может отвечать на запросы. Для решения этой проблемы и снижения нагрузки на авторитетные серверы был создан проект AS112, и это резервирование обеспечивает его совместимость с IPv6. |
ФК00::/7 | Уникальные локальные адреса (ULA) | Префикс для локальных адресов индивидуальной рассылки IPv6, сгенерированный с псевдослучайным глобальным идентификатором. |
fe80::/10 | локальная одноадресная передача | Эквивалент блока 169.254.0.0/16 в IPv4. Используется, когда хосту не назначен IPv6-адрес вручную или через DHCP. |
fec0::/10 | локальные адреса сайта | (устарело) |
Хотя это и не исчерпывающий список, он охватывает наиболее часто используемые случаи.
Появляется больше IPv6!
Для простоты мы разделили эту тему на две части.