У меня есть робот со следующей настройкой, и интерфейс Ethernet (enp4s0) [Компьютера A] время от времени отключается.
Интерфейс не падает, когда компьютеры неактивны. Однако, когда [Компьютер B] начинает транслировать сжатый поток изображения на [Мой компьютер] через [Компьютер A], интерфейс Ethernet падает.
Следовательно, похоже, что это проблема конфигурации, при которой я, возможно, непреднамеренно перегружаю сеть, что приводит к обрыву сетевого соединения, и я хотел бы получить совет по этому вопросу.
Вывод dmesg не был действительно полезен
dmesg с компьютера A
[Mon Apr 12 13:43:33 2021] igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Down
[Mon Apr 12 13:43:33 2021] br0: port 1(enp4s0) entered disabled state
[Mon Apr 12 13:43:35 2021] igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
[Mon Apr 12 13:43:35 2021] br0: port 1(enp4s0) entered blocking state
[Mon Apr 12 13:43:35 2021] br0: port 1(enp4s0) entered listening state
[Mon Apr 12 13:43:39 2021] br0: port 1(enp4s0) entered learning state
[Mon Apr 12 13:43:44 2021] br0: port 1(enp4s0) entered forwarding state
[Mon Apr 12 13:43:44 2021] br0: topology change detected, propagating
[Mon Apr 12 14:05:50 2021] igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Down
[Mon Apr 12 14:05:50 2021] br0: port 1(enp4s0) entered disabled state
[Mon Apr 12 14:05:52 2021] igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
Что я уже сделал:
- Проверил и заменил все кабели Ethernet на новые.
- Замените все компьютеры и датчики на запасные.
- Включить STP на сетевом мосту с задержкой пересылки 4
К сожалению, я не могу подключить все к коммутатору из-за ограничений по размеру робота.
Настраивать
Все компьютеры работают под управлением Ubuntu 18.04 иROS Мелодичная Морения.
Я настроил сетевой мост с помощью netplan, как показано ниже.
# Netplan on Computer A
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
#Computer B
enp1s0:
dhcp4: no
#Sensor
enp2s0:
dhcp4: no
#SBC to switch
enp4s0:
dhcp4: no
#Setup a bridge and link eno1 to it
bridges:
br0:
interfaces: [enp1s0, enp2s0, enp4s0]
addresses: [192.168.1.1/24]
gateway4: 192.168.1.253
nameservers:
addresses: [8.8.8.8]
dhcp4: no
Что еще я пробовал:
Включите переадресацию портов и добавьте маршрут от [Компьютера B] к [Компьютеру A] и настройте сетевые карты в другой подсети в /etc/sysctl.conf
:
net.ipv4.ip_forward = 1
Компьютер Б
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
# Netplan on Computer A
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
#Computer B
enp1s0:
addresses:
- 192.168.2.1/24
dhcp4: no
#Sensor
enp2s0:
addresses:
- 192.168.3.1/24
dhcp4: no
#SBC to switch
enp4s0:
addresses:
- 192.168.1.1/24
dhcp4: no
gateway4: 192.168.1.253
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
решение1
Я обнаружил, что eno1 и enp4s0 используют разные драйверы. Поэтому я попробовал поменять оба интерфейса, и теперь интерфейс не падает. Возможно, причиной падения является устаревший драйвер.
sudo lspci -v
Интерфейс eno1
Ethernet controller: Intel Corporation Ethernet Connection (6) I219-LM (rev 30)
Subsystem: Intel Corporation Ethernet Connection (6) I219-LM
Flags: bus master, fast devsel, latency 0, IRQ 141
Memory at a1a00000 (32-bit, non-prefetchable) [size=128K]
Capabilities: [c8] Power Management version 3
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Kernel driver in use: e1000e
Kernel modules: e1000e
Интерфейс enp4s0
Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at a1780000 (32-bit, non-prefetchable) [size=512K]
I/O ports at 3000 [disabled] [size=32]
Memory at a1800000 (32-bit, non-prefetchable) [size=16K]
Expansion ROM at a1700000 [disabled] [size=512K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [70] MSI-X: Enable+ Count=5 Masked-
Capabilities: [a0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number c4-00-ad-ff-ff-4c-52-bf
Capabilities: [1a0] Transaction Processing Hints
Kernel driver in use: igb
Kernel modules: igb
Текущий сетевой план на компьютере A
network:
version: 2
renderer: NetworkManager
ethernets:
enp2s0:
addresses:
- 192.168.3.1/24
dhcp4: no
enp1s0:
mtu: 1500
addresses:
- 192.168.2.1/24
dhcp4: no
eno1:
mtu: 1500
dhcp4: no
addresses: [192.168.1.1/24]
gateway4: 192.168.1.253
nameservers:
addresses: [8.8.4.4,8.8.8.8]
enp4s0:
mtu: 1500
dhcp4: no
addresses: [192.168.1.2/24]
gateway4: 192.168.1.253
nameservers:
addresses: [8.8.4.4,8.8.8.8]