IP位置情報の実際の仕組み

IPジオロケーションはどのように機能するのか

IPアドレスには座標が含まれていません。プロトコルにGPSチップはなく、パケットヘッダーに緯度のフィールドもなく、マシンの所在を報告するビーコンも存在しません。IPv4アドレスは32ビットのルーティング情報であり、IPv6アドレスは128ビットです。ジオロケーションサービスが場所について伝える情報はすべて、アドレスそのものから読み取られたものではなく、アドレスを取り巻く手がかりから推測されたものです。その推測がどのように機能するのか、そしてどこで破綻するのかを理解することが、トレーサーのようなツールをうまく使いこなすか、その出力を読み誤るかの分かれ目になります。

「IPジオロケーションはどのように機能するのか」という問いへの短い答えはこうです。データベースは、あるアドレスブロックに関するいくつかの独立した公開シグナルを相互に関連付け、それらを互いに比較検討し、確度レベルとともに最善の推定値を公表します。長い答えは、階層ごとに順を追って見ていく価値があります。

第1層:レジストリの記録

すべての公開IPアドレスは、5つの地域インターネットレジストリのいずれかによって割り当てられます。ARIN(北米)、RIPE NCC(ヨーロッパ、中東、中央アジア)、APNIC(アジア太平洋)、LACNIC(ラテンアメリカおよびカリブ海地域)、そしてAFRINIC(アフリカ)です。各レジストリは、どのブロックを誰が保有しているか、そして登録者の登録上の国を公開しています。これは最も基礎的なシグナルです。権威があり、公開されており、割り当てられた場所に留まっているアドレスについては国レベルで誤ることはめったにありません。しかし、都市については何も語らず、登録者の個々の顧客がどこにいるかについても何も語りません。全国規模のISPの割り当て全体が、1つの登録者アドレスを持つのです。レジストリはまた、各ブロックを自律システムに結びつけます。これが、ASNルックアップがあらゆるトレースの中で最も信頼できる部分であることが多い理由です。

第2層:ISPが公開するデータ

一部のネットワーク事業者は、自らのジオロケーションデータを自発的に公開しています。その標準化された形式がジオフィードです。これはRFC 8805で規定されたCSVファイルで、アドレス範囲を国、地域、都市に対応付けます。ISPが正確なジオフィードを維持している場合、データベースベンダーはそれを高い確度の入力として扱います。なぜなら、どのプレフィックスがどの都市圏にサービスを提供しているかは、事業者が誰よりもよく知っているからです。ただし、カバー範囲は一様ではありません。大規模なコンテンツネットワークや先進的なISPはフィードを公開していますが、多くの事業者は何も公開しておらず、一部は古くなったものを公開しています。

第3層:遅延の測定

光ファイバー中の光は物理法則によって制限されています。フランクフルトにあるプローブサーバーがあるアドレスに4ミリ秒で到達するなら、そのアドレスがサンパウロにあることはあり得ません。ベンダーは測定ネットワークを運用し、数十の観測地点からアドレス範囲にpingを送って三角測量を行います。各往復時間が最大距離の円を描き、多数の円が交わる領域が、あり得る範囲を絞り込みます。遅延による三角測量は、地域を除外することには長けていますが、都市を特定することは苦手です。ルーティングの迂回、キューイング遅延、ラストマイルの技術がすべて、予測不能なかたちで往復時間を膨らませるからです。

第4層:クラウドソーシングによるGPS相関

最も粒度の細かいシグナルは、両方の情報を同時に報告するデバイスから得られます。位置情報の許可を求めるモバイルアプリケーションやウェブサイトは、GPSによる位置測定と、それが届いた公開IPアドレスの両方を観測します。同意した数百万のセッションにわたって集約することで、どのアドレス範囲がどの地域に現れるかの統計的な地図が構築されます。これは強力である一方で、鮮度が失われやすいものでもあります。ISPはアドレスプールを再割り当てするため、前四半期にある郊外に集中していたブロックが、今日は別の場所にサービスを提供しているかもしれません。そして重要なことに、これは範囲に関する集約データであり、単一のアドレスの背後にいる個人を特定するものではなく、また特定することもできません。この点については、IPから住所が分かるのかでより詳しく取り上げています。

