SKNK 中文技术指南
什么是 IP Prefix?CIDR、子网和 BGP 路由一次讲清
`/24`、`/48` 和 `/64` 到底是什么意思?这篇解释 IP Prefix、CIDR、子网和 BGP 路由的关系,以及为什么 ROA 和 Route Object 都围绕 Prefix 工作。
开篇定义: IP Prefix 是一段连续的 IPv4 或 IPv6 地址,以"网络地址/前缀长度"写出,例如
203.0.113.0/24、2001:db8:1234::/48。在 BGP 中,它是网络对外宣告可达地址范围的基本单位。
第一次见到 /48 这个写法,大多数人不是在教科书里,而是在 RIPE 门户的 ROA 表单上、申请 ASN 的表格里,或者对着一条 BGP 路由发呆的时候。地址后面那个斜杠和数字,看起来像无关紧要的格式;实际上它划定了这段地址的边界,也决定了路由器、过滤器和注册表分别怎么看待它。这篇文章只讲两件事:斜杠后面的数字到底是什么意思,以及 Prefix 在 CIDR、子网、BGP 这一堆概念里站在哪个位置。
1. 一行 Prefix,写了两件事
203.0.113.0/24 拆开只有两个部分:斜杠左边是网络地址,右边是前缀长度。网络地址是这段地址的起点,也是它的名字;前缀长度是"固定住了前多少位",位数一固定,范围大小就定了。
举个 IPv4 的例子:203.0.113.0/24 表示从 203.0.113.0 到 203.0.113.255 这 256 个地址(203.0.113.0/24 是文档保留段 TEST-NET-3)。IPv6 的例子:2001:db8:1234::/48 表示前 48 位固定、从 2001:db8:1234:: 开始的一段范围——大到普通人的 IPv4 地址一辈子都用不完(2001:db8::/32 是 IPv6 的文档保留前缀)。
从这里能推出两件重要的事:
- Prefix 从来不是一个 IP。一台服务器的地址只是这个范围里的一个点;Prefix 是围着整段范围画的那条边界。
- 同一段地址可以有不同"画法"。
2001:db8:1234::/48里面装得下很多个/64,而每一个/64自己也是一个 Prefix。

一个 Prefix 就是一段范围:地址起名字,长度定大小。
2. /24、/48、/64 怎么读
同一个 IP 协议内部,规则只有一句:斜杠后面的数字越小,范围越大。固定的位数越少,能放进去的地址就越多。
| 写法 | 协议 | 常见语境 |
|---|---|---|
/24 |
IPv4 | 常见的小型 IPv4 路由前缀,256 个地址 |
/48 |
IPv6 | 常见的组织级 IPv6 地址块 |
/64 |
IPv6 | 一个 IPv6 LAN 子网的标准大小 |
/64 这一行值得多说两句,因为 IPv6 和 IPv4 在这一点上差别很大:普通 IPv6 LAN 子网通常就是 /64,SLAAC 无状态自动配置也常以这个大小部署,所以正常不会再往下切。/48 是常见的组织级 IPv6 前缀——里面是 65,536 个 /64,规划空间很富裕。IPv4 没这个待遇,家庭和办公室网络通常就是个 /24 甚至更小,因为 IPv4 地址稀缺。
最容易犯的错,是把 203.0.113.0/24 和 2001:db8:1234::/48 摆在一起比大小。两个不同的地址族,数不在同一把尺子上,比地址数量没有意义。IPv6 具体怎么切,IPv6 子网划分详解有完整的计算过程。
3. IP、Prefix、子网、CIDR,四个词各自指什么
这四个词总在同一段话里出现,所以也总被混着用。四件事,四个角色:
| 词 | 它是什么 | 例子 | 会进公网路由表吗 |
|---|---|---|---|
| IP 地址 | 一台设备或一个接口的具体地址 | 203.0.113.7 |
通常不会;除非显式宣告成 /32 或 /128 主机路由 |
| IP Prefix | 一段有边界的地址范围 | 203.0.113.0/24 |
宣告了才会 |
| 子网 | 网络内部划分出来的一段 Prefix | 192.168.1.0/24 |
通常不会 |
| CIDR | 用前缀长度表达地址范围、支持聚合路由的模型 | 斜杠写法的"出处" | 不是条目,是一套方法 |
关系一句话:CIDR 是那套规则,Prefix 是规则下写出来的一个范围,子网是把 Prefix 用进网络规划时的叫法——写法一样,地位完全不同。192.168.1.0/24 是子网,正常运行下永远不上公网路由表;上游帮你路由的那段地址是 Prefix,BGP 聊的就是它。
4. 路由器为什么盯着 Prefix 看
路由器不可能记下全世界的每一个 IP——那张表早就爆了。它按 Prefix 转发:数据包到了,路由器找"覆盖目标地址、且最具体"的那条条目,从那里送出去。
规模化靠两个机制:
- 路由聚合。 上游宣告一条宽的,而不是几千条细的。
2001:db8::/32一条顶掉里面所有的/64,更具体的路由只在确实存在的地方出现。 - 最长前缀匹配。 多条条目同时覆盖同一个地址时,最长(最具体)的赢。
2001:db8::/32和2001:db8:1234::/48同时在表里,去2001:db8:1234::1的包两条都匹配——路由器选/48,因为它把范围圈得更死。

