UniFi Controller: Мистическое
Игрался тут давеча с UniFi Controller
’ом на Synology
. Есть новомодная версия 4.1.1
, но в эту версию вшиты старые прошивки для точек доступа, версия 3.2.1.2601
. А захотелось посмотреть как будет себя вести версия 3.2.5.2791
. Взял архив контроллера версии 3.2.5
, выдернул оттуда прошивки, закинул их в контроллер версии 4.1.1
.
После обновления и рестарта контроллера, в веб-интерфейсе, напротив первой точки доступа появилась кнопка «Upgrade
», а вот у второй вдруг статус стал «Disconnected
». Ладно, думаю, подожду чуть.
Подождал – точка доступа к контроллеру не подключается. Сразу перегружать её не стал, решил разобраться в чём проблема.
Подключился к ней по ssh, гляжу логи:
BZ.v3.2.1# cat /var/log/messages … Sep 16 11:39:28 ap02acmelabsspbru user.err syslog: ace_reporter.reporter_fail(): Timeout (http://192.168.255.2:8080/inform) Sep 16 11:39:28 ap02acmelabsspbru user.err syslog: ace_reporter.reporter_fail(): inform failed #1 (last inform: 25 seconds ago), rc=4 Sep 16 11:39:43 ap02acmelabsspbru user.err syslog: ace_reporter.reporter_connected(): connect(http://192.168.255.2:8080/inform) failed with errors: 0 146 - Connection refused Sep 16 11:39:43 ap02acmelabsspbru user.err syslog: ace_reporter.reporter_fail(): Unreachable (http://192.168.255.2:8080/inform) Sep 16 11:39:43 ap02acmelabsspbru user.err syslog: ace_reporter.reporter_fail(): inform failed #2 (last inform: 40 seconds ago), rc=3 Sep 16 11:39:58 ap02acmelabsspbru user.err syslog: ace_reporter.reporter_connected(): connect(http://192.168.255.2:8080/inform) failed with errors: 0 146 - Connection refused Sep 16 11:39:58 ap02acmelabsspbru user.err syslog: ace_reporter.reporter_fail(): Unreachable (http://192.168.255.2:8080/inform) Sep 16 11:39:58 ap02acmelabsspbru user.err syslog: ace_reporter.reporter_fail(): inform failed #3 (last inform: 55 seconds ago), rc=3 Sep 16 11:39:58 ap02acmelabsspbru user.err syslog: ace_reporter.reporter_fail(): [STATE] entering SELFRUN!!!!
Вроде ничего криминального, «ушла в себя», вернётся контроллер – приконнектится. Потом гляжу – появилась строка:
Sep 16 11:40:50 ap02acmelabsspbru user.info syslog: ace_reporter.reporter_set_managed(): [STATE] enter MANAGED
Т.е. всё ок, подключилась вроде к контроллеру. Но в веб-интерфейсе контроллера статус всё тот же – Disconnected. Ладно, думаю, сейчас заставим её ещё раз переподключиться. На стороне контроллера запускаем:
$ tail -f /volume1/@appstore/UniFi/logs/server.log … [2014-09-16 22:41:37,115]INFO inform - from [24:a4:3c:10:1a:6f](ap01.acmelabs.spb.ru, U7E, 3.2.1.2601): state=CONNECTED, ext/stun_ip=192.168.255.111, dev_ip=192.168.255.111, up=1303 [2014-09-16 22:41:47,198] INFO inform - from [24:a4:3c:10:1a:6f](ap01.acmelabs.spb.ru, U7E, 3.2.1.2601): state=CONNECTED, ext/stun_ip=192.168.255.111, dev_ip=192.168.255.111, up=1313 [2014-09-16 22:41:57,280] INFO inform - from [24:a4:3c:10:1a:6f](ap01.acmelabs.spb.ru, U7E, 3.2.1.2601): state=CONNECTED, ext/stun_ip=192.168.255.111, dev_ip=192.168.255.111, up=1323 [2014-09-16 22:42:07,364] INFO inform - from [24:a4:3c:10:1a:6f](ap01.acmelabs.spb.ru, U7E, 3.2.1.2601): state=CONNECTED, ext/stun_ip=192.168.255.111, dev_ip=192.168.255.111, up=1334 [2014-09-16 22:42:17,454] INFO inform - from [24:a4:3c:10:1a:6f](ap01.acmelabs.spb.ru, U7E, 3.2.1.2601): state=CONNECTED, ext/stun_ip=192.168.255.111, dev_ip=192.168.255.111, up=1344 [2014-09-16 22:42:28,537] INFO inform - from [24:a4:3c:10:1a:6f](ap01.acmelabs.spb.ru, U7E, 3.2.1.2601): state=CONNECTED, ext/stun_ip=192.168.255.111, dev_ip=192.168.255.111, up=1355 [2014-09-16 22:42:38,622] INFO inform - from [24:a4:3c:10:1a:6f](ap01.acmelabs.spb.ru, U7E, 3.2.1.2601): state=CONNECTED, ext/stun_ip=192.168.255.111, dev_ip=192.168.255.111, up=1365 [2014-09-16 22:42:48,689] INFO inform - from [24:a4:3c:10:1a:6f](ap01.acmelabs.spb.ru, U7E, 3.2.1.2601): state=CONNECTED, ext/stun_ip=192.168.255.111, dev_ip=192.168.255.111, up=1375 [2014-09-16 22:42:58,768] INFO inform - from [24:a4:3c:10:1a:6f](ap01.acmelabs.spb.ru, U7E, 3.2.1.2601): state=CONNECTED, ext/stun_ip=192.168.255.111, dev_ip=192.168.255.111, up=1385
Первую точку доступа видно, а вторую нет. Выполняем на точке доступа следующие команды:
BZ.v3.2.1# ps xa PID USER VSZ STAT COMMAND 1 admin 1356 S init 2 admin 0 SW< [kthreadd] 3 admin 0 SW< [ksoftirqd/0] 4 admin 0 SW< [events/0] 5 admin 0 SW< [khelper] 15 admin 0 SW< [kblockd/0] 46 admin 0 SW [pdflush] 47 admin 0 SW [pdflush] 48 admin 0 SW< [kswapd0] 49 admin 0 SW< [aio/0] 70 admin 0 SW< [mtdblockd] 245 admin 564 S /sbin/hotplug2 --persistent --set-rules-file /usr/etc 488 admin 1356 S /usr/bin/crond -c /etc/crontabs -l 5 727 admin 928 S eapd 730 admin 1520 S nas 735 admin 1356 S init 736 admin 1348 S /usr/bin/klogd -c 8 -n 737 admin 3568 S /bin/reset-handler 738 admin 1352 S /bin/syslogd -n -O /var/log/messages -l 7 -s 200 -b 0 739 admin 1368 S /sbin/udhcpc -f -i br0 -V ubnt -A 10 -s /etc/udhcpc/u 741 admin 980 S /bin/dropbear -F -d /var/run/dropbear_dss_host_key -r 746 admin 3744 S /bin/mcad 747 admin 3572 S /bin/mca-monitor 748 admin 1172 S /bin/stamgr -i 1 797 admin 628 S /sbin/ntpclient -i 86400 -n -s -c 0 -l -h 0.ubnt.pool 885 admin 1048 R /bin/dropbear -F -d /var/run/dropbear_dss_host_key -r 886 admin 1368 R -sh 1043 admin 1352 R ps xa BZ.v3.2.1# kill 746 BZ.v3.2.1# cat /var/log/messages … Sep 16 11:48:31 ap02acmelabsspbru daemon.info init: process '/bin/mcad' (pid 746) exited. Scheduling for restart. Sep 16 11:48:31 ap02acmelabsspbru daemon.info init: starting pid 1044, tty '/dev/null': '/bin/mcad' Sep 16 11:48:31 ap02acmelabsspbru user.info syslog: ace_reporter.reporter_reload_config(): authkey=… Sep 16 11:48:32 ap02acmelabsspbru user.info syslog: ace_reporter.reporter_set_managed(): [STATE] enter MANAGED
Вроде всё отлично, демона рестартнули, точка доступа в режиме «MANAGED
», но на контроллере в логах всё так же ни намёка на коннект от неё! Мистика, думаю. Ладно, ковыряем дальше:
BZ.v3.2.1# mca-cli UniFi# info Model: UAP-AC Version: 3.2.1.2601 MAC Address: 24:a4:3c:50:0a:6e IP Address: 192.168.255.112 Hostname: ap02acmelabsspbru Uptime: 1861112 seconds Status: Connected (http://192.168.255.3:8080/inform) UniFi# quit
Ха-ха! Точка доступа приконнектилась, но не к тому контроллеру! Основной 192.168.255.2
, а 192.168.255.3
– тестовый. При чём странно, ведь с тестового контроллера точки доступа были перенесены на основной достаточно давно. Откуда вдруг всплыл старый адрес? А оказалось всё просто, при переносе точки доступа с контроллера на контроллер, в настройках точки доступа новый контроллер просто дописывается с более высоким приоритетом, а старый никуда не девается:
BZ.v3.2.1# cat /etc/persistent/cfg/mgmt mgmt.is_default=false mgmt.led_enabled=true mgmt.cfgversion=06351638a5d53616 mgmt.authkey=… mgmt.selfrun_guest_mode=pass mgmt.servers.1.url=http://192.168.255.2:8080/inform mgmt.servers.2.url=http://192.168.255.3:8080/inform mgmt.servers.3.url=http://unifi:8080/inform
Так что удаляем последние две строки, оставляем только актуальный контроллер:
BZ.v3.2.1# sed -i '/mgmt.servers.[2,3]/d' /etc/persistent/cfg/mgmt
После изменения файла /etc/persistent/cfg/mgmt
нужно сохранить настройки точки доступа командой:
BZ.v3.2.1# save Found Active on[1] ... Found Backup1 on[2] ... Storing Active[2] ... [%100] Active->Backup[1] ... [%100]
Затем опять перегружаем демон mcad
и смотрим на результаты:
BZ.v3.2.1# ps xa PID USER VSZ STAT COMMAND 1 admin 1356 S init 2 admin 0 SW< [kthreadd] 3 admin 0 SW< [ksoftirqd/0] 4 admin 0 SW< [events/0] 5 admin 0 SW< [khelper] 15 admin 0 SW< [kblockd/0] 46 admin 0 SW [pdflush] 47 admin 0 SW [pdflush] 48 admin 0 SW< [kswapd0] 49 admin 0 SW< [aio/0] 70 admin 0 SW< [mtdblockd] 245 admin 564 S /sbin/hotplug2 --persistent --set-rules-file /usr/etc 488 admin 1356 S /usr/bin/crond -c /etc/crontabs -l 5 727 admin 928 S eapd 730 admin 1520 S nas 735 admin 1356 S init 736 admin 1348 S /usr/bin/klogd -c 8 -n 737 admin 3568 S /bin/reset-handler 738 admin 1352 S /bin/syslogd -n -O /var/log/messages -l 7 -s 200 -b 0 739 admin 1368 S /sbin/udhcpc -f -i br0 -V ubnt -A 10 -s /etc/udhcpc/u 741 admin 980 S /bin/dropbear -F -d /var/run/dropbear_dss_host_key -r 747 admin 3572 S /bin/mca-monitor 748 admin 1172 S /bin/stamgr -i 1 797 admin 628 S /sbin/ntpclient -i 86400 -n -s -c 0 -l -h 0.ubnt.pool 885 admin 1048 R /bin/dropbear -F -d /var/run/dropbear_dss_host_key -r 886 admin 1368 R -sh 1044 admin 3720 S /bin/mcad 1166 admin 1352 R ps xa BZ.v3.2.1# kill 1044 BZ.v3.2.1# mca-cli UniFi# info Model: UAP-AC Version: 3.2.1.2601 MAC Address: 24:a4:3c:50:0a:6e IP Address: 192.168.255.112 Hostname: ap02acmelabsspbru Uptime: 1861285 seconds Status: Connected (http://192.168.255.2:8080/inform) UniFi# quit
Ну вот, теперь точка доступа подключена к правильному контроллеру. И в веб-интерфейсе её статус стал «Provisioning
», а затем секунд через 30 и «Connected
».
После этого так же подчистил конфиг на первой точке доступа и заменил прошивку на обеих. Пока полёт нормальный. 🙂
PS. Кстати, UniFi Controller
на Synology
можно поставить из репозитория synology.acmenet.ru. Перед установкой контроллера нужно сначала установить Java Manager
, затем в этот менеджер загрузить Java Machine
с сайта Oracle
. После этого нужно будет поставить пакет MongoDB
(он, кстати, есть в том же репозитории) и после этого можно будет установить UniFi Controller
. В stable
-канале сейчас актуальная версия 3.2.5
, а в beta
-канале версия 4.1.1
(но с интегрированными прошивками версии 3.2.5
вместо оригинальных 3.2.1
).