单选题
177.IPv6 地址 2019::8:AB 对应的 Solicited-node 组播地址为?
A
FF02::1:FF08:AB
B
FF02::FF08:AB
C
FF02::1:FE08:AB
D
FF02::1:FF20:19
答案解析
正确答案:A
解析:
### 解析
**1. 理解 Solicited-Node 组播地址的结构**
在 IPv6 中,Solicited-Node(请求节点)组播地址用于邻居发现协议(NDP),特别是重复地址检测(DAD)和邻居请求(NS)。其固定格式如下:
* **前缀**:`FF02::1:FF00:0/104`
* `FF02`:表示链路本地范围(Link-Local Scope)的组播地址。
* `::1:FF`:这是 Solicited-Node 组播地址的固定标识部分。
* **后缀**:取单播 IPv6 地址的**最后 24 位**(即最后 6 个十六进制字符)。
因此,Solicited-Node 组播地址的通用形式为:
`FF02::1:FFXX:XXXX`
其中 `XX:XXXX` 对应原 IPv6 地址的最后 24 位。
**2. 分析给定的 IPv6 地址**
题目给出的 IPv6 地址为:`2019::8:AB`
我们需要将其展开或识别出最后 24 位。
* `::` 代表中间填充了若干个 `0000` 组。
* 该地址末尾部分是 `:8:AB`。
* 为了看清最后 24 位,我们可以将末尾部分补全为标准的 16 进制表示。
* `8` 可以看作 `0008`
* `AB` 可以看作 `00AB`
* 但更准确的方法是看最后 3 个 16 进制位组(每个组 16 位,共 48 位?不,是最后 24 位,即最后 1.5 个组,或者说是最后 6 个十六进制数字)。
让我们把地址 `2019::8:AB` 的最后部分写完整:
IPv6 地址由 8 组 16 进制数组成。
`2019:0000:0000:0000:0000:0000:0008:00AB`
我们需要提取**最后 24 位**。
* 最后 16 位是 `00AB`
* 倒数第二个 16 位是 `0008`
* 最后 24 位 = 倒数第二组的低 8 位 + 最后一组的 16 位。
* `0008` 的低 8 位是 `08`
* `00AB` 是 `AB` (实际上应保留完整最后两位组中的后三位十六进制数?不,是直接取最后 24 bit)
让我们用十六进制数字来看更直观:
地址末尾是 `...:0008:00AB`
最后 24 位对应的十六进制表示是最后 6 个十六进制数字。
`0008` -> `08` (取后两位? 不,`0008` 是 16 位,`00AB` 是 16 位。总共 32 位。我们要取最后 24 位。)
最后 32 位是 `0008:00AB`。
二进制:
`0000 0000 0000 1000 : 0000 0000 1010 1011`
最后 24 位是从第 9 位开始到最后:
`0000 1000 : 0000 0000 1010 1011`
转换为十六进制:
`08` : `00` `AB` ? 不对。
让我们重新对齐:
IPv6 地址最后两段是 `0008` 和 `00AB`。
合并起来的最后 32 位是 `000800AB` (十六进制)。
我们需要最后 24 位,即去掉最高位的 8 位(1 个十六进制数)。
`000800AB` 去掉最前面的 `0`,剩下 `0800AB`。
所以,最后 24 位对应的十六进制值是 `08:00AB` 吗?
等等,通常写法是 `FF02::1:FF` + `最后24位`。
最后 24 位拼接到 `FF02::1:FF` 后面。
`FF02::1:FF` 已经占据了前 104 位。
剩下的 24 位直接附加在后面。
原地址:`2019::8:AB`
展开末尾:`...:0000:0008:00AB`
最后 24 位是 `08:00AB` 吗?
让我们看十六进制数位:
`... 0 0 0 8 : 0 0 A B`
最后 6 个十六进制数字是 `0 8 0 0 A B`。
即 `08:00AB`。
但是,选项中的格式是 `FF02::1:FFXX:XXXX`。
这意味着最后 32 位中的高 8 位被忽略,低 24 位被使用。
Solicited-Node 地址结构:
`11111111 00000010 ... 00000001 11111111` (前 104 位)
`[24 bits from unicast address]`
原地址最后 32 位:`0008:00AB`
十六进制:`000800AB`
二进制:`0000 0000 0000 1000 0000 0000 1010 1011`
取最后 24 位:`0000 1000 0000 0000 1010 1011`
分组为 16 进制:
`0000 1000` -> `08`
`0000 0000` -> `00`
`1010 1011` -> `AB`
所以最后 24 位是 `08:00AB`。
组合后的组播地址为:
`FF02::1:FF` + `08:00AB`
即:`FF02::1:FF08:00AB`
通常省略前导零,写作:`FF02::1:FF08:AB`
**3. 对比选项**
* **A. FF02::1:FF08:AB**
* 前缀 `FF02::1:FF` 正确。
* 后缀 `08:AB` 对应原地址 `...:8:AB` 的最后 24 位(`0008` 的低 8 位 `08` 和 `00AB` 的 `AB`,中间补零?不,是直接拼接)。
* 让我们再仔细检查一下 `2019::8:AB` 的最后 24 位。
* 地址末尾段是 `8` 和 `AB`。
* `8` 是 `0008`。
* `AB` 是 `00AB`。
* 最后 24 位取自 `0008:00AB`。
* `0008` = `0000 0000 0000 1000`
* `00AB` = `0000 0000 1010 1011`
* 最后 24 位 = `0000 1000` (来自 0008 的低8位) + `0000 0000 1010 1011` (来自 00AB 的全部16位)
* 即 `0000 1000 0000 0000 1010 1011`
* 转为十六进制:`08` `00` `AB`
* 所以后缀应该是 `08:00AB`。
* 在 IPv6 表示法中,`FF02::1:FF08:00AB` 可以简写为 `FF02::1:FF08:AB`。
* 选项 A 符合。
* **B. FF02::FF08:AB**
* 缺少了固定的 `1:` 部分。Solicited-Node 地址必须包含 `::1:FF`。错误。
* **C. FF02::1:FE08:AB**
* 固定部分错误,应该是 `FF` 而不是 `FE`。错误。
* **D. FF02::1:FF20:19**
* 这里取的是地址开头的 `2019`,这是错误的。Solicited-Node 地址基于地址的**末尾** 24 位。错误。
**结论**
IPv6 地址 `2019::8:AB` 的最后 24 位是 `08:00AB`(简写为 `08:AB` 在冒号分隔的语境下,需注意位宽对齐,但在选项 A 中 `FF08:AB` 暗示了 `FF` 是固定前缀的一部分,`08` 是第 113-104 位? 不,`FF02::1:FF` 是前 104 位。接下来的 8 位是 `08`,再接下来 16 位是 `00AB`。
结构:
`FF02 : 0000 : 0000 : 0000 : 0000 : 0001 : FF08 : 00AB`
简化后:
`FF02::1:FF08:AB`
故正确答案是 **A**。
相关知识点:
IPv6对应组播地址要会
题目纠错
华为数通工程师HCIA题库
相关题目
单选题
624.以下关于 ACL 的匹配机制说法正确的有?
单选题
623.IPSec VPN 体系结构主要由以下哪些协议组成?
单选题
622.IPv6 报文支持哪些扩展报头?
单选题
621.在华为 ARG3 系列路由器上,AAA 支持哪些授权模式?
单选题
620.在交换机上, 哪些 VLAN 可以通过使用 undo 命令来对其进行删除?
单选题
619.以下应用程序中基于 TCP 协议的是哪一项?
单选题
618.路由表当中包含以下哪些要素?
单选题
617.当路由器运行在同一个 OSPF 区域中时,对它们的 LSDB 和路由表的描述正确的是( )。
单选题
616.STP 端口在下列哪种状态之间转化时存在 Forward Delay?
单选题
615.以下关于 MPLS 报文头中S 字段说法正确的是哪些?
