我运行 ICMPv6 协议,并使用wireshark 进行了捕获。在捕获中,我有一些多播侦听器报告消息 v2。有些有源ip,ipv6链接本地地址,但有些有::作为源地址?请您告诉我为什么发送带有 :: 源地址的多播侦听器报告消息 v2?
谢谢!
RFC 3810 第 5.2.13 节解释了这一点:
如果发送接口还没有获得有效的链路本地地址,则必须使用有效的 IPv6 链路本地源地址或未指定的地址 (::) 发送 MLDv2 报告。允许使用未指定地址发送报告以支持在邻居发现协议 [RFC2461] 中使用 IP 多播。对于 [RFC2462] 中定义的无状态自动配置,需要一个节点加入多个 IPv6 多播组,以执行重复地址检测 (DAD)。在 DAD 之前,上报节点对于发送接口的唯一地址是临时地址,不能用于通信。因此,必须使用未指定的地址。
这是与 MLDv1 不同的行为。RFC 3590 第 3 节更深入地解释了更改的基本原理。
在 [RFC 2710] 中,第 3 节要求所有 MLD 消息都使用有效的链路本地 IPv6 源地址发送。但是,正在为其链路本地 (LL) 地址执行重复地址检测过程中的节点将无法用作源地址。为此,本文档允许将未指定地址用作重复地址检测期间使用的 MLD 消息的源地址。
[RFC 2710] 和 [RFC 2462] 中定义的规则的差异导致了实现问题。一些 IPv6 实现在重复地址检测期间跳过发送 MLD 报告消息,因为它们没有有效的链路本地地址。当节点连接到执行 MLD 侦听的交换机时,这会导致操作问题。在这种情况下,重复地址检测 (DAD) 将成功完成,一旦地址投入使用,就会发生冲突,因为交换机可能没有按照要求将 DAD 消息转发到链路上的所有节点。本文档通过指定在 DAD 启动之前使用未指定的源地址发送 MLD 报告来解决这个问题,以确保发送到 LL 多播地址(例如,包括 MLD)的消息根据需要转发到所有适当的节点。
| 归档时间: |
|
| 查看次数: |
7802 次 |
| 最近记录: |