Протокол NDP (Neighbor Discovery Protocol) на устройствах Huawei отвечает за обнаружение соседей и автонастройку адресов в сетях IPv6. Он выполняет функции, аналогичные ARP в IPv4, но обладает расширенными возможностями: определение маршрутизаторов, проверка доступности соседей и разрешение адресов канального уровня. В системах EMUI и HarmonyOS этот механизм работает в фоновом режиме, обеспечивая бесперебойную работу современных сетей.

При анализе системных журналов или настроек роутера пользователи часто встречают упоминания NDP, Router Advertisement или Neighbor Solicitation. Понимание принципов работы протокола помогает диагностировать проблемы с подключением, снизить нагрузку на батарею и защитить сеть от атак типа MITM. Ниже подробно разберем реализацию NDP в экосистеме Huawei.

Что такое NDP и зачем он нужен в IPv6

NDP — базовый протокол набора IPv6, стандартизированный в RFC 4861. В отличие от IPv4, где для сопоставления IP и MAC используется широковещательный ARP, NDP опирается на ICMPv6 и multicast-адреса. Это снижает нагрузку на сеть, так как пакеты не рассылаются всем узлам, а только заинтересованным группам. На смартфонах Huawei стек IPv6 включен по умолчанию, поэтому NDP активен постоянно при наличии поддержки у провайдера.

Основные задачи протокола: автонастройка адресов без сохранения состояния (SLAAC), обнаружение маршрутизаторов по умолчанию, определение MTU пути и проверка уникальности адресов (DAD). Роутеры Huawei (серии AX, WS, HG) генерируют Router Advertisement (RA) пакеты, сообщая клиентам префиксы сети, время жизни адресов и DNS-серверы через опции RDNSS/DNSSL.

  • 🔍 Автонастройка (SLAAC): устройство само формирует IPv6-адрес по префиксу от роутера.
  • 🛣️ Обнаружение маршрутизаторов: телефон узнает шлюз без DHCPv6.
  • 🔗 Разрешение адресов: замена ARP на Neighbor Solicitation/Advertisement.
  • 📏 MTU и редиректы: оптимизация размера пакетов и маршрутов.
📊 Сталкивались ли вы с ошибками NDP в логах роутера или телефона Huawei?
Да, часто
Редко, только при настройке IPv6
Никогда не замечал
Не знаю, что это

Реализация NDP в EMUI, HarmonyOS и роутерах Huawei

В смартфонах на базе EMUI 10+ и HarmonyOS 2+ стек IPv6 интегрирован в ядро Linux. Процесс ndisc (или модуль ядра ipv6) обрабатывает входящие RA-пакеты и отправляет NS/NA сообщения. В логах logcat или через ##2846579## (Project Menu) → Background Settings → Log Settings можно увидеть записи NDISC или IPv6. Роутеры на платформе VRP (Versatile Routing Platform) используют команды ndp enable, ndp ra-interval для управления таймерами.

Важно отметить: отключение IPv6 в настройках точки доступа (Настройки → Сеть и интернет → Wi-Fi → Дополнительно → IPv6) деактивирует NDP на интерфейсе. Однако системные сервисы (Push, OTA-обновления, HiLink) могут принудительно поднимать IPv6 на мобильном интерфейсе, игнорируя пользовательский выбор. Это частая причина «фантомных» записей в логах фаервола роутера.

⚠️ Внимание: Полное блокирование ICMPv6 типа 133-137 на фаерволе роутера ломает NDP. Устройства потеряют шлюз и IPv6-соединение, сохраняя только IPv4.

Типичные записи в логах и их расшифровка

Администраторы роутеров Huawei (AX3 Pro, AX6, WS7000) в веб-интерфейсе (System Log) или по SSH часто видят строки, связанные с NDP. Понимание кодов ICMPv6 ускоряет поиск неисправностей. Ниже приведена таблица основных типов сообщений, которые генерируют телефоны и роутеры.

Тип ICMPv6 Имя сообщения Направление Назначение
133 Router Solicitation (RS) Клиент → Все маршрутизаторы (ff02::2) Запрос префиксов сети при подключении
134 Router Advertisement (RA) Роутер → Все узлы (ff02::1) Рассылка префиксов, MTU, DNS, флагов M/O
135 Neighbor Solicitation (NS) Узел → Solicited-node multicast Поиск MAC по IPv6 (аналог ARP Request)
136 Neighbor Advertisement (NA) Узел → Unicast / Multicast Ответ с MAC-адресом (аналог ARP Reply)
137 Redirect Роутер → Клиент Указание лучшего следующего прыжка

Частая запись NDP: neighbor cache overflow на роутере означает переполнение таблицы соседей. Лечится увеличением лимита ndp entry-limit или сокращением ndp stale-time. На телефоне спам DAD failed говорит о конфликте адресов — часто вина в рандомизации MAC (Private Wi-Fi Address) или ошибке DHCPv6-сервера.

Детализация флагов M и O в Router Advertisement

Флаг M (Managed) = 1: клиент должен использовать DHCPv6 для получения адреса (stateful). Флаг O (Other) = 1: адрес получает через SLAAC, но остальные параметры (DNS, NTP) — через DHCPv6 (stateless). Huawei по умолчанию ставит M=0, O=1. Если ваш провайдер выдает только префикс — это норма. Если нужен строгий учет — включите DHCPv6 на роутере и поставьте M=1.

Проблемы безопасности: NDP Spoofing и RA Guard

