开始输入,可搜索发票、服务、域名、工单,以及 更多...
想让自己的 ASN 广播的 IP 前缀被上游和 IX 接受,第一步往往是创建 IRR 路由对象。IRR(Internet Routing Registry,互联网路由注册库)记录“哪个前缀由哪个 ASN 发起”,上游运营商会据此自动生成 BGP 前缀过滤器,没有路由对象的前缀通常会被直接过滤。本文讲解 RIPE 数据库中 route / route6 对象的写法、非 RIPE 地址如何使用 RADB、as-set 的基本概念、上游如何从 IRR 生成过滤器,以及用 whois 验证。命令适用于 Debian/Ubuntu 与 CentOS/Rocky/AlmaLinux。
route 对象应该建在 IP 段所属 RIR 的数据库里:RIPE 区域地址建在 RIPE DB,APNIC 地址建在 APNIC 库,ARIN 地址可用 ARIN 自己的 IRR,其他情况或需要补充时常用 RADB。先查询 inetnum 的维护者以及你的 aut-num:
# install whois: Debian/Ubuntu
apt install -y whois
# CentOS/Rocky/AlmaLinux
dnf install -y whois
# which RIR and maintainer hold the block?
whois -h whois.ripe.net 203.0.113.0/24 | grep -E 'inetnum|netname|mnt-by|mnt-routes|mnt-lower|source'
whois -h whois.ripe.net AS64500 | grep -E 'aut-num|as-name|mnt-by'
在 RIPE 数据库中创建 route 对象需要两方授权:IP 段的 mnt-routes(或 mnt-lower / mnt-by)维护者,以及 origin 所指 ASN 的维护者。如果 IP 是向 IMIDC 租用的,前缀授权由 IMIDC 的维护者完成,请通过工单提交前缀与 ASN,由我们创建或协助授权。
RIPE 数据库支持网页编辑(登录 RIPE NCC Access 后在 Database 中选择“Create an object”)和电子邮件/whois 风格的纯文本提交。核心字段只有几个:route(前缀)、origin(发起 ASN)、mnt-by(你的维护者)、source(数据库名)。IPv6 使用 route6:
route: 203.0.113.0/24
descr: Example Networks - leased from IMIDC
origin: AS64500
mnt-by: EXAMPLE-MNT
source: RIPE
route6: 2001:db8:1000::/48
descr: Example Networks IPv6
origin: AS64500
mnt-by: EXAMPLE-MNT
source: RIPE
RADB 是由 Merit 运营的公共 IRR,许多北美、亚太的上游都会查询它,并且它镜像了大量其他 IRR。使用 RADB 需要先申请一个维护者(maintainer)账户(RADB 是付费服务),然后通过网页或邮件提交对象。注意 source 字段为 RADB:
route: 198.51.100.0/24
descr: Example Networks
origin: AS64500
mnt-by: MAINT-AS64500
source: RADB
如果你自己还有下游客户 ASN,上游需要知道你可能转发哪些 ASN 的前缀,这时就要用 as-set。命名推荐使用“层级式”写法(AS号:AS-名称),members 中列出你自己和下游的 ASN,也可以嵌套其他 as-set。然后把 as-set 名告诉上游,并在 aut-num 的 export 策略中引用它。
as-set: AS64500:AS-CUSTOMERS
descr: AS64500 and its downstream customers
members: AS64500
members: AS64501, AS64502
mnt-by: EXAMPLE-MNT
source: RIPE
大多数上游使用 bgpq4 这类工具,按你提交的 ASN 或 as-set 查询 IRR,展开出所有 route 对象,生成路由器的前缀列表,并定时刷新。你可以自己运行同样的命令,提前看到上游会允许哪些前缀:
# Debian/Ubuntu
apt install -y bgpq4
# CentOS/Rocky/AlmaLinux (EPEL)
dnf install -y epel-release && dnf install -y bgpq4
# IPv4 prefix list for everything AS64500 originates
bgpq4 -4 -l AS64500-IN AS64500
# IPv6, expanding an as-set, BIRD syntax
bgpq4 -6 -b -l AS64500_V6 AS64500:AS-CUSTOMERS
# aggregate output (-A) for a large as-set
bgpq4 -4 -A -l CUST-IN AS64500:AS-CUSTOMERS
如果输出里没有你的前缀,上游大概率也会过滤掉它。不同上游刷新周期不同,从数小时到一天一次不等,更新对象后可以工单通知上游手动刷新。
对象创建后,通过 whois 确认已经生效。RADB 镜像了 RIPE、APNIC、ARIN 等多个 IRR,所以查 whois.radb.net 可以大致代表上游看到的结果(镜像同步可能有延迟):
# route object for a prefix (RADB mirrors most IRRs)
whois -h whois.radb.net 203.0.113.0/24
# all route objects with origin AS64500
whois -h whois.radb.net -- '-i origin AS64500'
# RIPE DB only, route and route6
whois -h whois.ripe.net -- '-T route,route6 -i origin AS64500'
# members of an as-set
whois -h whois.radb.net AS64500:AS-CUSTOMERS
通常是缺少 IP 段维护者的授权。租用的 IP 段由 IMIDC 维护,请提交工单提供前缀、ASN 和你的 mnt-by 名称,由我们完成授权或代为创建。
路由对象属于 IRR,用于上游生成过滤器,任何有维护者权限的人都能创建;ROA 属于 RPKI,由地址持有方通过 RIR 加密签发,用于路由源验证。两者最好同时具备且 ASN 一致。
需要。过期的路由对象会让他人误以为该 ASN 仍可广播该前缀,带来安全隐患。停止广播或租期结束时请及时删除,或联系我们处理。
如仍无法解决,可提交工单联系 IMIDC 7×24 技术支持:https://www.imidc.com/submitticket.php