Geolocalização e a Internet
Importância da Geolocalização
Diversos serviços disponibilizados na Internet, dependem da Geolocalização para definir quais conteúdos e como entregá-los em uma determinada região do Mundo. Um determinado conteúdo pode estar em um idioma, por exemplo, se acessado dos EUA e em nosso idioma se acessado do Brasil, publicidades direcionadas a um público específico de tal localidade, notícias relevantes de determinada região, entretenimento, games. Provedores de conteúdo conseguem direcionar o usuário para o sistema mais próximo dele e com isso melhorar em muito a experiência com o serviço. Ela se baseia na correlação correta entre o prefixo IP do ISP, que o usuário utiliza para acessar a Internet, e o País, Estado e Cidade onde este está sendo utilizado.
Imaginem a seguinte situação: um ISP que possui um prefixo IP, que ainda não havia sido utilizado em nenhum equipamento da sua Operação e precisou aumentar a quantidade de IPs em uma das suas caixas de CGNAT. Ele fez o deploy corretamente na caixa e passou a entregar para seus assinantes aquele novo prefixo IP. Mas em determinado momento, o cliente que passou a usar um IP daquele prefixo tentou acessar o Netflix e se viu acessando um conteúdo completamente estranho para ele e em outro idioma. Bem provavelmente isso ocorreu porque seu IP fazia parte de um prefixo IP, cuja geolocalização estava apontando para um outro País. Não parece mas isso acontece bastante e por isso as bases de dados de geolocalização precisam estar sincronizadas e com os dados certos.
Temos 4 atores nesse processo da geolocalização:
- ISPs e qualquer entidade que possua um ASN e recursos IP. Esses precisam manter a informação assertiva de localização dos seus prefixos IP.
- As entidades que prestam o serviço de geolocalização e que precisam ter esses dados atualizados e corretos. As prestadoras de serviço de geolocalização precisam receber das entidades ASNs, as informações corretas e alimentar a sua base de dados.
- As empresas que buscam e contratam os serviços de geolocalização para fazer o controle e entrega dos seus conteúdos. A estes cabe utilizar as informações coletadas das bases de dados de geolocalização e decidir qual e como entregar seus conteúdos para aquele IP solicitante.
- O cliente do ISP, que é o consumidor direto do conteúdo fornecido pelas empresas de conteúdo, mencionadas acima. Esse apenas quer ter acesso ao conteúdo correto de sua região.
Geofeed
Agora que já sabemos da importância da geolocalização em nossas vidas, vamos falar dos meios que temos para manter esse eco sistema bem atualizado. Um desses meios é usando o Geofeed ou feed de geolocalização, ele é um arquivo contendo dados no formato csv e que está definido na RFC 8805. Sua criação é bem simples onde cada linha é composta pelo prefixo IP seguido pelos dados de geolocalização dele, onde cada dado é separado por vírgula e alguns deles com padrões definidos na ISO 3166-1 alpha-2 Country Codes e ISO 3166-2 Region Codes. Vamos a um exemplo prático de um arquivo geofeed.txt:
# prefix,country_code,region_code,city,postal 192.0.2.0/24,BR,BR-RJ,Araruama, 2001:db8::/32,BR,BR-RJ,Araruama,
No exemplo acima, a primeira linha é um comentário do que seria cada dado separado pelas vírgulas. O primeiro é o prefixo IP em notação CIDR, o segundo é o código do país conforme a ISO 3166-1, o próximo é o código da região conforme a ISO 3166-2, o quarto campo simboliza a cidade e é texto livre UTF-8 mas não use acentuação, pois alguns serviços de geolocalização não aceitam. Exemplo: São Paulo, coloque como Sao Paulo. O último campo seria o CEP mas atualmente é considerado obsoleto e por isso finalizamos a linha com uma vírgula, indicando que não informamos o CEP.
A listagem de códigos de países pode ser encontrada facilmente fazendo uma pesquisa no Google mas aqui vai um link para ajudar. O Brasil como podemos perceber é o código BR. Os códigos de região também podem ser encontrados usando o mesmo processo de busca no Google mas aqui está um link para ajudar.
Agora que entendemos como montar nosso arquivo geofeed.txt, você pode adicionar nele todos os prefixos IP e suas localidades, um por linha e após concluir que verificar que está tudo OK, você deve hospedar ele no seu domínio, atrás do seu site por exemplo: https://www.seusite.com.br/geofeed.txt. Dessa forma, um serviço de geolocalização, que tenha seu link do seu geofeed.txt, conseguirá atualizar a base de dados automaticamente. Usando esse recurso, basta seu arquivo estar sempre atualizado e aguardar um tempo para que os dados tenham efeito. Um exemplo prático e público é o Geofeeds do LACNIC que pode ser baixado clicando nesse link.
Ok. Já temos nosso arquivo Geofeed pronto e hospedado em nosso site, como consigo utilizá-lo?
Contactando alguns serviços de Geolocalização
Existem muitas empresas que vendem o serviço de Geolocalização mas sem dúvida a mais conhecida é a MAXMIND e se seu prefixo IP está cadastrado errado neles, você terá grandes dores de cabeça, começando pelos grandes fornecedores de conteúdos de streaming e games. Abaixo uma lista interessante para você procure atualizar seu Geofeed:
- MAXMIND: aceita Geofeed mas só para Operações que possuem muitas atualizações de prefixos e necessita de um controle maior sobre esses dados. Se sua Operação se enquadra nesse quesito, basta enviar um e-mail em inglês explicando a necessidade do uso do Geofeed para [email protected], informando o link de acesso do seu https://www.seusite.com.br/geofeed.txt e aguardar o contato de retorno deles. Casos pequenos como o exemplo que citei acima, não são aceitos o Geofeed e eles pedem para que usem esse link para entrada de correções. Como pode ser visto abaixo o site é bem intuitivo, basta selecionar e preencher os campos abaixo e enviar. Mas antes de solicitar qualquer correção, consulte aqui para ver se o IP já não está certo.
- ipregistry: para consultar a geolocalização de um IP basta acessar este link e fazer a consulta. Se o prefixo IP precisar ser ajustado, envie um e-mail para [email protected] com o assunto Request for Correction e no corpo do e-mail envie em inglês uma cordial apresentação e o link para o seu Geofeed, que no nosso exemplo seria: https://www.seusite.com.br/geofeed.txt
- dbip: