Linux(Ubuntu) で複数NICを指している場合に、ネットワーク経路の優先度を指定する

ALL
スポンサーリンク

Linux で複数NICを指している場合に、ネットワーク経路の優先度を指定するコマンドです。
ifmetric を使います。

Ubuntu では次のコマンドでインストールします。

apt-get install ifmetric

次の書式で実行します。
メトリック値が小さいルートが、優先経路となります。

ifmetric インタフェース名 メトリック値

例えば、次のような場合、インタフェース enx803ebbdf3748 の経路を enp1s0 より優先させたいとします。

# route
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
default         _gateway        0.0.0.0         UG    101    0        0 enp1s0
default         _gateway        0.0.0.0         UG    20100  0        0 enx803ebbdf3748
10.8.2.128      0.0.0.0         255.255.255.192 U     100    0        0 enx803ebbdf3748
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 enx803ebbdf3748
192.168.1.0     0.0.0.0         255.255.255.0   U     101    0        0 enp1s0
192.168.4.0     0.0.0.0         255.255.255.0   U     101    0        0 enp1s0

上の routeコマンドの実行結果では enp1s0 のメトリック値は 101 なので、それより小さいメトリック値を enx803ebbdf3748 に指定します。

# ifmetric enx803ebbdf3748 99

これで、enx803ebbdf3748 の方が優先経路となります。

# route
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
default         _gateway        0.0.0.0         UG    99     0        0 enx803ebbdf3748
default         _gateway        0.0.0.0         UG    101    0        0 enp1s0
10.8.2.128      0.0.0.0         255.255.255.192 U     99     0        0 enx803ebbdf3748
link-local      0.0.0.0         255.255.0.0     U     99     0        0 enx803ebbdf3748
192.168.1.0     0.0.0.0         255.255.255.0   U     101    0        0 enp1s0
192.168.4.0     0.0.0.0         255.255.255.0   U     101    0        0 enp1s0

コメント

  1. 通りかかりのもの より:

    しばらくすると戻ってしまいません?当方RaspberryPi4[Raspbian GNU/Linux 10 (buster)]でこの設定をしたんですがしばらくすると戻ってしまうんですよね。。

  2. パソコン鳥 より:

    Ubuntu 20.04でしたが、1か月以上動作させていても戻ることはありませんでした。
    代替案ですが、指定の接続(NIC)がデフォルトルートにならないように指定するのはどうでしょう。次の記事の内容で設定できます。

    Ubuntu でデフォルトルートが勝手に変わるのを防止する
    https://pcvogel.sarakura.net/2021/09/15/32856