首页 > 编程知识 正文

igmp路由器,支持igmp协议的路由器

时间:2023-05-03 08:27:13 阅读:114813 作者:3908

另一方面,IGMP将所有IGMP简称为internetgroupmanagementprotocol (互联网组管理协议),用于在最后一跳路由器和收件人之间建立和维护多播组成员资格(记录师生日常课堂上的勾号。 调查者是教师,收件人是学生) )。

二、IGMP版本2.1 IGMP的三个IGMPv1版本(由RFC 1112定义) ) )。

IGMPv2版本(由RFC 2236定义)

IGMPv3版本(由RFC 3376定义)

IGMPv1定义了基本的组成员资格查询和报告流程,IGMPv2在此基础上增加了被查询选举和退出组成员的机制。 添加到IGMPv3的主要功能是允许成员指定是否接收来自特定多播源的消息。 (教师在日常生活中不断学习新策略,不断更新补丁) )。

由于三个版本在演进过程中对协议消息的处理具有前向兼容性,因此运行IGMP较高版本的路由器可以识别较低版本的成员报告,尽管每个版本的协议消息格式不同。 也就是说,高版本与低版本兼容。

2.2 IGMP版本之间的互操作性v1和v2示例如下:

1.v2主机和v1路由器

v1路由器将v2报告视为无效的IGMP消息类型,并忽略它

2.v1主机和v2路由器

版本1的主机脱离组,不发送脱离组消息版本1忽略版本2的报告

3 .混合版本

运行IGMPv1的路由器位于子网中。 必须在子网中的所有路由器上强制配置并成功使用IGMPv1

所有IGMP版本都支持资源多点(ASM )模型。 IGMPv3可以直接应用于源特定多点(SSM )型号,但IGMPv1和IGMPv2需要SSM -映射技术支持。

三. IGMPv1工作原理3.1 IGMPv1消息格式

类型的含义

成员关系查询(0x11 ) )。

版本2成员报告(0x16 )。

版本1成员资格报告(0x12 ) ) )。

来自组的消息(0x17 ) )。

3.2 IGMPv1消息IGMP消息封装在IP消息中,IGMPv1消息有两种类型:

通用查询(general query,general query )查询向共享网络上的所有主机和路由器发送的查询消息,用于知道哪些多播组中存在成员。

通用组查询向本地段中的所有主机和路由器(allsystem/224.0.0.1 )发送IGMP查询消息。

(学校上课前由教师指定)

在IGMPv1中,提问者的提问周期为60s。 没有离开小组的消息,安静地离开。 ()这位教师神经质,给60s取了一次名字。 学生旷课不做记录,学生决定旷课) )。

成员报告消息(Report )主机发送到多播路由器的报告消息,用于申请加入某个多播组或响应查询消息。

(上课前由学生签名)

四、IGMPv1工作机制IGMPv1协议主要基于查询和响应机制完成组播组的管理。 如果一个网段中有多个多播路由器,则只有其中一个路由器发送查询消息就足够了。 在这种情况下,必须选择IGMP查询。 在IGMPv1中,多播路由协议PIM选择唯一的多播信息转发者(Assert Winner或DR )作为IGMPv1的联系人,负责查询该网段的成员关系(thdpj通过经验老道的老师)

4.1灾难恢复选举: 1.高优先级

2.IP地址大

所有默认灾难恢复优先级都为1。 也就是说,选择IP地址较大的一方。

如果下图中的灾难恢复优先级均为默认R4 0/0/2端口地址为10.1.2.4 R5 0/0/2端口地址为10.1.2.5,则选举R5为查询者

4.2通用组的咨询和响应

多播网络中的RouterA和RouterB连接到主机网段,如上图所示。 RouterA是一个查询器,主机网段上有三个收件人: HostA、HostB和HostC。 假定HostA和HostB想接收发往组播组G1的数据,并且HostC想接收发往组播组G2的数据。 常见的组查询和响应流程包括:

IGMP查询器(RouterA )发送一条通用组查询消息,表示224.0.0.1 ) )同一网段中的所有主机和路由器。 组查询消息周期性地发送,并且发送周期可以由命令构成,缺省情况下每隔60秒发送一次。 如果网段中的所有主机都收到此查询消息,且HostA和HostB是多播组G1的成员,则在本地启动计时器Timer-G1。 HostC是多播组G2的成员,本地启动计时器Timer-G2。 计时器的范围是0到10秒之间的随机值。 第一计时器超时(10s内到达响应点)的主机向该组发送报告消息。 HostA上的Timer-G1首先超时,向该网段发送目的地地址为G1的报告消息。 如果还想加入组G1的HostB收到该报告消息,它将停止计时器Timer-G1,不再发送针对G1的报告消息。 这样,可以抑制报告消息并减少网络段上的业务量。 报告抑制如果用于同一网段的同一多播组具有多个主机,则防止一个网段发生报告风暴。 在路由器接收到报告消息之后,它知道该网段中存在多播组G1和G2的成员后,它通过多播路由协议将(,G1 )、G2 )多播转发条目网络上有多播组G1和G2的数据到达路由器时,将转发到该网段。 (组播部分

发树本质为组播路由表.分为SPT(源树/最短路径树)和RPT(共享树).源树的形成会在后续PIM-sm中有详细说明)
新组成员加入

