S系列框式交换机(S75/S75E/S85)

S系列框式核心交换机是面向下一代IP城域网、大型园区网推出的新一代T比特运营级模块化核心交换机。
通用
{{sendMatomoQuery("S系列框式交换机(S75/S75E/S85)","IGMP-snooping介绍与配置示例")}}

IGMP-snooping介绍与配置示例

更新时间:2024-01-09

1  IGMP-snooping配置  

1.1  IGMP-snooping配置任务  

IGMP-snooping的任务是维护VLAN与组地址的对应关系,并且能够与多播组的变化同步更新,这样交换机就可以按照多播组的拓扑结构转发数据。其功能主要包括侦听IGMP报文、维护组地址和VLAN的对应表,保持主机IGMP协议实体和路由器IGMP协议实体的状态一致性,解决“flooding”问题。

需要注意的是:由于igmp-snooping是通过监听igmpqueryreport报文来实现上述描述的问题,因此必须在有组播路由器的环境下igmp-snooping才能正常工作,即交换机必须能周期性地收到路由器发来的igmp查询报文,因此igmp-snoopingrouter age定时器设置必须大于和其进行连接的组播路由器的组查询周期。可以通过show ip igmp-snooping命令来查看打开igmp-snooping功能的各vlan中的组播路由器信息。

开启/关闭VLANIGMP-snooping功能

增加/删除VLAN的静态组播地址

配置VLANimmediate-leave特性

配置VLAN的静态路由端口

配置生成组播转发表时的IPACL

配置过滤目的地址未注册的组播报文的功能

配置IGMP-snoopingRouter Age定时器

配置IGMP-snoopingResponse Time定时器

配置IGMP-snoopingIGMP Querier

配置IGMP-snoopingQuerier Time定时器

配置IGMP-snoopingforward-l3-to-mrouter转发数据报文到路由端口

配置IGMP-snoopingsensitive模式及value

配置IGMP-snoopingv3-leave-check功能

配置IGMP-snoopingforward-wrongiif-within-vlan功能

配置IGMP-snooping的端口下IPACL功能

配置IGMP-snooping的端口下最大组播IP地址数量功能

IGMP-snooping的监控与维护

配置IGMP-snooping的示例

1.1.1     开启/关闭VLANIGMP-snooping功能 

在全局配置模式下进行下列配置:

命令

目的

ip igmp-snooping [vlan vlan_id ]

开启VLANIGMP-snooping功能。

no ip igmp-snooping [vlan vlan_id ]

恢复缺省设置。

如果不指定vlan参数,则开启和关闭动作将对系统中所有的vlan(包括后来创建的)生效。

缺省情况下所有VLANIGMP-snooping功能被关闭。

例如,如果只想在VLAN3启用IGMP-snooping,并在系统重启后也保持配置不变,可先使用”no ip IGMP-snooping”命令关闭所有VLANIGMP-snooping,再配置”ip IGMP-snooping VLAN 3”,并保存配置。

1.1.2   增加/删除VLAN的静态组播地址 

静态组播地址的配置使一些不支持IGMP协议的主机也能接收到相应的组播报文。

在全局配置模式下进行下列配置:

命令

目的

ip igmp-snooping vlan vlan_id  static A.B.C.D interface intf

增加VLAN的静态组播地址。

no ip igmp-snooping vlan vlan_id  static A.B.C.D interface intf

删除VLAN的静态组播地址。

1.1.3   配置VLANimmediate-leave特性 

配置immediate-leave特性可以使交换机收到leave 报文后立即从对应组播组的端口列表中删除相应的端口,而不再开启定时器等待是否还有其他主机加入了这个组播,如果同一端口下的其他主机也属于这个组但并不想离开,这些用户的组播通信可能会受到影响,此时不应启用immediate-leave功能。

在全局配置模式下进行下列配置:

命令

操作

ip igmp-snooping vlan vlan_id  immediate-leave

配置VLANimmediate-leave特性。

no ip igmp-snooping vlan vlan_id immediate-leave

