BeagleBone Black 고정 IP 보유

BeagleBone Black 고정 IP 보유

저는 IoT 프로젝트에서 에너지 모니터링 장치로 BeagleBone Black 장치를 사용하고 있습니다. 애플리케이션은 USB(Modbus RTU)를 통해 데이터를 읽고 MQTT를 통해 원격 클라우드로 전송합니다. 이러한 BeagleBone Black 장치는 약 15~20개 정도 있습니다. 인터넷에 액세스하기 위해 공장 IT 관리자는 나에게 15~20개의 고정 IP 주소 인스턴스를 제공했습니다. 파일 에 고정 IP 주소를 설정했습니다 /etc/network/interfaces. 하지만 인터넷 연결이 작동하지 않는 경우도 있습니다. 디버깅을 해보니 BeagleBone Black이 동적 IP 주소를 받고 있는 것으로 나타났습니다.

플랜트에는 고정 및 동적 IP 주소에 대한 별도의 범위가 있습니다. BeagleBone Black을 재부팅하면 다시 고정 IP 주소를 제대로 잡아 시스템이 정상적으로 작동합니다.

임의의 IP 주소에서 이 문제가 발생했습니다. 현재로서는 동적 IP 범위에서 영구적으로 이동하는 옵션이 없습니다. 이는 임의의 장치에서 발생합니다. 이 문제를 해결하도록 도와주세요. 파일에 설정된 IP /etc/network/interface와 수신된 IP 주소는 다음과 같습니다.

예를 들어 장치에 설정된 고정 IP 주소입니다. /etc/network/interfaceBeableBone 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 주소:

address 10.12.4.152
netmask: 255.255.254.0
gateway: 10.12.4.1

수신된 IP 주소( ifconfig명령을 사용하여 확인):

inet 10.12.4.207  netmask 255.255.254.0

ifconfig명령 의 전체 응답 :

# 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

답변1

지난 번 beaglebone black으로 작업했을 때, 그에 대한 기본 데비안 이미지가 뭔가 이상한 일을 했고 (솔직히) 두 개의 완전히 분리된 DHCP 클라이언트가 동시에 활성화되어 깨졌습니다. /etc/network/interfaces를 사용하고 있는 것 같습니다. 다른 하나는 "connman"입니다. connman이 DHCP 클라이언트 역할을 하지 못하도록 비활성화되었는지 매우 주의하십시오. 그렇지 않으면 Connman이 네트워크를 제어하고 재구성한다고 생각하게 됩니다.

문제의 "무작위" 특성을 고려하면 다음과 같이 들립니다.일부 경우에, 네트워크가 /etc/network/interfaces에 의해 정적으로 구성된 후 connman에 의해 재구성되고 있습니다.

스크린샷에서 이 작업을 시도하는 주석 처리된 명령을 볼 수 있지만 이것이 실제로 모든 장치에서 실행되었는지 확실하지 않습니다.

관련 정보