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

これら2つのインターフェイスを設定した後、ネットワークサービスを再起動してみました。これは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 eth0やり直しip addr flush dev eth1てくださいifup

関連情報