すべてのプロダクト
Search
ドキュメントセンター

Anti-DDoS:Anti-DDoS Proxy 経由での送信元 IP アドレスの取得

最終更新日:Mar 27, 2026

サービスを Anti-DDoS Proxy に追加すると、プロキシはすべてのトラフィックをオリジンサーバーに転送します。オリジンサーバーは、X-Forwarded-For ヘッダーを解析するか、TOA モジュールをインストールすることで、クライアントの送信元 IP アドレスを取得できます。

ウェブサイト以外のサービス (レイヤー 4)

一部のウェブサイト以外のサービスでは、オリジンサーバーに TOA モジュールをインストールして、送信元 IP アドレスを取得できます。手順については、「TOA モジュールをインストールしてリクエストの送信元 IP アドレスを取得する」をご参照ください。ご利用の環境に TOA モジュールをインストールできない場合は、テクニカルサポートまでご連絡ください。

Anti-DDoS Proxy IPv4 インスタンス

Anti-DDoS Proxy は TCP オプションフィールドを使用して送信元 IP アドレスを転送します。プロキシとオリジンサーバーが 3 ウェイハンドシェイクを完了すると、最後の ACK パケットにはタイプ 254 の 8 バイトの TCP オプションが含まれます。このオプションには、送信元ポート番号と送信元 IP アドレスが含まれています。次の図は、この情報の場所を示しています。image

  • ポート番号: Magic Number フィールドはポート番号を表し、16 進数で表現されます。たとえば、値 c4 06 は 10 進数のポート番号 50182 に変換されます。

  • 送信元 IP アドレス: ポート番号の後の連続する 4 バイトには、送信元 IP アドレスが 16 進数で含まれています。たとえば、65 ** ** 85 は 10 進数の IP アドレス 101.***.***.133 に変換されます。

Anti-DDoS Proxy IPv6 インスタンス

v6tov4 モード

v6tov4 モードでは、プロキシは IPv6 アドレスを持ち、オリジンサーバーは IPv4 アドレスを持ちます。この場合、プロキシは TCP オプションフィールドを使用します。3 ウェイハンドシェイクの後、最後の ACK パケットにはタイプ 249 の 40 バイトの TCP オプションが含まれます。このオプションには、送信元ポート、送信元 IP、および Anti-DDoS Proxy の IP アドレスが含まれています。次の図は、この情報の場所を示しています。

image

  • ポート番号: Payload 内の最初の 2 バイトは、16 進数形式のポート番号を表します。たとえば、9d7d は 10 進数値の 40317 に変換されます。

  • 送信元 IP アドレス: ポート番号の後の連続する 16 バイトには、送信元 IPv6 アドレスが 16 進数で含まれています。たとえば、2401*****0f87 は IP アドレス 2401:b180:100*:*:*:f87:5d96:f87 に対応します。

    説明

    Payload 内で、ポート番号と送信元 IP アドレスを除く残りの 20 バイトには、Anti-DDoS の IP 情報が含まれています。

v6tov6 モード

v6tov6 モードでは、プロキシとオリジンサーバーの両方が IPv6 アドレスを使用します。この場合、プロキシは TCP オプションフィールドを使用します。3 ウェイハンドシェイクの後、最後の ACK パケットには、送信元ポートと送信元 IP アドレスを含むタイプ 253 の 20 バイトの TCP オプションが含まれます。次の図は、この情報の場所を示しています。

image

  • ポート番号: Experiment Identifier フィールドは、ポート番号を 16 進数で指定します。たとえば、16 進数値の eb98 は 10 進数のポート番号 60312 に対応します。

  • 送信元 IP アドレス: Data フィールドは、送信元 IP アドレスを 16 進数文字列として表し、これは IPv6 アドレスに直接対応します。たとえば、値 2401*****0f87 は、送信元 IP アドレスが 2401:b180:100*:*:*:f87:5d96:f87 であることを意味します。

重要

