какое поле использует icmpv6 чтобы определить истек ли срок пакета

Глава 23

ICMPv6 и исследование соседей

23.1 Введение

Версия 6 протокола Internet Control Message Protocol (ICMPv6) сохраняет многие функции версии 4, но вводит и несколько важных изменений:

■ Сообщения ICMPv6 помогают в автоматической конфигурации адресов.

■ Новые сообщения и процедуры ICMPv6 заменяют протокол ARP.

■ Автоматизируется исследование максимального элемента пересылки (MTU) по пути. Поскольку маршрутизаторы более не фрагментируют пакеты, то в случае слишком большого размера пакетов источнику отправляется сообщение Packet Too Big (пакет слишком велик).

■ ICMPv6 не посылает сообщений Source Quench.

■ ICMPv6 принимает на себя функции отчета о членстве в многоадресной группе протокола Internet Group Management Protocol.

■ ICMPv6 помогает определить выключение маршрутизатора или партнера по коммуникации.

ICMPv6 настолько отличается от старой версии, что ему присвоен новый номер 58 в заголовке Next Header.

23.2 Базовые сообщения ICMPv6

В таблице 23.1 перечислены основные типы сообщений ICMPv6. Отметим, что сообщениям об ошибке присвоены номера от 0 до 127, а информационным сообщениям — от 128 до 255. Общий формат сообщения ICMP показан на рис. 23.1. Сначала рассмотрим сообщения ICMP, сходные с сообщениями версии 4.

Таблица 23.1 Типы сообщений ICMP

Сообщения об ошибкахТип
Destination Unreachable (точка назначения недоступна)1
Packet Too Big (пакет слишком велик)2
Time Exceeded (истекло время)3
Parameter Problem (проблема с параметрами)4
Информационные сообщенияТип
Echo Request (эхо-запрос)128
Echo Reply (эхо-ответ)129
Group Membership Query (запрос о членстве в группе)130
Group Membership Report (отчет о членстве в группе)131
Group Membership Reduction (исключение из членов группы)132

какое поле использует icmpv6 чтобы определить истек ли срок пакета

Рис. 23.1. Формат сообщения ICMPv6

23.2.1 Destination Unreachable

Причина отправки сообщения Destination Unreachable (точка назначения недоступна) определяется кодами:

0 Нет маршрута к точке назначения

1 Административно запрещено взаимодействие с точкой назначения

2 Следующее назначение в заголовке Routing не является соседом, но установлен бит strict.

3 Адрес недоступен

Формат сообщения Destination Unreachable показан на рис. 23.2.

какое поле использует icmpv6 чтобы определить истек ли срок пакета

Рис. 23.2. Формат сообщения Destination Unreachable

23.2.2 Packet Too Big

Маршрутизатор посылает сообщение Packet Too Big (пакет слишком велик), когда пакет больше MTU связи следующего попадания. Это значение будет включено в отправляемое сообщение. В версии 4 этот же смысл имеет сообщение Destination Unreachable. Формат сообщения Packet Too Big показан на рис. 23.3.

какое поле использует icmpv6 чтобы определить истек ли срок пакета

Рис. 23.3. Формат сообщения Packet Too Big

23.2.3 Time Exceeded

Сообщение Time Exceeded (истекло время) отправляется маршрутизатором, который уменьшил счетчик попаданий до нуля (код = 0), или системой, у которой закончилось время на сборку пакета (код = 1). Формат сообщения идентичен Destination Unreachable, но поле типа равно 3.

23.2.4 Parameter Problem

Сообщение Parameter Problem (проблема с параметрами) отправляет система, которая не может обработать пакет из-за одного из полей заголовка. Коды сообщения:

0 Неправильное количество полей заголовка

1 Нераспознанный тип в поле Next Header

2 Нераспознанный вариант IPv6

Формат сообщения идентичен Destination Unreachable, но неиспользованное поле занято указателем, описывающим смещение октета с ошибкой, а тип равен 4.

23.2.5 Echo Request и Echo Reply

