1 IGMP SNOOPING简介
IGMP SNOOPING(Internet Group Management Protocol Snooping,组播侦听者发现协议窥探)是运行在二层设备上的组播协议,用于管理和控制组播组。该协议通过侦听三层组播设备和主机间的协议报文来管理和控制IP组播流在数据链路层的转发,实现二层组播功能。
通常情况下,组播报文转发必须经过二层交换设备,尤其是在局域网环境里。由于组播报文的目的地址为组播组地址,二层设备无法学习到这类MAC表项,因此组播报文就会在VLAN内进行广播,与该组播报文处在同一广播域内的组播成员和非组播成员都能收到组播报文。这样不仅浪费了网络带宽,还影响了网络信息安全。
通过开启IGMP SNOOPING功能,二层交换机可以侦听用户主机和上游三层组播设备间的IGMP协议报文,从而建立二层组播表项,控制组播数据报文只往特定用户主机转发,防止组播数据在二层网络中广播。
2 IGMP SNOOPING工作原理
IGMP SNOOPING是二层组播的基本功能,可以实现组播数据在数据链路层的控制和转发。当用户终端和上游三层设备之间传递的IGMP协议报文通过二层组播设备时,IGMP SNOOPING分析报文携带的信息,根据这些信息建立和维护二层组播转发表,从而指导组播数据在数据链路层按需转发。
如图2-1所示,当组播数据从三层组播设备向下游转发,处于接入边缘的二层组播设备负责将组播数据转发给用户主机,使用户接收到点播的节目。当二层组播设备没有运行IGMP SNOOPING时,组播数据在二层网络中被广播,接收者A、接收者B和非接收者C都会收到组播数据;如图2-2所示,当二层组播设备运行了IGMP SNOOPING后,组播数据不会在二层广播,而是会被二层组播设备发送给指定的接收者A和接收者B,而非接收者C将不再收到组播数据,从而实现组播数据的按需转发,避免网络带宽浪费。
图2-1 未开启IGMP SNOOPING的组播传输过程
图2-2 开启IGMP SNOOPING的组播传输过程
3 IGMP SNOOPING实现机制
二层组播设备运行了IGMP SNOOPING后,对收到不同的IGMP协议报文会进行不同的处理,并在此过程中建立起二层组播转发表项。IGMP SNOOPING功能的实现主要涉及以下几种报文的数据处理:
●Membership Report(成员关系报告)报文
当用户主机首次加入到某个组播组时,会主动向该组播组发送Membership Report报文,请求加入该组播组。默认情况下,IGMP SNOOPING能够处理IGMPv1和IGMPv2报文,对于IGMPv3版本的Report报文,只处理组信息部分,不处理携带的源信息。若配置IGMP SNOOPING v3版本,则可以处理IGMPv1、IGMPv2以及IGMPv3报文的全部信息。运行IGMP SNOOPING的设备在收到Membership Report报文时,会在其所在的组网内执行如下动作:
○将Membership Report报文向所有路由连接口转发。若设备开启了Membership Report报文抑制功能,则在一个IGMP查询周期内,只会将每组收到的第一个Membership Report报文转发出去。
○如果收到Membership Report报文的端口为动态成员口,则重置该端口的老化定时器。如果定时器超时,则该端口将不再作为指定组的动态成员口。
○如果收到Membership Report报文的端口不是成员口,则将其作为动态成员口,并启动该端口的老化定时器。如果定时器超时,则该端口将不再作为指定组的动态成员口。
●Leave Group(离开组)报文
当用户主机退出组播组时,会发送Leave Group报文通知子网内的全部组播组成员。发送的Leave Group报文包含有退出组的地址。与Membership Report报文不同的是,Leave Group报文是发向子网中的所有组播路由器地址224.0.0.2,并包含要退出的组播组的地址。运作IGMP SNOOPING的设备在收到Leave Group报文时,会在其所在组网内执行如下动作:
○将Leave Group报文从所有路由连接口转发出去。
○如果收到Leave Group报文的端口是动态成员口,且配置了快速离开功能,该端口将会立即从指定组的IGMP SNOOPING转发表项中删除,该端口将不再作为指定组的动态成员口。
○如果收到Leave Group报文的端口是动态成员口,但未配置快速离开功能,则该端口的状态将保存不变,老化时间超时后,端口会从指定组的IGMP SNOOPING转发表项中删除,此时该端口不再作为指定组的动态成员口。
●Query(查询)报文
IGMP SNOOPING中的Query报文有两种:
○General Query(通用组查询)报文
○Group-Specific Query(指定组查询)报文。
当IGMP查询者收到Group Leave报文时,会向该组播组发送Group-Specific Query报文,查询该组播组内是否还有其他组员存在。除此之外,IGMP查询者会周期性地向与其连接的所有子网发送General Query报文,进行轮询来发现是否有组员存在,默认3次查询时间,没收到特定子网的Membership Report报文就宣布子网中没有组员,不再向该子网发送组播数据。运行IGMP SNOOPING设备在收到Query报文时,会在该组网内执行如下动作:
○将Query报文向所有端口(除该报文的接收端口)转发出去。
○如果收到Query报文的端口是动态路由连接口,则重置其老化定时器。如果定时器超时,该端口不再作为动态路由连接口。
○如果收到Query报文的端口不是路由连接口,则将其作为动态路由连接口,并启动其老化定时器。如果定时器超时,则该端口不再作为动态路由连接口。
○如果配置关闭动态学习路由连接口功能,则IGMP SNOOPING不会学习动态路由连接口。
4 IGMP SNOOPING的应用
IGMP SNOOPING的工作原理和工作机制决定了它能够实现信息的定向发送,避免网络带宽资源浪费和非法报文攻击问题的产生。因此,IGMP SNOOPING技术适用于组播数据流量需求较大的网络中,如大型的流媒体服务网络、区域型线上会议等,该类场景对数据的定向发送有严格的要求,并且因为接入网络的设备较多,带宽的合理利用也是重要考量指标。需要注意的是,当网络中接入的设备较少,或者是该网络中无组播数据流量经过时,IGMP SNOOPING功能需要关闭,减少不必要的网络监听行为对CPU产生负荷,影响性能。
此外,IGMP SNOOPING技术能有效地杜绝非法的组播源,提高网络的安全性,多个设备厂商的主流设备都已集成了该技术,包括锐捷网络新推出的高性能、强安全、集成多业务的新一代以太网交换机——RG-S5750-H系列交换机。RG-S5750-H系列交换机集成了丰富的组播协议,比如IGMP SNOOPING、IGMP(Internet Group Management Protocol,互联网组管理协议)、MLD(Multicast Listener Discovery,组播侦听发现协议)、MSDP(Multicast Source Discovery Protocol,组播源发现协议)、PIM(Protocol Independent Multicasting,协议无关组播)等协议族,为IPv4网络、IPv6网络、IPv4和IPv6共存的网络提供了组播服务支持的同时也可以防止非法报文以广播的形式泛洪到整个组播网络,一定程度上起到有效防范和控制病毒传播和黑客攻击,保障网络的稳定性。
图4-1 RG-S5750C-28GT4XS-H正面俯视图
5 结论
综上所述,IGMP SNOOPING配置在二层组播设备上,通过侦听三层组播设备和用户主机间的协议报文来控制和转发处于数据链路层的组播数据流量,实现组播数据流量按需转发,从而有效避免在VLAN内广播泛洪产生的带宽浪费和网络信息安全问题,保障设备和网络的稳定性。
更多技术博文
-
全调度以太网(GSE),中国智算网络新标准
GSE网络作为一种全调度以太网技术,专为大规模AI训练集群设计,通过按需调度实现无损性能,提供灵活快速的部署方案,构建开放生态,显著提升智算效率和运维体验。
-
#知识百科
-
-
以太和PON,谁能更好地支撑办公室横向流量业务?
了解以太彩光与PON的区别,解析办公资源共享难题,锐捷极简以太彩光方案助您高效适配办公网,共享打印无压力!
-
#交换机
-
-
场景无线 驱动高效办公!锐捷新一代企业无线办公解决方案全新发布!
面对企业数智化转型中的无线办公网络挑战,锐捷新一代企业无线办公解决方案通过全场景AP、智能调度与云端智能运维等技术,实现网络性能、用户体验与运维效率的全面提升。
-
#无线网
-
#办公网
-
-
以太彩光和PON,运维管理谁技高一筹?
锐捷网络提供极简以太全光方案,简化配置流程,降低学习成本,让全光网络升级更平滑。
-
#交换机
-