From 35d58a687a73773d7ad9f0cc58d9e6634ac37895 Mon Sep 17 00:00:00 2001 From: dttb Date: Mon, 15 Jun 2026 16:18:18 +0300 Subject: [PATCH] =?UTF-8?q?unifi:=20adoption=20=D1=81=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=87=D0=B0+U7-LR;=20=D1=84=D0=B8=D0=BA=D1=81=20system=5Fip=20?= =?UTF-8?q?override=20+=20DNS=20unifi,=20host-mode=20=D0=BE=D1=82=D0=BA?= =?UTF-8?q?=D0=B0=D1=82=D0=B0=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - U7-LR не виделся = битый порт 5 свитча (PoE есть, линк down) -> порт 8 - stuck 'Принятие' = Docker bridge отдавал внутренний IP -> system_ip=10.0.0.196 - DNS unifi->10.0.0.196 на OpenWrt для автообнаружения - host networking сломал mongo-URI кэш + автодетект IP, откатан на bridge - USG физически не в сети (0 следов в БД) Co-Authored-By: Claude Fable 5 --- .../2026-06-15-unifi-controller-homelab.md | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/decisions/2026-06-15-unifi-controller-homelab.md b/decisions/2026-06-15-unifi-controller-homelab.md index 22d6697..306ff8d 100644 --- a/decisions/2026-06-15-unifi-controller-homelab.md +++ b/decisions/2026-06-15-unifi-controller-homelab.md @@ -55,7 +55,30 @@ pct exec 140 -- bash -c 'cd /opt/unifi && docker compose restart' pct exec 140 -- bash -c 'cd /opt/unifi && docker compose pull && docker compose up -d' # апдейт ``` +## Adoption устройств (2026-06-15, позже в тот же день) + +Принимали **USW-Lite-16-PoE** (10.0.0.111) и **U7-LR**. Грабли: + +### U7-LR не появлялся — физика порта свитча +Точка была в **порту 5** свитча: PoE подавался (Class 4, 4.41 Вт), но **линк down**, 0 пакетов, DHCP не получала; после передёргивания PoE детект вообще пропал (Class Unknown). → **битый порт/патч-корд**. Переткнули в **порт 8** — ожила: IP 10.0.0.243, линк 1000F, firmware 8.0.12. Вывод: «питание есть, а линка нет» = сначала кабель/порт, не контроллер. + +### Stuck «Принятие» + ничего не автообнаруживается — Docker inform-host +Контроллер в Docker **bridge** отдавал устройствам inform-host = свой внутренний IP контейнера (`172.18.0.x`), до которого устройства не достучаться → adoption висит. Плюс заводская точка ищет `http://unifi:8080/inform`, а DNS-записи `unifi` не было. + +**Фикс (рабочий, оставлен):** +1. **DNS на OpenWrt 10.0.0.1**: `uci add dhcp domain` → `name=unifi ip=10.0.0.196` → commit + `dnsmasq restart`. Теперь заводские устройства сами находят контроллер (как на Передельках). +2. **`system_ip=10.0.0.196`** в `/opt/unifi/config/data/system.properties` (был закомментирован `# system_ip=a.b.c.d`) + `docker restart unifi-network-application`. В логе стало `Current System IP: 10.0.0.196` (было `172.18.0.3`). Контроллер теперь отдаёт верный inform-host. +3. `set-inform http://10.0.0.196:8080/inform` на устройствах (ssh ubnt/ubnt) для немедленного появления. + +Результат: оба `adopted:true` (проверено `docker exec unifi-db mongo unifi --eval 'db.device.find(...)'`). + +### ⚠️ host networking НЕ применять (пробовал — откатил) +Переводил оба контейнера в `network_mode: host` — **сломалось**: +- linuxserver-образ кэширует mongo-URI в `system.properties` при первом старте и НЕ перечитывает env → в host остался `unifi-db:27017` (не резолвится) → `MongoTimeoutException`, краш-луп. +- контроллер в host автодетектил `Current System IP: 172.18.0.1` (docker-бридж), не 10.0.0.196. +Правильное решение — **оставить bridge + `system_ip` override**, а не host. Бэкап bridge-compose: `/opt/unifi/docker-compose.yml.bak-bridge-*`. + ## Что осталось / на заметку -- Контроллер пустой — устройств UniFi в домашней сети (10.0.0.0/24) пока нет (роутер — OpenWrt). Готов к adopt новых AP/switch. -- Для adopt устройств из других подсетей — set-inform на UI или DNS `unifi → ` (как на Передельках). +- **USG не adopt'ится — его физически нет в сети** (нет DHCP-аренды, нет на живых портах свитча, в БД контроллера 0 следов). Сначала запитать/воткнуть в живой порт; как появится — с DNS `unifi` + `system_ip` примется сам. - `.196` — статика; убедиться, что вне DHCP-пула OpenWrt. +- При смене IP контроллера — обновить и DNS `unifi`, и `system_ip`.