Архитектура NDP уязвима для спуфинга: злоумышленник в одной L2-сети может отправлять фальшивые RA с высоким приоритетом, перехватывая трафик (Man-in-the-Middle), или флудить NS-запросами, переполняя Neighbor Cache жертвы (DoS). В корпоративных сегментах на свитчах и роутерах Huawei обязательно нужно включить NDP Snooping и RA Guard.

На уровне смартфона защита реализована через SELinux политики и изоляцию сетевых неймспейсов. Приложения без права CAP_NET_ADMIN не могут инъецировать RA. Однако в режиме модема (Hotspot) телефон выступает роутером и сам рассылает RA. Если подключенный к хотспоту девайс поддельный — он может атаковать других клиентов. Используйте WPA3-SAE для изоляции клиентов (AP Isolation).

⚠️ Внимание: Функция "Private Wi-Fi Address" (рандомизация MAC) в EMUI/HarmonyOS меняет MAC при каждом подключении. Это ломает статические NDP-записи на роутере и может вызывать частые DAD-конфликты в сетях с коротким временем жизни кэша.
💡

Если IPv6 не поднимается на телефоне, но работает на ноутбуке в той же Wi-Fi — проверьте на роутере Hop Limit в RA. Значение 0 или 1 блокирует передачу пакетов дальше интерфейса. Ставьте 64 (дефолт).

Как отключить или ограничить NDP на устройстве Huawei

Полностью убрать NDP из системы нельзя без пересборки ядра, но можно отключить IPv6 на конкретных интерфейсах. На смартфоне: Настройки → Мобильная сеть → Настройки APN → Протокол APN → IPv4 (вместо IPv4/IPv6). Для Wi-Fi: зажмите сеть → Изменить сеть → Дополнительно → IPv6 → Отключено. На роутере Huawei (веб-интерфейс 192.168.3.1): Дополнительные настройки → IPv6 → Отключить.

Для продвинутых пользователей доступен ADB/Shell. Команды требуют root (Magisk/KernelSU):

# Отключить IPv6 на wlan0 до перезагрузки

sysctl -w net.ipv6.conf.wlan0.disable_ipv6=1

Запретить прием RA (игнорировать роутеры)

sysctl -w net.ipv6.conf.wlan0.accept_ra=0

Отключить автонастройку адресов

sysctl -w net.ipv6.conf.wlan0.autoconf=0

☑️ Проверка перед отключением IPv6/NDP

Выполнено: 0 / 5

Диагностика: почему телефон не получает IPv6-адрес

Если в логах телефона видно RS sent, no RA received, проблема на стороне роутера или провайдера. Алгоритм проверки: 1) Убедиться, что WAN-интерфейс роутера получил префикс (PD — Prefix Delegation) от провайдера. 2) Проверить, не блокирует ли фаервол входящие ICMPv6 на WAN. 3) Посмотреть RA Lifetime — если 0, клиенты не будут использовать этот префикс. 4) Отключить "IPv6 Passthrough" / "Bridge Mode", если роутер за другим роутером.

На роутерах Huawei CLI (Telnet/SSH) диагностика:

display ipv6 interface brief

display ndp all

display ipv6 ndp ra-info interface WAN_Eth0

debugging ipv6 ndp packet

На смартфоне через Termux (без root) или ADB (с root) можно использовать ip -6 neigh show, ip -6 route show, ndisc6 -1 wlan0. Отсутствие записей в Neighbor Cache при наличии RA указывает на несовпадение префиксов или включенный accept_ra=0.

💡

NDP — не "лишний" трафик, а фундамент IPv6. Отключение его ломает современные сети. Настраивайте RA Guard и Snooping на инфраструктуре, а не блокируйте протокол на концах.

Часто задаваемые вопросы (FAQ)

Почему в логах роутера Huawei много строк "NDP: received NS from ..."?

Это нормальный процесс обновления Neighbor Cache. Устройства периодически проверяют доступность соседей (NUD — Neighbor Unreachability Detection). Если лог переполнен — увеличьте ndp stale-time или отключите логирование NDP пакетов: undo info-center source default channel 0 log level debugging.

Влияет ли NDP на разряд батареи телефона?

Прямого влияния нет. NDP-пакеты редкие (RA каждые 200-600 сек, NS/NA при новом соединении). Если батарея садится быстро — ищите причину в wakelock'ах приложений или плохом сигнале (частые переподключения → новые RS/RA циклы).

Можно ли зафиксировать IPv6-адрес на телефоне Huawei, отключив рандомизацию?

Да. В настройках Wi-Fi сети: MAC-адрес устройства → Использовать MAC устройства (не "Рандомизированный"). Для IPv6 SLAAC адрес формируется по EUI-64 или Stable Privacy (RFC 7217). Полностью статический адрес задать можно только через DHCPv6 Reservation на роутере по DUID.

Что такое "NDP Proxy" на роутерах Huawei и нужен ли он дома?

NDP Proxy позволяет роутеру отвечать NS за устройства в другой подсети (например, за VPN-клиентами или в VLAN). В домашней сети с одной подсетью /64 — не нужен. Включается командой ndp proxy enable на интерфейсе, смотрящем в сторону клиентов.

Почему после обновления EMUI/HarmonyOS пропал IPv6?

Обновление может сбросить APN на "IPv4" или отключить IPv6 в профиле Wi-Fi. Проверьте настройки APN оператора и переключите Wi-Fi на "IPv4/IPv6". Иногда помогает сброс сетевых настроек: Настройки → Система → Сброс → Сброс настроек сети.