叙述:IGMP SNOOPING是什么-!
1IGMPSNOOPING简介IGMPSNOOPING(InternetGroupManagementProtocolSnooping,组播侦听者发现协议窥探)是运行在二层设备上的组播协议,用于管理和控制组播组。该协议通过侦听层组播设备和主机间的协议报文来管理和控制IP组播流在数据链路层的转发,现二层组播功能。
通常情况下,组播报文转发必须经过二层交换设备,尤其是在局域环境里。由于组播报文的目的地址为组播组地址,二层设备法学习到这类MAC表项,因此组播报文就会在VLAN内进行广播,与该组播报文处在同一广播域内的组播成员和非组播成员都能收到组播报文。这样不仅浪费了络带宽,还影响了络信息安全。
通过开启IGMPSNOOPING功能,二层交换机可以侦听用户主机和上游层组播设备间的IGMP协议报文,从而建立二层组播表项,控制组播数据报文只往特定用户主机转发,防止组播数据在二层络中广播。
2IGMPSNOOPING工作原理
IGMPSNOOPING是二层组播的基本功能,可以现组播数据在数据链路层的控制和转发。当用户终端和上游层设备之间传递的IGMP协议报文通过二层组播设备时,IGMPSNOOPING分析报文携带的信息,根据这些信息建立和维护二层组播转发表,从而指导组播数据在数据链路层按需转发。
如图2-1所示,当组播数据从层组播设备向下游转发,处于接入边缘的二层组播设备负责将组播数据转发给用户主机,使用户接收到点播的节目。当二层组播设备没有运行IGMPSNOOPING时,组播数据在二层络中被广播,接收者A、接收者B和非接收者C都会收到组播数据;如图2-2所示,当二层组播设备运行了IGMPSNOOPING后,组播数据不会在二层广播,而是会被二层组播设备发送给指定的接收者A和接收者B,而非接收者C将不再收到组播数据,从而现组播数据的按需转发,避免络带宽浪费。
图2-1未开启IGMPSNOOPING的组播传输过程
图2-2开启IGMPSNOOPING的组播传输过程
3IGMPSNOOPING现机制
二层组播设备运行了IGMPSNOOPING后,对收到不同的IGMP协议报文会进行不同的处理,并在此过程中建立起二层组播转发表项。IGMPSNOOPING功能的现主要涉及以下几种报文的数据处理:
●MembershipReport(成员关系报告)报文
当用户主机首次加入到某个组播组时,会主动向该组播组发送MembershipReport报文,请求加入该组播组。默认情况下,IGMPSNOOPING能够处理IGMPv1和IGMPv2报文,对于IGMPv3版本的Report报文,只处理组信息部分,不处理携带的源信息。若配置IGMPSNOOPINGv3版本,则可以处理IGMPv1、IGMPv2以及IGMPv3报文的全部信息。运行IGMPSNOOPING的设备在收到MembershipReport报文时,会在其所在的组内执行如下动作:
○将MembershipReport报文向所有路由连接口转发。若设备开启了MembershipReport报文抑制功能,则在一个IGMP查询周期内,只会将每组收到的首个MembershipReport报文转发出去。
○如果收到MembershipReport报文的端口为动态成员口,则重置该端口的老化定时器。如果定时器超时,则该端口将不再作为指定组的动态成员口。
○如果收到MembershipReport报文的端口不是成员口,则将其作为动态成员口,并启动该端口的老化定时器。如果定时器超时,则该端口将不再作为指定组的动态成员口。
●LeaveGroup(离开组)报文
当用户主机退出组播组时,会发送LeaveGroup报文通知子内的全部组播组成员。发送的LeaveGroup报文包含有退出组的地址。与MembershipReport报文不同的是,LeaveGroup报文是发向子中的所有组播路由器地址224002,并包含要退出的组播组的地址。运作IGMPSNOOPING的设备在收到LeaveGroup报文时,会在其所在组内执行如下动作:
○将LeaveGroup报文从所有路由连接口转发出去。
○如果收到LeaveGroup报文的端口是动态成员口,且配置了速离开功能,该端口将会立即从指定组的IGMPSNOOPING转发表项中删除,该端口将不再作为指定组的动态成员口。
○如果收到LeaveGroup报文的端口是动态成员口,但未配置速离开功能,则该端口的状态将保存不变,老化时间超时后,端口会从指定组的IGMPSNOOPING转发表项中删除,此时该端口不再作为指定组的动态成员口。
●Query(查询)报文
IGMPSNOOPING中的Query报文有两种:
○GeneralQuery(通用组查询)报文
○Group-SpecificQuery(指定组查询)报文。
当IGMP查询者收到GroupLeave报文时,会向该组播组发送Group-SpecificQuery报文,查询该组播组内是否还有其他组员存在。除此之外,IGMP查询者会周期性地向与其连接的所有子发送GeneralQuery报文,进行轮询来发现是否有组员存在,默认3次查询时间,没收到特定子的MembershipReport报文就宣布子中没有组员,不再向该子发送组播数据。运行IGMPSNOOPING设备在收到Query报文时,会在该组内执行如下动作:
○将Query报文向所有端口(除该报文的接收端口)转发出去。
○如果收到Query报文的端口是动态路由连接口,则重置其老化定时器。如果定时器超时,该端口不再作为动态路由连接口。
○如果收到Query报文的端口不是路由连接口,则将其作为动态路由连接口,并启动其老化定时器。如果定时器超时,则该端口不再作为动态路由连接口。
○如果配置关闭动态学习路由连接口功能,则IGMPSNOOPING不会学习动态路由连接口。
4IGMPSNOOPING的应用
IGMPSNOOPING的工作原理和工作机制决定了它能够现信息的定向发送,避免络带宽资源浪费和非法报文攻击问题的产生。因此,IGMPSNOOPING技术适用于组播数据流量需求较大的络中,如大型的流媒体服务络、区域型线上会议等,该类场景对数据的定向发送有严格的要求,并且因为接入络的设备较多,带宽的合理利用也是重要考量指标。需要注意的是,当络中接入的设备较少,或者是该络中组播数据流量经过时,IGMPSNOOPING功能需要关闭,减少不必要的络监听行为对CPU产生负荷,影响性能。
此外,IGMPSNOOPING技术能有效地杜绝非法的组播源,提高络的安全性,多个设备厂商的主流设备都已集成了该技术,包括锐捷络新推出的高性能、强安全、集成多业务的新一代以太交换机RG-S5750-H系列交换机。RG-S5750-H系列交换机集成了丰富的组播协议,比如IGMPSNOOPING、IGMP(InternetGroupManagementProtocol,互联组管理协议)、MLD(MulticastListenerDiscovery,组播侦听发现协议)、MSDP(MulticastSourceDiscoveryProtocol,组播源发现协议)、PIM(ProtocolIndependentMulticasting,协议关组播)等协议族,为IPv4络、IPv6络、IPv4和IPv6共存的络提供了组播服务支持的同时也可以防止非法报文以广播的形式泛洪到整个组播络,一定程度上起到有效防范和控制病传播和黑客攻击,保障络的稳定性。
图4-1RG-S5750C-28GT4XS-H正面俯视图
5结论
综上所述,IGMPSNOOPING配置在二层组播设备上,通过侦听层组播设备和用户主机间的协议报文来控制和转发处于数据链路层的组播数据流量,现组播数据流量按需转发,从而有效避免在VLAN内广播泛洪产生的带宽浪费和络信息安全问题,保障设备和络的稳定性。
为了快速增长,国产数据库不惜改变战略,重新布局产品,从而获得意想不到的效果。OceanBase 完全自主研发,已连续 10 余年稳定支撑双 11 ,创新推出“三地五中心”城市级容灾新标准,是全球唯一在 TPC-C 和 TPC-H 测试上都刷新了世界纪录的原生分布式数据库。https://www.oceanbase.com/topic/techwiki-guochanshujukuhttps://obcommunityprod.oss-cn-shanghai.aliyuncs.com/prod/blog/2024-12/4c65a288-9401-4eb3-bab3-04b3530c7555.png
页:
[1]