IP 组播协议


前言:
若采用单播方式,网络中传输的信息量域需要改信息的用户量成正比。多份内容相同的信息发送给不同用户,对信源及网络带宽都将造成巨大压力。若采用广播方式,无需接收信息的主机也将收到该信息,这样不仅信息安全得不到保障,且会造成同一网段中信息泛滥。

单播方式所存在的问题:重复流量过多、消耗设备和链路带宽资源、难以保证传输质量
广播方式所存在的问题:地域范围限制、安全性无法保障、有偿性无法保障
组播方式的优势:无重复流量、节省设备与带宽资源、安全性高、有偿性有保障
 

概述

IP组播技术有效地解决了单播和广播在点到多点应用中的问题。组播源只发送一份数据,数据在网络节点间被复制、分发(PIM),且只发送给需要该信息的接收者。

单播(Unicast)是在一台源 IP 主机和一台目的 IP 主机之间进行。
广播(Broadcast)是在一台源 IP 主机和网络中所有其它的 IP 主机之间进行
组播(Multicast)是在一台源 IP 主机和多台(一组)IP 主机之间进行,中间的
交换机和路由器根据接收者的需要,有选择性地对数据进行复制和转发。

组播基本架构

组播源到路由器:组播源生成组播数据,完成数据封装并发送给网关路由器。
路由器到路由器:路由器根据接收者的分布情况有选择地对数据进行复制和转发。
路由器到接收端:路由器收到组播数据并发送给相应的接收者。

PIM是路由器和路由器。 IGMP是PC和路由器
IP 组播协议
IP组播常见模型
ASM 全称为 Any-Source Multicast,译为任意源组播 。SSM 全称为 Source-Specific Multicast,译为指定源组播。

IGMP

IGMP(Internet Group Management Protocol,因特网组管理协议) ,是TCP/IP协议簇中负责IP组播成员管理的协议,它用来在接收者和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

IGMP协议运行于主机与组播路由器之间。
IGMP协议的作用:
主机侧:通过IGMP协议向路由器通告组成员关系
路由器侧:通过IGMP协议维护组成员关系

IGMP 有 3 个版本,分别 是 IGMPv1、IGMPv2、IGMPv3.

IGMPv1 主要基于查询和响应机制来完成组播组的管理。主机通过发送 report 消息加入到某组播组,主机离开组播时不发送离开报文,离开后再收到路由器发送的查询消息时不反馈 report 消息,待维护组成员关系的定时器超时后,路由器会自动删除该主机的成员记录。

IGMPv2 与 IGMPv1 基本相似,主机的不同点在于 IGMPv2 具有某些报文 抑制机制,可以减少不必要的 IGMP 重复报文,从而节省网络带宽资源,另外,
主机离开组播组时,会主动向路由器发送离开报文。

IGMPv1 和 IGMPv2 报文中都只能携带组播组的信息,不能携带组播源的信息, 所以主机只能选择加入某个组,而不能选择组播源,这一问题在 IGMPv3 中得 到了解决。运行 IGMPv3 时,主机不仅能够选择组,还能根据选择组播源。主 机发送的 IGMPv3 报文中可以包含多个组记录,每个组记录中可以包含多个
组播源。

熟悉点到多点应用的特点
传统点到点:服务提供端以单个用户为单位提供服务。
不同用户与服务供端的通信数据存在差异。

新型点到多点:服务提供端以一组用户为单位提供服务
同组用户与服务提供端的通信数据无差异

IGMPv1的工作机制

IP 组播协议 
Graft嫁接报文,相当于插班生
IP 组播协议 
IGMPv1组成员离开 —— 静默离开
60*2(健壮系数)+10(最大响应时间) = 130s
IP 组播协议

IGMPv1的查询器选举
IP 组播协议先看优先级,默认是1. 再看IP地址,谁大

IGMPv2的工作机制

IGMPv1缺点:
130s有点长,而且不发送leave报文。
IGMPv1没有独立的查询机制,要依附于组播协议

IGMPv2对IGMPv1的改进:组成员离开
特定组即 组播地址是什么,特定组就是什么 例如224.1.1.1
IP 组播协议 

IGMPv2对IGMPv1的改进:查询器选举 IP地址最小的获胜
IP 组播协议

IGMPv3的工作机制

IGMPv1和v2是任意源,不关心是哪个源 ASM
IGMPv3关心源,特点组播源 SSM (研发部只能看学习视频)
IP 组播协议

总结各版本的差异

IP 组播协议查询器选举:IP地址大,IP地址小,IP地址小
成员离开:130秒,两次离开报文,两次离开报文

