저는 네트워킹에 관한 모든 것을 처음 접했습니다. MOXA-UC-8112 게이트웨이가 있고 네트워크에 연결하려고 합니다. 게이트웨이에는 Debian 9가 내장되어 있습니다. LAN의 eth0 인터페이스가 제대로 작동합니다. 이제 eth1 인터페이스를 WAN에 연결하려고 합니다.
이것은 내 구성 파일 /etc/network/interfaces입니다.
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto eth0 eth1 lo
iface lo inet loopback
iface eth0 inet static
address 172.AAA.AAA.AAA
network 172.BBB.BBB.BBB
netmask 255.CCC.CCC.CCC
gateway 172.DDD.DDD.DDD
iface eth1 inet static
address 176.AAA.AAA.AAA
network 176.BBB.BBB.BBB
netmask 255.EEE.EEE.EEE
gateway 176.DDD.DDD.DDD
다음은 IP 경로의 출력입니다.
default via 172.DDD.DDD.DDDdev eth0 onlink
172.BBB.BBB.BBB/CC dev eth0 proto kernel scope link src 172.AAA.AAA.AAA
176.BBB.BBB.BBB/EE dev eth1 proto kernel scope link src 176.AAA.AAA.AAA
이 두 인터페이스를 구성한 후 네트워크 서비스를 다시 시작해 보았습니다. 이것은 RTNETLINK 오류 메시지가 도착할 때입니다.
Mar 21 09:02:27 XXXX ifup[1981]: RTNETLINK answers: File exists
Mar 21 09:02:27 XXXX ifup[1981]: ifup: failed to bring up eth1
Mar 21 09:02:27 XXXX systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Mar 21 09:02:27 XXXX systemd[1]: Failed to start Raise network interfaces.
ifup을 사용할 때 이 오류가 발생합니다.
ifup -v eth1
ifup: reading directory /etc/network/interfaces.d
ifup: configuring interface eth1=eth1 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/ifenslave
+ [ inet = meta ]
+ IF_BOND_SLAVES=
+ [ ]
+ [ ]
+ [ -z ]
+ exit
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
/bin/ip addr add 176.AAA.AAA.AAA/255.EEE.EEE.EEE broadcast 176.XXX.XXX.XXX dev eth1 label eth1
RTNETLINK answers: File exists
ifup: failed to bring up eth1
ifdown을 사용할 때 또 다른 오류가 발생합니다.
ifdown -v eth1
ifdown: reading directory /etc/network/interfaces.d
ifdown: interface eth1 not configured
나는 그것을 모두 시도했습니다 : sudo ip addrlush dev eth1, sudo ifdown eth1 && sudo ifup eth1, nano /run/network/ifstate restart ...
답변1
문제는 /etc/interfaces
.
ip route
프로그램
default via 172.DDD.DDD.DDDdev eth0 onlink
이는 시스템이 이 인터페이스를 통해 인터넷에 액세스하려고 시도한다는 의미입니다. eth1
WAN 링크의 방식이 아닙니다 . 기본 경로는 다음 다음 홉 라우터를 가리켜야 합니다 eth1
.
내부 네트워크 와 마찬가지로 eth0
다른 장치와 동일한 네트워크에 있어야 하므로 게이트웨이가 필요하지 않습니다. 동일한 서브넷에 있는 모든 장치는 서로 직접 통신할 수 있습니다. 게이트웨이 라우터는 서브넷과의 트래픽 전달에만 사용됩니다.
구성에서 게이트웨이를 주석 처리하거나 삭제 eth0
하면 됩니다 .
여전히 같은 메시지가 나타나면 명령을 실행 ip addr flush dev eth0
한 ip addr flush dev eth1
후 다시 시도하세요 ifup
.