Temos uma função Google Cloud implantada em europe-west6 (Zürich), que faz chamadas HTTP para uma API. Nos logs do nosso servidor, essas chamadas HTTP são originadas do endereço IP 35.203.247.36, que mostra os EUA como origem. Eu esperava um endereço IP de origem da Suíça. Isso causa alguns problemas com configurações de bloqueio geográfico.
Encontrei este tópico relacionado https://issuetracker.google.com/issues/72263361#comment91 , que afirma que isso deve funcionar conforme o esperado, mas os intervalos de IP vinculados parecem diferir de nossa observação:
{
"ipv4Prefix": "34.65.0.0/16",
"service": "Google Cloud",
"scope": "europe-west6"
}, {
"ipv4Prefix": "34.104.110.0/23",
"service": "Google Cloud",
"scope": "europe-west6"
}, {
"ipv4Prefix": "34.124.46.0/23",
"service": "Google Cloud",
"scope": "europe-west6"
}, {
"ipv4Prefix": "35.216.128.0/17",
"service": "Google Cloud",
"scope": "europe-west6"
}, {
"ipv4Prefix": "35.220.44.0/24",
"service": "Google Cloud",
"scope": "europe-west6"
}, {
"ipv4Prefix": "35.235.216.0/21",
"service": "Google Cloud",
"scope": "europe-west6"
}, {
"ipv4Prefix": "35.242.44.0/24",
"service": "Google Cloud",
"scope": "europe-west6"
}, {
"ipv6Prefix": "2600:1900:4160::/44",
"service": "Google Cloud",
"scope": "europe-west6"
}
Por que nossas chamadas de API não se originam de um desses intervalos de IP?
Então, expandindo alguns dos comentários:
Quando você olha para o roteamento real do tráfego para esse IP, por exemplo, com um espelho de https://he.net , isso mostra uma rota através de uma troca de internet suíça, sugerindo que o endereço IP está de fato localizado na Suíça.
O endereço IP observado
35.203.247.36
faz parte de um grande intervalo 35.192.0.0 - 35.207.255.255 (35.192.0.0/12) que o Google atribuiu para uso pelos clientes do Google Cloud. O Google publica automaticamente um feed de geolocalização em http://www.gstatic.com/ipranges/cloud_geofeed ( versão JSON ), mas esse feed não inclui todas as sub-redes que eles criaram e não existe nenhuma entrada para uma sub-rede contendo35.203.247.36
uma região ou local mais específico .Na ausência desse registro mais específico, é provável que seu banco de dados GeoLocation tenha usado Mountain View, Califórnia, EUA, pois esse é o endereço do registro nos dados whois .
Um endereço IP representa um local de rede e não uma longitude/latitude ou endereço de rua.
Embora muitas vezes seja uma aproximação utilizável, a confiabilidade e a precisão reais da localização atribuída a um endereço IP variam entre a precisão de quase um quarteirão da cidade e a ficção completa.
Considere que os protocolos de roteamento permitem que o proprietário/operador ajuste quase instantaneamente sua sub-rede interna e altere onde na Internet um determinado endereço IP (intervalo/sub-rede) pode ser usado. O local onde um determinado endereço IP (intervalo) é usado hoje não precisa ser o mesmo local onde será usado amanhã. E também há o anycast , no qual um único endereço IP é compartilhado por servidores em vários locais .
Apesar das reivindicações de precisão/completude dos provedores de IP GeoLocation, o endereço que muitos desses bancos de dados usarão para um endereço IP de intervalos de endereços IP corporativos frequentemente será padronizado para o endereço encontrado no registro Whois . Esse endereço é muitas vezes uma sede corporativa, não um endereço de datacenter nem, por exemplo, uma filial (internacional) onde (após sub-redes internas) parte do espaço de endereço IP é realmente atribuída e usada.
E até mesmo os provedores oferecem uma indicação de precisão (como, por exemplo, como Maxmind mostra um raio de precisão de a
1000 km
para 35.203.247.36 versus20 km
45.79.90.233 e apenas 5 km para a localização realmente precisa dos meus endereços IP residenciais) que a incerteza ou A sutileza da (falta de) precisão é completamente removida quando seus dados de localização IP são nivelados em blocos baseados em localização e listas de permissões.Em geral, quando possível, use os endereços IP de clientes conhecidos e confiáveis em suas listas de permissão, em vez de conceder acesso com base em dados de localização geográfica de IP.
É possível associar um IP estático à sua função de nuvem do Google para facilitar isso: