Red Hat Training

A Red Hat training course is available for RHEL 8

第42章 DDoS 攻撃を防ぐために、高パフォーマンストラフィックのフィルタリングで xdp-filter を使用

nftables と比べて、Express Data Path (XDP) は、パネットワークインターフェイスでネットワークパケットを処理して破棄します。したがって、XDP は、ファイアウォールやその他のアプリケーションに到達する前に、パッケージの次のステップを決定します。その結果、XDP フィルターは必要なリソースが少なく、DDoS (Distributed Denial of Service) 攻撃に備えるために、従来のパケットフィルターよりもはるかに高いレートでネットワークパケットを処理できます。たとえば、テスト時に、Red Hat は、1 つのコア上で 1 秒あたり 26 のネットワークパケットを破棄します。これは、同じハードウェアの nftables ドロップレートよりもはるかに高くなります。

xdp-filter ユーティリティーは、XDP を使用して着信ネットワークパケットを許可または破棄します。特定のトラフィックに対するトラフィックのフィルターを行うルールを作成できます。

  • IP アドレス
  • MAC アドレス
  • ポート

xdp-filter にパケット処理速度が大幅に高くなりますが、nftables など、nftables は同じ機能がないことに注意してください。XDP を使用したパケットのフィルタリングを例示します。xdp-filter は、XDP を使用したパケットのフィルタリングを実証します。また、独自の XDP アプリケーションを作成する方法を理解するために、ユーティリティーのコードを使用できます。

重要

AMD および Intel 64 ビット以外のアーキテクチャーでは、xdp-filter ユーティリティーはテクノロジープレビュー機能としてのみ提供されます。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビュー機能では、最新の製品機能をいち早く提供します。これにより、お客様は開発段階で機能をテストし、フィードバックを提供できます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。

42.1. xdp-filter ルールに一致するネットワークパケットの削除

xdp-filter を使用して、ネットワークパケットをドロップできます。

  • 特定の宛先ポートへの特定の宛先ポート
  • 特定の IP アドレスの使用
  • 特定の MAC アドレスの使用

xdp-filterallow ポリシーは、すべてのトラフィックが許可され、フィルターが特定のルールに一致するネットワークパケットのみをドロップするように定義します。たとえば、ドロップするパケットのソース IP アドレスを知っている場合は、この方法を使用します。

前提条件

  • xdp-tools パッケージがインストールされている。
  • XDP プログラムをサポートするネットワークドライバー。

手順

  1. xdp-filter を読み込み、enp1s0 などの特定のインターフェイスの着信パケットを処理します。

    # xdp-filter load enp1s0

    デフォルトでは、xdp-filterallow ポリシーを使用し、ユーティリティーはすべてのルールに一致するトラフィックのみを破棄します。

    オプションで、-f feature オプションを使用して、tcpipv4ethernet などの特定の機能のみを有効にします。すべての機能をロードするのではなく、必要な機能のみをロードすることで、パケット処理の速度が向上します。複数の機能を有効にするには、コンマで区切ります。

    コマンドがエラーで失敗した場合、ネットワークドライバーは XDP プログラムをサポートしません。

  2. ルールを追加して、それに一致するパケットをドロップします。以下に例を示します。

    • 受信パケットをポート 22 に破棄するには、次のコマンドを実行します。

      # xdp-filter port 22

      このコマンドは、TCP および UDP トラフィックに一致するルールを追加します。特定のプロトコルのみと一致する場合は、-p protocol オプションを使用します。

    • 192.0.2.1 から着信パケットを破棄するには、次のコマンドを実行します。

      # xdp-filter ip 192.0.2.1 -m src

      xdp-filter は IP 範囲に対応していないことに注意してください。

    • MAC アドレス 00:53:00:AA:07:BE から着信パケットを破棄するには、次のコマンドを実行します。

      # xdp-filter ether 00:53:00:AA:07:BE -m src

検証

  • 以下のコマンドを使用して、破棄されたパケットおよび許可されるパケットに関する統計を表示します。

    # xdp-filter status

関連情報

  • xdp-filter(8) の man ページ
  • 開発者であり、xdp-filter のコードに関心がある場合は、Red Hat カスタマーポータルから対応するソース RPM (SRPM) をダウンロードしてインストールします。