GNU/Linux >> Linux の 問題 >  >> Linux

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

(さまざまなコメントを回答にまとめる)

現在、ルートのメトリックを変更することはできません。 LKML に関する 2005 年のメッセージには次のように記載されています。

<ブロック引用>

[...] 一致するフィールドと新しい値の個別のフィールドがないため、メトリック/優先度を変更できません。したがって、メトリックを指定すると、エントリが単に見つからず、リクエストは ENOENT で失敗します。NLM_F_CREATE のためです。は指定されていません。これは現在のプロトコルの制限であり、これを変更することをお勧めしますが、それは簡単ではありません [...]

これは 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

質問へのコメントに記載されているように、linux-net メーリング リストのメッセージを引用すると、「メトリック/優先度は変更できません [...] これは現在のプロトコルの制限です [...]」。
唯一の方法は、ルートを削除して新しいルートを追加することです。

これは route を使用して行われます コマンド、例:

sudo route add -net default gw 10.10.0.1 netmask 0.0.0.0 dev wlan0 metric 1

route コマンドの Debian マンページ


ifmetric 変更したいルートが通過するインターフェイスを考慮して、その場でルート メトリックを変更できます。

使い方

ifmetric <iface> [<metric>]

たとえば、ifmetric tun0 12 を使用します tun0 を通過するすべてのルートのメトリックを 12 に変更するには .


Linux
  1. Linux man page データベースにエントリを追加する方法

  2. Linux はマウント ポイント内の既存のファイルに対して何をしますか?

  3. Linux では、メトリックのないルートを持つメトリックはどれですか?

  1. RHEL7Linuxで新しい静的ルートを追加する方法

  2. Linuxで静的IPアドレスを設定してルーティングテーブルを変更する方法

  3. Linux - デフォルトルートのヒットを見つける

  1. 既存のLinuxサーバーに新しいディスクを追加する方法

  2. Linuxで既存のセッションをログオフします

  3. IP ルーティング:Linux ルート フラグ (U – アップ、G – ゲートウェイ、H – ホスト)