团队文章互联网怎样运作

为什么 ISP 和企业依赖 CIDR 提高路由效率

CIDR 如何分组地址并汇总路由:一个 /22 示例、前缀长度、路由收益以及聚合的限制。

目录

四栋白色房屋前各有一条蓝色小路,共同接入一条蓝色道路。
四栋白色房屋各有一条独立的蓝色路径,汇入一条蓝色主干道。

一个方向可以通往一整组目的地。在这组目的地内部,更细的路径仍然重要。

送货司机不需要在到达建筑入口前先获得每个房间的指引。网络也可以采用同样的简化方式:一条路由指向一组目的地,而靠近这些目的地的路由器负责处理细节。CIDR 让这种分组成为可能,同时摆脱旧式固定地址类别。

先读懂斜杠后的数字

CIDR 是无类别域间路由(Classless Inter-Domain Routing)的缩写。在 192.168.0.0/24 中,/24 表示 IPv4 地址的 32 个比特中,前 24 个比特构成共享前缀。剩下 8 个比特,因此这个地址块包含 256 个地址。/25 包含 128 个;/22 包含 1,024 个。斜杠后的数字越大,地址块越小。

这些是地址总数,并不保证有同样多的设备可用。普通 IPv4 局域网子网会保留网络地址和广播地址,网关也需要地址。例如,传统的 /25 在为网关和其他基础设施留出空间之前,有 126 个主机地址。我们的 IPv4 地址结构指南解释了计算方法。

四条路由可以变成一个有用的汇总

考虑公司网络中的四个私有子网:

  • 192.168.0.0/24
  • 192.168.1.0/24
  • 192.168.2.0/24
  • 192.168.3.0/24

它们合在一起正好填满 192.168.0.0/22,范围从 192.168.0.0 到 192.168.3.255。上游路由器可以使用一条指向服务这四个子网的网络的汇总路由,而不必维护四个单独条目。该网络内部的路由器仍需要更详细的路径。这是内部示例:私有地址范围不得公布到公网。

边界很重要。只把最后三个子网合并成那个 /22,也会覆盖 192.168.0.0/24。聚合不是简单地选择一个足够大的盒子。要检查汇总所包含的每个地址、其后面的路由,以及你是否有权公布该地址块。

提供商和企业获得什么

对提供商而言,聚合兼容的客户路由,可以减少其他网络必须携带的路由信息。网络用来交换可达性信息的协议 BGP 支持这些前缀。收益是更易管理的路由状态和更少的独立公告;它并不保证每个数据包或网页都会因此更快。

对企业而言,前缀长度使规划符合实际需求并留有增长空间的子网成为可能,而不必只能选择历史上的 A、B 或 C 类大小。规划地址和汇总路由是相关任务,但把一个地址块划分为子网,并不会自动在网络的所有位置产生有用的汇总。

汇总仍必须指向正确的位置

在转发表中,更具体的匹配路由优先于更宽泛的路由。如果同时存在 /22 和匹配的 /24,/24 会引导该流量。连接到多个提供商的客户,或出于流量工程而做出的选择,可能因此需要单独、更具体的公告。

发起汇总的路由器还需要为汇总覆盖但缺少更具体路径的目的地设置丢弃路由。否则,缺失的子网可能把数据包发回上游路由器,形成环路。这些聚合规则见于 RFC 4632。

提高效率,但不要把协调与控制混为一谈

CIDR 让网络可以用更少的重复信息描述流量能够去往哪里。它不解决所有权、转让权或谁应当控制数字资源的问题。保持技术机制清晰,会让这些更广泛的问题更容易审视。先阅读公有与私有地址的作用域,再阅读Lu Heng 的第 29 号笔记,了解他关于运营者自主权和 IPv4 资产的论述。