Обработка пакетов с неизвестными заголовками расширения IPv6 - PullRequest
7 голосов
/ 24 марта 2012

Вопрос

Нужно ли отбрасывать пакет с неизвестным расширением заголовка IPv6?

Подробности

Я не смог найти ответ на этот вопрос, изучив RFC .В книге Основы IPv6 говорится на странице 22:

Если узлу требуется следующий заголовок, но он не может определить значение в поле следующего заголовка, необходимо отбросить пакети отправляю сообщение об ошибке параметра ICMPv6 обратно источнику пакета.

Я читаю это как: пакет IPv6 с настраиваемым заголовком расширения не может быть отброшен, если только all IPv6Стеки вдоль пути знают, как обращаться с заголовком.Или, эквивалентно, если одно устройство IPv6 на пути не знает, как обрабатывать пользовательский заголовок, оно отбрасывает пакет.

Это противоречит общей идее расширения: я не могу представить новое расширение безобновление всей сети, даже если пользовательское расширение не влияет на общий стек IPv6.

1 Ответ

7 голосов
/ 24 марта 2012

Из RFC2460 (Интернет-протокол, версия 6 (IPv6)):

If, as a result of processing a header, a node is required to proceed
to the next header but the Next Header value in the current header is
unrecognized by the node, it should discard the packet and send an
ICMP Parameter Problem message to the source of the packet, with an
ICMP Code value of 1 ("unrecognized Next Header type encountered")
and the ICMP Pointer field containing the offset of the unrecognized
value within the original packet.  The same action should be taken if
a node encounters a Next Header value of zero in any header other
than an IPv6 header.

Поскольку заголовки расширений используют поле Next Header, я бы интерпретировал это как означающее, что вы должны отбросить пакет и отправить ошибку ICMP обратно. Обратите внимание, что он относится только к хосту назначения. Маршрутизаторы должны игнорировать все заголовки расширений:

With one exception, extension headers are not examined or processed
by any node along a packet's delivery path, until the packet reaches
the node (or each of the set of nodes, in the case of multicast)
identified in the Destination Address field of the IPv6 header.
...