Todos los productos
Search
Centro de documentos

Anti-DDoS:Obtención de direcciones IP de origen detrás de Anti-DDoS Proxy

Última actualización: Sep 04, 2026

Cuando Anti-DDoS Proxy reenvía tráfico a su servidor de origen, la IP original del cliente se oculta. Para recuperarla, analice sintácticamente el encabezado X-Forwarded-For o instale un módulo TOA.

Para servicios que no son sitios web (capa 4)

Instale el módulo TOA en su servidor de origen para obtener la dirección IP de origen. Obtain the originating IP address of a request by installing the TOA module. Si no puede instalar el módulo TOA, póngase en contacto con el soporte técnico.

Instancia IPv4 de Anti-DDoS Proxy

La IP de origen del cliente se transmite mediante el campo TCP Option. En un servicio que no es sitio web (capa 4), después del saludo de tres vías entre Anti-DDoS Proxy y el servidor de origen, el proxy modifica el último paquete ACK e inserta una TCP Option de 8 bytes (tipo 254) que contiene el puerto de origen y la IP de origen del cliente. La siguiente captura de Wireshark muestra un ejemplo. La sección TCP Option – Experimental contiene la información del número de puerto y la IP de origen:

    Destination Port: 443
     [Stream index: 0]
     [TCP Segment Len: 0]
    Sequence number: 1    (relative sequence number)
    Acknowledgment number: 1    (relative ack number)
    1001 .... = Header Length: 36 bytes (9)
  ▶ Flags: 0x010 (ACK)
    Window size value: 65535
     [Calculated window size: 65535]
     [Window size scaling factor: -2 (no window scaling used)]
    Checksum: 0x90fb [unverified]
     [Checksum Status: Unverified]
    Urgent pointer: 0
  ▼ Options: (16 bytes), Experimental
    ▼ TCP Option – Experimental
        Kind: RFC3692-style Experiment 2 (254)
        Length: 8
        Magic Number: 0xc406
      Unknown (0xfa) (8 bytes)
0000   b4 0c 25 e2 80 46 4c e1   75 f7 e5 c1 08 00 45 00   ..%..FL. u.....E.
0010   00 38 00 00 40 00 26 06   cf e9 2f 70 49 ce 67 96   .8..@.&. ../pI.g.
0020   a4 02 1b 2e 01 bb c8 c1   cf 98 ab 2f 54 e1 90 10   ........ .../T...
0030   ff ff 90 fb 00 00 fe 08   c4 06 65 xx xx 85 fa 08   ........ ..exx...
0040   01 bb cb 6b 34 80                                     ...k4.
  • Número de puerto: El campo Magic Number contiene el número de puerto en formato hexadecimal. Por ejemplo, c4 06 se convierte al decimal 50182.

  • IP de origen: Los cuatro bytes que siguen al número de puerto representan la IP de origen en formato hexadecimal. En este ejemplo, 65 ** ** 85 corresponde a la IP de origen 101.*.*.133.

Instancia IPv6 de Anti-DDoS Proxy

Modo v6tov4

En el modo v6tov4, donde un cliente IPv6 se conecta a un servidor de origen IPv4, el último paquete ACK contiene una TCP Option de 40 bytes (tipo 249). Esta opción incluye el puerto de origen, la IP de origen y la dirección IP de Anti-DDoS Proxy. A continuación se muestra un ejemplo:

Destination Port: 8080
[Stream index: 1]
[Stream Packet Number: 3]
[Conversation completeness: Incomplete, ESTABLISHED (7)]
[TCP Segment Len: 0]
Sequence Number: 1    (relative sequence number)
Sequence Number (raw): 2505761997
[Next Sequence Number: 1    (relative sequence number)]
Acknowledgment Number: 1    (relative ack number)
Acknowledgment number (raw): 483970095
1111 .... = Header Length: 60 bytes (15)
Flags: 0x010 (ACK)
Window: 4096
[Calculated window size: 262144]
[Window size scaling factor: 64]
Checksum: 0xbc88 [unverified]
[Checksum Status: Unverified]
Urgent Pointer: 0
Options: (40 bytes), Unknown (0xf9)
  TCP Option – Unknown
    Kind: Unknown (249)
    Length: 40
    Payload: 9d7d2401b180xxxd960f875d960f87000000012405e000100300000000000a7304b55
[Timestamps]
  • Número de puerto: Los primeros dos bytes del Payload contienen el número de puerto en formato hexadecimal. Por ejemplo, 9d7d se convierte al decimal 40317.

  • Dirección IP de origen: Los 16 bytes posteriores al número de puerto contienen la dirección IPv6 de origen en formato hexadecimal. Por ejemplo, 2401*****0f87 corresponde a 2401:b180:100*:*:*:f87:5d96:f87.

    Nota

    Los 20 bytes restantes en el Payload contienen la información de IP de Anti-DDoS.

