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
答え2
ifmetric
変更するパスが通過するインターフェイスを考慮して、パスメトリックを動的に変更できます。
使用法
ifmetric <iface> [<metric>]
たとえば、ifmetric tun0 12
通過したすべてのルートの指標を12に変更しますtun0
。
答え3
答え4
以下のようにnmcliを介して実行できます。
nmcli connection modify ACTUAL_CONNECTION_NAME ipv4.route-metric 100
nmcli connection up ACTUAL_CONNECTION_NAME