第5層:ホスト名の手がかり

ネットワークエンジニアは、ルーターに場所の名前を付けます。バックボーンのホップに対する逆引きDNSルックアップは、lon-edge-02.example.netae1.cr2.ord7.example.netのようなものを返すことがよくあります。これは慣例によって埋め込まれた空港コードや都市コードです(LONはロンドン、ORDはシカゴ)。こうしたホスト名を解析するとインフラの位置が分かり、名前の付いたポイント・オブ・プレゼンスを経由してルーティングされるエンドユーザーのアドレスは、おそらくその近くからサービスを受けています。ただし、このシグナルは状況証拠にすぎません。命名規則は事業者によって異なり、名前は移転後も残り、顧客は自分にサービスを提供するエッジルーターから数百キロメートル離れた場所にいることもあります。

シグナル 情報源 一般的な解像度 主な弱点
レジストリの記録ARIN、RIPE NCC、APNIC、LACNIC、AFRINIC登録者の住所であり、ユーザーの位置ではない
ジオフィードISPによる自己公開(RFC 8805)都市カバー範囲がまばらで、古くなっていることもある
遅延プローブベンダーの測定ネットワーク地域ルーティングの迂回が距離を膨らませる
GPS相関同意した多数のデバイスの集約都市/地区ISPがプールを再割り当てすると精度が低下する
ホスト名の手がかり逆引きDNSの命名規則インフラの都市ネットワーク変更後も名前が残る

なぜ答えが確定値ではなく推定値なのか

単一の層だけでは決定的にならないため、ベンダーはそれらを組み合わせます。各層が一致する場合、たとえばレジストリの国が遅延の制約と合致し、ジオフィードがGPSの集中が示唆するのと同じ都市を挙げる場合、確度は高くなります。各層が食い違う場合、推定範囲は広がります。だからこそ、誠実な結果は常にピンではなく確度半径を伴います。その出力が意味するのは「この範囲はおそらくこの地域にサービスを提供している」ということであって、決して「このデバイスはこの座標にある」ということではありません。測定された精度は、この構造を反映しています。国レベルの答えはおよそ95〜99パーセントの確率で正しく、地域レベルの答えは55〜80パーセント、固定ブロードバンドでの都市レベルの答えは50〜75パーセントです。モバイルキャリア、VPNの出口ノード、衛星回線については、あらゆるレベルで頻繁に誤ります。詳しい数値はIPジオロケーションの精度にまとめてあります。

データベースはどのように編纂されるのか

DB-IP(Uplink Traceの位置情報層を支えています)やMaxMindのGeoLite2といった製品は、5つの層すべてを継続的に取り込み、アルゴリズムによって矛盾を解消し、スナップショットを公開します。無料版では通常は月次、商用版ではより頻繁に公開されます。インターネットのアドレス地図がその下で移り変わっていくため、更新サイクルは重要です。あるブロックが売却され、リースされ、あるいは新しい国から再アナウンスされると、まだそれを再観測していないすべてのデータベースは、古い位置を報告し続けます。割り当ての古さは、国を誤る結果の最も一般的な原因です。ヨーロッパのブローカーからアジアのクラウド事業者に移管されたアドレス範囲が、何か月にもわたって誤った大陸にジオロケーションされることがあります。アナウンスを行っているネットワークを確認すること(ASNとは何かを参照)で、この不一致が明らかになることがよくあります。BGPのアナウンスは数分で更新される一方、ジオロケーションのスナップショットは数週間かけて更新されるからです。

各層が組み合わさって生きたドシエになる様子を見るには、8.8.8.8のトレース例を実行してみてください。レジストリデータ、AS事業者、逆引きDNS、そしてジオロケーションの推定が並んで表示され、それぞれに何を主張でき、何を主張できないかがラベル付けされます。その透明性こそが要点です。IPジオロケーションは、ネットワークをおおよその地域に位置づけるための、よく較正された統計的な計器です。そして、人を特定するための計器としては本質的に誤りであり、それを行うことはできません。