Введение

Протокол в наборе протоколов Интернета, используемый с IPv6. Протокол обнаружения соседей (NDP), или просто обнаружение соседей (ND), — это протокол набора протоколов Интернета, используемый с версией 6 протокола Интернета (IPv6). Он работает на сетевом уровне интернет-модели и отвечает за сбор различной информации, необходимой для сетевого взаимодействия, включая настройку локальных соединений, серверов доменных имен и шлюзов. Протокол определяет пять типов пакетов ICMPv6 для выполнения функций, аналогичных протоколу разрешения адресов (ARP), протоколу обнаружения маршрутизатора и протоколу перенаправления маршрутизатора для IPv4, а также протоколу управления интернет-сообщениями (ICMP). Он предоставляет множество улучшений по сравнению со своими аналогами для IPv4 (RFC 4861, раздел 3.1). Например, он включает обнаружение недоступности соседей (NUD), что повышает устойчивость доставки пакетов в случае отказа маршрутизаторов или каналов связи, а также мобильных узлов. Расширение протокола Inverse Neighbor Discovery (IND) (RFC 3122) позволяет узлам определять и объявлять адрес IPv6, соответствующий заданному адресу канала связи, аналогично Reverse ARP для IPv4. Протокол Secure Neighbor Discovery Protocol (SEND), расширение безопасности NDP, использует криптографически сгенерированные адреса (CGA) и инфраструктуру открытых ключей ресурсов (RPKI) для обеспечения альтернативного механизма защиты NDP криптографическим методом, независимым от IPsec. Neighbor Discovery Proxy (ND Proxy) (RFC 4389) предоставляет сервис, аналогичный IPv4 Proxy ARP, и позволяет объединять несколько сегментов сети в рамках одного префикса подсети, когда соединение невозможно установить на уровне канала связи.

Пример

Два компьютера в офисе (компьютер 1 и компьютер 2) соединены друг с другом в локальной сети с помощью кабелей Ethernet и сетевых коммутаторов, без промежуточных шлюзов или маршрутизаторов. Компьютер 1 должен отправить пакет компьютеру 2. Через DNS он определяет, что компьютер 2 имеет IP-адрес. Чтобы отправить сообщение, ему также требуется MAC-адрес компьютера 2. Сначала компьютер 1 использует кэшированную таблицу NDP для поиска каких-либо существующих записей MAC-адреса компьютера 2. Если MAC-адрес найден, он отправляет Ethernet-кадр, содержащий IP-пакет, по каналу связи с адресом назначения. Если в кэше не найдено информации для , компьютер 1 должен создать многоадресный адрес запрошенного узла, взяв младшие 24 бита адреса компьютера 2 и добавив их к префиксу , который равен , и создать многоадресный MAC-адрес запрошенного узла, взяв младшие 24 бита многоадресного адреса запрошенного узла компьютера 2 и добавив их к префиксу 33:33:FF:xx:xx:xx, который равен , и отправить сообщение запроса соседства, запрашивающее ответ для (IP-адрес назначения и MAC-адрес назначения), которое принимается компьютером 2, прослушивающим свой собственный многоадресный адрес запрошенного узла в локальной сети. Компьютер 2 отвечает сообщением объявления соседа, содержащим его MAC- и IP-адреса. В процессе обработки запроса компьютер 2 может добавить в свою таблицу NDP запись для компьютера 1 для последующего использования. Компьютер 1 получает и кэширует информацию об ответе в своей таблице NDP и теперь может отправить пакет.