恢复VLANimmediate-leave特性为默认值。

缺省情况下VLANimmediate-leave特性是关闭的。

1.1.4配置端口的immediate-leave特性

配置端口的immediate-leave特性可以使交换机在该端口收到leave 报文后立即从对应组播组的端口列表中删除该端口,而不再开启定时器等待是否还有其他主机加入了这个组播。如果同一端口下的其他主机也属于这个组但并不想离开,这些用户的组播通信可能会受到影响,此时不应启用immediate-leave功能。

端口的immediate-leave配置和VLAN下的immediate-leave配置同时起作用。

在接口配置模式下进行下列配置:

命令

操作

ip igmp-snooping immediate-leave

配置端口的immediate-leave特性。

no ip igmp-snooping immediate-leave

恢复端口的immediate-leave特性为默认值。

缺省情况下端口的immediate-leave特性是关闭的。

1.1.5   配置VLAN的静态路由端口 

配置静态的路由端口将组播报文发往该路由端口。交换机会把组播的report报文发送给vlan下的所有路由端口。

在全局配置模式下进行下列配置:

命令

目的

ip igmp-snooping vlan vlan_id   mrouter  interface intf

增加VLAN的静态路由端口。

no ip igmp-snooping vlan vlan_id  mrouter interface intf

删除VLAN的静态路由端口。

 

1.1.6配置 生成组播转发表时的IPACL  

全局配置模式下配置IPACL可以制订交换机在收到igmp report报文后,生成组播转发表时的规则和限制。

命令

目的

ip igmp-snooping policy word 

增加生成组播转发表时的IPACL

no ip igmp-snooping policy 

删除已配置的生成组播转发表时的IPACL

 

1.1.7配置过滤目的地址未注册的组播报文的功能 

当组播报文目标查找失败(DLF,即目的地址未通过igmp-snooping注册在交换芯片中)时,默认的处理方式是在报文所属的vlan内所有端口上进行转发,可以通过配置改变该处理方式,使其丢弃所有目的地址未注册在任何端口的组播报文。

命令

操作

ip igmp-snooping dlf-drop

丢弃组播目的地址查找失败的报文。

no ip igmp-snooping dlf-drop

恢复默认设置(forward)

注意:

1)该属性的设置是针对所有vlan进行的。

缺省情况下交换机对该类报文的处理方式为forward(vlan内广播)

1.1.8  配置IGMP-snoopingRouter Age定时器 

Router Age定时器用于监视IGMP 查询者是否存在,IGMP查询者维护通过发送查询报文来维护管理组播地址,IGMP-snooping依赖IGMP查询者和主机之间的通信来工作。

在全局配置模式下进行下列配置:

命令

操作

ip igmp-snooping  timer  router-age  timer_value

配置IGMP-snoopingRouter Age值。

no ip igmp-snooping timer router-age

恢复IGMP-snoopingRouter Age为默认值。

 注意:

该定时器的设置要参考IGMP查询者的查询周期的设置,不能小于查询周期的时间,建议为查询周期的三倍。

  缺省情况下IGMP-snoopingRouter Age 260 秒。

1.1.9   配置IGMP-snoopingResponse Time定时器 

Response Time定时器是当IGMP查询者发送查询报文后,主机报告组播的最晚时间,如果在该定时器老化后还没有收到报告报文,则交换机将删除该组播地址。

在全局配置模式下进行下列配置:

命令

操作

ip igmp-snooping timer response-time timer_value

配置IGMP-snoopingResponse Time值。

no ip igmp-snooping timer response-time

恢复IGMP-snoopingResponse Time为默认值。

注意:

该定时器值不能过小,过小会造成组播通信不稳定。

缺省情况下IGMP-snoopingResponse Time值为15 秒。

1.1.10  配置IGMP-snoopingquerier 

如果启用IGMP-snooping特性的VLAN中不存在组播路由器,可以使用IGMP-snooping模块的Querier功能来模拟组播路由器定期发送IGMP组查询报文(该功能是全局性质的,即只能在所有启用IGMP-snoopingVLAN中开启或关闭)。

