linuxの既存のルートエントリのメトリックを変更するコマンドは何ですか?以下のように「ip route change」コマンドを使用して既存のエントリのゲートウェイを変更できますが、メトリックを変更できません。そのための他のコマンドはありますか?
route –n
40.2.2.0 30.1.3.2 255.255.255.0 eth2
ip route change 40.2.2.0/24 via 30.1.2.2
route -n
40.2.2.0 30.1.2.2 255.255.255.0 eth1
(さまざまなコメントを回答に結合)
現在、ルートのメトリックを変更することはできません。 LKML状態に関する2005年のメッセージ :
[...]一致するフィールドと新しい値の個別のフィールドがないため、メトリック/優先度は変更できません。メトリックを指定した場合、エントリが見つからず、NLM_F_CREATEにより要求がENOENTで失敗します。指定されていません。これは現在のプロトコルの制限であり、これを変更することは良い考えかもしれませんが、それは簡単ではありません[...]
これは両方に当てはまるようですip route change
およびip route replace
-前者は私にとってエラーになりますが、後者はアドバタイズされた追加のルートを作成します(そのマニュアルページには、replace
がまたはルートを作成します)。これは、カーネルがENOENTで応答することと一貫しており、ip route replace
ルート作成リクエストをフォローアップしています。
したがって、解決策は、既存のルートを削除して新しいルートを追加することです。例えば.
ip route del 40.2.2.0/24 via 30.1.2.2
ip route add 40.2.2.0/24 via 30.1.2.2 metric 1234
ifmetric
変更したいルートが通過するインターフェースを前提として、オンザフライでルートメトリックを変更できます。
ifmetric <iface> [<metric>]
たとえば、ifmetric tun0 12
を通過するすべてのルートのメトリックを12に変更するにはtun0
。