Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

示例:配置 IGMP 窥探

了解组播窥探

路由器等网络设备主要在数据包级别或第 3 层操作。网桥或 LAN 交换机等其他网络设备主要在帧级别或第 2 层操作。组播功能主要在数据包级别 3 层,但是有一种方法IP 组播将第 3 层组地址映射至帧级别的第 2 层 MAC 组播组地址。

路由器可同时处理第 2 层和第 3 层寻址信息,因为必须处理帧及其地址才能访问内部封装的数据包。路由器可以运行 PIM 或 IGMP 等第 3 层组播协议,并确定在何处转发组播内容,或者当接口上的主机加入或离开组时。但是,网桥和 LAN 交换机作为第 2 层设备,不应访问其帧承载的数据包内的组播信息。

那么,网桥和其他第 2 层设备如何确定接口上的设备何时加入或离开组播树,或者连接 LAN 上的主机是否希望接收特定组播组的内容?

答案是第 2 层设备实施组播窥探。组播窥探是一种常规术语,适用于第 3 层数据包内容上的第 2 层设备"窥探"过程,以确定要处理或转发帧的操作。还有更具体的窥探形式,例如 IGMP 窥探或 PIM 窥探。所有情况下,窥探都涉及配置为在 2 层发挥作用的设备,可访问正常"禁止"第 3 层(数据包)信息。窥探使组播在这些设备中更加高效。

了解 IGMP 窥探

对于第 2 层设备(例如 瞻博网络 MX 系列以太网服务路由器)来说,窥探是一种常规方法,用于第 3 层数据包内容实施一系列"窥探"过程,以确定要采取哪些操作来处理或转发帧。组播一同使用更具体的窥探形式,例如互联网组成员协议 (IGMP) 窥探或协议无关组播 (PIM) 窥探。

第 2 层设备(LAN 交换机或网桥)处理组播数据包,包含数据包的帧与第 3 层设备(路由器)处理广播的方式相同。因此,第 2 层交换机将数据包(帧)的副本转发至交换机其他每个网络接口(均位于转发状态),以处理具有组播目标 媒体访问控制(地址) (MAC) 地址的到达帧。

但是,此方法(在设备可以任何地方发送组播帧)并不是最高效的网络带宽使用,特别是 IPTV 应用程序。IGMP 窥探功能,通过"窥探"交换机接口收到的 IGMP 数据包,并构建类似于组播路由器在 3 层网络中构建的组播数据库。利用此数据库,交换机只能将组播信息流转发到具有相关接收方的下游接口上,而此技术允许更有效地利用网络带宽。

您可为路由器上的每个网桥配置 IGMP 窥探。无限定学习的桥接实例只有一个学习域。对于具有限定学习的桥接实例,窥探将在桥接的每个学习域中单独运行。也就是说,IGMP 窥探和组播转发将在桥接的每个学习域中独立进行。

此讨论侧重于无限定学习的桥接实例(设备上构成一个学习域的实例)。因此,提及的所有接口都是桥接或 VPLS 实例的逻辑接口。

讨论 IGMP 窥探时,几个相关概念非常重要:

  • 网桥或 VPLS 实例接口是组播路由器接口或主机侧接口。

  • IGMP 窥探支持代理模式或不代理模式。

注意:

使用集成路由和桥接 (IRB) 时,如果路由器是 IGMP 查询器,则任何第 2 层接口上收到的任何离开消息都将在所有第 2 层接口上导致出现特定于组的查询(因此,可能在所有第 2 层接口上收到某些相应的报告)。但是,如果部分第 2 层接口也是路由器(第 3 层)接口,那么其他第 2 层接口中的报告和离开将不会在这些接口上转发。

如果 IRB 接口在组播转发缓存条目内用作传出接口(由路由进程确定),则输出接口列表将扩展为相应网桥中第 2 层接口的子集。根据桥接的窥探过程安装的组播转发缓存条目,子集基于窥探组播成员信息。

如果未配置窥探,IRB 输出接口列表将扩展为桥接中所有第 2 层接口。

该Junos OS在虚拟交换机的 VPLS 配置中不支持 IGMP 窥探。此配置在CLI。

注意:

AE 接口支持 IGMP 窥探,但是 AE 接口与 IRB 接口组合时不受支持。

IGMP 窥探接口和转发

