BeagleBone Black statische IP-Aufbewahrung

BeagleBone Black statische IP-Aufbewahrung

Ich verwende das BeagleBone Black-Gerät als Energieüberwachungsgerät in meinen IoT-Projekten. Die Anwendung liest Daten über USB (Modbus RTU) und sendet sie über MQTT an die Remote-Cloud. Es gibt etwa 15–20 solcher BeagleBone Black-Geräte. Für den Internetzugang hat mir der IT-Manager des Werks 15–20 Instanzen statischer IP-Adressen zugewiesen. Ich habe in der /etc/network/interfacesDatei eine statische IP-Adresse festgelegt. Aber manchmal funktioniert die Internetverbindung nicht. Beim Debuggen stellte ich fest, dass BeagleBone Black eine dynamische IP-Adresse erhält.

In der Anlage gibt es separate Bereiche für statische und dynamische IP-Adressen. Wenn ich den BeagleBone Black neu starte, erkennt er die statische IP-Adresse wieder ordnungsgemäß und das System funktioniert normal.

Ich habe dieses Problem mit zufälligen IP-Adressen. Derzeit gibt es keine Möglichkeit, sie dauerhaft in den dynamischen IP-Bereich zu verschieben. Dies tritt bei zufälligen Geräten auf. Bitte helfen Sie mir, dieses Problem zu lösen. Hier ist die in der /etc/network/interfaceDatei festgelegte IP und die empfangene IP-Adresse.

Beispielsweise die im Gerät eingestellte statische IP-Adresse. Dies ist die /etc/network/interfaceKonfigurationsdatei im BeableBone Black:

#auto eth0
#iface eth0 inet dhcp

auto eth0
iface eth0 inet static
    address 10.12.4.152
    netmask 255.255.254.0
    gateway 10.12.4.1


# Example to keep MAC address between reboots
#hwaddress ether DE:AD:BE:EF:CA:FE

##connman: ethX static config
#connmanctl services
#Using the appropriate ethernet service, tell connman to setup a static IP address for that service:
#sudo connmanctl config <service> --ipv4 manual <ip_addr> <netmask> <gateway> --nameservers <dns_server>

##connman: WiFi
#
#connmanctl
#connmanctl> tether wifi off
#connmanctl> enable wifi
#connmanctl> scan wifi
#connmanctl> services
#connmanctl> agent on
#connmanctl> connect wifi_*_managed_psk
#connmanctl> quit

# Ethernet/RNDIS gadget (g_ether)
# Used by: /opt/sripts/boot/autoconfigure_usb0.sh
iface usb0 inet static
    address 192.168.7.2
    netmask 255.255.255.252
    network 192.168.7.0
    gateway 192.168.7.1

IP-Adresse in der Datei:

address 10.12.4.152
netmask: 255.255.254.0
gateway: 10.12.4.1

Empfangene IP-Adresse (mit Befehl geprüft ifconfig):

inet 10.12.4.207  netmask 255.255.254.0

Die vollständige Antwort des ifconfigBefehls:

# ifconfig
eth0: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC> mtu 1500
        inet 10.12.4.207  netmask 255.255.254.0  broadcast 10.12.5.255
        inet6 fe80::f6e1:1eff:fe8c:d785  prefixlen 64  scopeid 0x20<link>
        ether f4:e1:1e:8c:d7:85  txqueuelen 1000  (Ethernet)
        RX packets 146702  bytes 10983334 (10.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6716  bytes 509906 (497.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 174

lo: flags=74<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 164064  bytes 18078349 (17.2 MiB)
        RX errors 0  dropped 0  everruns 0  frame 0
        TX packets 164064  bytes 18078349 (17.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

usb0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.7.2  netmask 255.255.255.252  broadcast 192.168.7.3
        ether f4:e1:1e:8c:d7:87  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

usb1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.6.2  netmask 255.255.255.252  braodcast 192.168.6.3
        ether f4:e1:1e:8c:d7:8a  txquequelen 1000 (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Antwort1

Als ich das letzte Mal mit einem Beaglebone Black gearbeitet habe, hat das Standard-Debian-Image dafür etwas Seltsames getan und (ehrlich gesagt) ist kaputtgegangen, weil zwei völlig separate DHCP-Clients gleichzeitig aktiv waren. Sie scheinen /etc/network/interfaces zu verwenden, der andere ist „connman“. Achten Sie darauf, dass connman nicht mehr als DHCP-Client fungieren kann, da es sonst denkt, es habe die Kontrolle und Ihr Netzwerk neu konfiguriert.

Angesichts der "zufälligen" Natur Ihres Problems klingt es so, als obin manchen Fällen, Ihr Netzwerk wird von Connman neu konfiguriert, nachdem es statisch über /etc/network/interfaces konfiguriert wurde

Ich sehe in Ihren Screenshots auskommentierte Befehle, die dies versuchen, aber es ist unklar, ob Sie sicher sind, dass dies tatsächlich auf jedem Gerät ausgeführt wurde

verwandte Informationen