开始输入,可搜索发票、服务、域名、工单,以及 更多...
RPKI(资源公钥基础设施)用数字证书证明“哪个 ASN 有权广播哪个 IP 段”,而 ROA(路由起源授权)就是写明这一授权的签名对象。如今越来越多运营商对 RPKI 无效的路由直接丢弃,没有正确 ROA 的前缀可能在部分网络中不可达。本文解释什么是 ROA 与 RPKI,介绍如何在 RIPE、APNIC、ARIN、AFRINIC 门户为 IP 段创建 ROA、如何设置最大前缀长度,以及如何用 rpki.cloudflare.com 和 Routinator 在 Debian/Ubuntu、CentOS/Rocky/AlmaLinux 上验证。
路由器将收到的路由与 ROA 比对,得到三种结果:Valid(起源 ASN 与长度都匹配)、Invalid(ASN 不符或前缀比最大长度更细,会被许多网络丢弃)、NotFound(没有覆盖该前缀的 ROA)。先用 RIPEstat 接口查询当前状态:
curl -s "https://stat.ripe.net/data/rpki-validation/data.json?resource=AS64500&prefix=198.51.100.0/24" | grep -o '"status":"[^"]*"'列出您实际广播的所有前缀及其起源 ASN。最大前缀长度(Max Length)决定 ROA 还允许哪些更细的子前缀:建议等于实际广播长度,只为确实要广播的更细前缀单独创建 ROA。把 Max Length 设得过宽(例如一个 /22 把最大长度设为 /24),等于允许他人冒用您的 ASN 广播子前缀进行劫持。
curl -s "https://stat.ripe.net/data/announced-prefixes/data.json?resource=AS64500" | grep -o '"prefix":"[^"]*"'
birdc show route export upstream1 # BIRD 2
vtysh -c "show bgp ipv4 unicast neighbors 203.0.113.1 advertised-routes" # FRRPrefix Origin ASN Max Length
198.51.100.0/24 AS64500 24
198.51.100.0/23 AS64500 23 # only if you also announce the /23
2001:db8:100::/48 AS64500 48只有 IP 资源的持有者(或其授权的会员账号)才能创建 ROA,各 RIR 入口大致如下(以各 RIR 当前界面为准):
填写前缀、起源 ASN 和最大长度并保存,通常几分钟到一小时内发布到 RPKI 仓库。如果 IP 是向 IMIDC 租用的,资源持有者是 IMIDC,请提交工单提供前缀、您的 ASN 和最大长度,我们会代为创建 ROA,并可同时创建 IRR route 对象。
Prefix: 198.51.100.0/24
Origin ASN: AS64500
Max Length: 24
IRR route object: yes打开 rpki.cloudflare.com 的验证器视图,输入 ASN 和前缀即可看到 Valid/Invalid 结果,也能浏览覆盖该前缀的全部 ROA。RIPEstat、bgp.tools 等站点同样可以查看前缀的 RPKI 状态。也可以重复步骤 1 的命令确认结果变为 valid。
curl -s "https://stat.ripe.net/data/rpki-validation/data.json?resource=AS64500&prefix=198.51.100.0/24" | grep -o '"status":"[^"]*"'Routinator 是 NLnet Labs 开源的 RPKI 验证器,可以在自己的服务器上独立验证,也能作为 RTR 服务给路由器提供数据。以下通过 Rust 工具链安装(NLnet Labs 也提供 Debian/Ubuntu 与 RHEL 系的软件包仓库)。首次运行需要同步全部 RPKI 仓库,可能需要数分钟。
# Debian / Ubuntu
apt install -y curl build-essential
# CentOS / Rocky / AlmaLinux
dnf install -y curl gcc
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
cargo install --locked routinatorroutinator validate --asn AS64500 --prefix 198.51.100.0/24
routinator vrps --select-asn AS64500需要。很多上游仍按 IRR 生成前缀过滤列表,建议 ROA 与 route/route6 对象同时存在且一致。
RIR 发布通常在一小时内,各网络的验证器按自身周期刷新,一般数十分钟到数小时内全网可见。
可以,为每个 ASN 各创建一条 ROA 即可,适用于多个 ASN 同时广播或迁移过渡期。
如仍无法解决,可提交工单联系 IMIDC 7×24 技术支持。