IPv4地址是32位,用点分十进制表示(如192.168.1.1),早期设计成“类别制”(Classful Addressing):根据第一个字节分类。
- Class A:前8位网络ID(如10.0.0.0/8),支持1600万主机,浪费巨大。
- Class B:前16位(如172.16.0.0/16),6万主机,中型网络。
- Class C:前24位(如192.168.1.0/24),254主机,小网络。
问题出在“刚性”:一个需要500主机的网络,只能选Class B,结果99%的地址闲置。全球IP地址池(约43亿)迅速耗尽,到1990年代初,已濒临崩溃。互联网工程任务组(IETF)意识到:必须打破类别限制,让地址分配更灵活。这就是CIDR的诞生背景——1993年RFC 1519定义,它引入“无类”概念,允许任意长度的子网掩码。

CIDR不是简单补丁,而是革命:它用“前缀长度”取代固定类别,开启了VLSM和路由汇总的时代。根据IANA数据,CIDR让IPv4寿命延长了20多年,直到IPv6接棒。
CIDR的全称是“无类域间路由”,核心是“无类”:子网掩码长度不再固定为8/16/24位,而是任意(如/20、/23)。表示法用CIDR记号:网络地址/前缀长度(如203.0.113.0/24),前缀长度就是1的位数。

为什么叫“域间”?
因为它主要用于不同自治系统(AS)间的路由聚合(Supernetting),将多个小网络合并成大块,减少BGP路由表大小。想象一下:互联网骨干路由器如果每条Class C都单独通告,路由表会爆炸;CIDR让ISP用一条/16代表多个/24,高效无比。
关键元素:
- 前缀:网络ID的连续1位。
- 聚合:逆向子网化,将地址块合并。
- VLSM前身:CIDR允许不同长度掩码,但早期多用于骨干网,VLSM则扩展到内部网络。
CIDR解决了两个痛点:地址浪费和路由膨胀。简单说,它让IP像“乐高积木”——随意组合。
CIDR基于二进制:32位地址,前N位是网络,后(32-N)位是主机。路由器用最长前缀匹配(Longest Prefix Match,LPM)查找路由表——优先匹配最具体的条目。
原理步骤:
- 地址分配:IANA按CIDR块分配给ISP,如/8给大公司,/20给中小。
- 子网划分:ISP再细分,如/20分成两个/21(每个块大小减半)。
- 路由通告:用BGP通告汇总前缀,接收方只存一条条目。
- 转发逻辑:数据包到达时,路由器比较前缀长度,选最匹配的下一跳。
公式:块大小 = 2^(32 - 前缀长度)。例如,/20块有4096地址(2^12)。
在路由协议中:
- 静态路由:ip route 192.168.0.0 255.255.240.0 下一跳(/20掩码)。
- 动态:OSPF/BGP支持CIDR,RIP需v2版本。
CIDR要求路由器支持“无类路由”(Classless),否则回退类别制,导致黑洞。
假设一家ISP分配了Class B网络172.16.0.0/16(65,534主机)。传统类别制下,只能全部分配给一个大客户,浪费。如果客户只需2000主机,怎么办?
用CIDR:
-
划分子网:借用2位主机位,创建四个/18子网(每个16,384地址,远超需求)。
- 子网1:172.16.0.0/18(0-63.255)。
- 子网2:172.16.64.0/18(64-127.255)。
- 子网3:172.16.128.0/18(128-191.255)。
- 子网4:172.16.192.0/18(192-255.255)。
每个子网主机:2^14 - 2 = 16,382,够用且有余地。
-
路由聚合:向互联网通告汇总172.16.0.0/16,一条条目代表四个/18。内部,客户用VLSM进一步细化(如/24小网)。
另一个示例:骨干路由。假设三个/24网络连续:203.0.113.0/24、203.0.114.0/24、203.0.115.0/24。
- 二进制第三字节:113=01110001,114=01110010,115=01110011。
- 共同前缀:203.0.112.0/22(第三/第四字节前6位1,块大小1024地址,覆盖112-115)。
- 通告:203.0.112.0/22,节省两条路由。
在Cisco配置:
router bgp 65001
network 203.0.112.0 mask 255.255.252.0
路由表显示:S* 203.0.112.0/22 [1/0] via 下一跳。
1549

被折叠的 条评论
为什么被折叠?



