Retenção de IP estático BeagleBone Black

Retenção de IP estático BeagleBone Black

Estou usando o dispositivo BeagleBone Black como dispositivo de monitoramento de energia em meus projetos de IoT. O aplicativo lê os dados via USB (Modbus RTU) e os envia para a nuvem remota através do MQTT. Existem cerca de 15 a 20 desses dispositivos BeagleBone Black. Para acessar a Internet, o gerente de TI da fábrica me forneceu de 15 a 20 instâncias de endereços IP estáticos. Eu configurei o endereço IP estático no /etc/network/interfacesarquivo. Mas às vezes a conectividade com a Internet não funciona. Quando depurei, descobri que o BeagleBone Black está obtendo um endereço IP dinâmico.

Existem intervalos separados para endereços IP estáticos e dinâmicos na planta. Se eu reiniciar o BeagleBone Black, ele capturará novamente o endereço IP estático corretamente e o sistema funcionará normalmente.

Estou enfrentando esse problema em um endereço IP aleatório. No momento, não há opção de alterá-lo permanentemente na faixa de IP dinâmico. Isso está ocorrendo em dispositivos aleatórios. Por favor, me ajude a resolver este problema. Aqui está o IP definido no /etc/network/interfacearquivo e o endereço IP recebido.

Por exemplo, o endereço IP estático definido no dispositivo. Este é o /etc/network/interfacearquivo de configuração do 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

Endereço IP no arquivo:

address 10.12.4.152
netmask: 255.255.254.0
gateway: 10.12.4.1

Endereço IP recebido (verificado usando ifconfigo comando):

inet 10.12.4.207  netmask 255.255.254.0

A resposta completa do ifconfigcomando:

# 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

Responder1

A última vez que trabalhei com um beaglebone black, a imagem padrão do Debian fez algo estranho e (francamente) quebrado por ter dois clientes DHCP completamente separados ativos ao mesmo tempo. Você parece estar usando /etc/network/interfaces, o outro é "connman". Tenha muito cuidado para garantir que o connman foi desabilitado para atuar como um cliente DHCP ou ele pensará que está no controle e reconfigurará sua rede.

Dada a natureza "aleatória" do seu problema, parece,em alguns casos, sua rede está sendo reconfigurada por connman depois de ter sido configurada estaticamente por /etc/network/interfaces

Vejo comandos comentados em suas capturas de tela que tentam fazer isso, mas não está claro se você tem certeza de que isso foi realmente executado em todos os dispositivos

informação relacionada