04-IGMP配置
本章节下载: 04-IGMP配置 (275.33 KB)
目 录
下表列出了本章所包含的内容。
如果您需要…… |
请阅读…… |
了解IGMP的基本原理和概念 |
|
了解IGMP Proxy的基本原理及配置 |
|
配置IGMP |
|
显示配置后IGMP的运行情况,以及查看显示信息验证配置的效果 |
|
配置举例 |
IGMP(Internet Group Management Protocol,互联网组管理协议)是TCP/IP协议族中负责IP组播成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
参与IP组播的主机可以在任意位置、任意时间、成员总数不受限制地加入或退出组播组。组播路由器不需要也不可能保存所有主机的成员关系,它只是通过IGMP协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。而主机方只需要保存自己加入了哪些组播组。
IGMP在主机与路由器之间是不对称的:主机需要响应组播路由器的IGMP查询报文,即以IGMP Membership Report报文响应;路由器周期性发送成员资格查询报文,然后根据收到的响应报文确定某个特定组在自己所在子网上是否有主机加入,并且当收到主机的退出组的报告时,发出特定组的查询报文(IGMP版本2),以确定某个特定组是否已无成员存在。
到目前为止,IGMP有三个版本:IGMP版本1(由RFC1112定义)、IGMP版本2(由RFC2236定义)和IGMP版本3。目前应用最多的是版本2。
IGMP版本2对版本1所做的改进主要有:
(1) 共享网段上组播路由器的选举机制
共享网段表示一个网段上有多个组播路由器的情况。在这种情况下,由于此网段上运行IGMP的路由器都能从主机那里收到成员资格报告消息,因此,只需要一个路由器发送成员资格查询消息,这就需要一个路由器选举机制来确定一个路由器作为查询器。
在IGMP版本1中,查询器的选择由组播路由协议决定;IGMP版本2对此做了改进,规定同一网段上有多个组播路由器时,具有最小IP地址的组播路由器被选举出来充当查询器。
(2) IGMP版本2增加了离开组机制
在IGMP版本1中,主机悄然离开组播组,不会给任何组播路由器发出任何通知。造成组播路由器只能依靠组播组响应超时来确定组播成员的离开。而在版本2中,当一个主机决定离开时,如果它是对最近一条成员资格查询消息作出响应的主机,那么它就会发送一条离开组的消息。
(3) IGMP版本2增加了对特定组的查询
在IGMP版本1中,组播路由器的一次查询,是针对该网段下的所有组播组。这种查询称为普遍组查询。
在IGMP版本2中,在普遍组查询之外增加了特定组的查询,这种查询报文的目的IP地址为该组播组的IP地址,报文中的组地址域部分也为该组播组的IP地址。这样就避免了属于其它组播组成员的主机发送响应报文。
(4) IGMP版本2增加了最大响应时间字段
IGMP版本2增加最大响应时间字段,以动态地调整主机对组查询报文的响应时间。
在一个大规模应用组播路由协议的网络中,会存在很多末梢网络(组播转发树的末梢,即只连接组播客户端的子网),对这些末梢网络进行配置和管理是一件很繁重的工作。
在末梢网络的设备上配置IGMP Proxy功能可以减少末梢网络的配置和管理工作,同时又不影响末梢网络的组播连接。
配置了IGMP Proxy后,从外部网络看,末梢网络中的网络设备相当于一台主机。只有当下挂的主机中有组播组成员时,该设备才会接收相应组的组播数据。
图1-1是一个IGMP Proxy示意图。
(1) Switch B上的配置如下
l 启动了组播功能;
l 在Vlan-interface 100和Vlan-interface 200上配置PIM、IGMP;
l 在Vlan-interface 200接口上配置Vlan-interface 100接口为其IGMP Proxy代理接口。
(2) Switch A上的配置如下
l 启动了组播功能;
l 在Vlan-interface 100接口上配置PIM协议、IGMP;
l 在Vlan-interface 100接口上配置pim neighbor-policy命令,滤除33.33.33.0/24网段的PIM邻居,即不将SwitchB作为其PIM邻居。
IGMP加入或离开消息的处理过程如下:
l Switch B从Vlan-interface 200接口收到主机发出的IGMP加入或离开消息,将消息的源地址改为通向Switch A的出接口Vlan-interface 100的地址33.33.33.2;
l Switch B将IGMP消息向Switch A发送;
l Switch A从自己的Vlan-interface 100收到Switch B发来的IGMP消息,进行相应的处理,就象Switch B是Vlan-interface 100下连接的直连主机一样。
IGMP普遍组或特定组查询消息的处理过程如下:
l Switch B在收到Switch A发送的普遍组或特定组查询消息后,将查询消息的源地址改为通向主机的出接口Vlan-interface 200的地址22.22.22.1;
l Switch B将消息从Vlan-interface 200接口发送出去。
l 外部网络中的设备的相应接口上配置了IP地址、PIM、PIM Neighbor-policy和IGMP;
l 末梢网络中的交换机上启动了组播功能,相应的端口已经加入到指定的VLAN中,相应接口上配置了IP地址、PIM和IGMP。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能当前接口上的IGMP proxy功能,并指定当前接口的代理接口 |
igmp proxy interface-type interface-number |
必选 缺省情况下,接口上不使能IGMP Proxy功能 |
注意:
l 配置igmp proxy前需要先在接口上使能IGMP协议。
l 如果指定的代理接口上没有使能IGMP协议,允许配置但不生效。
l 如果为同一接口配置多次IGMP Proxy接口,以最后一次配置为准。
l 同一个接口不能作为两个及两个以上其它被代理接口的IGMP代理接口。
注意:
启动组播路由后,必须在接口上使能IGMP协议,才能进行其他IGMP配置。
IGMP基本配置包括:
l 启动组播路由
启动组播路由后,三层组播(IGMP、PIM等)的相关配置才能生效。详细内容请参见“IP组播分册”中的“组播公共配置”。
此项配置任务在需要进行组播成员关系维护的接口上使能IGMP。执行此操作之后,才能进行IGMP的其他配置。
请在接口视图下进行下列配置。
操作 |
命令 |
在当前接口上使能IGMP |
igmp enable |
在当前接口上禁止IGMP |
undo igmp enable |
缺省情况下,接口上不使能IGMP。
注意:
l 如果已经开启了端口的VLAN VPN特性,则不允许端口所属的VLAN使能IGMP Snooping,也不允许端口所属的接口使能IGMP。反之亦然。
l 如果VLAN上已经开启IGMP Snooping,或者接口已经开启IGMP。则不允许使能了VLAN VPN的端口加入VLAN,反之亦然。
IGMP的高级配置包括:
l 配置IGMP版本
开启兼容性控制功能之后,交换机会处理IGMP Report报文中目的IP地址为224.0.0.1的协议报文功能,否则交换机丢弃该类型报文。
请在系统视图下进行下列配置。
操作 |
命令 |
开启交换机兼容性控制功能 |
igmp-report enhance enable |
缺省情况下,交换机兼容性控制功能关闭。
通常情况下,该命令在系统使能了IGMP或者IGMP-Snooping协议后使用。
请在接口视图下进行下列配置。
操作 |
命令 |
配置使用的IGMP版本 |
igmp version { 1 | 2 } |
恢复到缺省设置 |
undo igmp version |
缺省情况下,S9500系列交换机使用IGMPv2。
注意:
IGMP各版本之间不能自动转换。因此,子网上的所有设备应该配置使用同一IGMP版本。
路由器通过在所连接的网段上发送IGMP查询报文,获得该网段哪些组播组有成员。组播路由器周期性地发送查询报文,当得到某一组成员报告的时候,刷新该网段相应的组成员关系信息。
请在接口视图下进行下列配置。
操作 |
命令 |
配置查询间隔 |
igmp timer query seconds |
恢复查询间隔的缺省值 |
undo igmp timer query |
在一个网段中有多个组播路由器时,由查询器负责向局域网上的所有主机发送IGMP查询报文。
缺省情况下,此时间间隔为60秒。
注意:
重新配置IGMP查询间隔时间后,仅对那些在配置后又有新的Report报文报告的组播组生效,其他组播组仍然按照上一次的老化时间老化,直到收到新的Report报文后才更改为新的老化时间。
在共享网络上,由查询路由器(简称查询器)负责维护接口上IGMP组成员关系。命令igmp lastmember-queryinterval和igmp robust-count用来在IGMP查询器收到主机发送的IGMP Leave报文时,配置查询器发送IGMP指定组查询报文的时间间隔和次数。
l 该主机应该发送IGMP Leave报文。
l IGMP查询器收到该报文,必须按照命令igmp lastmember-queryinterval设置时间间隔seconds(缺省情况下seconds为1秒),按照命令igmp robust-count设置的健壮系数robust-value(缺省情况下robust-value为2),发送robust-value次IGMP指定组查询报文。
l 其他主机收到IGMP查询器发送的IGMP指定组查询报文,如果对该组感兴趣,就会在该报文规定的最大响应时间内发送IGMP Membership Report报文。
l IGMP查询器如果在robust-value * seconds时间内,收到其他主机发送的IGMP Membership Report报文,就会继续维护该组的组成员关系;
l 如果经过robust-value * seconds时间后,仍然没有收到任何主机发送的IGMP Membership Report报文,就认为该组已经超时,不再维护该组的组成员关系。
本配置只有当IGMP查询路由器运行在IGMP版本2时有效。如果主机运行的是IGMP版本1,离开某个组时可能并不发送IGMP Leave报文,此时本配置对该主机无效。
请在接口视图下进行下列配置。
l 配置发送IGMP指定组查询报文的时间间隔
表1-6 配置发送IGMP指定组查询报文的时间间隔
操作 |
命令 |
配置发送IGMP指定组查询报文的时间间隔 |
igmp lastmember-queryinterval seconds |
恢复时间间隔的缺省值 |
undo igmp lastmember-queryinterval |
缺省情况下,IGMP指定组查询报文的时间间隔为1秒。
l 配置发送IGMP指定组查询报文的次数
表1-7 配置发送IGMP指定组查询报文的次数
操作 |
命令 |
发送IGMP指定组查询报文的次数 |
igmp robust-count robust-value |
恢复报文次数为缺省值 |
undo igmp robust-count |
缺省情况下,发送IGMP指定组查询报文的次数为2次。
在共享网络上,即同一网段上有多个组播路由器时,由查询路由器(简称查询器)负责在接口上定期发送查询消息,如果在有效时间内,其他非查询器收不到查询器查询消息,就认为原查询器失效,自己可以充当查询器。
在IGMP版本1中,查询器的选择由组播路由协议决定;在IGMP版本2中,共享网段上IP地址最小的路由器充当查询器。
IGMP查询器存在时间是指当一路由器停止发送查询报文后,另一路由器取代其成为新的查询报文发送者的等待时间。
请在接口视图下进行下列配置。
表1-8 配置IGMP查询器存在时间
操作 |
命令 |
配置IGMP查询器存在时间 |
igmp timer other-querier-present seconds |
恢复查询器存在时间的缺省值 |
undo igmp timer other-querier-present |
缺省情况下,该值是IGMP查询消息间隔的2倍,一般为120秒。
从路由器接收到一条查询消息后,主机会为其所属的每个组播组都设置一个计时器,计时器的值在0到最大响应时间中随机选取,当其中任何一个计时器的值减为0时,主机就会发送该组播组的成员报告消息。
合理设置最大响应时间,可以使主机快速响应查询信息,路由器也就能快速地掌握组播组成员的存在状况。
请在接口视图下进行下列配置。
表1-9 配置IGMP最大查询响应时间
操作 |
命令 |
配置IGMP最大查询响应时间 |
igmp max-response-time seconds |
恢复最大查询响应时间到缺省值 |
undo igmp max-response-time |
最大响应时间的值愈小,路由器阻断组的速度愈快。实际中响应时间是1~25秒内的一个随机值。
缺省情况下,IGMP最大查询响应时间为10秒。
如果不限制路由器接口上IGMP组加入数量和路由器IGMP组加入总数量,在加入了大量的组后,就有可能耗尽路由器内存,导致路由器故障。
用户可以对路由器接口上IGMP组加入数量进行限制。路由器IGMP组加入总数量的限制由系统定义,不能通过配置命令改变。
请在接口视图下进行下列配置。
表1-10 配置接口上加入IGMP组的数量限制
操作 |
命令 |
配置接口上加入IGMP组的数量限制 |
igmp group-limit limit |
恢复缺省配置 |
undo igmp group-limit |
缺省情况下,接口上加入IGMP组的数量限制为512。
& 说明:
如果当前维护的IGMP组播组数量超过了指定的组播组上限,组播组上限命令不能配置成功;只有在指定的组播组上限小于当前维护的IGMP组播组的情况下,组播组上限命令才能配置成功。
通常情况下,运行IGMP的主机会对组播路由器的IGMP查询报文进行响应,如果由于某种原因无法响应,就可能导致组播路由器认为该网段没有该组播组的成员,从而取消相应的路径。
为避免这种情况的发生,可以将路由器的某个接口配置成为组播组成员,当从该接口收到IGMP查询报文时,由路由器进行响应,从而保证接口所在网段能够继续收到组播报文。对以太网交换机来说,可以配置交换机接口下的某个端口加入组播组。
请在相应视图下进行下列配置。
操作 |
命令 |
配置路由器加入组播组(VLAN接口视图下) |
igmp host-join group-address port interface-type interface-number [ to interface-type interface-number ] |
取消路由器作为组成员(VLAN接口视图下) |
undo igmp host-join group-address port interface-type interface-number [ to interface-type interface-number ] |
配置路由器加入组播组(以太网端口视图下) |
igmp host-join group-address vlan vlan-id |
取消路由器作为组成员(以太网端口视图下) |
undo igmp host-join group-address vlan vlan-id |
& 说明:
以上两种配置方法,结果是一样的,两种方法可任选其一。
缺省情况下,路由器不加入任何组播组。需要注意的是,指定的端口必须属于该接口,且该接口使能了IGMP协议或该VLAN上使能了IGMP snooping协议,否则配置不会起作用。
Secondary VLAN上不支持配置静态组播组,但用户可以配置在Isolate-user-VLAN上,起到与在Secondary vlan上配置静态组播组相同的作用。
通过此配置任务可以删除路由器所有接口的所有已加入的IGMP组,也可以删除特定接口上的所有已加入的IGMP组,或者删除特定接口上某个特定IGMP组地址或组地址网段。
请在用户视图下进行下列配置。
操作 |
命令 |
删除接口上已加入的IGMP组 |
reset igmp group { all | interface vlan-interface interface-number { all | group-address [ group-mask ] } } |
删除组后,如果再有IGMP成员资格报告消息,则接口可以再次加入相应的组。
在使能了IGMP功能的交换机上,可以在VLAN上配置ACL规则来限制某VLAN内允许或禁止加入指定的组播组。该特性是对收到的每一个IGMP加入报文进行过滤,根据加入报文的目的组地址与VLAN绑定的ACL规则,来决定该加入报文是通过还是丢弃。
通过在VLAN上设置组播组的过滤规则,来控制对组播组的访问,每个VLAN只能配置一个ACL规则,并且旧的ACL规则将被新配置的规则所取代。
请在VLAN视图下进行下列配置。
操作 |
命令 |
在指定VLAN上设置组播组的过滤规则 |
igmp group-policy acl-number |
取消指定VLAN上组播组过滤规则 |
undo igmp group-policy |
缺省情况下,不在VLAN上设置过滤规则,此时主机可以加入任一组播组。
在VLAN上配置组播组过滤规则时,规则里没有注明允许创建的组播组,都不允许创建。
注意:
l 在VLAN上绑定了一个不存在的ACL,或绑定的ACL没有配置规则的情况下,主机不能加入任何组播组。
l 组播组过滤规则不受ACL本身的限制。组播组过滤功能对指定VLAN内的所有成员都生效。
l 组播组过滤规则对本设备配置的静态组加入不生效。
在使能了IGMP功能的三层交换机上,具有快速离开属性的端口在收到IGMP leave报文后,系统将端口从所有同组的三层组播转发表的出端口上集中删除,从而使该端口脱离组播组,交换机停止向该端口转发组播数据。
请在以太网端口视图下或者系统视图下进行下列配置。
表1-14 启动/关闭IGMP 快速离开属性
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
在系统视图下启动IGMP快速离开属性 |
igmp fast-leave [ vlan { vlan-id [ to vlan-id ] } &<1-10> ] |
缺省情况下此功能关闭 |
进入以太网端口视图 |
interface interface-type interface-number |
- |
在以太网端口视图下启动IGMP快速离开属性 |
igmp fast-leave [ vlan { vlan-id [ to vlan-id ] } &<1-10> ] |
缺省情况下此功能关闭 |
关闭IGMP快速离开属性 |
undo igmp fast-leave [ vlan { vlan-id [ to vlan-id ] } &<1-10> ] |
- |
详细配置请参见本章节对应的命令手册。
& 说明:
l 在系统视图或是端口视图下的快速离开特性配置是各自独立的。
l 在系统视图下配置是对指定的所有VLAN内的端口生效,在端口视图下配置是对本端口在指定的VLAN内生效(如一个Trunk端口属于多个VLAN的情况)。
注意:
l 在VLAN不存在、端口不属于指定VLAN或者VLAN没有使能IGMP的情况下,虽然允许用户配置快速离开属性,但此配置不会生效。
l 必须全局使能组播路由命令multicast routing-enable,否则快速离开属性不可配置。
l 如果关闭全局组播路由,则配置的IGMP快速离开属性全部被清除。
l 在聚合端口条件下,只有配置在聚合主端口上的IGMP快速离开属性才允许生效,聚合从端口上的配置无效。
l 如果端口上有同组的IGMP版本1的主机加入或是配置了同组的静态主机(IGMP host-join),即使端口配置了IGMP快速离开属性,收到该组的IGMP Leave报文时仍不会快速离开。
在完成上述配置后,可在任意视图下执行display命令显示配置后IGMP的运行情况,通过查看显示信息验证配置的效果。
在相应视图下,执行debugging命令可对IGMP进行调试。
表1-15 IGMP显示和调试
操作 |
命令 |
显示IGMP组播组成员信息 |
display igmp group [ group-address | interface vlan-interface interface-number ] |
显示接口的IGMP配置和运行信息 |
display igmp interface [ vlan-interface interface-number ] |
打开IGMP调试信息开关 |
debugging igmp { all | event | host | packet | timer } |
关闭IGMP调试信息开关 |
undo debugging igmp { all | event | host | packet | timer } |
如图1-2,Switch B为末梢网络中的设备。要求配置IGMP Proxy,减少末梢网络的配置和管理工作,同时又不影响末梢网络的组播连接。
为了满足这个需求,需要做的配置如下:
l Switch A相应的接口上启动IGMP和PIM-DM。
l SwitchB上启动组播功能,VLAN-interface100和VLAN-interface200上配置了PIM,配置接口Vlan-interface200的代理接口为Vlan-interface100。
& 说明:
这里重点说明IGMP及IGMP Proxy的配置,其他配置不作说明。
图1-2 IGMP典型组网举例示意图
(1) 配置交换机Switch B
# 启动组播。
<SwitchB> system-view
System View: return to User View with Ctrl+Z.
[SwitchB] multicast routing-enable
# 创建VLAN 200、VLAN 100,并将相应的端口加入到指定的VLAN内。
具体配置请参见“接入分册”中的“VLAN配置”。
# 在接口Vlan-interface 200、Vlan-interface 100上启动IGMP及PIM-DM。
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface 200] ip address 22.22.22.1 24
[SwitchB-Vlan-interface 200] igmp enable
[SwitchB-Vlan-interface 200] pim dm
[SwitchB-Vlan-interface 200] igmp host-join 224.0.1.1 port Ethernet 3/1/8
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface 100] ip address 33.33.33.2 24
[SwitchB-Vlan-interface 100] igmp enable
[SwitchB-Vlan-interface 100] pim dm
[SwitchB-Vlan-interface 100] quit
# 配置接口Vlan-interface100为Vlan-interface 200的IGMP Proxy代理接口。
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface 200] igmp proxy Vlan-interface 100
(2) 配置交换机Switch A
# 启动组播。
<SwitchA> system-view
System View: return to User View with Ctrl+Z.
[SwitchA] multicast routing-enable
# 在接口Vlan-interface100上启动IGMP、PIM-DM。
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface 100] igmp enable
[SwitchA-Vlan-interface 100] pim dm
# 配置Vlan-interface100不把33.33.33.2作为PIM邻居。
[SwitchA-Vlan-interface 100] pim neighbor-policy 2001
[SwitchA-Vlan-interface 100] quit
[SwitchA] acl number 2001
[SwitchA-acl-basic-2001] rule deny source 33.33.33.2 0
[SwitchA-acl-basic-2001] rule permit source any
(3) 配置Receiver
Receiver首先跟组播源建立http连接,把组播源当前的几个节目(每个节目对应不同的组播地址,即组播组)列在客户端软件上。当选择某一个节目时,客户端软件主动发送IGMP报文加入该组播组,此时Receiver即可接收到相应的组播节目。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!