MLD基础

MLD(Multicast Listener Discovery)组播监听者发现协议,是通过ICMPv6报文传递(ICMPv6报文传递的有NDP和MLD协议。)。
MLD和IPv4网络中的IGMP功能类似,用于IPv6路由器发现其直连网段上组播监听者(Multicast Listener)、建立、维护组成员关系。
现有MLDv1和MLDv2两个版本,MLDv2在MLDv1的基础上增加了对SSM模型的支持。


MLD版本:
1、 MLDv1 版本(由 RFC 2710 定义),对应 IGMPv2。
2、 MLDv2 版本(由 RFC 3810 定义),对应 IGMPv3。
所有 MLD 版本都支持 ASM(Any-Source Multicast)模型。MLDv2 可以直接应用于 SSM(Source-Specific Multicast)模型,而 MLDv1 则需要 SSM-Mapping 技术的支持。


MLDv1查询器选举:
1、 所有 MLD 路由器在初始时都认为自己是查询器,并向本地网段内的所有主机和路由器发送 MLD 普遍组查询(General Query)报文(目的地址为 FF02::1)。
2、 本地网段中的其它 MLD 路由器在收到该报文后,将报文的源 IPv6 地址与自己的接口地址作比较。通过比较, IPv6 地址(link-local地址)最小的路由器将成为查询器,其它路由器成为非查询器(Non-Querier)。
3、 所有非查询器上都会启动一个定时器(即其它查询器存在时间定时器 Other Querier Present Timer)。在定时器超时前,如果收到了来自查询器的 MLD 查询报文,则重置该定时器;否则,就认为原查询器失效,并发起新的查询器选举过程。


MLDv2的改进:
MLDv2 的原理与 MLDv1 基本相同,并新增了以下特性:
1、 对 IPv6 组播源的过滤。
2、 IPv6 组播组状态跟踪。
3、 接收者主机的状态侦听。


对 IPv6 组播源的过滤:
MLDv2 增加了针对 IPv6 组播源的过滤模式(INCLUDE/EXCLUDE),使主机在加入某 IPv6 组播组 G 的同时,能够明确要求接收或拒绝来自某特定 IPv6 组播源 S 的 IPv6 组播信息。