如上图所示,假设在网段上新接入一个主机HostD,想加入组播组G3,但是侦听到网段中没有G3的组播数据。则不等待普遍组查询报文的到来,立即发送针对G3的报告报文。路由器收到报告报文后,了解到本网段内出现了组播组G3的成员,则生成组播转发项(,G3)。网络中一旦有G3的数据到达路由器,将向该网段转发。 4.3 组成员离开

IGMPv1没有专门定义离开组的报文。当主机离开组播组时,将不会再对普遍组查询报文做出回应。假设HostC退出组播组G2,当收到普遍组查询报文时,HostC不再发送针对G2的报告报文。由于网段上不存在组G2的其他成员,路由器不会收到G2的报告报文,则在一定时间(130秒)后,删除G2所对应的组播转发项。
如果是HostA退出组播组G1,则路由器不会感知到他的离开,因为G1中还有成员HostB。
路由器在3倍的查询时间(180s)内没有收到某个组成员的report消息.才认为该组成员已经离组.
(学校上课时逃课.但同一小组还有组员,可以代为签到.)

五、IGMPv2工作原理 5.1 IGMPv2报文格式


v2在报文格式上添加了最大响应时间(Max Response Time)字段.此字段用于控制成员的响应速度,取值可以进行调整.默认为10s.

5.2 IGMPv2报文

相比于IGMPv1,除了普遍组查询报文和成员报告报文之外,IGMPv2新增了两种报文:
特定组查询报文(Group-Specific Query):查询器向共享网段内指定组播组发送的查询报文,用于查询该组播组是否存在成员。
下图为v2的通用组查询.特定组查询即multicast address为某个特定的查询组地址.
成员离开报文(Leave):成员离开组播组时主动向路由器发送的报文,用于宣告自己离开了某个组播组。
RFC的规定离组的目的地是224.0.0.2,华为是特定组.
华为设备上任意的一个接收者离开组,都会产生离组报文! RFC规定只有上一个发送报告的设备离组.才发送离组报文
如图上一个发送报告的设备为PC1,但PC离组也发送了离组报文.并且发向了组播组地址239.1.1.1.

六、IGMPv2工作机制

在工作机制上,与IGMPv1相比,IGMPv2增加了查询器选举和离开组机制。

6.1 查询器选举

IGMPv2使用独立的查询器选举机制,当共享网段上存在多个组播路由器时,IP地址最小的路由器成为查询器。

所有IGMPv2路由器在初始时都认为自己是查询器,向本地网段内的所有主机和路由器发送普遍组查询报文。其他路由器在收到该报文后,将报文的源IP地址与自己的接口地址作比较。通过比较,IP地址最小的路由器将成为查询器,其他路由器成为非查询器(Non-Querier)。如图1所示,RouterA的接口地址小于RouterB,则RouterA当选为查询器。所有非查询器上都会启动一个定时器(即其他查询器存在时间定时器Other Querier Present Timer)。在该定时器超时前,如果收到了来自查询器的查询报文,则重置该定时器;否则,就认为原查询器失效,并发起新的查询器选举过程。默认为125s. 6.2 离开组机制


如上图所示,在IGMPv2中,主机HostC想离开组播组G2时:

HostC向本地网段内的所有组播路由器(目的地址为224.0.0.2)发送针对组G2的离开报文。(学生请假离课)查询器收到离开报文,会发送针对组G2的特定组查询报文。发送间隔和发送次数可以配置。缺省每隔1秒发送一次,一共发送两次。同时启动组成员关系定时器Timer-Membership=发送间隔x发送次数。(教师点2次名后该学生确定离开)网段内不存在其他组G2的成员,则路由器不会收到针对组G2的报告报文,会在Timer-Membership超时后,删除(*,G)表项中对应的下游接口。组G2的数据再到达路由器时,将不会再向该网段转发。如果网段内还有组G2的其他成员,则这些成员在收到特定组查询报文 七、IGMPv3的工作原理

IGMPv3主要是为了配合SSM(Source-Specific Multicast)模型发展起来的,提供了在报文中携带组播源信息的能力,即能加入到指定源的组播组.

7.1 IGMPv3报文格式


7.2 IGMPv3报文

IGMPv3报文包含两大类:查询报文和报告报文。
相较IGMPv2,其变化为:查询报文中除了普遍组查询和特定组查询,新增了特定源组查询报文(Group-and-Source-Specific Query)。该报文由查询器向共享网段内特定组播组成员发送,用于查询该组成员是否愿意接收特定源发送的数据。特定源组查询通过在报文中携带一个或多个组播源地址来达到这一目的。
报告报文不仅通知路由器主机要加入某组播组,并且可以指定只接收哪些组播源发往该组的数据。IGMPv3增加了针对组播源的过滤模式(INCLUDE/EXCLUDE),将组播组与源列表之间的对应关系简单的表示为(G,INCLUDE,(S1、S2…)),表示只接收来自指定组播源S1、S2……发往组G的数据;或(G,EXCLUDE,(S1、S2…)),表示接收除了组播源S1、S2……之外的组播源发给组G的数据,即S1、S2……在接收范围之外。
当组播组与组播源列表的对应关系发生了变化,在IGMPv3报告报文中存放于组记录(Group Record)字段,发送给查询器。组记录有6种类型,如表1所示。