路由器看的是前缀长度:更具体的条目,在它覆盖的范围内胜出。
这也是斜杠后面那个数字在运维里沉甸甸的原因。宣告得比授权更细——比如 ROA 的 maxLength 是 /48,你宣告了 /52——验证可能直接判 Invalid;反过来永远只宣告粗的那条,又放弃了最长前缀匹配给你的精细度。宣告怎么在网络上传播、怎么被选择,BGP 基础讲得很细,这里只需要记住原则:路由跑在 Prefix 上,不跑在地址清单上。
5. Prefix、ASN、ROA、Route Object 各管一件事
这是本文和本站整个路由知识簇接上的地方,也是最值得保存的一张表:
| 东西 | 它解决的问题 | 它不会自动做到的事 |
|---|---|---|
| Prefix | 这是哪段地址 | 让地址自动可达 |
| ASN | 哪个网络在说话 | 分配一段地址 |
| BGP Route | 流量可以从哪里到达 Prefix | 证明起源一定合法 |
| ROA | 哪个 ASN 被授权起源 Prefix | 把路由发到公网 |
| IRR Route Object | 发布给过滤器使用的路由登记信息 | 建立 BGP Session |
五层各自独立,每一层都可能单独对、单独错。你可能手里有一段 Prefix、没有 ASN、什么都没宣告过;也可能 ASN 有了、Session 起来了、路由被接受了,结果缺 ROA 或缺 Route Object,按上游的策略被拦在外面。每一行回答的问题都不一样,任何一行都推不出下一行。
细节分别看:什么是 ASN?讲身份层,什么是 ROA?讲授权记录,什么是 IRR Route Object?讲登记层。
6. Prefix 出现在数据库里,外网未必能访问
一段 Prefix 躺在注册表里,或者躺在你的 Excel 里,跟它在公网可达,是两件完全无关的事。真正上线需要四个条件凑齐:
- 你有起源授权。 地址直接持有,或者由赞助 LIR 提供;ROA、IRR 这些记录如果存在,要和你的计划对得上。
- 有上游愿意接收。 某个和你有 BGP 关系的网络愿意接受这条路由,并按它的过滤策略往外传。
- BGP 配置好,路由真的被导出。 决定导出什么的是你的路由器配置,不是哪个数据库。
- 验证和过滤通过。 路径上的网络可能检查 ROA 和 IRR 数据——不匹配时,即使 Session 健康,路由照样被拒。
这四步没有任何一步是自动的,也没有哪一步"必然带来"下一步。你完全可以手续齐全但没有路由;也完全可以路由在线但记录过期。数据库里的东西只描述意图和授权,可达性是路由系统的事,不是一条记录的事。
7. 最常见的五个误解
- "
/48就是一个 IP。" 不是。/48是一段范围,在 IPv6 里是一段巨大的范围。你家路由器 LAN 口用的地址只是里面的一个点。 - "斜杠后的数字越大,地址块越大。" 反了。同一个协议内,位数越多范围越小:
/64小于/48,/48小于/32。 - "有了 Prefix,就代表公网已经能访问了。" 不能。登记不等于可达,中间还隔着宣告、接受、传播三步。
- "ROA 是路由开关。" 不是。ROA 是授权记录,只说明"谁可以起源这段前缀";宣告、Session、上游接受都是另外的事。
- "Route Object 就是正在转发的 BGP 路由。" 不是。Route Object 是登记数据,声明的是起源意图;BGP 路由是正在跑着的宣告,带着前缀和到达它的路径。一个在纸上,一个在路上。
8. 什么情况下才需要自己的 Prefix
直接给结论,分两半:
- 单一云厂商上的普通网站或应用,大多数情况下用云厂商分配的地址就够了。 负载均衡、DNS、内网规划,厂商全包了,这是件好事。自己的 Prefix 只在你想自己掌控地址和路由的时候才变得重要。
- 想申请自己的 ASN、持有可路由的 IPv6 地址块,需要两样硬东西:真实的 BGP 使用场景——多线接入、多站点宣告、自己跑 BGP 边缘,或者下游要求你起源自己的地址——以及愿意接收你宣告的上游。 两个条件都满足,才值得往下走;少一个,后面全是装饰。
如果这个触发条件是真的,怎么申请 IPv6 /48?讲拿地址,IPv6 /48 怎么通过 BGP 宣告?讲上线清单。角色分工说一句:SKNK 提供的是赞助与 RIPE 登记流程支持,包括资源分配、申请文书,以及 SKNK PA 资源的 RPKI ROA 管理;上游选择、BGP 配置和 IRR 记录维护由客户负责,除非另有书面约定。
FAQ
IP Prefix 和子网是一回事吗?
不完全是。子网是网络规划里被使用的一段 Prefix。每个子网都是 Prefix,但不是每个 Prefix 都被当子网用——有些 Prefix 存在的唯一意义就是被路由。
/0 表示什么?
一个位都不固定:整个地址空间。0.0.0.0/0 是全部 IPv4,::/0 是全部 IPv6。默认路由和过滤规则里经常见到它。
/24 比 /48 大吗?
跨地址族没法比。203.0.113.0/24 和 2001:db8:1234::/48 在不同的地址空间里,拿地址数量硬比没有意义。同一个协议内规则成立:/24 比 /32 大,/48 比 /64 大。
每个 Prefix 都需要 ASN 吗?
不需要。私有使用——IPv4 的 RFC 1918、IPv6 的 ULA——完全不需要 ASN。只有要在 BGP 里起源一段前缀时,ASN 才登场。
我可以把任何 Prefix 宣告到 BGP 吗?
不可以。只能宣告你有权起源的范围,而且就算有权,上游也有最终决定权——它通常会拿 ROA、IRR 和自己的协议去核对。
Prefix 和 Route 到底差在哪?
Prefix 是一段地址范围,是个名词;Route 是这段范围加上到达它的路径和属性,是被宣告、被接受、被传播的那个东西。一个描述空间,一个描述流量怎么到那里。
结尾
Key Takeaways:
- Prefix 是一段地址范围,不是单个 IP。
- CIDR 解释了斜杠后的数字;子网是网络规划里被使用的一段 Prefix。
- 路由器和 BGP 都工作在 Prefix 上:聚合让路由表保持精简,最长前缀匹配决定谁赢。
- ASN、BGP、ROA、IRR 都围绕 Prefix 工作,但职责不同——身份、传播、授权、登记。
- Prefix 被登记,不等于它已经在公网可达。
一句话总结: IP Prefix 是互联网路由里的地址范围;谁能宣告它、流量怎样到达它,则由 ASN、BGP 和路由安全记录共同决定。
继续阅读:
- 什么是 IPv6? —— 你的 Prefix 所在的地址空间为什么长这样。
- IPv6 子网划分详解 ——
/48切成/64的完整计算。 - 什么是 ROA? —— 声明谁可以起源你的 Prefix 的授权记录。
- 什么是 IRR Route Object? —— 发布路由意图的登记层。
- BGP 基础 —— 宣告如何传播、如何被选择。
- 什么是 ASN? —— 贴在你宣告上的身份。
技术资料核对: RFC 4632(CIDR)与 RIPE Database 文档。