

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# DDoProteção S com Amazon GameLift Servers
<a name="ddos-protection-intro"></a>

Amazon GameLift ServersO player gateway é uma rede baseada em retransmissão que roteia o tráfego UDP entre clientes de jogos e servidores de jogos hospedados em. Amazon GameLift Servers O Player Gateway fornece proteção DDo S proativa validando o tráfego antes que ele chegue aos servidores de jogos, limitando a taxa de tráfego de jogadores, ocultando endereços IP do servidor de jogos do público e fornecendo endpoints atualizados quando os endpoints de retransmissão não funcionam. Esse recurso ajuda a proteger seus servidores de jogos contra ataques volumétricos com latência adicional insignificante.

O Player Gateway exige que os servidores de jogos sejam executados em frotas EC2 Amazon GameLift Servers gerenciadas baseadas em Linux ou em frotas de contêineres. Você deve ativar o gateway do jogador durante a criação da frota e atualizar o cliente e o back-end do jogo para usar esse recurso.

## Benefícios principais
<a name="ddos-protection-intro-benefits"></a>

O Player Gateway oferece os seguintes benefícios operacionais e de segurança:
+ **Ocultar endereços IP do servidor** de jogos — Os clientes do jogo se conectam por meio de terminais de retransmissão em vez de diretamente aos servidores do jogo, ocultando os endereços do servidor do jogo do público.
+ **Valide o tráfego** — Todo o tráfego pelo gateway do jogador requer um token do gateway do jogador, permitindo que somente o tráfego de jogadores autenticados chegue aos seus servidores de jogo.
+ **Substituição dinâmica de endpoints** — Quando os endpoints de retransmissão não são íntegros, substitui Amazon GameLift Servers rapidamente os endpoints e fornece endpoints saudáveis atualizados na próxima chamada para atualizar os detalhes da conexão do player.
+ **Distribua o tráfego de jogadores** — Os endpoints de retransmissão variam entre os jogadores, reduzindo o impacto de um único endpoint de retransmissão não saudável para outros jogadores na mesma sessão de jogo.

# Como funciona o gateway do jogador
<a name="ddos-protection-howitworks"></a>

O Player Gateway usa uma rede de retransmissão para rotear o tráfego UDP entre clientes e servidores de jogos. Isso protege contra ataques DDo S validando o tráfego antes que ele chegue aos servidores de jogos, limitando a taxa de tráfego de jogadores, ocultando endereços IP do servidor de jogos do público e fornecendo endpoints atualizados quando os endpoints de retransmissão não funcionam.

## Fluxo de tráfego
<a name="ddos-protection-howitworks-traffic-flow"></a>

Quando um jogador se conecta a uma sessão de jogo, o back-end do jogo recupera os endpoints de retransmissão e um token de gateway do jogador da `GetPlayerConnectionDetails` API e os envia para o cliente do jogo. O cliente do jogo anexa o token do gateway do jogador aos pacotes UDP e os envia para um terminal de retransmissão. A rede de retransmissão valida o token e encaminha o tráfego legítimo para o servidor do jogo. Antes da entrega, a rede de retransmissão retira o token do gateway do jogador para que os servidores do jogo recebam a carga bruta do cliente do jogo e não exijam alterações no código. A comunicação do servidor do jogo com o cliente do jogo retorna pela rede de retransmissão sem modificação.

