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에 의해 재구성되고 있습니다.

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

관련 정보