Anti-DDoS Proxy からの back-to-origin トラフィックがブロックされるのを防ぐには、Anti-DDoS Proxy の back-to-origin CIDR ブロックをオリジンサーバーのホワイトリストに追加する必要があります。back-to-origin CIDR ブロックを確認するには、「オリジンサーバーへの back-to-origin CIDR ブロックのアクセスを許可する」をご参照ください。

  • ネットワークアーキテクチャが Anti-DDoS Proxy -> Elastic Compute Service (ECS) の場合、Anti-DDoS Proxy の back-to-origin CIDR ブロックを ECS インスタンスのセキュリティグループに追加します。詳細については、「セキュリティグループルールの追加」をご参照ください。

  • ネットワークアーキテクチャが Anti-DDoS Proxy -> Server Load Balancer (SLB) -> ECS の場合、Anti-DDoS Proxy の back-to-origin CIDR ブロックを SLB インスタンスのアクセス制御ホワイトリストに追加します。詳細については、「アクセス制御の有効化」をご参照ください。

ウェブサイトサービス (レイヤー 7)

方法 1:X-Forwarded-For ヘッダーの使用

仕組み

  • Anti-DDoS Proxy などのレイヤー 7 プロキシサーバーがリクエストをオリジンサーバーに転送すると、オリジンサーバーはそのリクエストがプロキシの IP アドレスから送信されたものとして認識します。X-Forwarded-For HTTP ヘッダーには、クライアントの実際の送信元 IP アドレスが記録されます。フォーマットは X-Forwarded-For: <originating_IP_address> です。

  • リクエストがオリジンサーバーに到達する前に 1 つ以上のプロキシサーバー (Web Application Firewall (WAF) や Content Delivery Network (CDN) など) を通過する場合、X-Forwarded-For HTTP ヘッダーには、実際の送信元 IP とリクエストが通過したすべてのプロキシサーバーの IP が記録されます。フォーマットは X-Forwarded-For: real-client-IP, proxy-server-1-IP, proxy-server-2-IP, proxy-server-3-IP, ... です。プロキシノードがリクエストをオリジンサーバーに転送する際、前のノードのアドレスを X-Forwarded-For ヘッダーに追加しますが、自身の IP は追加しません。

取得方法

以下のコードスニペットは、さまざまなプログラミング言語で X-Forwarded-For ヘッダーの値を取得する方法を示しています。

重要
  • X-Forwarded-For ヘッダーの値を取得した後、カンマ区切りのリストの最初の IP アドレスを取得します。この IP アドレスがクライアントの送信元 IP アドレスです。

  • Web サーバー (Nginx、IIS 6、IIS 7、Apache、Tomcat など) を設定して X-Forwarded-For ヘッダーを解析し、送信元 IP アドレスを取得することもできます。詳細については、「クライアントの送信元 IP アドレスの取得」をご参照ください。

  • ASP

    Request.ServerVariables("HTTP_X_FORWARDED_FOR")
  • ASP.NET (C#)

    Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
  • PHP

    $_SERVER["HTTP_X_FORWARDED_FOR"]
  • JSP

    request.getHeader("HTTP_X_FORWARDED_FOR")

方法 2:カスタム HTTP ヘッダーの使用

概要

複雑なネットワークアーキテクチャでは、標準の X-Forwarded-For (XFF) ヘッダーに依存すると、ヘッダーの偽造、複数のプロキシレイヤーによる IP アドレスの混同、複雑な解析ロジックなどのリスクが生じる可能性があります。セキュリティと制御を強化するために、カスタム HTTP ヘッダーを使用してクライアントの送信元 IP アドレスを転送できます。

操作手順

Anti-DDoS Proxy を設定して、クライアント IP アドレスをカスタム HTTP ヘッダーに書き込むことができます。詳細については、「back-to-origin 設定の構成」をご参照ください。

  1. Anti-DDoS Proxy コンソールの「Web サイト設定」ページにログインします。

  2. ドメイン接続 ページで、ドメインの追加 をクリックします。

  3. Web サイトへのアクセス ページの 転送の設定 セクションで、トラフィックマーキングカスタムヘッダー (例:Custom-True-IP) に設定します。

  4. アプリケーションコードで、カスタムヘッダーの値を取得します。例:request.getHeader("Custom-True-IP")