CIDR 用于定义 IP 地址块的大小或者路由规则。本文旨在介绍它们的区别及实际应用场景。
什么是 CIDR?
CIDR 是一种将 IP 地址和子网掩码结合的表示法,例如:
192.168.1.0/24:其中 /24 表示子网掩码的长度,特指前 24 位是网络部分。
192.168.1.1/32:表示针对单一 IP 地址的精确匹配(所有 32 位都用来表示 IP 地址)。
CIDR 格式能够灵活地表示任意范围的 IP 地址,并支持高效的网络地址分配。
IP/24 和 IP/32 的区别
IP/24 和 IP/32 的主要差异在于IP 地址范围和适用场景。
1. IP/24:表示子网
/24 的意思是前 24 位用来表示网络号,剩下的 8 位用来表示主机号。
地址范围
- 举例:
192.168.1.0/24
- 网络号:192.168.1
- 主机号总数:2^8 = 256(包含网络地址和广播地址)
- 主机地址范围:
192.168.1.1 到 192.168.1.254
- 子网总个数:如果是 IPv4 地址总长为 32 位,则网络后 8 位用作主机的标识。
- 适合用于一个子网的划分,能包含多个主机。
举例应用场景
- 为公司部门配置一个子网,如开发部门使用
192.168.1.0/24,测试部门使用 192.168.2.0/24。
- 无线局域网的单个路由器下允许 254 个设备连接(主机地址范围
192.168.1.1 到 192.168.1.254)。
2. IP/32:表示单一地址
/32 则表示所有的 32 位都用来定义 IP 地址,因此精确匹配一个地址,没有主机部分。
地址范围
- 举例:
192.168.1.1/32
- 网络号:全部 32 位,完全指向
192.168.1.1
- 主机号总数:2^0 = 1
- 精确指定了唯一的一个地址。
举例应用场景
- 用于定义特定主机的访问,如仅授权某一台计算机(
192.168.1.5/32)访问网络服务。
- 路由策略中应用于默认路由的目标,例如服务端的路由表精确匹配特定客户端的访问。
直观对比
| 特性 |
IP/24 |
IP/32 |
| 网络表示 |
网络地址(宽泛范围) |
精确到单个 IP 地址 |
| 总主机数 |
256 个 |
1 个 |
| 表示方式 |
192.168.1.0/24 |
192.168.1.1/32 |
| 适用场景 |
局域网、子网 |
特定主机的唯一标识 |
| 网络掩码 |
255.255.255.0 (前 24 位 1) |
255.255.255.255(前 32 位 1) |
| 例子 |
表示整个局域网 |
表示单独设备 |
细节拆解—子网掩码比较
| CIDR 表示法 |
子网掩码(十进制) |
可用主机数 |
x.x.x.x/24 |
255.255.255.0 |
254(排除网络地址和广播地址) |
x.x.x.x/32 |
255.255.255.255 |
1 个 |
实际应用中的典型案例
案例一:内网规划
假设你需要为一个公司配置以下网络:
- 开发部门需要 200 台设备,可以使用
192.168.1.0/24。
- 测试部门需要 50 台设备,可以使用
192.168.2.0/26。
剩余地址可以预留用于其他部门扩展。
案例二:VPN 网络
WireGuard 和其他 VPN 服务常用 /32 来标记每个客户端的 IP 地址:
- 服务端将在配置文件中为每个客户端分配独立的
/32 地址,例如 10.0.0.2/32。
- 这样可以确保客户端的 IP 地址不会和其他主机产生冲突。
案例三:ACL 精确控制
在防火墙配置中,你可能会使用 /32 为某台机器定义访问权限。例如:
# 允许 IP 192.168.2.5 的主机访问特定服务
iptables -A INPUT -s 192.168.2.5/32 -j ACCEPT
总结
- IP/24 是网络地址,用于定义一个子网,适合需要连接多个主机的场景。
- IP/32 是单一地址,用于精确匹配某台设备或者某个规则。
在实际应用中,理解 /24 和 /32 的区别可以帮助我们更高效地规划网络、配置安全策略和管理流量。