• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

组播技术基础

武飞扬头像
我们是要解决问题的呀
帮助1

1、组播技术在项目中遇到的比较少
2、LAB必考,面试考点
3、网络技术涉及组播问题的地方比较多
结论:不懂组播的网工不是完整的网工


数据安全:
1、完整性
2、私密性
3、不可否认性


组播实现
1、一到多
2、多到多


单播地址,用于描述特定某一个接口
组播IP报文,目的IP不一定是单播地址
D类,组播地址:224.0.0.0 ----- 239.255.255.255

组播地址的双重作用
1、标识某一个组播应用/组播业务
2、代表接收这种组播业务的所有主机

组播IP报文的目的IP由组播业务/组播应用事先确定好,源IP就是发送改组播报文的主机的IP地址


ASM :任意源组播
如果客户端程序只能选择加入组地址,而无法选择组播源的地址,则部署ASM模型
239.1.1.10
239.1.1.11
239.1.1.12
特点:
1、仅通过组地址来区分不同的组播业务,即不同的组播业务得分配不同的组播地址,组播地址利用率不高
2、客户端无需维护组播源的信息,客户端开发难度低

SSM:指定源组播地址
如果客户端程序既可以选择加入组地址,也可以选择加入的源地址,则部署SSM模型

1.1.1.1 239.1.1.10
2.2.2.2 239.1.1.10
3.3.3.3 239.1.1.10

特点:不同的源可以使用相同的组地址提供不同的组播服务。提高了组播地址的利用率,但是客户端需要实现维护所有组播源与组的对应关系


IGMP:用于主机与组播路由器之间
作用: 将用户主机接入组播网络
1、在主机侧实现组播组成员动态加入与离开
2、在路由器侧实现组成员关系的维护与管理

PIM:用于域内组播路由器之间
作用: 组播路由与转发
1、按需创建组播路由
2、动态响应网络拓扑变化,维护组播路由表
3、按照路由表项执行转发

MSDP:用于组播路由器之间
作用: 域间组播源信息共享
1、源所在域内的路由器将本地源信息传递给其他域内路由器
2、不同域的路由器之间传递源信息


IGMP协议工作机制:
1、主机加入或离开组播组
2、路由器维护组播组
3、查询器的选举
4、成员报告抑制


IGMP协议的三个版本差异

IGMPv1:仅定义了基本的组成员查询和报告过程。RFC1112
IGMPv2:在IGMPv1的基础上添加了查询器选举和离开组机制。RFC2236
IGMPv3:成员可以指定接收或不接收某些组播源的报文。RFC3376

所有IGMP版本都支持ASM模型
IGMPv3可以直接应用于SSM模型;而IGMPv1和IGMPv2如果要用于SSM模型,则需要SSM-Mapping技术的支持
运行IGMP高版本的路由器可以识别低版本的成员报告(向下兼容)


IGMPv1报文关键字段及工作特点

版本:用于标识IGMP版本信息,置1
类型:0x11代表成员关系查询报文;0x12代表成员关系报告报文
组地址:当一个成员关系报告正被发送时,组地址字段包含组播地址;当用于成员关系查询时,本字段置0,主机会忽略该报文

路由器周期性的发送成员关系查询报文,默认查询周期为60s
成员关系报告的发送可以被动发送也可以主动发送
被动发送:主机收到成员关系查询报文后,发送成员关系报告报文
主动发送:主机刚加入到组播组后,主动发送成员关系报告报文

成员报告抑制机制:
每个收到成员关系查询报文的主机都会启动一个计时器,默认为0-10s的随机值,超时后主动发送成员关系报告报文,当其他同一组内的组成员收到该成员关系报告报文后,不再发送自己的成员关系报告报文


IGMPv1的缺点
1、没有组成员离开机制,导致路由器需要被动等待130s才停止组播流量的下发
2、没有查询器选举机制
3、路由器不能控制组成员响应时间

IGMPv2针对IGMPv1做了如下改进

1、增加了离开报文,当组成员离组时,会主动发送离组报文。离组报文发送的目的IP为224.0.0.2,该地址代表了该网段内所有的路由器接口

2、增加了特定组查询报文,得知某个组由成员离开,就会发送特定组查询报文,目的地址为成员离开的那个组地址。默认情况下,特定组查询报文每隔1s连续发2次,在1s*2的时间内,如果没有收到该组的成员关系报文,则认为这个组已经没有成员,结束该组流量,不再向该网段发送;如果收到该组的成员关系报文,则继续下发该组的组播流量

注意:特定组查询报文依然有成员关系抑制机制,抑制时间为1s,也就是在1s内随机等待一个时间,超时后回复报告报文。同组成员收到后,不再发送报告报文

