IGMP SNOOPING笔记

IGMP SNOOPING网络

  1. 广泛组查询
    IGMP查询器按期向本地网段内的全部主机与路由器(224.0.0.1)发送IGMP广泛组查询报文,以查询该网段有哪些组播组的成员。
    在收到IGMP广泛组查询报文时,交换机将其经过VLAN内除接收端口之外的其它全部端口转发出去,并对该报文的接收端口作以下处理:
    若是在路由器端口列表中已包含该动态路由器端口,则重置其老化定时器。
    若是在路由器端口列表中还没有包含该动态路由器端口,则将其添加到路由器端口列表中,并启动其老化定时器。



  2. 报告成员关系
    主机会向IGMP查询器发送IGMP成员关系报告报文:
    当组播组的成员主机收到IGMP查询报文后,会回复IGMP成员关系报告报文。
    若是主机要加入某个组播组,它会主动向IGMP查询器发送IGMP成员关系报告报文以声明加入该组播组。
    在收到IGMP成员关系报告报文时,交换机将其经过VLAN内的全部路由器端口转发出去,从该报文中解析出主机要加入的组播组地址,并对该报文的接收端口作以下处理:
    若是不存在该组播组所对应的转发表项,则建立转发表项,将该端口做为动态成员端口添加到出端口列表中,并启动其老化定时器;
    若是已存在该组播组所对应的转发表项,但其出端口列表中不包含该端口,则将该端口做为动态成员端口添加到出端口列表中,并启动其老化定时器;
    若是已存在该组播组所对应的转发表项,且其出端口列表中已包含该动态成员端口,则重置其老化定时器。
    交换机不会将IGMP成员关系报告报文经过非路由器端口转发出去,由于根据主机上的IGMP成员关系报告抑制机制,若是非路由器端口下还有该组播组的成员主机,则这些 主机在收到该报告报文后便抑制了自身的报告,从而使交换机没法获知这些端口下还有该组播组的成员主机。(IGMP SNOOPING默认关闭last report机制)







    ide

  3. 离开组播组
    运行IGMPv1的主机离开组播组时不会发送IGMP离开组报文,所以交换机没法当即获知主机离开的信息。可是,因为主机离开组播组后不会再发送IGMP成员关系报告报文,所以当其对应的动态成员端口的老化定时器超时后,交换机就会将该端口对应的转发表项从转发表中删除。
    运行IGMPv2或IGMPv3的主机离开组播组时,会经过发送IGMP离开组报文,以通知组播路由器本身离开了某个组播组。当交换机从某动态成员端口上收到IGMP离开组报文时,首先判断要离开的组播组所对应的转发表项是否存在,以及该组播组所对应转发表项的出端口列表中是否包含该接收端口:
    若是不存在该组播组对应的转发表项,或者该组播组对应转发表项的出端口列表中不包含该端口,交换机不会向任何端口转发该报文,而将其直接丢弃;
    若是存在该组播组对应的转发表项,且该组播组对应转发表项的出端口列表中包含该端口,交换机会将该报文经过VLAN内的全部路由器端口转发出去。同时,因为并不知道该接收端口下是否还有该组播组的其它成员,因此交换机不会马上把该端口从该组播组所对应转发表项的出端口列表中删除,而是重置其老化定时器。
    当IGMP查询器收到IGMP离开组报文后,从中解析出主机要离开的组播组的地址,并经过接收端口向该组播组发送IGMP特定组查询报文。交换机在收到IGMP特定组查询报文后,将其经过VLAN内的全部路由器端口和该组播组的全部成员端口转发出去。对于IGMP离开组报文的接收端口(假定为动态成员端口),交换机在其老化时间内:
    若是从该端口收到了主机响应该特定组查询的IGMP成员关系报告报文,则表示该端口下还有该组播组的成员,因而重置其老化定时器;
    若是没有从该端口收到主机响应特定组查询的IGMP成员关系报告报文,则表示该端口下已没有该组播组的成员,则在其老化时间超时后,将其从该组播组所对应转发表项的出端口列表中删除。
    IGMP SNOOPING PROXY
    配置IGMP Snooping功能后,交换机对上游IGMP查询器的Query报文和下游主机的Report和Leave报文都是原封不动地转发。当网络中存在大量用户主机时,冗余的IGMP报文给上游设备带来处理压力。配置IGMP Snooping Proxy功能后,交换机能够代替上游三层设备向下游发送IGMP Query报文、也能够代替下游主机向上游三层设备发送IGMP Report和IGMP Leave报文,有效节约上游三层设备和本设备之间的带宽。配置了代理功能的设备只有在组播组开始有成员加入须要创建组播表项或者响应IGMP查询报文时向上游发送Report报文;或者组播组最后成员都已经离开须要删除组播表项时向上游发送Leave报文。
    当Switch上配置IGMP Snooping Proxy时,Switch能够终结上游的IGMP查询报文,而且本身构造查询报文向下游主机发送;终结下游主机的IGMP报告/离开报文,并本身构造统一的报告/离开报文向上游发送。
    当三层设备没有启用IGMP时,例如只配置了静态组播组,不会有查询器发送Query报文,这样即便设备使能了IGMP Snooping功能也没法创建和维护组成员关系。经过IGMP Snooping Proxy功能,可使交换机发送Query报文,相对下游主机而言,就是一台查询器。










igmp proxy和igmp snooping模式的区别在于proxy充当“代理人”的角色,即对下层主机它充当组播路由器的角色,对上层组播路由器它充当主机的角色,对下层用户发送上来的igmp report报文进行分析,而不把该报文透传到上层网络,而是本身以主机的身份向上层组播路由器申请组播节目,一样对于上层组播路由器发送的查询报文也进行拦截,而本身以组播路由器的身份向主机发送查询报文;而snooping则仅仅是侦听,对下层主机和上层组播路由器发送的igmp报文进行侦听,同时透传。固然不管是igmp proxy仍是igmp snooping,设备都根据下层主机发送的igmp report报文创建转发表项,从而实现可控组播。 oop

IGMP Snooping和IGMP Snooping Proxy实现功能相同但原理不一样。IGMP Snooping仅仅是经过侦听IGMP报文来获取相关用户信息,而IGMP Snooping Proxy则拦截和抑制了终端用户的IGMP请求并进行自身相关处理后,才将它转发给上层路由器。
相对于仅实现IGMP Snooping的设备来讲,实现了IGMP Snooping Proxy的二层网络设备对于用户侧承担了Server的角色,按期查询用户信息;对于网络侧又承担了Client的角色,在收到查询时将当前用户信息进行上报。所以相比IGMP Snooping来讲,不只能达到抑制二层网络组播泛滥的目的,并且能有效减小网络中的协议消息,下降网络负荷。但因为其须要维护和计算表项的状态变化同时须要代理路由器的功能,于是也相应增长了设备的实现复杂度和处理开销。
代理

自我思考:
igmp proxy在设备创建组播路由表项指导组播流量转发,设备须要启用组播路由表。,对上游路由器而言是组播接收者,对下游pc来讲是组播查询者,不会透传报文。不只能达到抑制二层网络组播泛滥的目的,并且能有效减小网络中的协议消息,下降网络负荷,可是会增长自身负荷。
igmp snooping proxy是侦听拦截,创建的是二层组播转发表项,区别在于收到组播离开报文,igmp snooping proxy交换机,收到对应的(*,G)离开报文,若是存在对应表项,且该接口也在表项的成员接口,那么向

接口

相关文章
相关标签/搜索