IGMP 窥探将设备接口划分为组播路由器接口和主机端接口。组播路由器接口是组播路由器方向的接口。如果网桥上的接口至少满足以下条件之一,则被视为组播路由器接口:

  • 静态配置为桥接实例中的组播路由器接口。

  • 接口上将接收 IGMP 查询。

不是组播路由器接口的所有其他接口都被视为主机端接口。

在已配置 IGMP 窥探的桥接接口上接收的任何组播信息流都将根据以下规则进行转发:

  • 任何 IGMP 数据包都发送至 路由引擎以用于窥探。

  • 目标地址 224.0.0/24 的其他组播流量会泛洪到网桥的其他所有接口上。

  • 其他组播信息流将发送至所有组播路由器接口,但仅发送至具有有兴趣接收组播组的主机侧接口。

IGMP 窥探和代理

如果没有代理协议,IGMP 窥探不会生成或引入查询和报告。它只会从所有接口(包括组播路由器接口)接收"窥探"报告,以构建其状态和组 (S,G) 数据库。

如果没有代理,IGMP 消息将按如下方式处理:

  • 查询— 在组播路由器接口上收到的所有常规和特定于组的 IGMP 查询消息将转发至网桥上的所有其他接口(组播路由器接口和主机端接口)。

  • 报告 — 在桥接的任何接口上收到的 IGMP 报告将转发到其他组播路由器接口。如果此组存在组播路由条目,则接收接口将添加为该组的接口。此外,还会为该接口上的组设置组计时器。如果此计时器到期(即 IGMP 组计时器期间没有此组的报告),则接口将作为该组的接口移除。

  • 离开 — IGMP 将桥接的任何接口上接收的消息转发到桥接上的其他组播路由器接口。"离开组"消息可减少组播路由器在主机组中不再有成员时停止转发组播信息流的时间。

代理窥探减少了发送至 IGMP 路由器的 IGMP 报告数量。

注意:

配置代理窥探后,IGMP 路由器将无法执行主机跟踪。

作为其主机端接口的代理,代理模式下的 IGMP 窥探可回复其从组播路由器接口上的 IGMP 路由器收到的查询。在主机端接口上,代理模式下的 IGMP 窥探可作为 IGMP 路由器,在这些接口上发送常规和组特定查询。

注意:

只有组特定查询才由 IGMP 窥探直接生成。从组播路由器接口收到的常规查询将泛滥至主机侧接口。

IGMP 窥探生成的所有查询均使用 0.0.0.0 作为源地址发送。此外,IGMP 窥探生成的所有报告均会以 0.0.0.0 作为源地址发送,除非有配置要使用的源地址。

代理模式在组播路由器接口上的功能与在主机端接口上的功能不同。

组播路由器接口和 IGMP 窥探代理模式

在组播路由器接口上,作为对 IGMP 查询的回应,代理模式下的 IGMP 窥探可发送报告,其中包含在桥接所有主机侧接口上学习的组的聚合信息。

除了回复查询,代理模式下的 IGMP 窥探也转发所有查询、报告,以及将组播路由器接口上收到的所有查询、报告转发至其他组播路由器接口。IGMP 窥探可保留此接口上学习的成员信息,但不发送有关在此接口上接收的保留消息的特定于组的查询。如果定时器持续时间内没有同一组的报告,则只需将在此接口上学习的组进行计时。

注意:

对于所有组播路由器接口上的主机,可生成常规和组特定查询的 IGMP 路由器,而非 IGMP 窥探代理。

主机侧接口和 IGMP 窥探代理模式

代理模式下的 IGMP 窥探不会在主机端接口上发送报告。IGMP 窥探会处理在这些接口上收到的报告,当在接口上收到离开消息时,会向主机端接口发送特定于组的查询。主机端接口不生成定期常规查询,而是从组播路由器接口接收的转发或泛滥常规查询。

如果从主机侧接口卸下组,而这是该组的最后一个主机侧接口,将发送一个离开至组播路由器接口。如果在主机侧接口上接收组报告,这是该组的第一个主机端接口,将报告发送至所有组播路由器接口。

IGMP 窥探和桥接域

VLAN 上的 IGMP 窥探只允许用于传统 vlan id 所有 案例。其他情况下,有一个特定桥接域配置用于确定 IGMP 窥探的 VLAN 特定配置。

