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),只能在内部网络使用,不可在公网路由。
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 台(减去网络地址和广播地址)。子网划分的通用步骤如下:
- 确定需要的子网数量或每个子网的最大主机数。
- 计算需要借用的主机位位数
n,满足2^n ≥ 子网数或2^(主机位-n) - 2 ≥ 最大主机数。 - 将原子网掩码中主机号的高
n位改为1,得到新子网掩码。 - 列出所有子网的网络地址、广播地址和可用主机范围。
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 后立即恢复。这个案例说明:子网掩码决定了“同网段”的判断边界,配置时必须与全网规划保持一致。