IPv6ジオロケーションの精度がIPv4に及ばない理由
IPv6ジオロケーションの精度は、一般にIPv4より低く、ばらつきも大きくなります。IPv6アドレスは非常に大きなプレフィックス単位で割り当てられ、クライアント端末では頻繁に変わり、位置情報データベースが頼りにする計測データを蓄積する時間も、はるかに短かったためです。
だからといって、IPv6の検索が役に立たないわけではありません。国レベルの答えは通常、信頼できますし、ネットワークの所有者はレジストリのデータに由来するため正確です。弱いのは都市レベルの精度で、開発者が驚きやすいのはこの部分です。この記事では、その原因と、アプリケーションでの対処法を説明します。
IPv6の位置情報データが作りにくい理由
IPv4アドレスは1つ1つが希少な資源なので、プロバイダやネットワークは小さく地理的に整ったブロックに分割する傾向があり、計測プロジェクトにはそれらをマッピングする数十年の時間がありました。IPv6はその経済性を逆転させます。家庭の契約者は通常、/56や/64のプレフィックスを受け取りますが、これだけでIPv4インターネット全体より多くのアドレスを含みます。ISPは、1回の広告で国全体を覆えるほど大きな割り当てを保有しています。
これにはいくつかの帰結があります。第1に、1つの大きなIPv6ブロックが多くの都市の顧客にサービスを提供することがあるため、ブロック全体に1つの位置を割り当てるデータベースは、その大半について誤ることになります。第2に、遅延、ルーティングデータ、ユーザーから寄せられた修正から位置を推定する手法は、プレフィックスあたりのサンプルが少なくなります。第3に、プレフィックス内の番号付けは、確実な形では地理と結びついていません。隣り合う2つの/48ブロックが、国の両端にいる顧客に割り当てられていることもあります。
疎であること自体も影響します。IPv4では、稼働しているアドレスの多くを観測できていると期待してよいでしょう。IPv6では、ほぼすべてのアドレスがある瞬間のある端末に固有であるため、データベースは個々のホストではなくプレフィックスから一般化しなければなりません。
プライバシーアドレス、モバイルネットワーク、トンネル
クライアント端末は通常、プライバシーのために一時的なIPv6アドレスをローテーションします。そのため同じ電話機が、1日のうちに1つのプレフィックス内の多数のアドレスで現れることがあります。ユーザーにとっては良いことですが、特定のアドレスを記憶しようとするアプローチは脆くなります。安定しているのはプレフィックスであり、優れた検索はそのレベルで動作します。
モバイル通信事業者は、さらに不確実性の層を加えます。電話機からのトラフィックは、地域ゲートウェイで事業者のネットワークを出ることが多く、見えているアドレスは端末ではなくゲートウェイの地域に対応付けられます。キャリアグレードNATの背後にあるIPv4にも同じことが当てはまりますが、IPv6のモバイル用プレフィックスは大きく、広い地域で共有されていることがよくあります。企業ネットワーク、VPN、IPv6トンネルブローカーも、ある国で登録されたプレフィックスを広告しつつ、トラフィックは別の国から発生することがあります。IPの位置情報が示すのは人ではなくネットワークである理由の記事で、この考え方を詳しく扱っています。
最後に、レジストリのデータは現実より遅れます。企業間や地域間で再割り当てされたプレフィックスは、しばらくの間、古い登録国を保持していることがあります。登録国は有力なヒントとして扱い、ユーザーの所在地の証拠としては扱わないでください。
IPv6で信頼できるものとできないもの
信頼できるのは、オリジンAS、プレフィックスを保有する組織、登録国、そのプレフィックスが予約済みまたはドキュメント用の範囲かどうかです。これらの事実はルーティングとレジストリのデータに由来し、端末の所在を推測することに依存しません。おおよそなのは、都市、地域、タイムゾーン、座標です。これらは、番地ではなく、そのネットワークがサービスを提供している地域を指すポインタとして扱ってください。
ipto のIP検索はIPv4とIPv6の両方を受け付け、国、都市、ASN、組織、フラグのis_vpn、is_tor、is_abuser、is_datacenter、bogonを含め、どちらにも同じフィールドを返します。IPv6の範囲とASNのデータセットは、IPv4のものと並行してベストエフォートで構築され、毎日更新されます。そのため、IPv6のカバレッジはIPv4より薄いことがあり、都市フィールドが欠けているのは通常の結果として処理すべきです。どちらのプロトコルについても特定の精度の割合は主張しません。テストセットを説明せずに主張する人には懐疑的であるべきです。
不確実性を前提にした設計
デュアルスタックのアプリケーションでうまく機能する実践的なルールは次のとおりです。
- コンプライアンス上の判断には国を使い、都市は、既定の天気の位置やフォームの事前入力など、緩やかなパーソナライズにのみ使います。
- ASNと組織をシグナルとして優先します。ASN lookupはネットワークの所有者と広告されている範囲を表示し、これはプロトコルのバージョンをまたいで安定しています。
- 推測ではなく、プレフィックスの登録済み割り当て、連絡先、日付が必要な場合は、RDAP経由のwhois lookupを実行します。
- ホスト名が存在する場合は逆引きDNSを確認します。キャリアやホスティング企業は、そこに都市や空港コードを埋め込むことがあるためです。これはヒントとしてのみ扱ってください。
- ユーザーが位置を修正できるようにし、修正はアドレスではなくアカウントに対して保存します。
- IPv6では、個々のアドレスではなくプレフィックス単位でキャッシュします。/64は通常、単一の契約者またはサイトに属するためです。
自社のトラフィックでテストしてください。完了した注文の配送先住所など、本当の位置がわかっているログから、1日分のIPv4とIPv6のアドレスを取り出して比較します。測定したその差が、自社の製品にとって意味のある数字であり、国やキャリアの構成によって異なります。