Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

配置 IGMP

了解组成员协议

主机和路由设备之间使用的组播协议与组播路由设备之间存在巨大差异。给定子网上的主机仅需要通知其路由设备是否有兴趣接收来自特定组播组的数据包。源主机只需通知其路由设备它是特定组播组的信息流来源。换言之,任何主机都无需详细了解分配树:只需一个组成员协议,即可将路由设备参与组播组的信息通知给路由设备。另一方面,相邻路由设备之间,组播路由协议在构建从源到叶的网络拓扑和分布树的详细感觉时,必须避免出现环路。因此,不同的组播协议用于组播网络的主机路由器部分和路由器部分。

组播组成员协议允许路由设备检测直接连接子网上的主机(通常是 LAN)是否希望从某个组播组接收信息流。即使 LAN 上的多个主机想要接收该组播组的流量,路由设备也只能为该接口上的组播组发送每个数据包的一个副本,因为 LAN 具有固有的广播特性。当组播组成员协议通知路由设备子网上没有感兴趣的主机时,将预留数据包,并从分配树中删除叶。

互联网组管理协议 (IGMP) 和组播侦听发现 (MLD) 协议是标准 IP 组播组成员协议:IGMP 和 MLD 具有几个由主机和路由设备支持的版本:

  • IGMPv1 — 在 RFC 1112 中定义的原始协议。向路由设备发送显式加入消息,但使用超时来确定主机何时离开组。此过程会浪费路由设备上的处理周期,尤其是在较旧或较小的路由设备上。

  • IGMPv2 — 在 RFC 2236 中定义。除其他功能外,IGMPv2 在加入消息中添加了一条显式离开消息,以便路由设备能够更轻松地确定某个组在 LAN 上没有感兴趣的侦听器。

  • IGMPv3 — 在 RFC 3376 中定义。除其他功能外,IGMPv3 优化了对组播组或 源特定组播SSM) 单个内容来源的支持。

  • MLDv1 — 在 RFC 2710 中定义。MLDv1 与 IGMPv2 类似。

  • MLDv2 — 在 RFC 3810 中定义。MLDv2 与 IGMPv3 类似。

各种版本的 IGMP 和 MLD 都向后兼容。路由设备在 LAN 接口上运行多个版本的 IGMP 和 MLD 是很常见的。向后兼容性是通过返回到 LAN 上运行的所有版本中最基本的版本来实现的。例如,如果一个主机正在运行 IGMPv1,连接到运行 IGMPv2 的 LAN 的任何路由设备都可以返回到 IGMPv1 操作,从而有效地消除 IGMPv2 优势。运行多个 IGMP 版本可确保 IGMPv1 和 IGMPv2 主机在路由设备上找到其版本的对等方。

谨慎:

在 MX 系列平台上,根据安装的 Junos OS 版本,可以或不能在同一接口上一起配置 IGMPv2 和 IGMPv3。将两者配置在一起可能会导致组播信息流转发中的意外行为。

了解 IGMP

互联网组管理协议 (IGMP) 管理组播组中的主机和路由设备的成员身份。IP 主机使用 IGMP 向任何紧邻组播路由设备报告其组播组成员身份。组播路由设备使用 IGMP 为每个已连接的物理网络(各组有成员)学习。

IGMP 还用作多个相关组播协议的传输(例如距离向量组播路由协议 [DVMRP] 和协议无关组播版本 1 [PIMv1])。

路由设备接收来自具有下游组成员的相邻路由设备的显式加入和删除消息。当 PIM 是正在使用的组播协议时,IGMP 将按照以下方法开始此过程:

  1. 要加入组播组,G 主机将通过 IGMP 传送其成员信息。

  2. 然后,路由设备会将发送至组播组 G 的数据包转发至仅接收显式加入消息的接口。

  3. 指定路由器 (DR) 会向具有活动成员的每个组的特定组汇聚点 (RP) 发送定期加入和删除消息。一个或多个路由设备自动或静态指定为 RP,所有路由设备都必须通过 RP 明确加入。

  4. 沿向 RP 路径的每个路由设备为组构建通配符(任意源)状态,并向 RP 发送加入和删除消息。

    术语 路由条目 用于指代路由设备中维护的状态,表示分配树。

    路由条目可以包括以下字段:

    • 源地址

    • 组地址

    • 传入接口,从中接受数据包

    • 数据包发送至的传出接口列表

    • 定时器

    • 标志位

    通配符路由条目的传入接口点朝向 RP。

    传出接口指向向 RP 发送加入和删除消息的相邻下游路由设备,以及已要求加入 G 组的直接连接主机。

  5. 此状态创建一棵以 RP 为中心的共享分布树,到达所有组成员。

