Кратко

  • Neighbor Unreachability Detection хранит узкое и ограниченное временем утверждение: недавнее свидетельство показало, что прямой путь доставлял пакеты до IP-уровня соседа. Когда срок истекает, REACHABLE становится STALE, даже если отказ пакетов не наблюдался.
  • При отсутствии другого соседа RFC 7048 позволяет сохранить канальный адрес и продолжить более редкие проверки. Такая непрерывность не аутентифицирует устройство и не подтверждает владельца адреса, разрешение действия или итог приложения.

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

Протокол разделяет память и уверенность. Сохранённый адрес ещё может оказаться полезным. Положительное свидетельство о пути уже просрочено. Решение продолжить отправку при отсутствии альтернативы — это политика непрерывности под наблюдаемой неопределённостью, а не заявление, что всё исправно.

Erik Nordmark занимает документированное место в развитии этой конструкции. Он один из четырёх авторов RFC 4861, документа Standards Track о Neighbor Discovery для IPv6. В RFC 7048, исправляющем излишне нетерпеливое поведение NUD, его имя стоит первым из двух авторов. Он также соавтор RFC 3756 — Informational-анализа моделей доверия и угроз. Эти факты подтверждают участие в коллективной работе IETF, но не единоличное изобретение, соответствие любого продукта или право управлять сетью оператора.

Достижимость — утверждение в одном направлении

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

Это меньше, чем «сервис здоров». Определение не доказывает симметрию обратного пути, исправность каждого промежуточного элемента, личность владельца устройства, авторизацию запроса или завершение бизнес-операции. Оно относится к конкретному next hop, конкретному наблюдателю и конечному интервалу свежести.

Есть два основных семейства подтверждений. Узел может получить solicited Neighbor Advertisement в ответ на Neighbor Solicitation. Либо протокол верхнего уровня может дать надёжный признак прямого продвижения.

Например, новое TCP-подтверждение показывает, что недавно отправленные данные достигли удалённого peer. Если первым переходом маршрута служит сосед из кэша, ACK поддерживает вывод, что этот переход сработал. Получение новых, не дублированных данных также может означать, что прежние ACK дошли до peer.

Полезность вывода не расширяет его полномочия. TCP ACK не удостоверяет канальную личность, не доказывает тот же обратный путь, не принимает решение о доступе и не подтверждает итог приложения. Наблюдение верхнего уровня обновляет ровно один нижележащий вопрос — недавнее продвижение через первый переход.

STALE — возраст знания, а не диагноз устройству

INCOMPLETE означает, что разрешение адреса ещё не получило нужный канальный адрес. REACHABLE сообщает о свежем положительном подтверждении. По истечении Reachable Time запись становится STALE. Адрес не удаляется; ослабевает только утверждение о его текущей достижимости.

Неиспользуемая запись STALE не создаёт проверочный трафик лишь потому, что прошло время. Первый новый пакет переводит её в DELAY и отправляется на известный адрес. Короткая задержка даёт верхнему уровню шанс предоставить новое подтверждение без дополнительного Neighbor Discovery.

Если свидетельство не приходит, запись переходит в PROBE. Узел направляет unicast Neighbor Solicitation на сохранённый канальный адрес. Корректный solicited Neighbor Advertisement может вернуть REACHABLE. В базовом алгоритме исчерпание числа попыток удаляет запись и запускает новый выбор next hop или разрешение адреса.

Таким образом, автомат отделяет четыре факта: сохранённое местоположение, свежесть доказательства, текущую потребность использовать его и активную перепроверку. Поле last_seen стирает различия. Был ли замечен незапрошенный анонс, TCP-прогресс, ответ на probe или просто пакет в обратном направлении? Без механизма и направления метка времени не пригодна для решения.

Сообщение с той стороны не подтверждает путь туда

Router Advertisement и незапрошенный Neighbor Advertisement могут нести важные сведения. Они могут объявить маршрутизатор или изменение канального адреса. Однако непосредственно они показывают движение от соседа к получателю. NUD задаёт вопрос о движении от получателя к соседу.

