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

Добавить комментарий