跳至内容
liuzhen932 的小窝
返回

RIPE Atlas 不完全入门指南

0x00 前言

在当今高度互联的数字时代,随着万物互联的深入推进,理解支撑现代社会运行的数字基础设施——包括互联网主干网络与本地局域网络——的底层运作机制变得至关重要。在此背景下,本文将深入探讨一款极具实用价值的网络诊断工具:RIPE Atlas。作为与 GlobalPing 齐名的网络性能监测工具,该老牌测量平台通过部署遍布全球的探测节点,使用户能够实时评估网络的连通性、延迟及稳定性。其独特的分布式架构与开放的数据接口,为研究人员提供了网络拓扑分析的利器。

鉴于当前中文互联网缺乏系统性介绍 RIPE Atlas 的技术文档,本文章(或者后续系列文章)将填补这一空白,尽量将基础操作指南、软件节点托管及各种平台集成方案等流程讲清楚,希望对你有所帮助。

0x01 基础概念

什么是 RIPE Atlas?

引用官网的话来说就是:「RIPE Atlas 是一个全球性的探针网络,用于测量互联网的连通性和可达性,提供了对互联网实时状态的前所未有的了解。」

RIPE Atlas 收集的绝大多数数据均为开源性质,用户无需部署自有探针或注册 RIPE NCC 账户,即可通过官方平台直接访问、下载或调用这些数据。值得注意的是,系统本身已预设并持续运行着大量自动化测量任务,其中部分关键测量已连续执行多年,从而为用户提供跨越时间维度的网络性能基准参考。

测量、积分、探测节点……这些都是什么?

由于相关资料较为匮乏,以下术语翻译采用了与英文原文最接近的直译方式(因此这些翻译可能显得有些生硬):

我该如何开始?

很简单,如果你想要运行属于自己的测量,你需要一个 RIPE NCC 账户。你可以前往 RIPE NCC Access 完成你的账号注册工作,这里不再赘述。

注册完成并登录(可能需要验证 Passkey),你就可以导航到 RIPE Atlas 主界面了:

Atlas 主界面

0x02 青年人的第一个测量

这里我们将以一次 IPv6 Ping 测量为例,带你熟悉基本的测量方法。

首先我们导航到 Measurement Form,这是官方的一个测量准备表格,通过点触和输入即可完成一次测量的构建:

填写测量的基础信息

接下来我们选择是否为「一次性测量」,如果是一次性测量还可以指定「开始时间」,如果不是一次性测量则需要指定「开始时间」和「结束时间」:

选择测量策略

同时在上图中我们还能看到具体的积分明细,具体如何赚取积分将在下文详细介绍。万事俱备,我们点击「Create this Measurement」创建这次测量吧~

Measurement(s) created! 99190688

很好,我们现在可以点击这个链接跳转到我们的测量并等待结果:

我们的测量结果

在上方导航栏的 Reports 中,我们还可以点击按钮下载测试结果,这将很有助于我们和其他系统(各类可观测性系统的地图)结合起来共同分析。

关于积分:24 小时的 IPv6 双节点 Ping 测试大约会消耗 2160 积分

0x03 让我们使用自动化吧

提到自动化,我们就得使用 API 等类似的方式与程序交互,我们可以通过这个方法获取属于你的 API Token:

  1. 访问 https://atlas.ripe.net/keys/ 并点击 Create an API key
  2. 填写表单时,请注意下图中指出的常见问题(图源):

带有常见问题的指导教程,图片来自 bgp.tools

一旦你拿到了 API Key,你就可以通过 Measurement Form 构建好你的请求,使用下方 API Spec 部分请求 RIPE Atlas API 了。

一个常见的用途是在 BGP.Tools 上使用,这会为你的组织带来更多网络观测性;另外你可以在 Pysio 网络工具箱 使用,这里非常感谢 @pysio2007 构建了一个用户友好的界面。

0x04 我该从哪获取积分

积分获取途径

RIPE Atlas 的积分可以通过托管探针或由其他用户将积分转移给您来使用。如果你不想托管探针,可以通过联系我获取一定数量的积分(信中注明你的 RIPE NCC 邮箱)。或者你可以使用 Pysio 网络工具箱 共享 API Key。

安装软件探针

软件探针是作为 RIPE Atlas 探针运行的软件包,无需任何专用 RIPE Atlas 硬件。它们旨在安装在由 RIPE Atlas 探针主机维护的基础设施上——例如在虚拟机、家庭路由器、现有服务器等上。不同的平台和操作系统支持程度和易用性不同,我推荐使用 Docker 一把梭

请注意,所有软件探针都将被标记为公共探针

RIPE Atlas 探针代码可在 GitHub 上找到:https://github.com/RIPE-NCC/ripe-atlas-software-probe,测量代码位于子模块中:https://github.com/RIPE-NCC/ripe-atlas-probe-measurements

使用 Deb 包安装

没写,懒。

使用 Docker Compose 安装

这里是系统要求:

这里我使用 Jamesits 的 Docker 镜像,这在我的多个节点上证明是最可靠的:

services:
  ripe-atlas:
    image: jamesits/ripe-atlas:latest
    restart: always
    environment:
      RXTXRPT: "yes"
    volumes:
      - "./etc/ripe-atlas:/etc/ripe-atlas"
      - "./run/ripe-atlas:/run/ripe-atlas"
      - "./var/spool/ripe-atlas:/var/spool/ripe-atlas"
    cap_drop:
      - ALL
    cap_add:
      - NET_RAW
      # required for tini
      - KILL
      # required for `setpriv` to work
      - SETUID
      - SETGID
      # required for the entrypoint script to auto-fix the permissions of the directories
      - CHOWN
      - FOWNER
      - DAC_OVERRIDE
    mem_reservation: 64m
    labels:
      - "traefik.enable=false"
      - "com.centurylinklabs.watchtower.enable=true"
    logging:
      driver: json-file
      options:
        max-size: 10m
    # If possible, use host networking to avoid double NAT
    # network_mode: "host"
    networks:
      - ripe_atlas
    # Maybe needed when your host OS is old enough, see https://github.com/Jamesits/docker-ripe-atlas/issues/19
    # security_opt:
    #   - seccomp:unconfined

networks:
  ripe_atlas:
    enable_ipv6: true

请注意这里我为了隔离探测节点,将挂载点全部设置在了同目录下,你也可以使用项目默认配置

在经过简短的 docker compose up -d 后,我们需要获取 Atlas 程序的公钥,这通常是 /etc/ripe-atlas/probe_key.pub,是 ssh-rsa 加密算法。

使用 cat 查看公钥内容并复制,在 软件探针申请表单 中粘贴你的公钥,并设置好城市和 ASN,点击提交:

==这里缺张图

大功告成,你现在可以在探测节点列表里看到你的新节点啦~ 不过你可能需要等待大概十分钟的刷新才能看到节点由 Nerver connected 转变为 Connected。

现在你可以在测量中使用你的探测节点 ID,或者将其发在评论区中与其他人共享~

我需要注意什么

由于 Atlas 是一个全球性的测量项目,你需要考虑各类可能的滥用举报,确保主机商能够正确的应对这些投诉(而不会删你机器造成损失),这里我个人推荐一些比较好托管的主机商:中国移动、中国电信、中国联通、Scaleway、BuyVM(基本饱和)、UCloud 和各种您熟人的服务器提供商。请勿在未经授权的情况下为不知情用户安装 Atlas 赚取那一点点积分,如有需要,找我(

0x05 结语

这篇文章写的比较匆忙,RIPE Atlas 作为互联网基础设施监测的「听诊器」,构建了一个开放共享的全球观测网络。本文虽聚焦基础操作与快速上手,但已能帮助读者掌握从创建测量任务到自动化集成的完整链路。通过部署软件探针获取积分、善用 API 接口对接业务系统,开发者可以将其无缝融入现有的网络监控体系。

对于科研人员而言,连续多年的测量数据集更是一笔不可多得的宝藏,可为网络拓扑研究、服务可用性分析提供科学依据。值得注意的是,本文尚未深入硬件探针部署、高级测量类型等进阶主题,这些内容将在后续文章中逐步展开。我们鼓励每位读者在实践中探索:无论是为社区贡献探测节点,你的一次尝试都可能为全球网络健康监测贡献重要数据。


分享这篇文章:

上一篇
XMSL 免费递归 DNS 服务现已上线!
下一篇
[译] dn42 多服务器环境中的 iBGP 与 IGP 配置

人机验证:请刷新页面以加载评论区