订阅以接收新文章的通知:

监控 AS-SET 及其重要性

2025-09-26

6 分钟阅读时间
这篇博文也有 English 版本。

AS-SET 简介

AS-SET 是一种互联网路由注册表 (IRR) 对象,用于帮助网络运营商将相关的网络资源进行分组管理。需要注意的是,不要将其与近期弃用的 BGP AS_SET 混淆。从历史上看,AS-SET 被用于多种用途,比如将某个网络提供商旗下的一组下游客户归类在一起。例如,Cloudflare 使用 AS13335:AS-CLOUDFLARE 这个 AS-SET,将我们自己的自治系统编号 (ASN) 列表与下游“自备 IP”(BYOIP) 客户网络归为一组,从而能够清晰地向其他网络表明:它们应当接受来自我们的哪些 IP 前缀。

换句话说,AS-SET 是目前互联网上用于证明某一方是其所管理网络的提供者的方式。这种提供者授权机制完全基于信任,也就是说它完全不可靠,并且只是尽力而为。未来,基于 RPKI 的提供者授权系统将以 ASPA(自治系统提供者授权)的形式出现,但其标准化与普及仍需时日。在此之前,我们仍需依赖 AS-SET。

由于 AS-SET 对于互联网上的 BGP 路由至关重要,网络运营商需要能够监测其网络中 AS-SET 的有效与无效成员关系。Cloudflare Radar 现在通过我们的路由页面,为每个自治系统编号提供了一个透明、公开的成员列表,以帮助网络运营商进行管理。

AS-SET 与构建 BGP 路由过滤器

AS-SET 是 BGP 路由策略的重要组成部分,通常与表达能力强大的路由政策规范语言 (RPSL) 配合使用,后者用于描述某个特定的 BGP 自治系统编号如何接收并传播路由信息至其他网络。大多数情况下,网络运营商使用 AS-SET 来声明其他网络应从其接收哪些路由,尤其是来自其下游客户网络的路由。

再以 AS13335:AS-CLOUDFLARE 这个 AS-SET 为例,它已清晰地发布在 PeeringDB 上,供其他对等互联网络参考并据此设置路由过滤规则。

在启用新的传输提供商服务时,我们也会要求对方网络基于相同的 AS-SET 来配置其路由过滤规则。由于 BGP 前缀也会通过 IRR 注册库 中的 routeroute6 对象创建,因此对等方和提供商现在能够明确知道应该接收来自我们的哪些 BGP 前缀,并拒绝其余前缀。一个基于 AS-SET 和 IRR 数据库来生成前缀列表的热门工具是 bgpq4,您可以轻松尝试使用这个工具。

例如,若要为 Juniper 路由器生成一份 IPv4 前缀列表,其中包含 AS13335 可能代表 Cloudflare 及其客户传播的路由前缀,您可以使用如下命令:

