概述
作为 IPv4协议的替代,IPv6协议使用 128位的地址结构解决了 IP地址不足的问题,同时对一些特 性进行了优化处理。出现于 IPv4时代的组播技术,由于其有效解决了单点发送、多点接收的问题, 实现了网络中点到多点的高效数据传送,能够大量节约网络带宽、降低网络负载,因此在 IPv6 中 的应用得到了进一步的丰富和加强。
IPv6组播与 IPv4组播的最大不同在于 IPv6组播地址机制的极大丰富,而其它诸如组成员管理、组 播报文转发以及组播路由建立等与 IPv4组播基本相同。因此,本文将重点介绍组播地址对 IPv6的 支持情况;对于 IPv6组播协议,只对其与 IPv4组播协议的异同进行大致的介绍。
IPv6 组播技术实现
IPv6组播地址
在介绍 IPv6组播地址之前,先简单回顾一下 IPv6的地址结构:IPv6地址的长度为 128比特,每个 IPv6地址被分为 8组,每组的 16比特用 4个十六进制数来表示,组和组之间用冒号隔开,例如:FEDC:BA98:7654:3210:FEDC:BA98:7654:3210。
IPv6组播地址格式
IPv6组播地址用来标识一组接口,通常这些接口属于不同的节点。一个节点可能属于 0到多个组播 组。发往组播地址的报文被组播地址标识的所有接口接收。
图1 IPv6组播地址格式
如图 1所示,IPv6组播地址中各字段的含义如下:
表1 Flags字段各位的取值及含义
预留的 IPv6组播地址
根据 RFC 4291,目前已被预留的 IPv6组播地址如表3所示。
表3 预留的 IPv6组播地址列表
说明:表3中的 X代表 0~F的任意一个十六进制数
基于单播前缀的 IPv6组播地址
RFC 3306中规定了一种动态分配 IPv6组播地址的方式——基于单播前缀的 IPv6组播地址。这种 IPv6组播地址中包含了其组播源网络的单播地址前缀,通过这种方式分配全局唯一的组播地址。
图2 基于单播前缀的 IPv6组播地址格式
基于单播前缀的 IPv6组播地址的格式如图 2所示,其中各字段的含义如下:
例如: 单播前缀为 3FFE:FFFF:1::/48 的网络分配基于单播前缀的组播地址为 FF3X:30:3FFE:FFFF:1::/96(X表示任意合法的 Scope)。
内嵌 RP地址的 IPv6组播地址
1.地址格式
嵌入式 RP(Rendezvous Point,汇集点)是 IPv6 PIM 中特有的 RP 发现机制,该机制使用内嵌 RP地址的 IPv6组播地址,使得组播路由器可以直接从该地址中解析出 RP的地址。
图3 内嵌 RP地址的 IPv6组播地址格式
如图3所示,内嵌 RP地址的 IPv6组播地址使用基于单播前缀的 IPv6组播地址格式,其中各字段 的含义如下:
2.计算规则
内嵌于 IPv6组播地址中的 RP地址的计算规则如下:
(1) 先将 IPv6组播地址 Network prefix字段的前 Plen位作为 RP地址的网络前缀。
(2) 再将 IPv6组播地址 RIID字段填充到 RP地址的最低 4位。
(3) 最后,将 RP地址的所有剩余位补 0。
例如:对于 IPv6组播地址 FF7E:F40:2001:DB8:BEEF:FEED::1234,内嵌于其中的 RP地址的前缀 为 Network prefix字段的前 Plen(这里为 0x40 = 64 bits)位,最低 4位为 RIID(0xF),其余位均 为 0,如图4所示。
图4 嵌入式 RP计算举例
3.应用举例
假设网络管理员想在 2001:DB8:BEEF:FEED::/64 网段中设置 RP,则内嵌 RP地址的 IPv6 组播地 址为 FF7X:Y40:2001:DB8:BEEF:FEED::/96,可分配 32比特的 Group ID,内嵌于其中的 RP地址 为 2001:DB8:BEEF:FEED::Y/64。
如果网络管理员想在IPv6组播地址中保留更多可分配的Group ID,可以选择更短的RP地址前缀:譬如取 Plen = 0x20 = 32 bits,则此时内嵌 RP地址的 IPv6组播地址为 FF7X:Y20:2001:DB8::/64, 可分配 64比特的 Group ID,内嵌于其中的 RP地址为 2001:DB8::Y/32。
说明:X表示任意合法的 Scope,Y代表 1~F的任意一个十六进制数。
IPv6 SSM组播地址
IPv6 SSM(Source-Specific Multicast,指定信源组播)组播地址也使用基于单播前缀的 IPv6组播 地址格式,其中的 Plen字段和 Network prefix字段均取 0。IPv6 SSM组播地址范围为 FF3X::/32 (X表示任意合法的 Scope)。
IPv6组播MAC地址
IPv6组播 MAC地址以 0x3333开头,低 32位为 IPv6组播地址的低 32位,最终形成 48比特的组 播 MAC 地址。如图5 所示,IPv6 组播地址 FF1E::F30E:101 所对应的组播 MAC 地址为 33-33-F3-0E-01-01。
图5 IPv6组播地址的 MAC地址映射举例
IPv6组播协议
IPv6支持的组播协议包括 MLD(Multicast Listener Discovery Protocol,组播侦听者发现协议)、 MLD Snooping(Multicast Listener Discovery Snooping,组播侦听者发现协议窥探)、IPv6 PIM(IPv6 Protocol Independent Multicast,IPv6协议无关组播)和 IPv6 MBGP(IPv6 Multicast BGP,IPv6 组播 BGP)等。
组播组管理协议
MLD源自 IGMP(Internet Group Management Protocol,互联网组管理协议),MLD有两个版本:MLDv1源自 IGMPv2,MLDv2源自 IGMPv3。
与 IGMP 采用 IP 协议号为 2的报文类型不同,MLD采用 ICMPv6(IP 协议号为 58)的报文类型, 包括 MLD 查询报文(类型值 130)、 MLDv1 报告报文(类型值 131)、 MLDv1 离开报文(类型值 132)和 MLDv2报告报文(类型值 143)。MLD协议与 IGMP协议除报文格式不同外,协议行为完全相同。
组播路由协议
IPv6 PIM与 PIM除报文中 IP地址结构不同外,其它协议行为基本相同,IPv6 PIM也支持如下四种模式:
IPv6 PIM发送链路本地范围的协议报文(包括 PIM Hello、Join-Prune、Assert、Bootstrap、Graft、 Graft-Ack和 State-refresh报文)时,报文的源 IPv6地址使用发送接口的链路本地地址;IPv6 PIM 发送全球范围的协议报文(包括 Register、Register-Stop和 C-RP Advertisement报文)时,报文的源 IPv6地址使用发送接口的全球单播地址。
IPv6组播并不支持 MSDP协议,如果需要接收来自其它 IPv6 PIM域的组播数据,有以下两种实现方式:
二层组播协议
1. MLD Snooping
MLD Snooping与 IGMP Snooping协议基本相同。
2.IPv6 PIM Snooping
IPv6 PIM Snooping与 PIM Snooping协议基本相同。
3. 组播 VLAN
组播 VLAN,对于 IPv4组播和 IPv6组播,处理原理相同。
到此这篇ipv6组播报文(ipv6 组播)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/22117.html