管理员可以配置发送特定组查询的时间间隔以及发送次数,间隔决定成员的响应时间,间隔时间*次数,决定了路由器在多长时间后没有收到报告认为不再有成员存在

3、IGMPv2有自身的查询器选举机制,接口IP地址小的路由器成为查询器

如果非查询器默认在 健壮系数(特定组查询的发送次数)*普通组查询的发送间隔 + 最大响应时间的50% 时间后,没有收到查询器的查询报文,则认为查询器失效,重新选举查询器。查询器存活时间也可以手工配置
学新通


IGMPv2报文关键字段

类型:0x11表示成员关系查询报文
常规查询:用于确定哪些组播组时有效的,即该组内是否还有成员,常规查询地址由全0地址标识
指定组查询:用于查询特定的组播组内是否还有组成员
0x16表示IGMPv2的成员关系报告报文
0x12表示IGMPv1的成员关系报告报文
0x17表示离开组报文

最大响应时间:以0.1s为单位,默认值为100,即10s
组地址:
在成员关系查询报文中,发送一个常规查询报文时,组地址被设置为0,当发送一个特定组查询报文时,组地址被设置为该组的地址
在成员关系报告报文或离开组报文中,组地址保留了要报告或要离开的组地址

IGMPv2增加了最大响应时间字段,以动态地调整主机对组查询报文的响应时间


IGMPv3和IGMPv1,IGMPv2的比较

IGMPv1,IGMPv2服务于ASM组播模型,比较消耗组播地址资源

IGMPv3服务于SSM组播模型
IGMPv3没有成员报告抑制机制
组成员可以对组播源和组播组进行过滤,
过滤模式包含INCLUDE和EXCLUDE
也支持ASM模型,但实际应用比较少,客户端维护难度大

学新通


二层中组播数据转发的问题
组播数据在二层被泛洪,造成网络资源浪费,并且存在安全隐患

IGMP Snooping概述
解决组播报文在二层泛洪的问题
运行在数据链路层,是二层交换机上的组播约束机制,用于管理和控制组播组
通过监听IGMP报文,建立组播MAC地址表

学新通

学新通
学新通


IGMP相关命令

multicast routing-enable 				//启用组播路由
igmp enable								//接口开启IGMP
igmp version 2								//配置IGMP版本为2
display igmp interface					//验证IGMP接口
display igmp group						//验证IGMP组信息
igmp static-group 225.1.1.1		//配置静态IGMP表项

学新通
学新通


IGMP-Snooping相关命令及验证

igmp-snooping enable										//开启IGMP-Snooping
vlan x
	igmp-snooping enable									//开启VLAN下的IGMP-Snooping
display igmp-snooping router-port vlan x		//验证IGMP-Snooping路由器接口
display igmp-snooping port-info						//验证IGMP-Snooping成员端口

学新通


组播分发技术术语

叶子路由器:与用户主机相连,但连接的用户主机不一定为组成员
第一跳路由器:组播转发路径上,与组播源相连且负责转发该组播源发出的组播数据
最后一跳路由器:组播转发路径上,与组播组成员相连且负责向该组成员转发组数据
中间路由器:组播转发路径上,第一跳路由器与最后一跳路由器之间的PIM路由器

组播分发树:MDT
描述组播数据在网络中的转发路径,由组播路由协议建立
有两种类型:SPT(源树)和RPT(共享树)

SPT:最短路径树,也称为源树
以组播源作为树根,将组播源到每一个接收者的最短路径结合起来构成的转发树
每一个组播源与接收者之间建立一棵独立的SPT

RPT:共享树
以某个路由器作为路由树的树根,这个根常被称为RP(汇合点或核心)
所有的组播源和接收者都使用这棵树来收发报文,组播源先向树根发送数据报文,之后报文又向下转发给所有的接收者
对应某个组播组,网络中只有一棵树

分发树比较
SPT:路径最优,延迟最小,占用内存较多
RPT:路径不是最优的,引入额外的延迟,占用内存较少


组播数据转发和防环:
从转发角度来讲,组播路由和单播路由时相反的:
单播路由关心数据报文要到哪里去
组播路由关系数据报文从哪里来
单播报文的转发过程中,路由器并不关心源地址,只关心报文中的目的地址,通过目的地址决定向哪个接口转发
在组播中,报文时发送给一组接收者的,这些接收者用一个逻辑地址标识
路由器在接收到报文后,必须根据源和目的地址确定出上游和下游方向,把报文沿着远离组播源的方向进行转发


学新通


交换机通过IGMP监听机制,生成并维护一张组播转发表,包含三个信息
组地址/组播MAC地址 VLAN 成员端口
G1 10 GE0/0/5,GE0/0/3
G2 10 GE0/0/4