Сообщения Echo Request (эхо-запрос) и Echo Reply (эхо-ответ) имеют формат, как и в версии 4, но для запроса используется тип = 128, а для ответа тип = 129.

23.2.6 Group Membership

Формат сообщений многоадресных рассылок Group Membership (членство в группе) показан на рис. 23.4. Он был изменен относительно версии 4 для согласования с форматом ICMPv6. Поле Maximum Response Delay (максимальная задержка ответа) имеет ненулевое значение только в сообщениях запросов. Оно указывает максимальное время, на которое может быть задержан ответ. В сообщении могут быть перечислены следующие типы:

130 Group Membership Query

131 Group Membership Report

132 Group Membership Reduction

какое поле использует icmpv6 чтобы определить истек ли срок пакета

Рис. 23.4. Формат сообщений Group Membership

23.3 Исследование соседей

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

Router DiscoveryИсследование маршрутизаторов. Поиск маршрутизаторов в локальной связи.
Prefix DiscoveryИсследование префикса. Исследование и использование префикса точки назначения (на связи или удаленной). Используется вместо маски подсети.
Parameter DiscoveryИсследование параметров. Выяснение значений параметров (например, MTU или предела по умолчанию для счетчика попаданий).
Address AutoconfigurationАвтоконфигурация адресов. Самоконфигурация адресов интерфейса связи.
Address ResolutionРазрешение адресов. Отображение IP-адреса соседа по связи на адрес уровня связи данных.
Next-hop DeterminationОпределение следующего попадания. Отображение IP-адреса на адрес участка следующего попадания.
Neighbor Unreachability DetectionОпределение недостижимости соседа. Определение отказавшего соседнего хоста или маршрутизатора.
Duplicate Address DetectionОпределение дублирования адресов. Проверка, не используется ли присваиваемый IP-адрес другой системой.
RedirectПеренаправление. Получение уведомления, что существует лучший маршрутизатор для данной точки назначения или что точка назначения находится в локальной связи.

В таблице 23.2 перечислены сообщения ICMPv6, предлагаемые для реализации функций Neighbor Discovery.

Таблица 23.2 Сообщения ICMP для исследования соседей

Информационное сообщениеТип
Router Solicitation Message (сообщение-ходатайство маршрутизатора)133
Router Advertisement Message (сообщение-объявление маршрутизатора)134
Neighbor Solicitation Message (сообщение-ходатайство соседа)135
Neighbor Advertisement Message (сообщение-объявление соседа)136
Redirect (перенаправить)137

23.3.1 Автоконфигурация через маршрутизаторы

Маршрутизаторы предоставляют хостам:

■ Адресную информацию маршрутизатора

■ Список всех префиксов, используемых связью

■ Префиксы, которые должны применять хосты для создания собственных адресов

■ Максимальный предел попаданий, который должен использоваться для путей, проходящих через этот маршрутизатор

■ Указание, должны ли хосты использовать сервер загрузки для получения дополнительных конфигурационных данных

■ MTU для связи, имеющей различные MTU

■ Значения для различных таймеров

Все эти операции выполняются через сообщения ICMPv6 Router Advertisement (объявления маршрутизатора), имеющие тип 134. Хосты слушают сообщения Router Advertisement по всем адресам многоадресных рассылок на всех узлах локальной связи.

Когда хост загружается, он может не дождаться Router Advertisement и отправить сообщение Router Solicitation (ходатайство маршрутизатору) с типом 133, чтобы вызвать объявление от маршрутизатора. Маршрутизатор отвечает сообщением Advertisement по адресу локальной связи хоста.

23.3.2 Сообщения Neighbor Solicitation и Advertisement

В настоящее время предлагается заменить запросы старого протокола Address Resolution Protocol (ARP) новыми многоадресными сообщениями протокола ICMP Neighbor Solicitation и Advertisement (ходатайство и объявление соседа). Сообщение Neighbor Advertisement является ответом на Neighbor Solicitation. Кроме исследования соседей по адресам уровня связи данных, сообщение Neighbor Solicitation применяется для:

