【学习笔记】IGMP snooping原理

为什么要运行snooping?

作用1:
不运行就在本Vlan泛洪(导致有一些不想接收组播流量客户端来说,也会泛洪给它,浪费客户端的带宽资源,也会导致SW开销加大,性能下降)。
运行了就会产生组播转发表项,通过snooping表项,将组播流量发送给接收者

作用2:
由于IP组播地址,会以32:1的方式映射成MAC,对于接收者来说,他要接受239.1.1.1的组播流量,很有可能也会受到239.129.1.1的流量,会收到两份组播流量,因为这两份组播流量的MAC地址一样。接受了之后,交给CPU,只有去掉MAC地址,露出IP地址,他才知道这个组播流量是否是自己要接收的,这样就会浪费PC机额外的开销。

如果运行了IGMP Snooping就不会出现这两种情况。

为什么snooping能够解决32:1的这个问题?

因为下面成员发送的report报文,会携带组地址,就知道他要加入那个组,就只要监听239.1.1.1这个组,不会去监听239.129.1.1的组地址,这个239.129.1.1会重新形成组播转发表项,这样就解决了32:1的问题,也解决了组播流量泛洪的问题。只会根据成员接口转发流量。

那么如何维护该表象?

在这里插入图片描述

①动态:通过监听IGMP报文
②静态:手工配置某个接口为 路由器接口 或者 成员接口 (没有老化时间)

那么它是如何进行监听的呢?

首先:1、针对查询报文,
①比如我们在V1里面会运行PIM来充当查询者,那么他就会监听PIM里面的hello报文(30s周期,105s老化)
②第二个会监听IGMP报文(60s周期,180s老化)

所以当交换机收到PIM的hello报文,或者IGMP报文的时候,该接口会加入到路由器接口,并且向本vlan内泛洪(泛洪的目的,是为了向其他查询者通告,进行选举)。

这个时候收到查询报文会有一下几个情况:

先判断是否有组播转发表项(snooping表项):
①如果没有:就会创建,并且将收到报文的接口加入到路由器端口,并启动定时器(105s或者180s老化)。
②如果有:再看接收接口是否加入路由器接口
2.1 如果没有加入:那么就加入,并启动定时器。
2.2 如果说已经加入:刷新老化定时器。

2、针对报告报文,
当交换机收到report报文,会向所有路由器接口进行转发。

先判断是否有组播转发表项(snooping表项):
①如果没有,就会创建,并且将收到报文的接口加入成员接口,并且启动定时器(130s老化)。
②如果有:再看接收接口是否加入成员接口
2.1 如果没有加入:那么就加入,并启动定时器。
2.2 如果说已经加入:刷新老化定时器。

3、针对离组报文,
先判断是否有组播转发表项(snooping表项):
①如果没有,直接丢弃。
②如果有:再看接收接口是否加入成员接口
2.1 如果没有加入:直接丢弃。
2.2 如果说已经加入:那么就会进行转发,转发给所有路由器接口。

路由器收到离组报文,会发送特定组查询报文(1s,2次),并且查看刚才的接口,是否有回应。
如果没有回应,等待130s,超时老化。
如果有回应,就刷新定时器,130s。

这就是维护snooping表项的一个过程。

也就是说V3和Snooping都取消了抑制机制,V1V2有抑制机制,Snooping为什么会取消抑制机制?

1、成员接口是相互隔离的,成员接口直接无法进行组播流量的通信,PC1发送的report报文,PC2无法接收。

什么情况下需要手工配置?

如下图,假如右边有一台服务器S,下面有一台组成员PC1想要接收组播流量,那么对于服务器来说,会将流量回复给他,然而服务器接口既不属于路由器接口,也不属于成员接口,因为他不会发送IGMP报文,导致服务器回复的组播流量在本vlan内泛洪,那么这样我就可以通过手工配置的方式,将服务器接口加入到路由器接口当中,那么这样组播流量只会发送欸成员接口,不会发送给其他接口。
在这里插入图片描述

假如交换机运行的IGMP Snooping,但是路由器接口并没有运行IGMP,会有什么问题?

SW会将所有的组播流量上交CPU处理,因为SW运行了IGMP Snooping,会形成snooping表项,然而要形成Snooping表项,必须依靠IGMP报文,接口没有启用就无法监听IGMP报文。
这个时候只能将组播流量交给CPU进行处理,CPU收到组播流量后,通过Type字段来识别是否是IGMP报文,识别IGMP报文之后,会形成Snooping表项,这样就会导致CPU负担加大。

总结:这是博主针对IGMP Snooping的学习心得,在此分享。。谢谢~~

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值