IGMP 还用作多个相关组播协议的传输(例如距离向量组播路由协议 [DVMRP] 和协议无关组播版本 1 [PIMv1])。

从 Junos OS 15.2 版开始,不支持 PIMv1。

IGMP 是 IP 不可分割的一部分,必须在需要接收 IP 组播信息流的所有路由设备和主机上启用。

对于每个连接的网络,组播路由设备可以是查询器,也可以是非查询器。查询器路由设备会定期发送一般查询消息,以征求组成员信息。作为组播组成员的网络上的主机发送报告消息。当主机离开组时,它会发送一条“离开”组消息。

IGMP 版本 3 (IGMPv3) 支持包含和排除列表。包含列表允许您指定可发送至组播组的源。这种类型的组播组称为源特定组播 (SSM) 组,其组播地址为 232/8。

IGMPv3 支持源过滤。例如,路由设备可以指定接受或拒绝流量的特定路由设备。借助 IGMPv3,组播路由设备可以了解邻接路由设备感兴趣的来源。

排除模式与包含列表相反。它允许发送至 SSM 组除所列来源之外的任何来源。

IGMPv3 与协议版本 1 和 2 进行互操作。但是,要与旧的 IGMP 主机和路由设备保持兼容,IGMPv3 路由设备还必须实施协议的第 1 版和第 2 版。IGMPv3 支持以下成员报告记录类型:允许模式、允许新来源并阻止旧来源。

配置 IGMP

开始之前:

  1. 确定路由器是否直接连接到任何组播源。接收方必须能够找到这些来源。

  2. 确定路由器是否直接连接到任何组播组接收器。如果存在接收器,则需要 IGMP。

  3. 确定是将组播配置为使用稀疏、密集还是稀疏密集模式。每个模式都有不同的配置注意事项。

  4. 如果使用稀疏或稀疏密集模式,请确定 RP 的地址。

  5. 确定是使用静态配置、BSR 还是自动 RP 方法来定位 RP。

  6. 在稀疏、密集或稀疏的密集模式下配置 PIM 时,确定是配置组播以使用自己的 RPF 路由表。

  7. 配置 SAP 和 SDP 协议以收听组播会话公告。请参阅 配置会话公告协议

要配置互联网组管理协议 (IGMP),请包括以下 igmp 语句:

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

  • [edit protocols]

  • [edit logical-systems logical-system-name protocols]

默认情况下,在配置协议无关组播 (PIM) 的所有接口以及配置距离向量组播路由协议 (DVMRP) 的所有广播接口上均启用 IGMP。

注意:

您无需配置 PIM,即可在接口上配置 IGMP。IGMP 下游接口通常不需要 PIM。因此,仅创建一个“伪 PIM 接口”,表示路由器上的所有 IGMP 下游(仅限 IGMP)接口。这样可以减少使用路由器资源(如内存)的数量。您必须在上游 IGMP 接口上配置 PIM 以启用组播路由,对组播数据包执行反向路径转发,为上游接口填充组播转发表,如果采用双向 PIM 和 PIM 稀疏模式,则将 IGMP 组成员分配到组播路由域中。

启用 IGMP

互联网组管理协议 (IGMP) 通过在子网上建立、维护和移除组来管理组播组。组播路由设备使用 IGMP 来学习每个连接的物理网络上哪些组有成员。必须启用 IGMP,路由器才能接收 IPv4 组播数据包。IGMP 仅适用于 IPv4 网络,因为在 IPv6 网络中处理组播的方式不同。配置 DVMRP 时,在配置 PIM 的所有 IPv4 接口和所有 IPv4 广播接口上都自动启用 IGMP。

如果 IGMP 未在接口上运行—因为接口上没有配置 PIM 和 DVMRP,或者因为接口上显式禁用了 IGMP,则可以显式启用 IGMP。

