-
任何 IPv4 地址本质上是 32 位二进制数。
-
子网掩码用 32 位“1/0”位图 指出“网络位”(1) 与“主机位”(0) 的分界。
-
把 IP地址 与 子网掩码 做逐位 AND(按位与)即可得到该地址所在的“网络地址”;把主机位全置 1 即可得到“广播地址”。
一、为什么要子网划分?
-
节省IP地址资源
一个大的网络(如 /16)如果不划分子网,可能导致大量IP地址闲置。 -
网络管理灵活
不同部门、楼层、业务系统可以分配不同子网,便于管理和隔离。 -
提升网络性能和安全性
子网之间的广播受限,避免广播风暴;子网间通信可通过路由器控制,更易设定访问权限。
二、子网划分的基本概念
1 . IPv4 地址结构
| 进制表示 | 示例 | 含义 | 位数 |
|---|---|---|---|
| 二进制 | 11000000 10101000 00000001 00000001 | 4 个字节,每 8 位一组 | 32 位 |
| 十进制点分 | 192.168.1.1 | 每字节转为 0–255 的十进制 | 4 × 8 位 |
2.IP地址分类规则(基于二进制最高位)
| 类别 | 二进制首字节最高位特征 | 十进制首字节范围 | 网络号长度(位) | 主机号长度(位) | 用途说明 |
|---|---|---|---|---|---|
| A类 | 0xxxxxxx | 0 - 127 | 8 | 24 | 大型网络,少量网络,多量主机 |
| B类 | 10xxxxxx | 128 - 191 | 16 | 16 | 中型网络 |
| C类 | 110xxxxx | 192 - 223 | 24 | 8 | 小型网络 |
| D类 | 1110xxxx | 224 - 239 | - | - | 多播地址 |
| E类 | 1111xxxx | 240 - 255 | - | - | 保留及实验用地址 |
3.CIDR:Classless Inter-Domain Routing(无分类域间路由,1993 年提出)
CIDR 的本质是:掩码长度可以是 0–32 之间的任意整数,与首字节无关。
-
只要您写成
/n,n 就是网络位数; -
掩码里“1”的个数就是 n;
-
网络边界可以落在任何比特位,不必 8 位一跳。
-
在早期的IP协议分类中,掩码是死的,是人硬性规定的,是固定的,不是算出来的。
-
所以说“子网划分点完全由子网掩码决定”。在 CIDR 语境里,“类 A/B/C”只剩下历史价值,真正的路由和地址分配全靠
/n前缀。
4. 子网掩码的本质与表示
4.1 子网掩码是什么?
子网掩码(subnet mask) 是与 IPv4 地址同样长度的 32 位二进制数,用来区分 网络位 和 主机位。
-
掩码中的 1 表示这一位属于 网络号;
-
掩码中的 0 表示这一位属于 主机号。
只要把 IP 地址与子网掩码逐位做 AND 运算,就能得到“网络地址”(又称网段号)。
相反,把主机位全部置 1,就得到该网段的“广播地址”。
4.3 表示方法
例一:
| 表示形式 | 示例 | 说明 |
|---|---|---|
| 点分十进制 | 255.255.255.192 | 每 8 位写成 0–255(十进制) |
| CIDR 斜线记法 | /26 | 斜线后的数字是 网络位个数(即掩码中 1 的个数) |
/26 与 255.255.255.192 完全等价:
11111111.11111111.11111111.11000000 → 前 26 位为 1。
例二:
IPv4 地址和子网掩码都是 32 位。下表把 192.168.1.1/24 写成完整二进制,并用竖线标出 /24 划分点:
IP地址:11000000 10101000 00000001 00000001
掩 码:11111111 11111111 11111111 00000000
↑—-———— 网络 24 位 —--————↑│↑8位主机↑|
-
“网络位”就是掩码里为 1 的那 24 位,统一标识同一网段;
-
“主机位”就是掩码里为 0 的剩余 8 位,用来区分同一网段里的各台主机。
4.3 IP地址与子网掩码
| 项目 | 含义 |
|---|---|
| IP地址 | 唯一标识主机,如 192.168.1.1 |
| 子网掩码 | 用于划分“网络位”和“主机位”的边界,如 255.255.255.0 |
IP地址 = 网络号 + 主机号
子网掩码 = 网络部分用1,主机部分用0
例如:
| IP地址 | 子网掩码 | 网络位数 | 主机位数 |
|---|---|---|---|
| 192.168.1.1 | 255.255.255.0 (/24) | 24 | 8 |
4.4 掩码与子网/主机容量
设
-
原网络位 = N₀(例如 C 类默认 24 位)
-
你想再分出 n 位做“子网号”
-
新掩码网络位 = N = N₀ + n
-
剩余主机位数 m = 32 − N
| 目标 | 公式 |
|---|---|
| 子网数量 | 2ⁿ |
| 每子网可用主机数 | 2ᵐ − 2(减去网络地址和广播地址) |
示例
原来
192.168.1.0/24(N₀ = 24)要分 4 个子网 → 4 = 2² ⇒ n = 2
新掩码/26,主机位 m = 32 − 26 = 6
子网数
2² = 4每网主机数
2⁶ − 2 = 62
4.5 快速换算技巧
| 快速任务 | 做法 |
|---|---|
| 斜线 → 点分 | 把网络位数 N 除以 8: 完整的 8 位段全部写 255; 剩余 <k> 位用公式 256 − 2⁽⁸⁻ᵏ⁾。 |
| 点分 → 斜线 | 把四段换成二进制并数 “1” 的个数。 |
| 判断同网 | 对两台主机:IP ∧ MASK 结果相同 ⇒ 同一子网。 |
| 求广播地址 | IP |
例: /27
-
N = 27 ⇒ 完整 3 段 255;27-8*3=3即剩 3 位 → 256 − 2⁵ = 224 ⇒
255.255.255.224.
4.6 常见掩码速查表
| 前缀 | 掩码 | 单网可用主机 |
|---|---|---|
| /30 | 255.255.255.252 | 2 |
| /29 | 255.255.255.248 | 6 |
| /28 | 255.255.255.240 | 14 |
| /27 | 255.255.255.224 | 30 |
| /26 | 255.255.255.192 | 62 |
| /25 | 255.255.255.128 | 126 |
| /24 | 255.255.255.0 | 254 |
5.子网划分的计算步骤
以 192.168.1.0/24 为例,我们希望将它划分为4个子网。
5.1 步骤1:确定要划分的子网数量
-
4个子网 => 需要再借用2位主机位(2^2 = 4)
5.2 步骤2:新子网掩码
-
原为
/24,再借2位 =>/26 -
子网掩码变为:
255.255.255.192
5.3 步骤3:确定子网范围
每个子网间隔是 2^(8-2) = 64 个IP地址
| 子网编号 | 子网网络地址 | 可用主机范围 | 广播地址 |
|---|---|---|---|
| 子网1 | 192.168.1.0/26 | 192.168.1.1 ~ 62 | 192.168.1.63 |
| 子网2 | 192.168.1.64/26 | 192.168.1.65 ~ 126 | 192.168.1.127 |
| 子网3 | 192.168.1.128/26 | 192.168.1.129~190 | 192.168.1.191 |
| 子网4 | 192.168.1.192/26 | 192.168.1.193~254 | 192.168.1.255 |
每个子网保留两个特殊地址:网络地址和广播地址,可用主机数 = 2ⁿ - 2
5.4 子网划分的常用公式
-
可用子网数:2^借用位数
-
每个子网的主机数:2^主机位数 - 2
-
子网增量(Block Size):256 - 子网掩码的变化位所在的字节
例如:/26 => 最后一段为192,增量是 256 - 192 = 64
6.示例:192.168.1.1/24 逐步剖析
要求:将192.168.1.1/24划分到4个子网中
| 步骤 | 说明 | 二进制结果 |
|---|---|---|
| ① IP → 二进制 | 192.168.1.1 | 11000000 10101000 00000001 00000001 |
| ② 掩码 → 二进制 | /24 ⇒ 255.255.255.0 | 11111111 11111111 11111111 00000000 |
| ③ AND 运算 | 得网络地址 | 11000000 10101000 00000001 00000000 |
| ④ 转十进制 | 网络地址 | 192.168.1.0 |
| ⑤ 主机位全 1 | 广播地址 | 192.168.1.255 |
-
网络位数 = 24 → 主机位数 = 32 − 24 = 8(主机位数=32-网络位数)
-
可用主机数 = 2⁸ − 2 = 254(去掉全 0 与全 1)
7.更细粒度:把 /24 再细分为 /26(即把可用主机数254再进行划分)
-
借 2 位主机位 → 新掩码
/26(此时新的子网掩码为255.255.255.192)——为什么借2位主机位?因为2^2=4(4个子网) -
子网块大小:
256 − 192 = 64 -
4 个子网(0–63、64–127、128–191、192–255):
| 子网 | 网络地址 | 主机范围 | 广播地址 |
|---|---|---|---|
| 0 | 192.168.1.0/26 | 192.168.1.1 – 192.168.1.62 | 192.168.1.63 |
| 1 | 192.168.1.64/26 |
192.168.1.65 – 192.168.1.126 | 192.168.1.127 |
| 2 | 192.168.1.128/26 | 192.168.1.129 – 192.168.1.190 | 192.168.1.191 |
| 3 | 192.168.1.192/26 | 192.168.1.193 – 192.168.1.254 | 192.168.1.255 |
每个子网保留两个特殊地址:网络地址和广播地址,可用主机数 = 2ⁿ - 2
每个子网主机位 = 6 位 → 2⁶ − 2 = 62 台可用主机。
8.常见运算与技巧
| 任务 | 快速做法 |
|---|---|
| 计算主机数 | 2^(32−前缀) − 2 |
| 求子网增量 / Block Size | 256 − 子网掩码变化字节,如 /26 → 256 − 192 = 64 |
| 判断两主机是否同网 | 对两 IP 与掩码分别 AND,结果相同即同一子网 |
| 反推掩码 | 给定主机位数 h:掩码前缀 = 32 − h |
9.常见误区澄清
-
广播地址≠全 255:它是“该子网主机位全 1”;与实际数值相关。
-
网络地址≠掩码:网络地址是 IP 与掩码“AND”后的结果。
-
末尾 .0 不一定是网络地址:要结合掩码判断(如 /30 中 10.0.0.0 和 10.0.0.4 都可能是网络号)。
三、进阶知识:子网划分 VS 超网合并
| 项目 | 子网划分(Subnetting) | 超网合并(Supernetting) |
|---|---|---|
| 目标 | 把大网分小 | 把小网合并大 |
| 方法 | 增加网络位 | 减少网络位 |
| 应用场景 | 局域网内部管理 | 路由表聚合,提升效率 |
四、举例练习
-
10.1.0.0/20的可用主机数是多少? -
把
172.16.0.0/16划分为 500 个以上 子网,需要多少前缀位? -
判断
192.168.50.130与192.168.50.200在/26掩码下是否同网。 -
10.0.0.0/16要划分为至少 1000 个子网,该怎么做?
-
原网络:16位网络位
-
1000个子网 => 2^10 = 1024,需借10位
-
新网络位数 = 16 + 10 = 26
-
所以:每个子网是
/26
4052

被折叠的 条评论
为什么被折叠?



