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 系列平台上,IGMPv2 和 IGMPv3 可以或不能在同一接口上一起配置,具体取决于您安装时的 Junos OS 版本。同时配置两者可能会导致组播流量转发出现意外行为。

了解 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。

注意:

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

启用 IGMP

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

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

要显式启用 IGMP,请执行以下操作:

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

修改 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 报告后,会将组与指定的组策略进行比较,并执行在该策略中配置的操作(例如,如果策略与定义的地址或网络匹配,则拒绝报告)。

通过使用策略的route-filter语句匹配组地址,可以将策略定义为仅匹配 IGMP 组地址(对于 IGMPv2)。通过使用策略的语句匹配组地址,并使用策略的route-filtersource-address-filter语句匹配源地址,定义策略以匹配 IGMP(源、组)地址(对于 IGMPv3)。

谨慎:

在 MX 系列平台上,IGMPv2 和 IGMPv3 可以或不能在同一接口上一起配置,具体取决于您安装时的 Junos OS 版本。同时配置两者可能会导致组播流量转发出现意外行为。

要过滤不需要的 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 消息。

注意:

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

注意:

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

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

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

修改 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 中,接口状态的更改会导致系统立即从该接口传输状态更改报告。如果一个或多个组播路由器错过了状态更改报告,则会重新传输该报告。重新传输的次数是稳健计数减去 1。在 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 系列平台上,IGMPv2 和 IGMPv3 可以或不能在同一接口上一起配置,具体取决于您安装时的 Junos OS 版本。同时配置两者可能会导致组播流量转发出现意外行为。

启用 IGMP 静态组成员身份

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

启用 IGMP 静态组成员资格时,如果将 all 选项指定为 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 静态组成员身份以在要接收组播流量的接口上测试组播转发时,还可以将组地址配置为为每个创建的组自动递增。当您想要测试转发到多个接收方而不必单独配置每个接收方时,以及当您不希望组地址是连续的时,这很有用。

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

  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 组播组加入配置系统日志警告阈值。