2013-10-29 16 views
7

最近、高度なルーティング用のコマンドとしてip routeコマンドを使用し始めました。今私は私に困惑している何かを見つけました。テーブルに追加されたデフォルトルートは簡単に削除され、別のルートは残っています。今私がしなければip route delはテーブル全体を削除しません

ip route add dev wlan0 default via 192.168.0.1 table 21 
ip route add dev wlan0 192.168.0.0/24 table 21 

は、私はこれらの2つのルールを追加し

ip route show table 21 

私は現在、これらの規則の両方を参照してください。

default via 192.168.0.1 dev wlan0 
192.168.0.0/24 dev wlan0 scope link 

私は、テーブル21を削除しようとすると、再度表示される場合:

ip route del table 21 
ip route show table 21 

残り、そのルールがまだあります。

192.168.0.0/24 dev wlan0 scope link 

誰でもこれを説明できますか? manページによれば、delはテーブルを含むROUTEを削除するように設計されています。

答えて

7

を@ user3291010はすでに次のコマンドを使用し、テーブル全体を削除するには、指摘したように:

このコマンドは、テーブル21を削除します。

ip route flush table 21 

試したコマンドは、特定のルールをテーブルから削除するために使用されます。プレフィックスを一致させたいプレフィックスを指定しなかった場合、最初のエントリが削除されました。これがデフォルトルートになりました。 2番目のエントリ、およびだけで2番目のエントリを削除するには

、次のコマンドを実行することができます:

ip route delete table 21 192.168.0.0/24 

私の知る限りでは、deleteコマンドを使用してすべてのエントリを削除する方法はありません。

3

多分試してみてください。

ip route flush table 21 
+0

これは間違いなく機能しますが、私はそれを知っています。私は、なぜこの単一のルールがdeleteコマンドを発行した後にそこに残るべきなのか不思議に思っていました。 –

+0

私が誤っていない(マニュアルページが少し不透明な)場合、ip route del ROUTEはルートを削除します。 ROUTEが複数のルートと一致する場合は、最初に一致するルートを削除すると考えられます。一致するすべてのルートやテーブルは削除されません。 –

関連する問題