在IGMPv3中一个成员报告报文可以携带多个组播组信息,而之前的版本一个成员报告只能携带一个组播组。这样在IGMPv3中报文数量大大减少。
IGMPv3没有定义专门的成员离开报文,成员离开通过特定类型的报告报文来传达。例如组225.1.1.1的成员想离开这个组,则会发送(225.1.1.1,TO_IN,(0))的报告报文。

7.3 IGMPv3工作机制

在工作机制上,与IGMPv2相比,IGMPv3增加了主机对组播源的选择能力。

7.4 特定源组加入

IGMPv3的成员报告报文的目的地址为224.0.0.22(表示同一网段所有使能IGMPv3的路由器)。通过在报告报文中携带组记录,主机在加入组播组的同时,能够明确要求接收或不接收特定组播源发出的组播数据。如下图所示,网络中存在S1和S2两个组播源,均向组播组G发送组播数据,Host仅希望接收从组播源S1发往组播组G的信息。
如果主机和路由器之间运行的是IGMPv1或IGMPv2,Host加入组播组G时无法对组播源进行选择,无论其是否需要,都会同时接收到来自组播源S1和S2的数据。如果采用IGMPv3,Host可以选择仅接收S1组播数据。
方法一:Host发送IGMPv3报告(G,IS_IN,(S1)),仅接收源S1向组播组G发送的数据。
方法二:Host发送IGMPv3报告(G,IS_EX,(S2)),不接收指定源S2向组播组G发送的数据,从而仅有来自S1的组播数据才能传递到Host。

7.5特定源组查询

当查询器接收到改变组播组与源列表的对应关系的报告时,如表1所示的后四种报告报文,会发送特定源组查询报文。如果组成员希望接收其中任意一个源的组播数据,将反馈报告报文。路由器根据反馈的组成员报告更新该组对应的源列表。

八、IGMP SSM Mapping

SSM(Source-Specific Multicast)称为特定源组播,要求路由器能了解成员主机加入组播组时所指定的组播源。如果成员主机上运行IGMPv3,可以在IGMPv3报告报文中直接指定组播源地址。但是某些情况下,用户主机只能运行IGMPv1或IGMPv2,为了使其也能够使用SSM服务,路由器上需要提供IGMP SSM Mapping功能。
SSM Mapping的机制是:通过在路由器上静态配置SSM地址的映射规则,将IGMPv1和IGMPv2报告报文中的(,G)信息转化为对应的(S,G)信息,以提供SSM组播服务。缺省情况下,SSM组地址范围为232.0.0.0~232.255.255.255。关于SSM组地址的详细介绍,请参见组播基础。
配置了SSM Mapping规则后,当路由器收到来自成员主机的IGMPv1或IGMPv2报告报文时,首先检查该报文中所携带的组播组地址G,然后根据检查结果的不同分别进行处理。
如果G在ASM(Any-Source Multicast)范围内,则只提供ASM服务。
如果G在SSM组地址范围内:
如果路由器上没有G对应的SSM Mapping规则,则无法提供SSM服务,丢弃该报文。
如果路由器上有G对应的SSM Mapping规则,则依据规则将报告报文中所包含的(,G)信息映射为(S,G)信息,提供SSM服务。

九、IGMP snooping和IGMP snooping proxy 9.1 IGMP snooping的概述

IGMP snooping解决组播报文在二层广播的问题。
运行在链路层,是二层以太网交换机上的组播约束机制,用于管理和控制组播组
通过监听主机发出的IGMP报文,建立组播MAC地址表.

9.2 IGMP Snooping 工作机制

当二层交换机收到主机和路由器之间传递的IGMP报文时,IGMP Snooping分析报文所带的信息
如果主机发出IGMP主机报告报文时,交换机将该主机加入到相应的组播表中
如果主机发出IGMP离开报文时,交换机将删除与该主机对应的组播表项
通过不断监听IGMP报文,交换机在二层建立和维护组播MAC地址表,交换机根据组播MAC地址表转发从路由器下发的组播报文.(在建立MAC地址表关系后,会被抑制在上下联接口和CPU内部接口中.不会向其他接口扩散.)

9.3 IGMP snooping proxy的概述

IGMP snooping proxy减少用户主机所在网段内的IGMP协议报文数量,运行于二层交换机中.

9.4 IGMP Snooping proxy的工作机制

使其能够代理上游三层设备向下游主机发送IGMP查询报文,同时代理下游主机来向上游三层设备发送成员关系报告报文.
在其上游设备看来,它相当于一台主机.在其下游设备看来,它相当于一台查询器.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。