Протокол обнаружения соседей

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Протокол обнаружения соседей (англ. Neighbor Discovery Protocol, NDP ) — протокол из набора набора протоколов TCP/IP, используемый совместно с IPv6. Он работает на сетевом уровне Модели Интернета (RFC 1122) и ответственен за автонастройку адреса конечных и промежуточных точек сети, обнаружения других узлов на линии, определения адреса других узлов канального уровня, обнаружение конфликта адресов, поиск доступных маршрутизаторов и DNS-серверов, определения префикса адреса и поддержки доступности информации о путях к другим активным соседним узлам (RFC 4861).[1]

Этот протокол устанавливает пять различных типов пакета ICMPv6 для выполнения функций IPv6, сходных с ARP, ICMP, IRDP и Router Redirect протоколов для IPv4. Тем не менее, он предоставляет множество улучшений относительно IPv4 аналогов (RFC 4861, секция 3.1). Например, он включает NUD, который повышает надежность доставки пакетов в присутствии проблемных маршрутизаторов или подключений, или мобильных устройств.

Технические детали[править | править вики-текст]

Процесс обнаружения маршрутизатора

NDP устанавливает следующие пять типов пакета ICMPv6[2]:

  1. Запрос на доступность маршрутизаторов
  2. Ответ маршрутизатора
  3. Запрос доступных соседей
  4. Ответ соседа
  5. Перенаправление

Эти сообщения используются для обеспечения следующей функциональности:

  • Обнаружение маршрутизатора: узел может разместить маршрутизатор, находящийся на подключенной линии.
  • Обнаружение подсети: узлы могут обнаруживать работающие подсети для подключенных линий.
  • Обнаружение параметров: узлы могут запрашивать параметры линии (например, размер MTU).
  • Автоматическая настройка адреса: конфигурирование адресов сетевых интерфейсов.
  • Разрешение адреса: работа между IP-адресом и адресами уровня канала связи.
  • Обнаружение следующего перехода: узлы могут находить следующий на пути пакета маршрутизатор.
  • Обнаружение недоступности соседа (NUD): определение того, что сосед более недоступен на линии.
  • Обнаружение конфликта адресов (DAD): узлы сами могут определять, занят ли адрес.
  • Перенаправление: маршрутизатор может информировать узел о других наилучших маршрутизаторах для начала пути пакета.
  • Рекурсивный DNS-сервер (RDNSS) и список поиска DNS (DNSSL) назначается через параметры отклика маршрутизатора (RA). [3] Это новая функция, и поддерживается не всем программным обеспечением.

Уязвимости[править | править вики-текст]

Некоторые маршрутизаторы уязвимы при работе с протоколом NDP[4]. Зачастую, маршрутизаторы имеют меньше доступных адресов для NDP, чем доступно в подсети IPv6 (обычно 2^64 или более, для поддержки SLAAC). Решение доступно (неактуально)[5].

Примечания[править | править вики-текст]

  1. RFC 4861, Протокол обнаружения соседей для протокола IP версии 6 (IPv6), T. Narten et al. (сентябрь 2007)
  2. RFC 2461, Протокол обнаружения соседей для протокола IP версии 6 (IPv6), T. Narten, декабрь 1998
  3. RFC 6106, IPv6 Параметры ответа маршрутизатора для настройки DNS , J. Jeong (Ed.), S. Park, L. Beloeil, S. Madanapalli (ноябрь 2010)
  4. http://inconcepts.biz/~jsw/IPv6_NDP_Exhaustion.pdf
  5. Operational Neighbor Discovery Problems and Enhancements. draft-gashinsky-v6nd-enhance-00 (англ.)

Ссылки[править | править вики-текст]