■ Обнаружения дублированных IP-адресов

■ Тестирования, является ли маршрутизатор отключенным

■ Тестирования, является ли отключенным сосед, которому посылались пакеты

23.3.3 Address Resolution

Для исследования адреса соседа на уровне связи данных сообщение Neighbor Solicitation отправляется на специальный адрес, называемый целевым адресом ходатайствующего узла для многоадресной рассылки (solicited-node multicast address). Этот адрес сформирован из младших 32 бит целевого IP-адреса и предопределенного 96-разрядного префикса FF02:0:0:0:0:1. Таким способом создается адрес многоадресной рассылки, вложенный в локальную связь. Отправитель включает в сообщение собственный адрес уровня связи данных.

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

23.3.4 Обнаружение дублирования IP-адресов

Перед использованием IP-адреса локальной связи или любого другого адреса, который не был построен путем добавления префикса к адресу локальной связи, узел должен послать сообщение Neighbor Solicitation с целью узнать, имеет ли кто-то из соседей выбранный IP-адрес. В качестве исходного адреса для сообщения узел применяет неспецифицированный адрес. Если адрес IP уже используется, его владелец пошлет ответ в многоадресной рассылке.

23.3.5 Обнаружение непостижимости соседа

Обнаружение неисправного маршрутизатора было рискованным делом в IPv4. В версии 6, когда тайм-аут указывает на бездействующий маршрутизатор, система проверяет такой маршрутизатор одноадресным сообщением Neighbor Solicitation.

Такая же процедура выполняется, чтобы проверить недостижимость соседнего хоста.

23.3.6 Сообщение Redirect

Как и в версии 4, когда хост пересылает датаграмму на неправильный локальный маршрутизатор, он получает обратно сообщение Redirect (перенаправление), указывающее правильный узел для первого попадания. Сообщение Redirect может использоваться для уведомления отправителя о размещении точки назначения в локальной связи. Возможно, именно поэтому сообщение Redirect определено в спецификации Neighbor Discovery.

Ha рис. 23.5 показан предложенный формат для сообщения Redirect в ICMPv6. Целевой адрес — это адрес IP следующего попадания, который должен использоваться при пересылке пакета. Адрес назначения — это выбранная точка назначения. Поле выбора содержит адрес уровня связи данных целевой системы и может также включать сведения для перенаправления датаграммы.

какое поле использует icmpv6 чтобы определить истек ли срок пакета

Рис. 23.5. Формат сообщения Redirect

23.4 Дополнительная литература

ICMPv6 описан в RFC 1885. На момент выхода книги протоколы Neighbor Discovery были еще на стадии обсуждения.

Источник

Какое поле использует icmpv6 чтобы определить истек ли срок пакета

Хотя IP не является надёжным протоколом, набор протоколов TCP/IP обеспечивает отправку сообщений даже в случае возникновения каких-либо ошибок. Эти сообщения отправляются с помощью ICMP-сервисов. Назначение таких сообщений — предоставлять отзывы о проблемах, связанных с обработкой IP-пакетов в определённых условиях, а не повышать надёжность протокола IP. Из соображений безопасности ICMP-сообщения не обязательны, а часто даже не разрешаются в рамках сети.

ICMP может использоваться как с IPv4, так и с IPv6. ICMPv4 — это протокол обмена сообщениями для IPv4. Протокол ICMPv6 предоставляет те же сервисы для IPv6, но при этом включает в себя дополнительные функциональные возможности. В рамках данного курса термин ICMP будет использоваться для обозначения как ICMPv4, так и ICMPv6.

Существует множество типов ICMP-сообщений, а также причин их отправки. Рассмотрим некоторые наиболее распространённые сообщения.

ICMP-сообщения, общие для ICMPv4 и ICMPv6, включают в себя:

