ICMPv6
-
Основы ICMPv6
- ICMPv6 является частью IPv6 и выполняет функции отчетов об ошибках и диагностики.
- ICMPv6 имеет структуру для расширений для добавления новых функций.
- Были опубликованы расширения, определяющие новые типы сообщений ICMPv6 и опции для существующих типов.
-
Расширения ICMPv6
- NDP — это протокол обнаружения соседей, который заменяет и расширяет функции ARP.
- SEND — это расширение NDP с дополнительной безопасностью.
- MLD используется маршрутизаторами IPv6 для обнаружения многоадресных слушателей на прямой связи.
- MRD позволяет обнаруживать многоадресные маршрутизаторы.
-
Типы и форматы сообщений ICMPv6
- Сообщения ICMPv6 классифицируются как сообщения об ошибках и информационные сообщения.
- Сообщения ICMPv6 переносятся пакетами IPv6 с установленным значением Next Header равным 58.
- ICMPv6-сообщение состоит из заголовка и полезной нагрузки протокола.
- Заголовок содержит только три поля: тип, код и контрольную сумму.
- Тип указывает тип сообщения, значения от 0 до 127 указывают на сообщение об ошибке, а значения от 128 до 255 указывают на информационное сообщение.
- Поле кода предоставляет дополнительную информацию о гранулярности сообщения.
- Контрольная сумма обеспечивает минимальный уровень проверки целостности сообщения ICMPv6.
-
Типы сообщений
- Контрольные сообщения идентифицируются значением в поле типа.
- Поле кода предоставляет дополнительный контекст для сообщения.
- Некоторые сообщения выполняют ту же функцию, что и соответствующие типы ICMP.
- Существуют два подтипа сообщений Multicast Listener Query: General Query и Multicast-Address-Specific Query.
-
Контрольная сумма
- ICMPv6 обеспечивает минимальный уровень проверки целостности сообщений с помощью 16-битной контрольной суммы в заголовке.
- Контрольная сумма вычисляется начиная с псевдозаголовка полей IPv6-заголовка и продолжается с ICMPv6-сообщением.
- Вычисление контрольной суммы выполняется в соответствии со стандартами интернет-протокола с использованием дополнения 16-битных единиц и последующего дополнения контрольной суммы.
-
Формат полезной нагрузки
- Полезная нагрузка ICMPv6 сообщения варьируется в зависимости от типа отправляемого сообщения.
- Она начинается с бита 32 после заголовка, описанного выше.
- Для некоторых сообщений, таких как недоступность адресата или превышение времени, нет определенного тела сообщения.
- Для других сообщений тело используется только для первых четырех байтов с неопределенным содержимым.
- В случае сообщений NDP первые четыре байта могут быть зарезервированы или использоваться для флагов/максимального количества переходов.
-
Обработка сообщений
- При получении пакета ICMPv6 узел должен предпринять действия в зависимости от типа сообщения.
- Протокол ICMPv6 ограничивает количество отправляемых сообщений об ошибках для предотвращения перегрузки сети.
- Если узел продолжает отправлять ошибочные пакеты, ICMP сигнализирует об ошибке первому пакету и затем периодически повторяет это с фиксированным минимальным периодом или с фиксированной максимальной нагрузкой сети.
-
Ссылки
- Ссылки на IANA: ICMPv6 Parameters для полного списка назначенных типов ICMPv6.
Полный текст статьи: