インターフェイスの実行時にデフォルトパスが追加されるのを防ぐことはできますか?

インターフェイスの実行時にデフォルトパスが追加されるのを防ぐことはできますか?

私のシステムには2つのネットワークカードがあります。他のLANに接続したり、ダイヤルアップ接続を使用したりする場合があります。

    eth0:
    - 10.x.x.x address space
    - no internet gateway
    - only a few devices

eth1 (when used):
- 172.16.x.x or 192.168.x.x or other address spaces
- access to the gateway from LAN to internet

ppp0 (when used):
- internet access through dialup using KPPP

私はifconfigを使用してインターフェイスを起動または停止します(KPPPが処理するppp0を除く)。

eth1を最初に起動すると、DHCPからアドレスを取得し、ゲートウェイをインポートしてルーティングに追加し、問題なくLANとインターネットにアクセスできます。

eth0を最初または2番目に開始すると、そのアドレスを取得し、そのアドレススペース(10.xxxの範囲)内にデフォルトゲートウェイを設定します。 eth0 を最初に起動してから eth1 を起動すると、デフォルトゲートウェイは 10.xxx の範囲にとどまります。

したがって、私が何をしても、eth0はeth1をオーバーライドし、パスからゲートウェイを「要求」します。

eth0がゲートウェイを要求するのを防ぐか、eth1(2番目の場合)がゲートウェイを使用しているかどうかを確認する方法はありますか?それとも、どのインターフェイスのゲートウェイを他のインターフェイスよりも使用する必要があるのか​​を優先できますか?

デフォルトでは、eth1のデフォルトアドレス空間ゲートウェイが有効になっていることを確認します。そうでない場合は、ppp0のデフォルトゲートウェイを使用したいと思います。 eth0がデフォルトゲートウェイを持つのを防ぎたいと思います。

ベストアンサー1

Raspbianでも同様の問題がありました(以下の解決策はDebianでも動作するようです)。 Raspberry Pi 3には、Wi-FiとEthernetという2つのNICが統合されています。私はそれぞれwlan0とeth0を使います。 wlan0は私の家のWi-Fiネットワークに接続されており、このインターフェースを介してインターネットにアクセスします。 DHCP経由で私のホームルーターから設定を取得します。 eth0は私のWindows PCに直接接続されています変化のないIPが割り当てられました。 Windows PCで構成されていないため、eth0を介してインターネットにアクセスできません。

Raspbianでは、dhcpcdデーモンはネットワークインタフェースの設定を担当します。 eth0インターフェイスに静的IPを設定するには、最後に次の行を追加します/etc/dhcpcd.conf

interface eth0

static ip_address=192.168.2.2/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1

この設定では、dhcpcdは2つのデフォルトパスを作成し、eth0を介したパスはwlan0を介したパスよりも優先順位が高くなります。

pi@raspberrypi:~ $ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.2.1     0.0.0.0         UG    202    0        0 eth0
default         192.168.1.254   0.0.0.0         UG    303    0        0 wlan0
192.168.1.0     *               255.255.255.0   U     303    0        0 wlan0
192.168.2.0     *               255.255.255.0   U     202    0        0 eth0

したがって、システムはeth0を介してルーティングしようとしますが、上記のようにインターネットにアクセスできないため、インターネットにアクセスできません。

この問題を解決するために、eth0インターフェイスのnogatewayオプションを使用しました。/etc/dhcpcd.confしたがって、eth0 固有の構成は次のように始まります。

interface eth0

static ip_address=192.168.2.2/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1
nogateway

この設定を保存して再起動した後、eth0を介したデフォルトパスはありません。

pi@raspberrypi:~ $ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.254   0.0.0.0         UG    303    0        0 wlan0
192.168.1.0     *               255.255.255.0   U     303    0        0 wlan0
192.168.2.0     *               255.255.255.0   U     202    0        0 eth0

インターネットが表示され、問題が解決しました。

おすすめ記事