子网掩码与 CIDR 前缀计算
子网划分是网络工程师最核心的日常技能——面试必考,工作中规划 VPC、配置安全组、写路由规则都要用到。掌握这张表和两道例题,可以解决 90% 的子网问题。
子网掩码速查表
CIDR 子网掩码 主机位数 可用主机数 网络数(从 /8 借位)
/8 255.0.0.0 24 16,777,214 1
/9 255.128.0.0 23 8,388,606 2
/10 255.192.0.0 22 4,194,302 4
/11 255.224.0.0 21 2,097,150 8
/12 255.240.0.0 20 1,048,574 16
/13 255.248.0.0 19 524,286 32
/14 255.252.0.0 18 262,142 64
/15 255.254.0.0 17 131,070 128
/16 255.255.0.0 16 65,534 256
/17 255.255.128.0 15 32,766
/18 255.255.192.0 14 16,382
/19 255.255.224.0 13 8,190
/20 255.255.240.0 12 4,094
/21 255.255.248.0 11 2,046
/22 255.255.252.0 10 1,022
/23 255.255.254.0 9 510
/24 255.255.255.0 8 254 ← 最常见
/25 255.255.255.128 7 126
/26 255.255.255.192 6 62
/27 255.255.255.224 5 30
/28 255.255.255.240 4 14
/29 255.255.255.248 3 6
/30 255.255.255.252 2 2 ← 点对点链路
/31 255.255.255.254 1 2(RFC 3021) ← 点对点(无广播地址)
/32 255.255.255.255 0 1(主机路由)
公式:可用主机数 = 2^(主机位数) - 2(减去网络地址和广播地址)
子网计算三要素
给定 192.168.10.100/26,求:
步骤 1:找网络地址(Network Address)
─────────────────────────────────────
/26 = 255.255.255.192 = 11111111.11111111.11111111.11000000
IP: 192.168.10.100 = 11000000.10101000.00001010.01100100
掩码: 255.255.255.192 = 11111111.11111111.11111111.11000000
AND: 192.168.10.64 = 11000000.10101000.00001010.01000000
→ 网络地址:192.168.10.64
步骤 2:找广播地址(Broadcast Address)
──────────────────────────────────────
将主机位全部置 1:
192.168.10.64 → 11000000.10101000.00001010.01 000000
主机位(6bit)全1: 11000000.10101000.00001010.01 111111
→ 广播地址:192.168.10.127
步骤 3:可用主机范围
──────────────────────
192.168.10.65 ~ 192.168.10.126(共 62 个地址)
汇总:
网络地址:192.168.10.64
广播地址:192.168.10.127
可用主机:192.168.10.65 ~ 192.168.10.126(62个)
子网掩码:255.255.255.192(/26)
快速判断技巧
/26 的块大小 = 256 - 192 = 64
/26 子网边界:0, 64, 128, 192(每隔64跳一个)
192.168.10.100 在 64-127 范围内 → 属于 192.168.10.64/26 这个网段 ✅
同理:
/25 块大小 = 256 - 128 = 128 → 边界:0, 128
/27 块大小 = 256 - 224 = 32 → 边界:0, 32, 64, 96, 128...
/28 块大小 = 256 - 240 = 16 → 边界:0, 16, 32, 48...
/29 块大小 = 256 - 248 = 8 → 边界:0, 8, 16, 24...
/30 块大小 = 256 - 252 = 4 → 边界:0, 4, 8, 12...
VLSM:变长子网掩码
VLSM(Variable Length Subnet Mask)允许同一个大网络分配不同大小的子网——按需分配,不浪费地址。
场景:公司分配到 10.10.0.0/16,需要:
- 总部:500 台主机
- 分支 A:100 台主机
- 分支 B:50 台主机
- 点对点 WAN 链路:2 台
分配策略(从大到小分配):
总部(需要 500 主机):
/23 = 510 个可用主机
分配:10.10.0.0/23(10.10.0.1 ~ 10.10.1.254)
分支 A(需要 100 主机):
/25 = 126 个可用主机
分配:10.10.2.0/25(10.10.2.1 ~ 10.10.2.126)
分支 B(需要 50 主机):
/26 = 62 个可用主机
分配:10.10.2.128/26(10.10.2.129 ~ 10.10.2.190)
WAN 链路(需要 2 主机):
/30 = 2 个可用主机
分配:10.10.3.0/30(10.10.3.1 ~ 10.10.3.2)
Linux 命令实践
# 查看网络接口的 IP 和子网掩码
ip addr show eth0
# 输出:inet 192.168.1.100/24 brd 192.168.1.255
# 用 ipcalc 计算子网(需安装)
ipcalc 192.168.10.100/26
# 输出:
# Address: 192.168.10.100
# Netmask: 255.255.255.192 = 26
# Network: 192.168.10.64/26
# HostMin: 192.168.10.65
# HostMax: 192.168.10.126
# Broadcast: 192.168.10.127
# Hosts/Net: 62
# 检查两个 IP 是否在同一子网
# 同一 /24 网段内,可直接通信;不同网段需要路由器转发
超网(Supernetting / Route Summarization)
将多个连续子网聚合为一条路由,减少路由表条目:
四个 /24 网段:
192.168.0.0/24 = 11000000.10101000.00000000.xxxxxxxx
192.168.1.0/24 = 11000000.10101000.00000001.xxxxxxxx
192.168.2.0/24 = 11000000.10101000.00000010.xxxxxxxx
192.168.3.0/24 = 11000000.10101000.00000011.xxxxxxxx
前 22 位相同 → 聚合为 192.168.0.0/22
路由器只需要一条路由:ip route 192.168.0.0/22 → 下一跳
CCNA 对应考点
考纲位置:Domain 1.6 — Configure and verify IPv4 addressing and subnetting
高频考题(考试中约占 10-15%): - 给定 IP/前缀,求网络地址、广播地址、可用主机范围 - 给定需要的主机数,选择合适的前缀长度 - VLSM:多部门按需分配子网 - 判断两个 IP 是否在同一子网(能否直接通信)
下一节:企业 IP 规划实战案例——用一个完整的企业网络场景,把子网划分技能应用到真实的 IP 规划方案中。