3. IP地址与子网划分实战

在企业网络工程师面试中,IP地址与子网划分几乎是必考内容。面试官并不满足于“192.168.1.0/24 有多少个可用地址”这类基础题,更常通过 VLSM、CIDR、子网聚合和真实地址规划场景,考察候选人是否具备工程化思维。本节围绕这些高频考点,给出可直接用于面试作答和实际规划的方法。

一、先厘清三个核心概念

CIDR(无类别域间路由)的核心是“网络前缀长度”取代传统 A/B/C 类边界。例如 10.10.0.0/16 表示前 16 位为网络位,后 16 位为主机位。CIDR 让地址块大小不再受类别限制,是路由聚合和现代地址规划的基础。

VLSM(可变长子网掩码)是在同一主网内,对不同网段使用不同长度的掩码。它的价值在于按需分配:点对点链路只需 /30 或 /31,服务器区可能需要 /26,办公区可能是 /24。VLSM 能显著减少地址浪费。

子网聚合(路由汇总)是把多个连续子网合并为一条路由通告。例如 192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24 可聚合为 192.168.0.0/22。聚合的前提是这些子网在二进制上连续且起始地址对齐。

二、面试计算题的快速解法

面试中常见题型包括:给定地址和掩码求网络地址、广播地址、可用主机数;给定需求反推掩码;判断两个地址是否同网段;求聚合路由。以下给出通用快速步骤。

第一步:确定块大小。块大小 = 256 - 掩码中变化的那一段的值。例如 /26 对应 255.255.255.192,块大小为 256 - 192 = 64。子网边界为 0、64、128、192。

第二步:找网络地址。用 IP 的最后一段除以块大小,取整数商再乘块大小。例如 192.168.1.100/26,100 ÷ 64 = 1,1 × 64 = 64,网络地址为 192.168.1.64。

第三步:求广播地址。下一个子网边界减 1。下一个边界是 128,广播地址为 192.168.1.127。

第四步:可用主机数。主机位为 32 - 26 = 6,可用地址为 2^6 - 2 = 62(/31 和 /32 例外)。

对于聚合题,快速方法是:把待聚合网段的网络地址写成二进制,找到从左到右连续相同的位数,该位数即为聚合后的前缀长度。例如 172.16.0.0/24 到 172.16.3.0/24,第三段 0、1、2、3 的二进制前 6 位相同,聚合为 172.16.0.0/22。

三、VLSM 地址规划实战案例

假设某企业申请到 192.168.10.0/24,需要划分给以下部门:办公区 100 台主机、服务器区 50 台主机、财务部 20 台主机、两个点对点链路。要求使用 VLSM 合理分配,并保留一定扩展空间。

规划原则:从需求最大的网段开始分配,避免地址碎片化。办公区需要 100 个可用地址,2^7 - 2 = 126,因此需要 /25。服务器区 50 台,2^6 - 2 = 62,需要 /26。财务部 20 台,2^5 - 2 = 30,需要 /27。点对点链路使用 /30,每段 2 个可用地址。

分配结果如下:

部门/链路 网段 掩码 可用地址范围 广播地址
办公区 192.168.10.0/25 255.255.255.128 192.168.10.1 - 192.168.10.126 192.168.10.127
服务器区 192.168.10.128/26 255.255.255.192 192.168.10.129 - 192.168.10.190 192.168.10.191
财务部 192.168.10.192/27 255.255.255.224 192.168.10.193 - 192.168.10.222 192.168.10.223
链路1 192.168.10.224/30 255.255.255.252 192.168.10.225 - 192.168.10.226 192.168.10.227
链路2 192.168.10.228/30 255.255.255.252 192.168.10.229 - 192.168.10.230 192.168.10.231

剩余 192.168.10.232 - 192.168.10.255 可作为预留地址池。这个案例在面试中常被追问:“为什么先分大的?”答案是:如果先分小的,大网段可能因地址不连续而无法获得足够大的连续块,导致规划失败。

四、子网聚合的工程判断

聚合不是简单地把网段写在一起,必须满足两个条件:待聚合网段连续,且聚合后的前缀长度对应的块大小能覆盖所有网段。例如 10.1.0.0/24、10.1.1.0/24、10.1.2.0/24、10.1.3.0/24 可聚合为 10.1.0.0/22。但如果缺少 10.1.2.0/24,则不能直接聚合为 /22,否则会把未使用的地址也通告出去,可能造成流量黑洞。

面试中常问:“聚合后会不会引入问题?”需要回答:聚合路由如果包含了未实际使用的子网,且这些子网在别处有更具体路由,可能因最长匹配原则导致转发异常;因此聚合前要确认地址连续性和实际使用情况。

五、面试计算题快速检查表

以下检查表可用于面试现场快速核对,避免低级错误:

  • 掩码与前缀长度是否对应正确?例如 /26 = 255.255.255.192。
  • 块大小是否计算正确?块大小 = 256 - 掩码变化段的值。
  • 网络地址是否落在子网边界上?
  • 广播地址是否为下一个子网边界减 1?
  • 可用主机数是否为 2^主机位 - 2?/31 点对点链路可用 2 个地址,/32 为主机路由。
  • 聚合时是否确认所有子网连续且对齐?
  • VLSM 分配是否从大到小?

六、一个可复用的地址规划模板

在实际项目或面试白板题中,可按以下字段快速输出规划表:

主网:192.168.10.0/24
规划顺序:按主机数降序
| 用途       | 需求主机数 | 前缀 | 网络地址        | 可用范围                  | 广播地址        | 备注     |
|------------|------------|------|-----------------|---------------------------|-----------------|----------|
| 办公区     | 100        | /25  | 192.168.10.0    | 192.168.10.1-126          | 192.168.10.127  | 最大段   |
| 服务器区   | 50         | /26  | 192.168.10.128  | 192.168.10.129-190        | 192.168.10.191  |          |
| 财务部     | 20         | /27  | 192.168.10.192  | 192.168.10.193-222        | 192.168.10.223  |          |
| 链路1      | 2          | /30  | 192.168.10.224  | 192.168.10.225-226        | 192.168.10.227  |          |
| 链路2      | 2          | /30  | 192.168.10.228  | 192.168.10.229-230        | 192.168.10.231  |          |
| 预留       | -          | -    | 192.168.10.232  | 192.168.10.233-254        | 192.168.10.255  | 扩展池   |

面试作答时,先口述规划原则,再给出表格,最后补充聚合与预留说明,通常能体现完整的工程思路。需要特别注意的是,所有计算都应现场推导,而不是背答案;面试官更看重推导过程是否清晰、边界判断是否准确。

掌握以上方法后,面对“给定 172.16.8.0/22 划分五个部门”“把 10.1.0.0/24 到 10.1.7.0/24 聚合”“求 192.168.1.200/27 的网络地址和广播地址”等题目,都可以在 1 分钟内给出准确结果和合理解释。