IGMP Snooping技术介绍
来源:互联网 发布:java main方法意思 编辑:程序博客网 时间:2024/05/31 13:15
IGMP Snooping简介
IGMP是Internet Group Management Protocol Snooping(互联网组管理协议窥探)的简称,它是运行在二层设备上的组播约束机制,用于管理和控制组播组。
IGMP Snooping原理
运行IGMP Snooping的二层设备通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。
如图 1所示,当二层设备没有运行IGMP Snooping时,组播数据在二层被广播;当二层设备运行了IGMP Snooping后,已知组播组的组播数据不会在二层被广播,而在二层被组播给指定的接收者。
图1二层设备运行IGMP Snooping后的对比
IGMP Snooping通过二层组播将信息只转发给有需要的接收者,可以带来以下好处:
l
l
l
IGMP Snooping基本概念
1. IGMP Snooping相关端口
如图 2所示,Router A连接组播源,在Switch A和Switch B上分别运行IGMP Snooping,Host A和Host C为接收者主机(即组播组成员)。
图2 IGMP Snooping相关端口
结合图 2,介绍一下IGMP Snooping相关的端口概念:
l
l
l
l
l
2. IGMP Snooping动态端口老化定时器
表 1IGMP Snooping动态端口老化定时器
定时器
说明
超时前应收到的报文
超时后交换机的动作
动态路由器端口老化定时器
交换机为其每个动态路由器端口都启动一个定时器,其超时时间就是动态路由器端口老化时间
源地址不为0.0.0.0的IGMP普遍组查询报文或PIM Hello报文
将该端口从路由器端口列表中删除
动态成员端口老化定时器
当一个端口动态加入某组播组时,交换机为该端口启动一个定时器,其超时时间就是动态成员端口老化时间
IGMP成员关系报告报文
将该端口从IGMP Snooping转发表中删除
IGMP Snooping端口老化机制只针对动态端口,静态端口永不老化。
IGMP Snooping工作机制
运行了IGMP Snooping的交换机对不同IGMP动作的具体处理方式如下:
本节中所描述的增删端口动作均只针对动态端口,静态端口只能通过相应的配置进行增删。
1. 普遍组查询
IGMP查询器定期向本地网段内的所有主机与路由器(224.0.0.1)发送IGMP普遍组查询报文,以查询该网段有哪些组播组的成员。
在收到IGMP普遍组查询报文时,交换机将其通过VLAN内除接收端口以外的其它所有端口转发出去,并对该报文的接收端口做如下处理:
l
l
2. 报告成员关系
以下情况,主机会向IGMP查询器发送IGMP成员关系报告报文:
l
l
在收到IGMP成员关系报告报文时,交换机将其通过VLAN内的所有路由器端口转发出去,从该报文中解析出主机要加入的组播组地址,并对该报文的接收端口做如下处理:
l
l
l
交换机不会将IGMP成员关系报告报文通过非路由器端口转发出去,因为根据主机上的IGMP成员关系报告抑制机制,如果非路由器端口下还有该组播组的成员主机,则这些主机在收到该报告报文后便抑制了自身的报告,从而使交换机无法获知这些端口下还有该组播组的成员主机。
3. 离开组播组
运行IGMPv1的主机离开组播组时不会发送IGMP离开组报文,因此交换机无法立即获知主机离开的信息。但是,由于主机离开组播组后不会再发送IGMP成员关系报告报文,因此当其对应的动态成员端口的老化定时器超时后,交换机就会将该端口对应的转发表项从转发表中删除。
运行IGMPv2或IGMPv3的主机离开组播组时,会通过发送IGMP离开组报文,以通知组播路由器自己离开了某个组播组。当交换机从某动态成员端口上收到IGMP离开组报文时,首先判断要离开的组播组所对应的转发表项是否存在,以及该组播组所对应转发表项的出端口列表中是否包含该接收端口:
l
l
当IGMP查询器收到IGMP离开组报文后,从中解析出主机要离开的组播组的地址,并通过接收端口向该组播组发送IGMP特定组查询报文。交换机在收到IGMP特定组查询报文后,将其通过VLAN内的所有路由器端口和该组播组的所有成员端口转发出去。对于IGMP离开组报文的接收端口(假定为动态成员端口),交换机在其老化时间内:
l
l
IGMP Snooping Proxying
通过在边缘设备上配置IGMP Snooping Proxying(IGMP Snooping代理)功能,可以减少其上游设备收到的IGMP报告报文和离开报文的数量,有效提高其上游设备的整体性能。配置了IGMP Snooping Proxying功能的设备(称为IGMP Snooping代理设备),在其上游设备看来,相当于一台主机;而在其下游主机看来,则相当于一台查询器。
尽管在其上游设备看来,IGMP Snooping代理设备相当于一台主机,但主机上的IGMP成员关系报告抑制机制在IGMP Snooping代理设备上并不会生效。
图3 IGMP Snooping Proxying组网图
如图 3所示,作为IGMP Snooping代理设备的Switch A,对其上游设备Router A来说是一台主机,代理下游主机向Router A发送报告报文和离开报文;而对其下游的主机来说则是一台查询器,代理Router A向下游主机发送普遍组查询报文和特定组查询报文,维护组成员关系。
IGMP Snooping代理设备对IGMP报文的处理方式如表2所示。
表2 IGMP Snooping代理设备对IGMP报文的处理方式
IGMP报文类型
处理方式
普遍组查询报文
收到普遍组查询报文后,向本VLAN内除接收端口以外的所有端口转发;同时根据本地维护的组成员关系生成报告报文,并向所有路由器端口发送
特定组查询报文
收到针对某组播组的特定组查询报文时,若该组对应的转发表项中还有成员端口,则向所有路由器端口回复该组的报告报文
报告报文
从某端口收到某组播组的报告报文时,若已存在该组对应的转发表项,且其出端口列表中已包含该动态成员端口,则重置其老化定时器;若已存在该组对应的转发表项,但其出端口列表中不包含该端口,则将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;若尚不存在该组对应的转发表项,则创建转发表项,将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器,然后向所有路由器端口发送该组的报告报文
离开报文
从某端口收到某组播组的离开报文后,向该端口发送针对该组的特定组查询报文。只有当删除某组播组对应转发表项中的最后一个成员端口时,才会向所有路由器端口发送该组的离开报文
交换机对组播协议报文的特殊处理规则
支持IGMP Snooping功能的交换机使能了三层组播路由后,在不同的情况下对各种组播协议报文的处理有所差异。具体规则如下:
(1)
(2)
l
l
(3)
l
l
(4)
l
l
- IGMP Snooping技术介绍
- IGMP Snooping技术介绍
- IGMP Snooping技术介绍
- IGMP Snooping技术学习笔记
- IGMP Snooping协议技术总结
- IGMP Snooping
- igmp snooping
- IGMP snooping
- IGMP Snooping
- IGMP Snooping
- IGMP SNOOPING
- 组播、IGMP、IGMP Snooping
- IGMP Snooping和IGMP区别
- 组播、IGMP、IGMP Snooping
- IGMP技术介绍
- CGMP和IGMP Snooping
- igmp snooping 转载1
- igmp snooping 2
- ios中的coredata的使用
- 开发者必看:iOS应用审核的通关秘籍
- jq同一函数实现set和get
- collapsible data-collapsed Jquery-mobile动态设置
- web标准—可用性、可维护性、可访问性
- IGMP Snooping技术介绍
- 仿造百度实现基于Lucene.net全文检索
- 一步步教你读懂NET中IL
- 静态链接与动态链接的区别
- HDU 4510 小Q系列故事——为什么时光不能倒流
- 固定资产租赁的会计处理
- nyoj 15 括号匹配(二)
- 黑马程序员---java基础知识
- C#_List_<T>排序