跳转到主要内容

networking

从零开始学子网划分:如何计算CIDR标记法

robinhood-projects3 分钟阅读

IPv4子网计算器

根据任意IPv4 CIDR地址块计算网络地址、广播地址、可用主机范围、子网掩码、反掩码及主机数量。

使用工具 →

CIDR范围展开工具

将任意CIDR地址块展开为该范围内所有IP地址的完整列表。

使用工具 →

Subnet to CIDR Converter

Convert a subnet mask (e.g. 255.255.255.0) to CIDR prefix notation (e.g. /24).

使用工具 →

从零开始学子网划分:如何读取和计算CIDR标记法

每次配置路由器接口、编写防火墙规则或规划IP寻址方案时,您都在使用子网和CIDR标记法。如果这些计算对您来说仍然有些不确定——或者您正在备考CCNA、CompTIA Network+或类似认证——本指南将从基本原理开始完整讲解整个过程。没有含糊其辞,没有跳过步骤。

什么是IP地址?

IP地址是一个32位的数字。您每天看到的点分十进制表示法——192.168.1.100——只是一种人性化的写法:四组八位数字,每组表示为0到255之间的十进制整数。

IPv4结构:四个八位组,32位

每组称为一个八位组(8位)。因此192.168.1.100的完整二进制形式为:

192       168       1         100
11000000  10101000  00000001  01100100

这个32位字符串是硬件实际处理的地址。点分十进制表示法的存在只是因为人类难以记住32位二进制字符串。

为什么40亿个地址耗尽了

2^32 = 4,294,967,296。这听起来很多,但实际并不够——因为每部智能手机、IoT传感器、云虚拟机和家庭路由器都需要一个地址。互联网社区在1990年代就预料到了地址耗尽问题,设计了两种缓解措施:NAT(允许许多设备共享一个公共IP)和IPv6(使用128位地址)。子网划分——将可用地址空间分割为更小、更高效的块——是另一个关键工具。它防止了旧的分类系统一次性分配数百万个固定块所造成的浪费。

什么是子网?

子网(sub-network的缩写)是IP网络的逻辑细分。与其为整个组织提供一个包含65,536个地址的平面块,不如将该块分成更小的片段——每个部门、楼层、功能或安全区各一个。

网络部分与主机部分

每个IP地址同时被解释为两个部分:

  • 网络部分——标识地址所属的子网。同一子网上的所有设备共享此部分。
  • 主机部分——标识该子网内的特定设备。

子网掩码定义了两者之间的边界。点分十进制形式的255.255.255.0表示"前24位是网络部分;后8位是主机部分"。

为什么将网络划分为子网

子网划分有三个主要好处:

  1. 流量隔离——广播流量保留在子网内,不会淹没整个网络。
  2. 安全分段——防火墙和ACL在子网边界运行,允许您限制区域之间的流量。
  3. 地址效率——您只为每个段实际需要的主机地址分配,而不是在点对点链路上浪费/16。

理解CIDR标记法

CIDR代表无类别域间路由(Classless Inter-Domain Routing)。它于1993年取代了旧的分类系统(A类/B类/C类),现已普及。CIDR标记法将IP地址和前缀长度组合在一个字符串中:

192.168.1.0/24

斜杠后的数字是前缀长度——从左边开始计数,属于网络部分的位数。

/24(前缀长度)的含义

/24表示前24位是网络。由于总共有32位,剩下8位留给主机。

  • 8个主机位 → 2^8 = 256个地址
  • 减去2(网络地址 + 广播) → 254个可用主机地址

/25留下7个主机位:2^7 = 128个地址,126个可用。
/30留下2个主机位:2^2 = 4个地址,2个可用——点对点链路的最小块。

斜线标记法与点分十进制掩码的转换

写出32位。用1填充前n位(n是前缀长度),用0填充剩余位。然后将其读取为十进制的四个八位组。

对于/24:

11111111 11111111 11111111 00000000
   255      255      255       0

子网掩码:255.255.255.0

对于/22:

11111111 11111111 11111100 00000000
   255      255      252       0

子网掩码:255.255.252.0

反向转换——将掩码转换回斜线标记法——就是计算1位的个数。使用FileCrank的子网转CIDR转换器 →即可立即完成。

如何手动计算子网

亲自完成一次运算,会以工具输出单独无法达到的方式巩固这个概念。以下是系统性的步骤。

第一步——转换为二进制

取IP地址并写出所有32位。对于172.16.5.0:

172       16        5         0
10101100  00010000  00000101  00000000

第二步——识别网络位和主机位

使用/22前缀,前22位是网络部分,后10位是主机部分。在第22位处画一条线:

10101100 00010000 000001 | 01 00000000
<---------- 网络(22位)----> <-- 主机(10位)-->

注意分割点落在第三个八位组的中间。这是子网划分中大多数混淆的来源——边界不必与八位组边界对齐。

