无类别域间路由
| 无类别域间路由 | |
|---|---|
| 中文名 | 无类别域间路由 |
| 英文名 | Classless Inter-Domain Routing |
| 简称 | CIDR |
| 提出时间 | 1993年 |
| 标准化机构 | IETF |
| 核心标准 | RFC 1518、RFC 1519、RFC 4632 |
| 核心技术 | 可变长子网掩码(VLSM)、路由聚合 |
| 主要功能 | 改进IPv4地址分配、抑制路由表增长、支持无类路由 |
无类别域间路由(Classless Inter-Domain Routing,CIDR) 是IETF于1993年提出的一项IPv4地址分配与路由优化技术方案,其设计目的在于提升IPv4地址空间的利用效率,并抑制因分类网络体系导致的全局路由表快速增长[1][2]。CIDR的核心是通过可变长子网掩码实现任意长度的网络前缀分配,并用斜线记法(如192.0.2.0/24)表示前缀长度,取代了传统分类网络中A、B、C类的固定掩码体系。CIDR同时支持将多个连续的地址块聚合成一个超网(supernet)条目对外通告,从而显著减少核心路由器的路由表规模。该技术是现代互联网路由体系的基础性技术之一,IPv6协议也延续并采纳了CIDR的地址表示和管理机制。
历史背景
在CIDR被提出之前,IPv4地址采用分类网络(Classful Network)体系。IPv4地址的32位按8位一组划分为四个字节,其中网络前缀的长度固定为8位(A类)、16位(B类)或24位(C类),分别对应16777216、65536和256个主机地址容量[3]。至20世纪90年代初,分类网络的局限性日益凸显:A类和B类网络对于绝大多数组织而言地址容量过大,大量地址被分配后闲置而无法回收;C类网络虽然容量较小(仅254个可用主机地址),但其地址块数量庞大,且在地域分布上高度分散,难以进行有效的路由聚合。这一双重困境导致两方面问题:一是IPv4地址空间面临快速耗尽的危机,二是互联网核心路由器的路由表条目呈爆炸式增长,对路由设备的处理能力和网络可扩展性构成严重威胁[1][4]。
分类网络中的B类地址数量有限,仅有16384个。随着接入互联网的组织数量持续增长,B类地址消耗速度远超预期[5]。为应对上述问题,IETF在1993年9月发布了一系列标准文档,正式引入CIDR。其中RFC 1517阐述了CIDR的适用性声明,RFC 1518提出了基于CIDR的IP地址分配架构,RFC 1519详细规定了地址分配与聚合策略的具体实施方案[1][6][7]。2006年,RFC 4632替代并更新了RFC 1519,在对CIDR概念进行进一步澄清的基础上,总结了该技术实际部署十余年的实践经验[4]。
核心技术
可变长子网掩码
CIDR的基础是可变长子网掩码技术。VLSM允许网络工程师根据子网的实际主机数量需求,灵活设定子网掩码的长度,而非被固定为A、B、C类掩码中的三者之一[8]。在CIDR框架中,IP地址被划分为网络前缀和主机号两部分,网络前缀的长度用“/”后跟0至32之间的整数表示[9]。例如,192.168.1.0/24表示前24位为网络前缀,后8位为主机号,该地址块包含256个IP地址。前缀长度越短,地址块包含的IP地址数量越多;前缀长度越长,地址块划分越精细,地址利用率越高。
VLSM与分类网络中的子网划分在方向上是相反的:子网划分是将一个固定的分类网络进一步细分为更小的子网;而CIDR则是允许网络前缀以任意长度而非预先规定的三种长度之一存在[10]。
路由聚合
路由聚合是CIDR的另一项核心技术。其基本原理是:如果多个较小的地址块在二进制表示下前缀相同,则可以将它们合并为一个较大的CIDR地址块,并在路由表中以一条聚合条目代表原来分散的多条路由记录[5]。这一操作也被称为超网。[5]。路由聚合不仅减少了路由器本地路由表的条目数量,更重要的是,通过向外通告聚合后的地址块而不是逐一宣告各子网的方式,显著降低了全局路由表的规模及其增长速度[2]。
路由聚合的有效性依赖于合理的地址分配规划。当同一机构或同一地理区域的地址块在地址空间上连续时,聚合效果最佳;当地址分配策略缺乏层次性时,聚合的效率则会大打折扣。
CIDR表示法
CIDR表示法也称斜线记法,其标准格式为“IPv4地址/前缀长度”[9]。其中,IPv4地址部分可以是该地址块内的任一合法IP地址;前缀长度是从0到32之间的十进制整数,表示网络前缀所占的二进制位数。前缀长度决定子网掩码:将前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块进行逐级分配[4]。
这一层级化分配体系与路由聚合的要求相呼应:ISP从RIR获得一个较大的CIDR地址块后,可将其子块分配给下属客户。所有客户的路由信息在ISP边界进行聚合,以单一聚合路由对外通告,从而使上游路由器无需维护大量细粒度路由条目[1]。
协议支持
CIDR需要在路由协议层面获得相应支持才能正常工作。支持CIDR的路由协议被统称为“无类路由协议”[11],它们在路由更新中携带子网掩码信息,从而具备识别任意长度网络前缀的能力。常见的无类路由协议包括:
- 内部网关协议:RIPv2、OSPF、IS-IS(集成版本)、EIGRP
- 外部网关协议:BGP-4
不携带掩码信息的旧版路由协议——如RIPv1、BGP-3、EGP和IGRP——不具备CIDR支持能力[12]。
局限性与后续发展
CIDR虽然有效缓解了IPv4地址消耗速度并抑制了路由表的增长,但其设计的根本前提仍然是32位IPv4地址空间的有限性。地址空间的总量并未因CIDR的引入而增加,CIDR并不能从根本上阻止IPv4地址的最终耗尽[13]。为应对CIDR无法解决的地址短缺问题,网络地址转换技术在后续几年中被广泛部署,作为另一项延长IPv4存续期的过渡方案[13]。从长期来看,从IPv4向IPv6的彻底迁移才是解决地址匮乏问题的最终手段。IPv6协议在设计上全面采纳了CIDR的地址表示与路由聚合机制,IPv6地址的书写标准格式即为“IPv6地址/前缀长度”的CIDR记法。
参考文献
- ↑ 1.0 1.1 1.2 1.3 Fuller, V., Li, T., Yu, J., Varadhan, K., "Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy", RFC 1519, September 1993.
- ↑ 2.0 2.1 CIDR FAQ, RIPE NCC, November 1995.
- ↑ 无类别域间路由,科普中国,2021.
- ↑ 4.0 4.1 4.2 Fuller, V., Li, T., "Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan", RFC 4632, BCP 122, August 2006.
- ↑ 5.0 5.1 5.2 超网,百度百科.
- ↑ Internet Engineering Steering Group, Hinden, R., "Applicability Statement for the Implementation of Classless Inter-Domain Routing (CIDR)", RFC 1517, September 1993.
- ↑ Rekhter, Y., Li, T., "An Architecture for IP Address Allocation with CIDR", RFC 1518, September 1993.
- ↑ CIDR与NAT的分身术逆袭,至顶网,2014.
- ↑ 9.0 9.1 无类别域间路由,百度百科.
- ↑ 无类域间路由CIDR,至顶网,2010.
- ↑ 无类路由,百度百科.
- ↑ Rekhter, Y., "CIDR and Classful Routing", RFC 1817, August 1995.
- ↑ 13.0 13.1 CIDR与NAT的分身术逆袭,至顶网,2014.