前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IPv6组播技术

IPv6组播技术

作者头像
网络技术联盟站
发布2020-07-10 18:04:50
4.2K0
发布2020-07-10 18:04:50
举报
文章被收录于专栏:网络技术联盟站

概述

作为 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组播地址中各字段的含义如下:

  • 0xFF:最高 8比特为 11111111,标识此地址为 IPv6组播地址。
  • Flags:4比特,该字段中各位的取值及含义如表 1所示。

表1 Flags字段各位的取值及含义

取值及含义

0位

保留位,必须取0

R位

取 0表示非内嵌 RP的 IPv6 组播地址 ; 取 1表示内嵌 RP的 IPv6 组播地址(此时 P、T位也必须置 1)

P位

取 0表示非基于单播前缀的 IPv6 组播地址; 取 1表示基于单播前缀的 IPv6 组播地址(此时 T位也必须置 1)

T位

取 0表示由 IANA 永久分配的 IPv6 组播地址 ;取 1表示非永久分配的 IPv6 组播地址

  • Scope:4比特。用来标识该 IPv6组播组的应用范围,其取值及含义如表 2所示。表2 Scope字段的取值及其含义
  • Group ID:112 比特,IPv6组播组标识号。用来在由 Scope字段所指定的范围内唯一标识 IPv6 组播组,该标识可能是永久分配的或临时的,这由 Flags字段的 T位决定。
预留的 IPv6组播地址

根据 RFC 4291,目前已被预留的 IPv6组播地址如表3所示。

表3 预留的 IPv6组播地址列表

说明:表3中的 X代表 0~F的任意一个十六进制数

基于单播前缀的 IPv6组播地址

RFC 3306中规定了一种动态分配 IPv6组播地址的方式——基于单播前缀的 IPv6组播地址。这种 IPv6组播地址中包含了其组播源网络的单播地址前缀,通过这种方式分配全局唯一的组播地址。

图2 基于单播前缀的 IPv6组播地址格式

基于单播前缀的 IPv6组播地址的格式如图 2所示,其中各字段的含义如下

  • Flags:R位置 0,P、T位则分别置 1,表示基于单播前缀的组播地址。
  • Scope:如 2.1.1 图 1表 2所示。
  • Reserved:8比特。保留字段,必须为 0。
  • Plen:8比特。表示网络前缀的有效长度(单位为比特)。
  • Network prefix:64比特。表示该组播地址所属子网的单播前缀,有效长度由 Plen字段指定。
  • Group ID:32比特。表示 IPv6组播组标识号。

例如: 单播前缀为 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组播地址格式,其中各字段 的含义如下:

  • Flags:R、P和 T位均置 1,表示内嵌 RP地址的组播地址。
  • Scope:如 2.1.1 图 1表 2所示。
  • Reserved:4比特。保留字段,必须为 0。
  • RIID:4比特。表示 RP地址的接口 ID。
  • Plen:8比特。表示 RP地址前缀的有效长度(单位为比特)。
  • Network prefix:64比特。表示 RP地址前缀,有效长度由 Plen字段指定。
  • Group ID:32比特。表示 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-DM(IPv6 Protocol Independent Multicast-Dense Mode,IPv6协议无关组播—密 集模式) FF1E
  • IPv6 PIM-SM(IPv6 Protocol Independent Multicast-Sparse Mode,IPv6协议无关组播—稀 疏模式)
  • IPv6 PIM-SSM(IPv6 Protocol Independent Multicast Source-Specific Multicast,IPv6协议 无关组播-指定源组播)
  • IPv6 BIDIR-PIM(IPv6 Bidirectional Protocol Independent Multicast,IPv6双向协议无关组 播,简称 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域的组播数据,有以下两种实现方式:

  • 通过其它方式(譬如广告等)直接获取其它 IPv6 PIM域内的组播源地址,使用 IPv6 PIM-SSM 发起指定源组的加入。
  • 使用嵌入式 RP机制,通过嵌入 RP地址的 IPv6组播地址来获取其它 IPv6 PIM域内的 RP地 址,向其它域内的 RP发起组加入。对于域间 IPv6组播路由信息的传递,则可以使用 IPv6 的 MBGP 协议,其与 IPv4的 MBGP协议也基本相同。
二层组播协议

1. MLD Snooping

MLD Snooping与 IGMP Snooping协议基本相同。

2.IPv6 PIM Snooping

IPv6 PIM Snooping与 PIM Snooping协议基本相同。

3. 组播 VLAN

组播 VLAN,对于 IPv4组播和 IPv6组播,处理原理相同。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络技术联盟站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • IPv6 组播技术实现
    • IPv6组播地址
      • IPv6组播MAC地址
        • IPv6组播协议
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档