第三步——找到网络地址、广播地址、可用范围

  • 网络地址: 将所有主机位设为0。
    10101100 00010000 00000100 00000000  →  172.16.4.0
    
  • 广播地址: 将所有主机位设为1。
    10101100 00010000 00000111 11111111  →  172.16.7.255
    
  • 可用范围: 网络地址+1到广播地址-1。 172.16.4.1到172.16.7.254

解题示例:172.16.5.0/22

属性值
网络地址172.16.4.0
子网掩码255.255.252.0
通配符掩码0.0.3.255
广播地址172.16.7.255
第一个可用主机172.16.4.1
最后一个可用主机172.16.7.254
主机地址总数1,024
可用主机地址1,022

注意输入地址172.16.5.0是子网内的主机地址——该/22块的网络地址是172.16.4.0。这是常见的考试陷阱:给定的地址并不总是网络地址本身。

提示: 立即用FileCrank的IPv4子网计算器 →验证您的手算结果。粘贴172.16.5.0/22并在进行更难的练习前确认六个值都匹配。

常见子网大小一览

前缀子网掩码地址总数可用主机典型用途
/8255.0.0.016,777,21616,777,214大型企业、ISP
/16255.255.0.065,53665,534企业园区
/20255.255.240.04,0964,094大型部门
/22255.255.252.01,0241,022中型部门
/24255.255.255.0256254小型LAN,最常见
/25255.255.255.128128126分割/24
/26255.255.255.1926462小型段
/27255.255.255.2243230服务器VLAN
/28255.255.255.2401614小型集群
/30255.255.255.25242点对点链路

/24在实践中是迄今最常见的,因为254个主机是大多数VLAN的合适大小,而且运算很简单(主机部分始终是最后一个八位组)。

使用FileCrank子网计算器

对于日常工作——编写防火墙规则、规划地址分配、验证配置——您不需要手动进行二进制运算。在FileCrank的IPv4子网计算器 →中输入任意IP地址和前缀长度,它会立即返回网络地址、广播地址、可用范围、子网掩码、通配符掩码和主机数量。

如果需要查看CIDR块中的每个IP地址——在配置白名单或审计分配时很有用——CIDR范围展开器 →会列出所有地址。两个工具完全在浏览器中运行:数据不会离开您的设备,无需账户。

要在一个地方快速访问所有子网和CIDR工具,网络工具 →中心列出了全部24个工具。

什么是VLSM,为什么对认证考生重要?

**可变长度子网掩码(VLSM)**通过允许同一网络内的不同子网使用不同的前缀长度来扩展基本的子网划分。与其将/24分成四个相等的/26(每个62个可用主机),VLSM允许您精确分配每个段实际需要的块大小。

示例: 您有10.0.0.0/24需要分配给四个段:

段需要的主机数分配的块前缀
工程部10010.0.0.0/25(126个主机)
销售部5010.0.0.128/26(62个主机)
管理部2010.0.0.192/27(30个主机)
点对点210.0.0.224/30(2个主机)

VLSM最大限度地减少地址浪费,在CCNA和Network+考试中被大量考查。考官测试的关键技能是:给定一个需求(主机数量),识别满足该需求的最小前缀,然后从地址空间中按顺序分配非重叠块。

CCNA和Network+的考试模拟题都会给您一个固定的地址池,要求您同时为多个需求进行子网划分——VLSM是唯一实用的方法。通过手算练习并用IPv4子网计算器 →验证是建立熟练度的最快方式。

常见问题

子网掩码和通配符掩码有什么区别?

子网掩码在网络部分有1,在主机部分有0。通配符掩码是其按位反转——网络部分为0,主机部分为1。通配符掩码用于Cisco ACL和OSPF的network语句。对于/24,子网掩码是255.255.255.0,通配符是0.0.0.255。

"所有主机位为零"和"所有主机位为一"是什么意思?

当所有主机位为0时,该地址是网络地址——它标识子网本身,不能分配给设备。当所有主机位为1时,该地址是广播地址——发送到此地址的数据包将传送到子网上的每个主机。两者都不能用作主机地址。

两个子网可以重叠吗?

不可以。重叠的子网会导致路由歧义:路由器无法确定通过哪个接口转发数据包。始终通过检查范围不相交来验证新分配的块不包含已使用的地址。

在点对点链路上应该使用的最小子网是什么?

/30(4个地址:网络、两个主机、广播)是传统选择。/31(RFC 3021)精确提供2个地址,没有网络或广播——在大多数现代IOS/NX-OS版本中对点对点使用有效,通常更受青睐,因为它不浪费地址。

如何将子网掩码转换为CIDR标记法?

计算掩码二进制表示中连续的1位数量。255.255.255.0 = 24个1 = /24。255.255.252.0 = 22个1 = /22。FileCrank的子网转CIDR转换器 →一步完成此操作。

为什么我的路由器显示带有/32的"主机路由"?

/32有零个主机位——它是到单个特定地址的路由,而不是网络。路由器使用/32主机路由来强制特定地址使用特定的下一跳(常见于BGP、环回接口和基于策略的路由)。