《IP组播(第1卷)》一2.10 探测

2.10 探测

在韦氏词典中,探测(Snoopnig)一词的解释为“(尤其)以偷偷摸摸或多管闲事的姿态关注或窥探”。当我们在组播中使用这个词时,它就是这个意思,只有“多管闲事”不太相符。当设备监测到网络中两台设备之间发送的会话或消息时,我们可以获得大量信息,这些信息可以用于将网络行为调整得更高效。在最近几年中,Cisco 大大提升了交换机各个组成部分的智能。现在交换机可以以线速执行三层服务、捕获分析、重写信息等。二层交换机上添加的智能特性可以提供除了查看目的MAC地址之外的更多功能;现在二层交换机能够深入查看消息,并根据OSI(开放式系统互联)参考模型第2~7层的信息做出转发决策。

2.10.1 IGMP探测

IGMP探测特性的作用顾名思义。网络中的组成部分(通常是二层交换机)会监测从其他设备发来的数据帧,对于这个特性来说,它监测的就是IGMP消息。在监测过程中,交换机会侦听路由器和主机发来的IGMP消息。在发现了设备并且确定了设备所感兴趣的GDA后,交换机会在CAM表中创建一个条目,将GDA与接口关联在一起。

交换机使用下列机制从路由器那里学习信息:

  • IGMP查询消息;
  • PIMv1和/或PIMv2 Hello。

接下来以图2-10所示的网络解释IGMP探测特性。

例2-4中展示出路由器生成的IGMP查询报告。

例2-4 IGMP查询数据包

Ethernet Packet: 60 bytes
      Dest Addr: 0100.5E00.0001,   Source Addr: 0C85.2545.9541
      Protocol: 0x0800

IP    Version: 0x4,  HdrLen: 0x6,  TOS: 0xC0 (Prec=Internet Contrl)
      Length: 32,   ID: 0x1FC5,   Flags-Offset: 0x0000
      TTL: 1,   Protocol: 2 (IGMP),   Checksum: 0x57A8 (OK)
      Source: 192.168.12.1,     Dest: 224.0.0.1

      Options: Length = 4
      Router Alert Option: 94 0000

IGMP  VersionType: 0x11,  Max Resp: 0x64,  Checksum: 0xEE9B (OK)

Version 2 Membership Query
      Group Address: 0.0.0.0

当交换机确定某个接口连接的是路由器后,它会在IGMP探测表中添加一个条目,这个条目指定了路由器连接的接口,详见例2-5。

例2-5 IGMP探测表

Switch#show ip igmp snooping mrouter
Vlan    ports
----    -----
  12    Gi0/12(dynamic)

在本例中,交换机学习到接口G0/12上连接了一台路由器。这个接口被当作组播路由器端口。对于组播路由器端口,交换机认为这个端口上连接了一台启用组播路由的路由器,这台路由器可以代替直连主机处理IGMP和PIM消息。在启用了IGMP的VLAN或网段中,应该总是有一个与其相关联的组播路由器端口。工程师可以使用命令 debug ip igmp snooping router来进行查看,这条命令的输出信息更深入地展示了这个过程,详见例2-6。

例2-6 命令debug ip igmp snooping router的输出信息

Switch#debug ip igmp snooping router
router debugging is on
01:49:07: IGMPSN: router: Received non igmp pak on Vlan 12, port Gi0/12
01:49:07: IGMPSN: router: PIMV2 Hello packet received in 12
01:49:07: IGMPSN: router: Is not a router port on Vlan 12, port Gi0/12
01:49:07: IGMPSN: router: Created router port on Vlan 12, port Gi0/12
01:49:07: IGMPSN: router: Learning port: Gi0/12 as rport on Vlan 12

从例2-6所示的输出内容中可以看出,交换机从G0/12接口收到了PIMv2 Hello数据包,并将这个端口的状态转换为路由器端口。

当交换机直连的主机希望加入一个组播组时,它会发送IGMP成员报告。在例2-7中,连接在端口G0/2上的主机希望接收224.64.7.7的组播流。工程师可以使用命令debug ip igmp snooping group来监控其中的行为。

例2-7 命令debug ip igmp snooping group的输出信息

Switch#debug ip igmp snooping group
router debugging is on
01:58:47: IGMPSN: Received IGMPv2 Report for group 224.64.7.7 received on Vlan 12,
  port Gi0/2
01:58:47: IGMPSN: group: Adding client ip 192.168.12.20, port_id Gi0/2, on vlan 12

从例2-7的输出内容中可以看出,连接在G0/2接口上的主机尝试连接组播组224.64.7.7。

工程师可以使用命令show ip igmp snooping groups来查看交换机中的条目,详见例2-8。

例2-8 命令show ip igmp snooping groups的输出信息

Switch#show ip igmp snooping groups
Vlan      Group                    Type      Version      Port List
-----------------------------------------------------------------------
12        224.0.1.40               igmp      v2           Gi0/12
12        224.64.7.7               igmp      v2           Gi0/2, Gi0/12

从例2-8展示的输出内容中可以看出每个组中关联的VLAN、组播组、IGMP版本和端口。

例2-9展示了主机(MAC地址为0x000F.F7B1.67E0)上生成的成员报告数据包。注意主机有意接收的组播组目的MAC地址和目的IP地址。IGMP探测特性确认的组播路由器端口条目,能够确保交换机将IGMP成员报告转发给组播路由器进行处理(如果必要的话)。下一节将介绍如何维护组成员。

例2-9 IGMP成员报告数据包

Ethernet Packet:  60 bytes
      Dest Addr: 0100.5E40.0707,  Source Addr: 000F.F7B1.67E0
      Protocol: 0x0800

IP   Version: 0x4,  HdrLen: 0x5,  TOS: 0xC0 (Prec=Internet Contrl)
     Length: 28,   ID: 0x0000,   Flags-Offset: 0x0000
     TTL: 1,   Protocol: 2 (IGMP),   Checksum: 0x051D (OK)
     Source: 192.168.12.20,     Dest: 224.64.7.7

IGMP VersionType: 0x16, Max Resp: 0x00, Checksum: 0x02B8 (OK)

Version 2 Membership Report
      Group Address: 224.64.7.7

例2-10的命令输出内容中展示出多个主机连接着多个组播组。

例2-10 命令show ip igmp snooping groups的输出信息

Switch#show ip igmp snooping groups
Vlan      Group                        Type      Version      Port List
-----------------------------------------------------------------------
12        224.0.1.40               igmp      v2           Gi0/15
12        224.64.7.7               igmp      v2           Gi0/1, Gi0/2,
                                                          Gi0/4, Gi0/15

2.10.2 维护组成员

当主机添加组播组,或者从组播组删除时,交换机会管理这个交互过程。交换机不会通知路由器有关这个组的任何添加和删除信息,除非离开的是最后一台主机。如果只有一台主机接收组播流量并且它也离开了组播组,交换机会马上向上游路由器发送一个组离开消息。这个消息中有趣的部分在于交换机会欺骗最后一个客户端的IP地址。仔细查看例2-11中的命令输出信息。

例2-11 IGMP离开消息

Ethernet Packet:  60 bytes
      Dest Addr: 0100.5E00.0002,  Source Addr: 0013.19C6.A60F
      Protocol: 0x0800

IP    Version: 0x4,  HdrLen: 0x6,  TOS: 0xC0 (Prec=Internet Contrl)
      Length: 32,   ID: 0x0000,   Flags-Offset: 0x0000
      TTL: 1,   Protocol: 2 (IGMP),   Checksum: 0x7745 (OK)
      Source: 192.168.12.40,     Dest: 224.0.0.2

      Options: Length = 4
      Router Alert Option: 94 0000

IGMP  VersionType: 0x17,  Max Resp: 0x00,  Checksum: 0x01B8 (OK)

Version 2 Leave Group
      Group Address: 224.64.7.7

这种行为的好处在于当最后一台设备离开组播组时,路由器无须等待计时器超时。注意,例2-11中数据包的源MAC地址,与例2-12中命令show interface Gi0/12的输出信息中显示的MAC地址相同。这是这个网段中的组播路由器接口。

例2-12 命令show interface的输出内容

Switch#show interface Gi0/12
GigabitEthernet0/12 is up, line protocol is up
  Hardware is Gigabit Ethernet, address is 0013.19C6.A60F (bia 0013.19C6.A60F)
  MTU 1500 bytes, BW 10000 Kbit/sec, DLY 1000 usec,

2.10.3 配置IP IGMP探测

在较新的Catalyst或Nexus系列交换机中,配置相当简单。具体命令如下所示。

C2970(config)#ip igmp snooping
最棒的是这个特性默认是启用的,因此工程师无须明确输入命令。工程师可以使用命令show ip igmp snooping来确认IGMP探测的功能,并验证具体的操作参数,详见例2-13。

例2-13 确认IGMP探测特性的功能和参数

Switch#show ip igmp snooping
Global IGMP Snooping configuration:
-------------------------------------------
IGMP snooping                : Enabled
IGMPv3 snooping (minimal)    : Enabled
Report suppression           : Enabled
TCN solicit query            : Disabled
TCN flood query count        : 2
Robustness variable          : 2
Last member query count      : 2
Last member query interval   : 1000

命令的输出信息有删减,IGMP探测信息将会按VLAN显示。

时间: 2024-10-26 00:11:41

《IP组播(第1卷)》一2.10 探测的相关文章

《IP组播(第1卷)》一第1章 IP组播入门1.1 组播解决了什么问题

第1章 IP组播入门 IP组播(第1卷) IP网络中有3种数据通信方式:单播.广播和组播.在开始深入探讨组播通信方式之前,我们先来理解单播和广播的基本组成部分,以此来建立一条基线. 单播通信位于OSI(开放式系统互联)模型的第3层,基于目的设备的IP地址进行转发.路由器会通过静态或动态的方式学到路由,然后通过查看目的IP地址来转发数据包.OSI第2层使用MAC(媒体访问控制)地址,以另一种机制在设备之间建立通信. 下面来看看图1-1.发送方正在向接收方A发送一个消息,这个消息的传输过程中需要用到

《IP组播(第1卷)》一第2章 网络访问和二层组播2.1 层的封装

第2章 网络访问和二层组播 IP组播(第1卷)第 1 章讨论了单播消息.广播消息和组播消息之间的区别.本章将深入探讨二层IP组播消息,以及它们是如何在二层域中传输的.本章的内容将包含二层域中组播功能的基本组成部分,以及组播的部署. 2.1 层的封装 在学习二层组播之前,我们必须先讨论数据包转发的基础概念,这样才能为这一过程建立一条基线.封装是OSI模型中的重要概念,在数据通信尤其是IP网络中起到重要的作用.封装是指通过一种方式,在OSI参考模型的每一层上添加相关信息,这些信息的作用是处理和转发数

《IP组播(第1卷)》一导读

前 言 IP组播(第1卷)本书包含了基本IP组播原理和路由技术,尤其是Cisco路由器和交换机使用的组播技术,其中切合实际地讨论了 IP 组播网络的常见特性.部署模型和实战经验,之后讨论了 Cisco IP组播网络在实施和排错时使用的命令和方法. 本书读者对象本书适用于所有为IP组播网络提供支持的专业人士.本书的目标读者为以下人士,网络管理员也会从本书包含的案例学习和特性解释中获得帮助: IP网络工程师和架构师: 网络操作技术员: 网络顾问: 安全专家: 融合专家和架构师. 目 录 第1章 IP

《IP组播(第1卷)》一1.4 三层组播是建立在TCP/IP协议栈中的

1.4 三层组播是建立在TCP/IP协议栈中的 IP组播是建立在TCP/IP协议栈中的.也就是说,传输组播数据帧和数据包所需的协议是由Internet工程任务组(IETF)进行控制的.IETF成员通过RFC发布和管理相关协议,也就是说IP组播协议是开放标准. 注释 组播协议IETF标准适用于IPv4和IPv6组播技术:但和其他IP协议一样,这并不意味着所有厂商处理组播的方式都是相同的,同时也不意味着所有组播协议的实施都能够与标准完美兼容. 使用TCP/IP协议栈也意味着IP组播隶属于互联网数字分

《IP组播(第1卷)》一2.3 组播数据帧的交换

