Настройка моста между сетевыми интерфейсами на контроллере WirenBoard

Добрый день!

В контроллере WirenBoard два проводных сетевых интерфейса.
Подскажите, пожалуйста, можно ли настроить второй из них как коммутационный порт для другого устройства?

Например, через первый порт WB соединяется с роутером. А ко второму Ethernet-порту я хочу подключить Raspberry Pi. Мне нужно, чтобы WB прокидывал мост для этого устройства.
На случай, если роутер перестанет работать вдруг, чтобы WB и RPi общались между собой (MQTT мост). Но когда с роутером всё в порядке, чтобы из локальной сети был доступ и к WB, и к RPi.

Добрый день.
Вообще создание моста - неспецифично для контроллера и работает вполне штатно.
Пример есть тут:

Добрый день!

Спасибо за ответ!
Я пробовал настраивать по гайдам разными комбинациями сетевых настроек и моста, но либо не работает (нет доступа к устройству, подключённому к eth1), либо вообще доступ к WB пропадает, приходится править /etc/network/interfaces через дебаг порт.
Буду пробовать ещё.

Воспроизвел.

apt install bridge-utils -y

Настройки бриджа:

auto br1
iface br1 inet static
        address 10.0.0.75
        network 255.255.255.0
        netmask 255.255.255.0
        gateway 10.0.0.1
        bridge_ports eth0 eth1
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

Естественно интерфейсы закомментировал. Работает. Ну это ж самый простой мост, он не может не работать.

UPD: Добавил что нужно установить пакет.

Действительно заработало!
Мучил его два дня, отваливалась сеть и всё тут…
Что я не пробовал ранее - убирать настройки самих интерфейсов, оставляя только br.

Спасибо большое за помощь!

1 Like

Так и есть - в Linux, при создании бриджа, на всех включаемых в мост интерфейсах не должен быть установлен IP-адрес. Либо должен быть установлен адрес 0.0.0.0
Все IP-адреса уже присваиваются бриджу.

Не совсем. Интерфейсам можно присвоить и отдельные адреса тоже, в некоторых случаях. Но это уже в стороне от задачи.

Добрый день, коллеги!

Как я и говорил ранее, на нашем тестовом стенде схема заработала.

Попробовали реализовать аналогичным образом на объекте - ничего не вышло: сеть пропадает (контроллер не пингуется, роутер не видит его), а также отваливается RS485. Приходится через дебаг-порт возвращать настройки и перезагружать.
Причём если отключить сетевые кабели, перезагрузить контроллер - RS485 заводится.

Приведу настройки, с которыми всё работает:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# Wireless interfaces
# allow-hotplug wlan0

#iface wlan0 inet dhcp
#    wpa-ssid wifiessid
#    wpa-psk wifipassword

#iface wlan0 inet static
#  address 192.168.42.1
#  netmask 255.255.255.0

auto eth0
iface eth0 inet static
   address 192.168.2.102
   netmask 255.255.255.0
   gateway 192.168.2.1
   pre-up wb-set-mac
   hostname WirenBoard

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

## The gsm pptp interface
## vvv uncomment block to enable

#auto ppp0
#iface ppp0 inet ppp
## select provider: megafon, mts or beeline below
#  provider megafon   

А вот конфиг с которым сеть и RS-485 НЕ работает:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# Wireless interfaces
# allow-hotplug wlan0

#iface wlan0 inet dhcp
#    wpa-ssid wifiessid
#    wpa-psk wifipassword

#iface wlan0 inet static
#  address 192.168.42.1
#  netmask 255.255.255.0

#auto eth0
#iface eth0 inet static
#   address 192.168.2.102
#   netmask 255.255.255.0
#   gateway 192.168.2.1
#   pre-up wb-set-mac
#   hostname WirenBoard

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

## The gsm pptp interface
## vvv uncomment block to enable

#auto ppp0
#iface ppp0 inet ppp
## select provider: megafon, mts or beeline below
#  provider megafon

auto br1
iface br1 inet static
        address 192.168.2.102
        network 255.255.255.0
        netmask 255.255.255.0
        gateway 192.168.2.1
        pre-up wb-set-mac
        bridge_ports eth0 eth1
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0    

Проверяли на двух одинаковых инстансах (два рядом расположенных коттеджа) - аналогично.
Подскажите, пожалуйста, в чём может быть проблема? И почему отваливается RS-485: как она связана с сетью?

Заранее извиняюсь, стыдно такое спрашивать, конечно. А есть ли пустая строка в конце файла?

Да, пустая строка есть! Мне тоже стыдно спрашивать: а это как-то влияет? :slight_smile:

Да. Структура (этого) файла определяется отступами, без пустой строки может себя вести непредсказуемо. А в каком состоянии сеть после запуска в конфигурации бриджа? Ну и "не работает@ Rs-485 - как? Отсутствуют симлинки в /dev, не запускается serial? Если не запускается - что пишет? Ну и вообще - логи дайте, без них что-то всоветовать не получится.

RS-485 - не работают подключенные модули: не подаётся питание на них с портов контроллера. Насчёт симлинков и serial - без понятия.
Сеть (и, как следствие, rs-485) не работает при подключенном разъеме к eth0. Если отключить сетевой кабель от eth0, перезагрузить - всё работает.

Будем на объекте - попробуем повторить и снять логи. Как проверить запуск serial?
Симлинки - это ссылки ttyRS485-1 и ttyRS485-2 в /dev?

У меня есть удалённый доступ, но если я воспроизведу ситуацию - то потеряю его. Если можно что-то проверить не поднимая бридж - скажите, я посмотрю.

Спасибо!

Вот это - очень интересно. Так в общем не бывает, никак не связано.

systemctl status wb-mqtt-serial

Разве что при наличии GPRS канала. Можете на месте дать anydesk - гляну сам.

Да, понял, спасибо!

GPRS нет, так что будем на месте - тогда я напишу в личку.

Забыл установить bridge-utils на клиентских контроллерах. Мой косяк, тема закрыта.

Спасибо!

1 Like