1、交换机需要确定路由器端口(交换机连接组播路由器的端口)
@交换机收到PIM协议的报文或收到IGMP的查询报文的接口就认为是路由器端口
@管理员也可以手动配置路由器端口

2、交换机需要确定哪些端口存在哪些组的成员,即成员端口
@监听成员发送的报告报文,报告报文中携带有组地址
@管理员也可以手动配置成员端口


1、交换机在路由器端口收到普通组查询报文后,将该报文向其他所有接口泛洪
2、主机收交换机泛洪来的查询报文后,回复报告报文,交换机收到该报文后,将其向路由器端口转发,不会泛洪给其他非路由器端口,同时将该端口加入到对应的组播转发表中

为什么报告报文只能从路由器端口转发呢,毕竟报告报文也是组播报文?原因是交换机知道某个组所有成员在自身的哪些接口上存在,此时交换机要让该组的所有成员都发送报告报文,必须屏蔽掉查询报文的抑制机制

3、主机离组发送离组报文,交换机收到离组报文后,不会立即删除该成员端口,而是将该离组报文转发到路由器端口

4、路由器收到离组报文后,发送特定组查询报文,交换机将其泛洪至成员端口,如果该端口在2s内没有收到报告报文,则删除该成员端口

为什么交换机收到离组报文后,不会立即删除该成员端口呢?原因是该成员端口下,不一定只有一个成员


学新通


组播路由协议概述:
运行于组播路由器之间
负责建立和维护组播路由,并正确、高效地转发组播数据报文
建立从组播源到多个接收端的无环转发路径,即组播分发树

PIM:与协议无关的组播路由协议
独立的组播路由协议,目前使用的市PIMv2
PIM协议产生之前,使用的组播协议有DVMRP(距离矢量组播路由协议)、MOSPF(组播OSPF协议)、CBT(核心树),以上组播协议都依赖单播路由协议的类型来进行工作
给组播提供路由信息的可以是静态路由、RIP、OSPF、IS-IS、BGP等任何一种单播路由协议
组播路由和单播路由协议无关,只要通过单播路由协议产生组播路由表项即可

PIM-DM:密集模式
使用”推“的方式来传送数据
适用环境:组播组成员规模相对较小,相对密集的网络
关键任务:建立SPT
工作机制:邻居发现、扩散、剪枝、状态刷新、嫁接、断言
设计思想:
假设网络中的组成员分布非常稠密,每个网段都可能存在组成员
首先将组播数据报文扩散到各个网段
然后再裁剪掉不存在组成员的网段
通过周期性”扩散—剪枝“,构建并维护一棵连接组播源和组成员的SPT

PIM-DM的DR没有实际用途,仅做为IGMPv1的查询其使用
DR选举机制:
1、首先比较Hello报文中DR的优先级,优先级较大的成为DR,DR具备抢夺性
2、如果DR优先级相同,则比较接口IP,IP地址较大的成为DR


启用PIM协议的路由器在接收到组播流量后,首先对组播流量进行RPF检测

RPF检测:即反向路径转发检测
是PIM协议中用于组播转发防环的核心手段,用于确保组播数据沿正确的路径传输
组播数据报文时从自身连接到组播源的接口上收到的,才进行转发,否则丢弃

RPF校验机制工作流程
1、路由器在单播路由表中查找到组播报文的源地址路由,以确定此报文是否市通过满足这样一个条件的接口到达的:该接口时去往报文源地址的出接口,对于(*,G)该接口时去往RP的出接口
2、如果该路由的出接口就是组播报文的入接口,则RPF校验成功,并将该报文转发到外出的接口上
3、否则RPF检查失败,报文丢弃
学新通
学新通
RPF检测成功后,即创建(S,G)表项,(S,G)表项由上游接口和下游接口所组成
上游接口:就是RPF接口,负责接收(S,G)的组播流量。对于每一个(S,G)表项来说,RPF接口有且只有一个
@如果去往组播源时负载分担的,则选择下一跳地址大的接口做为RPF接口,RPF接口上的PIM邻居称为RPF邻居
@如果RPF接口上存在多个PIM邻居,则邻居地址较大的做为RPF邻居

下游接口:将RPF接口收到的组播流量发送出去的接口,即存在直连组成员的接口(由IGMP协议维护)以及存在PIM邻居的接口

即将组播流量通过下游接口扩散

剪枝:当路由器发现没有直连组成员,除RPF接口之外的接口也不存在PIM邻居,则认为下游接口为Null,则向RPF接口发送剪枝报文。上游接口收到剪枝报文后,将自身(S,G)表项中该接口剪枝(210s内不再发送该组的组播流量),此时如果该路由器的(S,G)表项中还存在其他下游接口,则剪枝结束;如果(S,G)表项中下游接口为Null,则继续沿S的RPF发送剪枝报文

