技术指南
BGP、IRR 与 RPKI 不一致:排查路由与可达性问题
当 BGP、IRR 与 RPKI 不一致时,客户路由可能只在部分网络失效。快速定位差异、恢复一致,让 IPv4 部署在 LARUS Continuity 支持下持续运行。
让 IPv4 持续可用客户在某些网络能访问 API,在另一些网络却连不上?很多时候,答案就在路由本身。BGP、IRR 与 RPKI 记录不一致,会让一次普通的 ASN 迁移、上游切换或 IPv4 部署变成部分网络不可达。
这篇文章帮助网络运营商把模糊的路由症状变成明确的生产动作:先确认应该运行的路由状态,再让支撑这条路由的各层记录保持一致,最后确保业务真正依赖的 IPv4 容量可以持续使用。
BGP、IRR 与 RPKI 不一致:快速解答
BGP、IRR 与 RPKI 不一致,是指实时 BGP 路由中的 Origin 信息,与 IRR 路由对象、RPKI Route Origin Authorization(ROA)或两者发布的信息不一致。
例如,BGP 可能显示 AS64501,而 IRR 对象和 ROA 仍然写着 AS64500。这可能是合法的新部署、尚未完成的网络迁移,也可能是配置问题。对业务来说,真正的影响是:不同网络可能对同一条路由作出不同判断,客户的连接因此忽好忽坏。
先找到客户真正需要访问的路由,让每一层记录都支持它,再从多个网络验证结果。
需要了解协议背景时,可以继续阅读 BGP 的作用(英文)、IRR 路由对象、ROA 授权和 RPKI。
BGP、IRR 与 RPKI 分别告诉你什么
这三套系统需要协同工作,但它们回答的是不同的运营问题。
| 层 | 它展示什么 | 运营商要确认什么 |
|---|---|---|
| BGP | 实时可达性和路径信息 | 现在是哪个 ASN 在宣告这个前缀? |
| IRR | 已发布的路由策略 | 预期由哪个 ASN 发起这个前缀? |
| RPKI / ROA | 可通过密码学验证的 Origin 授权 | 哪个 ASN 获得授权,允许的最大前缀长度是多少? |
BGP 展示互联网正在看到什么;IRR 帮助网络生成路由过滤规则;RPKI 则让网络验证 Origin ASN 是否获授权,以及宣告长度是否在 ROA 允许范围内。健康的部署会让三层记录讲述同一个生产故事。
BGP:实际上正在宣告什么?
边界网关协议(BGP,英文)用于在自治系统之间交换可达性信息。检查一个前缀时,应同时关注 Origin ASN、AS Path、前缀长度、上游可见性和更具体的路由宣告。
IRR:已发布的路由策略是什么?
Internet Routing Registry 中的路由对象通常把一个前缀和 Origin ASN 关联起来:
route: 203.0.113.0/24 origin: AS64500
网络可以根据这类公开策略生成过滤规则。如果 ASN 迁移后对象仍保留旧 ASN,新的合法宣告也可能在到达客户前被过滤。可以继续阅读 什么是 IRR 路由对象。
RPKI 与 ROA:什么获得了授权?
RPKI 提供可验证的授权链。ROA 会说明哪个 Origin ASN 可以宣告某个前缀,以及允许的最大前缀长度。RFC 9582介绍了当前 ROA 规范。当 Origin 或前缀长度与 ROA 不一致时,启用 Route Origin Validation 的网络可能拒绝这条路由。
生产环境中的不一致是什么样的
假设预期路由是:
203.0.113.0/24 → AS64500
| 层 | 发布或观察到的状态 | 对客户的意义 |
|---|---|---|
| BGP | AS64500 | 可达性符合预期宣告 |
| IRR | AS64500 | 策略过滤能够识别这条路由 |
| RPKI | AS64500 已获授权 | ROV 可以验证 Origin |
ASN 迁移后,同一个前缀可能呈现不同的生产状态:
| 层 | 迁移后状态 | 对客户的影响 |
|---|---|---|
| BGP | AS64501 | 部分网络可能看到不同的 Origin。 |
| IRR | AS64500 | 根据旧记录生成的过滤规则可能仍然期待旧 Origin。 |
| RPKI / ROA | AS64500 已获授权 | 新的 Origin 可能无法通过 ROV 验证。 |
| 结果 | 各层记录不一致 | 客户可能在一个网络可达,在另一个网络却无法访问。 |
ASN 迁移后,实际状态可能变成:
BGP:AS64501 IRR:AS64500 ROA:AS64500
部分网络可能继续接受这条路由,另一些网络却会根据 IRR 过滤或 RPKI 验证拒绝它。于是团队看到“路由是通的”,客户却仍然无法从另一家运营商或云网络访问服务。
最常见的路由不一致场景
| 模式 | 通常发生了什么 | 先检查什么 |
|---|---|---|
| BGP 与 IRR 不同 | 实时 Origin 变了,或路由对象过期 | 确认预期 Origin 和上游使用的过滤来源 |
| BGP 与 RPKI 不同 | 宣告或 ROA 已经不再匹配 | 检查 ROA 中的 Origin ASN 与 MaxLength |
| BGP 与 RPKI 一致,但 IRR 不同 | 策略记录没有同步更新 | 确认是否有基于 IRR 的过滤器拒绝路由 |
| ASN 一致,但前缀长度不同 | 更具体的宣告超过允许长度 | 对照宣告与 ROA MaxLength |
为什么这会影响客户 API 和服务器
路由不一致不一定会造成全网中断,更常见的是更昂贵的部分故障:某个运营商、地区或云平台可以访问,另一个却不行。结果是客户 API 超时、监控不断告警、支持工单增加,原本看似准备好的上线实际上还没有覆盖完整网络。
真正有价值的结果,是让客户稳定访问,而不是让地址只在表格里“存在”。地址、授权、路由策略和实时宣告需要在网络变化时一起移动,业务才能顺利扩容。
为什么记录会失去一致性
- 基础设施迁移时更换了 Origin ASN;
- 切换了 Transit Provider 或上游路径;
- 租赁或转让的 IPv4 地址块进入新的生产网络;
- IRR 对象已经更新,但 ROA 没有更新,或者反过来;
- ROA 的 MaxLength 没有覆盖实际宣告的前缀;
- 地址或网络变更后,旧的 IRR 对象仍然存在;
- 自动化只更新了一套路由系统,遗漏了另一套。
这些都是正常的网络变化。真正的业务风险,是变更已经进入生产环境,而各层记录还没有描述同一个目标状态。
如何排查 BGP、IRR 与 RPKI 不一致
1. 先确定客户必须访问的路由
写下前缀、预期 Origin ASN、允许的前缀长度以及应该宣告它的网络。先从客户结果出发:哪个 API、服务器或业务服务必须恢复可达?
2. 检查实时 BGP
从多个观测点或网络对照 Origin ASN、AS Path、前缀长度、More-specific 和可见性。单个 Looking Glass 只能展示路由的一部分。
3. 检查 IRR 路由对象
确认对象使用的是预期 Origin,并且属于上游采用的路由策略。如果过滤器由 IRR 数据生成,还要确认何时重建并应用变更。
4. 检查 ROA 与 RPKI 状态
Valid 表示宣告符合覆盖它的授权;Invalid 表示存在相关授权,但 Origin 或前缀长度不匹配;NotFound 表示没有经过验证的 ROA 覆盖这条路由。
5. 回看最近的网络变更
检查 ASN 迁移、上游切换、地址转让、租赁启用、自动化运行和维护计划。最新的变更通常能解释哪一层已经落后于生产路由。
6. 修正已经无法反映部署状态的那一层
与网络和上游团队协调变更顺序,让路由记录更新期间仍保留可用路径。不要盲目改动正在工作的层,目标是让生产状态重新一致。
7. 从多个网络验证
更新后再次检查 BGP 可见性、IRR 过滤和 RPKI 验证,并从真正重要的运营商、云网络或客户网络访问 API 和服务器。
租赁或迁移 IPv4 前,确认五层准备就绪
把新前缀投入生产前,建议把五层放在同一张检查表里:
| 层面 | 面向客户的实际问题 |
|---|---|
| 资源 | 地址容量是否已经匹配业务负载? |
| 授权 | 预期网络是否可以宣告这个前缀? |
| 策略 | 上游过滤器能否识别这条路由? |
| 安全 | RPKI 是否接受预期 Origin 和前缀长度? |
| 运营 | 客户能否从真正重要的网络访问服务? |
需要了解部署路径时,可以阅读如何租赁 IPv4 地址块(英文)。想了解 registry 记录变化的运营背景,可以阅读卢恒关于 registry 记录变化的文章。
用 LARUS 让生产 IPv4 持续可用
LARUS 把第一方 IPv4 供应与让地址真正进入生产的路由工作连接起来。新部署、ASN 迁移或上游切换时,客户需要的不只是一个可用前缀,还需要地址、路由策略、ROA、反向 DNS 和连续性支持跟着业务一起推进。
这就是 LARUS IPv4 Leasing & Continuity 的价值:网络运营商可以直接获得容量,并由同一套 Continuity 服务支持部署持续运行。用 Unlimited IPv4 支撑增长,把一次路由排查直接推进到可执行的连续性方案。
常见问题
什么是 BGP、IRR 与 RPKI 不一致?
就是实时 BGP Origin 与 IRR 对象、RPKI ROA 或两者发布的 Origin 信息不一致。
出现不一致是否意味着 BGP 一定错了?
不一定。BGP 可能已经反映了最近的网络变更,而策略或授权记录还没有同步。应该运行的生产状态决定哪一层需要更新。
BGP 与 RPKI 不一致会发生什么?
路由可能被判定为 RPKI Invalid,并被启用 ROV 的网络拒绝。因此,即使部分网络仍能看到宣告,其他网络也可能无法访问。
BGP 与 IRR 不一致会发生什么?
使用 IRR 生成过滤规则的网络可能无法识别或接受这条宣告。影响取决于不同上游使用的策略数据和过滤方式。
路由可以是 RPKI Valid,但在 IRR 中没有记录吗?
可以。IRR 与 RPKI 是两套独立系统。有效 ROA 不会自动创建 IRR 路由对象,IRR 对象也不会自动创建 ROA。
RPKI NotFound 与 Invalid 一样吗?
不一样。NotFound 表示没有覆盖这条路由的 ROA;Invalid 表示存在覆盖授权,但 Origin 或允许的长度不匹配。
RPKI 会取代 IRR 吗?
不会。RPKI 用密码学方式授权 Origin,IRR 发布供运营过滤使用的路由策略。两者描述同一个目标状态时,生产路由更容易稳定运行。
如何修复 BGP、IRR 与 RPKI 不一致?
先确定目标前缀和 Origin,再对照实时 BGP、IRR 对象和 ROA,按正确顺序更新过时的一层,最后从多个网络验证路由传播。
结语
BGP 展示正在宣告什么,IRR 展示预期的路由策略,RPKI 验证 Origin 是否获得授权。三者不一致时,客户看到的就是“有些地方能访问,有些地方访问不了”。
围绕生产路由统一记录、验证客户访问路径,并选择能够跟上网络增长的 IPv4 容量。LARUS Continuity 把这些运营工作与第一方 IPv4 供应连接起来,让下一次部署继续向前。
保持生产可达
把路由排查推进成连续性方案。
用 Unlimited IPv4 支撑增长,从路由不一致走向客户真正能够访问的生产路径。
