저는 beaglebone black과 최신 IoT Debian 9 이미지를 사용하고 있습니다. (BeagleBoard.org Debian Image 2018-03-05)
네트워크 인터페이스를 구성하는 방법은 다음과 같습니다.
/etc/네트워크/인터페이스
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.220
netmask 255.255.255.0
gateway 192.168.0.155
# Ethernet/RNDIS gadget (g_ether)
iface usb0 inet static
address 192.168.7.2
netmask 255.255.255.252
network 192.168.7.0
gateway 192.168.7.1
# Nameservers
dns-nameservers 192.168.0.155
인터페이스를 시작한 후 내 라우팅 테이블은 다음과 같습니다.
debian@beaglebone:~$ ip route
default via 192.168.0.155 dev eth0 onlink
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.220
192.168.6.0/30 dev usb1 proto kernel scope link src 192.168.6.2 linkdown
192.168.7.0/30 dev usb0 proto kernel scope link src 192.168.7.2
기본 게이트웨이를 통해 인터넷에 액세스할 수 있으며 모든 것이 잘 작동하지만 1-2분 후에 일부 다른 항목이 나타납니다.
이제 내 라우팅 테이블은 다음과 같습니다.
debian@beaglebone:~$ ip route
default dev eth0 scope link
default via 192.168.0.155 dev eth0 onlink
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.220
169.254.0.0/16 dev eth0 proto kernel scope link src 169.254.66.227
192.168.6.0/30 dev usb1 proto kernel scope link src 192.168.6.2 linkdown
192.168.7.0/30 dev usb0 proto kernel scope link src 192.168.7.2
이제 제가 정의한 게이트웨이 대신 상위 기본 게이트웨이가 사용되는 것 같습니다. 따라서 인터넷(및 기타 내부 네트워크)에 액세스할 수 없습니다.
이는 eth0이 네트워크에 연결된 경우에만 발생합니다. 내가 사용하고 있는 네트워크의 다른 모든 장치도 정적으로 구성되어 있습니다.
내 시스템이 사용하려는 기본 게이트웨이를 사용하도록 하려면 어떻게 해야 합니까?
usb0에서 기본 게이트웨이를 제거하거나 별도의 라우팅 테이블에 넣어 보았습니다. 이로 인해 어떤 인터페이스를 통해서도 beaglebone에 액세스할 수 없게 되었습니다.
ifconfig의 출력은 다음과 같습니다. 누군가가 여기에서 수상한 내용을 볼 경우를 대비해 말입니다.
debian@beaglebone:~$ ifconfig
eth0: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC> mtu 1500
inet 192.168.0.220 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::564a:16ff:fee5:e79d prefixlen 64 scopeid 0x20<link>
ether 54:4a:16:e5:e7:9d txqueuelen 1000 (Ethernet)
RX packets 79 bytes 9988 (9.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 458 bytes 85028 (83.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 181
lo: flags=73<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 180 bytes 14118 (13.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 180 bytes 14118 (13.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.7.2 netmask 255.255.255.252 broadcast 192.168.7.3
inet6 fe80::564a:16ff:fee5:e79f prefixlen 64 scopeid 0x20<link>
ether 54:4a:16:e5:e7:9f txqueuelen 1000 (Ethernet)
RX packets 740 bytes 79447 (77.5 KiB)
RX errors 0 dropped 4 overruns 0 frame 0
TX packets 525 bytes 97473 (95.1 KiB)
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 broadcast 192.168.6.3
ether 54:4a:16:e5:e7:a2 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
답변1
문제는 connman이 내 컴퓨터에서 실행되고 있다는 것 같습니다. 내 구성을 무시하고 자체 항목을 삽입했습니다. connman을 제거한 후 모든 것이 예상대로 작동합니다.