IP compartilhado pela operadora (CGNAT) Carrier-grade NAT
ID da causa isp-cgnat · Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento), Infraestrutura de rede (Equipe de infraestrutura)
Redes móveis e algumas operadoras fazem vários assinantes dividirem um mesmo IP e apagam em pouco tempo o mapeamento das conexões ociosas.
Por quê O equipamento da operadora gerencia a tabela de sessões de uma enorme quantidade de assinantes → Efeito Limite da tabela de sessões, timeout de inatividade curto → Na tela Desconexão depois de ficar parado, falsos positivos que bloqueiam de uma vez todos que usam o mesmo IP
Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento), Infraestrutura de rede (Equipe de infraestrutura)
O que fazer (Equipe de desenvolvimento)
Cliente: enviar heartbeats em intervalos de no máximo metade do menor timeout de inatividade (em redes móveis, pode ser de cerca de 30 segundos), sempre a partir do cliente (o mapeamento do CGNAT da operadora só é renovado com certeza por pacotes que saem da rede interna), reconectar automaticamente se cair. Servidor: responder aos heartbeats e encerrar a conexão por conta própria se não receber nenhum por um certo tempo, usar um token de sessão para manter o mesmo jogador quando o mapeamento mudar e o endereço e a porta forem outros, ter cuidado com políticas de bloqueio por IP, porque várias pessoas podem dividir um IP (decidir junto com critérios de conta e de dispositivo).
O que fazer (Equipe de infraestrutura)
Ajustar os limites de conexões por IP e de novas conexões por segundo nos firewalls e equipamentos de proteção contra DDoS para os IPs compartilhados das operadoras (elevar o limite ou abrir exceção para os blocos das operadoras móveis).
Números de referência
Em redes móveis, o timeout de inatividade de UDP pode ser de cerca de 30 segundos.
No gráfico
Queda de conexões em massa · Desconexões (timeout de heartbeat), tempo ocioso antes da queda (por operadora)
Onde olhar
Ver nos logs de conexão quantas contas estão conectadas ao mesmo tempo por IP e de qual operadora (ASN), e juntar por operadora o tempo ocioso das conexões que caíram depois de ficar paradas. No lado do jogador, conferir o endereço de internet (WAN) na página de configuração do roteador
Confirma se
Nos blocos das operadoras móveis, várias contas conectam de um mesmo IP, e o tempo ocioso antes da queda se concentra em valores curtos, por volta de 30–60 segundos. O endereço WAN do roteador está em 100.64.0.0/10 (espaço de endereços compartilhado para o NAT das operadoras) ou é diferente do endereço que o servidor vê
Descarta se
Concentrado em quem usa roteador doméstico, independentemente da operadora: “Expiração do mapeamento NAT”
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo
RFC 6269: Issues with IP Address SharingIETF Quando muitos dividem um endereço, o bloqueio por IP (penalty box) também bloqueia os outros assinantes desse endereço