IP 위치 추정은 실제로 어떻게 작동하는가
IP 지리위치 추적은 어떻게 작동하나요?
IP 주소에는 좌표가 담겨 있지 않습니다. 프로토콜 안에 GPS 칩이 있는 것도 아니고, 패킷 헤더에 위도 필드가 있는 것도 아니며, 기계가 어디에 있는지 알려 주는 신호기도 없습니다. IPv4 주소는 32비트의 라우팅 정보이고, IPv6 주소는 128비트입니다. 지리위치 서비스가 장소에 관해 알려 주는 모든 것은 주소 자체에서 읽어 낸 것이 아니라, 그 주소를 둘러싼 증거로부터 추론된 것입니다. 그 추론이 어떻게 이루어지는지, 그리고 어디에서 무너지는지를 이해하는 것이야말로 추적기 같은 도구를 제대로 활용하는 것과 그 결과를 오독하는 것 사이의 차이를 만듭니다.
"IP 지리위치 추적은 어떻게 작동하는가"라는 질문에 대한 짧은 답은 이렇습니다. 데이터베이스는 어떤 주소 블록에 관한 여러 독립적인 공개 신호를 서로 대조하고, 이들을 견주어 가중치를 매긴 뒤, 신뢰도 수준과 함께 최적의 추정치를 발표합니다. 긴 답은 계층별로 하나씩 짚어 볼 가치가 있습니다.
1계층: 등록 기록
모든 공개 IP 주소는 다섯 개의 지역 인터넷 등록기관(Regional Internet Registry) 중 하나에 의해 할당됩니다. ARIN(북미), RIPE NCC(유럽, 중동 및 중앙아시아), APNIC(아시아·태평양), LACNIC(라틴아메리카 및 카리브해), 그리고 AFRINIC(아프리카)입니다. 각 등록기관은 어떤 블록을 누가 보유하고 있는지, 그리고 등록자의 기록상 국가가 어디인지를 공개합니다. 이것이 가장 기초가 되는 신호입니다. 권위 있고, 공개되어 있으며, 할당된 위치에 그대로 남아 있는 주소의 경우 국가 수준에서는 좀처럼 틀리지 않습니다. 다만 도시에 관해서는 아무것도 말해 주지 않으며, 등록자의 개별 고객들이 어디에 있는지도 말해 주지 않습니다. 전국 규모 ISP의 전체 할당분이 단 하나의 등록자 주소를 지니기 때문입니다. 등록기관은 또한 각 블록을 자율 시스템(Autonomous System)에 연결하는데, 이것이 바로 ASN 조회가 흔히 어떤 추적에서든 가장 신뢰할 만한 부분이 되는 이유입니다.
2계층: ISP가 공개한 데이터
일부 네트워크 운영자는 자체 지리위치 데이터를 자발적으로 공개합니다. 표준화된 형태는 지오피드(geofeed)인데, 이는 RFC 8805에 기술된 CSV 파일로서 주소 범위를 국가, 지역, 도시에 대응시킵니다. ISP가 정확한 지오피드를 관리하는 경우, 데이터베이스 공급업체는 이를 높은 신뢰도의 입력으로 취급합니다. 어느 프리픽스가 어느 대도시권을 담당하는지는 운영자가 그 누구보다 잘 알기 때문입니다. 다만 그 적용 범위는 고르지 않습니다. 대규모 콘텐츠 네트워크와 앞서 나가는 ISP는 피드를 공개하지만, 많은 운영자는 아무것도 공개하지 않으며, 일부는 오래된 것을 공개합니다.
3계층: 지연 시간 측정
광섬유 속 빛은 물리 법칙의 한계를 벗어날 수 없습니다. 프랑크푸르트에 있는 측정 서버가 어떤 주소에 4밀리초 만에 도달한다면, 그 주소는 상파울루에 있을 수 없습니다. 공급업체는 수십 개의 관측 지점에서 주소 범위에 핑을 보내 삼각측량하는 측정 네트워크를 운영합니다. 각 왕복 시간은 최대 거리의 원을 그리고, 여러 원이 교차하는 지점이 그럴듯한 영역을 좁혀 줍니다. 지연 시간 삼각측량은 어떤 지역을 배제하는 데는 뛰어나지만 도시를 정확히 찍어 내는 데는 그저 그렇습니다. 라우팅 우회, 대기열 지연, 마지막 구간의 기술이 모두 왕복 시간을 예측 불가능하게 부풀리기 때문입니다.
4계층: 크라우드소싱 GPS 상관관계
가장 세밀한 신호는 두 가지를 동시에 보고하는 기기들로부터 나옵니다. 위치 권한을 요청하는 모바일 애플리케이션과 웹사이트는 GPS 측위값과 그것이 도착한 공개 IP를 함께 관측하며, 동의한 수백만 세션에 걸쳐 이를 집계하면 어떤 주소 범위가 어떤 동네에 나타나는지에 대한 통계적 지도가 만들어집니다. 이는 강력하지만 쉽게 낡습니다. ISP는 주소 풀을 재배정하며, 지난 분기에 어느 교외에 몰려 있던 블록이 오늘은 다른 곳을 담당하고 있을 수 있습니다. 또한 중요한 점은, 이것이 범위에 관한 집계 데이터라는 사실입니다. 어떤 단일 주소 뒤에 있는 개인을 식별하지 않으며, 식별할 수도 없습니다. 이 점은 IP가 당신의 주소를 드러내는가에서 더 깊이 다룹니다.
5계층: 호스트명 단서
네트워크 엔지니어는 라우터에 장소의 이름을 붙입니다. 백본 홉에 대한 역방향 DNS 조회는 흔히 lon-edge-02.example.net이나 ae1.cr2.ord7.example.net 같은 것을 반환하는데, 관례에 따라 공항 코드와 도시 코드가 박혀 있습니다(LON은 런던, ORD는 시카고). 이런 호스트명을 해석하면 인프라의 위치를 알 수 있으며, 이름이 붙은 접속 지점(point of presence)을 통해 라우팅되는 최종 사용자 주소는 아마도 그 근처에서 서비스를 받고 있을 것입니다. 다만 이 신호는 정황적입니다. 명명 규칙은 운영자마다 다르고, 이름은 위치 이전보다 오래 남으며, 고객은 자신을 담당하는 엣지 라우터로부터 수백 킬로미터 떨어져 있을 수도 있습니다.
| 신호 | 출처 | 일반적인 해상도 | 주요 약점 |
|---|---|---|---|
| 등록 기록 | 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 같은 제품은 다섯 계층을 모두 지속적으로 수집하고, 충돌을 알고리즘으로 해소한 뒤, 스냅샷을 발표합니다. 무료 판은 보통 월 단위로, 상용 판은 더 자주 발표합니다. 인터넷의 주소 지도가 그 아래에서 움직이기 때문에 이 갱신 주기가 중요합니다. 어떤 블록이 매각되거나, 임대되거나, 새로운 국가에서 다시 공지되면, 아직 그것을 재관측하지 못한 모든 데이터베이스는 이전 위치를 계속 보고합니다. 오래된 할당은 국가가 틀린 결과의 가장 흔한 단일 원인입니다. 유럽의 중개업자에서 아시아의 클라우드 운영자에게로 이전된 주소 범위가 몇 달 동안 엉뚱한 대륙으로 위치가 잡힐 수 있습니다. 공지하는 네트워크를 확인해 보면(ASN이란 무엇인가 참고) 이 불일치가 드러나는 경우가 많습니다. BGP 공지는 몇 분 만에 갱신되는 반면, 지리위치 스냅샷은 몇 주 만에 갱신되기 때문입니다.
계층들이 하나의 실시간 조서로 조립되는 모습을 보려면 8.8.8.8의 예시 추적을 실행해 보십시오. 등록 데이터, AS 운영자, 역방향 DNS, 그리고 지리위치 추정치가 나란히 나타나며, 각각 무엇을 주장할 수 있고 무엇을 주장할 수 없는지가 표시됩니다. 그 투명성이 바로 요점입니다. IP 지리위치 추적은 네트워크를 대략적인 지역에 배치하는, 잘 보정된 통계 도구입니다. 그리고 사람을 찾아내는 데에는 근본적으로 잘못된 도구이며, 애초에 그것을 할 수 없습니다.