五元组(源IP,源MAC,目的IP,目的MAC,协议号)

 

组播IP地址

一个组播IP地址并不是表示具体的某台机主机,而是一组主机的集合,主机声明加入某组播即标识自己需要接收目的地址为该组播地址的数据。

224.0.0.1 地址(表示同一网段内所有主机和路由器)
224.0.0.2 地址(本地网段内的所有组播路由器)
224.0.0.13 地址( PIM 路由器)
IP 组播协议

组播MAC地址

组播MAC地址与单播MAC地址的区别:
XXXX XXX1 组播MAC地址,第一个字节的最后一位为1
XXXX XXX0 单播MAC地址,第一个字节的最后一位为0

组播IP与 MAC的映射
需要组播IP地址与组播MAC地址的自动映射
1110 XXX.X ——》01-00-5E

 

组播配置

(配置之前先安装VLC media player)
第一步:配置组播源
IP 组播协议

IGMP Snooping的工作机制

组播数据在二层(交换机)会被泛洪,造成:网络资源浪费、存在安全隐患
二层交换的特性:转发、泛洪、丢弃
IP 组播协议

案例配置

两个组播服务器 组播源地址都是224.1.1.1
source-1存放一些娱乐视频,source-2存放一些学习视频。
情况1:人事部只想看娱乐,且不在意带宽资源问题,所以在PC-1上配置的是IGMPv1
情况2:市场部希望尽量节约带宽资源,所以需要在PC-2上配置IGMPv2
情况3:研发部不允许观看娱乐视频,所以需要在PC-3上配置IGMPv3
…后期补充

 

思考题

思考题:
①IGMPv1,当最后一个组播成员离开该组后,组播路由器将在多长时间删除所对应的组播转发表项? 130秒 60*2+10
②IGMPv2中,特定组查询的目的IP是224.0.0.1吗?不是,普遍组查询才是224.0.0.1
③IGMP Snooping的实现原理是什么?交换机侦听,通过路由器和PC之间查询和应答报文的交互 来识别哪些接口有组成员,交换机根据该对应关系将收到组播数据包只转给具有组成员的接口。如果没有组成员,就不发送。

 

PIM

前言:如果像单播路由一样通过多种路由算法动态生成组播路由,会带来不同路由协议间互相引入时操作繁琐的问题。
PIM: Protocol Independent Multicast 协议无关组播。目前常用版本是PIMv2,PIM 报文直接封装在 IP 报文中,协议号为 103,PIMv2 组播地址为224.0.0.13。

PIM直接利用单播路由表的路由信息进行组播报文RPF检查,创建组播路由表项,转发组播报文。

组播分发树是指从组播源到接收者之间形成的一个单向无环数据传输路径。组播分发树有两类:SPT 和 RPT

发送Hello的组播地址:224.0.0.13
Hello时间:30秒
Hold time时间:105秒
DR优先级默认为1。 如果优先级一样,IP地址大的为DR

 

PIM-DM

( Protocol Independent Multicast Dense Mode)

PIM-DM :采用“推(Push)模式”转发组播报文。
PIM-DM的关键任务:建立SPT 最短路径树

PIM-DM 假设网络中的组成员分布非常稠密,每个网段都可能存在组成员。
缺点:在组播成员分布较为稀疏的网络中,组播流量的周期性扩散会给网络带来较大负担。

PIM-DM的工作机制:邻居发现,扩散与剪枝,状态刷新,嫁接,断言
首先将组播数据报文扩散到各个网段。然后再裁剪掉不存在组成员的网段。
通过周期性的“扩散—剪枝”,构建并维护一棵连接组播源和组成员的单向无环SPT。

邻居发现:
在 PIM-DM 网络中,路由器周期性发送 Hello 消息来发现、建立并维护邻居关系。
发送Hello的组播地址:224.0.0.13
Hello消息默认周期:30秒
Hold time时间:105秒
DR优先级默认为1。 如果优先级一样,IP地址大的为DR
int g0/0/1
pim hello-option dr-priority 配置优先级
pim timer hello interval 在接口视图下配置发送 Hello 消息的时间间隔
pim hello-option holdtime interval,在接口视图下配置 Hello 消息超时时间值。默认情况超时时间值为 105 秒

IP 组播协议
 
扩散与剪枝:
会生成一个 (S,G)表
组播数据的转发中会出现上游接口和下游接口这两个概念,路由器收到组播数据的接口称为上游接口,转发组播数据的接口称为下游接口