剪枝定时器:被裁剪的下游接口默认保持210s,超时后恢复转发,形成周期性的”扩散—剪枝“


S代表组播源的地址,G代表组播组的地址
SPT:最短路径树,源到组成员组播最短转发路径
DM的任务就是构建和维护SPT,SPT通过(S,G)来描述


嫁接:在剪枝定时器超时之前(210s),如果有组成员加组的需求,需要通过嫁接机制,帮助组成员快速拿到组播流量。路由器收到组成员的报告报文后,根据报告报文中的组地址,查看自身的(S,G)表项,以获取组播源S的信息。如果不存在对应的(S,G)表项,则无法实现嫁接,那么就要求全网路由i其在组播源活跃期间都必须维护(S,G)表项
如何保证组播源活跃期间,全网路由器能够存在(S,G)表项呢?
所以PIM-DM模式在组播源活跃期间通过周期性扩散和剪枝,来保证(S,G)表项不会老化
当存在对应的(S,G)表项,路哟求根据组播源的地址进行RPF检查,向去往组播源的RPF接口上的RPF邻居发送单播的嫁接报文
上游路由器接口接收到嫁接报文后,将该接口加入到自身的(S,G)表项的下游接口,引导组播流量下发,同时护肤单播的嫁接确认报文。剪枝到哪,嫁接就到哪


状态刷新机制:这是PIM-DM模式后续新增的机制,华为设备默认开启(思科设备默认关闭,在连接组播源的接口上开启状态刷新机制)
避免被裁剪的接口因为”剪枝定时器“超时而恢复转发,离组播源最近的第一跳路由器会周期性(30s)地触发状态刷新报文在全网内扩散。收到状态刷新报文的PIM路由器会刷新剪枝定时器的状态


断言机制:避免重复组播报文
当一个网段内有多个相连的PIM路由器RPF检查通过向该网段转发组播报文时,需要通过断言机制来保证一个PIM路由器向该网段转发组播报文
选举规则:
1、单播路由协议优先级较高者获胜
2、如果优先级相同,则比较到组播源的开销,越小越优
3、如果到组播源的开销相同,则比较下游接口的IP地址,越打越优

发送地址:224.0.0.13


PIM-SM:稀疏模式
使用”拉“的方式来传递数据
适用环境:组播组成员规模相对较大、相对稀疏的网络
关键任务:建立RPT,建立SPT
工作机制:邻居发现、DR竞选、RP发现、RPT构建、组播源注册、SPT切换、断言
设计思想
假设网络中的组成员分布非常稀少,几乎所有网段均不存在组成员
直到某网段出现组成员时,才构建组播路由,向该网段转发组播数据
首先在网络中维护一台重要的PIM路由器:汇聚点RP,可以随时出现的组成员或组播源服务,并且所有PIM路由器都直到RP的位置
当网络中出现组成员时,最后一跳路由器向RP发送Join报文,逐跳创建(*,G)表项,生成一棵以RP为根的RPT
当网络中出现活跃的组播源时,第一跳路由器将组播数据封装在Register报文中单播发往RP,在RP创建(S,G)表项,注册源信息


PIM-DM:密集模式思想,假定需求很旺盛,只要去做就一定赚,采用推的方式
PIM-SM:稀疏模式,假定没有需求,需求很少,赚不了大钱,采用拉的方式

找谁去拉呢?是否能够直接找组播源去拉?理论上时可以的,但是如果组成员用的时IGMPv1,IGMPv2就无法实现直接找组播源去拉

在PIM-SM模式中,找RP(即汇聚点,实质时一台被设置为RP的网络设备)去拉组播流量,要求全网的路由器都事先知道某个组的RP的地址。

连接组播源的路由器会逐跳的构建一棵以RP为根的RPT树,即共享树,RPT的根是RP,用(*,G)来描述。

连接组播源的路由器只需要将组播流量分发给这个组的RP即可,构建一棵源到RP的SPT树,SPT树的根是组播源,用(S,G)来描述

RPT树的建立过程:
1、当连接组成员的路由器收到IGMP报告报文后,即创建(*,G)表项,根据G查找对应的RP地址,收到报告报文的接口为(*,G)的下游接口
2、根据RP的地址进行RPF检查,找到去往RP的RPF接口,并发送(*,G)join报文,该RPF接口为(*,G)的表项的上游接口
3、上游路由器收到(*,G)join报文后,创建(*,G)表项,收到(*,G)join报文的接口为下游接口,根据G的地址查找RP地址,找到RP的RPF接口做为上游接口,并继续向RPF接口发送(*,G)join报文,逐跳构建RPT树

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhkiaef
系列文章
更多 icon
同类精品
更多 icon
继续加载