跳转到内容

CIDR

来自轻之舟百科

无类别域间路由

无类别域间路由
中文名 无类别域间路由
英文名 Classless Inter-Domain Routing
简称 CIDR
提出时间 1993年
标准化机构 IETF
核心标准 RFC 1517、RFC 1518、RFC 1519、RFC 4632
核心技术 可变长子网掩码(VLSM)、路由聚合
主要功能 提升IPv4地址空间利用效率、抑制全球路由表快速增长

无类别域间路由(Classless Inter-Domain Routing,CIDR) 是IETF于1993年提出的一项IPv4地址分配与路由优化技术方案,其设计目的在于提升IPv4地址空间的利用效率,并抑制因分类网络体系导致的全局路由表快速增长[1][2]。CIDR通过可变长子网掩码实现任意长度的网络前缀分配,使IP地址的划分不再受限于A、B、C类的固定掩码体系[2],并可基于网络前缀对连续的地址块进行路由聚合以减少路由器需维护的路由条目数量[3]。该技术是现代互联网路由体系的基础性技术之一,IPv6协议也延续并采纳了CIDR的地址表示和管理机制。

历史背景

在CIDR被提出之前,IPv4地址采用分类网络体系。IPv4地址的32位按8位一组划分为四个字节,其中网络前缀的长度固定为8位(A类)、16位(B类)或24位(C类),分别对应约1677万、6.5万和256个主机地址容量。至20世纪90年代初,分类网络的局限性日益凸显:A类和B类网络对于绝大多数组织而言地址容量过大,大量地址被分配后闲置而无法回收;C类网络虽然容量较小(仅254个可用主机地址),但其地址块数量庞大,且在地域分布上高度分散,难以进行有效的路由聚合。这一双重困境导致两方面问题:一是IPv4地址空间面临快速耗尽的危机,二是互联网核心路由器的路由表条目呈爆炸式增长,对路由设备的处理能力和网络可扩展性构成严重威胁[1]

分类网络中的B类地址数量有限,仅有16384个。随着接入互联网的组织数量持续增长,B类地址消耗速度远超预期。为应对上述问题,IETF在1993年9月发布了一系列标准文档,正式引入CIDR。其中RFC 1517阐述了CIDR的适用性声明,RFC 1518提出了基于CIDR的IP地址分配架构,RFC 1519详细规定了地址分配与聚合策略的具体实施方案[1][4][5]。2006年,RFC 4632替代并更新了RFC 1519,在对CIDR概念进行进一步澄清的基础上,总结了该技术实际部署十余年的实践经验[6][7]

核心技术

可变长子网掩码

CIDR的基础是可变长子网掩码技术。VLSM允许网络工程师根据子网的实际主机数量需求,灵活设定子网掩码的长度,而非被固定为A、B、C类掩码中的三者之一[8]。VLSM的概念早在1985年的RFC 950中即已出现,而CIDR则将其推广至整个地址空间,彻底消除了分类网络的边界[2]

在CIDR框架中,IP地址被划分为网络前缀和主机号两部分,网络前缀的长度用“/”后跟0至32之间的整数表示。例如,192.168.1.0/24表示前24位为网络前缀,后8位为主机号,该地址块包含256个IP地址。前缀长度越短,地址块包含的IP地址数量越多;前缀长度越长,地址块划分越精细,地址利用率越高。CIDR不再使用“子网”的概念而使用网络前缀来表示网络标识[9]

路由聚合

路由聚合是CIDR的另一项核心技术,亦称为构成超网或路由汇总[10]。其基本原理是:如果多个较小的地址块在二进制表示下前缀相同,则可以将它们合并为一个较大的CIDR地址块,并在路由表中以一条聚合条目代表原来分散的多条路由记录[3]。这一操作被称为路由聚合,聚合后的地址块在网络中对外通告时被视为一个整体,可使路由表中的一条记录代表原来传统分类地址的多条路由记录,从而显著减少路由表中的路由记录数量[3]