Эхо-запрос по протоколу ICMP можно использовать, чтобы определить, функционирует ли узел. Локальный узел отправляет узлу эхо-запрос ICMP. Если узел доступен, узел назначения отправляет эхо-ответ.

Когда узел или шлюз получает пакет, который не может доставить, он может использовать ICMP-сообщение «Назначение недоступно», чтобы сообщить источнику о том, что назначение или услуга для них недоступны. Такое сообщение содержит код, сообщающий, что пакет не может быть доставлен.

Коды о недоступном назначении для ICMPv4 включают в себя:

Примечание. За исключением некоторых различий, протокол ICMPv6 обладает схожими кодами для сообщений о недоступном назначение.

Сообщение ICMPv4 об истечении времени используется маршрутизатором для указания на то, что пакет переслать невозможно, поскольку значение в поле «Время жизни» (TTL) пакета было изменено на 0. Если маршрутизатор получает пакет и изменяет значение в поле «Время жизни» (TTL) IPv4-пакета на ноль, он отбрасывает пакет и отправляет в узел источника сообщение об истечении времени.

Также протокол ICMPv6 отправляет сообщение об истечении времени в том случае, если маршрутизатор не может переслать пакет IPv6 ввиду того, что пакет истек. В протоколе IPv6 поле «Время жизни» (TTL) отсутствует. Для указания на то, что срок жизни пакета истёк, им используется поле «Ограничение перехода».

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

Оба протокола ICMPv4 и ICMPv6 используют сообщения переадресации маршрута.

На рисунке 2.10 показаны сообщения «Запрос маршрутизатора» и «Объявление маршрутизатора».

какое поле использует icmpv6 чтобы определить истек ли срок пакета

Рис. 2.10. Сообщения «Запрос маршрутизатора» и «Объявление маршрутизатора»

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

ICMPv6 включает четыре новых протокола в составе протокола обнаружения соседних узлов (ND или NDP):

Сообщения «Запрос маршрутизатора» и «Объявление маршрутизатора»

Протокол обнаружения соседских узлов ICMPv6 включает в себя два дополнительных типа сообщений: «Запрос соседнего узла» (NS) и «Объявление соседнего узла» (NA).

Такие сообщения используются для:

Разрешение адресов

Разрешение адресов используется в том случае, когда устройству в локальной сети известен индивидуальный IPv6-адрес назначения, но неизвестен MAC-адрес Ethernet. Чтобы определить MAC-адреса назначения, устройство отправляет запрос соседнего узла на адрес запрашиваемого узла. Сообщение будет содержать известный (целевой) IPv6-адрес. Устройство, которое располагает целевым адресом IPv6, отправляет в ответ объявление соседнего узла, которое содержит его MAC-адрес Ethernet.

Обнаружение адресов-дубликатов (DAD)

Когда устройству назначен глобальный индивидуальный адрес или локальный индивидуальный адрес канала, на этом адресе рекомендуется осуществить обнаружение адресов-дубликатов, чтобы убедиться в его уникальности. Для проверки уникальности адреса устройство отправит запрос соседнего узла со своим собственным IPv6-адресом в качестве целевого. Если другое устройство в сети обладает тем же адресом, оно отвечает объявлением соседнего узла. Такое объявление соседнего узла уведомит устройство отправителя о том, что данный адрес уже используется. Если соответствующее объявление соседнего узла не возвращается по истечении определённого периода времени, индивидуальный адрес признаётся уникальным и допустимым к использованию.

Примечание. Обнаружение адресов-дубликатов не обязательно, однако документ RFC 4861 рекомендует применять этот процесс на индивидуальных адресах.

На рисунке 2.11 показан ICMPv6-протокол обнаружения соседних узлов.

какое поле использует icmpv6 чтобы определить истек ли срок пакета

Рис. 2.11. ICMPv6-протокол обнаружения соседних узлов

Эхо-запрос — это инструмент тестирования, использующий эхо-запросы и эхо-ответы ICMP для проверки соединения между узлами. Эхо-запрос работает с узлами под управлением протоколов IPv4 и IPv6.

