범위에 관한 안내: 이 글은 지역 제한의 작동 원리와 그것이 왜 들쭉날쭉한 결과를 만드는지를 설명합니다. 접근 제어를 우회하는 방법을 다루는 글이 아닙니다. 우회는 대개 동의한 이용 약관을 위반하며, 일부 국가에서는 다른 규정도 건드립니다.

지역 차단은 보통 "사이트가 IP 주소를 확인한다"로 설명되는데, 그것은 이야기의 삼분의 일쯤입니다. 실제로 제한은 여러 지점에서 판정될 수 있습니다. 리졸버, CDN 엣지, 애플리케이션, 결제대행사, 앱스토어가 그렇고, 각 지점은 당신이 어느 나라에 속하는지 정하기 위해 서로 다른 신호를 읽습니다. 신호들이 어긋나면, 대부분의 사람이 실제로 겪는 그 어중간하고 헷갈리는 동작이 나옵니다.

어떤 신호들이 당신의 겉보기 국가를 정하나?

최소 아홉 가지이며, 서로 다른 계층에서 서로 다른 주체가 읽습니다.

신호 읽는 주체 통상적인 정확도 흔한 실패
지오로케이션 DB를 통한 IP 주소 CDN, 애플리케이션 국가 단위는 대체로 양호, 도시 단위는 훨씬 약함 재할당된 대역, 오래된 데이터
CDN 엣지 위치 CDN 자신 지리가 아니라 네트워크 구조를 반영 가장 가까운 엣지가 다른 나라일 수 있음
Accept-Language 헤더 애플리케이션 위치가 아니라 언어 선호 영국 설정 브라우저를 해외에서 쓰는 경우
브라우저 시간대와 로캘 클라이언트 스크립트 기기 설정 IP와 손쉽게 어긋남
계정 가입 국가 애플리케이션 가입할 때 입력한 값 이사해도 갱신되지 않음
카드 발급 국가(BIN) 결제대행사 카드에 대해서는 신뢰할 만함 이용자의 위치와 갈라짐
청구지 주소 결제대행사 계정에 대해서는 신뢰할 만함 같은 방식으로 갈라짐
앱스토어 스토어프런트 앱 플랫폼 스토어 계정에 묶임 기기 위치와 무관
SIM/통신사 코드 모바일 앱 SIM에 대해서는 신뢰할 만함 로밍과 eSIM이 상황을 복잡하게 만듦

구조적으로 중요한 지점은 이것입니다. 이 전부를 판정하는 주체는 하나도 없습니다. CDN은 IP는 보지만 카드는 못 봅니다. 결제대행사는 카드는 보지만 페이지를 내보낸 엣지는 못 봅니다. 그 답들을 맞춰 보는 곳은 아무 데도 없으므로, 한 서비스가 두 하위 시스템에서 당신을 동시에 두 나라 사람으로 취급할 수 있습니다.

IP 지오로케이션은 실제로 어떻게 국가를 정하나?

측정이 아니라 등록·라우팅 데이터로부터의 추정으로 정합니다.

지오로케이션 데이터베이스는 지역 인터넷 등록기관의 할당 기록, 자율 시스템 소유 정보, BGP 경로 공지, 측정 지점 사이의 지연 시간 삼각 측량, 그리고 네트워크 사업자와 이용자가 제출한 정정 사항을 합쳐서 만들어집니다. 그 결과는 주기적으로 갱신되는 최선의 추정치입니다.

이런 제작 방식이 실패 양상을 설명해 줍니다.

  • 주소 대역이 재할당됩니다. 사업자와 국가 사이를 오가는데, 데이터베이스는 그 변화를 몇 주 혹은 그 이상 뒤늦게 따라갑니다.
  • 캐리어급 NAT. 이동통신망에서는 수천 명의 가입자가 통신사가 정한 곳에 등록된 소수의 주소 뒤에 묶입니다.
  • 사내 네트워크. 트래픽을 중앙 게이트웨이로 내보내므로, 모든 지점 사무실이 본사에 있는 것처럼 보입니다.
  • IPv4와 IPv6가 다르게 매핑될 수 있습니다. 같은 회선인데도 요청이 어느 프로토콜을 썼느냐에 따라 답이 달라집니다.
  • 위성 회선과 일부 기업 회선은 단말의 위치와 무관한 행정 주소에 등록되어 있습니다.

