Files
knowledge-base/decisions/2026-04-16-unifi-migration-peredelki.md

107 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Миграция UniFi Controller — Переделки (2026-04-16)
## Что было
- UniFi Controller работал на **Orange Pi Мичуринец** (192.168.1.10) в Docker
- 5 устройств: USG 3P, Switch 16 PoE, U6 LR, U6+, U7-IW (U6 LR и U6+ офлайн)
- Сеть Переделки: 192.168.1.0/24 — конфликтовала с сетью НИИКН (тоже 192.168.1.0/24)
- OpenWrt Переделки (100.70.197.125) — маршрутизатор на объекте
- Задача: перенести контроллер на Proxmox НИИКН (LXC 116) и отключить Orange Pi
## Что сделано
### 1. Смена подсети Переделок
- OpenWrt Переделки: **192.168.1.0/24 → 192.168.2.0/24**
- Устройства получили новые IP по DHCP:
- Switch: 192.168.2.109
- AP U7-IW: 192.168.2.146
- Временный alias 192.168.1.1/24 добавлялся для переходного периода
### 2. Новый контроллер на LXC 116 (Proxmox НИИКН)
- **LXC 116** (`unifi-controller`), IP: 192.168.1.84, NetBird: 100.70.138.234
- Docker с **persistent volumes**:
- MongoDB: `/opt/unifi/mongo:/data/db`
- Config: `/opt/unifi/config:/config` (bind mount — данные переживают рестарт)
- MongoDB user: `unifi/unifi` (db: unifi, unifi_stat)
- Image: `ghcr.io/linuxserver/unifi-network-application:latest` (v10.1.89)
- Admin: SSO через UI.com (batlaew@yandex.ru)
### 3. Проброс трафика через NetBird
Контроллер на НИИКН, устройства на Переделках — связь через NetBird VPN.
**Socat proxy на OpenWrt Переделки** (persistent, `/etc/init.d/unifi-proxy`):
- TCP 8080 → 100.70.138.234:8080 (inform)
- TCP 8443 → 100.70.138.234:8443 (web UI)
- UDP 3478 → 100.70.138.234:3478 (STUN)
**NetBird Network Route** (через API):
- `192.168.2.0/24` → peer `openwrt-peredelki` (d7fug7rl0ubs73b5r36g)
- masquerade=true
- Позволяет контроллеру SSH к устройствам для provisioning
**Masquerade** на OpenWrt:
- `nft: iifname "wt0" oifname "br-lan" masquerade` — в init script
- Зона netbird: masq=1 через uci
### 4. Adoption устройств
- **USW-Lite-16-PoE** (d8:b3:70:84:0f:05) — adopted, connected (state=1)
- **U7 In-Wall** (1c:0b:8b:70:de:1e) — adopted, connected (state=1)
- Оба устройства прошли factory reset (set-default) для сброса auth keys от старого контроллера
- SSH credentials: `batlaew / 20iPUHpzpMXnp9Rx` (для managed devices)
- Factory default credentials: `ubnt / ubnt` (после reset)
### 5. WiFi
- SSID: `Ubnt`, пароль: `1234567a` (WPA2)
### 6. Podkop VPN
- Установлен и работает на OpenWrt Переделки
- sing-box через WireGuard (wg0)
- Списки: russia_inside, meta, telegram
- VPN IP: 193.39.160.237
- Автозапуск: включён (S99podkop)
### 7. Orange Pi
- Старый контроллер (Docker) остановлен
- Orange Pi **отключён** физически
- Бэкап MongoDB: `/tmp/unifi-full-backup.archive` (1.8MB) — был на Orange Pi
## Проблемы и решения
### "Factory Default — Database exists. Clean it"
Контроллер LinuxServer/UniFi сбрасывал базу при рестарте. **Причина**: anonymous Docker volume для `/config`. **Решение**: bind mount `/opt/unifi/config:/config`.
### Конфликт подсетей 192.168.1.0/24
НИИКН и Переделки оба использовали 192.168.1.0/24. **Решение**: смена подсети Переделок на 192.168.2.0/24.
### "Content too short" / "Bad packet magic"
DNAT через NetBird ломал inform-пакеты (MTU 1280 vs 1500). **Решение**: заменили DNAT на socat proxy (application-level forwarding).
### SSH adoption failed
Контроллер не мог SSH к устройствам для provisioning. **Решение**: NetBird Network Route с masquerade.
## Ключевые доступы
- **Контроллер**: https://100.70.138.234:8443 (SSO: batlaew@yandex.ru)
- **OpenWrt Переделки**: ssh root@100.70.197.125 (1qaz!QAZ)
- **Proxmox НИИКН**: ssh root@100.70.120.229 (1qaz!QAZ), pve-niikn.netbird.cloud
- **NetBird API**: Token `nbp_YTEmAVpS0hLhnTeJ09q3wYaC0AAXjN21NPvM`
- **SSH к устройствам**: batlaew / 20iPUHpzpMXnp9Rx
## Что осталось
- [ ] Подключить остальные точки доступа (U6 LR, U6+) когда будут запитаны
- [ ] Настроить WiFi сети окончательно (если нужны дополнительные SSID)
- [ ] Обновить прошивки устройств (контроллер предлагает update)
- [ ] Убрать alias 192.168.1.1/24 на OpenWrt (когда все устройства на 192.168.2.x)
## 2026-04-17: Auto-discovery для новых AP
Добавлена DNS-запись `unifi → 192.168.2.1` в dnsmasq Переделок (uci dhcp.@domain). UniFi AP после factory reset ищут контроллер по URL `http://unifi:8080/inform` — теперь эта запись резолвится в IP OpenWrt, а socat-proxy форвардит 8080/8443/3478 на контроллер через NetBird. **Любая новая AP подключится автоматически без ручного `set-inform`**.
```bash
# проверка настройки
ssh root@100.70.197.125
uci show dhcp | grep unifi
# dhcp.cfg05f37d.name='unifi'
# dhcp.cfg05f37d.ip='192.168.2.1'
```
Новая точка U7-IW `1c:0b:8b:70:e2:41` (IP 192.168.2.227) — Pending Adoption, ждёт клика Adopt в UI.