要明确启用 IGMP:

  1. 如果接口上没有运行 PIM 和 DVMRP,则通过包括接口名称明确启用 IGMP。
  2. 查看任何接口上是否禁用 IGMP。在以下示例中,千兆位以太网接口上禁用 IGMP。
  3. 删除语句,在接口上启用 disable IGMP。
  4. 验证配置。
  5. 检查命令的输出,以验证接口上的 IGMP 操作 show igmp interface

修改 IGMP 主机查询消息间隔

IGMP 的目标是让路由器保持最新的整个子网的组成员资格。路由器不需要知道所有成员是谁,只知道成员的存在。每个主机都跟踪已订阅的组播组。在每个链路上,一个路由器都会被选为查询器。IGMP 查询器路由器会定期在每个连接的网络上发送一般主机查询消息,以征求成员信息。这些消息将发送至全系统组播组地址 224.0.0.1。

查询间隔、响应间隔和稳健性变量相关,因为它们都是用于计算组成员超时的变量。组成员超时是指组播路由器确定子网上不再存在主机组成员之前必须通过的秒数。组成员超时计算为(稳健性变量 x 查询间隔)+(查询响应间隔)。如果在组成员超时到期之前未收到特定组的报告,则路由设备将停止将该组的远程发起组播数据包转发至附加网络。

默认情况下,主机查询消息每 125 秒发送一次。您可以更改此间隔以更改子网上发送的 IGMP 消息的数量。

要修改查询间隔:

  1. 配置间隔。

    值可以为 1 到 1024 秒。

  2. 检查命令输出 show igmp interface 中的 IGMP 查询间隔字段,以验证配置。
  3. 检查命令输出中的成员查询字段,以验证查询间隔的 show igmp statistics 操作。

修改 IGMP 查询响应间隔

查询响应间隔是查询器发送主机查询消息和从主机接收响应之间的最大时间。配置此间隔允许您调整子网上 IGMP 消息的突发峰值。设置更大的间隔,以减少流量的突发性。突发流量是指不均匀的数据传输模式:有时是数据传输速率非常高,而在其他时候,数据传输速率非常低。

查询响应间隔、主机查询间隔和稳健性变量相关,因为它们都是用于计算组成员超时的变量。组成员超时是指组播路由器确定子网上不再存在主机组成员之前必须通过的秒数。组成员超时计算为(稳健性变量 x 查询间隔)+(查询响应间隔)。如果在组成员超时到期之前未收到特定组的报告,则路由设备将停止将该组的远程发起组播数据包转发至所连接的网络。

默认查询响应间隔为 10 秒。您可在十进制点右侧配置一个高达一位数的亚秒级间隔。可配置范围为 0.1 到 0.9,然后在 1 秒间隔 1 到 999,999。

要修改查询响应间隔:

  1. 配置间隔。
  2. 检查命令输出 show igmp interface 中的 IGMP 查询响应间隔字段,以验证配置。
  3. 检查命令输出中的成员查询字段,以验证查询间隔的 show igmp statistics 操作。

指定为 IGMP 移除直接离开主机

即时休假设置有助于将 IGMP 成员资格的休假延迟降至最低。启用此设置后,路由设备将在最后一个主机离开组播组后立即离开组播组。

即时离开设置支持主机跟踪,这意味着设备会跟踪发送加入消息的主机。这允许 IGMP 确定最后一个主机何时为组播组发送休假消息。

启用即时离开设置时,设备将从转发表条目中卸下接口,而无需首先向接口发送 IGMP 组特定的查询。接口将从组播树中删除,以用于在 IGMP 离开消息中指定的组播组。即时离开设置可确保交换网络上的主机的最佳带宽管理,即使同时使用多个组播组也是如此。

当禁用即时休假,并且一个主机发送“离开”组消息时,路由设备将首先发送一个组查询来确定另一个接收方是否响应。如果没有接收器响应,路由设备将从组播组中移除接口上的所有主机。默认情况下,IGMP 版本 2 和 IGMP 版本 3 禁用即时休假。

注意:

尽管在允许立即休假时,IGMPv2 和 MLDv1 启用了主机跟踪,但仅当接口上有一个主机时,才使用这些版本的即时休假。原因是 IGMPv2 和 MLDv1 使用报告抑制机制,其中接口上只有一个主机发送组加入报告,以响应成员查询。其他感兴趣的主机抑制其报告。此机制的目的是避免同一组的报告泛滥。但它也会干扰主机跟踪,因为路由器只知道一个感兴趣的主机,并不知道其他主机。

要在接口上立即请假:

  1. 配置 IGMP 接口上的即时休假。
  2. 检查命令输出 show igmp interface 中的“即时离开”字段,以验证配置。

在 IGMP 接口级别过滤不需要的 IGMP 报告

假设您需要限制可以加入某个组播组的子网。该 group-policy 语句允许您在接口级别过滤不需要的 IGMP 报告。在运行 IGMP 版本 2 (IGMPv2) 或版本 3 (IGMPv3) 的路由器上启用此语句时,路由器会在路由器收到 IGMP 报告后,将该组与指定组策略进行比较,并执行该策略中配置的操作(例如,如果策略与定义地址或网络匹配,则拒绝该报告)。

通过使用策略的语句与组地址匹配,您可定义仅匹配 IGMP 组地址(适用于 IGMPv2)的 route-filter 策略。通过使用策略语 route-filter 句与组地址和策略语句匹配源地址,可定义匹配 IGMP(源、组)地址(适用于 IGMPv3)的 source-address-filter 策略。

谨慎:

在 MX 系列平台上,根据安装的 Junos OS 版本,可以或不能在同一接口上一起配置 IGMPv2 和 IGMPv3。将两者配置在一起可能会导致组播信息流转发中的意外行为。

要过滤不需要的 IGMP 报告:

  1. 配置 IGMPv2 策略。
  2. 配置 IGMPv3 策略。
  3. 将策略应用到您不愿接收特定组或(源、组)报告的 IGMP 接口。在此示例中, ge-0/0/0.1 正在运行 IGMPv2, ge-0/1/1.0 正在运行 IGMPv3。
  4. 检查命令输出中的“拒绝报告”字段,以验证过滤器的 show igmp statistics 操作。

接受来自远程子网的 IGMP 消息

默认情况下,IGMP 接口仅接受来自同一子网的 IGMP 消息。包括该 promiscuous-mode 语句使路由设备能够接受来自间接连接子网的 IGMP 消息。

注意:

在未编号的以太网接口上启用 IGMP(将 /32 环路地址用作捐赠者地址)时,您必须配置 IGMP 混合模式才能接受此接口上收到的 IGMP 数据包。

注意:

启用混合模式时,以太网分段上的所有路由器都必须使用混合模式语句进行配置。否则,只有配置为最低 IPv4 地址的接口才会充当此以太网分段的 IGMP 查询器。

要在接口上启用 IGMP 混合模式:

  1. 配置 IGMP 接口。
  2. 检查命令输出 show igmp interface 中的混合模式字段,以验证配置。
  3. 检查命令输出中的 Rx 非本地字段,以验证过滤器的 show igmp statistics 操作。

修改 IGMP 最后成员查询间隔

最后一个成员查询间隔是特定组查询消息之间的最大时间,包括为响应离开组消息而发送的消息。您可以配置此间隔以更改路由设备检测组最后成员丢失所需的时间量。

当用作查询器的路由设备收到来自主机的离开组消息时,路由设备会向要留下的组发送多个特定组的查询。查询器以特定时间间隔发送特定数量的这些查询。发送的查询数称为最后成员查询计数。发送查询的间隔称为最后成员查询间隔。由于这两个设置均可配置,因此您可以调整休假延迟。IGMP 离开延迟是指从请求离开组播组到接收组播组最后一字节数据之间的时间。

最后成员查询计数 x(时间)最后成员查询间隔 = (等于)路由设备确定组的最后一个成员离开组并停止转发组信息流所需的时间。

默认最后成员查询间隔为 1 秒。您可在十进制点右侧配置一个高达一位数的亚秒级间隔。可配置范围为 0.1 到 0.9,然后在 1 秒间隔 1 到 999,999。

要修改此间隔:

  1. 配置路由设备等待报告的时间(以秒为单位),以响应组特定的查询。
  2. 检查命令输出 show igmp interfaces 中的 IGMP 末尾成员查询间隔字段,以验证配置。
注意:

您可通过配置稳健性变量来配置最后一个成员查询计数。两者总是相等的。

修改 IGMP 稳健性变量

微调 IGMP 稳健性变量,以允许子网上的预期数据包丢失。稳健的计数会自动更改 IGMPv2 和 IGMPv3 的某些 IGMP 消息间隔。增加稳健的计数会增加数据包丢失,但会增加子网的延迟。

