Открыть сервис

Заголовки расширения IPv6

Заголовки расширения IPv6 — это механизм протокола IPv6, позволяющий включать в IP-пакет дополнительные поля управления, которые не входят в основной фиксированный заголовок. В отличие от IPv4, где поле опций ограничено 40 байтами и обрабатывается всеми узлами, в IPv6 опции вынесены в отдельные цепочки заголовков, что повышает гибкость и эффективность маршрутизации.

Назначение и принцип работы

Основной заголовок IPv6 имеет фиксированный размер 40 байт. Для реализации дополнительных функций — фрагментации, безопасности, маршрутизации от источника, контроля времени жизни и других — используются заголовки расширения. Каждый такой заголовок содержит поле «Следующий заголовок» (Next Header), указывающее тип следующего элемента в цепочке. Это позволяет последовательно соединять несколько заголовков расширения, формируя цепочку произвольной длины.

Обработка заголовков расширения производится только узлом назначения (или специально указанными промежуточными узлами), что снижает нагрузку на маршрутизаторы. Промежуточные устройства, как правило, игнорируют большинство заголовков расширения и обрабатывают только основной заголовок.

Классификация заголовков расширения

Протокол IPv6 определяет несколько типов заголовков расширения, каждый из которых имеет свой номер поля «Следующий заголовок»:

Hop-by-Hop Options (0)

Используется для опций, которые должны обрабатываться каждым узлом на пути следования пакета. Применяется для таких функций, как Jumbo Payload (поддержка пакетов более 65 535 байт) и Router Alert (сигнализация маршрутизаторам о необходимости особой обработки). Из-за требования обработки на каждом узле этот заголовок замедляет маршрутизацию и используется редко.

Routing (43)

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

Fragment (44)

Применяется для фрагментации пакетов, размер которых превышает MTU (максимальную единицу передачи) канала. В отличие от IPv4, где фрагментацию могут выполнять промежуточные маршрутизаторы, в IPv6 фрагментацию выполняет только узел-отправитель. Промежуточные узлы при превышении MTU отбрасывают пакет и отправляют ICMPv6-сообщение Packet Too Big.

Encapsulating Security Payload (ESP, 50)

Обеспечивает конфиденциальность, аутентификацию и целостность данных. Используется в составе протокола IPsec. В отличие от других заголовков расширения, ESP шифрует содержимое пакета, поэтому поля заголовка не видны промежуточным узлам.

Authentication Header (AH, 51)

Обеспечивает аутентификацию и целостность пакета без шифрования. Также используется в IPsec. Защищает от подмены и модификации данных, но не скрывает содержимое.

Destination Options (60)

Содержит опции, которые обрабатываются только узлом назначения. Может встречаться дважды в цепочке: перед заголовком Routing и перед транспортным уровнем. Применяется для таких функций, как Home Address Option в протоколе Mobile IPv6.

No Next Header (59)

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

Mobility Header (135)

Используется в протоколе Mobile IPv6 для управления мобильностью узлов — регистрации, обновления привязок и других функций.

Порядок заголовков

RFC 8200 рекомендует определённый порядок следования заголовков расширения в пакете:

  1. Основной заголовок IPv6
  2. Hop-by-Hop Options
  3. Destination Options (для промежуточных узлов)
  4. Routing
  5. Fragment
  6. Authentication Header
  7. Encapsulating Security Payload
  8. Destination Options (для конечного узла)
  9. Заголовок транспортного уровня (TCP, UDP, ICMPv6)

Этот порядок не является строго обязательным, но его соблюдение упрощает обработку пакетов и повышает совместимость. Исключение составляет заголовок Hop-by-Hop Options, который, если присутствует, должен следовать непосредственно за основным заголовком.

Проблемы безопасности

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

В 2020-х годах в ряде операционных систем и межсетевых экранов были обнаружены уязвимости, связанные с обработкой заголовков расширения. Это привело к рекомендациям ограничивать количество и типы обрабатываемых заголовков. Некоторые публичные сервисы, включая отдельные платформы, блокируют пакеты с определёнными заголовками расширения для защиты от атак.

Практическое применение

На практике большинство обычных пакетов IPv6 не содержат заголовков расширения. Они используются в специализированных сценариях: при построении VPN-туннелей (IPsec), в мобильных сетях (Mobile IPv6), в мультимедийных приложениях (Router Alert для RSVP) и в высокопроизводительных вычислениях (Jumbo Payload). Большинство операционных систем поддерживают обработку заголовков расширения, но их применение требует настройки и осознания потенциальных рисков.

Источники

  • RFC 8200 «Internet Protocol, Version 6 (IPv6) Specification»
  • RFC 4302 «IP Authentication Header»
  • RFC 4303 «IP Encapsulating Security Payload»
  • Деering S., Hinden R. «IPv6 Specification»

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →