---
date: 2026-04-16
type: decision
tags: [decision]
---

# Миграция 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+) когда будут запитаны (2026-04-16)
- [ ] Настроить WiFi сети окончательно (если нужны дополнительные SSID) (2026-04-16)
- [ ] Обновить прошивки устройств (контроллер предлагает update) (2026-04-16)
- [ ] Убрать alias 192.168.1.1/24 на OpenWrt (когда все устройства на 192.168.2.x) (2026-04-16)

## 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.