当查询路由器在运行 IGMPv2 的共享网络上收到 IGMP 离开消息时,查询路由器必须向 IGMP 组查询消息发送指定次数。发送的 IGMP 组查询消息数由稳健计数决定。

还使用稳健变量值计算以下 IGMP 消息间隔:

  • 组成员间隔 — 组成员间隔 — 组播路由器确定网络上不再存在组成员之前必须经过的时间量。此间隔计算方法如下: (稳健性可变 x 查询间隔) + (1 x 查询响应间隔)。

  • 其他查询器存在间隔 — 稳健计数用于计算组播路由器确定不再存在另一个查询器的组播路由器之前必须通过的时间量。此间隔的计算方法如下: (稳健性可变 x 查询间隔) + (0.5 x 查询响应间隔)。

  • 最后成员查询计数 — 在路由器假设组没有本地成员之前发送的特定组查询数。查询数量等同于稳健性变量的值。

在 IGMPv3 中,接口状态的更改会使系统立即从该接口传输状态更改报告。如果一个或多个组播路由器错过了状态更改报告,将重新传输。重新传输的次数是稳健计数减去一个。在 IGMPv3 中,稳健计数也是确定组成员间隔、旧版本查询器间隔和其他查询器存在间隔的一个因素。

默认情况下,稳健性变量设置为 2。如果您希望子网丢失数据包,则可能希望增加此值。

此数字可以为 2 到 10。

要更改稳健性变量的价值:

  1. 配置稳健计数。

    设置稳健计数时,实际上配置已连接子网上的查询重述查询次数。

  2. 检查命令输出 show igmp interfaces 中的 IGMP 稳健性 计数字段,以验证配置。

限制最大 IGMP 消息速率

本节介绍如何更改路由器在 1 秒内传输的最大 IGMP 数据包数量限制。

如果路由器上有大量接口参与 IGMP,则增加每秒传输的最大 IGMP 数据包数可能很有用。

要更改路由器可在 1 秒内传输的最大 IGMP 数据包数限制,请包括该 maximum-transmit-rate 语句并指定要传输的最大数据包数/ 秒。

更改 IGMP 版本

默认情况下,路由设备运行 IGMPv2。运行不同版本 IGMP 的路由设备可确定由其子网上的主机支持且在该版本中运行的最低通用 IGMP 版本。

要启用源特定组播 (SSM) 功能,必须在主机上配置版本 3 以及主机的直接连接路由设备。如果在静态配置的组播组中指定了源地址,则该版本必须设置为 IGMPv3。

如果在源地址定义的情况下配置了静态组播组,而 IGMP 版本配置为版本 2,则会忽略源,并且仅添加该组。在这种情况下,加入被视为 IGMPv2 组加入。

优秀实践:

如果在单个接口层次结构级别上配置 IGMP 版本设置,则该语句将覆盖该interface all语句。也就是说,新接口不会继承使用语句指定的interface all版本号。默认情况下,新接口已启用version 2。添加新接口时,version number您必须明确指定。例如,如果指定version 3interface all了此语句,则需要为新接口配置version 3语句。此外,如果为层次结构级别的[edit interface interface-name static group multicast-group-address]组播组配置接口,则必须指定一个version number和其他组参数。否则,接口将使用默认version 2启用。

如果已将路由设备配置为使用 IGMP 版本 1 (IGMPv1),然后将其配置为使用 IGMPv2,则路由设备将继续使用 IGMPv1 长达 6 分钟,然后使用 IGMPv2。

要更改为用于 SSM 功能的 IGMPv3:

  1. 配置 IGMP 接口。
  2. 检查命令输出 show igmp interfaces 中的版本字段,以验证配置。该 show igmp statistics 命令具有特定版本的输出字段,例如 V1 成员报告、V2 成员报告和 V3 成员报告。
谨慎:

在 MX 系列平台上,根据安装的 Junos OS 版本,可以或不能在同一接口上一起配置 IGMPv2 和 IGMPv3。将两者配置在一起可能会导致组播信息流转发中的意外行为。

支持 IGMP 静态组成员资格

您可以创建 IGMP 静态组成员资格,以在没有接收器主机的情况下测试组播转发。启用 IGMP 静态组成员资格时,数据会转发至接口,而不会在接口接收来自下游主机的会员报告的情况下。启用静态 IGMP 组成员资格的路由器必须是子网的指定路由器 (DR)。否则,流量不会向下流动。

