Géolocalisation IPv6 : pourquoi la précision est à la traîne
La précision de la géolocalisation IPv6 est généralement plus faible et moins régulière que celle de l'IPv4, car les adresses IPv6 sont allouées par préfixes très vastes, changent fréquemment sur les appareils clients et ont eu beaucoup moins de temps pour accumuler les données de mesure dont dépendent les bases de localisation.
Cela ne signifie pas que les recherches IPv6 sont inutiles. Les réponses à l'échelle du pays sont en général fiables, et la propriété du réseau est exacte parce qu'elle provient des données des registres. Le point faible est la précision à l'échelle de la ville, là où les développeurs sont souvent surpris. Cet article en explique les causes et ce qu'il faut faire dans une application.
Pourquoi les données de localisation IPv6 sont plus difficiles à construire
Une adresse IPv4 est une ressource unique et rare, si bien que les fournisseurs et les réseaux tendent à la découper en petits blocs géographiquement ordonnés, et que les projets de mesure ont eu des décennies pour les cartographier. L'IPv6 inverse l'économie du système. Un abonné résidentiel reçoit couramment un préfixe /56 ou /64, qui contient à lui seul plus d'adresses que l'ensemble de l'internet IPv4, et les FAI détiennent des allocations assez vastes pour couvrir tout un pays dans une seule annonce.
Plusieurs conséquences en découlent. D'abord, un seul grand bloc IPv6 peut servir des clients de nombreuses villes, de sorte qu'une base qui attribue une seule localisation à tout le bloc sera fausse pour la plupart d'entre eux. Ensuite, les stratégies qui déduisent la localisation à partir de la latence, des données de routage ou de corrections soumises par les utilisateurs disposent de moins d'échantillons par préfixe. Enfin, la numérotation à l'intérieur d'un préfixe n'est liée à la géographie d'aucune manière fiable : deux blocs /48 voisins peuvent être attribués à des clients situés aux deux extrémités d'un pays.
L'extrême dispersion compte aussi. En IPv4, on peut raisonnablement espérer avoir observé une grande partie des adresses actives. En IPv6, presque chaque adresse est propre à un instant et à un appareil, et les bases doivent donc généraliser à partir des préfixes plutôt qu'à partir d'hôtes individuels.
Adresses de confidentialité, réseaux mobiles et tunnels
Les appareils clients font généralement tourner des adresses IPv6 temporaires pour préserver la vie privée, de sorte qu'un même téléphone peut apparaître sous de nombreuses adresses au sein d'un même préfixe au cours d'une journée. C'est bon pour les utilisateurs, mais cela rend fragile toute approche qui tente de mémoriser une adresse précise. Ce qui reste stable, c'est le préfixe, et une bonne recherche travaille à ce niveau.
Les opérateurs mobiles ajoutent une couche d'incertitude supplémentaire. Le trafic d'un téléphone sort souvent du réseau de l'opérateur par une passerelle régionale, si bien que l'adresse que vous voyez correspond à la région de la passerelle et non au terminal. Il en va de même pour l'IPv4 derrière un NAT de niveau opérateur, mais les préfixes mobiles IPv6 sont fréquemment vastes et partagés sur de grandes zones. Les réseaux d'entreprise, les VPN et les courtiers de tunnels IPv6 peuvent aussi annoncer des préfixes enregistrés dans un pays alors que le trafic provient d'un autre. Notre article sur pourquoi une localisation IP décrit un réseau et non une personne détaille ce raisonnement.
Enfin, les données des registres retardent sur la réalité. Un préfixe réaffecté entre entreprises ou régions peut conserver un temps son ancien pays d'enregistrement ; considérez donc le pays d'enregistrement comme un indice fort et non comme la preuve de l'endroit où se trouve l'utilisateur.
Ce qui est fiable en IPv6 et ce qui ne l'est pas
Fiable : l'AS d'origine, l'organisation qui détient le préfixe, le pays enregistré, et le fait que le préfixe soit une plage réservée ou de documentation. Ces éléments proviennent des données de routage et des registres et ne dépendent pas d'une supposition sur l'emplacement d'un appareil. Approximatif : la ville, la région, le fuseau horaire et toutes les coordonnées. Considérez-les comme une indication de la zone desservie par le réseau, et non comme une adresse postale.
ipto accepte l'IPv4 et l'IPv6 dans la recherche IP et renvoie les mêmes champs pour les deux, notamment le pays, la ville, l'ASN, l'organisation et les indicateurs is_vpn, is_tor, is_abuser, is_datacenter et bogon. Le jeu de données de plages et d'ASN IPv6 est construit au mieux, parallèlement à celui de l'IPv4, et actualisé chaque jour ; la couverture peut donc être moins fournie pour l'IPv6 que pour l'IPv4, et l'absence du champ ville est un résultat normal que vous devez gérer. Nous n'annonçons aucun pourcentage de précision précis pour l'un ou l'autre protocole, et vous devriez vous méfier de quiconque le fait sans décrire son jeu de test.
Concevoir en tenant compte de l'incertitude
Des règles pratiques qui fonctionnent bien pour les applications à double pile :
- Utilisez le pays pour les décisions de type conformité et la ville uniquement pour une personnalisation légère, comme un emplacement météo par défaut ou un champ de formulaire prérempli.
- Privilégiez l'ASN et l'organisation comme signal. La recherche ASN indique le propriétaire et les plages annoncées d'un réseau, ce qui reste stable d'une version du protocole à l'autre.
- Lancez une recherche whois via RDAP lorsque vous avez besoin de l'allocation enregistrée, du contact et des dates d'un préfixe plutôt que d'une supposition.
- Vérifiez le DNS inverse lorsqu'un nom d'hôte existe, car les opérateurs et les hébergeurs y encodent parfois une ville ou un code d'aéroport. Ne le prenez que comme un indice.
- Laissez les utilisateurs corriger leur localisation, et enregistrez la correction sur le compte plutôt que sur l'adresse.
- Mettez en cache par préfixe plutôt que par adresse individuelle pour l'IPv6, car un /64 appartient généralement à un seul abonné ou site.
Testez avec votre propre trafic. Extrayez de vos journaux une journée d'adresses IPv4 et IPv6 dont vous connaissez la vraie localisation, par exemple les adresses de livraison de commandes finalisées, et comparez. L'écart que vous mesurez est le chiffre qui compte pour votre produit, et il variera selon le pays et la répartition des opérateurs.