RTNETLINK 답변: 파일이 존재합니다. 하나의 인터페이스를 LAN에 연결하고 다른 인터페이스를 WAN에 연결하는 방법은 무엇입니까?

RTNETLINK 답변: 파일이 존재합니다. 하나의 인터페이스를 LAN에 연결하고 다른 인터페이스를 WAN에 연결하는 방법은 무엇입니까?

저는 네트워킹에 관한 모든 것을 처음 접했습니다. 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

이는 시스템이 이 인터페이스를 통해 인터넷에 액세스하려고 시도한다는 의미입니다. eth1WAN 링크의 방식이 아닙니다 . 기본 경로는 다음 다음 홉 라우터를 가리켜야 합니다 eth1.

내부 네트워크 와 마찬가지로 eth0다른 장치와 동일한 네트워크에 있어야 하므로 게이트웨이가 필요하지 않습니다. 동일한 서브넷에 있는 모든 장치는 서로 직접 통신할 수 있습니다. 게이트웨이 라우터는 서브넷과의 트래픽 전달에만 사용됩니다.

구성에서 게이트웨이를 주석 처리하거나 삭제 eth0하면 됩니다 .

여전히 같은 메시지가 나타나면 명령을 실행 ip addr flush dev eth0ip addr flush dev eth1후 다시 시도하세요 ifup.

관련 정보