국가 단위 정확도는 대체로 좋고 도시 단위 정확도는 훨씬 나쁩니다. 밑바탕 라이선스가 더 잘게 나뉘어 있을 때조차 지역 제한이 대개 국경 단위로 그어지는 이유가 그것입니다.

요청 경로의 어디에서 차단이 일어나나?

대부분이 짐작하는 것보다 이른 지점입니다. 차단이 즉각적이고 한결같이 나타나는 이유가 그것입니다.

계층 집행 주체 보이는 현상
DNS 조회 리졸버, 또는 국가가 강제한 필터 이름이 조회되지 않거나 안내 페이지로 조회됨
네트워크 경로 ISP 필터링. 보통 IP나 TLS 서버 이름 기준 연결이 시간 초과되거나 끊김
CDN 엣지 사이트의 CDN. 원본 서버에 닿기 전 즉각적인 "해당 지역에서는 이용할 수 없습니다"
애플리케이션 사이트 자체 로직. 인증 이후 카탈로그가 다르거나 기능이 꺼짐
결제 결제대행사와 카드사 규칙 둘러보기는 되는데 구독이 실패
앱 배포 앱스토어 스토어프런트 규칙 그 계정에는 앱이 표시되지 않음

상용 서비스에서 가장 흔한 것은 CDN 엣지의 경우입니다. 판정이 원본 서버가 아니라 이용자 가까이의 접속점에서 일어나므로 차단은 일관되게, 지연 없이 적용됩니다. 같은 URL이 수백 킬로미터 안쪽에서 어떤 곳에서는 정상 페이지를, 어떤 곳에서는 거절을 돌려주는 이유이기도 합니다.

애초에 이런 제한은 왜 있나?

이유는 세 가지이고, 각각 다른 현상을 만듭니다.

라이선스. 배급 권리는 지역별로 팔립니다. 서비스가 당신을 막는다기보다, 당신이 있는 곳에서 그 작품을 제공할 권리가 없는 것입니다. 전형적인 증상은 사이트 차단이 아니라 달라진 카탈로그입니다.

규제 준수. 어떤 나라가 연령 확인, 콘텐츠 규정, 보고 의무 같은 것을 부과하고, 사업자는 그 시장을 상대하는 것이 준수 비용만큼의 값어치가 없다고 판단합니다. 전형적인 증상은 서비스 철수 안내나 인증 벽입니다.

국가가 강제한 필터링. 제한이 서비스의 선택이 아니라 네트워크에 부과됩니다. 전형적인 증상은 다른 사이트는 멀쩡한데 그 사이트만 접속되지 않는 것이고, 서비스 쪽은 당신이 접속을 시도했다는 사실조차 모릅니다.

이 셋을 구분하는 것은 실제로 쓸모가 있습니다. 책임 주체가 다르기 때문입니다. 카탈로그의 차이는 서비스와의 권리 문제이고, 도메인에 닿지 않는 것은 서비스가 어쩌지 못하는 네트워크 문제입니다.

신호들은 왜 그렇게 자주 어긋나나?

애초에 서로 일치하도록 설계된 적이 없고, 각각을 다른 주체가 다른 목적으로 관리하기 때문입니다.

IP는 트래픽이 네트워크 밖으로 나가는 지점을 반영합니다. 카드는 은행이 어디에 있는지를 반영합니다. 앱스토어 계정은 그 계정을 만들 때 어디에 있었는지를 반영합니다. 계정 국가는 가입할 때, 어쩌면 몇 년 전에 입력한 값을 반영합니다. 하나가 바뀌어도 나머지는 갱신되지 않고, 이것들을 맞춰 주는 프로토콜도 없습니다.

이용자 입장에서 실용적인 독법은 해결이 아니라 진단입니다. 무언가가 일부만 작동한다면, 실패하는 단계가 어떤 신호를 읽고 있는지 짚어 보세요. 둘러보기가 안 되면 IP나 네트워크, 구독이 안 되면 카드, 앱이 안 보이면 스토어프런트, 카탈로그가 달라졌으면 라이선스를 가리킵니다. 그러면 어느 쪽에 문의해야 하는지, 그리고 애초에 해결될 수 있는 문제인지 알 수 있습니다.

관련 질문