IP 地址与网络

CIDR

约 5 分钟阅读

什么是 CIDR

CIDR(Classless Inter-Domain Routing,无类别域间路由,发音类似「cider」)是一种灵活指定 IP 地址网络部分和主机部分边界的表示法。以 192.168.1.0/24 的形式书写,斜杠后的数字(前缀长度)表示从高位起有多少位属于网络部分。

在 CIDR 出现之前,IP 地址按固定的类别管理:A 类(8 位网络部分)、B 类(16 位)、C 类(24 位)。B 类提供 65,534 个地址,对中型组织来说太多;C 类的 254 个地址又太少。

1993 年引入的 CIDR 废除了固定的类别划分,允许在任意位位置分割网络,大幅减少了 IP 地址浪费,也抑制了互联网路由表的膨胀。

前缀长度的含义

/8(255.0.0.0)
网络部分 8 位,主机部分 24 位。约 1677 万个地址。相当于旧 A 类。10.0.0.0/8 作为私有地址空间广泛使用。
/16(255.255.0.0)
网络部分 16 位,主机部分 16 位。65,534 个地址。相当于旧 B 类。172.16.0.0/16 是私有地址范围之一。
/24(255.255.255.0)
网络部分 24 位,主机部分 8 位。254 个地址。相当于旧 C 类。家庭和小型办公网络最常用的大小。
/32
指定单个 IP 地址。在防火墙规则中用于仅允许或拒绝一台主机。

前缀长度越大,网络越小(地址越少)。/0 表示所有 IP 地址(整个互联网),用于默认路由。

与子网掩码的关系

子网掩码以不同格式表达与 CIDR 相同的信息。/24 等于 255.255.255.0/16 等于 255.255.0.0。掩码将网络位设为 1,主机位设为 0。

192.168.1.100/24 为例,与子网掩码 255.255.255.0 进行 AND 运算得到网络地址 192.168.1.0。可用主机范围为 192.168.1.1192.168.1.254.0 为网络地址,.255 为广播地址)。

CIDR 表示法更简洁、更易计算,是现代网络设计的主流。但操作系统的网络设置界面有时仍使用子网掩码格式,因此理解两者的对应关系在实务中很有用。

AWS 安全组中的实用示例

AWS 安全组和网络 ACL 使用 CIDR 表示法指定源地址和目标地址。理解 CIDR 是使用云基础设施的必备技能。

  • 0.0.0.0/0:所有 IPv4 地址。用于开放 Web 服务器的 HTTP/HTTPS 端口,但对 SSH 端口使用此设置很危险,因为它允许来自全球的登录尝试。
  • ::/0:所有 IPv6 地址。相当于 IPv4 的 0.0.0.0/0
  • 203.0.113.50/32:仅允许单个 IP 地址。用于将 SSH 访问限制为办公室 IP。
  • 10.0.0.0/16:指定整个 VPC 私有子网范围。用于内部通信规则。

设计 AWS VPC 时,先确定 VPC 的 CIDR 块(如 10.0.0.0/16),再将其细分为子网(如 10.0.1.0/24 为公有子网,10.0.2.0/24 为私有子网)。建议 VPC CIDR 预留充足空间以应对未来扩展。

常见误解

/24 和 C 类是一回事
/24 只是表示前 24 位为网络部分,与旧的类别概念无关。CIDR 已经完全废除了类别划分。例如 10.0.1.0/24 是旧 A 类范围内的 /24。
CIDR 只用于 IPv4
CIDR 同样用于 IPv6。IPv6 以 /64 为标准子网大小,/48 为典型的站点分配。表示法相同:2001:db8::/32。
分享

相关术语