tc を使用して、1 つの IP を除くすべてのトラフィックの速度を制限します。

tc を使用して、1 つの IP を除くすべてのトラフィックの速度を制限します。

現在、ポート 22 のトラフィックを制限する次の規則があります。これはすべてのトラフィックに適用されますが、1つのIP(xxxxなど)には適用したくありません。どうすればいいですか?したがって、トラフィックがxxxxとポート22で発生する場合は、速度制限はありません。

        tc filter add dev eth1 parent ffff: protocol ip u32 \
              match ip sport 22 0xffff  \
              police rate 800kbit burst 24000 drop flowid :1

答え1

そのIPを空のIPに一致させるフィルタを追加できます。行動これは、追加のフィルタリングなしでパケットを「通過」として分類します。優先順位を指定しないと順序を推測できないため、両方のフィルタ優先順位(別名プリオまたは好み) 置く。したがって、IP 192.0.2.10をレート制限から除外するには、フィルタを次の2つに置き換えることができます。

tc filter add dev eth1 parent ffff: protocol ip priority 1 \
   u32 match ip src 192.0.2.10 action pass
tc filter add dev eth1 parent ffff: protocol ip priority 2 \
   u32 match ip sport 22 0xffff action police rate 800kbit burst 24000 drop flowid :1

気づく警察やはりアクションですが、アクションキーワードはオプションです(一方渡すオプション)。

それでも状況に応じて、受信トラフィックをポリシー化(削除)するのではなく、送信トラフィックにシェーピング(削除前の遅延)を使用することを検討する必要があります。これにより、パケットのパフォーマンスが向上します(回線での重複防止)。滴)。

関連情報