4. 地址分配与路由聚合 (Address Assignment and Routing Aggregation)
无类地址与路由 (classless addressing and routing) 最初主要是为改善全球 Internet 中路由的扩展性而开发的. 由于路由扩展性与地址使用方式高度耦合, CIDR 的部署也影响了地址分配方式.
4.1. 聚合效率与限制 (Aggregation Efficiency and Limitations)
在分组交换网络中, 减少路由状态 (routing state) 的唯一通用方法是信息聚合 (aggregation). 要让 CIDR 成功降低全球路由系统的规模及其增长速度, 就需要改变 IPv4 地址分配过程, 使路由信息能够沿拓扑边界聚合. 由于网络拓扑通常由建设网络的服务提供商决定, 具有拓扑意义的地址分配必然以服务提供商为导向.
对于只连接到一个服务提供商的终端站点 (end site), 聚合很简单: 它使用服务提供商分配的地址空间, 而该地址空间是分配给服务提供商的更大地址块中的一小部分. 终端站点不需要显式路由; 服务提供商为这个更大的地址块发布一条聚合路由 (aggregate route). 该通告为地址块内编号的所有客户提供可达性和可路由性.
有两种更复杂的情况会降低聚合的有效性:
o 多宿主 (multi-homed) 组织. 由于多宿主组织必须由其每个服务提供商通告到系统中, 因此通常无法将其路由信息聚合到其中任一提供商的地址空间内. 请注意, 该组织仍然可以从某个服务提供商的地址空间中获得地址分配 (这还有其他优点), 但在最一般的情况下, 到该组织前缀的路由会由其所有服务提供商显式通告. 因此, 多宿主组织的全局路由成本通常与采用 CIDR 之前相同. 关于多宿主实践的更详细讨论可见 [RFC4116].
o 更换服务提供商但不重新编号 (renumber) 的组织. 这会在原服务提供商的一条聚合路由通告中 "打洞". CIDR 通过要求新的服务提供商为重新归属 (re-homed) 的组织发布一条更具体的通告来处理这种情况; 由于它是更长匹配 (longer match), 该通告会优先于提供商聚合路由. 为了保持聚合效率, 建议更换服务提供商的组织规划最终将其网络迁移到由新提供商地址空间分配的前缀中. 为此, 建议尽可能部署有助于这种迁移的机制, 例如使用 [RFC2131] 的动态主机地址分配, 并继续开展协议工作以开发更好的重新编号技术.
请注意, 对多宿主站点 (以及通常由多个逻辑 IPv4 网络组成的任何站点) 仍然可以获得一定的聚合效率收益; 通过向站点分配一个连续的 2 的幂大小地址空间块 (而不是多个独立前缀), 该站点的路由信息可以聚合为单个前缀. 此外, 由于从服务提供商地址空间中为多宿主站点分配地址所关联的路由成本, 并不高于过去由中央机构顺序分配编号的方法, 因此从分配给服务提供商的地址块中为所有终端站点分配地址空间是合理的.
还值得指出的是, 由于聚合可以在系统中的多个层级发生, 因而这些异常路由仍可能在现有层次结构的更高层被聚合. 例如, 如果某个站点多宿主到两个相对较小的提供商, 而这两个提供商又都从同一个大型提供商获得连通性和地址空间, 那么该大型提供商对较小网络路由的聚合将包含到该多宿主站点的所有路由. 这类第二层聚合是否可行, 取决于站点, 其直接连接的提供商, 以及这些提供商所连接的其他提供商之间是否存在拓扑层次结构; 它在全球 Internet 的某些区域可能可行, 在另一些区域则未必可行.
注意: 在后续讨论和示例中, 使用前缀表示法 (prefix notation) 表示路由目的地. 这仅用于说明, 并不要求路由协议在更新中使用这种表示形式.
4.2. 地址空间的分布式分配 (Distributed Assignment of Address Space)
在 Internet 早期, IPv4 地址空间分配由中央 Network Information Center (NIC) 执行. Class A/B/C 网络号基本上按任意顺序分配, 大致依据提出请求的组织规模. 所有分配都集中记录, 并且没有尝试以允许路由聚合的方式分配网络号.
CIDR 最初部署时, 中央分配机构仍然存在, 但其流程改为向每个服务提供商分配大块的 "Class C" 网络号. 随后, 每个服务提供商再将其地址空间中面向位掩码的子集分配给各个客户. 只要服务提供商数量相对较少且相对稳定, 这种方式运行得还算合理; 但随着服务提供商数量快速增长, 它的扩展性并不好.
随着 Internet 在 1990 年代开始快速扩张, 单一, 集中的地址分配机构显然会带来问题. 当面向欧洲 Internet 站点的地址空间分配被委托给 RIPE NCC ([RIPE]) 时, 这一功能开始去中心化: 委托的地址块是按位对齐的 16777216 个地址块 (CIDR 后来将其定义为 /8), 这实际上使 RIPE NCC 成为第一个 RIR. 此后, 地址分配被正式分布为由 IANA, RIR 和服务提供商组成的层次化职能. 消除由单一组织负责全球 Internet 地址空间的瓶颈, 大幅改善了新分配的效率和响应时间.
以这种方式进行地址层次化委托意味着, 从某个服务提供商获得地址分配的站点, 就路由目的而言属于该服务提供商, 并将经由其基础设施进行路由. 这也意味着, 关于多宿主组织 (即连接到多个网络服务提供商的组织) 的路由信息仍需要被层次结构中更高层获知.
这些问题的历史视角见 [RFC1518]. 其他讨论也可见 [RFC3221].