启用 IGMP 静态组成员资格时,如果所有选项都指定为 IGMP 接口,则不能使用组计数组增量源计数source-increment语句来配置多个组。

IGMP 静态组成员不支持服务等级 (CoS) 调整。

在此示例中,您将创建静态组 233.252.0.1。

  1. 在 DR 上,将要创建的静态组配置为包括 static 语句和 group 语句,并指定要创建的组的 IP 组播地址。单个创建组时,您必须为每个组指定唯一地址。
  2. 提交配置后,请使用 show configuration protocol igmp 命令验证 IGMP 协议配置。
  3. 提交配置并发送信息源信息流后,请使用 show igmp group 命令验证是否已创建静态组 233.252.0.1。
注意:

在将路由设备连接到汇聚点 (RP) 的点对点链路上配置静态 IGMP 组条目时,静态 IGMP 组条目不会向 RP 生成加入消息。

创建 IGMP 静态组成员资格以在要接收组播流量的接口上测试组播转发时,可以指定自动创建一些静态组。如果您希望测试转发至多个接收器,而无需单独配置每个接收器,则此功能很有用。

在此示例中,您将创建三个组。

  1. 在 DR 上,通过包括 group-count 语句并指定要创建的组数来配置要创建的静态组数。

  2. 提交配置后,请使用 show configuration protocol igmp 命令验证 IGMP 协议配置。

  3. 提交配置并在源发送信息流之后,使用 show igmp group 命令验证是否已创建静态组 233.252.0.1、233.252.0.2 和 233.252.0.3。

创建 IGMP 静态组成员资格以在要接收组播流量的接口上测试组播转发时,您还可以将组地址配置为为为创建的每个组自动增量。如果您希望测试转发至多个接收器,而无需单独配置每个接收器,并且不希望组地址连续配置,则此功能很有用。

在此示例中,您创建三个组,并将组地址增加一个,每个组增加两个。

  1. 在 DR 上,配置组地址增量,方法是包括 group-increment 语句并指定应为每个组增量地址的编号。增量在类似于 IPv4 地址的点缀十进制符号中指定。

  2. 提交配置后,请使用 show configuration protocol igmp 命令验证 IGMP 协议配置。

  3. 提交配置并在源发送信息流之后,使用 show igmp group 命令验证是否已创建静态组 233.252.0.1、233.252.0.3 和 233.252.0.5。

创建 IGMP 静态组成员资格以在要接收组播流量的接口上测试组播转发,并且您的网络以源特定组播 (SSM) 模式运行时,您还可以指定接受组播源地址。当您想要测试从特定组播源转发至组播接收器时,这很有用。

如果指定 SSM 范围内的组地址,还必须指定来源。

如果在静态配置的组播组中指定源地址,则接口上的 IGMP 版本必须设置为 IGMPv3。IGMPv2 是默认值。

在此示例中,您创建组 233.252.0.1 并接受 IP 地址 10.0.0.2 作为唯一来源。

  1. 在 DR 上,通过包括 source 语句并指定源主机的 IPv4 地址来配置源地址。

  2. 提交配置后,请使用 show configuration protocol igmp 命令验证 IGMP 协议配置。

  3. 提交配置并发送信息源信息流后,请使用 show igmp group 命令验证是否已创建静态组 233.252.0.1 以及是否已接受源 10.0.0.2。

创建 IGMP 静态组成员资格以在要接收组播流量的接口上测试组播转发时,可以指定自动接受多个组播源。当您希望测试从多个指定组播源转发至组播接收器时,这很有用。

在此示例中,您创建组 233.252.0.1 并接受地址 10.0.0.2、10.0.0.3 和 10.0.0.4 作为来源。

  1. 在 DR 上,配置要接受的组播源地址数量,方法是包括 source-count 语句并指定要接受的源数量。

  2. 提交配置后,请使用 show configuration protocol igmp 命令验证 IGMP 协议配置。

  3. 提交配置并发送信息源信息流后,请使用 show igmp group 命令验证是否已创建静态组 233.252.0.1 以及接收源 10.0.0.2、10.0.0.3 和 10.0.0.4。

在要接收组播流量的接口上配置静态组,并指定自动接受多个组播源时,您还可以指定应为接受的每个源增量地址的编号。如果您希望测试转发至多个接收器,而无需单独配置每个接收器,并且不希望源地址连续配置,则此功能很有用。

