Через некоторое время (примерно ~4 дня, точнее не скажу) эксплуатации WB 6 перестаёт быть доступным по сети.
Собственно %subj%. В бразуере, например, получаю ERR_CONNECTION_TIMED_OUT
Помогает только физическое отключение и включение питания
Отключение и подключение кабеля к роутеру не спасают
Как это продиагностировать и исправить?
При этом
Он явно продолжает функционировать и правила продолжают выполняться
Никакой модификапцию OS я не делал, кроме разве что отключения wifi точки доступа через отключение демона hostapd
всё остальное штатное + пару очень простых скриптов с правилами (без записей в лог вида log("log message");)
p.s. в теме Welcome to Wiren Board Support Portal не нашёл какую диагностическую инф-ию я мог бы прикрепить сюда типа версии пакетов или что-то ещё. В линукс я чайник.
Добрый день. Собственно - для начала нужно больше информации. Если wi-fi отключен - то контроллер подключен по ethernet. В какой порт? Состояние светодиодов порта? Как настроен адрес на порту (динамика/статика)? если динамика - то кто адреса раздает? В какой роутер/свитч включено кнтроллер?
Если wi-fi отключен - то контроллер подключен по ethernet. В какой порт? => eth1
Состояние светодиодов порта? => оранжевый светится, зелёный помаргивает
Как настроен адрес на порту (динамика/статика)? => на WB настроена динамика, но на роутере установлен резерв ip 10.124.9.238 для MACa 54:10:EC:34:A6:D3
если динамика - то кто адреса раздает? => Роутер
В какой роутер/свитч включено кнтроллер? => Mikrotik hEX S (RouterOS v6.44.5 (long-term))
Дополнительно:
пинги не ходят, пробовал утилитами роутера TCP/IP пинг и ARP пинг.
но такое ощущение, что сам WB куда-то вполне себе успешно ходит. Например при запуске утилиты роутера torch на порту, куда подключён WB, вижу такую картинку
Пока писал, там ещё добавилось сетевой активности. 10.124.9.2 - это отдельная файфай точка доступа. Для меня чутка загадка зачем она ломится на WB, особенно на 80-ый порт…
Тогда самый информативный вариант - подключиться к контроллеру через Debug порт и посмотреть - что ж там с сетью. (самый банальный - поменять провод между контроллером и роутером - уже делали?).
Ну поменять его так просто не получится, он замурован А ещё один кинуть как-нибудь не смогу потому что нет провода такой длины. Но просто если не касаясь провода, перезагрузить WB, то всё возвращается на круги своя.
Может после перезагрузки можно что-то в каких-то логах на самом WB найти? Куда смотреть, что искать по какому ключевому слову фильтровать?
Принудительно перегрузил его. Снова могу зайти.
В /var/log/messages много записей такого вида
Nov 4 08:36:12 wirenboard-A6H3RETE user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:17: Serial protocol error: request timed out
Nov 4 08:38:08 wirenboard-A6H3RETE user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 39 of device modbus:53: Serial protocol error: request timed out
Nov 4 08:43:28 wirenboard-A6H3RETE user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:12: Serial protocol error: request timed out
Nov 4 08:45:41 wirenboard-A6H3RETE user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:12: Serial protocol error: request timed out
Nov 4 08:47:34 wirenboard-A6H3RETE user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 2 holding(s) @ 270 of device modbus:125: Serial protocol error: request timed out
Nov 4 09:01:49 wirenboard-A6H3RETE user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 3 holding(s) @ 6 of device modbus:125: Serial protocol error: request timed out
Nov 4 09:03:10 wirenboard-A6H3RETE user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 holding(s) @ 8 of device modbus:17: Serial protocol error: request timed out
Nov 4 09:03:46 wirenboard-A6H3RETE user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:12: Serial protocol error: request timed out
Ещё очень много таких записей
Nov 4 09:41:38 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 09:41:49 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 09:42:00 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 09:42:11 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 09:42:23 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 09:42:41 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 09:42:59 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 09:43:14 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Вот небольшой кусок логов прямо перед выключением питания (выше в общем-то тоже самое)
Nov 4 09:58:01 wirenboard-A6H3RETE cron.info CRON[18076]: (root) CMD (/usr/share/wb-daemon-watchdogs/check_confed.sh 2>&1 | logger -t wb-daemon-watchdogs)
Nov 4 09:58:05 wirenboard-A6H3RETE authpriv.info CRON[18072]: pam_unix(cron:session): session closed for user root
Nov 4 09:59:01 wirenboard-A6H3RETE authpriv.info CRON[18147]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 4 09:59:01 wirenboard-A6H3RETE cron.info CRON[18151]: (root) CMD (/usr/share/wb-daemon-watchdogs/check_confed.sh 2>&1 | logger -t wb-daemon-watchdogs)
Nov 4 09:59:06 wirenboard-A6H3RETE authpriv.info CRON[18147]: pam_unix(cron:session): session closed for user root
Nov 4 09:59:18 wirenboard-A6H3RETE user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:73: Serial protocol error: request timed out
Nov 4 09:59:25 wirenboard-A6H3RETE user.notice wb-mqtt-db[554]: 2020-11-04 09:59:25.932 NOTICE: Bulk processing took 174ms
Nov 4 09:59:48 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 09:59:52 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 09:59:56 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:00:00 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:00:01 wirenboard-A6H3RETE authpriv.info CRON[18227]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 4 10:00:01 wirenboard-A6H3RETE authpriv.info CRON[18226]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 4 10:00:01 wirenboard-A6H3RETE cron.info CRON[18234]: (root) CMD (/usr/share/wb-daemon-watchdogs/check_wbrules.sh 2>&1 | logger -t wb-daemon-watchdogs)
Nov 4 10:00:01 wirenboard-A6H3RETE cron.info CRON[18235]: (root) CMD (/usr/share/wb-daemon-watchdogs/check_confed.sh 2>&1 | logger -t wb-daemon-watchdogs)
Nov 4 10:00:02 wirenboard-A6H3RETE authpriv.info CRON[18227]: pam_unix(cron:session): session closed for user root
Nov 4 10:00:05 wirenboard-A6H3RETE authpriv.info CRON[18226]: pam_unix(cron:session): session closed for user root
Nov 4 10:00:05 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:00:18 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:00:28 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:00:46 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:01:00 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:01:01 wirenboard-A6H3RETE authpriv.info CRON[18311]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 4 10:01:01 wirenboard-A6H3RETE cron.info CRON[18315]: (root) CMD (/usr/share/wb-daemon-watchdogs/check_confed.sh 2>&1 | logger -t wb-daemon-watchdogs)
Nov 4 10:01:05 wirenboard-A6H3RETE authpriv.info CRON[18311]: pam_unix(cron:session): session closed for user root
Nov 4 10:01:18 wirenboard-A6H3RETE user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:73: Serial protocol error: request timed out
Nov 4 10:01:21 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:01:25 wirenboard-A6H3RETE user.notice wb-mqtt-db[554]: 2020-11-04 10:01:25.912 NOTICE: Bulk processing took 154ms
Nov 4 10:01:30 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:01:42 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:01:49 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:02:01 wirenboard-A6H3RETE authpriv.info CRON[18382]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 4 10:02:01 wirenboard-A6H3RETE cron.info CRON[18386]: (root) CMD (/usr/share/wb-daemon-watchdogs/check_confed.sh 2>&1 | logger -t wb-daemon-watchdogs)
Nov 4 10:02:06 wirenboard-A6H3RETE authpriv.info CRON[18382]: pam_unix(cron:session): session closed for user root
Nov 4 10:02:11 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:02:32 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:02:51 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:03:01 wirenboard-A6H3RETE authpriv.info CRON[18453]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 4 10:03:01 wirenboard-A6H3RETE cron.info CRON[18457]: (root) CMD (/usr/share/wb-daemon-watchdogs/check_confed.sh 2>&1 | logger -t wb-daemon-watchdogs)
Nov 4 10:03:05 wirenboard-A6H3RETE authpriv.info CRON[18453]: pam_unix(cron:session): session closed for user root
Nov 4 10:03:06 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:03:18 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:03:25 wirenboard-A6H3RETE user.notice wb-mqtt-db[554]: 2020-11-04 10:03:25.897 NOTICE: Bulk processing took 138ms
Nov 4 10:03:30 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:03:42 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 10.124.9.1 port 67
Nov 4 10:03:55 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPREQUEST of 10.124.9.238 on eth0 to 255.255.255.255 port 67
Nov 4 10:03:55 wirenboard-A6H3RETE daemon.info dhclient[4055]: DHCPACK of 10.124.9.238 from 10.124.9.1
Nov 4 10:03:55 wirenboard-A6H3RETE daemon.info dnsmasq[2705]: reading /etc/resolv.conf
Nov 4 10:03:55 wirenboard-A6H3RETE daemon.info dnsmasq[2705]: using nameserver 80.254.108.194#53
Nov 4 10:03:55 wirenboard-A6H3RETE daemon.info dnsmasq[2705]: using nameserver 80.254.108.202#53
Nov 4 10:03:55 wirenboard-A6H3RETE daemon.info dhclient[4055]: bound to 10.124.9.238 -- renewal in 250 seconds.
Nov 4 10:04:35 wirenboard-A6H3RETE syslog.info syslogd started: BusyBox v1.22.1
Nov 4 10:04:37 wirenboard-A6H3RETE user.notice kernel: klogd started: BusyBox v1.22.1 (Debian 1:1.22.0-19+b3)
Nov 4 10:04:37 wirenboard-A6H3RETE user.info kernel: [ 0.000000] Booting Linux on physical CPU 0x0
Nov 4 10:04:37 wirenboard-A6H3RETE user.notice kernel: [ 0.000000] Linux version 4.9.22-wb6 (root@wbdevenv) (gcc version 6.3.0 20170516 (Debian 6.3.0-18) ) #2 SMP Wed Jun 10 11:07:45 UTC 2020
Nov 4 10:04:37 wirenboard-A6H3RETE user.info kernel: [ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
Nov 4 10:04:37 wirenboard-A6H3RETE user.info kernel: [ 0.000000] CPU: div instructions available: patching division code
Nov 4 10:04:37 wirenboard-A6H3RETE user.info kernel: [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Nov 4 10:04:37 wirenboard-A6H3RETE user.info kernel: [ 0.000000] OF: fdt:Machine model: Wiren Board rev. 6.6.0 (i.MX6UL/ULL)
Сконфигурировал статический IP на 2-ом Ethernet порте, переключил туда шнур и ноль реакции. На порте светодиоды не загорелись и соответственно подключиться к нему я не смог.
После этого я вернул провод в 1-ый ethernet, светодиоды зажглись, но подключиться я к нему опять не смог (!)
Я думаю – ок. Переключил опять во второй порт и выключил питание и включил обратно. И тогда 2-ой Ethernet ожил и я смог к нему подключиться по статическому IP.
Похоже, что WB не любит подключаться к сетям “на живую”. В настройках есть некий hotplug, ну так он включён. Что можно ещё посмотреть/сделать, чтобы он на живую реагировал на подклчюения ethernet?
Это очень похоже на проблемы с DHCP. Их можно долго и весело решать, но если есть возможность перейти на статику - это стоит сделать.
Кстати, есть возможность обратиться к контроллеру по link-local ipv6-адресу. Это помогает при отладке подобных сетевых проблем, когда линк есть, а по ipv4 связи нет.
В линуксе это работает примерно так:
ssh root@fe80::5610:ecff:fe32:bf1%enp0s31f6
где fe80::5610:ecff:fe32:bf1 - это link-local ipv6 адрес, он есть после inet6 в выводе ifconfig, его же можно посчитать онлайн-калькулятором из MAC-адреса.
enp0s31f6 - это название сетевого интерфейса компьютера, на котором выполняете команду. Без указания интерфейса к link-local адресам подключиться не получится.
Есть какой-нибудь старый-ненужный роутер (устройство, которое можно пинговать)? Предлагаю подключить его рядом с контроллером и контроллер как и приходящий ethernet включить в его порты. Связь часто теряется все же из-за UTP (коннекторы, плохой контакт).