% bgpq4 -4Jl CLOUDFLARE-PREFIXES -m24 AS13335:AS-CLOUDFLARE | head -n 10
policy-options {
replace:
 prefix-list CLOUDFLARE-PREFIXES {
    1.0.0.0/24;
    1.0.4.0/22;
    1.1.1.0/24;
    1.1.2.0/24;
    1.178.32.0/19;
    1.178.32.0/20;
    1.178.48.0/20;

限制为 10 行,prefix-list 的实际输出会大得多

我们的提供商和对等方将在 eBGP 导入政策中应用此前缀列表,以确保 AS13335 只能为我们自己和我们的客户传播公告。

准确的 AS-SET 如何防止路由泄露

下面我们通过一个简单的例子,来看看准确的 AS-SET 如何帮助防止路由泄露。在这个例子中,自治系统 AS64502 有两个提供商:AS64501 和 AS64503。AS64502 不小心搞错了它面向 AS64503 邻居的 BGP 导出政策配置,结果导出了所有路由,包括那些它从 AS64501 提供商那里接收到的路由。这就是一个典型的类型 1 发夹路由泄漏 (Type 1 Hairpin route leak)

幸运的是,AS64503 实施了一套基于 IRR 数据生成的导入策略,其中使用了 AS-SET 和路由对象。通过这种方式,该网络只会接收源自 AS64502 自治系统锥 (AS Cone) 的前缀,因为 AS64502 是它的客户。因此,原本可能因该路由泄露扩散而对互联网上众多前缀的可达性或延迟造成重大影响的路由,并未进一步传播,而是被 AS64503 这个负责任的提供商网络通过合理的过滤策略及时拦截。不过需要再次强调的是,这一策略的成功实施,依赖于 AS64502:AS-CUSTOMERS AS-SET 所包含数据的准确性。

监控 AS-SET 滥用

除了使用 AS-SET 将下游客户分组之外,AS-SET 还可以表示对等方、传输或 IXP 参与等其他类型的关系。

例如,有 76 个 AS-SET 直接包含一级网络之一,即 Telecom Italia/Sparkle (AS6762)。从 AS-SET 的名称来看,它们大多代表特定 ASN(包括 AS6762)的对等方和传输。您可以在以下网址查看此输出:https://radar.cloudflare.com/zh-cn/routing/as6762#irr-as-sets

定义包含对等方或上游节点的 AS-SET 并无不妥,只要这些 AS-SET 不被提交到上游进行客户到提供商的 BGP 会话过滤即可。事实上,用于上游节点或点对点关系的 AS-SET 可用于在 RPSL 中定义网络策略。

然而,在 AS6762 成员列表中的一些 AS-SET,比如 AS-10099,似乎是在证明客户关系。

% whois -h rr.ntt.net AS-10099 | grep "descr"
descr:          CUHK Customer

我们知道 AS6762 不涉及过境流量,因此该客户成员资格必然无效,这是一个典型的 AS-SET 滥用案例,理应予以清理。许多互联网服务提供商和网络运营商都非常乐意在接到请求后更正无效的 AS-SET 条目。因此,可以合理地认为,像这样的每一个 AS-SET 成员关系,都可能在发生路由泄露时,带来向主要网络和互联网更大范围传播的潜在风险。

Cloudflare Radar 上的 AS-SET 信息

Cloudflare Radar 是一个展示全球互联网流量、攻击和技术趋势及洞察的中心平台。今天,我们将 IRR AS-SET 信息添加到 Radar 的路由部分,公众可通过网站和 API 访问免费获取这些信息。用户可以访问某个 AS 的路由页面,查看该 AS 直接或间接(通过其他 AS-SET)所属的所有 AS-SET。例如,Cloudflare (AS13335) 的 AS-SET 列表可在 https://radar.cloudflare.com/routing/as13335#irr-as-sets 查看

IRR 的 AS-SET 数据仅包含有限的信息,例如 AS 成员和 AS-SET 成员。在 Radar,我们还对 AS-SET 表进行了增强,添加了以下有用的信息。

  • 推断的 ASN 显示被推断为该 AS-SET 创建者的自治系统编号。如果可用,我们会使用 PeeringDB 的 AS-SET 信息进行匹配;否则,我们会解析 AS-SET 名称来推断创建者。

  • IRR Sources 显示我们能看到相应 AS-SET 的 IRR 数据库。我们目前使用以下数据库:AFRINICAPNICARINLACNICRIPERADBALTDBNTTCOMTC

  • AS MembersAS-SET members 显示相应类型成员的数量。

  • AS Cone 是直接或间接包含在 AS-SET 中的唯一 ASN 的计数。

  • Upstreams 是指包含相应 AS-SET 的唯一 AS-SET 的数量。

用户还可以通过搜索特定的 AS-SET 名称或 ASN 来进一步筛选表格。此外,还可以切换显示直接或间接 AS-SET。

除了列出 AS-SET 之外,我们还提供树状视图来展示 AS-SET 如何包含给定的 ASN。例如,以下屏幕截图显示了 as-delta 如何通过其他 7 个 AS-SET 间接包含 AS6762。用户可以复制或下载此树状视图的文本内容,方便与他人分享。

我们使用公开的 API 构建了此 Radar 功能,其构建方式与其他 Radar 网站相同。我们也尝试使用此 API 构建其他功能,例如完整的 AS-SET 树可视化。我们鼓励开发者尝试使用此 API(以及其他 Radar API),并告诉我们您的想法!

展望

我们知道,AS-SET 很难做到完全杜绝错误或误用,尽管 Cloudflare Radar 让它们更易于监测,但错误和误用的情况仍将存在。正因如此,我们整个社区需要推动主要厂商采纳 RFC9234 标准并落实其相关实现。RFC9234 将角色和仅限客户 (OTC) 属性直接嵌入 BGP 协议本身,有助于在线检测和防止路由泄露。除了通过 RFC9234 防范 BGP 配置错误之外,自治系统提供者授权 (ASPA) 机制仍在 IETF 中推进,未来将有望提供一种权威方式,用以验证每个 BGP 自治系统 (AS) 的实际提供者身份。

如果您是一名网络运营商,并且管理着一个 AS-SET,那么若您还未采用分层 AS-SET,就应当认真考虑迁移到这种结构。分层 AS-SET 的形式类似于 AS13335:AS-CLOUDFLARE,而不是简单的 AS-CLOUDFLARE,二者之间的差异非常重要。只有 AS13335 ASN 的合法维护者,才能创建 AS13335:AS-CLOUDFLARE;而任何人如果愿意,都可以在 IRR 数据库中随意创建 AS-CLOUDFLARE。换句话说,使用分层 AS-SET 有助于确保所有权归属,防止路由信息被恶意篡改或污染。

虽然跟踪 AS-SET 成员关系看似繁琐,但它在预防与 BGP 相关的事件(如路由泄露)方面能带来显著成效。我们鼓励所有网络运营商尽自己的一份力,确保您提交给提供商和对等网络、用于说明您下游客户锥范围的 AS-SET 准确无误。对 AS-SET 做出的每一次小调整或清理工作,都有助于减轻未来 BGP 事件的影响。

欢迎访问 Cloudflare Radar,了解更多关于互联网中断、路由问题、互联网流量趋势、攻击、互联网质量等方面的见解。在社交媒体上关注我们:@CloudflareRadar (X)、https://noc.social/@cloudflareradar (Mastodon) 和 radar.cloudflare.com (Bluesky),或通过电子邮件联系我们。

我们保护整个企业网络,帮助客户高效构建互联网规模的应用程序,加速任何网站或互联网应用程序抵御 DDoS 攻击,防止黑客入侵,并能协助您实现 Zero Trust 的过程

从任何设备访问 1.1.1.1,以开始使用我们的免费应用程序,帮助您更快、更安全地访问互联网。要进一步了解我们帮助构建更美好互联网的使命,请从这里开始。如果您正在寻找新的职业方向,请查看我们的空缺职位
BGPRPKI生日周Cloudflare NetworkRadar

在 X 上关注

Mingwei Zhang|@heymingwei
Bryton Herdes|@next_hopself
Cloudflare|@cloudflare

相关帖子