在此示例中,您创建组 233.252.0.1 并接受地址 10.0.0.2、10.0.0.4 和 10.0.0.6 作为来源。

  1. 配置组播源地址增量, source-increment 方法是包括语句并指定应为每个源增量地址的编号。增量在类似于 IPv4 地址的点缀十进制符号中指定。

  2. 提交配置后,请使用 show configuration protocol igmp 命令验证 IGMP 协议配置。

  3. 提交配置并在源发送信息流之后,使用 show igmp group 命令验证是否已创建静态组 233.252.0.1 以及接收源 10.0.0.2、10.0.0.4 和 10.0.0.6。

在要接收组播信息流的接口上配置静态组,并且网络以源特定组播 (SSM) 模式运行时,可以指定排除某些组播源地址。

默认情况下,在静态组中配置的组播源地址在包括模式下运行。在包括模式中,组播信息流将从配置的源地址接受。您也可将静态组配置为在排除模式下运行。在排除模式下,组播信息流将从配置的源地址以外的任何地址接受。

如果在静态配置的组播组中指定源地址,则接口上的 IGMP 版本必须设置为 IGMPv3。IGMPv2 是默认值。

在此示例中,您将地址 10.0.0.2 排除为组 233.252.0.1 的来源。

  1. 在 DR 上,通过包括 exclude 语句并指定要排除的 IPv4 源地址,将组播静态组配置为在排除模式下运行。

  2. 提交配置后,请使用 show configuration protocol igmp 命令验证 IGMP 协议配置。

  3. 提交配置并发送信息源信息流后,请使用 show igmp group detail 命令验证静态组 233.252.0.1 是否已创建,以及静态组是否以排除模式工作。

记录 IGMP 加入和离开活动

要确定网络中是否需要 IGMP 调整,您可以将路由设备配置为记录 IGMP 加入并退出事件。您可以在全球范围内记录路由设备或单个接口的事件。

表 1 介绍了可记录的 IGMP 事件。

表 1:IGMP 事件消息

ERRMSG 标记

定义

RPD_IGMP_JOIN

记录 IGMP 加入活动。

RPD_IGMP_LEAVE

记录 IGMP 离开事件。

RPD_IGMP_ACCOUNTING_ON

在 IGMP 接口上启用 IGMP 计费时的记录。

RPD_IGMP_ACCOUNTING_OFF

在 IGMP 接口上禁用 IGMP 计费时的记录。

RPD_IGMP_MEMBERSHIP_TIMEOUT

记录 IGMP 会员超时事件。

要启用 IGMP 计费:

  1. 在全局或 IGMP 接口上启用计费。此示例显示了两个选项。
  2. 配置事件以记录事件,并使用描述性文件名(如 igmp 事件)将事件过滤到系统日志文件中。
  3. 定期存档日志文件。

    此示例可在文件达到 100 KB 时旋转文件大小并保留三个文件。

  4. 当条目被添加到文件中时,您可通过运行 监控器启动monitor stop 命令来监控系统日志文件。

限制 IGMP 组播组加入逻辑接口的数量

group-limit 语句允许您限制逻辑接口的 IGMP 组播组加入的数量。如果在运行 IGMP 版本 2 (IGMPv2) 或版本 3 (IGMPv3) 的路由器上启用此语句,则会在收到组报告时应用此限制。到达组限制后,后续的加入请求将被拒绝。

为 IGMP 组播组配置限制时,请记住以下事项:

  • 每个任意源组 (*、G) 都计为一个组以达到限制。

  • 每个源特定组 (S、G) 都计为一个组以达到限制。

  • IGMPv3 排除模式中的组将计入限制。

  • 多个源特定组单独计入组限制,即使属于同一组也是如此。例如(S1、G1)和 (S2、G1) 将计为两组,以达到配置的限制。

  • 任意源组和源特定组的组合单独计入组限制,即使属于同一组也是如此。例如,(*、G1) 和 (S、 G1) 将计为两组,用于配置的限制。

  • 在低于网络上已存在的网络上配置和提交组限制后,将所有组从配置中移除。然后,这些组必须请求重新加入网络(最多为新配置的组限制)。

  • 您可以使用动态配置文件动态限制 IGMP 逻辑接口上的组播组。

