この記事の範囲について:ここで説明するのは地域制限の背後にある仕組みと、それがなぜ一貫しない結果を生むのかです。アクセス制限を回避する手引きではありません。回避は同意した利用規約に反することが多く、法域によってはそれ以外の規則にも触れます。

ジオブロックはたいてい「サイトがIPアドレスを見ている」と説明されますが、それは話のおよそ3分の1です。実際には、制限はいくつもの違う地点——リゾルバー、CDNのエッジ、アプリケーション、決済代行、アプリストア——で評価され、それぞれの地点が、あなたがどの国に属するかを決めるのに別々の信号を読んでいます。信号が食い違うと、多くの人が実際に出会う、あの中途半端で分かりにくい挙動が生まれます。

見かけ上の国は、どの信号で決まるのか?

少なくとも9つあり、それぞれ別の層で、別の当事者に読まれています。

信号 読む側 通常の精度 よくある破綻
位置情報データベース経由のIPアドレス CDN、アプリケーション 国レベルはおおむね良好、市レベルはかなり弱い 割り当て変更、古いデータ
CDNのエッジの位置 CDN自身 地理ではなくネットワークの構造を反映 最寄りのエッジが別の国にあることも
Accept-Language ヘッダー アプリケーション 位置ではなく言語の好み 英国設定のブラウザで海外にいる場合
ブラウザのタイムゾーンとロケール クライアント側のスクリプト 端末の設定 IPと簡単に食い違う
アカウントの登録国 アプリケーション 登録時に入力された値そのまま 引っ越しても更新されない
カードの発行国(BIN) 決済代行 カードについては信頼できる 利用者の所在と乖離する
請求先住所 決済代行 アカウントについては信頼できる 同じ乖離が起きる
アプリストアのストアフロント アプリ基盤 ストアのアカウントに紐づく 端末の位置とは無関係
SIM/キャリアコード モバイルアプリ SIMについては信頼できる ローミングとeSIMで話が複雑になる

構造上の要点はここです。このすべてを評価している当事者は、どこにもいません。 CDNはIPを見ますが、あなたのカードは見ません。決済代行はカードを見ますが、そのページを配ったエッジは見ません。答えを突き合わせる者は誰もいないので、1つのサービスがあなたを、2つのサブシステムで同時に2つの国の住人として扱うことがありえます。

IPの位置情報は、実際にどうやって国を割り出しているのか?

測定によってではなく、登録情報と経路情報からの推定によってです。

位置情報データベースは、地域インターネットレジストリの割り当て記録、自律システムの所有情報、BGPの経路広告、測定点間の遅延による三角測量、そしてネットワーク事業者や利用者から提出された訂正を組み合わせて作られています。出てくるのは定期的に更新される最良の推定値です。

その成り立ちが、破綻の型を説明します。

  • アドレス帯は事業者や国のあいだで再割り当てされ、データベースの反映は数週間かそれ以上遅れます。
  • キャリアグレードNATはモバイル網で、数千の加入者を、事業者が選んだ場所に登録された少数のアドレスの背後に押し込めます。
  • 企業ネットワークは中央のゲートウェイから通信を外に出すため、どの支社も本社にいるように見えます。
  • IPv4とIPv6で対応づけが違うことがあり、同じ回線でも、リクエストがどちらのプロトコルを使ったかで答えが変わります。
  • 衛星回線や一部の法人回線は、端末の位置とは無関係な事務上の住所で登録されています。

国レベルの精度はおおむね良好で、市レベルの精度はかなり落ちます。だからこそ、元になっているライセンスがもっと細かい単位で切られている場合でも、地域制限はふつう国境で引かれます。

リクエストのどの地点でブロックが起きているのか?

多くの人が思うより手前です。だからブロックは即座に、そして一様に返ってきます。

実行する側 見える現象
DNSの名前解決 リゾルバー、または国が義務づけたフィルター 名前が解決しない、または通知ページに解決される
ネットワーク経路 ISPのフィルタリング。IPまたはTLSのサーバー名に対して行われることが多い 接続がタイムアウトするかリセットされる
CDNのエッジ サイトのCDN。オリジンに問い合わせる前 「お住まいの地域では利用できません」が即座に出る
アプリケーション サイト自身のロジック。認証のあと カタログの中身が違う、または機能が無効になる
決済 決済代行と発行会社の規則 閲覧はできるが加入が通らない
アプリ配信 アプリストアのストアフロントの規則 そのアカウントではアプリが表示されない

商用サービスで最も多いのはCDNのエッジの場合です。判断がオリジンではなく、あなたの近くのポイント・オブ・プレゼンスで行われるため、ブロックは一貫して、遅延なしに適用されます。同じURLが、数百キロ離れただけで通常のページを返したり拒否を返したりするのは、これが理由です。

そもそも、なぜ制限が存在するのか?

理由は3つあり、それぞれ別の挙動を生みます。

ライセンス。 配信権は地域ごとに売られます。サービスがあなたを締め出しているというより、あなたのいる場所でその作品を提供する権利を持っていない、という話です。典型的な症状はカタログの中身の違いであって、サイトのブロックではありません。

規制への対応。 ある法域が義務——年齢確認、内容の規則、報告——を課し、事業者がその市場に提供する価値は対応コストに見合わないと判断する。典型的な症状は撤退のお知らせか、確認手続きの壁です。

国家によるフィルタリング。 制限はサービスが選んだものではなく、ネットワークに課されたものです。典型的な症状は、他のサイトは普通に動くのにそのサイトだけ到達できない、というもので、サービス側はあなたが試したことすら知りません。

この3つを区別するのは実際に役立ちます。責任の所在がそれぞれ違うからです。カタログの違いはサービスとのあいだの権利の問題であり、到達できないドメインは、サービスの手の届かないところにあるネットワークの問題です。

信号がこれほど頻繁に食い違うのはなぜか?

そもそも一致するようには設計されておらず、それぞれが別の当事者によって、別の目的のために保守されているからです。

あなたのIPは、通信がネットワークのどこから出ているかを映します。カードは、銀行がどこにあるかを映します。アプリストアのアカウントは、それを作ったときにあなたがどこにいたかを映します。アカウントの国は、登録時に——もしかしたら何年も前に——入力した内容を映します。どれか1つが変わっても他は更新されませんし、それらを突き合わせるプロトコルもありません。

利用者にとっての実践的な読み方は、対処法というより診断です。何かが部分的にしか動かないとき、うまくいかない段階がどの信号を読んでいるかを見極めてください。閲覧が失敗するならIPかネットワーク、加入が失敗するならカード、アプリが出てこないならストアフロント、カタログが違うならライセンス。それが分かれば、どこに問い合わせるべきか、そしてそもそも解決しうる問題なのかが分かります。

関連する疑問