Por que o rótulo de país de uma VPN não é o endereço de saída
Um campo da lista, um endereço roteado e a opinião de um aplicativo podem discordar. Descubra qual dos três você está lendo antes de chamar a saída de mal rotulada.
Você escolhe um país, conecta-se, e um site dá as boas-vindas em outro. O rótulo da lista nunca prometeu nada sobre o endereço de onde você sairia: é um campo que alguém publicou, derivado por um método que você não viu. Tratar esse campo como um endereço é onde a confusão começa.
Três coisas distintas carregam um valor de país, e podem discordar sem que ninguém minta. Distingui-las torna a discrepância diagnosticável em vez de misteriosa.
Três coisas diferentes carregam um rótulo de país
A primeira é o campo do próprio diretório, que pode ser declarado pelo operador, deduzido de uma base de dados de endereços ou simplesmente copiado quando a entrada foi criada. A segunda é o endereço em si, que pertence à rede que o anuncia, e é isso que uma consulta de geolocalização responde usando dados de mapeamento publicados na forma descrita pelo RFC 8805. A terceira é o que um aplicativo decide mostrar, que pode vir de outra base de dados, de uma configuração de conta ou de uma permissão que você concedeu no dispositivo. Só a segunda é um fato de rede, e mesmo ela é uma consulta, não uma observação.
Coerência entre essas três seria agradável e não é exigida em lugar nenhum. Uma discrepância é evidência de que foram derivadas de formas diferentes, nada mais.
Verifique o endereço, não a bandeira
A pergunta útil é de qual endereço público o seu tráfego realmente sai. Isso pode ser respondido a partir do cliente, e não depende de nenhum campo da lista. Compare a resposta com o prefixo que você esperava e com o que uma consulta de geolocalização diz sobre ela, mantendo os dois resultados separados nas suas notas. Uma diferença entre o país esperado e a consulta é uma questão de roteamento ou de base de dados, enquanto uma diferença entre a consulta e a opinião do aplicativo é de novo uma questão de base de dados.
Faça a verificação duas vezes se o serviço tiver várias saídas na região. Um conjunto de endereços pode entregar endereços diferentes em conexões sucessivas, e uma amostra descreve apenas uma delas.
Proximidade no mapa não é proximidade na rede
Um país próximo pode ser um caminho mais longo que um distante, porque a rota de fibra não segue a fronteira. Escolher um nó por latência significa medir o destino que lhe importa em vez de escolher a bandeira mais próxima. A mesma lógica se aplica à capacidade, porque uma saída pouco carregada a dois países de distância pode superar uma saturada ao lado. Meça primeiro, decida depois, e anote a hora porque ambos os números se movem.
A localização também não diz nada sobre retenção nem sobre quem opera o ponto final. Isso exige provas próprias, que uma coluna de país não pode conter.
Confirme você mesmo o endereço de saída
Pergunte ao cliente e a um serviço externo como o seu endereço aparece, depois pergunte à tabela de roteamento local como essa rota foi escolhida. Os comandos abaixo fazem as três coisas, e a terceira é a que as pessoas pulam. Substitua o nome da interface pelo seu próprio dispositivo de túnel.
curl -sS https://api.ipify.org; echo
curl -sS --interface tun0 https://api.ipify.org; echo
ip route get 1.1.1.1
ip -6 addr show dev tun0
As duas primeiras linhas devem coincidir, e quando não coincidem, a rota que você acha que tem não é a rota que carrega o seu tráfego. A consulta de rota indica a interface e o endereço de origem que o núcleo usaria para um destino, e esse é o mecanismo por trás do endereço de saída. A linha IPv6 importa porque uma máquina pode manter um túnel para uma família e um caminho direto para a outra. Um rótulo de país não cobre nenhum desses casos por si só.
Anote o endereço observado, a opinião da base de dados e a exibição do aplicativo como três notas separadas. Então a próxima discrepância que você encontrar será fácil de atribuir.