Добрый день,
Стандартная схема - основной канал по Ethernet, резервный по LTE.
Настроены уведомления через электронную почту и через телеграм (ноде ред бот).
При отсутствии связи по Ethernet теряется доступ к боту, по почте ничего не приходит. Только после восстановления видим сообщения “связь через Ethernet восстановлена”. Как диагностировать и исправить?
Спасибо!
Добрый день.
Что такое “доступ к боту”?
То чнее - опишите что вы ожидаете, что получаете.
Если описываеет проблемы с отправкой почты - тогда: как настроено резрешение имен? Работает ли оно при любом из доступных интерфейсов?
Какой шлюз испоьзуется при каждом из поднятых интерфейсов?
Интеграция с телеграм сделана двумя способами - раз в час скрипт публикует сообщение в чат с температурами и дополнительно есть бот, который по запросу в любой момент отправляет температуры.
Настройки интерфейсов - все по DHCP. Настроена проверка доступности Интернета в интерфейсе через сервис Microsoft, который используется и в актуальных Windows (скачивание http://www.msftconnecttest.com/connecttest.txt и проверка наличия в ответе “Microsoft Connect Test”.) Соответственно если в логе указано, что один канал упал и прошло переключение на второй, должны работать и DNS и гейт.
Насколько я понимаю, работа с telegram никак не зависит от других ресурсов, то есть участвует только WB7 и подключение к Интернет. Аналогично и e-mail, который настроен согласно инструкции через /etc/ssmtp/ssmtp.conf и внешний аккаунт на yandex.
Так что понять, что не так, достаточно сложно.
Могу заблокировать доступ в Интернет по кабелю, зайти локально и попробовать отправить уведомления.
Хочется как минимум видеть оперативные сообщения-уведомления о том, что произошли изменения в интернет-подключении. Максимум - сохранить все Интернет-функции (сейчас это телеграм).
Кстати, на межсетевом экране еще видны запросы ping на 1.1.1.1 каждую минуту. Это еще какой-то встроенный сервис?
Проверил. При недоступности проводного канала трафик не идет через резервный. Речь именно недоступности по проверке, а не статусе down физического порта - в интерфейсе “Ethernet IP Online Status” становится в “выкл”.
Как конкретно реализовано переключение? Если должны меняться маршруты или метрики, то этого не происходит.
Соединение через сотовый модуль настроено на низкий приоритет.
Проверил отключением кабеля Ethernet. Пришло, уже по сотовой сети, и уведомление по email и работает телеграм бот.
Так что вероятно встроенный сервис реакции на результат проверки доступности интернет подключения работает некорректно.
Как исправить?
Спасибо!
Какой (сейчас) хост назначен для тестирования доступности? параметр “connectivity_check_url” из /etc/wb-connection-manager.conf то есть?
Для проверки запрещаю маршрутизацию на роутере для хоста контроллера - он переключается.
Я писал выше -
"connectivity_check_payload": "Microsoft Connect Test",
"connectivity_check_url": "http://www.msftconnecttest.com/connecttest.txt",
Эти данные используются Windows. При блокировке доступа на межсетевом экране статус соединения Ethernet переключается на “выкл”. Статус соединения через сотовый модем остается “вкл”. Но фактически связи нет.
И не очень понятно, как собственно реализовано переключение. В выводе ip ad sh и ip route ничего не меняется.
Вот тут - пожалуйста подробнее.
Покажите метрикb маршрутов при доступном маршруте через ethernet, при недоступном.
Ну и traceroute к какому-нибудь узлу в интернете.
Ну и по-умолчанию connectivity.interval 300 секунд.
Метрики не меняются. 55 на кабель, 700 на сотовый канал.
Интересно.
Наблюдаю на контроллере при доступном через eth0 маршруте:
ip route
default via 10.0.0.2 dev eth0 proto static metric 55
default dev ppp0 proto static scope link metric 105
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.78 metric 55
10.64.64.64 dev ppp0 proto kernel scope link src 10.39.220.213 metric 105
192.168.42.0/24 dev wlan0 proto kernel scope link src 192.168.42.1 metric 600
Запретил роутинг с адреса контроллера.
И да, пожалуй баг…
Покажите лог сервисов wb-connection-manager systemd и NetworkManager одним файлом.
Это и в актуальной версии ПО наблюдается?
Лог в моменты пропадания и восстановления связи?
Ан нет. Не баг. У меня СИМ была неактивна.
Все верно отпрабатывает, после пополнения баланса:
ip route
default via 10.0.0.33 dev eth0 proto static metric 100
default dev ppp0 proto static scope link metric 700
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.78 metric 100
10.64.64.64 dev ppp0 proto kernel scope link src 10.39.233.92
192.168.42.0/24 dev wlan0 proto kernel scope link src 192.168.42.1 metric 600
Да.
20:41:15 блокировка доступа к Интернет
20:41:50 статус Ethernet изменился на “выкл” (сотовый всегда “вкл”), вывод ip route не изменился, интернет на контроллере недоступен.
20:48:27 разблокировка доступа к Интернет, через несколько секунд пришло email что Ethernet соединение онлайн
Логи во вложении.
логи сетевых сервисов.txt (17,7 КБ)
ip route в процессе не менялся
default via 10.0.X.X dev eth0 proto dhcp src 10.0.Y.Y metric 55
default dev ppp0 proto static scope link metric 700
10.0.0.0/16 dev eth0 proto kernel scope link src 10.0.Y.Y metric 55
10.64.64.64 dev ppp0 proto kernel scope link src 10.35.203.5
Думаю что причина может быть и в текущих проблемах с местом.
В любом случае, будем переустанавливать все, как соберем полную информацию что где для чего меняли.
Спасибо!
PS теоретически можно локально к консоли подключиться и смотреть что меняется при физическом пропадании линка на Ethernet.
Выложите архив сетевых соединений (каталог /etc/NetworkManager) - у меня похоже воспроизвелось подобное.
В актуальном релизе ПО ошибка сохраняется?
В актуальном без специального редактирования конфигов - нет.