Linuxで既存のルーティングエントリを変更する

Linuxで既存のルーティングエントリを変更する

Linuxで既存のパスエントリのメトリックを変更するコマンドは何ですか?以下のように、「ip path 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

ベストアンサー1

(様々な意見を回答でまとめる)

現在、ルートの指標を変更することはできません。として2005年、LKML関連ニュースが発表されました:

[...]フィールドと新しい値に一致する別のフィールドがないため、指標/優先順位を変更できません。したがって、指標を指定するとエントリがまったく見つからず、次のような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

おすすめ記事