Сидни Фейт - TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
■ Сообщения 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Рис. 23.1. Формат сообщения ICMPv6
23.2.1 Destination Unreachable
Причина отправки сообщения Destination Unreachable (точка назначения недоступна) определяется кодами:
0 Нет маршрута к точке назначения
1 Административно запрещено взаимодействие с точкой назначения
2 Следующее назначение в заголовке Routing не является соседом, но установлен бит strict.
3 Адрес недоступен
4 Порт недоступен
Формат сообщения Destination Unreachable показан на рис. 23.2.
Рис. 23.2. Формат сообщения Destination Unreachable
23.2.2 Packet Too Big
Маршрутизатор посылает сообщение Packet Too Big (пакет слишком велик), когда пакет больше MTU связи следующего попадания. Это значение будет включено в отправляемое сообщение. В версии 4 этот же смысл имеет сообщение Destination Unreachable. Формат сообщения Packet Too Big показан на рис. 23.3.
Рис. 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
Рис. 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 (перенаправить) 13723.3.1 Автоконфигурация через маршрутизаторы
Маршрутизаторы предоставляют хостам:
■ Адресную информацию маршрутизатора
■ Список всех префиксов, используемых связью
■ Префиксы, которые должны применять хосты для создания собственных адресов
■ Максимальный предел попаданий, который должен использоваться для путей, проходящих через этот маршрутизатор
■ Указание, должны ли хосты использовать сервер загрузки для получения дополнительных конфигурационных данных
■ MTU для связи, имеющей различные MTU
■ Значения для различных таймеров
Все эти операции выполняются через сообщения ICMPv6 Router Advertisement (объявления маршрутизатора), имеющие тип 134. Хосты слушают сообщения Router Advertisement по всем адресам многоадресных рассылок на всех узлах локальной связи.
Когда хост загружается, он может не дождаться Router Advertisement и отправить сообщение Router Solicitation (ходатайство маршрутизатору) с типом 133, чтобы вызвать объявление от маршрутизатора. Маршрутизатор отвечает сообщением Advertisement по адресу локальной связи хоста.