单选题
设有2条路由21.1.193.0/24和21.1.194.0/24,如果进行路由汇聚,覆盖这2条路由的地址是_____。
A
21.1.200.0/22
B
21.1.192.0/23
C
21.1.192.0/21
D
21.1.224.0/20
答案解析
正确答案:C
解析:
要解决路由汇聚(Route Aggregation,也称路由汇总或超网)问题,我们需要找到能够覆盖所有给定子网的最小公共前缀。以下是详细的推导步骤:
### 1. 将IP地址转换为二进制
首先,我们将两个给定的IP地址的第三段(因为前两段 `21.1` 相同,最后一段主机位全为0,主要差异在第三段)转换为二进制进行比较。
* **路由 1**: `21.1.193.0/24`
* 第三段 `193` 的二进制:$128 + 64 + 1 = 11000001$
* 完整二进制前缀部分:`00010101.00000001.`**`11000001`**`.00000000`
* **路由 2**: `21.1.194.0/24`
* 第三段 `194` 的二进制:$128 + 64 + 2 = 11000010$
* 完整二进制前缀部分:`00010101.00000001.`**`11000010`**`.00000000`
### 2. 寻找最长公共前缀
对比这两个地址的二进制位,从左向右找出相同的位数:
```text
21.1.193.0: ... 11000001 ...
21.1.194.0: ... 11000010 ...
^^^^^^
相同部分
```
* 前两段 `21.1` 共 16 位完全相同。
* 第三段的前 5 位 `11000` 是相同的。
* 第 6 位开始不同(一个是 `0`,一个是 `1`)。
因此,公共前缀长度 = $16 \text{ (前两段)} + 5 \text{ (第三段相同位)} = 21$ 位。
### 3. 计算汇聚后的网络地址
保持公共前缀不变,后续位全部补 0,得到汇聚后的网络地址。
* 公共前缀部分(前21位):`00010101.00000001.11000`
* 剩余位补0:`000.00000000`
组合起来:
* 第一段:`00010101` = 21
* 第二段:`00000001` = 1
* 第三段:`11000000` = $128 + 64 = 192$
* 第四段:`00000000` = 0
所以,汇聚后的地址为:**`21.1.192.0/21`**
### 4. 验证选项
* **A. 21.1.200.0/22**:网络号不匹配,且范围不对。
* **B. 21.1.192.0/23**:掩码 /23 意味着第三段最后一位也是网络位。
* `/23` 的范围是 `21.1.192.0` 到 `21.1.193.255`。
* 它包含了 `193.0/24`,但**不包含** `194.0/24`(194超出了192-193的范围)。所以错误。
* **C. 21.1.192.0/21**:掩码 /21 意味着第三段前5位固定。
* 范围计算:第三段二进制 `11000xxx`,最小值 `11000000` (192),最大值 `11000111` (199)。
* 即范围是 `21.1.192.0` ~ `21.1.199.255`。
* `193.0` 和 `194.0` 都在这个范围内。**正确**。
* **D. 21.1.224.0/20**:网络号完全不匹配。
### 结论
能够覆盖 `21.1.193.0/24` 和 `21.1.194.0/24` 的最精确汇聚路由是 **21.1.192.0/21**。
故正确答案是 **C**。
题目纠错
计算机网络试题库
