Globalping 같은 서비스를 이용해 지리적 위치 추정이 가능한지 실험해본 작은 프로젝트임
단순한 데모 수준이라 실제 운영용으로는 부족함
제대로 쓰려면 각 단계마다 최소 500개의 probe가 필요함
익명 사용자 제한을 넘지 않으려다 보니 최적화는 일부러 피했음
probe 수를 줄이면서도 효율을 높이는 gradient descent 방식을 써볼 수 있을 것 같음
처음엔 여러 대륙에서 3회씩 측정하고, 가장 느린 probe를 버리고 빠른 쪽 근처에 새 probe를 추가하는 식으로 반복함
이렇게 하면 5단계로 나누는 대신 실시간으로 실제 위치를 ‘추적’할 수 있을 것 같음
latency를 스칼라 잠재장으로 보고 그 기울기를 이용하는 개념임
이론적으로는 3개의 probe면 충분하지 않음?
AI 없이 만든 점이 인상적임
커밋 메시지가 한 단어짜리라 웃겼지만 오히려 인간미가 느껴짐
코드에 “══════” 구분선이 있어서 일부는 Claude가 생성한 것 같다는 생각이 듦
측정 대상 서버가 소스 IP에 따라 인위적인 지연시간을 추가해서 위치를 속이는 게 가능한지 궁금함
충분히 가능함
예를 들어 fakeroute 같은 도구로 더 정교한 속임수도 가능함
실용성은 거의 없겠지만 재미있는 아이디어임
불가능하진 않지만, 그냥 ping 응답을 안 하는 게 훨씬 간단함
traceroute 자체가 해석하기 어려운 도구라 위조가 매우 쉬움
예전에 The Pirate Bay가 북한으로 이전한 척했던 사례처럼, AS가 BGP 경로에 가짜 AS를 추가해 더 그럴듯하게 만들 수도 있음
이런 기술이 VPN과의 숨바꼭질 게임으로 이어질 수도 있을 것 같음
관련 참고: Reddit 토론, HN 사례
미국의 일부 지역 ISP(Xfinity, Charter 등)는 Bufferbloat 때문에 이미 인위적 지연이 생김
1000/30Mbps 회선에서도 2500ms까지 지연이 발생함
DEFCON 31에서 발표한 ‘You Can’t Cheat Time’ 연구와 유사한 접근을 봤음 발표 영상
ping 기반 위치 추정의 한계는 다음과 같음:
IP는 이미 DB에 위치 정보가 있고, 라우팅 비대칭성이 거리 모델을 깨며, Anycast/CDN으로 하나의 IP가 여러 지역에 존재함, ICMP는 차단되거나 우선순위가 낮음
나는 ping 대신 HTTP(S) 지연시간 + ML(SVR) 모델을 써서 3.9만 개 데이터로 학습함
CloudFront 뒤쪽 서버 기준 약 600km 오차였음
정밀도보다 중요한 건 샌드박스 탐지, 지오펜스 악성코드, IP DB 실패 시 보조 위치 신호 제공임
만약 추적을 피하고 싶다면 모든 패킷에 무작위 지연을 추가하거나, ping 소스별로 의도적인 지연 규칙을 만들어 원하는 위치처럼 보이게 할 수 있음
지연시간 변동이 큰데도 이런 방식이 작동한다는 게 놀라움
예전에 네덜란드 친구와 이야기하다가, 내가 영국에서 NL 콘텐츠에 더 낮은 지연으로 접근한 적이 있었음
아마 피어링 품질 차이 때문일 것임
IPinfo에서 일하고 있음
IXPs 및 주요 인터넷 기관과 협력해 라우팅·피어링 데이터 공유 프로젝트를 진행 중임
어떤 국가는 다른 대륙의 IXP와 직접 피어링해 지연이 수천 km 차이 나는 경우도 있음
실제로 한 국가의 두 통신사 간 트래픽이 국외를 거쳐 돌아오는 사례도 있음
이런 현상을 측정 기반 지리정보 알고리즘으로 보정하고 있음
궁극적으로 IXPs, 통신사, 인터넷 거버넌스 기관이 이런 문제를 해결하도록 돕는 게 목표임
단순히 지역 회선 지연 때문일 수도 있음
VDSL이나 DOCSIS에서는 1km 구간에서만 5~15ms 지연이 생김
런던–암스테르담 간은 약 7ms 정도임
아마 가까운 PoP에서 캐시된 콘텐츠를 받아서일 수도 있음
예전엔 네덜란드 주요 도심에도 광케이블이 부족했음
내 도시에서 프랑스 서버까지 직선거리 250km인데, ping으로 계산하면 2000km로 나옴
즉, 실제보다 8배 이상 부풀려진 거리임
영국 서버가 더 멀지만 오히려 ping이 더 낮게 나옴
traceroute 기반 접근이 ping보다 현실적임
Dimitry에게 감사함. IPinfo 팀 전체가 언급에 고마워함
연구원 Calvin이 NANOG96에서 측정 기반 IP 지리정보에 대한 발표를 진행할 예정임 발표 링크
정말 멋진 아이디어와 실행력임
이런 프로젝트가 HN에 더 많았으면 좋겠음
글을 보니 단순히 가장 짧은 ping을 위치로 선택하는 방식인 것 같음
이건 너무 단순한 접근이라 삼각측량(triangulation) 을 쓰면 더 정확할 듯함
글에서도 언급했듯이, 목표는 단순한 proof of concept이었음
충분한 probe와 약간의 운만 있으면 의외로 잘 작동함
물론 더 똑똑한 방법이 많음
하지만 패킷은 직선으로 이동하지 않음, 그래서 단순 거리 계산은 의미가 없음
실제 서비스 환경에서 이런 기술을 써본 경험을 공유함
인터넷 라우팅에서는 삼변측량(trilateration) 이 거의 통하지 않음
그래서 가장 가까운 단일 측정값을 쓰는 게 현실적임
유용한 데이터를 얻으려면 도시 단위로 수천 개 노드가 필요함
이런 측정은 기존 위치 데이터를 검증하는 용도로 더 적합함
traceroute hop은 라우터 위치를 찾는 데 유용함
RIPE IPmap이 이미 대부분의 공개 라우터를 정확히 매핑함
인프라나 서버 IP에는 잘 작동하지만, 일반 사용자 네트워크에는 한계가 있음
비교 도구로 ping.sx도 추천함
Hacker News 의견들
단순한 데모 수준이라 실제 운영용으로는 부족함
제대로 쓰려면 각 단계마다 최소 500개의 probe가 필요함
익명 사용자 제한을 넘지 않으려다 보니 최적화는 일부러 피했음
처음엔 여러 대륙에서 3회씩 측정하고, 가장 느린 probe를 버리고 빠른 쪽 근처에 새 probe를 추가하는 식으로 반복함
이렇게 하면 5단계로 나누는 대신 실시간으로 실제 위치를 ‘추적’할 수 있을 것 같음
latency를 스칼라 잠재장으로 보고 그 기울기를 이용하는 개념임
커밋 메시지가 한 단어짜리라 웃겼지만 오히려 인간미가 느껴짐
예를 들어 fakeroute 같은 도구로 더 정교한 속임수도 가능함
실용성은 거의 없겠지만 재미있는 아이디어임
예전에 The Pirate Bay가 북한으로 이전한 척했던 사례처럼, AS가 BGP 경로에 가짜 AS를 추가해 더 그럴듯하게 만들 수도 있음
이런 기술이 VPN과의 숨바꼭질 게임으로 이어질 수도 있을 것 같음
관련 참고: Reddit 토론, HN 사례
1000/30Mbps 회선에서도 2500ms까지 지연이 발생함
발표 영상
ping 기반 위치 추정의 한계는 다음과 같음:
IP는 이미 DB에 위치 정보가 있고, 라우팅 비대칭성이 거리 모델을 깨며, Anycast/CDN으로 하나의 IP가 여러 지역에 존재함, ICMP는 차단되거나 우선순위가 낮음
나는 ping 대신 HTTP(S) 지연시간 + ML(SVR) 모델을 써서 3.9만 개 데이터로 학습함
CloudFront 뒤쪽 서버 기준 약 600km 오차였음
정밀도보다 중요한 건 샌드박스 탐지, 지오펜스 악성코드, IP DB 실패 시 보조 위치 신호 제공임
예전에 네덜란드 친구와 이야기하다가, 내가 영국에서 NL 콘텐츠에 더 낮은 지연으로 접근한 적이 있었음
아마 피어링 품질 차이 때문일 것임
IXPs 및 주요 인터넷 기관과 협력해 라우팅·피어링 데이터 공유 프로젝트를 진행 중임
어떤 국가는 다른 대륙의 IXP와 직접 피어링해 지연이 수천 km 차이 나는 경우도 있음
실제로 한 국가의 두 통신사 간 트래픽이 국외를 거쳐 돌아오는 사례도 있음
이런 현상을 측정 기반 지리정보 알고리즘으로 보정하고 있음
궁극적으로 IXPs, 통신사, 인터넷 거버넌스 기관이 이런 문제를 해결하도록 돕는 게 목표임
VDSL이나 DOCSIS에서는 1km 구간에서만 5~15ms 지연이 생김
런던–암스테르담 간은 약 7ms 정도임
예전엔 네덜란드 주요 도심에도 광케이블이 부족했음
즉, 실제보다 8배 이상 부풀려진 거리임
영국 서버가 더 멀지만 오히려 ping이 더 낮게 나옴
traceroute 기반 접근이 ping보다 현실적임
연구원 Calvin이 NANOG96에서 측정 기반 IP 지리정보에 대한 발표를 진행할 예정임
발표 링크
이런 프로젝트가 HN에 더 많았으면 좋겠음
이건 너무 단순한 접근이라 삼각측량(triangulation) 을 쓰면 더 정확할 듯함
충분한 probe와 약간의 운만 있으면 의외로 잘 작동함
물론 더 똑똑한 방법이 많음
그래서 가장 가까운 단일 측정값을 쓰는 게 현실적임
유용한 데이터를 얻으려면 도시 단위로 수천 개 노드가 필요함
RIPE IPmap이 이미 대부분의 공개 라우터를 정확히 매핑함
비교 도구로 ping.sx도 추천함
마지막 hop의 FQDN에 공항 코드나 도시 코드가 포함되어 있는 경우가 많아 도움이 됨