

# Como o endereço IP do cliente é preservado no AWS Global Accelerator
<a name="preserve-client-ip-address.headers"></a>

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 mensagem](https://tools.ietf.org/html/rfc2616#section-4.2). Há também cabeçalhos HTTP não padrão que são amplamente usados pelos aplicativos. Alguns dos cabeçalhos HTTP não padrão possuem um prefixo `X-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
```