Поэтому RFC 4861 запрещает считать подтверждением достижимости Router Advertisement и Neighbor Advertisement со сброшенным флагом Solicited. Услышать собеседника — не значит доказать, что он слышит вас. Узнать адрес — не значит доказать доставку по нему.

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

«Получены сведения о соседе» и «подтверждена прямая достижимость» — два события. Общий протокол не делает их доказательную силу одинаковой.

Быстрый отказ полезен только при наличии выхода

RFC 7048 описывает исходное поведение примерно как три передачи с интервалом в одну секунду. Для host с другим доступным default router это разумно: быстрый отказ от молчащего соседа открывает путь к рабочей альтернативе.

Без альтернативы те же часы могут ухудшить краткий сбой. Радиопомеха, спящий link или медленное восстановление длятся дольше бюджета. Удаление записи запускает новое, часто multicast-разрешение и отбрасывает единственный правдоподобный канальный адрес. Резервного пути не появилось; исчез лишь контекст.

Для этой ситуации RFC 7048 вводит концептуальное состояние UNREACHABLE. Запись и канальный адрес можно сохранить. Пакеты могут по-прежнему отправляться туда. Neighbor Solicitation продолжаются с экспоненциальным увеличением интервала и в итоге должны перейти от unicast к multicast. Переход нужен, чтобы обнаружить новый канальный адрес, если старый изменился; вечные unicast-проверки старого адреса этого не сделают.

Здесь UNREACHABLE не означает остановку передачи или окончательный отказ сервиса. Оно означает, что активная процедура не получила подтверждения. Если появляется реально пригодный альтернативный next hop, неподтверждённая запись не должна мешать его выбору. Запись, созданную Redirect, в некоторых случаях можно удалить, а не сохранять.

Терпение не всегда безопаснее. Без альтернативы оно сохраняет шанс непрерывности. При наличии альтернативы оно задерживает полезный failover. Поэтому решение нельзя оценить без списка доступных соседей на тот момент.

Верный переход может быть вызван ложным пакетом

RFC 3756 показывает границу доверия. Если атакующий способен внедрять Neighbor Discovery на link, поддельный solicited Neighbor Advertisement может создать ложное положительное подтверждение. Кэш укажет на вредоносный или несуществующий канальный адрес, а трафик останется направленным туда. Автомат корректно применил правило к враждебному входу.

Следовательно, REACHABLE не означает «аутентифицирован». Связка IPv6-адреса и канального адреса не называет сама по себе владельца, ответственную организацию, работающую прошивку или политику допуска. Контроль доступа к link, криптография, инвентарь и авторизация приложения создают отдельные доказательства.

Журнал инцидента связывает их, но не заменяет одно другим. Для NUD он хранит интерфейс, next hop, mapping, источник подтверждения, последовательность probe, альтернативы, security context и версию реализации. Для приложения отдельно сохраняет principal, решение о разрешении, версию ресурса и квитанцию результата. Ответ соседа не вправе заполнять поля приложения.

Точная атрибуция ограничивает и заслугу, и власть

В профиле IETF, проверенном 30 августа 2026 года, для Nordmark указаны 25 RFC и действующая роль рецензента Internet of Things Directorate. Это изменяемые сведения. Заголовки документов дают более устойчивую атрибуцию: Thomas Narten, Nordmark, William Simpson и Hesham Soliman в RFC 4861; Nordmark и Igor Gashinsky в RFC 7048; редактор Pekka Nikander, James Kempf и Nordmark в RFC 3756.

RFC 4861 и RFC 7048 относятся к Standards Track. RFC 3756 имеет статус Informational. Ни статус, ни порядок имён, ни консенсус IETF не доказывают поведение конкретной реализации. Работающий код должен показать, какие upper-layer hints принимаются, как меняются состояния, как оцениваются альтернативы, как растёт интервал и что остаётся в логах.

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

Устарел не сосед. Устарело свидетельство наблюдателя. С этой точности начинается решение, которое допускает непрерывность, но не выдумывает уверенность.

Источники