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 分钟内给出准确结果和合理解释。