Hotdry.
systems-engineering

使用 Traceroute 和 BGP 量化 Starlink 终端 IP 地理位置误差

通过 BGP 网关位置、traceroute RTT 和 IP 数据库对比,评估 Starlink 终端定位偏差,提供测量脚本与阈值参数。

Starlink 作为低轨卫星互联网服务提供商,其终端 IP 地址的地理定位准确性备受关注。传统 IP 地理位置数据库(如 MaxMind、ipinfo)通常将 Starlink IP 映射到最近地面网关(Gateway/PoP)的位置,而非用户终端实际位置。这导致船舶、飞机或偏远地区用户的位置偏差可达数百至上千公里。例如,APNIC Labs 的 Geoff Huston 在 2025 年文章中指出,也门数据显示 Starlink “用户” 占比 59%,实际系海上航运及跨边境漫游引起,全球真实用户约 230 万。

要量化此误差,需结合 BGP 公告、traceroute RTT 和 IP 数据库。Starlink AS14593(SpaceX)通过 BGP 宣布前缀,这些前缀源于特定城市 PoP,如肯尼亚蒙巴萨(Mombasa)服务苏丹流量,新加坡服务缅甸。终端 traceroute 显示:用户 → 卫星(低 RTT 跳跃) → 网关(RTT 突增,对应光速延迟)。

测量方法:

  1. 获取终端 IPcurl ifconfig.meip addr
  2. IP 数据库查询:使用 GeoLite2 或 API(如 ipinfo.io),得 lat/lon(如蒙巴萨)。
  3. BGP 路径查询:bgp.he.net 或 Hurricane Electric BGP Toolkit,查 AS14593 前缀起源 ASN / 位置。
  4. Traceroute 执行mtr -r -c 10 8.8.8.8scamper,识别第一非 Starlink 跳(网关 IP),记录 RTT(ms)。
  5. RTT 距离估算:卫星链路 RTT ≈ (2 * 距离 /c) * 1e3 ms,c=3e5 km/s。去除卫星高度(~550km)双程~3.7ms,剩余地面距离。阈值:
    • RTT < 20ms:本地网关(<1500km)。
    • 20-50ms:区域(1500-3750km)。
    • 50ms:远距漫游(>3750km,疑似误差)。

  6. 误差计算:用户 GPS 位置与网关 lat/lon 欧氏距离。若无 GPS,用多目标 traceroute(如 1.1.1.1、208.67.222.222)三角测量。

示例脚本(Bash + Python):

#!/bin/bash
IP=$(curl -s ifconfig.me)
echo "终端 IP: $IP"

# IP Geoloc
curl -s "https://ipinfo.io/$IP/json" | jq '.loc,.city,.country'

# BGP
echo "BGP: https://bgp.he.net/ip/$IP#_prefixes"

# Traceroute
mtr -r -c 20 -w 8.8.8.8 | head -20

Python 解析:

import subprocess, json, math
# 解析 mtr 输出,找 Starlink AS (14593) 后第一跳 RTT
# 计算 dist = (rtt - 3.7) * 150 ms/km (光速近似)
def gps_dist(lat1, lon1, lat2, lon2):
    return math.sqrt((lat1-lat2)**2 + (lon1-lon2)**2) * 111  # km

测试:也门附近船舶 IP geoloc 到也门,但 traceroute RTT 50ms+ 指向蒙巴萨(距 2000km+),误差~1500km。

落地参数 / 清单:

  • 阈值:RTT 基准校准(空闲 ping 网关列表: Redmond WA 10ms, 等)。动态切换:激光链路(ISL)隐藏路径,RTT 更低。
  • 监控点:Prometheus + Grafana 采集 RTT / 路径变化;警报 >100ms 漫游。
  • 回滚:若误差 >500km,fallback 至 GPS/WiFi 辅助定位。
  • 风险:网关负载均衡、beam handoff 变 RTT;隐私:勿泄用户 GPS。

Huston 分析显示,Starlink geoloc 基于网关公告,非终端,导致小国 “异常高占比”(图卢瓦 92%、瑙鲁 56%)。实际,海上 / 飞机流量主导。BGP 确认前缀城市化,traceroute RTT 量化偏差,提供工程化验证。

此方法适用于 CDN 内容本地化、网络安全(DDoS 源定位)、广告定向。未来,Starlink 激光链路普及,RTT 更难解析,需 ML 路径预测。

资料来源:

查看归档