无类比域间路由选择(CIDR)

无类别域间路由选择,即CIDR ,它的核心思想就一句话:彻底废除传统A、B、C类的固定边界,用灵活的网络前缀取代预定义长度。

一、它解决了什么问题?(历史背景)

在CIDR之前,是"有类"IP时代,弊端极明显:

  • 巨大的浪费:一个B类地址固定提供 2^16−2=65534 个地址。对只有几百人的公司,这会造成几万个地址闲置。

  • 路由表爆炸:哪怕给同一个机构连续分配几个C类网络(如192.168.1.0---192.168.8.0),核心路由器上也需要8条独立路由记录。

CIDR的使命就是:抑制浪费,聚合路由。

二、CIDR怎么干?

它抛开了A、B、C类的限制,用两部分描述一个网络:

CIDR地址块 = < 网络前缀 > / < 前缀长度 >

  • 网络前缀:相当于连续的网络位,可以是从1到32位的任意值。

  • 前缀长度:标识前多少位是网络部分,就是子网划分中新掩码的长度。

1. 灵活分配地址(抑制浪费)

  • 老方式:需要300台主机,C类(254台)不够,必须给一个B类(65534台),浪费严重。

  • CIDR方式

    • 2^8−2=254 不够;2^9−2=510 满足。

    • 需要9位主机位,网络位就是 32−9=23 位。

    • 直接分配/23的地址块 ,例如 200.1.1.0/23,恰好提供510个地址,按需分配。

2. 路由聚合(抑制路由表爆炸)

这就是CIDR的**"超网"**思想:把多个连续网络号合并在一条路由通告。

实例:

一个机构有8个连续的C类网络:192.168.8.0/24192.168.15.0/24。对外发布时,不必发8条,只发1条聚合路由

聚合计算细节:

  • 第一步:找到这8个网络号的共同网络高位。

    • 把8(00001000)和15(00001111)写成二进制,发现前5位(00001)不变。网络号的前16位(192.168)也全部相同。

    • 总网络前缀位 = 16 + 5 = 21位。

  • 第二步:确定超级网络地址。

    • 就是地址块中最小 的那个,并把变动的位归零。即 192.168.8.0
  • 结果 :向全球发布一条 192.168.8.0/21 的路由,就代表了这8个C类网络。

关键原则:聚合的地址块必须是连续的,且总数是2的幂次方,起止边界要对齐。

三、技术细节

1. 掩码与步长的对等关系

CIDR中,掩码就是前缀长度。

前缀长度 主机位(n) 点分十进制掩码(末段/第三段) 块大小(总IP数 2^n)
/24 8 .256.0 256
/23 9 .254.0 (255.255.254.0) 512
/22 10 .252.0 1024
/21 11 .248.0 2048
/20 12 .240.0 4096

核心公式

  • 可用主机数 = 2^n−2

  • 所属的 网络号(即 网络地址**)** = IP地址 AND 掩码,每个块的首地址就是块大小的整数倍。

  • 广播地址 = 下一个网络号 - 1

步长,也叫"块大小",就是一个子网内包含的IP地址总数。它的计算有两条路,结果完全一致:

1. 直接从掩码算

步长 = 256 - 掩码的非零段值

这里只处理掩码中最后一个不是255的段 。如果掩码是标准的 255.255.255.0,非零段就是最后的 0

2. 从主机位算

步长 = 2^主机位数

主机位数 n,就是掩码中末段连续0的个数。

2. 最长前缀匹配(路由器查表铁律)

聚合路由和具体子网路由可能同时存在。路由器转发数据包时,永远选择路由表中"前缀最长、最具体"的那一项

例子

路由器同时有两条路由:

  • 路由A:192.168.16.0/20 (聚合路由,范围大)

  • 路由B:192.168.18.0/24 (具体子网,范围小)

一个发给 192.168.18.5 的包,两条路由都匹配。

  • 路由B的前缀长度 /24 > /20,更长更具体

  • 结果:路由器会选择B。这保证了聚合路由的灵活性,也确保了访问具体子网的准确性。

四、CIDR计算演练

题目 :某公司被分配了整个CIDR地址块 172.16.64.0/20,需在该块内划分出5个主机数不少于500的子网。

计算了过程:

  1. 分析现有资源
    /20 主机位 n=32−2012。总IP数 2^12=4096。

  2. 分析需求(按主机数)

    500台主机,2^8−2=254 不够,2^9−2=510 满足。每个子网需要 n = 9 位主机位。子网掩码将是 32−9=23。

  3. 计算步长(关键)
    /23 的总IP数(步长)= 2^9=512。

  4. 掩码是 255.255.254.0,第三段非零值是254,步长 256−254=2(在第三段增加,即每次第三段+2)。

  5. 确定第一个子网的网络号

    必须对齐步长边界,不能随意指定。第一个子网号即 172.16.64.0

  6. 推导子网(均在/20块内)

    网络号第三段每次增加2:

  • 子网1: 172.16.64.0/23

  • 子网2: 172.16.66.0/23

  • 子网3: 172.16.68.0/23

  • 子网4: 172.16.70.0/23

  • 子网5: 172.16.72.0/23

五个/23子网共占用 5×512=25605×512=2560 个IP,远小于总公司持有的4096个,实现IP灵活分配。

相关推荐
TechWayfarer2 小时前
离线IP数据库内网部署:场景选型与热更新落地实践
网络·数据库·python·网络协议·tcp/ip
科技牛牛2 小时前
离线IP数据库推荐:风控合规场景怎么选
网络·数据库·tcp/ip·离线ip数据库·.数据安全
IpdataCloud2 小时前
IP查询工具的准确率怎么评估?一份可上生产的选型与验收指南
网络·人工智能·算法
IPDEEP全球代理2 小时前
动态IP能防止账号关联吗?
网络·网络协议·tcp/ip
龙俊杰的读书笔记2 小时前
一文读懂python并发&并行编程--以xinference框架应用为例
开发语言·网络·python
dollmarker2 小时前
vulnhub靶场之hacksudo: 2 (HackDudo)靶机-NFS提权
c语言·网络·网络安全·php
爱看科技3 小时前
量子与深度学习深度交融:微美全息(NASDAQ:WIMI)新型网络铸就效率精度双典范
网络·深度学习·量子计算
科技风向标go4 小时前
2026 年中国消费级监控售后现状与行业发展趋势研究;安防监控怎么选?认准全国联保 + 真质保更安心
大数据·网络·人工智能·监控·户外安防
2501_913061344 小时前
网络原理知识(8)
java·网络·面试