IPv6 Deep Dive (Cisco)

от автора

IPv6 (Internet Protocol version 6) – это последняя версия Интернет-протокола (IP), разработанная для решения ограничений IPv4, особенно проблемы исчерпания доступных IPv4-адресов.

Сегодня мы рассмотрим всё до мельчайших деталей на устройствах CISCO.

Протокол IP (Internet protocol) является протоколом сетевого уровня.

В версии 4 мы имеем 32бита для поля адреса.

максимум 11111111 11111111 11111111 11111111 в двоичной системе

или привычное глазу 4 294 967 295.

Что нам предлагает IPV6? 128 бит в поле адреса

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

И в десятичной системе. Т.е 2 в 128 степени

340 282 366 920 938 586 008 062 602 462 446 642 046

IP версия 6 (IPv6) — это новая версия Интернет-протокола, разработанная как преемник IP версии 4 (IPv4) [RFC-791].

A screenshot of a computer Description automatically generated
A screenshot of a computer Description automatically generated

IPv6 записывается в шестнадцатеричной системе счисления, используя цифры 0-9 и a-f. Один шестнадцатеричный символ представляет собой 4 бита или 16 десятичных единиц.

The Hexadecimal Number System and how to convert – Data and information

The Hexadecimal Number System and how to convert – Data and information

Каждому адресу IPv6 соответствует восемь групп из четырех шестнадцатеричных символов. Группы разделяются двоеточиями.Пример: 2001:0db8:11a3:09d7:1f34:8a2e:07a0:765

Правильная запись IPv6

Адреса IPv6 должны быть записаны определенным образом. Это поможет быстрее и проще интерпретировать адреса как для людей, так и для программ.

Ведущие нули в каждой группе должны быть удалены. Адрес 2001:0db8::0001 следует записывать как 2001:db8::1.                                                                             

“::” должно использоваться для представления наибольшего возможного количества 16-битных блоков, содержащих нули. Важно помнить, что «::» можно использовать только один раз в адресе. Если можно использовать “::” в нескольких местах и везде одинаково много нулей, ставьте его в начало, в первую группу с нулями.                                        

Буквы в IPv6 должны быть записаны в нижнем регистре. 2001:DB8::1 неверно 2001:db8::1 верно                                      

Для указания номера порта IPv6 пишем в квадратных скобках, а затем указываем порт, например: [2001:120::1]:21.                                                             

Примечание есть множество различных способов указать порт вот примеры:

1.     [2001:db8::1]:80

2.     2001:db8::1:80

3.     2001:db8::1.80

4.     2001:db8::1 port 80

5.     2001:db8::1p80

6.     2001:db8::1#80                                                                     

Символ «::» не должен использоваться для сокращения одного 16-битного блока с нулями. Например, запись 2001:db8:0:1:1:1:1:1 правильная, а вот 2001:db8::1:1:1:1:1 — неправильная.                                                                          

Сокращение с «::» используется для улучшения читаемости адреса, но оно не изменяет саму структуру IPv6. Как к примеру если написать ping 127.1

A screen shot of a computer AI-generated content may be incorrect.

Подробнее в RFC 5952

Почему стоит использовать IPv6 вместо IPv4?

