Estoy utilizando el dispositivo BeagleBone Black como dispositivo de monitoreo de energía en mis proyectos de IoT. La aplicación lee datos a través de USB (Modbus RTU) y los envía a la nube remota a través de MQTT. Hay entre 15 y 20 dispositivos BeagleBone Black de este tipo. Para acceder a Internet, el director de TI de la planta me proporcionó entre 15 y 20 instancias de direcciones IP estáticas. He configurado una dirección IP estática en el /etc/network/interfaces
archivo. Pero a veces la conectividad a Internet no funciona. Cuando lo depuré, descubrí que BeagleBone Black obtiene una dirección IP dinámica.
En la instalación existen rangos separados para direcciones IP estáticas y dinámicas. Si reinicio el BeagleBone Black, nuevamente detecta correctamente la dirección IP estática y el sistema funciona normalmente.
Me enfrento a este problema en una dirección IP aleatoria. A partir de ahora no existe la opción de cambiarlo permanentemente al rango de IP dinámico. Esto ocurre en dispositivos aleatorios. Por favor, ayúdame a resolver este problema. Aquí está la IP configurada en el /etc/network/interface
archivo y la dirección IP recibida.
Por ejemplo, la dirección IP estática configurada en el dispositivo. Este es el /etc/network/interface
archivo de configuración en 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
Dirección IP en el archivo:
address 10.12.4.152 netmask: 255.255.254.0 gateway: 10.12.4.1
Dirección IP recibida (comprobada mediante ifconfig
comando):
inet 10.12.4.207 netmask 255.255.254.0
La respuesta completa del ifconfig
mando:
# 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
Respuesta1
La última vez que trabajé con un beaglebone black, la imagen original de Debian hizo algo extraño y (francamente) se rompió al tener dos clientes DHCP completamente separados activos al mismo tiempo. Parece que estás usando /etc/network/interfaces y el otro es "connman". Tenga mucho cuidado de asegurarse de que se haya desactivado a connman para que no pueda actuar como cliente DHCP o pensará que tiene el control y reconfigurará su red.
Dada la naturaleza "aleatoria" de su problema, parece queen algunos casos, connman está reconfigurando su red después de haberla configurado estáticamente mediante /etc/network/interfaces
Veo comandos comentados en tus capturas de pantalla que intentan hacer esto, pero no está claro si estás seguro de que realmente se ha ejecutado en todos los dispositivos.