子网掩码与 CIDR

在可视化网络划分实验室里动手做子网划分:修改 CIDR 前缀,实时计算网络地址、广播地址、可用范围,并判断两个 IP 是否同网段。

进阶 约 20 分钟 交互实验子网划分CIDR子网掩码VLSM

跟随步骤学习:播放动画、单步执行、点击左侧步骤随时跳转。

开始学习

点击 播放 或 下一步 开始。每一步动画都对应一条原理解释, 右侧面板展示来自模拟器的实时数据;学完动画后,页面底部有完整图文正文。

本教程目标: 掌握 CIDR 前缀与点分十进制子网掩码的互相换算;理解借位划分:把主机位划出 n 位,就得到 2^n 个子网;学会计算每个子网的块大小、网络地址、广播地址与可用范围;能用「按位与」判断任意两个 IP 是否属于同一网段。

图文正文ARTICLE

即使不播放动画,也可以通过以下内容理解本教程的知识点。

为什么需要划分子网

假设一个公司拿到 192.168.1.0/24,254 个可用地址全部放在同一个广播域里会有问题:

  • 广播风暴:同一网段内任何广播帧(如 ARP 请求)都会打扰所有设备,设备越多开销越大。
  • 地址浪费:一个部门可能只用 10 个地址,却占掉了整段。
  • 管理与安全:不同部门混在一个网段,难以做访问控制。

划分子网就是把大网段切成多个小网段,每个小网段是独立的广播域,中间用路由器(三层设备)连接。

借位:子网划分的核心动作

子网划分的数学本质是向主机位借位。把主机位划出 n 位做子网位,就能得到 2^n 个子网,每个子网剩余的主机位决定可用地址数。

例如把 192.168.1.0/24 划成 4 个子网:借 2 位,前缀从 /24 变成 /26:

  • 192.168.1.0/26 → 可用 192.168.1.1 ~ 192.168.1.62
  • 192.168.1.64/26 → 可用 192.168.1.65 ~ 192.168.1.126
  • 192.168.1.128/26 → 可用 192.168.1.129 ~ 192.168.1.190
  • 192.168.1.192/26 → 可用 192.168.1.193 ~ 192.168.1.254

每个 /26 子网的块大小是 2 的 6 次方 = 64,所以子网的起始地址依次是 0、64、128、192。块大小是一个非常有用的速算工具:块大小 = 256 - 掩码最后一个非零字节的值。

判断两个 IP 是否同网段

设备收包时的判断方法很简单:

  1. 把自己的 IP 与自己的掩码做按位与,得到自己的网络地址;
  2. 把目标 IP 也与自己掩码做按位与;
  3. 两个结果相同 → 同网段,直接通过二层(ARP + 交换机)送达;不同 → 交给默认网关做三层转发。

注意一个常见误区:判断时永远使用自己的掩码,而不是「各自的掩码」。192.168.1.5/24 和 192.168.1.130/25 在各自视角下可能得出不同的判断,这正是配置错误导致跨网段不通的常见原因。

VLSM 与特殊前缀

早期网络要求整个网络使用同一个掩码,现代网络使用 VLSM(可变长子网掩码):不同子网用不同前缀,按需分配。

比如一条点对点路由器链路只需要 2 个地址,用 /30(可用 2 个)甚至 /31 就够;而一个大的用户网段用 /23。VLSM 极大提高了地址利用率,配合路由聚合(CIDR 把多个连续子网汇总成一条路由)还能减小路由表。

关于特殊前缀:

  • /31:RFC 3021 规定点对点链路上两个地址都可用,不套用「减 2」;
  • /32:主机路由,只匹配一个地址;
  • 主机位为 1 位的 /31、0 位的 /32,其「网络地址」「广播地址」概念与普通子网不同,不能简单套公式。