HTTPRouteフィルターによるトラフィック管理機能の強化

最終公開日 : Oct 02, 2026
NetScaler® Kubernetes Gatewayコントローラーは、Kubernetes Gateway APIで定義されているHTTPRouteフィルターをサポートしています。この機能により、HTTPRouteリソース内で直接、高度なトラフィック操作ロジックを実装できます。フィルターを活用することで、リクエストとレスポンスを変更し、ヘッダー操作、URL書き換え、リクエストリダイレクトなど、幅広いユースケースを実現できます。

extensionRefを使用したNetScaler CRDとの統合

NetScaler Ingress Controller (NSIC) のカスタムリソース定義 (CRD) は、HTTPRouteフィルター内のextensionRefフィールドを介して参照できます。この強力な機能により、高度なNetScaler機能をGateway API構成に直接シームレスに統合できます。
extensionRefを介して参照できるNSIC CRDには、rewritepolicy、ratelimit、bot、waf、appqoepolicy があります。

参照例

rules:
  - filters:
      - type: ExtensionRef
        extensionRef:
          group: "citrix.com"
          kind: "<crd-kind>"
          name: "<crdinstance-name>"
注:
  • CRDインスタンスはサービス名なしで作成する必要があります。
  • HTTPRouteフィルターのextensionRefの場合、グループは常に「citrix.com」であり、種類はNetScaler CRDタイプに対応します。有効な種類には、bot、waf、rewritepolicy、ratelimit、およびappqoepolicyが含まれます。
特殊な処理のために、以下のNSIC CRDを参照できます。
  • ボット管理 (BOT): NetScalerがサポートする高度なボット検出および軽減技術を適用することで、悪意のあるボットトラフィックからアプリケーションを保護します。
  • Webアプリケーションファイアウォール (WAF): NetScalerがサポートする堅牢なWAF機能を統合してトラフィックを検査し、既知の攻撃やゼロデイ攻撃をブロックすることで、アプリケーションを保護します。
  • 書き換えポリシー: NetScalerの豊富な書き換えポリシーエンジンを使用することで、標準のGateway APIフィルターを超える高度なリクエストおよびレスポンスの書き換えルールを適用します。
  • レート制限: 受信リクエストのレートを管理するポリシーを適用し、アプリケーションが過負荷になるのを防ぎます。
  • AppQoeポリシー: さまざまな基準に基づいてトラフィックを優先または制限するポリシーを適用し、重要なアプリケーションの最適なパフォーマンスとリソースの公平な割り当てを保証します。
extensionRefメカニズムは、Kubernetes Gateway API を使用してトラフィック管理を行いながら、NetScaler の広範な機能セットを活用できるようにする橋渡し役として機能します。

標準 HttpRoute API フィルターのネイティブサポート

NetScaler Kubernetes Gateway Controller は、HTTPRoute フィルターのサポートに基づいて、以下の標準 Gateway API フィルターをネイティブに実装しています。

URL書き換え

リクエストがバックエンドサービスに転送される前に、リクエストのパスまたはホスト名を変更します。このフィルターは、ユーザー向け URL を内部サービスパスにマッピングしたり、公開 URL を変更せずにサービスを移行したりするのに役立ちます。
例: /old-path を /new-path に書き換えたり、リクエストのホスト名を変更したりします。
- filters:
    - type: URLRewrite
      urlRewrite:
        path:
          type: ReplacePrefixMatch
          replacePrefixMatch: /new-path
  matches:
    - path:
        type: PathPrefix
        value: /old-path
# Rewrite /old-path/rest-of-the-url to /new-path/rest-of-the-url

RequestHeaderModifier および ResponseHeaderModifier

受信リクエストまたは送信レスポンスの HTTP ヘッダーを追加、設定、または削除します。このフィルターは、トレース情報の挿入、セキュリティヘッダーの設定、キャッシュ制御ディレクティブの変更など、さまざまな目的に使用できます。
例: X-Forwarded-Proto ヘッダーを追加したり、レスポンスから内部専用ヘッダーを削除したりします。
rules:
  - filters:
      - type: RequestHeaderModifier
        requestHeaderModifier:
          add:
            - name: X-Forwarded-Proto
              value: http
          remove:
            - Proxy-Authenticate
      - type: ResponseHeaderModifier
        responseHeaderModifier:
          set:
            - name: X-Cache
              value: HIT
          remove:
            - Server
# Add 'X-Forwarded-Proto' and Remove 'Proxy-Authenticate' in request send to the backend.
# Set/Replace 'X-Cache' header value and Remove 'Server' header in response sent back to the client

RequestRedirect

HTTP 3xx リダイレクトレスポンスを発行し、ユーザーを異なる URL にリダイレクトしたり、HTTPS を強制したり、移動したコンテンツを適切に管理したりします。
例: HTTP トラフィックを HTTPS にリダイレクトしたり、非正規ホスト名を正規ホスト名にリダイレクトしたりします。
rules:
    filters:
    - type: RequestRedirect
      requestRedirect:
        path:
          type: ReplacePrefixMatch
          replacePrefixMatch: /new-path
        statusCode: 301
# Redirect Client request to /new-path with 301 status

RequestMirror

リクエストのコピーを異なるバックエンドサービスに送信します。これはトラフィックシャドウイングに非常に役立ちます。このフィルターを使用すると、クライアントの応答に影響を与えることなく、新しいサービスバージョンのテスト、分析の実行、問題のデバッグを行うことができます。ミラーリングされたバックエンドからの応答は無視されます。
注:
複数のミラーバックエンドを指定できます。ただし、ルールごとにトラフィックミラーリングの割合または分数設定は1つのみが尊重されます。
例: リアルタイムのパフォーマンスインサイトを得るために、本番トラフィックを監視および分析サービスにミラーリングする。
rules:
  - matches:
      - path:
          type: PathPrefix
          value: /webapp
    filters:
      - type: RequestMirror
        requestMirror:
          percent: 80
          backendRef:
            name: traffic-monitoring-service
            port: 8080
      - type: RequestMirror
        requestMirror:
          backendRef:
            name: traffic-analytics-service
            port: 9000
    backendRefs:
      - name: webapp-v1-primary
        port: 80

# 80% of traffic sent to `webapp-v1-primary` will be mirrored to both `traffic-monitoring-service` and `traffic-analytics-service`.
#If percent/fraction is not specified 100% of the traffic will be cloned/mirrored