Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración del protocolo de proxy del Equilibrador de carga clásico
Proxy Protocol es un protocolo de Internet que se utiliza para transportar la información de conexión entre el origen que solicita la conexión y el destino al cual se solicita dicha conexión. Elastic Load Balancing utiliza Proxy Protocol versión 1, que utiliza un formato de encabezado en formato de lenguaje natural.
De forma predeterminada, cuando se utiliza el protocolo de control de transmisión (TCP) para las conexiones frontend y backend, el equilibrador de carga clásico reenvía las solicitudes a las instancias sin modificar sus encabezados. Si habilita Proxy Protocol, se agrega un encabezado en formato de lenguaje natural al encabezado de la solicitud. Este contiene información de la conexión como, por ejemplo, las direcciones IP de origen y destino, y los números de puerto. A continuación, el encabezado se envía a la instancia como parte de la solicitud.
nota
No AWS Management Console admite la activación del protocolo proxy.
Contenido
Encabezado Proxy Protocol
El encabezado Proxy Protocol ayuda a identificar la dirección IP de un cliente cuando el equilibrador de carga utiliza TCP para las conexiones backend. Dado que los equilibradores de carga interceptan el tráfico entre los clientes y las instancias, los registros de acceso desde la instancia contienen la dirección IP del equilibrador de carga, y no la del cliente de origen. Puede analizar la primera línea de la solicitud para recuperar la dirección IP del cliente y el número de puerto.
La dirección del proxy que aparece en el encabezado IPv6 es la IPv6 dirección pública de tu balanceador de cargas. Esta IPv6 dirección coincide con la dirección IP que se resuelve a partir del nombre DNS del balanceador de cargas, que comienza por oipv6. dualstack Si el cliente se conecta con IPv4, la dirección del proxy del encabezado es la IPv4 dirección privada del equilibrador de cargas, que no se puede resolver mediante una búsqueda de DNS.
La línea de Proxy Protocol es una sola línea que termina con un retorno de carro y un salto de línea ("\r\n"). Presenta el siguiente formato:
PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"
Ejemplo: IPv4
A continuación se muestra un ejemplo de la línea de protocolo proxy para. IPv4
PROXY TCP4 198.51.100.22 203.0.113.7 35646 80\r\n
Requisitos previos para habilitar Proxy Protocol
Antes de comenzar, haga lo siguiente:
-
Confirme que el equilibrador de carga no se encuentre tras un servidor proxy con Proxy Protocol habilitado. Si Proxy Protocol está habilitado en el servidor proxy y también en el equilibrador de carga, este último agregará un encabezado más a la solicitud, que ya tiene un encabezado del servidor proxy. Según cómo esté configurada la instancia, esta duplicación podría dar lugar a errores.
-
Confirme que las instancias puedan procesar la información de Proxy Protocol.
-
Confirme que la configuración del oyente admita Proxy Protocol. Para obtener más información, consulte Configuraciones de oyentes para los equilibradores de carga clásicos.
Habilitación de Proxy Protocol desde la AWS CLI
Para habilitar Proxy Protocol, se debe crear una política de tipo ProxyProtocolPolicyType y, a continuación, habilitar la política en el puerto de la instancia.
Utilice el siguiente procedimiento para crear una nueva política del tipo ProxyProtocolPolicyType para el equilibrador de carga, establecer la política recién creada para la instancia en el puerto 80 y comprobar que la política está habilitada.
Para habilitar Proxy Protocol en el equilibrador de carga
-
(Opcional) Usa el siguiente comando describe-load-balancer-policy-types para enumerar las políticas compatibles con Elastic Load Balancing:
aws elb describe-load-balancer-policy-typesLa respuesta incluye los nombres y las descripciones de los tipos de políticas admitidos. A continuación se muestra el resultado para el tipo
ProxyProtocolPolicyType:{ "PolicyTypeDescriptions": [ ... { "PolicyAttributeTypeDescriptions": [ { "Cardinality": "ONE", "AttributeName": "ProxyProtocol", "AttributeType": "Boolean" } ], "PolicyTypeName": "ProxyProtocolPolicyType", "Description": "Policy that controls whether to include the IP address and port of the originating request for TCP messages. This policy operates on TCP/SSL listeners only" }, ... ] } -
Utilice el siguiente create-load-balancer-policycomando para crear una política que habilite el protocolo proxy:
aws elb create-load-balancer-policy --load-balancer-namemy-loadbalancer--policy-namemy-ProxyProtocol-policy--policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=true -
Use el siguiente for-backend-server comando set-load-balancer-policies- para habilitar la política recién creada en el puerto especificado. Tenga en cuenta que este comando sustituye el conjunto actual de políticas habilitadas. Por lo tanto, la opción
--policy-namesdebe especificar tanto la política que se va a agregar a la lista (por ejemplo,my-ProxyProtocol-policy) como todas las políticas que ya estén habilitadas (por ejemplo,my-existing-policy).aws elb set-load-balancer-policies-for-backend-server --load-balancer-namemy-loadbalancer--instance-port80--policy-namesmy-ProxyProtocol-policy my-existing-policy -
(Opcional) Utilice el siguiente describe-load-balancerscomando para comprobar que el protocolo proxy esté habilitado:
aws elb describe-load-balancers --load-balancer-namemy-loadbalancerLa respuesta incluye la siguiente información, que muestra que la política
my-ProxyProtocol-policyestá asociada al puerto80.{ "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [ { "InstancePort": 80, "PolicyNames": [ "my-ProxyProtocol-policy" ] } ], ... } ] }
Desactivación de Proxy Protocol desde la AWS CLI
Puede deshabilitar las políticas asociadas a la instancia y habilitarlas más adelante.
Para desactivar la política de Proxy Protocol
-
Use el siguiente for-backend-server comando set-load-balancer-policies: para deshabilitar la política de protocolo proxy omitiéndola de la
--policy-namesopción, pero incluyendo las demás políticas que deberían permanecer habilitadas (por ejemplo,my-existing-policy).aws elb set-load-balancer-policies-for-backend-server --load-balancer-namemy-loadbalancer--instance-port80--policy-namesmy-existing-policySi no hay otras políticas que habilitar, especifique una cadena vacía con la opción
--policy-names, de la siguiente manera:aws elb set-load-balancer-policies-for-backend-server --load-balancer-namemy-loadbalancer--instance-port80--policy-names "[]" -
(Opcional) Utilice el siguiente describe-load-balancerscomando para comprobar que la política está deshabilitada:
aws elb describe-load-balancers --load-balancer-namemy-loadbalancerLa respuesta incluye la siguiente información, que muestra que no hay ningún puerto asociado a una política.
{ "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [], ... } ] }