当局域网中没有组播路由器且组播流量不需要路由时,可以通过IGMP querier来激活交换机自发query的功能,使得IGMP snooping保持正常工作。

在全局配置模式下进行下列配置:

命令

操作

[no] ip igmp-snooping querier [address [ip_addr]

配置IGMP-snoopingQuerier,可选参数addressQuery报文的源IP地址。

缺省情况下IGMP-snooping querier处于关闭状态。伪Query报文的源IP地址默认为10.0.0.200

注意:

如果启动了Querier功能,则VLAN中存在组播路由器时,该功能自动失效,而组播路由器超时的情况下,该功能又可自动激活。

1.1.11配置IGMP-snooping Querier Time定时器  

Querier Time定时器是当交换机作为本地IGMP查询者发送查询报文的时间间隔,定时器老化后则在vlan内广播query报文。

在全局配置模式下进行下列配置:

命令

操作

ip igmp-snooping  querier  querier-timer  timer_value

配置IGMP-snoopingQuerier Time值。

no ip igmp-snooping querier  querier-timer

恢复IGMP-snoopingQuerier Time为默认值。

缺省情况下IGMP-snooping querier处于关闭状态。Query报文的间隔时间默认为200秒。

注意:

如果启动了Querier功能,则不应把querier-timer设得过长,在子网内有其他开启querier的交换机的情况下querier-timer过长(长于其他交换机的router-age)则会导致子网内的querier选举不稳定。

1.1.12配置IGMP-snoopingforward-l3-to-mrouter转发数据报文到路由端口

如果启用了三层组播特性igmp-snooping没有join报文加入下游端口,通过多播路由只能学习到下游的vlan 端口,开启forward-l3-to-mrouter功能可以学习到vlan下的所有路由端口,将数据报文发送给PIM-SM报文注册的多播路由端口,而不会向下游所有的物理端口广播报文。该命令主要用于下面的情况。

当多台交换机级联开启了三层组播时,上游设备只能通过多播路由协议学习得到下游的vlan端口,上下游设备之间没有igmp报文交互,因此上游设备的snooping无法学习到与下游设备连接的具体的物理端口,这样上游设备转发多播流量时,会向vlan内所有物理端口发送;开启该功能后,可以仅将报文转发到连接下游设备的物理端口,避免报文在下游vlan广播。

在全局配置模式下进行下列配置:

命令

操作

[no] ip igmp-snooping forward-l3-to-mrouter

配置IGMP-snoopingforward-l3-to-mrouter功能。

缺省情况下IGMP-snooping forward-l3-to-mrouter关闭。

注意:

该命令可以将数据报文转发到多播路由端口,但是交换芯片对于源数据端口有抑制功能,所以不会将报文转发给源数据端口,只能够将报文转发到PIM-SM注册的下游多播路由端口。

1.1.13配置IGMP-snoopingsensitive模式及value

如果启用IGMP-snooping sensitive特性,则当处于trunk模式的端口shutdown时,将处于active状态的mrouterrouter-age时间设置为sensitive value值,迅速发出query报文。

在全局配置模式下进行下列配置:

命令

操作

[no] ip igmp-snooping sensitive [value [3-30] ]

配置IGMP-snoopingsensitive,可选参数value为当前activemrouterrouter-age时间。

缺省情况下IGMP-snooping sensitive处于关闭状态。

注意:

当处于sensitive模式时,使用sensitive value更新router-age只针对当前一次周期,下一次router-age恢复为配置的time router-age时间。

 

1.1.14配置IGMP-snoopingv3-leave-check功能

如果启用IGMP-snooping v3-leave-check特性,当收到v3leave报文后,发送special query报文,否则,不做处理。

在全局配置模式下进行下列配置:

命令

操作

[no] ip igmp-snooping v3-leave-check

配置IGMP-snoopingv3-leave-check。收到 v3 leave报文后,发送special query 报文。

 

 

1.1.15配置IGMP-snoopingforward-wrongiif-within-vlan功能

如果启用IGMP-snooping forward-wrongiif-within-vlan功能,则将从错误的vlan interface 端口接收到的组播数据报文在源vlan内做二层转发,将报文转发至本vlan 内相关的组成员端口,否则,报文被丢弃。

在全局配置模式下进行下列配置:

命令

操作

[no] ip igmp-snooping forward-wrongiif-within-vlan

配置IGMP-snoopingforward-wrongiif-within-vlan,将数据报文在本vlan内转发给相关的组成员端口。

缺省情况下IGMP-snooping forward-wrongiif-within-vlan处于开启状态。

注意:

ip igmp-snooping forward-wrongiif-within-vlan 该命令只有在三层组播开启时才有意义。

 

1.1.16    配置IGMP-snooping的端口下IPACL功能 

  如果启用IGMP-snooping的端口下IPACL功能,则将在端口下使用IPACL来指定某组播IP地址的报文需要处理或忽略。

在物理端口配置模式下进行下列配置:

命令

操作

ip igmp-snooping filter word

增加端口所需处理的组播报文的IPACL

no ip igmp-snooping filter

删除已配置的端口所需处理的组播报文的IPACL

 

1.1.17配置IGMP-snoopingVLAN下的组播过滤功能

如果启用IGMP-snoopingVLAN下的组播过滤功能,则在VLAN下只有过滤列表中的组播组report请求才被接受并加组,否则被丢弃并且不加组。

在全局配置模式下进行下列配置:

命令

操作

ip igmp-snooping vlan value filter vlanid-list

配置IGMP-snoopingVLAN下的组播过滤功能。参数vlanid-list为用”, ””- “连接的VLAN ID列表。注意“,”和“-”后面均要跟至少一个空格。

ip igmp-snooping vlan value filter vlanid-list

删除VLAN下的组播过滤

 

1.1.18  配置IGMP-snooping的端口下最大组播IP地址数量功能 

  如果配置IGMP-snooping的端口下最大组播IP地址数量功能则会在IGMP-snooping生成转发表项时判断该端口下已申请的组是否达到了该配置的数量,若超过该数目则不再生成该端口的表项。

在物理端口配置模式下进行下列配置:

命令

操作

[no] ip igmp-snooping limit [value [1-2048] ]

配置IGMP-snooping的端口下最大组播组数量。

缺省情况下IGMP-snooping端口下的最大组加入数为2048

1.1.19配置IGMP-snoopingreport-suppression功能

如果配置了IGMP-snoopingreport-suppression功能,则同一VLAN中,对一个组播组的report请求,无论是客户端初始状态下主动发起,还是对query的应答,交换机只向mrouter端口转发有限的个数。转发个数由max-number后的参数决定,范围为1-5。若省略max-number关键字,则转发个数缺省为1

此功能是为了保证IGMP Snooping功能正常的情况下,减轻本交换机和上游交换机的处理开销,节省转发report报文的带宽。

在全局配置模式下进行下列配置:

命令

操作

[no] ip igmp-snooping report-suppression [max-number  value [1-5] ]

配置IGMP-snooping report-suppression及其report最大转发数。

缺省情况下IGMP-snoopingreport-suppression功能关闭。

若配置了ip igmp-snooping report-suppression,但省略了关键字max-number,则report转发个数缺省为1

1.1.20配置IGMP-snoopingproxy-leave功能

如果配置了IGMP-snoopingproxy-leave功能,则同一VLAN中,只有当一个组播组的成员全部真正离组后,才由交换机向上游设备发送该组播组的leave报文。

此功能是为了保证IGMP Snooping功能正常的情况下,减轻本交换机和上游交换机的处理开销,节省转发leave的带宽。

在全局配置模式下进行下列配置:

命令

操作

[no] ip igmp-snooping proxy-leave

配置IGMP-snooping proxy-leave功能。

缺省情况下IGMP-snoopingproxy-leave功能关闭。

1.1.21IGMP-snooping的监控与维护 

请在管理态下进行下列操作:

命令

操作

show ip igmp-snooping

显示IGMP-snooping的配置信息。

show ip igmp-snooping timer

显示IGMP-snooping时钟信息。

show ip igmp-snooping groups

显示IGMP-snooping多播组信息。

show ip igmp-snooping groups interface

显示端口所加IGMP-snooping多播组信息。

show ip igmp-snooping statistics [message|packet|hardware|vlan vlanid]

显示IGMP-snooping统计信息。

show ip igmp-snooping vlan

显示IGMP-snoopingvlan信息。

[ no ] debug ip igmp-snooping [ packet | timer | event | error ]

开启/关闭IGMP-snooping数据包/时钟调试/事件/错误打印开关,如果不指定具体调试开关,则所有调试开关被打开/关闭。

显示运行IGMP-snooping功能的vlan信息:

switch # show ip igmp-snooping

Global IGMP snooping configuration:

-----------------------------------

Globally enable      : Enabled

VLAN nodes          : 1,50,100,200,400,500

Dlf-frames filtering   : Disabled

Sensitive           : Disabled

Querier             : Enabled

Querier address     : 10.0.0.200

Querier interval      : 140 s

Router age          : 260 s

Response time      : 15 s

 

  vlan_id   Immediate-leave   Ports   Router Ports

--------------------------------------------------------------

     1         Disabled        5-10     SWITCH(querier);

    50         Disabled        1-4     SWITCH(querier);

   100         Disabled        NULL     SWITCH(querier);G1/1(static);

   200         Disabled        NULL     SWITCH(querier);

   400         Disabled        NULL     SWITCH(querier);

   500         Disabled        NULL     SWITCH(querier);

 

显示IGMP-snooping多播组信息:

switch# show ip igmp-snooping groups

        The total number of groups        2

 

Vlan Group       Type Port(s)

---- --------------- ---- ----------------------------------------------------

 1 226.1.1.1       IGMP G1/1    G1/3

1 225.1.1.16      IGMP G1/1    G1/3

 

显示端口所加IGMP-snooping多播组信息:

Switch#show ip igmp-snooping groups interface g0/4

 

Number of joined groups: 1

 

Vlan Group           Mode    Source Num

---- --------------- ------- ----------

  2 230.1.1.1       Exclude   0  

 

显示IGMP-snooping定时器:

switch#show ip igmp-snooping timers

vlan 1 mrouter on port 3 : 251 表示路由器老化定时器超时时间。

vlan 1 multicast address 0100.5e00.0809 response time : 1 表示自从收到上一个多播组查询报文后到现在的时间;如果本定时器超时时端口上仍没有主机响应,则该端口将被删除。

显示IGMP-snooping统计:

Switch_config#show ip igmp-s statistics

 

IGMP Snooping Message Statistics

------------------------------------

L2 main messages sent OK     : 75  L2发送igmp-snooping任务消息成功数

L2 main messages sent failed   : 0    L2发送igmp-snooping任务消息失败数

L2 packets received            : 72   L2收到与igmp-snooping有关报文数

L2 packets sent                : 72   L2发给igmp-snooping任务报文数

L2 packets sent failed          : 0   L2发给igmp-snooping任务报文失败数

L2 link-status messages         : 3  L2发给igmp-snooping任务链路状态消息数

IGMP Snooping messages received: 79  igmp-snooping任务收到消息数

IGMP packet messages received  : 72  igmp-snooping任务收到报文消息数

 

IGMP Snooping Packet Statistics

-----------------------------------------

Received packets                   : 72  igmp-snooping任务收到报文数

IGMP packets                       : 29 igmp-snooping任务收到IGMP报文数

M-routing protocol packets           : 0 igmp-snooping收到组播路由协议报文数

Other packets                      : 43 igmp-snooping收到其他报文数

Received IGMP general queries      : 0 igmp-snooping收到general query

Received IGMPv2 specific queries    : 0 igmp-snooping收到v2 specific query

Received IGMPv3 g specific queries  : 0 igmp-snooping收到v3 group specific query

Received IGMPv3 gs specific queries: 0 igmp-snooping收到v3 group-source specific query

Received IGMPv1 reports            : 0 igmp-snooping收到v1 report

Received IGMPv2 reports            : 0 igmp-snooping收到v1 repor2

Received IGMP leaves               : 0 igmp-snooping收到leave

Received IGMPv3 reports            : 29 igmp-snooping收到v3 report

Flooded queries                    : 0 igmp-snooping转发的v1 query

Forwarded and proxy-sent reports   : 0 igmp-snooping转发或代理发送的 report

Forwarded and proxy-sent leaves    : 0 igmp-snooping转发或代理发送的 leavet

 

IGMP Snooping Hardware Operation Statistics

-------------------------------------------

Total                  : 0   硬件操作总次数

Succeeded             : 0   硬件操作成功次数

Failed                 : 0   硬件操作失败梳失败次数

Report/leave processing: 0    处理reportleave而操作硬件次数

Response timer expiring: 0    响应定时器老化而产生的硬件操作次数

Group creating/updating: 0    创建、更新组而产生的硬件操作次数

Group deleting         : 0   删除组而产生的硬件操作次数

 显示IGMP-snoopingvlan信息:

Switch_config#show ip igmp-snooping vlan

  vlan_id    Immediate-leave   Ports   Router Ports

-----------------------------------------------------------------

     1         Disabled        7-30    

     2         Disabled        NULL    

调试IGMP-snooping报文信息:

switch#debug ip igmp-snooping packet

Jan  1 02:22:28 IGMP-snooping: Receive IGMPv3 report from G1/1, vlan 1:

Jan  1 02:22:28 IGMP-snooping: Flood packet from G1/1 to vlan 1 rc = 0.

Jan  1 02:22:29 IGMP-snooping: Receive IGMPv3 report from G1/1, vlan 1:

Jan  1 02:22:29 IGMP-snooping: Flood packet from G1/1 to vlan 1 rc = 0.

Jan  1 02:22:38 IGMP-snooping: Receive IGMPv3 report from G1/1, vlan 1:

Jan  1 02:22:38 IGMP-snooping: Flood packet from G1/1 to vlan 1 rc = 0.

Jan  1 02:22:39 IGMP-snooping: Receive IGMPv3 report from G1/1, vlan 1:

Jan  1 02:22:39 IGMP-snooping: Flood packet from G1/1 to vlan 1 rc = 0.

Jan  1 02:23:11 IGMP-snooping: Receive IGMPv3 report from G1/1, vlan 1:

Jan  1 02:23:11 IGMP-snooping: Flood packet from G1/1 to vlan 1 rc = 0.

Jan  1 02:23:12 IGMP-snooping: Receive IGMPv3 report from G1/1, vlan 1:

Jan  1 02:23:12 IGMP-snooping: Flood packet from G1/1 to vlan 1 rc = 0.

调试IGMP-snooping报文定时器:

switch#debug ip igmp-snooping timer

Jan  1 02:30:36 IGMP-snooping: Vlan 1 router on interface (null) expiry.

Jan  1 02:30:36 IGMP-snooping: Vlan 100 router on interface (null) expiry.

Jan  1 02:30:36 IGMP-snooping: Vlan 200 router on interface (null) expiry.

Jan  1 02:30:36 IGMP-snooping: Vlan 400 router on interface (null) expiry.

Jan  1 02:30:36 IGMP-snooping: Vlan 500 router on interface (null) expiry.查询响应定时器超时

1.1.22 IGMP-snooping配置示例 

示例网络连接如图1

 

配置Switch

(1)开启连接Private Network AVLAN 1IGMP-snooping

Switch_config#ip igmp-snooping vlan 1

(2)开启连接Private Network BVLAN 2IGMP-snooping

Switch_config#ip igmp-snooping vlan 2