路由聚合的有效性依赖于合理的地址分配规划。当同一机构或同一地理区域的地址块在地址空间上连续时,聚合效果最佳;当地址分配策略缺乏层次性时,聚合的效率则会大打折扣。CIDR支持的路由聚合能够将路由表中的许多路由条目合并为成更少的数目,从而限制路由器中路由表的增大,减少路由通告,提高网络可扩展性[11]

CIDR表示法

CIDR表示法也称斜线记法,其标准格式为“IPv4地址/前缀长度”。其中,IPv4地址部分可以是该地址块内的任一合法IP地址;前缀长度是从0到32之间的十进制整数,表示网络前缀所占的二进制位数[12]。前缀长度决定子网掩码:将前N位置1、后32-N位置0即得到对应的子网掩码。

以下为CIDR表示法示例:

  • 192.168.0.0/16:前16位为网络前缀,对应子网掩码255.255.0.0,包含65536个IPv4地址。
  • 10.0.0.0/8:前8位为网络前缀,对应子网掩码255.0.0.0,包含16777216个IPv4地址。
  • 203.0.113.0/27:前27位为网络前缀,对应子网掩码255.255.255.224,包含32个IPv4地址,其中30个可用主机地址。
  • 0.0.0.0/0:前缀长度为0,匹配所有IPv4地址,通常作为默认路由使用。

地址分配与管理

CIDR将IPv4地址分配从以网络类别为依据的模式转变为以实际需求为依据的模式。在CIDR框架下,IANA将大块的CIDR地址块分配给各区域互联网注册管理机构(RIRs),RIRs再根据下级机构(如国家级注册机构和ISP)的实际需求,将地址块切分为更小的CIDR块进行逐级分配[6]

这一层级化分配体系与路由聚合的要求相呼应:ISP从RIR获得一个较大的CIDR地址块后,可将其子块分配给下属客户。所有客户的路由信息在ISP边界进行聚合,以单一聚合路由对外通告,从而使上游路由器无需维护大量细粒度路由条目。由于一个CIDR地址块中含有很多地址,在路由表中可利用CIDR地址块来查找目标网络,这种地址的聚合常称为路由聚合或构成超网[13]

协议支持

CIDR需要在路由协议层面获得相应支持才能正常工作。支持CIDR的路由协议被称为无类路由协议,它们在路由更新中携带子网掩码信息,从而具备识别任意长度网络前缀的能力[14]。常见的无类路由协议包括:

  • 内部网关协议:RIPv2、OSPF、IS-IS(集成版本)、EIGRP
  • 外部网关协议:BGP-4

不支持CIDR的路由协议包括RIPv1、BGP-3、EGP以及Cisco专有的IGRP等早期协议[15]。BGP-4支持CIDR,在路由更新时只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息[16]

与VLSM的关系

CIDR与VLSM是两项相互关联的技术,但它们的应用方向相反:VLSM将一个标准的网络划分成几个小型网络(子网),以提高IP地址的利用率;CIDR则将几个小型的网络合成一个大的网络(超网),以减少路由表中的条目数量[17]。从历史发展来看,RFC 950(1985)中定义的可变长子网掩码概念早于CIDR[2],但两者在本质上共享相同的基础——即根据实际需求使用灵活长度的网络前缀,而非固定长度的网络号。

局限性与后续发展

CIDR虽然有效缓解了IPv4地址消耗速度并抑制了路由表的增长,但其设计的根本前提仍然是32位IPv4地址空间的有限性。地址空间的总量并未因CIDR的引入而增加,CIDR并不能从根本上阻止IPv4地址的最终耗尽。为应对CIDR无法解决的地址短缺问题,网络地址转换技术在后续几年中被广泛部署,作为另一项延长IPv4存续期的过渡方案。从长期来看,从IPv4向IPv6的彻底迁移才是解决地址匮乏问题的最终手段。IPv6协议在设计上全面采纳了CIDR的地址表示与路由聚合机制,IPv6地址的书写标准格式即为“IPv6地址/前缀长度”的CIDR记法[11]

参考文献