从 Junos OS 版本 12.2 开始,您可以选择为逻辑接口上收到的 IGMP 组播组加入配置系统日志警告阈值。检查用于故障排除目的的系统日志消息并检测接口上是否收到过多的 IGMP 组播组加入,这很有帮助。当超过配置的组限制、超过配置的阈值以及组数下降到配置的阈值以下时,这些日志消息将传送。

group-threshold 语句允许您配置记录警告消息的阈值。范围为 1% 到 100%。警告阈值是组限制的一个百分比,因此您必须将 group-limit 语句配置为配置警告阈值。例如,当组数超过配置的警告阈值但保持在配置的组限制之下时,组播组将继续被接受,设备将记录警告消息。此外,在组数下降到配置的警告阈值以下之后,设备将记录警告消息。通过配置 log-interval 语句,您可以在日志消息之间进一步指定时间量(以秒为单位)。范围为 6 到 32,767 秒。

您可以考虑限制日志消息,因为在配置的阈值之后添加的每条条目以及配置的限制之后被拒绝的每条条目都会导致记录警告消息。通过配置日志间隔,可限制为 IGMP 组播组加入生成的系统日志警告消息量。

注意:

在 ACX 系列路由器上,最大组播路由数为 1024。

要限制组播组加入 IGMP 逻辑接口:

  1. 访问 IGMP 协议层次结构级别的逻辑接口。
  2. 指定接口的组限制。
  3. (可选)配置记录警告消息的阈值。
  4. (可选)配置日志消息之间的时间量。

要确认配置,请使用 命令 show protocols igmp 。要验证接口上的 IGMP 操作,包括已配置的组限制以及日志消息之间的可选警告阈值和间隔,请使用 show igmp interface 命令。

跟踪 IGMP 协议流量

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

国旗

描述

所有

追踪所有操作。

客户端通知

跟踪通知。

一般

跟踪一般流。

追踪组操作。

主机通知

跟踪主机通知。

离开

追踪离开组消息(仅限 IGMPv2)。

mtrace

跟踪 mtrace 数据包。使用 命令 mtrace 对软件进行故障排除。

正常

追踪正常事件。

跟踪所有 IGMP 数据包。

政策

跟踪策略处理。

查询

跟踪 IGMP 成员查询消息,包括常规和组特定查询。

报告

跟踪成员报告消息。

路线

追踪路由信息。

状态

跟踪状态转换。

任务

跟踪任务处理。

计时 器

跟踪计时器处理。

在以下示例中,所有路由协议数据包都支持跟踪。然后追踪范围缩小,仅关注特定类型的 IGMP 数据包。要为 IGMP 配置跟踪操作:

  1. (可选)在路由选项级别配置跟踪以追踪所有协议数据包。
  2. 为 IGMP 追踪文件配置文件名。
  3. (可选)配置最大追踪文件数。
  4. (可选)配置每个追踪文件的最大大小。
  5. (可选)启用不受限制的文件访问。
  6. 配置跟踪标志。假设您正在对特定组播组进行故障排除。以下示例说明如何标记与组 IP 地址相关联的数据包的所有事件。
  7. 查看追踪文件。

禁用 IGMP

要禁用接口上的 IGMP,请包括以下 disable 语句:

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

  • [edit protocols igmp interface interface-name]

  • [edit logical-systems logical-system-name protocols igmp interface interface-name]

    注意:

    ACX 系列路由器不支持 [edit logical-systems logical-system-name protocols] 层次结构级别。

IGMP 和不间断活动路由

不间断活动路由 (NSR) 配置包括两个共享信息的路由引擎,以便路由不会在路由引擎故障转移期间中断。这些 NSR 配置包括与 PIM 有关的 IGMP 的被动支持。主路由引擎使用 IGMP 来确定其 PIM 组播状态,而此 IGMP 派生信息会在备份路由引擎上复制。新主路由引擎上的 IGMP(故障切换后)通过 IGMP 操作快速重新学习状态信息。在此期间,新主路由引擎将保留从旧主路由引擎的复制进程接收到的 IGMP 派生 PIM 状态。除非 IGMP 更新了新主路由引擎,否则此状态信息的时间将移出。无需额外的 IGMP 配置。

发布历史记录表
释放
描述
15.2
从 Junos OS 15.2 版开始,不支持 PIMv1。
12.2
从 Junos OS 版本 12.2 开始,您可以选择为逻辑接口上收到的 IGMP 组播组加入配置系统日志警告阈值。