Отваливается сеть при пропадании и не восстанавливается


#1

Всем Доброго Наступающего года!

В последнее время участились пропадания электроэнергии от нескольких секунд до нескольких минут. Аккумуляторный модуль дает самому WB5 это пережить и не перезагрузиться. Но после восстановления питающего напряжения у WB отваливается сеть, то есть на свиче видно, что Ethernet -линк на него горит, но не мигает. При этом идет опрос датчиков RS-485 + w1 и работают правила. А вот ни по ethernet-у ни по WiFi даже не пингуется. Пробовал выключать RJ45 из свича и подключать обратно, чтобы заставить заново проинициализировать интерфейс - линк заново загорается, но сеть не восстанавливается.
Приходится WB выключать кнопкой, потом он загружается без проблем, и сеть появляется и WiFi и ethernet. В логах все совершенно чисто - никаких сообщений о проблемах на сети.
Мой /etc/network/iinterfaces:

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet dhcp
    wpa-ssid    RFGW
    wpa-psk     ************

auto eth0
iface eth0 inet static
    address 192.168.88.240
    gateway 192.168.88.1
    hostname WirenBoard
    hwaddress 00:86:41:47:d8:a1
    mtu 1500
    netmask 255.255.255.0
    pre-up ifconfig eth0 hw ether `cat /var/lib/wirenboard/serial.conf` || /bin/true

allow-hotplug eth1
iface eth1 inet dhcp

Это WirenBoard 5.5, второго ethernet- а нет. WiFi по DHCP получает всегда один и тот же адрес 192.168.88.235/24 - это прописано в DHCP-сервере

Раз отваливаются оба сетевых соединения - дело не в аппаратуре, а в какой-то установке ядра, которое отключает сеть при ее пропадании и не подключает ее назад. Где это можно поправить ?

А также вопрос - какими средствами отловить момент перехода на аккумулятор и обратно, чтобы для начала хотя бы записать это в лог ?


WB5 - пропадает линк на Ethenet
#2

Роутер у вас при этом остаётся живым, при пропадании напряжения? Т.е. вы уверены, что проблема именно в переключении ВБ на аккумулятор, а не в пропадании и восстановлении линка? У себя я аналогичную проблему решил предельно тупо — lease timeout на dhcp установил в 5 минут.


#3

Роутер без UPS-а - поэтому он перезагружается после пропадания напряжения, так же как и свич, в который они оба воткнуты. Но временное пропадание ethernet-линка не производит такого эффекта - я несколько раз перетыкал RJ45 в свиче при нормальном питании от 220V, и сеть восстанавливалась без проблем. Так же пару раз вырубался на длительное время роутер (то есть не было ни DHCP ни WiFi от роутера), но сеть у WB не отваливалась - WiFi появлялся сразу же после включения роутера. Так что здесь только пропадание и восстановление напряжения 220 В играет роль.

На DHCP у меня Mikrotik-роутер по умолчанию выставляет 24 часа leased-timeout, а на Ethernet-е адрес статический.


#4

Хм. А у меня тоже микротик :slight_smile: Интересно, с другими роутерами проблема повторяется?..


#5

Раз отваливаются оба сетевых соединения - дело не в аппаратуре, а в какой-то установке ядра, которое отключает сеть при ее пропадании и не подключает ее назад.

Сделал дополнительную перепроверку:
выключил роутер (а с ним DHCP-сервер, WiFi-сеть и выход в интернет) примерно на 5 минут, при этом вся домашняя локальная сеть осталась включенной. После включения роутера и восстановления выхода в интернет оба сетевых подключения WB5 так и не восстановились и не пинговались. Причем на самом Ethernet-е светился не только линк, но и моргал светодиод активности , то есть он принимал пакеты ping-а, но не отвечал.

То есть переход на аккумулятор и обратно не является первопричиной, а проблема в настройках операционной системы, которая не пытается заново подключить и Ethernet и WiFi-сеть после ее пропадания соединения с интернетом.

В каких настройках это можно поправить ?


#6

А вы пробовали в настройках микротика уменьшить leased-timeout?
На контроллере айпишник по DHCP получается?


#7

В настройках микротика leased-timeout уменьшать еще не пробовал - попробую в выходные.

WiFi сконфигурирован как клиент и получает настройки через DHCP от Mikrotik-а.
На Eth0 IP-адрес статически ставится в конфигурации, но Mikrotik-овский DHCP-сервер в случае чего выдаст ему те же самые настройки.
Может влияет то, что по IP-адресам и Eth0 и WiFi находятся в одной сетке, и после восстановления сети ядро запутывается с роутингом - куда посылать ответный пакет?


#8

У меня только eth0, без wifi, симптомы те же самые.


#9

У меня это и оказалось причиной почему не работал ethernet при отвалившемся WiFi - ответные пакеты от eth0 пытались возвращаться через WiFi, который не работал, но роутинг с него не снимался, то есть это выглядело вот так:

 root@wirenboard:~# netstat -rn
 Kernel IP routing table
 Destination    Gateway        Genmask         Flags   MSS Window  irtt Iface
 0.0.0.0        192.168.88.1   0.0.0.0         UG        0 0          0 wlan0
 192.168.88.0   0.0.0.0        255.255.255.0   U         0 0          0 eth0
 192.168.88.0   0.0.0.0        255.255.255.0   U         0 0          0 wlan0

