IGMP Snoop技术白皮书
- 格式:doc
- 大小:3.37 MB
- 文档页数:6
igmp snooping实现原理一、引言Internet Group Management Protocol (IGMP)是一种用于在局域网(LAN)中报告主机(Host)是否仍然参与某个多播组的协议。
IGMP Snooping是一种在路由器或交换机上实现IGMP的机制,它有助于减少网络中的多播流量,提高网络性能和效率。
本篇文章将详细介绍IGMP Snooping的实现原理。
IGMP Snooping是一种在路由器或交换机上实现的IGMP机制,它通过在局域网中监视主机发送的IGMP报告,以确定哪些多播组在哪些子网上有效。
它使用一个本地组表来跟踪网络中哪些主机参与了哪些多播组,并与其他路由器交换这些信息,以避免重复发送多播流量。
1. IGMP主机发送报告给路由器或交换机,以表示它们是否仍然参与某个多播组。
2. IGMP Snooping路由器或交换机使用本地组表来跟踪网络中的主机和多播组关系。
3. 路由器或交换机监视局域网中的IGMP报告,并与其他路由器交换信息。
4. 当路由器发现某个多播组在某个子网上不再有效时,它会停止向该子网发送该多播流量。
5. 路由器使用一个过滤机制来仅向仍在参与该多播组的子网发送多播流量。
IGMP Snooping通过以下优点提高了网络性能和效率:1. 减少网络中的多播流量,从而降低了网络拥塞和延迟。
2. 通过减少路由器和交换机上的多播流量处理负载,提高了性能和效率。
3. 增强了网络的安全性,减少了网络攻击的风险。
五、总结IGMP Snooping是一种在路由器或交换机上实现的IGMP机制,它通过监视局域网中的IGMP报告,使用本地组表来跟踪网络中的主机和多播组关系,并与其他路由器交换信息,以避免重复发送多播流量。
IGMP Snooping通过减少网络中的多播流量、提高性能和效率、增强安全性等优点,已成为现代局域网中广泛使用的技术之一。
IGMP Snooping是Internet Group Management Protocol Snooping(因特网组管理窥探)的简称。
它是运行在二层设备上的组播约束机制,用于管理和控制IP组播组,属于二层组播功能。
运行IGMP Snooping的设备通过对收到的IGMP报文进行分析,为端口和组播地址建立起映射关系,并根据这样的映射关系转发组播数据。
如图1所示,当无线设备没有运行IGMP Snooping时,组播数据报文在AC上VLAN内被广播,在AP上往所有的无线口广播;当无线AC和AP都运行了IGMP Snooping后,已知组播组的组播数据报文不会被广播,而是会精确转发给特定的接收者。
和AP上运行IGMP Snooping前后的对比15.1.2理解IGMP Snooping的两类端口我们先以有线设备来说明IGMP Snooping的两类端口。
如图2所示,设备连接组播路由器,在设备上运行了IGMP Snooping,存在三个用户A、B、C,接收者主机为A、C(即组播组成员)。
图 2.IGMP Snooping的两类端口路由连接口(Multicast Router Port):设备上连接组播路由器(三层组播设备),如Switch A的Eth0/1端口。
在运行了IGMP Snooping的设备上,收到所有源地址不为0.0.0.0的IGMP普通查询报文或PIM Hello报文的端口,都将视为动态路由连接口。
本设备上的所有路由连接口(包括动态和静态端口)都记录在路由连接口列表中。
路由连接口缺省情况下是对应VLAN内组播数据的接收者,也会被添加到IGMP Snooping转发表中。
成员端口(Member Port):IP组播组成员端口的简称,又称侦听者端口(ListenerPort),表示设备上连接IP组播组成员侧的端口,如Switch A的Eth0/2、Eth0/3和Eth0/4端口。
设备将本设备上的所有成员端口(包括动态和静态端口)都记录在IGMP Snooping转发表中。
配置IGMP Snooping本章节描述了Internet Group Management Protocol Snooping(简称IGMP snooping)的相关内容。
S4909的IGMP Snooping可以分IVGL模式、SVGL模式以及DISABLE模式。
我们将分成以下几个章节来说明IGMP Snooping。
概述配置IGMP Snooping查看IGMP Snooping信息概述我们将从以下几个方面描述Igmp snooping理解IGMP理解IGMP Snooping理解路由连接口理解IGMP Snooping的各种工作模式典型应用理解IGMP什么是组播及组播的作用IP IP在Internet上,诸如视频会议和视频点播等单点发送多点接收的多媒体业务正在成为信息传送的重要组成部分。
点对点的单播传输方式不能适应这一类业务传输特性,因为服务器必须为每一个接收者提供一个相同内容的报文拷贝,同时网络上也重复地传输相同内容的报文,占用了大量资源IP,如下图所示。
广播同样不能满足该要求,虽然广播允许一个主机把一个IP报文发送给同一个IP IP网络的所有主机,但是由于不是所有的主机都需要这些报文,因而浪费了网络资源。
在这种情况下组播(multicast)应运而生,它的出现解决了一个主机向特定的多个接收者发送消息的方法。
组播是指一个报文向一个主机组的传送,这个包含零个或多个主机的主机组由一个单独的IP IP“”IP 地址标识。
主机组地址也称为组播地址,或者类地址,即从“”D224.0.0.0 ~239.255.255.255。
224.0.0.0~224.0.0.255属于保留地址,其中:224.0.0.1-网段中所有支持组播的主机-网段中所有支持组播的路由器224.0.0.2第层的组播地址(组播地址)是从组播地址映射来的。
把组播的后位同-00-5e-00-00-2MAC IP IP230100MAC IP224.255.1.1e0进行或运算得到的结果便是组播地址。
第24卷第1期北京服装学院学报V0l24No12004年3月Jou皿aIof蹦ingInstitute0fchhillgTechn0109yMar.2004IGMPsnooping技术原理及实现罗霄1,韩润萍1,郝建武2(1北京服装学院工业设计与信息工程系,北京100029;2港湾网络有限公司.北京100089)摘薹:随着网络技术的发展,目前常用的网络传输模式已不能满足实时信息交互的需求.为丁解奂网络瓶颈的问题,本文提出了将IGMPsn∞ping技术应用于网络中,阐明了IGMPsn∞ping的原理,井给出了具体的实施方案、主要数据结构以及IGMP报文处理方法.该实旌方案可靠性高,最优化程度好.随着用户需求的不断增加。
IGMP虮00ping技术将会应用于更多的领域.关■调:IGMPsnooping;网络传输;组播;实时交互中田分类号:TP393.1文献标识码:A文章绾号:1001—0564(2004)01—003504组播技术可以形象地描述为:假设一个企业分布于各地的子公司(两个以上)之间需要通过Internet进行实时的交换信息(数据,声音,图像),他们的计算机可能不属于同一物理网络,甚至不属于同一自治系统,这种通信的特点是“多点”式的.子公司发出的数据希望其他子公司都能收到,而总部发出的指示全体子公司都应收到这种多点通信方式为组内广播,即组播技术.本文将结合以太网交换机来重点介绍IGMPsn00ping技术的原理及其在网络中的实现.1组播协议目前常用的组播协议主要包括组管理协议(IGMP)、组播路由协议即密集模式协议如DvMRP,PIM.DM等、稀疏模式协议如PIM—sM、CBT和链路状态协议(MOSPF).其中IGMP是IP协议组中的一部分,用来支持和管理主机与组播路由器之间的IP组播.IGMP使组播路由器能够跟踪与之物理相连的网络上每个组的成员.它在主机和直接邻接的组播路由器间运行,这个协议的机制允许主机通知本地路由器,并接收发往某个特定组播组的信息.因此,组播允许进行资源发现,使网络负载减到最小,在网上实现数据的有效传输[1].而IGMPsnoopitlg是用来监听主机与路由器之间的IGMP报文的,它完成的主要功能是接收处理IGMP报文、向主机发送成员查询报文、向多播路由器发送代理成员报告报文、管理和创建删除多播组、实现多播数据在交换机二层vLAN内的广播以及未知多播数据的过滤f“.组网结构见图1.运行IGMP3n00ping的交换机在收到成员关系报告时,首先检查此多播组是否已经存在,如果不存在则创建多播组.同时因为该成员用户是此多播组的第一个成员,所以要向多播路由器发送成员关系报告报文,然后把此端口加入到此多播组的转发列表,这样此端口就可以接收到多播路由器转发的组MAc地址为该组的多播数据报文.同理,运行IGMPsnoopi豫的交换收稿日期r2003一儿~13作者筒介:罗t(1977一)。
igmp snooping的工作过程IGMP Snooping的工作过程IGMP(Internet Group Management Protocol)是一种用于管理和控制IP组播(Multicast)的协议。
而IGMP Snooping是一种基于交换机的技术,用于提高组播传输的效率和安全性。
下面将介绍IGMP Snooping的工作过程。
一、IGMP Snooping的基本原理IGMP Snooping通过监听网络中的IGMP报文,了解主机加入和离开组播组的信息,并根据这些信息来动态地维护一个组播组的成员表。
交换机根据组播组的成员表来决定将组播数据转发给哪些端口,从而实现组播数据的有效传输。
二、IGMP Snooping的工作步骤1. 初始化:交换机启动时,会开启IGMP Snooping功能,并初始化组播组的成员表为空。
2. 监听IGMP报文:交换机会监听网络中的IGMP报文,包括IGMP Query、IGMP Report和IGMP Leave报文。
IGMP Query 报文用于查询网络中的主机是否仍然对组播组感兴趣;IGMP Report报文用于主机加入或离开组播组;IGMP Leave报文用于主机主动离开组播组。
3. 维护组播组的成员表:a. 当交换机收到IGMP Report报文时,会根据报文中的信息更新相应组播组的成员表。
如果组播组在成员表中不存在,则添加该组播组及相关端口信息;如果组播组已存在,则更新该组播组的端口信息。
b. 当交换机收到IGMP Leave报文时,会根据报文中的信息从相应组播组的成员表中删除相应的端口。
4. 转发组播数据:a. 当交换机收到组播数据时,会根据组播数据的目的IP地址查询组播组的成员表,确定需要转发组播数据的端口。
b. 交换机将组播数据转发给成员表中相应的端口,只有对组播组感兴趣的主机才会接收到组播数据。
c. 如果某个组播组的成员表为空,交换机将不会转发该组播组的数据,从而节省网络带宽和处理资源。
IGMP Snooping 原理及应用目录第1章IGMP (1)1.1多播组地址 (1)1.2IP多播映射到以太网多播 (2)1.3IGMP协议 (2)1.3.1 IGMPv1 (3)1.3.1.1 IGMPv1查询响应过程 (4)1.3.1.2 IGMPv1加入过程 (5)1.3.1.3 IGMPv1离开过程 (5)1.3.2 IGMPv2 (6)1.3.2.1 IGMPv2查询响应过程 (7)1.3.2.2 IGMPv2离开过程 (7)1.3.3.3 查询选择过程 (8)1.3.3.4 小型拓扑图和包分析 (8)1.3.4 IGMPv3 (9)1.3.4.1 成员关系查询报文 (10)1.3.4.2 成员关系报告报文 (10)1.4多播转发和路由选择信息 (12)第2章IGMP SNOOPING (13)2.1IGMP S NOOPING协议 (13)2.2路由端口加入 (13)2.3组成员端口加入 (14)2.4组成员端口离开 (14)2.5IGMP S NOOPING模拟实验 (14)2.5.1 TL-SG3109 (15)2.5.2 DES-1228 (17)2.5.3 2款交换机比较 (19)第3章SNOOPING在视频多播的应用 (21)3.1流媒体基础知识 (21)3.1.1 流媒体概念 (21)3.1.2 点播与广播 (21)3.1.3 单播与多播 (22)3.2播视频服务器的搭建 (22)3.2.1 Windows Media Services服务器的安装 (22)3.2.2 建立多播组视频 (24)3.3S NOOPING视频多播应用实验 (28)3.3.1 同一网段视频点播和广播 (28)3.3.2 不同网段视频点播和广播 (30)第4章IGMP SNOOPING测试 (32)4.1静态分组测试 (32)4.2S NOOPING分组测试 (32)4.3S NOOPING时间参数测试 (33)参考文献 (35)附录IGMP SNOOPING功能测试 (36)第1章IGMP随着宽带多媒体网络的不断发展,各种宽带网络应用层出不穷。
由于组播MAC 地址永远不会作为源MAC 地址出现在数据帧中,交换机难以获知组播成员所在端口。
因此,默认下交换机会将收到的组播帧泛洪至所有端口。
为解决上述问题,可以使用IGMP Snooping 。
通过IGMP Snooping ,交换机可以监听(甚至控制)穿越交换机的IGMP 消息,并据此构造CAM 表中相关组播组与对应成员接口的条目。
IGMP Snooping 加组工作过程如下————Tips :由于要识别3层协议,因此支持IGMP Snooping 的交换机必然具有三层感知功能:)☺交换机启用IGMP Snooping 后,CAM 表中会创建一个条目,匹配3层IGMP 消息,相关端口为CPU ;1.Tips :主机为快速加组而主动发送的IGMP Report 消息也被称为IGMP Join 消息;☺PC1想要加组224.1.2.3,主动发送一条IGMP Report 消息,目标地址为224.1.2.3;2.交换机截获该IGMP Report 消息,创建CAM 表条目,MAC 地址为224.1.2.3对应的组播MAC (0100.5E01.0203),3层匹配“非IGMP ”消息,相关接口为收到该IGMP Report 消息的成员端口(接口1),以及连接路由器的接口(接口5);3.Tips :如果子网中有224.1.2.3的组播源,也只会将流量转发至成员端口和路由器接口☺当交换机收到目标组地址为224.1.2.3的组播流量时(目标MAC 必然为0100.5E01.0203),由于交换机已拥有相应的CAM 表项,只会将该组播流转发至接口1,而不需要泛洪;4.CPUSwitchingEnginePC1PC2PC3PC4CAM1 2 3 4④224.1.2.3组播数据流5IGMP Snooping2014年6月9日14:12IGMP Snooping 相关端口————CAM 表中,成员端口的老化时间为Query I nterval(默认60s )x Robust-C ount(默认2)+ Max Response Time (默认10s );需要依靠周期性的Query/Report 来刷新其老化时间。
igmp+snooping实现原理一、概述IGMP(Internet Group Management Protocol)是一种用于在局域网中报告主机组成员关系的协议。
IGMP Snooping是一种用于路由器和交换机之间的 IGMP 实现技术,用于减少 IGMP 消息在网络中的传输,从而提高网络性能和稳定性。
1. IGMP Snooping的工作机制基于交换机对 IGMP 报文的检测和处理。
当一个主机加入或离开一个组时,主机会向交换机发送 IGMP 报告报文,告知主机所在的组信息。
2. 交换机接收到 IGMP 报告报文后,会将其与本地已有的组信息进行比较。
如果发现组信息发生变化,交换机就会向路由器发送一个通告报文,通知路由器该组信息发生了变化。
3. 路由器接收到交换机发送的通告报文后,会更新本地缓存的组信息,并重新计算每个组的大小和成员数量。
通过这种方式,路由器可以快速准确地获取网络中各个组的动态变化情况。
4. 在 IGMP Snooping 中,交换机和路由器之间通过交换 IGMP 消息来实现组信息的传递和更新。
这种机制可以减少 IGMP 消息在网络中的传输,从而降低网络负载和提高网络性能。
1. 提高网络性能:通过减少 IGMP 消息在网络中的传输,IGMP Snooping 可以降低网络负载,提高网络性能和稳定性。
2. 减少网络拥塞:IGMP Snooping 可以有效地避免因大量 IGMP 消息传输而导致的网络拥塞问题。
3. 降低网络延迟:由于 IGMP Snooping 可以减少 IGMP 消息在网络中的传输,因此可以降低网络延迟,提高网络响应速度。
4. 提高网络安全性:通过限制 IGMP 消息在网络中的传输,IGMP Snooping 可以提高网络安全性,减少恶意攻击的可能性。
四、总结IGMP Snooping是一种用于路由器和交换机之间的 IGMP 实现技术,通过检测和处理 IGMP 报文,实现组信息的传递和更新,从而减少 IGMP 消息在网络中的传输,提高网络性能和稳定性。
交换机技术白皮书一.不同层次上的交换机首先我们对一个很普通的网络结构进行讲解,以大概描述在不同层次上的交换机应该具备的功能;1.接入型2层交换机接入型2层交换机直接接入用户的PC机,为了避免因为办公室内用户的增加而再添加2层交换机,办公室内的2层交换机最好具备16或者24个10/100M以太网接口,然后使用百兆或者千兆以太网接口与汇聚层的3层交换机进行连接;从安全上考虑,交换机、路由器并不会产生恶意的数据,为了最大限度的保护用户PC的安全,需要网络内的2层具备多种功能。
比如,如果2层交换机不支持广播速率限制功能,那么办公室内的某台PC因为出故障或者因为故意的破坏而向交换机发出大量的广播数据,那么这些数据就将会被其它PC接收到,从而会浪费其它PC大量的cpu资源而导致PC的速度严重变慢,并且会浪费2层交换机与3层交换机之间的带宽,导致其它PC机上网速度严重下降;再比如,现在网络病毒泛滥,为了保护其它PC不受感染,如果在2层交换机上使能各种ACL策略,也可以使其它PC受到保护、同时也节约了带宽;为了管理上的方便,2层交换机也应该支持可被远程管理;在有些场合,需要对接入的用户进行认证,如果接入交换机不支持认证功能,那么就需要将认证功能交给汇聚层的交换机或者更上层的设备进行,那么未被认证的用户就有可能对其它用户进行恶意的攻击;因此,2层交换机虽然性能不是很高,然而在网络中,对它的要求也是很高的,因为它可以在很大程度上保证网络的正常运行。
2.汇聚层3层以太网交换机根据网络的大小,汇聚层3层以太网交换机的数量上可能不一样,它的功能主要是完成多个子网之间数据的转发(不使用路由器而使用3层交换机的原因主要是价格以及转发性能的原因)。
需要3层交换机来进行子网间数据转发的原因是:一个LAN就是一个广播域,如果不划分多个LAN,就会导致LAN内的广播数据报过多而降低网络的性能,导致LAN内通信变得很缓慢。
从3层交换机在网络中的层次以及功能上看,3层交换机首要的任务是完成多个子网间数据的快速转发、以及3层交换机之间的数据转发。
hostB
hostA hostC
Multicast Source Router
Switch
(with
IGMP
Proxy)
Video server B
图8-4 IGMP代理的典型应用示意图
如上图所示,在交换机没有运行IGMP代理时,交换机会将终端ABC的IGMP报告转发至路由器,还会将路由器的查询报文转发给下游终端。
交换机上运行IGMP代理之后,上游的查询不会被转发至下游终端,终端ABC的IGMP报告也不会被转发给路由器。
交换机自己向下游发送查询,综合终端ABC 的报告形成成员数据库,根据成员数据库的组记录形成报告发送给路由器。
路由器收到的代理报告和收到下游终端ABC的报告的效果是一样的,却减少了路由器收到的IGMP报告报文的数量,减轻了路由器的压力。
8.5MVR及其应用
本节主要讲述MVR的原理和应用。
本节主要内容:
l相关术语解析
l介绍
Router A Switch A Video
Terminal A Switch B
Video server
Video Terminal B Video Terminal C Video Terminal D Video Terminal E Video
Terminal F
Router A Switch A Video
Terminal A Switch B
Video server
Video Terminal B Video Terminal C Video Terminal D Video Terminal E Video
Terminal F。
IGMP SNOOP技术白皮书一.IGMP SNOOP产生的原因IGMP(Internet Group Management Protocol)协议讲述了路由器如何发现自己直连网络上有哪些IP组播组存在。
简单的说,就是路由器周期在自己的端口上发送IGMP 查询报文(IGMP Query消息),路由器连接的网络上的主机(PC)收到IGMP 查询报文后,通过发送IGMP报告报文(IGMP Report)把自己属于的组告诉路由器。
当路由器收到IP组播数据时,将把组播数据转发到路由器上有对应组播成员主机存在的端口上。
当主机退出组播组时,通过发送IGMP离开(IGMP Leave)报文来向路由器通告自己不再希望接收该IP组播组的数据。
在组网时往往是路由器的端口连接以太网交换机,然后通过以太网交换机接入用户的PC机,而交换机收到IP组播数据时、将把该组播数据发送到自己的其它所有端口,也即把组播数据象广播数据一样进行转发,这就导致交换机把组播数据发送到了一些没有组播成员PC存在的交换机端口上,那么这些用户的PC机就收到了对他们来说没有意义的数据。
这既浪费这些PC机的CPU对这些数据进行处理,并且更严重的问题是:如果交换机上对每个端口进行了带宽限制,那么这个端口上的用户应该得到的带宽就被浪费了,这样就会导致用户的抱怨。
正是因为上面的问题,导致IGMP SNOOP技术在交换机上的产生。
二.IGMP SNOOP的工作原理IGMP SNOOP的工作原理比较简单,即交换机监控接收到的IGMP报文,然后在交换机上形成组播转发条目,这样当交换机接收到组播数据时,就可以根据组播转发条目将数据转发到确实有组成员存在的端口上。
具体的来说,使能IGMP SNOOP之后,交换机接收到IGMP报文时的处理为:1.交换机对于IGMP报文不能按照组播的转发流程(即广播的方式)进行转发,而是交给IGMP SNOOP模块处理;2.交换机收到IGMP QUERY报文时,需要记录收到该报文的端口,并将该报文转发到该VLAN的其它所有端口;3.交换机收到IGMP REPORT报文时,交换机不能将该报文转发到同一vlan的其它端口,而只能将该报文转发给收到过IGMP QUERY的端口;并且,IGMP SNOOP模块需要创建该组的组播转发条目,并将该端口以及QUERY端口加入到该组播转发条目;4.交换机收到IGMP LEAVE报文时,只需要将该LEAVE消息转发到收到过IGMP QUERY 的端口即可;如果没有使能IGMP快速离开功能,那么IGMP SNOOP模块使用老化功能(即如果该端口在规定时间之内没收到IGMP REPORT报文)将该端口从组播转发条目中删除,如果使能了IGMP快速离开功能,那么需要立即将该端口从组播转发条目中删除;三.IGMP FILTER说明从上面IGMP SNOOP的工作流程可以看出,IGMP SNOOP模块根据IGMP QUERY、IGMP REPORT、IGMP LEAVE消息在交换机上动态创建、删除组播组以及维护组播组的成员端口信息,但是在实际使用时很有可能需要限制交换机的每个端口允许加入哪些组播组,从而产生了IGMP FILTER功能。
IGMP Snooping技术总结IGMP Snooping简介IGMP Snooping是Internet Group Management Protocol Snooping(互联网组管理协议窥探)的简称,它是运行在二层设备(路由器与主机之间的交换机)上的组播约束机制,用于管理和控制组播组。
IGMP Snooping原理运行IGMP Snooping的二层设备(交换机)通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。
如图 1所示,当二层设备没有运行IGMP Snooping时,组播数据在二层被广播;当二层设备运行了IGMP Snooping 后,已知组播组的组播数据不会在二层被广播,而在二层被组播给指定的接收者。
图1 二层设备运行IGMP Snooping前后的对比传统以太网交换机处理组播数据包时只是简单地在每个端口上进行广播,这种方式使得组播包洪泛到并不支持组播的网络,这样的网络比较多的时候则会造成带宽极大的浪费。
而运行在交换机上的IGMP Snooping 协议则能够很好地解决这一问题,同时它也不需要主机和组播路由器支持额外的协议。
IGMP Snooping 协议监视网络上的IGMP 消息,为每一个组播MAC地址建立一个VLAN。
该VLAN端口所连接的网络中至少含有一个主机组成员或者含有组播路由器。
这些端口即为组播数据包应该转发的端口组,它们在一起组成组播VLAN 的端口集。
协议将维护这个端口集。
这样,当转发组播数据包时,组播数据包只在它所在的组播VLAN 端口上转发而不会广播到不需要组播的端口,节省了带宽。
同时,该以太网交换机在保持对组播路由器透明的前提下,完成IGMP 代理的功能,过滤掉不必要的IGMP 消息,防止了“IGMP 报告风暴”。
IGMP Snooping通过二层组播将信息只转发给有需要的接收者,可以带来以下好处:●减少了二层网络中的广播报文,节约了网络带宽;●增强了组播信息的安全性;●为实现对每台主机的单独计费带来了方便。
IGMP SNOOP技术白皮书一.IGMP SNOOP产生的原因IGMP(Internet Group Management Protocol)协议讲述了路由器如何发现自己直连网络上有哪些IP组播组存在。
简单的说,就是路由器周期在自己的端口上发送IGMP 查询报文(IGMP Query消息),路由器连接的网络上的主机(PC)收到IGMP 查询报文后,通过发送IGMP报告报文(IGMP Report)把自己属于的组告诉路由器。
当路由器收到IP组播数据时,将把组播数据转发到路由器上有对应组播成员主机存在的端口上。
当主机退出组播组时,通过发送IGMP离开(IGMP Leave)报文来向路由器通告自己不再希望接收该IP组播组的数据。
在组网时往往是路由器的端口连接以太网交换机,然后通过以太网交换机接入用户的PC机,而交换机收到IP组播数据时、将把该组播数据发送到自己的其它所有端口,也即把组播数据象广播数据一样进行转发,这就导致交换机把组播数据发送到了一些没有组播成员PC存在的交换机端口上,那么这些用户的PC机就收到了对他们来说没有意义的数据。
这既浪费这些PC机的CPU对这些数据进行处理,并且更严重的问题是:如果交换机上对每个端口进行了带宽限制,那么这个端口上的用户应该得到的带宽就被浪费了,这样就会导致用户的抱怨。
正是因为上面的问题,导致IGMP SNOOP技术在交换机上的产生。
二.IGMP SNOOP的工作原理IGMP SNOOP的工作原理比较简单,即交换机监控接收到的IGMP报文,然后在交换机上形成组播转发条目,这样当交换机接收到组播数据时,就可以根据组播转发条目将数据转发到确实有组成员存在的端口上。
具体的来说,使能IGMP SNOOP之后,交换机接收到IGMP报文时的处理为:1.交换机对于IGMP报文不能按照组播的转发流程(即广播的方式)进行转发,而是交给IGMP SNOOP模块处理;2.交换机收到IGMP QUERY报文时,需要记录收到该报文的端口,并将该报文转发到该VLAN的其它所有端口;3.交换机收到IGMP REPORT报文时,交换机不能将该报文转发到同一vlan的其它端口,而只能将该报文转发给收到过IGMP QUERY的端口;并且,IGMPSNOOP模块需要创建该组的组播转发条目,并将该端口以及QUERY端口加入到该组播转发条目;4.交换机收到IGMP LEA VE报文时,只需要将该LEAVE消息转发到收到过IGMP QUERY的端口即可;如果没有使能IGMP快速离开功能,那么IGMP SNOOP模块使用老化功能(即如果该端口在规定时间之内没收到IGMP REPORT报文)将该端口从组播转发条目中删除,如果使能了IGMP快速离开功能,那么需要立即将该端口从组播转发条目中删除;三.IGMP FILTER说明从上面IGMP SNOOP的工作流程可以看出,IGMP SNOOP模块根据IGMP QUERY、IGMP REPORT、IGMP LEA VE消息在交换机上动态创建、删除组播组以及维护组播组的成员端口信息,但是在实际使用时很有可能需要限制交换机的每个端口允许加入哪些组播组,从而产生了IGMP FILTER功能。
IGMP FILTER是一个专门用于过滤IGMP REPORT报文中的组播组的过滤器,如果交换机的端口没有配置Igmp filter,那么这个端口收到IGMP REPORT报文时、会将这个端口加入到这个组播组中;如果交换机的端口配置了Igmp Filter,那么这个端口收到IGMP REPORT报文时,将会根据Igmp Filter的内容决定是否允许这个端口加入该组播组。
四.烽火网络交换机IGMP SNOOP配置1.CLI方式(1)进入igmp snoop配置节点S2000M(config)#igmp-snooping上面的命令执行后将进入igmp snoop配置节点(2)配置igmp snoop协议使能或者失效S2000M(config)#igmp-snooping (enable|disable)上面的命令可以配置igmp snoop功能使能或者失效,如果参数为enable则使能igmp snoop,参数为disable则失效igmp snoop功能;缺省igmp snoop协议处于失效状态。
(3)配置igmp snoop组播转发条目老化时间S2000M(config)#igmp-snooping aging <30-3600>上面的命令用于设置igmp snoop组播组的老化时间,单位为秒;如果在指定时间内某个组播组在某个端口上没有接收到这个组播组的IGMPREPORT报文,那么就将这个端口从这个组播组中删除,如果这个组播组已经不存在任何端口、那么将该组播组也删除。
(4)配置igmp snoop快速离开状态S2000M(config)#igmp-snooping fast-leave (enable|disable)上面的命令配置是否使能快速离开功能,enable参数表示使能、disable 参数表示失效,系统缺省是没有使能快速离开的;快速离开的意思是:如果在某个端口上收到对某个组播组的IGMP LEAVE消息,那么就立即将这个端口从这个组播组中删除掉。
(5)配置当report消息被igmp filter过滤后是否转发该消息S2000M(config)#igmp-snooping drop-filtered (enable|disable)上面的命令配置当一个report报文中的组播组被igmp filter过滤之后是否转发该report报文到igmp query端口,参数enable表示不转发、disable表示虽然本端口不允许加入该组播组,但是仍然把该report报文转发到igmp query端口;系统缺省是当某个端口不允许加入某些组播组时,那么也不将该report报文转发到igmp query端口。
(6)显示igmp snoop的配置情况S2000M(config)#show igmp-snoopingigmpSnoop Status : enableigmpSnoop Aging(seconds) : 300igmpSnoop FastLeave : disableigmpSnoop drop-filtered: enable(7)显示igmp snoop学习到的组播条目S2024MA#show igmp-snooping egressport-tableVlan MacAddr EgressPorts1 01-00-5e-01-02-03 1,2,5,8,9上面的命令用于显示系统当前学习到的所有组播转发条目,上面的例子显示组播组01-00-5e-01-02-03在端口1、2、5、8、9上都有成员存在。
(8)创建或者配置某个特定igmp filterS2000M(config)# igmp-filter <1-100>上面的命令用于创建或者配置某个特定的igmp filter,如果某个igmp filter 不存在,那么上面的命令将创建指定序号的igmp filter;如果已经存在该igmp filter那么则进入对该igmp filter的配置。
(9)在igmp filter中添加规则S2000M(config-igmp-filter 1)#rule <1-100> (permit|deny) (A.B.C.D) (A.B.C.D) 上面的命令将会在igmp filter1中创建1个规则,每个igmp filter最多允许100个规则,permit参数的意思是允许加入该组播组,deny的意思是不允许加入该组播组,后面的参数是两个组播IP地址,前面是最小的ip地址、后面是最大IP地址。
(10)在igmp filter中删除某个规则S2000M(config-igmp-filter 1)#no fule <1-100>上面的命令用于在某个igmp filter中删除某个规则。
(11)将igmp filter应用于某个端口S2000M(config-igmp-filter 1)# apply-to-ports PORTLIST参数PORTLIST是一个端口列表,上面的命令用于将1个igmp filter应用于某些端口。
(12)将igmp filter不应用于任何端口S2000M(config-igmp-filter 1)# apply-to-ports none上面的命令将把igmp filter 1不应用于所有端口;(13)显示当前系统中所有的igmp filterS2000M #show igmp-filter上面的命令将显示系统中当前存在的所有igmp filter(14)显示某个特定的igmp filterS2000M #show igmp-filter <1-100>上面的命令用于显示某个特定的igmp filter的规则,下面是一个显示实例:S2024MA#show igmp-filter 1igmp filter 1's detail information:state :ActiveThe rule list :rule 1 permit 239.1.1.1 239.1.1.6 ,State:Activerule 8 deny 239.1.1.8 239.1.1.9 ,State:ActiveThe port(s) using this filter:Interface 1 ,2.WEB方式成功登录交换机的web网管界面,可以看到igmp snoop以及igmp filter配置页面:从上图可以看见,igmp snoop(igmp 监听)以及igmp filter(igmp过滤)两个页面各有2个子页面,下面是每个子页面的截图:上面的各个页面中均可以进行igmp snoop以及igmp filter的各种配置,配置意义参见前面的CLI配置说明。
五.注意事项1.每个端口只能应用1个igmp filter2.1个igmp filter可以应用于多个端口3.Igmp filter只有当igmp snoop使能时才生效。