配置 IGMP 窥探

要配置互联网组管理协议 (IGMP) 窥探,请包括 igmp-snooping 语句:

您可以在以下层次结构级别中包括此语句:

  • [编辑桥接 bridge-domain-name 域协议]

  • [编辑路由实例 routing-instance-name 桥接域 bridge-domain-name 协议]

默认情况下,IGMP 窥探不会启用。在 VLAN 级别配置的语句仅适用于该特定 VLAN。

配置 VLAN 特定 IGMP 窥探参数

除了语句之外,配置的所有 IGMP 窥探语句都可以在 VLAN 级别使用同一语句 igmp-snooping traceoptions 进行限定。要配置 VLAN 级别的 IGMP 窥探参数,请包括 vlan 语句:

您可以在以下层次结构级别中包括此语句:

  • [edit bridge-domains bridge-domain-name protocols igmp-snooping]

  • [edit routing-instances routing-instance-name bridge-domains bridge-domain-name protocols igmp-snooping]

示例:配置 IGMP 窥探

此示例说明了如何配置 IGMP 窥探。IGMP 窥探可以减少来自多云应用程序的IP 组播信息流。

要求

此示例具有以下硬件组件:

  • 一个 MX 系列路由器

  • 用作组播路由器的一个第 3 层设备

开始之前:

概述和拓扑

IGMP 窥探控制交换网络中组播流量。如果未启用 IGMP 窥探,第 2 层设备将广播其所有端口的组播流量,即使网络上主机不希望组播信息流也一样。启用 IGMP 窥探后,第 2 层设备将监控 IGMP 加入,并保留从每个已连接主机发送到组播路由器的消息。这使得第 2 层设备能够跟踪组播组和关联成员端口。第 2 层设备使用这些信息做出明智决策,并且仅将组播流量转发至预期的目标主机。

此示例包含以下语句:

  • 代理—允许第 2 层设备主动过滤 IGMP 数据包,从而降低组播路由器上的负载。将上游加入和离开标题朝组播路由器进行过滤,以便组播路由器为组提供单个条目,而不管加入组的活动侦听程序有多少。当侦听程序离开组时,其他侦听程序保留在组中时,将过滤离开消息,因为组播路由器不需要此信息。从路由器的角度来看,组的状态保持不变。

  • 立即退出—当只有一台 IGMP 主机连接时,该语句使组播路由器可立即从接口中删除组成员关系,并抑制发送组播组的任何特定于组的 immediate-leave 查询。

    在 IGMPv2 接口上配置此功能时,请确保 IGMP 接口只连接了一个 IGMP 主机。如果一台 IGMPv2 主机通过同一接口连接到 LAN,并且一台主机发送一条离开消息,则路由器会从组播组中删除接口上的所有主机。路由器将失去与组播组中正确保留的主机的接触,直到它们发送加入请求以响应来自路由器的下一个通用组播侦听查询。

    在运行 IGMP 版本 3 (IGMPv3) 窥探的路由器上启用 IGMP 窥探时,路由器收到带 BLOCK_OLD_SOURCES 类型的报告后,路由器会抑制发送组和源查询,但依靠 Junos OS 主机跟踪机制来确定是否从接口中删除特定源组成员。

  • 查询间隔— 允许您配置 IGMP 查询器路由器发送常规主机查询消息以请求成员信息的间隔,来更改在子网上发送的 IGMP 消息数量。

    默认情况下,查询间隔为 125 秒。您可以配置 1 到 1024 秒范围内的任何值。

  • 查询-最后成员间隔 — 允许您更改设备检测组最后一个成员丢失的时间量。

    最后一成员查询间隔是组特定查询消息之间的最大时间量,包括作为响应退出组消息发送的查询消息。

    默认情况下,最后一个成员查询间隔为 1 秒。您可以配置范围为 0.1 到 0.9 秒的任何值,然后是 1 到 1024 秒的 1 秒间隔。

  • 查询响应间隔— 配置路由器等待接收来自其主机查询消息的响应的时间。

    默认情况下,查询响应间隔为 10 秒。您可以配置 1 到 1024 秒范围内的任何值。此间隔应小于语句中设置的 query-interval 间隔时间。

  • 稳健计数— 提供微调,以允许子网上的预期数据包丢失。这基本上就是在超时组之前等待的间隔时间数量。如果子网数据包丢失较高,并且 IGMP 报告消息可能丢失,可以等待更多间隔。

    默认情况下,稳健计数为 2。您可以配置范围 2 到 10 间隔内的任何值。

  • 组限制— 配置可加入接口的组播组(或 IGMPv3 中的 [S,G] 通道)数量限制。达到此限制后,将忽略新报告,并且所有相关流将丢弃,而不是泛洪。

    默认情况下,可以加入接口的组数量没有限制。您可以配置范围为 0 到 32 位编号的一个限制。

  • 主机专用接口— 将 IGMP 窥探接口配置为仅主机端接口。在主机侧接口上,将丢弃收到的 IGMP 查询。

    默认情况下,接口可面向其他组播路由器或主机。

  • 组播路由器接口— 将 IGMP 窥探接口配置为完全面向路由器的接口。

    默认情况下,接口可面向其他组播路由器或主机。

  • 静态—静态配置具有组播组的 IGMP 窥探接口。

    默认情况下,路由器会动态了解接口上的组播组。