А после переноса eth0 в другую сетку роутинг стал нормальным и появился отдельный возвратный маршрут для eth0:

 root@wirenboard:~# netstat -rn
 Kernel IP routing table
 Destination    Gateway        Genmask         Flags   MSS Window  irtt Iface
 0.0.0.0        192.168.88.1   0.0.0.0         UG        0 0          0 wlan0
 0.0.0.0        192.168.1.1    0.0.0.0         UG        0 0          0 eth0
 192.168.1.0    0.0.0.0        255.255.255.0   U         0 0          0 eth0
 192.168.88.0   0.0.0.0        255.255.255.0   U         0 0          0 wlan0

Так же уменьшил в DHCP-сервере leased-time до 5 минут.
Отключение роутера и WIFi пока не проверял из-за боязни потерять белый внешний IP-адрес: в каникулы многие из дома сидят в интернете и белых IP-адресов не хватает - провайдер загоняет под NAT тех, кому не хватило.


#10

Можно использовать вот этот скрипт, поставив в нем WLANINTERFACE=eth0:
“Автоматическое переподключение при проблемах с соединением”
Я поставил его для WiFi (он у меня на DHCP), только не каждую минуту, а раз в пять минут, чтобы не грузить контроллер.


#11

WiFi сконфигурирован как клиент и получает настройки через DHCP от Mikrotik-а.
Так же уменьшил в DHCP-сервере leased-time до 5 минут.
И не в роутинге дело. Вчера во всем городе свет моргнул из-за просадки напряжения на ЛЭП, роутер перезагрузился и опять сеть отвалилась по обоим интерфейсам и WiFi и Eth0. Не помог ни скрипт “Автоматическое переподключение при проблемах с соединением”, ни разнесение интерфейсов по разным сетям. Кратковременное вытягивание кабеля Eth0 WB переживает нормально, а вот пропадание WiFi - отключает сеть безвозвратно. Это явно какая-то настройка в ядре - подскажите где это можно поправить.


#12

ответа так и не последовало…
Я сейчас отключил роутер, к которому по WiFi подключается WB. Потом включил роутер. Все остальное, что у меня работало - работает, а WB не доступен. Мои системы его не видят, комп не пингует. Помогло только нажатие кнопки, у меня с акк.
Что делать, что настроить чтобы такого не было? перебой с сетью и все, WB отвалился?


#13

Добрый день!

https://wirenboard.com/wiki/index.php/Wi-Fi#.D0.90.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B5_.D0.BF.D0.B5.D1.80.D0.B5.D0.BF.D0.BE.D0.B4.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.B8_.D0.BF.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC.D0.B0.D1.85_.D1.81_.D1.81.D0.BE.D0.B5.D0.B4.D0.B8.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5.D0.BC


#14

Здравствуйте!
Сделал все по инструкции. Не работает. Причем подключил WB и по лан0 шнуром и через вайфай, при отключении и включении маршрутизатора связи нет. Помогает только ребут. Я не вполне понимаю преимуществ такого вашего решения, когда при потере связи контроолер надо из коробки ребутить, наверное, где-то это и будет полезно. Мне даже важнее сейчас, чтобы он по лану переподключался, может, это можно сделать проще?
Что я делал (по шагам) по вашей инструкции:
Открыл WinSCP. В папке /root создал файл wifi_autoconnect.sh с содержанием:

#!/bin/bash

# Подставьте имя интерфейса
WLANINTERFACE=wlan0
# Подставьте адрес роутера или сервера в интернете, доступ к которому будет проверяться
SERVER=192.168.1.1

# Only send two pings, sending output to /dev/null
ping -I ${WLANINTERFACE} -c2 ${SERVER} > /dev/null

# If the return code from ping ($?) is not 0 (meaning there was an error)
if [ $? != 0 ]
then
# Restart the wireless interface
ifdown --force ${WLANINTERFACE}
ifup ${WLANINTERFACE}
fi

у меня роутер с таким адресом, вот настройки в interfaces:

auto lo
iface lo inet loopback

allow-hotplug wlan0
#iface wlan0 inet static
#  address 192.168.42.1
#  netmask 255.255.255.0

auto eth0
iface eth0 inet dhcp
 hostname WirenBoard
  hwaddress 54:10:ec:ef:82:58
  pre-up wb-set-mac

allow-hotplug eth1
iface eth1 inet dhcp
  hostname WirenBoard
  pre-up wb-set-mac

auto wlan0
iface wlan0 inet dhcp
  wpa-ssid имя моей точки
  wpa-psk пароль

IP по маку роутер дает один и тот же.

как выполнить команду я точно не знаю, потому в WinSCP сюда
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
ввел указанную команду.
(проудлировал в Putty, но там я не знаю, как в папку войти)
пробовал через mc зайти в нужную папку, и там давал эту команду. в ответ ничего не последовало. Должно было быть какое-то подтверждение?

Установил как указано cron (хоть и теперь срашно, что он работает, т.к. по отзывам он тоже вешает иногда контроллер)
установился.
Добавил в конце что указано, теперь этот файл выглядит так:


строку пустую в конце оставил.
Как написано в первоисточнике, подждал минуту (на самом деле дольше) и выключил роутер.
Включил - ничего.
Что сделано не так? Как сделать автоподключащийся лан?

так тоже сделал:


результат такой же


#15

и также вопрос. Как все взад вернуть?
Мне пришлось установить крон.
Как его удалить?
Эту новую строку я снес, вернул как было.
Файл с автозапуском вайфая тоже снес.
Но Cron то установил, он будет теперь что-то делать и вероятно, вешать мне систему. Как его деинсталлировать? Кое что нахожу в инете, но опасаюсь так без понимания что-то грохать.


#16

apt purge cron


#17

поясню чем все закончилось. Я все, кроме одно порта лановского оставил в настройках, и тогда переключается обратно корректно. Экспериментировать и гуглить возможности нет. Все интерфейсы в топку)