3. IP地址与子网划分:IPv4地址分类、子网掩码与CIDR表示法

3.1 核心原理:IPv4地址的分类与结构

IPv4地址是一个32位二进制数,通常用“点分十进制”表示,例如 192.168.1.10。从结构上看,一个IPv4地址由网络号和主机号两部分组成。网络号标识设备所在的物理网络,主机号标识该网络内的具体接口。早期设计者为了适应不同规模的网络,将地址空间划分为A、B、C、D、E五类,其中A、B、C为单播地址,D用于组播,E保留实验。

地址类 首字节范围 默认子网掩码 网络号/主机号位数 适用规模
A类 1 – 126 255.0.0.0 8 / 24 超大型网络(约1677万台主机)
B类 128 – 191 255.255.0.0 16 / 16 中型网络(约6.5万台主机)
C类 192 – 223 255.255.255.0 24 / 8 小型网络(254台主机)
D类 224 – 239 — — 组播通信
E类 240 – 255 — — 实验保留

注意:127.0.0.0/8 被保留为环回地址(Loopback),用于本机自检,不属于任何A类网络。此外,A、B、C类中各有一段私有地址(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16),只能在内部网络使用,不可在公网路由。

IPv4地址分类与结构示意 32位IPv4地址 A类:网络号(8位) 主机号(24位) 1.0.0.0 – 126.255.255.255 B类:网络号(16位) 主机号(16位) 128.0.0.0 – 191.255.255.255 C类:网络号(24位) 主机号(8位) 192.0.0.0 – 223.255.255.255 私有地址段:10.0.0.0/8 | 172.16.0.0/12 | 192.168.0.0/16 特殊地址:127.0.0.0/8(环回) | 主机号全0(网络地址) | 主机号全1(广播地址) 网络号 主机号

3.2 方法流程:子网掩码与子网划分

子网掩码(Subnet Mask)是一个32位掩码,用连续的“1”表示网络号部分,用“0”表示主机号部分。将IP地址与子网掩码做按位与(AND)运算,即可得到该地址所在的网络号。例如:

IP地址:    192.168.10.35  →  11000000.10101000.00001010.00100011
子网掩码:  255.255.255.0  →  11111111.11111111.11111111.00000000
按位与结果:                11000000.10101000.00001010.00000000
网络号:    192.168.10.0

子网划分的本质是借用主机号的高位作为子网号,从而将一个大的网络分割成多个更小的子网。以C类地址 192.168.1.0/24 为例,若需要划分4个子网,则需向主机号借用2位(2²=4),子网掩码变为 255.255.255.192(即/26)。划分结果如下:

  • 子网0:192.168.1.0 – 192.168.1.63(网络地址 .0,广播地址 .63)
  • 子网1:192.168.1.64 – 192.168.1.127(网络地址 .64,广播地址 .127)
  • 子网2:192.168.1.128 – 192.168.1.191(网络地址 .128,广播地址 .191)
  • 子网3:192.168.1.192 – 192.168.1.255(网络地址 .192,广播地址 .255)

每个子网可用的主机地址数量为 2^(32-26) - 2 = 62 台(减去网络地址和广播地址)。子网划分的通用步骤如下:

  1. 确定需要的子网数量或每个子网的最大主机数。
  2. 计算需要借用的主机位位数 n,满足 2^n ≥ 子网数 或 2^(主机位-n) - 2 ≥ 最大主机数。
  3. 将原子网掩码中主机号的高 n 位改为1,得到新子网掩码。
  4. 列出所有子网的网络地址、广播地址和可用主机范围。

3.3 案例/场景:CIDR无类域间路由

传统分类地址(A/B/C类)灵活性差,容易造成地址浪费。CIDR(Classless Inter-Domain Routing,无类域间路由)打破了按类分配的限制,采用“IP地址/前缀长度”的表示法,前缀长度即网络号的位数。例如 10.1.0.0/16 表示前16位为网络号,后16位为主机号,等价于掩码 255.255.0.0。

CIDR的核心价值在于支持路由聚合(Route Summarization),将多个连续的子网合并为一个超网(Supernet),从而减少路由表条目。例如某企业拥有以下4个连续C类地址段:

192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24

这4个网段的二进制前22位完全相同,因此可以聚合为 192.168.0.0/22,掩码为 255.255.252.0。在边界路由器上只需发布一条聚合路由,即可代表这4个网段,显著降低路由开销。

CIDR计算示例:将 203.0.113.0/24 划分为两个等长子网。借用1位主机位,子网掩码变为 /25(255.255.255.128)。两个子网分别为:

  • 子网A:203.0.113.0 – 203.0.113.127(可用主机 .1 – .126)
  • 子网B:203.0.113.128 – 203.0.113.255(可用主机 .129 – .254)

3.4 误区/复盘:常见错误与排查思路

在实际网络配置中,IP地址与子网掩码的错误往往导致“无法通信”或“跨网段不可达”。以下是最常见的几类问题:

常见错误 现象 排查方法
子网掩码配置不一致 同一交换机下两台主机无法互通 用 ipconfig(Windows)或 ifconfig(Linux)检查双方掩码是否一致
IP地址超出子网范围 能ping通网关,但无法访问其他子网 计算本机网络号与目标网络号是否相同
误用广播地址或网络地址 主机地址冲突或无法分配 确认主机位不能全0或全1
CIDR前缀长度计算错误 路由聚合后部分网段不可达 将前缀长度转为二进制,核对连续1的位数

典型误区:初学者常将 /24 误认为“24个子网”,实际上 /24 表示网络号占24位,主机号占8位,可用主机数为254。另外,在规划子网时,不要忘记每个子网需要保留网络地址和广播地址,实际可用主机数需减2。例如 /30 子网只有2个可用地址,常用于点对点链路。

复盘一个真实排障案例:某办公室电脑IP设为 192.168.1.100/24,网关为 192.168.1.1,但无法上网。检查发现该电脑的子网掩码被误填为 255.255.0.0(即/16),导致系统认为网关与自己同网段,但实际上网关在 192.168.1.0/24 内。由于掩码不一致,ARP请求无法正确到达网关,通信失败。将掩码修正为 255.255.255.0 后立即恢复。这个案例说明:子网掩码决定了“同网段”的判断边界,配置时必须与全网规划保持一致。