拓扑

图 1 显示了没有 IGMP 窥探的网络。假设主机 A 是IP 组播方,而主机 B 和 C 是组播接收方。路由器只会IP 组播注册接收方的网段(主机 B 和 C)转发流量。但是,第 2 层设备将流量泛滥至所有接口上的所有主机。

图 1:未配置 IGMP 窥探的网络 Networks Without IGMP Snooping Configured

图 2 显示了配置了 IGMP 窥探的相同网络。第 2 层设备仅将组播信息流转发至注册接收方。

图 2:配置了 IGMP 窥探的网络 Networks with IGMP Snooping Configured

配置

程序

CLI快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit] commit

逐步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航指南CLI,请参阅 CLI 用户指南 中的 在配置模式下Junos OS CLI 编辑器

要配置 IGMP 窥探:

  1. 配置桥接域。

  2. 启用 IGMP 窥探,将路由器配置为代理。

  3. ge-0/0/1.1 接口上允许的组播组数量限制配置为 50。

  4. 配置路由器,当其从该接口收到保留消息时,可立即从接口中删除组成员关系,而不等待交换任何其他 IGMP 消息。

  5. 静态配置端口上的 IGMP 组成员关系。

  6. 将接口配置为专用于路由器的接口(以接收组播信息流)。

  7. 将接口配置为完全面向主机的接口(以丢弃 IGMP 查询消息)。

  8. 配置 IGMP 消息间隔和稳健性计数。

  9. 如果完成设备配置,请提交配置。

结果

输入 命令以确认 show bridge-domains 您的配置。

验证

要验证配置,请运行以下命令:

  • show igmp 窥探接口

  • show igmp 窥探成员

  • 显示 igmp 窥探统计信息

配置 IGMP 窥探跟踪操作

追踪操作可记录有关路由协议操作的详细消息,例如已发和接收的不同类型的路由协议数据包以及路由策略操作。您可以指定通过包括特定跟踪标记来记录哪些跟踪操作。下表介绍了您可以包含的标记。

国旗

描述

所有

跟踪所有操作。

客户端通知

跟踪通知。

一般

跟踪常规流。

跟踪组操作。

主机通知

追踪主机通知。

离开

Trace 保留组消息(仅 IGMPv2)。

正常

跟踪正常事件。

跟踪所有 IGMP 数据包。

政策

追踪策略处理。

查询

跟踪 IGMP 成员查询消息。

报告

跟踪成员报告消息。

路线

追踪路由信息。

状态

追踪状态转换。

任务

追踪路由协议任务处理。

计时 器

追踪计时器处理。

您可以在全局或路由实例中为 IGMP 窥探配置追踪操作。以下示例显示全局配置。

要配置 IGMP 窥探的追踪操作:

  1. 为追踪文件配置文件名。
  2. (可选)配置最大追踪文件数。
  3. (可选)配置每个追踪文件的最大大小。
  4. (可选)允许无限制的文件访问。
  5. 配置追踪标记。假设您正在对特定逻辑接口上接收的数据包(IP 地址为 192.168.0.1)相关策略的问题进行故障排除。以下示例显示如何标记与 IP地址相关联的已接收数据包的所有策略事件。
  6. 查看跟踪文件。