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


11

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

これは、ifconfigコマンドを使用してIPアドレスを編集するコマンドを含むWebサイトページです。私は頭の上のすべてのコマンドを知っているわけではありませんが、うまくいけばこのページがあなたを助けるでしょう。tecmint.com/ifconfig-command-examples
Nicholas Awesomepants 2015年

1
ルートを削除してから再度追加します。ただし、lkml.iu.edu
hypermail /

回答:


7

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

これは、route次のコマンドを使用して行われます。

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

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


4
問題は、特定のメトリックを持つルートを追加する方法ではありませんでした。OPは、(ルートを削除して再度追加することなく)既存のルートのメトリックを変更したいと考えていました。
アンドラーシュKornシェル

4
指標を変更できないことを示すメールにリンクしている質問のコメントをまだ読んでいないことは明らかですThe metric/priority cannot be changed [...] This is a limitation of the current protocol[...]。唯一の方法は、ルートを削除して新しいルートを追加することです。

7
指標は変更できないことを知っています。あなたの答えはまだ質問に答えていません-おそらく答えで、メトリックはルートを削除して再度追加することによってのみ変更できることを指摘しますか?
アンドラーシュKornシェル

16

(さまざまなコメントを回答に結合)

現在、ルートのメトリックを変更することはできません。LKML状態で2005のメッセージ

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

これは、両方に適用されているようだip route changeし、ip route replace後者は広告を出して(そのmanページの状態として追加ルートを作成しながら、私のためにエラーに元の結果- 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について言い続けているように:これはNIH(ここで発明されたものではない)シンドロームで進化しつつあります...
Hvisage

@Hvisageは詳しく説明できますか?メトリックを削除せずに変更できるツールはありますか?
Braiam

:のように、負である@Braiam NOようなツールが存在しません。答えに従って。あなたは私のブライアン・キャントリルの引用を参照する場合、それは私が信じてどこかだったyoutube.com/watch?v=wTVfAMRj-7E
Hvisage

2

ifmetric 変更したいルートが通過しているインターフェースを指定すると、ルートメトリックをオンザフライで変更できます。

使用法

ifmetric <iface> [<metric>]

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


4
こんにちは!質問が求める結果を得るためにコマンドを使用する方法の実用的な例を示すのが最善です。
dhag

はい、そうです。ありがとう。
AeroClassics
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.