![\[Diagrama de arquitetura mostrando o cliente do jogo se conectando através da rede de retransmissão ao servidor do jogo\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/images/player_gateway_architecture.png)


## Principais conceitos
<a name="ddos-protection-howitworks-components"></a>

### Endpoints de retransmissão
<a name="ddos-protection-howitworks-endpoints"></a>

Os endpoints de retransmissão são combinações de endereços IP e portas que os clientes do jogo usam para enviar tráfego pelo gateway do jogador. Cada jogador recebe vários endpoints que variam entre os jogadores para distribuir o tráfego e reduzir o impacto dos ataques em outros jogadores na mesma sessão de jogo.

![\[Diagrama mostrando vários jogadores recebendo terminais de retransmissão diferentes para as mesmas sessões de jogo\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/images/player_gateway_relay_endpoints.png)


### Tokens do gateway do jogador
<a name="ddos-protection-howitworks-tokens"></a>

Os tokens do gateway do jogador são matrizes de bytes criptografadas que autorizam um jogador a enviar tráfego para uma sessão de jogo por meio do gateway do jogador. A `GetPlayerConnectionDetails` API retorna tokens como cadeias de caracteres codificadas em base64. Os clientes do jogo devem anexar o token do gateway do jogador a cada pacote UDP. A rede de retransmissão valida tokens e rejeita pacotes com tokens inválidos ou ausentes.

**Importante**  
Os tokens do gateway do jogador não devem ser criptografados e devem aparecer no início de cada pacote UDP enviado pelo cliente do jogo. Se seu jogo criptografar cargas, acrescente o token não modificado do gateway do jogador após criptografar os dados do jogo.

Os tokens do Player Gateway permanecem válidos por pelo menos 3 minutos. Recomendamos atualizar os tokens a cada 60 segundos para garantir que os jogadores recebam endpoints atualizados quando os endpoints de retransmissão ficarem insalubres.

### GetPlayerConnectionDetails API
<a name="ddos-protection-howitworks-api"></a>

O back-end do seu jogo chama a `GetPlayerConnectionDetails` API para recuperar os detalhes da conexão dos jogadores em uma sessão de jogo. A API retorna os endpoints de retransmissão e os tokens do gateway do jogador ou retorna ao endereço IP e à porta do servidor do jogo para conexão direta. Seu cliente de jogo deve ser projetado para lidar com os dois tipos de conexão. Para receber endpoints atualizados quando os endpoints de retransmissão não estiverem íntegros, chame essa API periodicamente durante a sessão do jogo (recomendado a cada 60 segundos).

Para obter mais informações, consulte [GetPlayerConnectionDetails API](ddos-protection-integrate.md#ddos-protection-integrate-backend-api).

## Monitorando o gateway do player
<a name="ddos-protection-howitworks-monitoring"></a>

O Player Gateway publica métricas na Amazon CloudWatch para ajudar você a monitorar padrões de tráfego de rede, identificar possíveis ataques DDo S e monitorar o desempenho do relé. As métricas incluem entrada/saída de pacotes e bytes, tráfego limitado e sessões de jogadores. Para ver a lista completa das métricas do Player Gateway, consulte[DDoMétricas de proteção S (gateway do jogador)](monitoring-cloudwatch.md#gamelift-metrics-fleet-playergateway).

## IPv4 e IPv6 compatibilidade
<a name="ddos-protection-howitworks-ipv4-ipv6"></a>

Clientes de jogos se comunicam usando IPv4. O gateway do jogador é usado IPv6 para se comunicar com os servidores do jogo. Amazon GameLift Serversgerencia automaticamente a tradução entre IPv4 e IPv6 com base na configuração da sua frota.

Para obter mais informações sobre como configurar o gateway de jogadores em sua frota, consulte [CreateFleet](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateFleet.html#gameliftservers-CreateFleet-request-PlayerGatewayMode)ou [CreateContainerFleet](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateContainerFleet.html#gameliftservers-CreateContainerFleet-request-PlayerGatewayMode). Para obter mais informações IPv4 e IPv6 suporte, consulte[IPv4 e IPv6 compatibilidade](ddos-protection-enable.md#ddos-protection-enable-ip-protocol).

# Habilite o gateway de jogadores em frotas
<a name="ddos-protection-enable"></a>

Ative o gateway do jogador ao criar uma frota para rotear o tráfego do jogo por meio de terminais de retransmissão que validam e limitam a taxa de tráfego UDP de entrada para seus servidores de jogos.

## Pré-requisitos
<a name="ddos-protection-enable-prerequisites"></a>

Antes de ativar o gateway do player, verifique os seguintes requisitos:
+ **Localizações suportadas** — Para obter uma lista de AWS locais que oferecem suporte ao player gateway, consulte[Locais de serviço do Amazon GameLift Servers](gamelift-regions.md).
+ **Tipo de frota** — O Player Gateway suporta frotas EC2 gerenciadas baseadas em Linux e frotas de contêineres gerenciados.
+ **SDK do servidor** — O gateway do Player requer o SDK Amazon GameLift Servers do servidor 5.0 ou posterior.

## Modos de gateway do jogador
<a name="ddos-protection-enable-modes"></a>

Configure a compatibilidade do player gateway para sua frota usando a `PlayerGatewayMode` propriedade:

DESATIVADO (padrão)  
O Fleet não é compatível com o player gateway.

ENABLED  
O Fleet é compatível com o player gateway em locais onde é suportado. Os locais da frota que não suportam o recurso ainda podem ser adicionados à frota, mas não utilizarão o gateway do jogador, utilizando diretamente o endereço IP do servidor do jogo.

REQUIRED  
O Fleet é compatível com o player gateway. Os locais da frota que não oferecem suporte ao recurso não podem ser adicionados à frota.

## IPv4 e IPv6 compatibilidade
<a name="ddos-protection-enable-ip-protocol"></a>

Os clientes do jogo devem se comunicar com o gateway do jogador via IPv4. A rede de retransmissão do gateway do jogador se comunica com os servidores de jogos usando IPv6. As frotas de contêineres gerenciados traduzem automaticamente o tráfego IPv6 em IPv4. Para frotas EC2 gerenciadas, configure como sua frota lida com o IPv6 tráfego usando a `GameServerIpProtocolSupported` propriedade em: `PlayerGatewayConfiguration`

IPv4 (padrão)  
Seu servidor de jogo só aceita IPv4 tráfego de entrada. Um software leve de tradução IP será instalado e executado em suas instâncias para receber e transformar o IPv6 tráfego de entrada em. IPv4

PILHA DUPLA  
Seu servidor de jogo é compatível com o IPv6 tráfego de entrada. O software de tradução IP não será instalado nem executado em suas instâncias. Os servidores de jogos que oferecem suporte IPv6 nativo podem ter um desempenho um pouco maior.

# Integre o gateway do jogador em um jogo
<a name="ddos-protection-integrate"></a>

Depois de criar uma frota habilitada para o Player Gateway, você deve atualizar o cliente e o back-end do jogo para integrá-los ao Player Gateway. O back-end do jogo recupera os endpoints de retransmissão e os tokens do gateway do jogador e os fornece aos clientes do jogo. Os clientes de jogos enviam todo o tráfego UDP para esses endpoints de retransmissão.

A integração segue esse caminho de chamada:

1. Seu back-end do jogo chama a `GetPlayerConnectionDetails` API para recuperar endpoints de retransmissão e tokens de gateway de jogador para cada jogador em uma sessão de jogo.

1. O back-end do seu jogo envia os endpoints de retransmissão e os tokens do gateway do jogador para o cliente do jogo.

1. Seu cliente de jogo anexa o token do gateway do jogador a todos os pacotes UDP de saída e envia os pacotes para os terminais de retransmissão.

1. A rede de retransmissão valida o token do gateway do jogador e direciona o tráfego para o servidor do jogo.

1. Seu servidor de jogo envia tráfego de volta ao seu cliente de jogo pelos mesmos caminhos de retransmissão.

## Integração de back-end
<a name="ddos-protection-integrate-backend"></a>

O back-end do seu jogo deve chamar a `GetPlayerConnectionDetails` API para recuperar endpoints de retransmissão e tokens de gateway de jogador para os jogadores. O back-end então fornece essas informações aos clientes do jogo.

### GetPlayerConnectionDetails API
<a name="ddos-protection-integrate-backend-api"></a>

A `GetPlayerConnectionDetails` API retorna detalhes de conexão para jogadores em uma sessão de jogo:

Endpoints e tokens de retransmissão  
Quando o gateway do jogador está ativado e suportado no local, retorna:  
+ **Endpoints de retransmissão — Vários endpoints** de retransmissão (endereço IP e porta) que variam entre os jogadores
+ **Token de gateway do jogador** — Token que o cliente deve anexar a todos os pacotes UDP (válido por pelo menos 3 minutos)
+ **Expiração** — Data e hora de expiração do token do Player Gateway

Conexão direta  
Quando o gateway do jogador não está habilitado ou não é suportado no local, retorna o endereço IP e a porta do servidor do jogo

Seu cliente de jogo deve ser projetado para lidar com os dois tipos de conexão.

Exemplo de chamada de API:

```
// C++ example using AWS SDK
Aws::GameLift::GameLiftClient client;
Aws::GameLift::Model::GetPlayerConnectionDetailsRequest request;
request.SetGameSessionId(gameSessionId);
request.SetPlayerIds(playerIds);  // Vector of player IDs

auto outcome = client.GetPlayerConnectionDetails(request);
if (outcome.IsSuccess()) {
    auto result = outcome.GetResult();
    auto connectionDetails = result.GetPlayerConnectionDetails();
    
    // Process each player's connection details
    for (const auto& detail : connectionDetails) {
        std::string playerId = detail.GetPlayerId();
        
        // Get relay endpoints (IP address and port)
        auto endpoints = detail.GetEndpoints();
        for (const auto& endpoint : endpoints) {
            std::string ipAddress = endpoint.GetIpAddress();
            int port = endpoint.GetPort();
        }
        
        // Get player gateway token
        auto token = detail.GetPlayerGatewayToken();
        
        // Get expiration time
        auto expiration = detail.GetExpiration();
        
        // Send endpoints and token to game client
    }
}
```

Veja [GetPlayerConnectionDetails](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetPlayerConnectionDetails.html)na *Referência da Amazon GameLift Servers API*.

### Atualize os endpoints de retransmissão
<a name="ddos-protection-integrate-backend-refresh"></a>

Ligue `GetPlayerConnectionDetails` periodicamente para fornecer aos jogadores endpoints atualizados quando os endpoints de retransmissão ficarem insalubres. Recomendamos chamar a API a cada 60 segundos para todos os jogadores em uma sessão de jogo. Para otimizar o uso da API, agrupe vários jogadores IDs em uma única chamada de API.

**Importante**  
Chamadas de atualização regulares são o principal mecanismo para fornecer endpoints atualizados aos jogadores. Embora os tokens do gateway do jogador permaneçam válidos por pelo menos 3 minutos, a atualização a cada 60 segundos garante que os jogadores recebam endpoints atualizados regularmente.

## Integração com o cliente
<a name="ddos-protection-integrate-client"></a>

Seu cliente de jogo deve anexar os tokens do gateway do jogador a todos os pacotes UDP de saída e enviar os pacotes para os terminais de retransmissão fornecidos. O SDK Amazon GameLift Servers do cliente para C\$1\$1 e Unreal Engine fornece utilitários para simplificar essa integração.

### Requisitos do cliente
<a name="ddos-protection-integrate-client-requirements"></a>

Para rotear o tráfego pelo gateway do jogador, seu cliente de jogo deve:
+ **Anexar tokens do gateway do player** — Prefixe o token do gateway do player a todos os pacotes UDP de saída. Os tokens do Player Gateway não devem ser criptografados e devem aparecer no início de cada pacote. Pacotes sem um token de gateway de jogador válido serão descartados.
+ **Enviar para terminais de retransmissão — Envie todos os pacotes UDP para os pontos finais** de retransmissão fornecidos.
+ **Manter a atividade de conexão** — Certifique-se de que o cliente do jogo envie um pacote para o servidor do jogo ou que o servidor do jogo envie um pacote para o jogador, pelo menos uma vez a cada 30 segundos. Essa atividade mantém a conexão por meio da rede de retransmissão.
+ **Gerencie atualizações de endpoints** — aceite endpoints de retransmissão e tokens de gateway de player atualizados do seu back-end (recomendado a cada 60 segundos) e faça a transição para novos endpoints sem interromper a conexão.

### SDK do cliente
<a name="ddos-protection-integrate-client-sdk"></a>

O SDK Amazon GameLift Servers do cliente para C\$1\$1 e Unreal Engine fornece utilitários para simplificar a integração do player gateway:
+ **Gerenciamento de tokens** — Anexa os tokens do gateway do player a todos os pacotes UDP de saída.
+ **Seleção de endpoint** — encaminha o tráfego para retransmitir endpoints usando um algoritmo configurável.
+ **Atualização do endpoint** — programa retornos de chamada periódicos para recuperar endpoints de retransmissão e tokens de gateway de player atualizados do seu back-end.

### Algoritmos de seleção de terminais
<a name="ddos-protection-integrate-client-algorithms"></a>

O SDK do cliente fornece dois algoritmos integrados para selecionar qual endpoint de retransmissão usar:

Algoritmo de fallback  
Usa um endpoint até que ele se torne insalubre e, em seguida, alterna para outro endpoint. Ideal para menus, lobbies e jogos baseados em turnos, onde breves interrupções são aceitáveis. Durante o failover do endpoint, os pacotes podem ser perdidos durante o período de tempo limite configurado (padrão: 2 segundos).

Algoritmo de rotação preditiva  
Percorre continuamente todos os endpoints disponíveis e prevê falhas antes que elas ocorram. Ideal para jogabilidade em tempo real, como jogos de tiro em primeira pessoa e jogos de corrida, onde a entrega consistente de pacotes é fundamental. Requer que o servidor do jogo envie mensagens com uma frequência consistente.

Você também pode implementar algoritmos personalizados estendendo a classe de algoritmo base do SDK.

### Recursos do SDK do cliente
<a name="ddos-protection-integrate-client-resources"></a>

Para obter instruções completas de integração e exemplos de código, consulte os seguintes recursos:

C\$1\$1  
Um SDK do cliente para C\$1\$1 está [Amazon GameLift Serversdisponível no SDK do cliente para](https://github.com/amazon-gamelift/amazon-gamelift-servers-client-sdk-for-cpp) C\$1\$1.

Unreal Engine  
Um plug-in para o Unreal Engine está disponível no [SDK Amazon GameLift Servers do cliente para o Unreal](https://github.com/amazon-gamelift-for-unreal/amazon-gamelift-servers-client-sdk-for-unreal) Engine. O acesso requer ser membro da organização Epic Games em GitHub. Consulte [Unreal Engine ativado GitHub](https://www.unrealengine.com/en-US/ue-on-github) para obter detalhes.

## Teste a integração
<a name="ddos-protection-integrate-testing"></a>

Antes de implantar em uma frota, teste sua integração com o Player Gateway localmente usando a ferramenta de teste Player Gateway. Essa ferramenta simula a infraestrutura de proxy UDP do gateway do player e ajuda você a verificar se o cliente do jogo insere corretamente os tokens do gateway do player, roteia o tráfego por meio de vários endpoints e lida com a degradação da rede.

Para obter instruções de configuração e uso, consulte o [aplicativo de teste do player gateway](https://github.com/amazon-gamelift/amazon-gamelift-toolkit/tree/main/player-gateway-testing-app) em GitHub.

## Práticas recomendadas
<a name="ddos-protection-integrate-best-practices"></a>

Siga estas melhores práticas ao integrar o Player Gateway:
+ **Atualize endpoints a cada 60 segundos** — Ligue a `GetPlayerConnectionDetails` cada 60 segundos para garantir que os jogadores recebam endpoints atualizados regularmente.
+ **Chamadas de API em lote** — Ao chamar `GetPlayerConnectionDetails` vários jogadores na mesma sessão de jogo, agrupe as chamadas para reduzir a sobrecarga da API.
+ **Mantenha a atividade de conexão** — Certifique-se de que o tráfego flua entre o cliente do jogo e o servidor do jogo pelo menos uma vez a cada 30 segundos. Isso pode ser qualquer um client-to-server ou server-to-client o tráfego.
+ **Gerencie as atualizações de endpoints com elegância** — Quando seu cliente de jogo recebe endpoints atualizados do back-end, faça a transição para os novos endpoints sem interromper a conexão do jogador.
+ **Escolha o algoritmo certo** — Selecione o algoritmo de seleção de endpoint que melhor atenda aos requisitos do seu jogo. Use o algoritmo de fallback para jogos baseados em turnos e o algoritmo de rotação preditiva para jogos em tempo real.