Skip to content

IPv4 子网划分

历史上,IPv4 地址是使用分类系统(A 类、B 类、C 类)进行管理的,其中每个类都有固定的默认子网掩码。这个系统不够灵活,常常导致 IP 地址的低效使用,因为分配给组织的地址块要么过大,要么过小,无法满足其需求。

引入无类别域间路由(CIDR,Classless Inter-Domain Routing)是为了克服这些限制。CIDR 允许灵活分配 IP 地址并创建各种大小的子网,以满足特定需求。使用 CIDR,网络由 IP 地址和前缀长度(例如,192.168.1.0/24)标识,其中前缀长度表示用于地址的网络部分的位数。

子网划分是将一个较大的 IP 网络划分为更小、逻辑上的子网络或子网的过程。这是通过从 IP 地址的主机部分“借用”位并将其用于扩展网络部分来实现的。这有助于更高效地利用 IP 地址、改进网络管理并通过隔离网络段来增强安全性。

CIDR 中的前缀长度直接对应于子网掩码。例如:

  • 一个 /24 前缀意味着 24 位用于网络,剩下 32 - 24 = 8 位用于主机。子网掩码:255.255.255.0。
  • 一个 /25 前缀意味着 25 位用于网络,剩下 32 - 25 = 7 位用于主机。子网掩码:255.255.255.128。
  • 一个 /16 前缀意味着 16 位用于网络,剩下 32 - 16 = 16 位用于主机。子网掩码:255.255.0.0。

当你从主机部分“借用” ‘n’ 位来创建子网时:

  • 子网数量:2^n
  • 每个子网的主机位数 (h):原始主机位数 - n
  • 每个子网可用的主机数量:2^h - 2(减去该子网的网络 ID 和广播地址)

示例:划分一个 /24 网络 (例如,203.0.113.0/24)

Section titled “示例:划分一个 /24 网络 (例如,203.0.113.0/24)”

一个 /24 网络有 8 个主机位 (2^8 - 2 = 254 个可用主机)。

  • 借用 1 位 (n=1) 用于子网划分(前缀变为 /25):
    • 子网数量:2^1 = 2 个子网。
    • 每个子网的主机位数 (h):8 - 1 = 7 位。
    • 每个子网可用的主机数量:2^7 - 2 = 128 - 2 = 126 个主机。
    • 这两个子网将是 203.0.113.0/25 和 203.0.113.128/25。
  • 借用 2 位 (n=2) 用于子网划分(前缀变为 /26):
    • 子网数量:2^2 = 4 个子网。
    • 每个子网的主机位数 (h):8 - 2 = 6 位。
    • 每个子网可用的主机数量:2^6 - 2 = 64 - 2 = 62 个主机。
    • 这四个子网将是 203.0.113.0/26、203.0.113.64/26、203.0.113.128/26 和 203.0.113.192/26。

跨越传统分类边界的子网划分示例 (CIDR 的应用):

Section titled “跨越传统分类边界的子网划分示例 (CIDR 的应用):”

考虑一个传统的 A 类地址块,如 10.0.0.0/8。默认掩码是 255.0.0.0。

如果一个组织需要许多较小的网络,他们可以对这个 /8 地址块进行子网划分。例如,创建 /16 子网:

  • 原始前缀:/8。期望的新前缀:/16。
  • 用于子网划分的借用位数 (n):16 - 8 = 8 位。
  • /16 子网的数量:2^8 = 256 个子网(例如,10.0.0.0/16, 10.1.0.0/16, …, 10.255.0.0/16)。
  • 每个 /16 子网有 32 - 16 = 16 个主机位,允许每个子网有 2^16 - 2 = 65,534 个可用主机。

类似地,对于传统的 B 类地址块,如 172.16.0.0/16(默认掩码 255.255.0.0):

创建 /24 子网:

  • 原始前缀:/16。期望的新前缀:/24。
  • 用于子网划分的借用位数 (n):24 - 16 = 8 位。
  • /24 子网的数量:2^8 = 256 个子网(例如,172.16.0.0/24, 172.16.1.0/24, …, 172.16.255.0/24)。
  • 每个 /24 子网有 32 - 24 = 8 个主机位,允许每个子网有 2^8 - 2 = 254 个可用主机。

子网划分的关键注意事项:

  • 任何子网中的第一个 IP 地址是网络 ID(例如,192.168.1.0/24)。
  • 任何子网中的最后一个 IP 地址是广播 IP(例如,对于 192.168.1.0/24,广播 IP 是 192.168.1.255)。
  • 这两个地址不能分配给单个主机。
  • 子网划分必须至少留下 2 个主机位才能有可用的主机地址(一个 /30 前缀提供 2 个可用主机 IP,常用于点对点链路)。特殊情况,如 /31,存在于特定场景中(RFC 3021)。

子网划分是网络管理中的一项基本技能。使用在线子网计算器和练习各种场景可以极大地帮助掌握这个概念。搜索 ‘CIDR subnetting tutorial’ 或 ‘IP subnet practice questions’ 可获取更多资源。