Основная причина перехода на IPv6 заключается в его адресации. IPv4 использует 32-битную адресацию, что ограничивает количество адресов до 4,3 миллиарда. В свою очередь, IPv6 использует 128-битную адресацию и поддерживает 340 ундециллионов (340 триллионов адресов. Увеличение количества доступных адресов стало особенно важным с ростом числа умных устройств и расширением связности. IPv6 предоставляет более чем достаточно глобально уникальных IP-адресов для всех устройств, подключенных к сети, что помогает обеспечить возможность подключения большего количества IP-устройств в будущем.

Помимо адресации, IPv6 имеет следующие преимущества:

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

  • Опциональная поддержка NAT (Перевод сетевых адресов)

  • Упрощенная администрация с помощью DHCPv6

  • Улучшенное качество обслуживания благодаря маркировке потоков

 

 

A screenshot of a computer AI-generated content may be incorrect.

IPv4 Header

IP packet header fields
  • Version: первое поле показывает, какая версия IP используется, и для IPv4 всегда будет стоять значение 4.

  • Header Length: это поле в 4 бита определяет, какова длина IP-заголовка. Минимальная длина заголовка — 20 байт, поэтому значение этого поля будет равно 5. Максимально возможное значение — 15, что соответствует заголовку в 60 байт. Такое поле также называют длиной интернет-заголовка (IHL).

  • Type of Service: это поле используется для управления качеством обслуживания (QoS). В нем есть 8 бит, которые могут быть использованы для метки пакета, чтобы назначить ему определенное обращение. Подробнее об этом можно узнать в материалах по IP-преоритетам и DSCP.

  • Total Length: это поле в 16 бит указывает общий размер IP-пакета (включая заголовок и данные) в байтах. Минимальная длина — 20 байт, если данных нет, а максимальная длина — 65 535 байт, что является максимальным значением для 16 бит.

  • Identification: если IP-пакет был фрагментирован, все фрагменты будут иметь одинаковый 16-битный идентификатор, который показывает, к какому исходному пакету они принадлежат.

  • IP Flags: эти 3 бита используются для фрагментации пакетов:

    • Первый бит всегда равен 0.

    • Второй бит называется DF (Don’t Fragment), и он указывает, что данный пакет не должен быть фрагментирован.

    • Третий бит называется MF (More Fragments) и устанавливается на всех фрагментах, кроме последнего.

      пример в Wireshark

      пример в Wireshark
  • Fragment Offset: это поле в 13 бит указывает, на какой позиции в оригинальном пакете находится фрагмент.

  • Time to Live: каждый раз, когда IP-пакет проходит через маршрутизатор, его значение в поле времени жизни уменьшается на 1. Когда оно достигает 0, маршрутизатор удаляет пакет и отправляет сообщение ICMP о превышении времени на отправителя. Это поле предназначено для предотвращения бесконечных циклов маршрутизации.

  • Protocol: это 8-битное поле сообщает, какой протокол инкапсулирован в IP-пакете. Например, для TCP значение будет 6, а для UDP — 17.

  • Header Checksum: это 16-битное поле хранит контрольную сумму заголовка. Приемник может использовать ее, чтобы проверить целостность заголовка и выявить возможные ошибки.

  • Source Address: здесь указывается 32-битный IP-адрес источника.

  • Destination Address: а здесь — 32-битный IP-адрес назначения.

  • IP Option: это поле используется редко, оно необязательно и имеет переменную длину, зависящую от используемых опций. Если оно используется, длина заголовка увеличивается. Пример опции — «source route» (маршрут источника), когда отправитель требует, чтобы пакет шел по определенному маршруту.

IPv4 Header – Network Scenarios

Вот как выглядит IP header в Wireshark
A diagram of a website AI-generated content may be incorrect.

IPv6 FixedHeader

Заголовок IPv6 является частью данных, которые передаются по сети интернет. Его длина всегда составляет 40 байт и в нем содержится информация о маршруте и способе доставки данных. Это помогает устройствам эффективно обмениваться информацией и поддерживать стабильную работу сети.

Version (4 бита)

Поле имеет размер 4 бита и определяет версию интернет-протокола. Для IPv6 это всегда значение 6, что представлено в виде последовательности битов 0110.

Traffic Class (8 бит)

Поле Traffic Class указывает на приоритет или класс IPv6 пакета, аналогичное полю Service в IPv4. Это значение помогает маршрутизаторам обрабатывать пакеты в зависимости от их приоритета. В случае перегрузки маршрутизатора пакеты с низким приоритетом могут быть отброшены. На данный момент используется только 4 бита, в то время как остальные биты еще исследуются. В диапазоне от 0 до 7 указаны пакеты с контролем перегрузки, а от 8 до 15 — пакеты с неконтролируемым трафиком.

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

A screenshot of a computer AI-generated content may be incorrect.
  • 0 — Нет специфического трафика: используется, если нет конкретных требований к пакету.

  • 1 — Фоновый трафик: для данных, которые не требуют немедленного внимания и могут быть отправлены в периоды низкой загрузки сети.

  • 2 — Трафик данных без наблюдения: для данных, которые могут быть обработаны в фоновом режиме без необходимости в реальном времени.

  • 3 — Зарезервировано: этот приоритет зарезервирован для будущего использования.

  • 4 — Трафик с обслуживанием крупных данных: для больших объемов данных, которые требуют надежной доставки, но не обязательно в реальном времени.

  • 5 — Зарезервировано: также зарезервировано для будущих целей.

  • 6 — Интерактивный трафик: для данных, которые требуют немедленного отклика, например, для видеозвонков или онлайн-игр.

  • 7 — Контрольный трафик: для данных, которые управляют трафиком и необходимы для мониторинга или контроля сети.

Метка потока (Flow Label) (20 бит)

Это 20-битное поле используется источником для маркировки последовательностей пакетов, принадлежащих одному и тому же «потоку» и требующих специальной обработки маршрутизаторами . Точное использование этого поля определено в RFC 6437 . Следует отметить, что это новое поле в IPv6, и оно не имеет прямого эквивалента в IPv4. Метка потока направлена на повышение эффективности маршрутизации и поддержку новых приложений за счет возможности идентификации связанных пакетов. Группируя пакеты в потоки, маршрутизаторы могут принимать более обоснованные решения о пересылке или применять определенные политики QoS ко всем пакетам в потоке.

Длина полезной нагрузки (Payload Length) (16 бит)

Это 16-битное целое число без знака указывает длину в октетах (байтах) полезной нагрузки IPv6. Полезная нагрузка включает в себя любые расширенные заголовки и данные протокола верхнего уровня . Это отличается от поля «Общая длина» (Total Length) в IPv4 , которое включает в себя длину заголовка IPv4. Максимальная длина полезной нагрузки составляет 65 535 байт. Поле «Длина полезной нагрузки» в IPv6 четко разделяет размер заголовка (фиксированный) и размер данных, что потенциально упрощает обработку пакетов. Маршрутизаторам не нужно вычитать длину заголовка, чтобы определить размер полезной нагрузки, как это делается в IPv4.  

Следующий заголовок (Next Header) (8 бит)

Это 8-битное поле идентифицирует тип заголовка, который следует непосредственно за заголовком IPv6 . Это может быть расширенный заголовок или заголовок протокола верхнего уровня, такого как TCP или UDP . Оно использует те же значения, что и поле «Протокол» (Protocol) в IPv4 , которое определяет протокол, переносимый в разделе данных . Ниже представлена таблица с распространенными значениями этого поля, основанная на RFC 8200 и назначениях IANA .

A screenshot of a computer program AI-generated content may be incorrect.

Предел перехода (Hop Limit) (8 бит)

Это 8-битное целое число без знака представляет собой счетчик, который уменьшается на единицу каждым маршрутизатором (узлом пересылки), через который проходит пакет . Если предел перехода достигает нуля, пакет отбрасывается, чтобы предотвратить зацикливание маршрутов . Узлы назначения должны обрабатывать пакеты, даже если предел перехода равен нулю. Это поле аналогично полю «Время жизни» (Time to Live — TTL) в IPv4 , и хотя название отличается, основная цель — предотвращение бесконечной циркуляции пакетов — остается той же. Предел перехода обеспечивает стабильность сети, предотвращая бесконечное зацикливание пакетов в случае неправильной настройки маршрутизации. Ограничивая количество переходов, которые может совершить пакет, сеть избегает перегрузки и истощения ресурсов, вызванных пакетами, которые никогда не достигают своего назначения.  

Адрес источника (Source Address) (128 бит)

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

Адрес назначения (Destination Address) (128 бит)

Это 128-битный адрес предполагаемого получателя пакета . Этот адрес может не быть окончательным получателем, если присутствует заголовок маршрутизации . Как и в случае с адресом источника, он значительно длиннее 32-битного адреса назначения в IPv4 . Аналогично адресу источника, 128-битный адрес назначения способствует расширению возможностей адресации в IPv6. Это позволяет напрямую адресовать огромное количество устройств, облегчая сквозное подключение.

Расширенные заголовки IPv6

В IPv6 используются расширенные заголовки как механизм предоставления дополнительных функций, которые в IPv4 часто реализовывались в виде опций . В отличие от опций IPv4, расширенные заголовки IPv6 не имеют фиксированного максимального размера и могут быть объединены в цепочку . Поле «Следующий заголовок» в основном заголовке IPv6 указывает на первый расширенный заголовок, и каждый расширенный заголовок также имеет поле «Следующий заголовок», указывающее на следующий заголовок (другой расширенный заголовок или заголовок протокола верхнего уровня) . Если расширенные заголовки отсутствуют, поле «Следующий заголовок» в основном заголовке указывает непосредственно на протокол верхнего уровня.

A screenshot of a computer screen AI-generated content may be incorrect.

Заголовок опций перехода (Hop-by-Hop Options Header): Содержит опции, которые должны быть проверены каждым маршрутизатором на пути следования пакета.

Заголовок маршрутизации (Routing Header): Используется для маршрутизации на основе источника, позволяя отправителю указать путь, по которому должен следовать пакет .

Заголовок фрагментации (Fragment Header): Применяется для фрагментации пакетов, если они слишком велики для MTU пути (хотя IPv6 предпочитает механизм обнаружения MTU пути, чтобы избежать фрагментации) . Следует отметить разницу с IPv4, где фрагментацию могут выполнять и маршрутизаторы . Такой подход IPv6 к фрагментации перекладывает ответственность на узел-источник, что направлено на повышение эффективности работы сети за счет снижения нагрузки на обработку маршрутизаторов. Используя обнаружение MTU пути, IPv6 стремится обеспечить правильное определение размера пакетов на источнике, сводя к минимуму или исключая необходимость фрагментации. Когда фрагментация все же необходима, она выполняется только источником.  

Заголовок опций назначения (Destination Options Header): Содержит опции, которые должны обрабатываться только узлом(ами) назначения.

Заголовок аутентификации (Authentication Header — AH) и заголовок инкапсулирующей безопасности (Encapsulating Security Payload — ESP): Используются для обеспечения безопасности в рамках IPsec.

A diagram of a computer code AI-generated content may be incorrect.

 Globalroutingprefix (префикс глобальной маршрутизации): Это значение, которое назначается сети или сайту. Оно помогает идентифицировать группу подсетей или линков в интернете.

Subnet ID (идентификатор подсети): Это идентификатор конкретной подсети внутри сайта. Он помогает различать разные подсети в одном большом участке сети.

Interface ID (идентификатор интерфейса): Это уникальный идентификатор для каждого устройства или интерфейса в сети.

 

A close-up of a grid AI-generated content may be incorrect.

A close-up of a grid AI-generated content may be incorrect.

 Все уникаст-адреса IPv6, за исключением тех, которые начинаются с префикса 000, используют 64-битный идентификатор интерфейса в формате EUI-64.

глобальный префикс маршрутизации — это значение, назначенное для идентификации сайта (кластера подсетей/линков)

идентификатор подсети — это уникальный идентификатор подсети внутри сайта

идентификатор интерфейса — это модифицированный формат EUI-64

A screen shot of a computer AI-generated content may be incorrect.
A close up of a number Description automatically generated
A diagram of a graph AI-generated content may be incorrect.

Существует несколько типов IPv6-адресов

Глобальные Unicast-адреса (Global Unicast Addresses): Это общедоступные, маршрутизируемые в Интернете адреса, аналогичные публичным IPv4-адресам . Они начинаются с префикса 2000::/3 . Их структура включает префикс глобальной маршрутизации, идентификатор подсети и идентификатор интерфейса .  

Уникальные локальные адреса (ULA — Unique Local Addresses): Это частные адреса для локальной коммуникации внутри организации, аналогичные частным IPv4-адресам . Они имеют префикс fc00::/7 или fd00::/8 . ULA пришли на смену устаревшим site-local адресам (fec0::/10)

Link-Local адреса: Используются для связи в пределах одного сегмента сети . Они автоматически настраиваются устройствами и имеют префикс fe80::/10 . Link-Local адреса необходимы для работы протокола обнаружения соседей (Neighbor Discovery Protocol).

Multicast-адреса: Используются для отправки пакетов группе устройств . Они начинаются с префикса ff00::/8 . Multicast-адреса заменяют широковещательные адреса IPv4, обеспечивая более эффективную групповую связь.

Anycast-адреса: Идентифицируют один из набора интерфейсов, предоставляющих определенную услугу (неявное знание). Пакеты, отправленные на anycast-адрес, доставляются ближайшему интерфейсу с этим адресом.

Адрес Loopback: ::1/128, эквивалентный 127.0.0.1 в IPv4 . Используется для тестирования локального хоста.

Неопределенный адрес: ::/128, используется в качестве адреса источника во время процесса обнаружения дубликатов адресов (DAD) . Указывает на отсутствие адреса.

Обнаружение дубликатов адресов (DAD) в IPv6 на устройствах Cisco: обеспечение уникальности адресов

DAD

DAD вы подумаете причем тут отец? Но нет DAD — Duplicate Address Detection Процесс обнаружения дубликатов адресов является важной частью IPv6, который гарантирует уникальность unicast-адресов перед их назначением интерфейсу . DAD использует сообщения Neighbor Solicitation (NS) и Neighbor Advertisement (NA) протокола обнаружения соседей (NDP) . Узел, желающий использовать определенный IPv6-адрес, отправляет сообщение NS с неопределенным адресом источника (::) и адресом назначения, являющимся multicast-адресом запрошенного узла (solicited-node multicast address) . Если другой узел в сети уже использует этот адрес, он отвечает сообщением NA . DAD является фундаментальным механизмом в IPv6 для предотвращения конфликтов IP-адресов в пределах одного сегмента сети.  

A screenshot of a computer AI-generated content may be incorrect.

Алгоритм работы

Существует оптимизированная версия DAD, называемая Optimistic DAD, которая позволяет сократить задержки при настройке адресов 1 . Optimistic DAD позволяет использовать адрес сразу после отправки сообщения NS, с некоторыми ограничениями . Этот метод рекомендуется использовать для адресов, которые с высокой вероятностью являются уникальными, например, адресов, сгенерированных на основе EUI-64 или случайным образом .

Процесс DAD, основанный на сообщениях NDP, уязвим для атак типа «отказ в обслуживании» (DoS) . Злоумышленники могут отправлять поддельные сообщения NA, чтобы предотвратить настройку легитимными узлами своих IP-адресов . Стандартный процесс DAD не имеет встроенных механизмов безопасности .  

Существуют различные сценарии, в которых DAD может работать некорректно. К ним относятся проблемы с петлями в сети, которые могут вызывать ложные срабатывания , гонки во время загрузки системы, когда службы пытаются привязаться к еще не проверенным адресам , а также разделение сети на сегменты .  

На устройствах Cisco DAD включен по умолчанию , но его можно перенастроить или отключить как глобально, так и на уровне отдельных интерфейсов . DAD является частью протокола обнаружения соседей (NDP) . NDP также отвечает за обнаружение недоступности соседей (Neighbor Unreachability Detection) .

Subnetting IPv6 (Сетевое деление IPv6)

Когда мы делим сеть IPv6, важно понять, сколько бит мы используем для деления. Количество бит для деления вычисляется как разница между новой длиной префикса и исходной длиной. Например, если у нас есть сеть /48 и мы разбиваем её на сети /52, то разница 52-48 = 4. То есть мы используем 4 бита для деления.

Чем больше бит для деления, тем больше подсетей можно создать. Если у нас есть 4 бита для деления, то можно создать 16 подсетей (2^4 = 16).

Множество организаций получают префикс /48. Это означает, что они могут выделить множество внутренних сетей, и каждая из этих сетей будет иметь префикс /64, что считается лучшей практикой для сетей с конечными устройствами (например, компьютерами или телефонами).

Адрес IPv6 делится на 8 частей, каждая из которых состоит из 16 бит. Префикс /48 находится на границе между 3-й и 4-й частью.

A screenshot of a computer AI-generated content may be incorrect.

Пример: если организации дали сеть 2001:db8:1::/48, то она может выделить 65536 подсетей /64. Это будет выглядеть так:

  • 2001:db8:1:0::/64

  • 2001:db8:1:1::/64

  • 2001:db8:1:2::/64

  • 2001:db8:1:3::/64

  • И так далее до 2001:db8:ffff::/64

Как видите, это довольно просто. Все внутренние сети начинаются с одинаковых первых трех частей (например, 2001:db8:1), а различаются только в четвертой части (2001:db8:1:0, 2001:db8:1:1 и так далее).

A close-up of a number Description automatically generated

Если нужно разобраться в более сложных примерах, можно использовать калькулятор для подсетей IPv6. https://subnettingpractice.com/ipv6-subnet-calculator.html

IPv6 Multicast

Важное замечание: IPv6 не использует адреса вещания (broadcast)

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

Мультикаст в IPv6 позволяет отправлять данные группе устройств (например, всем хостам в сети), а не каждому устройству по отдельности. Чтобы достичь того же эффекта, что и вещание, IPv6 использует мультикаст-адрес «всем хостам».

A screenshot of a computer AI-generated content may be incorrect.

Команда show ipv6 interface на маршрутизаторе R1 может показывать, какие multicast группы маршрутизатор слушает.

Configuring IPv6 addresses using EUI-64 – IT Networking Skills

IPv6 Multicast Scope

Поле «scope» указывает на область сети IPv6, для которой предназначен мультикаст-трафик. Это поле имеет размер 4 бита. Помимо информации, предоставляемой протоколами маршрутизации для мультикаст, маршрутизаторы используют область действия (scope), чтобы определить, можно ли перенаправить мультикаст-трафик. Для мультикаст-адресов существует 14 возможных областей действия (некоторые из них еще не назначены), которые варьируются от локальной области интерфейса до глобальной (включая локальные на уровне сети и на уровне сайта).

Multicast scopes in IPv4 and IPv6 | Download Table

Multicast scopes in IPv4 and IPv6
  • Interface-Local Scope (Значение: 1): Эта область ограничена одним интерфейсом, то есть мультикаст-трафик будет отправляться только на интерфейсе, с которого он был отправлен. Для IPv4 аналог не назначен.

  • Link-local Scope (Значение: 2): Эта область относится к локальному сегменту сети (или линку). Мультикаст-трафик с таким scope будет отправляться только в пределах одного сегмента или сети т.е между двумя соседями. В IPv4 это соответствует префиксу 224.0.0.0/24.

  • Admin-Local Scope (Значение: 4): Эта область предназначена для административных целей в пределах организации, и для нее не существует аналогичного префикса в IPv4.

  • Site-local Scope (Значение: 5): Эта область предназначена для мультикаст-трафика внутри одного сайта (например, корпоративной сети). В IPv4 она соответствует префиксу 239.255.0.0/16.

  • Organisation-local Scope (Значение: 8): Эта область предназначена для использования внутри одной организации, охватывая более широкую территорию, чем site-local. В IPv4 она соответствует префиксу 239.192.0.0/14.

  • Global Scope (Значение: E): Это самая широкая область, и мультикаст-трафик с таким scope может передаваться по всему миру.

Чтобы понять визуально представлю вам такую картину.

A diagram of a diagram Description automatically generated

 

IPv6 использует три типа адресов: Link-Local, Unique Local и Global.

В отличие от IPv4, где у интерфейса обычно один IP-адрес, в IPv6 каждый интерфейс автоматически получает Link-Local адрес. Эти адреса всегда начинаются с FE80::/64 , FE9, FEA или FEB.и используются для связи внутри одной локальной сети (сегмента).

Например, если компьютер подключается к сети, он сразу получает Link-Local адрес. Если в сети есть DHCP-сервер, устройство может запросить глобальный IP-адрес. Если DHCP-сервер недоступен, в IPv4 устройство получит адрес из диапазона 169.254.x.x (APIPA), чтобы временно подключиться к сети. Оно также проверит, не используется ли этот адрес другим устройством, отправив ARP-запрос.

В IPv6, даже без DHCP, интерфейс всегда имеет Link-Local адрес, что гарантирует базовую связь между устройствами в локальной сети. Префикс /64 означает, что первые 64 бита адреса указывают на сеть, а оставшиеся 64 — на конкретное устройство (хост).

Если адрес настроен вручную с помощью команды ipv6 address link-local, то он должен быть из диапазона FE80::/10.  (1111=F E=1110 8=1000)= 10 бит т.к это остается неизменным применяется маска 10. Также если начинается с FE9, FEA или FEB т.к маска все равно

Link Local Address

A diagram of a link Description automatically generated

Как создаются Link-Local IPv6 адреса?

Link-Local адреса в IPv6 могут генерироваться на основе MAC-адреса устройства (48 бит) с использованием стандарта EUI-64. Процесс включает несколько шагов:

  • Деление MAC-адреса на две части.
    Например, для MAC-адреса 6C-94-66-FF-3B-1A:

    • Первая часть: 6C-94-66.

    • Вторая часть: FF-3B-1A.

  • Добавление фиксированных битов.
    Между двумя частями вставляется последовательность бит FF:FE, расширяющая MAC-адрес до 64 бит:

  • 6C-94-66-FF-FE-FF-3B-1A

  • Инвертирование 7-го бита (Universal/Local бит).

    • U/L бит находится в первом байте MAC-адреса (в данном случае — 6C, или 01101100 в двоичном виде).

    • Этот бит определяет, является ли адрес:

      • Глобально уникальным (0).

      • Локально администрируемым (1).

    • Инверсия 7-го бита меняет 01101100 на 01101110 (6C → 6E).

A screen shot of a computer AI-generated content may be incorrect.

Итоговый идентификатор для MAC-адреса 6C-94-66-FF-3B-1A будет:                                FE80::6E94:66FF:FEFF:3B1A

U/L битом (Universal/Local bit) Этот бит определяет, является ли MAC-адрес:

  • Глобально уникальным (0):

Такой MAC-адрес был назначен производителем оборудования.Уникальность гарантируется на глобальном уровне, потому что производители получают блоки MAC-адресов от IEEE. Пример: MAC-адрес, прописанный на заводе в сетевой карте.

  • Локально администрируемым (1):

Такой MAC-адрес был изменен вручную пользователем или администратором.Уникальность не гарантируется, поскольку адрес задается локально.Пример: Если ты вручную изменил MAC-адрес на своем устройстве.

Команда ipv6 enable используется для включения IPv6 на интерфейсе и автоматического создания линк-локального адреса, без назначения глобальных IPv6-адресов. Это полезно на WAN-соединениях, где роутеры могут обмениваться данными, используя только линк-локальные адреса, не требуя глобальных адресов для маршрутизации. Протоколы маршрутизации, такие как OSPF, EIGRP, BGP, могут работать через линк-локальные адреса, если они настроены на этом интерфейсе.

A screen shot of a computer code AI-generated content may be incorrect.

 

Solicited-Node Multicast Addresses в IPv6

Understanding IPv6: What Is Solicited-Node Multicast? (Part 4 of 7) :

Understanding IPv6: What Is Solicited-Node Multicast? (Part 4 of 7) :

 NDP (Neighbor Discovery Protocol) — протокол в IPv6, заменяющий ARP в IPv4. Он используется для нахождения соседей в сети, например, для разрешения MAC-адресов .

Как работает NDP? — Когда устройство хочет узнать MAC-адрес другого, оно отправляет Neighbor Solicitation (NS) на Solicited-Node Multicast Address (SNMA), связанный с нужным IP-адресом. Ответ приходит от устройства через Neighbor Advertisement (NA) .

SNMA (Solicited-Node Multicast Address) — это мультикаст-адрес, который используется в NDP для запросов MAC-адресов, чтобы уменьшить трафик. Каждый IPv6-адрес имеет свой SNMA, что позволяет запросить информацию только у нужных устройств, избегая широковещательных запросов . Таким образом, NDP с использованием SNMA минимизирует сетевой трафик, отправляя запросы только тем устройствам, которые могут на них ответить.

Как строится адрес: Solicited-Node Multicast Address начинается с префикса FF02::1:FF и заканчивается последними 6 шестнадцатеричными цифрами из локального IPv6-адреса хоста .

Пример: Если у роутера есть глобальный адрес 2001:DB8:1111:1::1/64, то solicited-node multicast адрес будет:

  • Для глобального адреса: FF02::1:FF00:0001.

  • Для link-local адреса FE80::AA:AAAA: FF02::1:FF00:AAAA.

Для вычисления Solicited-Node Multicast адреса из IPv6-адреса нужно взять последние 24 бита (6 последних шестнадцатеричных символов) из адреса. Эти 6 цифр добавляются к префиксу FF02::1:FF .

A red arrow pointing to a number AI-generated content may be incorrect.

Пример: У вас есть IPv6 адрес, например 2001:db8::2aa:ff:fe28:9c5a. Извлекаются последние 6 цифр адреса: 28:9c5a. Эти цифры добавляются к префиксу FF02::1:FF, в итоге получается Solicited-Node Multicast адрес: FF02::1:FF28:9c5a.

Этот процесс повторяется для каждого юникастного адреса на интерфейсе, будь то глобальный или линк-локальный.

 © Javid CCNP


ссылка на оригинал статьи https://habr.com/ru/articles/892366/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *