web-dev-qa-db-ja.com

TCハッシュフィルター-単一ルールの削除

トラフィックシェーピングには、現在、このページのLARTCのセットアップとまったく同じように見えるセットアップを使用しています。

http://lartc.org/howto/lartc.adv-filter.hashing.html

単純な問題があります。ハッシュテーブル内の何かを変更するたびに(IPを別のフローIDに割り当てるなど)、フィルターテーブル全体を削除して、フィルターごとに再度追加する必要があります。 (私は実際には手作業でそれをしません、私は私のためにそれをする素晴らしいプログラムを持っています...しかしそれでも...)問題があります-私はこの方法で約1万のフィルターを割り当て、フィルターテーブル全体を削除して補充しましたかなり長くなる可能性がありますが、これはトラフィックシェーピングには適していません。私のプログラムは、削除する必要のあるルールのみを簡単に削除できます(したがって、問題全体を数コマンドとミリ秒に減らすことができます)が、1つのハッシュルールのみを削除するコマンドがわかりません。

私のtcフィルターショー:

filter parent 1: protocol ip pref 1 u32 
filter parent 1: protocol ip pref 1 u32 fh 2: ht divisor 256 
filter parent 1: protocol ip pref 1 u32 fh 2:a:800 order 2048 key ht 2 bkt a flowid 1:101 
  match 0a0a0a0a/ffffffff at 16
filter parent 1: protocol ip pref 1 u32 fh 2:c:800 order 2048 key ht 2 bkt c flowid 1:102 
  match 0a0a0a0c/ffffffff at 16
filter parent 1: protocol ip pref 1 u32 fh 800: ht divisor 1 
filter parent 1: protocol ip pref 1 u32 fh 800::800 order 2048 key ht 800 bkt 0 link 2: 
  match 00000000/00000000 at 16
    hash mask 000000ff at 16 

願い: 'tc filter del ...'コマンドを削除します1つだけ特定のフィルター(たとえば、0a0a0a0a IP一致(IPアドレス10.10.10.10)) )。いくつかの小さなサブグループを削除することもできます。たとえば、バケット(bkt a)をかなり高速に再作成できます。

私の試み:prioを使用してすべてのフィルターに番号を付けようとしましたが、助けにはなりませんでした。以下に使用できない(ただし削除可能な)ものが作成されるだけですが、バケット化されたフィルターは削除された後もそこに残ります。

何か案は?


編集-私は問題の簡略化されたtl; drの説明を追加しています:

  1. 私はこのようにいくつかのインターフェースでハッシュフィルターを作成しました http://lartc.org/howto/lartc.adv-filter.hashing.html

  2. テーブルから1つのルール(1.2.1.123など)を削除し、残りはそのままにして機能させるコマンドを見つけたいと思います。

3
exa

私はこれが古い投稿であることを知っていますが、私はこれを使用していて、うまく機能しているようです:

フィルタを追加します。

tc filter add dev eth1 parent 1: handle ::100 prio 1 protocol ip u32 match ip dst 10.10.10.10/32 flowid 1:100

フィルタを削除します。

tc filter del dev eth1 parent 1: handle 800::100 prio 1 protocol ip u32

必要なフィルターごとに「100」という数字を変更するだけです

3
Jak

次のコマンドを試しましたが、機能しているようです。

$ Sudo tc filter delete dev eth1 protocol ip parent 1: prio 1 u32 match ip src 10.10.10.10 flowid 1:2

同じコマンドが、Word addの後のreplacedelete、およびfilterオプションで機能しました。

0
Khaled