技术背景
二层中组播数据转发的数据
-
组播数据在二层被泛洪,造成:
-
网络资源浪费
-
存在安全隐患
-
![](https://img-blog.csdnimg.cn/20200728183630388.png)
IGMP Snooping概述
-
解决组播报文在二层泛洪的问题
-
运行在 数据链路层,是二层交换机上的组播约束机制,用于管理和控制组播组
-
通过 监听IGMP报文, 建立组播MAC地址表
![](https://img-blog.csdnimg.cn/20200728183631626.png)
下图中:
路由端口表示上游接口(接收组播源数据)
成员端口表示下游接口(对组播数据进行分发)
![](https://img-blog.csdnimg.cn/20200728183631677.png)
端口角色
|
作用
|
如何生成
|
路由端口
|
接收组播数据
上游端口
|
|
成员接口
|
发送组播数据
下游端口
|
|
IGMP Snooping工作原理
-
启用IGMP Snooping机制后,查询响应仅向路由器接口转发
-
RTA作为查询器,周期性的发送普遍组查询,该报文被广播到交换机所有端口,包括与交换机内部与CPU直连的端口0,交换机CPU收到查询报文后,判断1口为路由口。
-
主机B希望加入组播组224.1.2.3,因此以组播方式发送一个IGMP的报告报文,报告中具有目的MAC地址为0x0100.5e01.0203。最初交换机中并没有该MAC地址对应的表项,所以就将该信息广播到交换机的所有端口,包括与交换机内部CPU直连的端口0,;当CPU收到主机B发送的IGMP报告时,CPU利用IGMP报告中的信息建立了一个转发表项,该表项中包括主机B的端口号,连接路由器的接口号和连接交换机内部CPU的接口号
-
由此得,交换机形成的转发表项:MAC地址为0100.5e01.0203,对应的组播端口与为0、1、3,且不向其他端口发送
- 后续,如主机C申请加入组播组224.1.2.3的话,将发送一个IGMP报文,CPU收到该报文,将在转发表项MAC地址为0100.5e01.0203增加一个端口4
- 如主机C申请退出该组,将发送一个退出组的报文,RTA会发送两个确认报文,此时只有3端口进行回应,那么交换机转发表项的MAC地址为0100.5e01.003的端口会将4端口删除,仅留下0/1/3端口。
配置
命令 | 备注 |
igmp-snooping enable | 开启IGMP-Snooping,系统模式配置 |
vlan × igmp-snooping enable | 开启VLAN下的IGMP-Snooping |
display igmp-snooping port-info | 验证IGMP-Snooping |
display igmp-snooping router-port vlan × | 查看端口下IGMP-snooping状态 |