30-IGMP Snooping
本章节下载: 30-IGMP Snooping (377.90 KB)
IGMP Snooping是Internet Group Management Protocol Snooping(互联网组管理协议窥探)的简称,它是运行在二层设备上的组播约束机制,用于管理和控制组播组。
运行IGMP Snooping的二层设备通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。
如下图所示,当二层设备没有运行IGMP Snooping时,组播数据在二层网络中被广播;当二层设备运行了IGMP Snooping后,已知组播组的组播数据不会在二层网络中被广播,而被组播给指定的接收者。
IGMP Snooping通过二层组播将信息只转发给有需要的接收者,可以带来以下好处:
· 减少了二层网络中的广播报文,节约了网络带宽;
· 增强了组播信息的安全性;
· 为实现对每台主机的单独计费带来了方便。
如下图所示,Router A连接组播源,在Switch A和Switch B上分别运行IGMP Snooping,Host A和Host C为接收者主机(即组播组成员)。
结合上图,介绍一下IGMP Snooping相关的端口概念:
· 路由器端口(Router Port):交换机上朝向三层组播设备(DR或IGMP查询器)一侧的端口,如Switch A和Switch B各自的GigabitEthernet1/0/1端口。交换机将本设备上的所有路由器端口都记录在路由器端口列表中。
· 成员端口(Member Port):又称组播组成员端口,表示交换机上朝向组播组成员一侧的端口,如Switch A的GigabitEthernet1/0/2和GigabitEthernet1/0/3端口,以及Switch B的GigabitEthernet1/0/2端口。交换机将本设备上的所有成员端口都记录在IGMP Snooping转发表中。
· 本文中提到的路由器端口都是指交换机上朝向组播路由器的端口,而不是指路由器上的端口。
· 如不特别指明,本文中提到的路由器/成员端口均包括动态和静态端口。
· 在运行了IGMP Snooping的交换机上,所有收到源地址不为0.0.0.0的IGMP普遍组查询报文或PIM Hello报文的端口都将被视为动态路由器端口。
表1-1 IGMP Snooping动态端口老化定时器
定时器 |
说明 |
超时前应收到的报文 |
超时后交换机的动作 |
动态路由器端口老化定时器 |
交换机为其每个动态路由器端口都启动一个定时器,其超时时间就是动态路由器端口老化时间 |
源地址不为0.0.0.0的IGMP普遍组查询报文或PIM Hello报文 |
将该端口从路由器端口列表中删除 |
动态成员端口老化定时器 |
当一个端口动态加入某组播组时,交换机为该端口启动一个定时器,其超时时间就是动态成员端口老化时间 |
IGMP成员关系报告报文 |
将该端口从IGMP Snooping转发表中删除 |
IGMP Snooping端口老化机制只针对动态端口。
运行了IGMP Snooping的交换机对不同IGMP动作的具体处理方式如下:
本节中所描述的增删端口动作均只针对动态端口。
IGMP查询器定期向本地网段内的所有主机与路由器(224.0.0.1)发送IGMP普遍组查询报文,以查询该网段有哪些组播组的成员。
在收到IGMP普遍组查询报文时,交换机将其通过VLAN内除接收端口以外的其它所有端口转发出去,并对该报文的接收端口做如下处理:
· 如果在路由器端口列表中已包含该动态路由器端口,则重置其老化定时器。
· 如果在路由器端口列表中尚未包含该动态路由器端口,则将其添加到路由器端口列表中,并启动其老化定时器。
以下情况,主机会向IGMP查询器发送IGMP成员关系报告报文:
· 当组播组的成员主机收到IGMP查询报文后,会回复IGMP成员关系报告报文。
· 如果主机要加入某个组播组,它会主动向IGMP查询器发送IGMP成员关系报告报文以声明加入该组播组。
在收到IGMP成员关系报告报文时,交换机将其通过VLAN内的所有路由器端口转发出去,从该报文中解析出主机要加入的组播组地址,并对该报文的接收端口做如下处理:
· 如果不存在该组播组所对应的转发表项,则创建转发表项,将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器。
· 如果已存在该组播组所对应的转发表项,但其出端口列表中不包含该端口,则将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器。
· 如果已存在该组播组所对应的转发表项,且其出端口列表中已包含该动态成员端口,则重置其老化定时器。
交换机不会将IGMP成员关系报告报文通过非路由器端口转发出去,因为根据IGMP成员关系报告抑制机制,如果非路由器端口下还有该组播组的成员主机,则这些主机在收到该报告报文后便抑制了自身的报告,从而使交换机无法获知这些端口下还有该组播组的成员主机。
运行IGMPv1的主机离开组播组时不会发送IGMP离开组报文,因此交换机无法立即获知主机离开的信息。但是,由于主机离开组播组后不会再发送IGMP成员关系报告报文,因此当其对应的动态成员端口的老化定时器超时后,交换机就会将该端口对应的转发表项从转发表中删除。
运行IGMPv2或IGMPv3的主机离开组播组时,会通过发送IGMP离开组报文,以通知组播路由器自己离开了某个组播组。当交换机从某动态成员端口上收到IGMP离开组报文时,首先判断要离开的组播组所对应的转发表项是否存在,以及该组播组所对应转发表项的出端口列表中是否包含该接收端口:
· 如果不存在该组播组对应的转发表项,或者该组播组对应转发表项的出端口列表中不包含该端口,交换机不会向任何端口转发该报文,而将其直接丢弃。
· 如果存在该组播组对应的转发表项,且该组播组对应转发表项的出端口列表中包含该端口,交换机会将该报文通过VLAN内的所有路由器端口转发出去。同时,由于并不知道该接收端口下是否还有该组播组的其它成员,所以交换机不会立刻把该端口从该组播组所对应转发表项的出端口列表中删除,而是重置其老化定时器。
当IGMP查询器收到IGMP离开组报文后,从中解析出主机要离开的组播组的地址,并通过接收端口向该组播组发送IGMP特定组查询报文。交换机在收到IGMP特定组查询报文后,将其通过VLAN内的所有路由器端口和该组播组的所有成员端口转发出去。对于IGMP离开组报文的接收端口(假定为动态成员端口),交换机在其老化时间内:
· 如果从该端口收到了主机响应该特定组查询的IGMP成员关系报告报文,则表示该端口下还有该组播组的成员,于是重置其老化定时器。
· 如果没有从该端口收到主机响应特定组查询的IGMP成员关系报告报文,则表示该端口下已没有该组播组的成员,则在其老化时间超时后,将其从该组播组所对应转发表项的出端口列表中删除。
与IGMP Snooping相关的协议规范有:
· RFC 4541:Considerations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches
步骤 |
配置任务 |
说明 |
1 |
必选 缺省情况下,全局IGMP Snooping处于禁止状态 |
|
2 |
必选 在VLAN内使能IGMP Snooping,配置IGMP Snooping版本、查询器等功能 缺省情况下,VLAN内的IGMP Snooping处于禁止状态 · 在VLAN内配置IGMP Snooping之前,必须先在全局使能IGMP Snooping · 在VLAN内使能了IGMP Snooping之后,该功能只在属于该VLAN的端口上生效 |
|
3 |
可选 在指定VLAN内配置端口的最大组播组数和端口快速离开功能 · 在端口上配置IGMP Snooping之前,必须先全局使能IGMP Snooping · 在VLAN内使能IGMP Snooping的情况下,端口上的IGMP Snooping配置才生效 |
|
4 |
可选 |
(1) 在导航栏中选择“网络 > IGMP Snooping”,默认进入“基本配置”页签的页面,如下图所示。
(2) 选中IGMP Snooping“Enable”前的单选按钮。
(3) 单击<确定>按钮完成操作。
(1) 在导航栏中选择“网络 > IGMP Snooping”,默认进入“基本配置”页签的页面,如图1-3所示。
(2) 在“VLAN配置”中单击要配置的VLAN对应的图标,进入该VLAN的IGMP Snooping配置页面,如下图所示。
(3) 配置VLAN内IGMP Snooping功能的信息,详细配置如下表所示。
(4) 单击<确定>按钮完成操作。
表1-3 VLAN内IGMP Snooping的详细配置
配置项 |
说明 |
VLAN ID |
显示当前要配置的VLAN的ID |
IGMP Snooping |
设置在该VLAN内使能(Enable)或禁止(Disable)IGMP Snooping 只有在此项选择“Enable”时,才能进行后面配置项的设置 |
版本 |
设置IGMP Snooping的版本,即设置IGMP Snooping可以处理的IGMP报文的版本 · 当IGMP Snooping的版本为2时,IGMP Snooping能够对IGMPv1和IGMPv2的报文进行处理,对IGMPv3的报文则不进行处理,而是在VLAN内将其广播 · 当IGMP Snooping的版本为3时,IGMP Snooping能够对IGMPv1、IGMPv2和IGMPv3的报文进行处理 当IGMP Snooping的版本由版本3切换到版本2时,系统将清除所有通过动态加入的IGMP Snooping转发表项 |
丢弃未知组播数据报文 |
设置使能(Enable)或禁止(Disable)丢弃未知组播数据报文功能 未知组播数据报文是指在IGMP Snooping转发表中不存在对应转发表项的那些组播数据报文: · 当使能丢弃未知组播数据报文功能时,交换机将丢弃所有收到的未知组播数据报文 · 当禁止丢弃未知组播数据报文功能时,交换机将在未知组播数据报文所属的VLAN内广播该报文 |
查询器 |
设置使能(Enable)或禁止(Disable)IGMP Snooping查询器功能 在运行了IGMP的组播网络中,会有一台三层组播设备充当IGMP查询器,负责发送IGMP查询报文,使三层组播设备能够在网络层建立并维护组播转发表项,从而在网络层正常转发组播数据。但是,在一个没有三层组播设备的网络中,由于二层设备并不支持IGMP,因此无法实现IGMP查询器的相关功能。为了解决这个问题,可以在二层设备上使能IGMP Snooping查询器,使二层设备能够在数据链路层建立并维护组播转发表项,从而在数据链路层正常转发组播数据 |
查询间隔 |
设置发送IGMP普遍组查询报文的时间间隔 |
通用查询报文源IP |
设置IGMP普遍组查询报文的源IP地址 |
特定组查询报文源IP |
设置IGMP特定组查询报文的源IP地址 |
(1) 在导航栏中选择“网络 > IGMP Snooping”
(2) 单击“高级配置”页签,进入如下图所示的页面。
(3) 配置IGMP Snooping的高级参数,详细配置如下表所示。
(4) 单击<确定>按钮完成操作。
表1-4 IGMP Snooping高级参数的详细配置
配置项 |
说明 |
端口名称 |
设置要进行IGMP Snooping高级配置的端口,包括以太网接口和二层聚合接口 选择一个端口名称后,页面下方的列表中会显示该端口的高级参数配置信息 二层聚合接口与其各成员端口上的配置是相互独立的,但在成员端口上的配置只有当该端口退出聚合组后才会生效,二层聚合接口上的配置也不会参与聚合计算 |
VLAN ID |
设置在指定VLAN内配置端口快速离开功能或配置允许端口加入的组播组最大数量 只有当端口属于指定的VLAN时,端口上的IGMP Snooping高级参数配置才生效 |
最大组播组数 |
设置允许端口加入的组播组最大数量 通过配置允许端口加入的组播组最大数量,可以限制用户点播组播节目的数量,从而控制了端口上的数据流量 在对允许端口加入的组播组最大数量进行配置时,如果当前端口上的组播组数量已经超过了配置值,系统将把该端口相关的所有转发表项从IGMP Snooping转发表中删除,该端口上的主机需要重新加入组播组 |
端口快速离开 |
设置在指定端口上使能(Enable)或禁止(Disable)快速离开功能 端口快速离开是指当交换机从某端口收到主机发送的离开某组播组的IGMP离开组报文时,直接把该端口从对应转发表项的出端口列表中删除。此后,当交换机收到对该组播组的IGMP特定组查询报文时,交换机将不再向该端口转发 在交换机上,在只连接有一个接收者的端口上,可以通过启用端口快速离开功能来节约带宽和资源;而在连接有多个接收者的端口上,如果该端口所在的VLAN已使能了丢弃未知组播数据报文功能,则不要再启用端口快速离开功能,否则,一个接收者的离开将导致该端口下属于同一组播组的其它接收者无法收到组播数据 |
(1) 在导航栏中选择“网络 > IGMP Snooping”,默认进入“基本配置”页签的页面,如图1-3所示。
(2) 单击“显示表项”前的扩展按钮,可以查看IGMP Snooping组播表项的概要信息,如下图所示。表项信息的详细说明如表1-5所示。
(3) 单击要查看的表项对应的图标,进入该IGMP Snooping组播表项详细信息的显示页面,如下图所示。表项信息的详细说明如表1-5所示。
表1-5 IGMP Snooping组播表项信息的详细说明
标题项 |
说明 |
VLAN ID |
组播表项所属VLAN的ID |
源地址 |
组播源地址,0.0.0.0表示所有组播源 |
组地址 |
组播组地址 |
路由器端口 |
所有路由器端口 |
成员端口 |
所有成员端口 |
· 如下图所示,Router A通过Ethernet1/2接口连接组播源(Source),通过Ethernet1/1接口连接Switch A;Router A上运行IGMPv2,Switch A上运行版本2的IGMP Snooping,并由Router A充当IGMP查询器。
· 通过配置,使Host A能接收发往组播组224.1.1.1的组播数据;同时,使Switch A将收到的未知组播数据直接丢弃,避免在其所属的VLAN内广播。
图1-8 IGMP Snooping配置组网图
在Router A上使能IP组播路由,在各接口上使能PIM-DM,并在接口Ethernet1/1上使能IGMP。具体配置过程略。
(1) 创建VLAN 100。
步骤1:在Switch A的导航栏中选择“网络 > VLAN”。
步骤2:单击“创建”页签。
步骤3:如下图所示,输入VLAN ID为“100”。
步骤4:单击<创建>按钮完成操作。
(2) 将端口GigabitEthernet1/0/1到GigabitEthernet1/0/3添加到该VLAN 100中
步骤1:单击“修改端口”页签。
步骤2:进行如下配置,如下图所示。
· 在设备面板示意图中选中端口“GigabitEthernet1/0/1”、“GigabitEthernet1/0/2”和“GigabitEthernet1/0/3”。
· 选择操作类型为“Untagged”。
· 输入VLAN IDs为“100”。
步骤3:单击<应用>按钮完成操作。
图1-10 将端口添加到VLAN 100中
(3) 全局使能IGMP Snooping。
步骤1:在导航栏中选择“网络 > IGMP Snooping”,默认进入“基本配置”页签的页面。
步骤2:如下图所示,选中IGMP Snooping“Enable”前的单选按钮。
步骤3:单击<确定>按钮完成操作。
图1-11 全局使能IGMP Snooping
(4) 在VLAN 100内使能IGMP Snooping和丢弃未知组播数据报文功能。
步骤1:单击VLAN 100对应的图标。
步骤2:进行如下配置,如下图所示。
· 选中IGMP Snooping“Enable”前的单选按钮。
· 选择版本为“2”。
· 选中丢弃未知组播数据报文“Enable”前的单选按钮。
步骤3:单击<确定>按钮完成操作。
图1-12 在VLAN 100内配置IGMP Snooping
在Switch A上查看IGMP Snooping组播表项的信息。
步骤1:在Switch A的导航栏中选择“网络 > IGMP Snooping”,默认进入“基本配置”页签的页面。
步骤2:单击“显示表项”前的扩展按钮,可以查看到IGMP Snooping组播表项概要信息,如下图所示。
图1-13 配置结果(IGMP Snooping组播表项概要信息)
步骤3:在概要信息表中单击VLAN 100的IGMP Snooping组播表项(0.0.0.0,224.1.1.1)对应的图标,可以查看到该IGMP Snooping组播表项的详细信息,如下图所示。
图1-14 配置结果(IGMP Snooping组播表项详细信息)
由此可见,Switch A上的端口GigabitEthernet1/0/3已经加入了组播组224.1.1.1。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!