複数のポートにTCミラーリングを使用しますか?

複数のポートにTCミラーリングを使用しますか?

TCを使用して1つのソースインターフェイスから複数のインターフェイスにミラーリングすることが可能かどうかを知っていますか?私は次のことをしました。

  1. 私が最初にしたことは、入力インターフェイスに受信キューを作成することでした。tc qdisc add dev e101-001-0 handle ffff: ingress
    1. qdiscを削除する必要がある場合は、次のものを使用できます。tc qdisc del dev e101-001-0 [ root | ingress ]
  2. キューをもう一度確認してください。対応するハンドル ffff は、以下を使用して作成されました。tc -s qdisc ls dev e101-001-0
  3. 次に、受信ポートから送信ポートにすべてのトラフィックをミラーリングしようとしています。tc filter add dev e101-001-0 parent ffff: protocol all u32 match u32 0 0 action mirred egress mirror dev e101-005-0
  4. ポートミラーリングが設定に表示されることを確認します。tc -s -p filter ls dev e101-001-0 parent ffff:
    1. フィルタを削除する必要がある場合は、次のものを使用できます。tc filter del dev e101-001-0 parent ffff:
  5. トラフィックを調整しないようにキューを設定するtc qdisc add dev e101-001-0 handle 1: root prio

これにより、1つのインターフェイスに出力できますが、新しいインターフェイスに別のフィルタを追加すると、最初のインターフェイスでトラフィックの受信が中断され、すべてのトラフィックが新しいインターフェイスに送信されることがわかりました。

答え1

最高のユーザー活動パケットの追加処理を変更するために制御演算子を追加できます。

CONTROL
CONTROLは、タスクの実行後にtcがどのように続行されるかを示します。次のいずれかが有効です。

reclassify は、
ジョブの親項目に関連付けられた最初のフィルターに戻り、分類を再開します。

管路
次の手順に進みます。これが基本的なコントロールです。

dropは
追加の操作を実行せずに圧縮コンテンツを削除します。

続ける
次のフィルタを使用して並べ替えます。

passは
パケット処理のためにqdisc呼び出しに戻り、パケット分類を終了します。

フィルタが一致した後、フィルタは評価されなくなったようです。

簡単にできること:

  • あなたは組み合わせることができます(管路)同じフィルタに対する複数のタスク(2番目のミラーインターフェイスが呼び出されると仮定)e101-006-0):

    tc filter add dev e101-001-0 ingress u32 match u32 0 0 action mirred egress mirror dev e101-005-0 pipe action mirred egress mirror dev e101-006-0
    
  • 逆に、複数のフィルタを接続することもできます(作業続けるコントロール)。それでは明らかです。優先順位/優先順位フィルタの順序が重要であるため、提供する必要があります。次のタスクを含むフィルタ続けるコントロールを最初に評価する必要があります。

    tc filter add dev e101-001-0 ingress pref 1 u32 match u32 0 0 action mirred egress mirror dev e101-005-0 continue
    tc filter add dev e101-001-0 ingress pref 2 u32 match u32 0 0 action mirred egress mirror dev e101-006-0
    

    たとえば、2つのタスク間で異なるフィルタを使用したい場合(たとえば、1つは一致する可能性があります)プロトコルIPもう一つプロトコルIPv6)。

答え2

これは回避策でしたが、実際には同じことをする橋にトラフィックをルーティングできることに気づきました。それでもより良い提案を受けることができます。

関連情報