2.3 组播数据帧的交换 二层交换机会根据目的MAC地址将数据帧发送到物理接口或逻辑接口.组播MAC地址与单播MAC地址是不同的,因为单播MAC地址应该是唯一的,它应该对应着唯一一个目的接口.组播MAC地址可能会对应着多个目的接口,这取决于有多少台设备请求接收这个IP组播流中的内容. 在二层交换机能够转发组播数据帧之前,它必须知道应该把消息发往哪些目的接口.它会在目的接口列表中记录需要接收这个组播数据帧的接口,这个列表中只包含那些注册了这个组播流的设备所连接的接口.工程师可以在目的接口列表中静态

《IP组播(第1卷)》一2.4 组的注册

2.4 组的注册 前文我们已经看到了,为了使本地网段和整个网络中的 IP 组播转发能够正常工作,交换机和网关路由器需要知道有哪些主机对组播组感兴趣,以及这些主机都连接在哪里.如果没有这些信息的话,唯一的做法只有在整个网络域中泛洪组播数据帧.这样做就破坏了使用 IP组播带来的好处. 主机组成员的注册和离开是个动态的过程.当有一台主机加入一个组播组时,交换机就没有必要再向这个网段持续无目的地转发组播数据包了,组成员也就确定了下来.管理网络中组播主机位置的唯一方法就是让组播主机组成员自己向网络中通告加

《IP组播(第1卷)》一2.2 MAC地址映射

2.2 MAC地址映射 传统以太网交换机(二层设备)负责处理以太网数据帧,传统路由器(三层设备)负责查看数据包,来决定如何处理这个消息.如第1章中讨论的,当设备发送的是广播数据帧时,目的地址代表所有设备,而单播消息的目的地址代表一个目的MAC地址. 如果发送方发送的是组播消息会发生什么?为了优化网络资源,以太网交换机也需要能够处理组播.这也是关键的地方.发送方设备必须将目的IP组播地址按照以下方式,转换成具体的MAC地址. 最高的25比特是官方为组播预留的MAC地址范围:0100.5E00.00

《IP组播(第1卷)》一1.5 重要的组播组和组的考量

1.5 重要的组播组和组的考量 网络中有很多组播组,每个组播组都是从更大范围的组播组中细分出来的.每个组地址块范围都对应一个具体的应用或范围.每个地址块的范围可以小到一个网段,或者大到企业组播网络,甚至全球Internet.在设计组播网络时,一定要理解定义了组播组的RFC和标准.组播组地址在组播域的"范围划分"中扮演了重要的角色.第5章会更详细地介绍相关概念. 注释 IANA负责管理全球范围内的地址分配,以及应用的协议分配.如果不对这些地址进行统一管理的话,将很难把这些地址用在实现协议

《IP组播(第1卷)》一2.11 交换机中的数据包复制过程

2.11 交换机中的数据包复制过程 几乎所有设备上要求能够支持的组播转发都是开放标准的,由IETF之类的组织起草的标准.但网络设备中数据包的实际转发行为则没有对应的开放标准.对于单播数据包传输也是如此.每个厂商,或者有时是每条产品线,实施的转发机制是区分每个平台的标准. IP组播转发的核心内容是数据包复制过程.数据包复制指的是在物理上复制某个数据包,并把复制的数据包从转发路径上的目的接口发送出去. 在每个平台上,复制过程的区别在于网络设备是在哪里完成的复制.Cisco的每个网络平台在处理这个过程

《IP组播(第1卷)》一1.3 组播数据包

1.3 组播数据包 如前所述,组播这种通信方式可以只通过一条数据流,将消息送到多个接收方.在运行Internet协议(IP)的以太网环境中,构成网络基础设施的设备主要是路由器和交换机,它们负责将单个数据包复制为多个数据包或消息,并高效地将这些数据包分发给有意接收这些消息的设备. 现在我们需要简要回顾开放式系统互联(OSI)模型,并解释组播在不同层中的应用.表1-1中列出了OSI模型的组成部分. 组播应用通常使用IP上的用户数据报协议(UDP).因此需要使用传输层,使用了传输层就不能没有网络层运行