Como o endereço IP do cliente é preservado no AWS Global Accelerator
O AWS Global Accelerator preserva o endereço IP de origem do cliente de forma diferente para instâncias do Amazon EC2, Network Load Balancers e Application Load Balancers:
Para um endpoint de instância do EC2, o endereço IP do cliente é preservado para todo o tráfego.
Para um endpoint do Network Load Balancer com preservação do endereço IP do cliente, o Global Accelerator trabalha em conjunto com o Network Load Balancer para incluir o endereço IP do cliente original no cabeçalho IP do pacote para que seu aplicativo possa acessá-lo.
Para um endpoint do Application Load Balancer com preservação do endereço IP do cliente, o Global Accelerator trabalha em conjunto com o Application Load Balancer para fornecer um cabeçalho
X-Forwarded
,X-Forwarded-For
, que inclui o endereço IP do cliente original para que sua camada da Web possa acessá-lo.
As solicitações HTTP e as respostas HTTP usam campos de cabeçalho para enviar informações sobre as mensagens HTTP. Os campos de cabeçalho são pares de nome-valor separados por dois pontos e separados por um retorno de carro (CR) e um avanço de linha (LF). Um conjunto padrão de campos de cabeçalho HTTP está definido na RFC 2616, Cabeçalhos de mensagemX-Forwarded
.
Como um Application Load Balancer encerra as conexões TCP de entrada e cria novas conexões com seus destinos de backend, ele não preserva os endereços IP do cliente até o código de destino (como instâncias, contêineres ou código Lambda). O endereço IP de origem que seus destinos veem no pacote TCP é o endereço IP do Application Load Balancer. No entanto, um Application Load Balancer preserva o endereço IP original do cliente removendo-o do endereço de resposta do pacote original e inserindo-o em um cabeçalho HTTP antes de enviar a solicitação ao seu backend por meio de uma nova conexão TCP.
O cabeçalho da solicitação X-Forwarded-For
é formatado da seguinte maneira:
X-Forwarded-For:
client-ip-address
O exemplo a seguir mostra um cabeçalho de solicitação X-Forwarded-For
para um cliente com o endereço IP 203.0.113.7.
X-Forwarded-For: 203.0.113.7
O exemplo a seguir mostra um cabeçalho de solicitação X-Forwarded-For
para um cliente com um endereço IPv6 de 2001:DB8::21f:5bff:febf:ce22:8a2e.
X-Forwarded-For: 2001:DB8::21f:5bff:febf:ce22:8a2e