IP 组播协议 
状态刷新
周期性地刷新剪枝状态 60秒
IP 组播协议 
Graft机制
不等待周期刷新,主动加入(插班生)。为了新的组成员加入组播组后,快速得到组播报文
IP 组播协议 
Assert机制
在多台路由器中选出唯一的转发者,根据Assert机制选。
到组播源的单播路由协议优先级较小者获胜。
如果优先级相同,则到组播源的路由协议开销较小者获胜。
如果以上都相同,则连接到接受者 MA 网络接口 IP 地址最大者获胜。
IP 组播协议
IP 组播协议 
PIM-DM 配置实现
IP 组播协议
multicast routing-enable
int g0/0/0
pim dm

如果路由器是连接PC的,要配置igmp enable
multicast routing-enable
int g0/0/01
pim dm
igmp enable

dis pim neighbor
dis pim routing-table 可以看到 (S,G)和上游接口,下游接口
dis pim interface

 
 

PIM-SM

PIM-SM :使用“拉(Pull)模式”转发组播报文。 (告诉大家感兴趣你就来领取,客户端主动来)

PIM-SM 假设网络中的组成员分布非常稀疏,几乎所有网段均不存在组成员,直到某网段出现组成员时,才构建组播路由,向该网段转发组播数据。一般应用于组播组成员规模相对较大、相对稀疏的网络。

PIM-SM的关键任务:建立RPT(汇聚点树也称共享树)、建立SPT(最短路径树)

PIM-SM 的关键机制:邻居建立、DR 竞选、RP 发现、RPT 构建、组播源注册、SPT 切换、Assert

汇聚点 RP(Rendezvous Point)
RP 的作用:
RP 是 PIM-SM 域中的核心路由器,担当 RPT 树根节点。
共享树里所有组播流量都要经过 RP 转发给接收者。
所有PIM路由器都要知道RP的位置

运行 PIM-SM 的网络,都会进行 DR(Designated Router)的选举。其中有两种 DR 分别称为接收者侧 DR 和组播源侧 DR。
组播接收者侧 DR:与组播组成员相连的 DR,负责向 RP 发送(*,G)的 Join加入消息。
组播源侧 DR:与组播源相连的 DR,负责向 RP 发送单播的 Register 消息。

IP 组播协议思考: 不会发送,因为会选举DR

IP 组播协议Register和Graft都是单播报文。
PIM-SM协议中,与组播接受者相连的DR负责向RP发送join消息。
源端DR发送Register消息

 

SPT的建立过程
IP 组播协议
IP 组播协议

Switchover机制
RPT树会存在非最优路径,于是就有了Switchover机制
IP 组播协议

PIM-SM 配置
IP 组播协议dis pim routing-table
dis pim neighborr

综合实验:
IP 组播协议
环回口比物理口稳定,物理口down了就down了。
IP 组播协议IP 组播协议

RP详解
RP 有两种形式:静态 RP 和动态 RP。
静态 RP 是由人工选定的,PIM 网络中的所有 PIM 路由器上都需要逐一进行配置。通过配置,每台路由便知道了静态 RP 的地址。

动态 RP 的确定过程相对比较复杂一些,在 PIM 网络中人工选定并配置若干台PIM 路由器,使得它们成为 C-RP( Candidate-RP ),RP 将从 C-RP 中选举产生。如果 C-RP 只有一个,则 RP 就是这个 C-RP。如果有多个 C-RP ,则优先级最高者(优先级数值越小优先级超高,缺省值是 0)将会被选举为 RP,如果通过优先级比较无法选举出 RP,则依靠 Hash 算法算出的数值来决定 RP,数值最大者将成为 RP(Hash 算法参数:组地址、掩码长度、C-RP 地址),如果通过 Hash 数值也无法确定出 RP ,则拥有最高 IP 地址的 C-RP 将成为RP 。

选定和配置 C-RP 时,还必须同时选定和配置 C-BSR (Candidate-BootStrap Router),并由 C-BSR 选举产生出一个 BSR。如果有多个 C-BSR,则拥有最高IP 地址的 C-BSR 将成为 BSR。BSR 是 PIM-SM 网络的管理核心,它负责收集网络中 C-RP 发出的 Advertisement 宣告信息,并计算出与每个组播组对应的 RP ,然后将 RP 的信息发布到整个 PIM-SM 网络中。BSR 动态映射组播组与 RP 的关系

静态 RP
pim
static-rp 11.11.11.11

动态 RP
int LoopBack 0
pim sm
pim
c-rp LoopBack 0