网络管理员经常询问当组播源和组播接收器都位于同一VLAN上时,是否可以限制交换机上的组播流量,以及实现此目标需要满足哪些要求,特别是是否需要路由器。
答案是是,可以,并且在大多数情况下需要路由器。
注意:从Catalyst 6500/6000系列交换机上的CatOS 7.1及更高版本开始,可使用称为互联网组管理协议(IGMP)监听查询器的新功能。使用此功能,当组播源和所有接收方位于同一VLAN时,不再需要路由器来限制组播流量。IGMP监听查询器在未配置协议独立组播(PIM)和IGMP的VLAN内启用IGMP监听,因为组播流量不需要路由。
本文档的读者应具备以下方面的知识:
当组播源和所有接收方位于同一VLAN中时,限制交换机上组播流量的基本要求如下:
交换机必须启用思科组管理协议(CGMP)或互联网组管理协议(IGMP)监听。GARP组播注册协议(GMRP)是限制第2层设备上组播的另一种机制,此处不考虑。
路由器必须在源和接收方所在的VLAN中连接的接口上启用协议无关组播(PIM)。
如果使用CGMP,路由器必须在源和接收方所在的VLAN中连接的接口上启用CGMP。
注:如果只想限制单个VLAN上的组播,并且不打算将组播流量转发到其他接口或子网,则无需在路由器上启用组播路由(使用ip multicast-routing全局配置命令)(路由器会抱怨在路由器接口上启用PIM时必须启用组播路由,但此警告可在此应用中安全忽略)。
本文档介绍如何限制运行CatOS的Catalyst交换机上的组播流量。请参阅以下文档,以限制运行Cisco IOS®系统软件(本机模式)的Catalyst 4000和6000交换机上的组播流量:
了解和配置Catalyst 4000上的IGMP监听
在Catalyst 6500/6000上配置IGMP监听
要创建本文档中的示例,实验环境中使用了以下设备:
运行 Cisco IOS 12.0(7)W5(15d) 的 Catalyst 4908G-L3 交换路由器
运行Catalyst OS 5.5(2)的Catalyst 4003交换机
运行Catalyst OS 5.5(2)的Catalyst 6009交换机
运行Catalyst OS 5.5(2)的Catalyst 5509交换机
对于IGMP监听查询器功能,两台运行8.1(3)和7.6(2a)的catalyst 6500/6000系列交换机
另外两台路由器(本例中为Catalyst 2948G-L3和Cisco 7000),用作组播接收器(主机)
能够传输IP组播流的流量生成器(SmartBits 2000)
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
Catalyst交换机支持CGMP和IGMP监听,如下所示:
Catalyst 4000 系列:仅CGMP
Catalyst 6000 系列:仅IGMP Snooping
Catalyst 5000 系列:IGMP监听(使用带NFC或NFC II的管理引擎III/IIIF,或使用管理引擎IIG/IIIG)和CGMP
有关详细信息(包括特定硬件和软件要求),请参阅Catalyst 4000/5000和Catalyst 6000的组播文档。
本文档中的配置在隔离的实验室环境中实施。在使用任何配置或命令之前,您必须确保知道其可能对网络带来的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
此示例显示一个基本网络环境,其中组播源和组播接收器位于同一VLAN中。期望的行为是交换机将组播转发限制为仅限于请求组播流的端口。
本示例的网络拓扑如图1所示。
图 1:CGMP示例第1部分
流量生成器正在向VLAN 50(Catalyst 4003的端口3/19)上的组地址239.10.10.10发送1 Mbps的组播UDP数据包流。
4908G-L3路由器在VLAN 50的端口3/1上连接到Catalyst 4003。以下配置应用于GigabitEthernet1接口(请注意,没有全局配置ip multicast-routing命令,因为路由器未在其接口上路由组播流量):
interface GigabitEthernet1 ip address 192.168.50.11 255.255.255.0 ip pim dense-mode ip cgmp
Catalyst 4003交换机启用了CGMP和CGMP快速离开(set cgmp enable和set cgmp leave enable)。
有两台主机(组播接收器)连接到Catalyst 4003。主机A连接在VLAN 50的端口3/3上。主机B连接在VLAN 50的端口3/12上。这些主机实际上是配置为终端站的路由器(即,未配置路由或其他类似功能)。 主机A的接口配置了IP地址192.168.50.13/24,而主机B的接口配置了IP地址192.168.50.75/24。在本示例后面的部分中,主机将使用ip igmp join-group接口配置命令加入组播组。
当流量生成器向VLAN 50中的组地址239.10.10.10传输时,Catalyst 4908G-L3的输出如下,但交换机上没有接收器:
4908g-l3# show ip pim interface Address Interface Version/Mode Nbr Query DR Count Intvl 192.168.50.11 GigabitEthernet1 v2/Dense 0 30 192.168.50.11 4908g-l3#show ip igmp interface gig 1 GigabitEthernet1 is up, line protocol is up Internet address is 192.168.50.11/24 IGMP is enabled on interface Current IGMP version is 2 CGMP is enabled on interface IGMP query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP max query response time is 10 seconds Last member query response interval is 1000 ms Inbound IGMP access group is not set IGMP activity: 2 joins, 1 leaves Multicast routing is enabled on interface Multicast TTL threshold is 0 Multicast designated router (DR) is 192.168.50.11 (this system) IGMP querying router is 192.168.50.11 (this system) Multicast groups joined: 224.0.1.40 queue_counter 2579 periodic_counter 77065 dmvrp_counter 0 timer_couter 77065 ast ray 0 4908g-l3# show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.10.10.10), 00:02:15/00:02:59, RP 0.0.0.0, flags: DJC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet1, Forward/Dense, 00:02:15/00:00:00 (192.168.50.50, 239.10.10.10), 00:02:16/00:00:43, flags: PCT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
注意粗体输出:
show ip pim interface输出显示,IP地址为192.168.50.11的GigabitEthernet1接口运行PIM-DenseMode(PIM-DM)。
show ip igmp interface gig 1命令显示接口上已启用IGMP和CGMP,且PIM在接口上运行。
show ip mroute命令显示,路由器具有239.10.10.10的(源,组)条目,源自192.168.50.50(流量生成器)。 请注意,传出接口列表为Null。这是因为路由器实际上并未在其接口间执行组播路由。它仅用于监控VLAN 50中的IGMP加入和离开,以及向交换机发送CGMP消息。
以下输出来自Catalyst 4003交换机,流量生成器在该交换机上向VLAN 50中的组地址239.10.10.10传输,但交换机上没有接收器:
4003> (enable) show cgmp leave CGMP: enabled CGMP leave: enabled 4003> (enable) show multicast router Port Vlan ---------- ---------------- 3/1 50 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable 4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1 Total Number of Entries = 2 4003> (enable)
注意粗体输出:
show cgmp leave输出显示交换机上已启用CGMP和CGMP快速离开。
show multicast router命令显示,交换机知道VLAN 50(4908G-L3)中端口3/1上有一台组播路由器。
show multicast group 命令显示,交换机将发往VLAN 50中MAC地址01-00-5e-0a-0a-0a(239.10.10.10映射到的组播MAC地址)的流量限制为仅端口3/1(组播路由器端口)。
现在,将主机A和主机B配置为组地址239.10.10.10的组播接收器。这是使用ip igmp join-group接口配置命令完成的。
主机A(连接在FastEthernet13接口上的Catalyst 2948G-L3):
HostA# configure terminal Enter configuration commands, one per line. End with CNTL/Z. HostA(config)# interface fastethernet13 HostA(config-if)# ip igmp join-group 239.10.10.10 HostA(config-if)# ^Z HostA# show ip igmp group IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 239.10.10.10 FastEthernet13 00:00:05 never 192.168.50.13 HostA#
主机B(连接在Ethernet1/0接口上的Cisco 7000):
HostB# configure terminal Enter configuration commands, one per line. End with CNTL/Z. HostB(config)# interface ethernet1/0 HostB(config-if)# ip igmp join-group 239.10.10.10 HostB(config-if)# ^Z HostB# show ip igmp group IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 239.10.10.10 Ethernet1/0 00:00:10 never 192.168.50.75 HostB#
主机A和主机B加入组播组239.10.10.10后,Catalyst 4003交换机的输出如下:
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/3,3/12 Total Number of Entries = 2 4003> (enable)
请注意,交换机现在正在转发VLAN 50中端口3/3(主机A)和端口3/12(主机B)上01-00-5e-0a-0a-0a(239.10.10.10)的流量。
现在,主机A离开组播组:
HostA# configure terminal Enter configuration commands, one per line. End with CNTL/Z. HostA(config)# interface fastethernet13 HostA(config-if)# no ip igmp join-group 239.10.10.10 HostA(config-if)# ^Z HostA#
交换机从01-00-5e-0a-0a-0a的组播转发表中删除端口3/3:
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/12 Total Number of Entries = 2 4003> (enable)
现在,流量生成器开始发送另外1 Mbps组播流,目的地为239.85.85.85(MAC地址01-00-5e-55-55-55)。 请参阅图 2。
图 2:CGMP示例第2部分
以下输出显示Catalyst 4908G-L3上的组播路由表:
4908g-l3# show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.85.85.85), 00:01:35/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.85.85.85), 00:01:36/00:01:23, flags: PT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: Null (*, 239.10.10.10), 00:01:36/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.10.10.10), 00:01:36/00:01:23, flags: PT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
请注意,每个组播流都有一个(S,G)和一个(*,G)条目。
在Catalyst 4003上,组播转发表如下所示:
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/12 50 01-00-5e-55-55-55 3/1 Total Number of Entries = 3 4003> (enable)
注意,交换机在VLAN 50的端口3/1(路由器端口)上添加了01-00-5e-55-55-55条目。
现在,主机A和主机B都使用ip igmp join-group 239.85.85.85接口配置命令加入239.85.85.85组。以下是主机A和主机B加入组后的交换机组播转发表:
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/12 50 01-00-5e-55-55-55 3/1,3/3,3/12 Total Number of Entries = 3 4003> (enable)
注意,交换机在VLAN 50中01-00-5e-55-55-55的条目中添加了端口3/3和3/12。
此示例显示另一个基本网络环境,其中组播源和组播接收器都位于同一VLAN中。期望的行为是交换机将组播转发限制为仅限于请求组播流的端口。
本示例的网络拓扑如图3所示。
图 3:IGMP监听示例第1部分
流量生成器正在向VLAN 50(Catalyst 6009的端口3/13)上的组地址239.10.10.10发送1 Mbps的组播UDP数据包流。
4908G-L3路由器在端口1/1上连接到Catalyst 6009。该链路配置为VLAN中继。以下配置应用于GigabitEthernet1.50子接口(请注意,没有全局配置ip multicast-routing命令,因为路由器未在其接口上路由组播流量):
interface GigabitEthernet1.50 encapsulation isl 50 ip address 192.168.50.11 255.255.255.0 ip pim dense-mode
请注意,在第2层交换机上仅使用IGMP监听时,不需要ip cgmp接口配置命令。
Catalyst 6009和Catalyst 5509交换机启用了IGMP监听和IGMP快速离开(设置igmp enable和设置igmp fastleave enable)。 Catalyst 6009通过端口4/1上的中继链路连接到端口2/1上的Catalyst 5509。
本例中有两台主机(组播接收器)。主机A连接到VLAN 50中端口3/37上的Catalyst 6009。主机B连接到VLAN 50中端口3/9上的Catalyst 5509。与CGMP示例中一样,这些主机实际上是配置为终端站的路由器(即,未配置路由或其他类似功能)。 主机A的接口配置了IP地址192.168.50.13/24,而主机B的接口配置了IP地址192.168.50.75/24。在本示例后面的部分中,主机将使用ip igmp join-group接口配置命令加入组播组。
当流量生成器向VLAN 50中的组地址239.10.10.10传输时,Catalyst 4908G-L3的输出如下,但交换机上没有接收器:
4908g-l3# show ip pim interface Address Interface Version/Mode Nbr Query DR Count Intvl 192.168.50.11 Gi1.50 v2/Dense 0 30 192.168.50.11 4908g-l3# show ip igmp interface gig1.50 Gi1.50 is up, line protocol is up Internet address is 192.168.50.11/24 IGMP is enabled on interface Current IGMP version is 2 CGMP is disabled on interface IGMP query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP max query response time is 10 seconds Last member query response interval is 1000 ms Inbound IGMP access group is not set IGMP activity: 3 joins, 2 leaves Multicast routing is enabled on interface Multicast TTL threshold is 0 Multicast designated router (DR) is 192.168.50.11 (this system) IGMP querying router is 192.168.50.11 (this system) Multicast groups joined: 224.0.1.40 queue_counter 85 periodic_counter 4777 dmvrp_counter 0 timer_couter 4777 astray 0 4908g-l3# show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.10.10.10), 00:02:10/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.10.10.10), 00:02:11/00:00:48, flags: PT Incoming interface: GigabitEthernet1.50, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
下面将进一步详细解释以粗体显示的输出。
show ip pim interface输出显示IP地址为192.168.50.11的GigabitEthernet1接口运行PIM-DenseMode(PIM-DM)。
show ip igmp interface gig 1.50 命令显示IGMP已启用,CGMP已在接口上禁用,并且PIM正在接口上运行。
show ip mroute命令显示,路由器具有239.10.10.10的(源,组)条目,源自192.168.50.50(流量生成器)。 请注意,传出接口列表为Null。这是因为路由器实际上并未在其接口间执行组播路由。它仅用于监控VLAN 50中的IGMP加入和离开。
以下输出来自Catalyst 6009交换机,流量生成器在该交换机上向VLAN 50中的组地址239.10.10.10传输,但交换机上没有接收器:
Cat6009> (enable) show multicast protocols status IGMP enabled IGMP fastleave enabled RGMP disabled GMRP disabled Cat6009> (enable) show multicast router Port Vlan ---------- ---------------- 1/1 50 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1 Total Number of Entries = 2 Cat6009> (enable)
下面将进一步详细解释以粗体显示的输出。
show multicast protocols status输出显示交换机上已启用IGMP和IGMP快速离开。
show multicast router命令显示,交换机知道VLAN 50(4908G-L3)中端口1/1上有一台组播路由器。
show multicast group命令显示,交换机将发往VLAN 50中MAC地址01-00-5e-0a-0a-0a(239.10.10.10映射到的组播MAC地址)的流量限制为仅端口1/1(组播路由器端口)。
以下输出来自Catalyst 5509交换机,流量生成器在该交换机上向VLAN 50中的组地址239.10.10.10传输,但交换机上没有接收器:
Cat5509> (enable) show multicast protocols status CGMP disabled IGMP enabled IGMP fastleave enabled RGMP disabled GMRP disabled Cat5509> (enable) show multicast router Port Vlan ---------- ---------------- 2/1 50 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable Cat5509> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- Total Number of Entries = 0 Cat5509> (enable)
下面将进一步详细解释以粗体显示的输出。
show multicast protocols status输出显示交换机上已启用IGMP和IGMP快速离开。
show multicast router命令显示,交换机知道VLAN 50中端口2/1上有一台组播路由器(这是到6009交换机的中继)。
show multicast group命令显示交换机不知道任何组播组。这是因为6009已经将组播流量限制为仅限路由器端口,因此5509不接收发往VLAN 50中MAC地址01-00-5e-0a-0a-0a的流量。
现在,输入ip igmp join-group 239.10.10.10接口配置命令,将主机A(在端口3/37的VLAN 50中连接到6009)配置为组地址239.10.10.10的组播接收器。
主机A加入组播组239.10.10.10后,Catalyst 6009交换机的输出如下:
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,3/37 Total Number of Entries = 2 Cat6009> (enable)
请注意,端口3/37已添加到组播组的组播转发表中。Catalyst 5509上的转发表未更改(无组播条目),因为Catalyst 6009仍然阻止组播流量通过中继链路到5509。
现在,通过输入ip igmp join-group 239.10.10.10接口配置命令,将主机B(在端口3/9的VLAN 50中连接到5509)配置为组地址239.10.10.10的组播接收器。
主机B加入组播组239.10.10.10后,Catalyst 6009交换机的输出如下:
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,3/37,4/1 Total Number of Entries = 2 Cat6009> (enable)
请注意,Catalyst 6009已将端口4/1(中继端口到Catalyst 5509)添加到组播组的转发表中。
主机B加入组播组239.10.10.10后,Catalyst 5509交换机的输出如下:
Cat5509> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-0a-0a-0a 2/1,3/9 Total Number of Entries = 1 Cat5509> (enable)
请注意,Catalyst 5509已为组播组(MAC 01-00-5e-0a-0a-0a)添加了组播转发条目,并且包括中继端口(2/1)和主机B端口(3/9)。
现在,主机A离开组播组(使用no ip igmp join-group 239.10.10.10接口配置命令)。
6009从01-00-5e-0a-0a-0a的组播转发表中删除端口3/37:
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,4/1 Total Number of Entries = 2 Cat6009> (enable)
5509组播转发表保持不变。
现在,流量生成器开始向组地址239.85.85.85(MAC地址01-00-5e-55-55-55)传输第二个1 Mbps的组播UDP数据包流。 请参阅图 4。
图 4:IGMP监听示例第2部分
4908G-L3为新组地址创建(*,G)和(S,G)条目:
4908g-l3# show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.85.85.85), 00:00:37/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.85.85.85), 00:00:38/00:02:21, flags: PT Incoming interface: GigabitEthernet1.50, RPF nbr 0.0.0.0 Outgoing interface list: Null (*, 239.10.10.10), 00:13:44/00:02:59, RP 0.0.0.0, flags: DJC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet1.50, Forward/Dense, 00:13:44/00:00:00 (192.168.50.50, 239.10.10.10), 00:00:38/00:02:21, flags: PCT Incoming interface: GigabitEthernet1.50, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
6009为新组播MAC地址创建仅源转发条目,该地址仅包括VLAN 50中的组播路由器端口(1/1):
t6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,4/1 50 01-00-5e-55-55-55 1/1 Total Number of Entries = 3 Cat6009> (enable)
现在,主机A和主机B使用ip igmp join-group 239.85.85.85接口配置命令加入239.85.85.85组。
主机A和主机B加入组播组239.85.85.85后,Catalyst 6009交换机的输出如下:
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,4/1 50 01-00-5e-55-55-55 1/1,3/37,4/1 Total Number of Entries = 3 Cat6009> (enable)
注意,交换机在VLAN 50中01-00-5e-55-55-55的条目中添加了端口3/37(主机A)和端口4/1(到5509的中继)。
主机A和主机B加入组播组239.85.85.85后,Catalyst 5509交换机的输出如下:
Cat5509> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-0a-0a-0a 2/1,3/9 50 01-00-5e-55-55-55 2/1,3/9 Total Number of Entries = 2 Cat5509> (enable)
请注意,交换机在VLAN 50中添加了01-00-5e-55-55-55的条目,并添加了端口2/1(6009的中继)和端口3/9(主机B)。
以前,当源和接收方位于同一VLAN中,并且您希望确保组播流量仅发送到对流量感兴趣的接收方时,需要在与需要使用的VLAN和CGMP或IGMP监听对应的路由器接口上启用PIM。
自Catalyst 6500/6000系列交换机上的CatOS版本7.1起,有一项称为IGMP监听查询器的新功能。此功能在未配置PIM和IGMP的VLAN中启用IGMP监听,因为组播流量不需要发送到任何其他VLAN。如果VLAN上没有组播路由器,您希望组播流量在源和接收方之间传输,则需要启用IGMP监听查询器功能,才能使此功能正常工作。
当为特定VLAN配置IGMP查询器功能时,交换机每125秒发送一次IGMP一般查询,并侦听来自其他交换机的其他一般查询。当有多台交换机为特定VLAN启用了IGMP查询器时,会有一个选举过程来确定哪些交换机将继续充当查询器。其他已丢失选举的交换机,请启动计时器,如果在此期间没有听到任何查询,将重新选举新的查询器。
两台Catalyst 6000交换机(一台运行CatOS软件版本8.1(3),另一台运行CatOS软件版本7.6(2a))用于测试此功能。拓扑如下所示。
图 5:IGMP查询器示例
源和接收方都在VLAN 9上。IGMP查询器在两台交换机上都启用。
Didju (enable) set igmp querier enable 9 IGMP querier is enabled for VLAN(s) 9 Cust (enable) set igmp querier enable 9 IGMP querier is enabled for VLAN(s) 9
此配置已足够使此功能正常工作,但仍可进行一些微调。
Cust (enable) set igmp querier 9 ? qi Query Interval for the vlan(s) oqi Other Querier Interval for the vlan(s)
Query Interval(默认为125秒)指定被选举查询器的交换机发送IGMP一般查询的频率。
默认为300秒的Other Querier Interval指定处于非查询器状态的交换机等待查询器交换机发出常规查询的时间量。如果在配置的时间间隔内未从所选查询器交换机接收常规查询,则候选查询器交换机将成为查询器交换机。此功能类似于“死计时器”。
要检查两台交换机上IGMP查询器的当前状态,请执行以下操作:
Cust (enable) show igmp querier information 9 VLAN Querier State Query Tx Count QI (seconds) OQI (seconds) ---- --------------------- -------------- ------------ ------------- 9 QUERIER 4 125 300 Cust (enable) Didju (enable) show igmp querier information VLAN Querier Address Querier State Query Tx Count QI (sec) OQI (sec) ---- --------------- --------------------- -------------- -------- -------- 9 0.0.0.0 NON-QUERIER 0 125 300 Didju (enable)
从上述输出中,您可以看到名为“Cust”的交换机已被选举为查询器,查询间隔为125秒,非查询器上的“dead timer”为300秒。
在本示例中,组播源将流量发送到组239.10.10.10,该组在第2层对应于MAC地址01-00-5E-0A-0A-0A。
现在检查IGMP添加到组播组的端口。
Didju (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 9 01-00-5e-0a-0a-0a 2/7-8 Total Number of Entries = 1 Didju (enable) !--- Port 2/7 is the port connected to PC 1 and !--- Port 2/8 connects to Cust, the second 6000.
在Cust上,您会看到以下内容:
Cust (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 9 01-00-5e-0a-0a-0a 3/13-14 Total Number of Entries = 1 Cust (enable) !--- Port 3/13 connects to PC 2 and 3/14 to Didju.
在show multicast router命令中,您会看到执行IGMP查询的路由器所在的位置。
在Cust上,选为IGMP查询器的交换机不显示输出,如下所示。
Cust (enable) show multicast router Port Vlan -------------- ---------------- Total Number of Entries = 0 '*' - Configured '+' - RGMP-capable '#' - Channeled Port '$' - IGMP-V3 Router '@' - IGMP-Querier Router Cust (enable)
在第二台交换机Didju上,可以看到以下内容:
Didju (enable) show multicast router Port Vlan -------------- ---------------- 2/7 @ 9 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable '#' - Channeled Port '$' - IGMP-V3 Router '@' - IGMP-Querier Router Didju (enable)
在这里,组播路由器端口是端口2/7(连接到客户的端口),通过“@”符号,它表示正在使用IGMP查询器功能。