Modo v6tov6

En un escenario v6tov6, donde tanto el cliente como el servidor de origen usan IPv6, el último paquete ACK contiene una TCP Option de 20 bytes (tipo 253). Esta opción incluye el puerto de origen y la IP de origen. A continuación se muestra un ejemplo:

Destination Port: 8080
 [Stream index: 0]
 [Stream Packet Number: 1]
 [Conversation completeness: Incomplete (12)]
 [TCP Segment Len: 0]
 Sequence Number: 1    (relative sequence number)
 Sequence Number (raw): 721958393
 [Next Sequence Number: 1    (relative sequence number)]
 Acknowledgment Number: 1    (relative ack number)
 Acknowledgment number (raw): 2789445640
 1010 .... = Header Length: 40 bytes (10)
 Flags: 0x010 (ACK)
 Window: 65535
 [Calculated window size: 65535]
 [Window size scaling factor: -1 (unknown)]
 Checksum: 0x90cc [unverified]
 [Checksum Status: Unverified]
 Urgent Pointer: 0
 Options: (20 bytes), Experimental
   TCP Option - Experimental: Unknown
       Kind: RFC3692-style Experiment 1 (253)
       Length: 20
       Experiment Identifier: Unknown (0xeb98)
       Data: 2401b180100xxx0f875d960f87
  • Número de puerto: El campo Experiment Identifier contiene el número de puerto en formato hexadecimal. Por ejemplo, eb98 se convierte al decimal 60312.

  • Dirección IP de origen: El campo Data contiene la dirección IPv6 de origen en formato hexadecimal. Por ejemplo, 24010f87 corresponde a 2401:b180:100:::f87:5d96:f87.

Importante

Agregue los bloques CIDR de retorno al origen de Anti-DDoS Proxy a la lista de permitidos de su servidor de origen para evitar que se bloquee el tráfico reenviado. Allow back-to-origin CIDR blocks to access the origin server.

  • Anti-DDoS Proxy -> ECS: Agregue los bloques CIDR de retorno al origen al security group de ECS. Add a security group rule.

  • Anti-DDoS Proxy -> SLB -> ECS: Agregue los bloques CIDR de retorno al origen a la lista de permitidos de control de acceso de SLB. Enable access control.

Para servicios de sitios web (capa 7)

Método 1: Uso del encabezado X-Forwarded-For

Funcionamiento

  • Cuando un proxy de capa 7, como Anti-DDoS Proxy, reenvía una solicitud, el servidor de origen ve la IP del proxy como origen. El encabezado X-Forwarded-For registra la IP real del cliente. Formato: X-Forwarded-For: <originating_IP_address>.

  • Si una solicitud pasa por varios proxies (como WAF o CDN), el encabezado X-Forwarded-For registra la IP real del cliente seguida de la IP de cada proxy. Formato: X-Forwarded-For: real-client-IP, proxy-server-1-IP, proxy-server-2-IP, proxy-server-3-IP, .... Cada proxy agrega la dirección del nodo anterior a X-Forwarded-For, pero no agrega la suya propia.

Métodos de recuperación

Recupere el valor del encabezado X-Forwarded-For en el código de su aplicación:

Importante
  • La primera dirección IP en el valor X-Forwarded-For separado por comas es la IP de origen del cliente.

  • También puede configurar su servidor web (Nginx, IIS 6, IIS 7, Apache o Tomcat) para analizar sintácticamente el encabezado X-Forwarded-For. Retrieve the originating IP addresses of clients.

  • 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")

Método 2: Uso de un encabezado HTTP personalizado

Descripción general

En arquitecturas complejas, el encabezado estándar X-Forwarded-For (XFF) es vulnerable a falsificaciones y confusión de IP debido a múltiples capas de proxy. Un encabezado HTTP personalizado proporciona una transmisión más confiable de la IP del cliente.

Procedimiento

Configure Anti-DDoS Proxy para escribir la IP del cliente en un encabezado HTTP personalizado. Configure back-to-origin settings.

  1. Inicie sesión en la página Website Config en la consola de Anti-DDoS Proxy.

  2. En la página Website Config, haga clic en Add Website.

  3. En la página Website Config, en la sección Forwarding Settings, establezca Traffic Marking en Custom Header (por ejemplo, Custom-True-IP).

  4. En el código de su aplicación, recupere el valor del encabezado personalizado; por ejemplo: request.getHeader("Custom-True-IP").