Для проверки соединения с другим узлом в сети с помощью команды ping на узловой адрес отправляется эхо-запрос. Если узел с указанным адресом получает эхо-запрос, он отправляет эхо-ответ. После получения каждого эхо-ответа служба эхо-тестирования предоставляет данные о времени, прошедшем между отправкой запроса и получением ответа. Это позволяет измерить производительность сети.

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

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

Отправка эхо-запроса на локальные loopback-адреса

Мы используем эхо-запросы в особых случаях проверки и тестирования соединения. Один из таких случаев — тестирование внутренней конфигурации IPv4 или IPv6 на локальном узле. Для выполнения такой проверки мы отправляем эхо-запрос на локальный loopback-адрес 127.0.0.1 для IPv4 (:: 1 для IPv6). Тестирование loopback-адреса IPv4 показано на рисунке 2.12.

Ответ от адреса 127.0.0.1 для IPv4 или :: 1 для IPv6 означает, что IP-сеть настроена на узле правильно. Этот ответ поступает с сетевого уровня. Однако ответ не является признаком того, что адреса, маски или шлюзы были настроены верно. Также он не указывает на состояние нижнего уровня сетевого стека. Ответ является результатом проверки IP-сети через сетевой уровень. Если мы получаем сообщение об ошибке, это означает, что протокол управления передачей не работает на данном узле.

какое поле использует icmpv6 чтобы определить истек ли срок пакета

Рис. 2.11. Проверка локального TCP/IP-стека

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

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

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

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

На рисунке 2.13 показана проверка IPv4-соединения к локальной сети.

какое поле использует icmpv6 чтобы определить истек ли срок пакета

Рис. 2.13. П роверка IPv4-соединения к локальной сети

Эхо-запрос используется для проверки связи между двумя узлами, но не предоставляет информацию об устройствах на пути между узлами. Трассировка маршрута (команда «tracert») создаёт список успешных переходов по заданному пути. Этот список может включать в себя важные данные о проверке и устранению неисправностей. Если узел назначения получает данные, то процесс трассировки маршрута указывает интерфейсы каждого маршрутизатора на пути между узлами. Если при каком-либо переходе возникли проблемы с передачей данных, адрес последнего ответившего маршрутизатора указывает, где возникла проблема или какие были обнаружены ограничения.

Время прохождения сигнала в прямом и обратном направлениях (RTT)

Процесс трассировки маршрута указывает время прохождения сигнала в прямом и обратном направлениях для каждого узла на пути передачи, а также позволяет определить неудавшиеся переходы. Время прохождения сигнала в прямом и обратном направлениях — это время, необходимое для достижения пакетом удалённого узла и для получения ответа от этого целевого узла. Звёздочка (*) используется для обозначения потерянного пакета или пакета без ответа.

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

Время жизни (TTL) IPv4 и предел переходов IPv6

Процесс трассировки маршрута использует поля «Время жизни (TTL)» в протоколе IPv4 и «Предел переходов» в IPv6 в заголовках 3-го уровня вместе с сообщением об истечении времени ICMP.

Первая последовательность сообщений, отправленных при трассировке маршрута, укажет в поле «Время жизни (TTL)» значение 1. Это приводит к истечению времени жизни (TTL) IPv4-пакета на первом маршрутизаторе. Затем этот маршрутизатор отвечает ICMPv4-сообщением. Теперь трассировка маршрута располагает адресом первого перехода.

Затем трассировка маршрута постепенно увеличивает значение в поле «Время жизни (TTL)» (2, 3, 4. ) для каждой последовательности сообщений. Таким образом, трассировка маршрута получает адрес каждого перехода по мере того, как время пакетов истекает по пути. Значение в поле «Время жизни (TTL)» продолжает увеличиваться, пока не будет достигнуто место назначения или максимальное значение.

По достижении конечного назначения узел отвечает либо сообщением о недостижимом порте ICMP, либо эхо-ответом ICMP вместо сообщения об истечении времени ICMP.

Источник

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

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