Skip to content
难度计算
建议时长45分钟

5.4.3 子网划分与路由汇聚

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

子网划分的本质:借主机位

一个原始网络有网络号和主机号。子网划分就是从原来的主机号里借若干位作为子网号。

text
原来:网络号 | 主机号
划分:网络号 | 子网号 | 主机号

借位越多,能划分的子网越多;但剩下的主机位越少,每个子网能容纳的主机越少。

第一类题:给子网数,求掩码

课堂例子:一个 B 类网络要划分成 27 个子网,求子网掩码。

步骤:

  1. B 类默认网络号为 16 位。
  2. 要至少表示 27 个子网,需要借 n 位,使 2n27
  3. 24=16 不够,25=32 足够,所以借 5 位。
  4. 新网络位 = 原网络位 16 + 子网位 5 = 21。
  5. /21 的掩码为 255.255.248.0

为什么第三段是 248?

text
/21 = 11111111.11111111.11111000.00000000
第三段 11111000 = 128 + 64 + 32 + 16 + 8 = 248
项目结果
原网络B 类,/16
子网需求至少 27 个
借位5 位
新前缀/21
子网掩码255.255.248.0
主机位11 位
每子网可用主机2112=2046

第二类题:给每网主机数,求掩码

如果题目说“每个子网至少容纳 700 台主机”,入口就变了。此时先保留足够的主机位 h

2h2700

292=510 不够,2102=1022 足够,所以至少保留 10 位主机位。

于是:

=3210=22

/22 的掩码是:

text
11111111.11111111.11111100.00000000
= 255.255.252.0

两类题不要混入口

题干给什么先算什么公式
至少划分多少个子网子网位数 n2n
每个子网至少多少主机主机位数 h2h2

一旦求出新前缀,后续就能算掩码、主机位、可用主机数。

同一子网判断

判断两个地址是否在同一子网,不是只看前几段是不是相同,而是看它们在给定前缀长度下的网络号是否相同。

课堂里提到类似 /22 的判断:前 16 位相同后,还要把第三段转成二进制,继续取前 6 位作为网络号的一部分。若这 22 位网络号一致,就属于同一子网;否则不属于。

做题方法:

  1. 把掩码换成前缀长度。
  2. 已经完整覆盖的整段可以直接比较。
  3. 落在某一段中间的位,要把该段转为二进制比较。
  4. 网络位完全相同才是同一子网。

路由汇聚:找最长公共前缀

路由汇聚是子网划分的反向过程。多个连续网络如果二进制前缀相同,就可以合并成一条更短前缀的路由,减少路由表项。

步骤:

  1. 把多个网络地址写成二进制。
  2. 从左到右找相同的最长前缀。
  3. 公共前缀之后的位全部置 0,得到汇聚网络地址。
  4. 公共前缀长度就是新前缀。
  5. 检查是否覆盖了题目不希望覆盖的额外网络。
概念子网划分路由汇聚
方向大网络切小网络小网络合成大网络
关键借位/保留主机位最长公共前缀
结果前缀变长前缀变短
风险主机数不够误覆盖多余网段

例题

单选
要从一个网络中至少划分出 6 个子网,至少需要借几位?
单选
路由汇聚的关键步骤是:
单选
B 类网络至少划分 27 个子网时,子网掩码应为:

自查要点

  1. 给子网数和给主机数时,为什么入口不同?
  2. B 类网络划分 27 个子网为什么要借 5 位?
  3. /21 为什么对应 255.255.248.0
  4. 判断同一子网时,为什么有时要把第三段转换为二进制?
  5. 路由汇聚为什么要检查是否覆盖多余网络?