Не знаю, пробовал ли кто-то это в долгосрочной перспективе, но кажется, это может быть началом обходного пути для управления UCI через самохостинг контроллеров. Не уверен, поддерживают ли cloud-keys несколько IP-адресов, но вот с Docker-контейнером с Unifi контроллером всё работает (уже несколько часов).
Однако такой подход ломает удалённый доступ к контроллеру — он стал очень нестабильным, хотя, думаю, это скорее проблема с Docker. Контроллер пытается выходить в интернет с обоих IP-адресов, так что, если кто знает, как с этим справиться, делитесь.
Как я сделал так, чтобы UCI приняли: подключил WAN-порт к коммутатору и изолировал его трафик в отдельный VLAN(99). Потом WAN-порт моего роутера подключил к тому же VLAN(99) и добавил это в виртуальную машину, где крутится Docker контейнер. Виртуалка использует статический IP из диапазона 192.168.100.0/24, а второй интерфейс — в моей домашней сети.
Так Unifi-контроллер как бы стоит ногами в двух мирах — 192.168.100.0/24 и домашней сети. Но обязательно отключите DHCP на WAN-интерфейсе этой VM, чтобы он не получил публичный IP от провайдера.
Выходит примерно так:
После этого увидел сообщение с запросом принять UCI по адресу 192.168.100.1.
А теперь про проблемы с публичным доступом — похоже, софт Unifi пытается использовать оба адреса, из-за чего при заходе через публичный IP приходится несколько раз обновлять страницу или ждать повторных попыток загрузки. Придётся потом больше копаться с этим.
Логи Docker показывают примерно следующее:
:0 TCP candidates not supported yet
:0 TCP candidates not supported yet
:0 Permanent error code on channel bind request: 403 - Forbidden IP
:0 Permanent error code on channel bind request: 403 - Forbidden IP
:0 STUN id: 2; fd: 202 192.168.100.2:43558 -> 54.244.51.7:3478 (ens19) DTLS id: 0 ()(NATDISCOVERY) timed out
:0 STUN id: 6; fd: 205 10.1.2.103:55003 -> 10.1.0.67:56129 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 7; fd: 205 10.1.2.103:55003 -> 192.0.0.2:64438 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 8; fd: 205 10.1.2.103:55003 -> 72.207.150.111:64807 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 9; fd: 205 10.1.2.103:55003 -> 72.207.150.111:43506 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 10; fd: 205 10.1.2.103:55003 -> 172.56.208.12:41966 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 11; fd: 205 10.1.2.103:55003 -> 54.244.51.11:27240 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 12; fd: 205 10.1.2.103:55003 -> 54.244.51.11:54402 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 13; fd: 205 10.1.2.103:55003 -> 54.244.51.11:56166 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 14; fd: 205 10.1.2.103:55003 -> 54.244.51.63:39449 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 15; fd: 205 10.1.2.103:55003 -> 54.244.51.63:42493 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 16; fd: 205 10.1.2.103:55003 -> 54.244.51.11:59758 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 17; fd: 205 10.1.2.103:55003 -> 54.244.51.11:37561 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 18; fd: 205 10.1.2.103:55003 -> 54.244.51.11:43283 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 19; fd: 202 192.168.100.2:43558 -> 10.1.0.67:56129 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 20; fd: 202 192.168.100.2:43558 -> 192.0.0.2:64438 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 21; fd: 202 192.168.100.2:43558 -> 72.207.150.111:64807 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 22; fd: 202 192.168.100.2:43558 -> 72.207.150.111:43506 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 23; fd: 202 192.168.100.2:43558 -> 172.56.208.12:41966 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 24; fd: 202 192.168.100.2:43558 -> 54.244.51.11:27240 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 25; fd: 202 192.168.100.2:43558 -> 54.244.51.11:54402 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 26; fd: 202 192.168.100.2:43558 -> 54.244.51.11:56166 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 27; fd: 202 192.168.100.2:43558 -> 54.244.51.63:39449 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 28; fd: 202 192.168.100.2:43558 -> 54.244.51.63:42493 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 29; fd: 202 192.168.100.2:43558 -> 54.244.51.11:59758 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 30; fd: 202 192.168.100.2:43558 -> 54.244.51.11:37561 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 31; fd: 202 192.168.100.2:43558 -> 54.244.51.11:43283 (ens19) DTLS id: 0 () (PEER) timed out
Однако такой подход ломает удалённый доступ к контроллеру — он стал очень нестабильным, хотя, думаю, это скорее проблема с Docker. Контроллер пытается выходить в интернет с обоих IP-адресов, так что, если кто знает, как с этим справиться, делитесь.
Как я сделал так, чтобы UCI приняли: подключил WAN-порт к коммутатору и изолировал его трафик в отдельный VLAN(99). Потом WAN-порт моего роутера подключил к тому же VLAN(99) и добавил это в виртуальную машину, где крутится Docker контейнер. Виртуалка использует статический IP из диапазона 192.168.100.0/24, а второй интерфейс — в моей домашней сети.
Так Unifi-контроллер как бы стоит ногами в двух мирах — 192.168.100.0/24 и домашней сети. Но обязательно отключите DHCP на WAN-интерфейсе этой VM, чтобы он не получил публичный IP от провайдера.
Выходит примерно так:
После этого увидел сообщение с запросом принять UCI по адресу 192.168.100.1.
А теперь про проблемы с публичным доступом — похоже, софт Unifi пытается использовать оба адреса, из-за чего при заходе через публичный IP приходится несколько раз обновлять страницу или ждать повторных попыток загрузки. Придётся потом больше копаться с этим.
Логи Docker показывают примерно следующее:
:0 TCP candidates not supported yet
:0 TCP candidates not supported yet
:0 Permanent error code on channel bind request: 403 - Forbidden IP
:0 Permanent error code on channel bind request: 403 - Forbidden IP
:0 STUN id: 2; fd: 202 192.168.100.2:43558 -> 54.244.51.7:3478 (ens19) DTLS id: 0 ()(NATDISCOVERY) timed out
:0 STUN id: 6; fd: 205 10.1.2.103:55003 -> 10.1.0.67:56129 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 7; fd: 205 10.1.2.103:55003 -> 192.0.0.2:64438 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 8; fd: 205 10.1.2.103:55003 -> 72.207.150.111:64807 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 9; fd: 205 10.1.2.103:55003 -> 72.207.150.111:43506 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 10; fd: 205 10.1.2.103:55003 -> 172.56.208.12:41966 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 11; fd: 205 10.1.2.103:55003 -> 54.244.51.11:27240 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 12; fd: 205 10.1.2.103:55003 -> 54.244.51.11:54402 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 13; fd: 205 10.1.2.103:55003 -> 54.244.51.11:56166 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 14; fd: 205 10.1.2.103:55003 -> 54.244.51.63:39449 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 15; fd: 205 10.1.2.103:55003 -> 54.244.51.63:42493 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 16; fd: 205 10.1.2.103:55003 -> 54.244.51.11:59758 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 17; fd: 205 10.1.2.103:55003 -> 54.244.51.11:37561 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 18; fd: 205 10.1.2.103:55003 -> 54.244.51.11:43283 (ens18) DTLS id: 0 () (PEER) timed out
:0 STUN id: 19; fd: 202 192.168.100.2:43558 -> 10.1.0.67:56129 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 20; fd: 202 192.168.100.2:43558 -> 192.0.0.2:64438 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 21; fd: 202 192.168.100.2:43558 -> 72.207.150.111:64807 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 22; fd: 202 192.168.100.2:43558 -> 72.207.150.111:43506 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 23; fd: 202 192.168.100.2:43558 -> 172.56.208.12:41966 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 24; fd: 202 192.168.100.2:43558 -> 54.244.51.11:27240 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 25; fd: 202 192.168.100.2:43558 -> 54.244.51.11:54402 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 26; fd: 202 192.168.100.2:43558 -> 54.244.51.11:56166 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 27; fd: 202 192.168.100.2:43558 -> 54.244.51.63:39449 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 28; fd: 202 192.168.100.2:43558 -> 54.244.51.63:42493 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 29; fd: 202 192.168.100.2:43558 -> 54.244.51.11:59758 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 30; fd: 202 192.168.100.2:43558 -> 54.244.51.11:37561 (ens19) DTLS id: 0 () (PEER) timed out
:0 STUN id: 31; fd: 202 192.168.100.2:43558 -> 54.244.51.11:43283 (ens19) DTLS id: 0 () (PEER) timed out
