Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

配置事件策略以更改配置

您可以配置事件策略作,该作使用语句修改 change-configuration 配置以响应事件。

事件策略执行作以响应特定事件。您可以配置侦听特定事件或相关事件的事件策略,然后修改配置。例如,在收到给定接口的SNMP_TRAP_LINK_DOWN或SNMP_TRAP_LINK_UP事件时,事件策略可能会修改静态路由的配置,以调整其指标或修改其下一跃点。

事件策略可以使用以下方法修改配置:

  • 调用用于更改和提交配置的事件脚本。

  • 使用 change-configuration 事件策略作。此作将执行配置模式命令以修改配置,然后提交配置。

本主题讨论如何使用 change-configuration 语句层次结构更新配置。有关使用事件脚本更改配置的信息,请参阅 使用事件脚本更改配置

注意:

我们不建议使用该 change-configuration 语句修改启用了不间断活动路由 (NSR) 的双路由引擎设备上的配置。在这种情况下,两个路由引擎都可能尝试获取配置数据库上的锁,这可能会导致提交失败。要在启用了 NSR 的设备上通过事件策略修改配置,请调用仅在主路由引擎上执行提交的事件脚本。

使用事件策略 change-configuration 作更改配置

要创建使用配置模式命令修改配置的事件策略,请在层次结构级别配置[edit event-options policy policy-name then]change-configuration语句。例如:

commands 语句指定事件策略在收到一个或多个已配置事件后执行的配置模式命令。用引号 ()" " 将每个命令括起来。指定元素、标识符或值的完整语句路径,就像在层次结构级别发出 [edit] 命令时在配置模式下所做的那样。该 commands 语句接受以下配置模式命令:

  • activate

  • deactivate

  • delete

  • set

事件进程 (eventd) 按命令在事件策略配置中出现的顺序执行命令。这些命令会更新候选配置,然后提交,前提是未发生提交错误。默认情况下,事件策略以用户身份 root 执行配置更改并提交作。要在特定用户的权限下执行这些作,请配置该 user-name 语句并指定用户。

在某些情况下,更改配置作可能会失败,例如,如果它无法获取对配置的锁定。将该 retry 语句配置为,如果第一次尝试失败,系统会尝试更改配置作指定次数。

此外,您还可以配置 commit-options child 语句来自定义事件策略提交作。 表 1 总结了这些选项。

表 1:更改配置 commit-options
选项 说明
check

验证候选配置语法,但不提交更改。

check synchronize

验证两个路由引擎上的候选配置语法,而不提交更改。

force

在另一个路由引擎上强制提交,忽略任何警告,即使候选配置包含未提交的更改也是如此。

log

记录提交注释。

synchronize

同步两个路由引擎上的提交。

例如,如果您要测试事件策略或对其进行故障排除,则可以配置 check commit 选项来验证候选配置语法,而不提交更改。在双控制平面系统上,您可以配置该 check synchronize 语句。系统会将一个控制平面上的候选配置复制到另一个控制平面,然后验证两个候选配置在语法上是否正确。该 check 语句和其他 commit-options 语句互斥。

您可以在单个路由引擎上提交更改,也可以配置选项 synchronize 以在两个路由引擎上同步提交。配置该 synchronize 选项时,请求路由引擎会将其候选配置复制并加载到另一个路由引擎。两个路由引擎都会对候选配置文件执行语法检查。如果未发现错误,则会激活该配置并成为两个路由引擎上的当前作配置。默认情况下,如果响应的路由引擎有未提交的配置更改,则该 synchronize 选项将失败。但是,您可以通过配置该 force 选项在路由引擎上强制执行提交同步,并忽略任何警告。

以下配置将执行指定的配置模式命令,然后在两个路由引擎上提交配置。该 log 语句将记录配置的提交注释。

示例:使用事件策略更改配置

可能需要修改配置以响应特定事件。您可以配置事件策略,以便在事件策略由一个或多个特定事件触发时更改和提交配置。

此示例模拟特定接口的SNMP_TRAP_LINK_DOWN事件。收到事件后,事件策略将使用该 change-configuration 作来修改配置。事件策略更新静态路由的配置,以便通过不同的出口接口使用新的下一跃点 IP 地址。

要求

  • 运行 Junos OS 的设备或运行 Junos OS Evolved 的设备。

概述

您可以配置事件策略作来修改配置。假设您有一个通过出口接口 ge-0/2/1 到下一跃点 IP 地址为 10.1.2.1 的 10.1.10.0/24 网络的静态路由。此接口在某些时候会宕机,从而触发SNMP_TRAP_LINK_DOWN事件。

此示例创建名为 update-on-snmp-trap-link-down 的事件策略。您可以配置事件策略,以便事件进程侦听与接口 ge-0/2/1.0 关联的SNMP_TRAP_LINK_DOWN事件。如果接口宕机,事件策略将执行包含以下配置更改的更改配置作:

  • 移除通过 ge-0/2/1 出口接口的静态路由

  • 通过出口接口 ge-0/3/1 创建到下一跃点 IP 地址为 10.1.3.1 的同一目标网络的新静态路由

事件策略在用户管理员的权限下执行作。事件策略还会记录提交注释,指定更改是通过关联的事件策略进行的。事件策略使用的重试次数为 5,重试间隔为 4 秒。如果初始配置更改尝试失败,系统将再尝试更改 5 次,每次尝试之间等待 4 秒。

尽管此处未提供,但您可能还有第二个类似的事件策略,该策略会执行更改配置作,以便在接口恢复时更新静态路由。在这种情况下,策略将在同一接口的SNMP_TRAP_LINK_UP事件上触发。

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将命令粘贴到文本文件中,移除所有换行符,更改任何必要的详细信息以匹配您的网络配置,然后将命令复制粘贴到层次结构级别的 [edit] CLI 中:

配置事件策略

分步程序
  1. 创建事件策略并命名。

  2. 配置该 events 语句,以便事件策略在SNMP_TRAP_LINK_DOWN事件上触发。

    设置该 attributes-match 语句,以便仅当 ge-0/2/1.0 接口发生SNMP_TRAP_LINK_DOWN事件时才触发策略。

  3. 指定在事件策略触发时要执行的配置模式命令。

    将每个命令配置在一行上,用引号括住命令字符串,并指定完整的语句路径。

  4. (选答) log 使用描述配置更改的注释配置选项。通过关联的事件策略成功执行提交作后,注释将添加到提交日志中。

  5. (选答)如果您有双路由引擎,请配置该synchronize选项以在两个路由引擎上提交配置。包括以下选项force以在另一个路由引擎上强制提交,并忽略任何警告。此示例不配置synchronizeforce和选项。

  6. (选答)配置重试计数和重试间隔。

    在此示例中, count 设置为 5,为 interval 4 秒。

  7. (选答)配置用户名,其权限下进行配置更改和提交。

    如果未指定用户名,则以 root 用户身份执行作。

  8. 在层次结构级别配置 [edit system syslog] 新的日志文件,以记录设施 daemon 和严重性的 warning系统日志事件。

    此日志会捕获SNMP_TRAP_LINK_DOWN事件。

  9. 要测试此示例,请配置到下一跃点 IP 地址为 10.1.2.1 的 10.1.10.0/24 网络的静态路由。

  10. 提交配置。

  11. 在禁用 ge-0/2/1 接口之前,请先查看 [edit routing-options static] 配置的层次结构级别,并记下一跃点 IP 地址。

  12. 要手动测试事件策略,请使 ge-0/2/1 接口暂时脱机以生成SNMP_TRAP_LINK_DOWN事件。

结果

验证

确认配置工作正常。

验证接口的状态

目的

验证 ge-0/2/1 接口是否已关闭,以及它是否触发了 SNMP_TRAP_LINK_DOWN 事件。

行动

发出 show interfaces ge-0/2/1 作模式命令。命令输出显示接口在管理上处于脱机状态。

查看步骤 8 中配置的系统日志文件的内容。输出显示 ge-0/2/1.0 接口生成了SNMP_TRAP_LINK_DOWN事件。

验证提交

目的

通过查看提交日志和消息日志文件,验证事件策略提交作是否成功。

行动

发出 show system commit 作模式命令,查看提交日志。在此示例中,日志确认配置是在给定日期和时间以用户管理员权限通过事件策略提交的。

查看 消息 日志文件。收到SNMP_TRAP_LINK_DOWN事件后,Junos OS执行配置的事件策略作以修改并提交配置。提交作是在用户管理员的权限下进行的。

注意:

如果配置了其他日志文件,请查看特定于您的配置的文件。

意义

作模式命令和消息日志文件的show system commit输出验证在用户管理员权限下通过事件策略执行的提交作是否成功。show system commit输出和消息日志文件将引用在配置的提交选项中指定的提交注释。

验证配置更改

目的

禁用 ge-0/2/1 接口后,通过查看 [edit routing-options static] 配置的层级来验证配置更改。

行动

发出以下作模式命令:

意义

事件策略已修改配置的下一跃点,以使用新的 IP 地址 10.1.3.1。新 IP 地址的出口接口为 ge-0/3/1。

故障排除

提交错误故障排除

问题

触发的事件策略不会进行指定的配置更改,并且日志会验证提交是否不成功。

提交失败可能由于不同的原因而发生,包括但不限于:

  • 候选配置已锁定

  • 配置模式命令的语法或顺序不正确

  • 为事件策略作配置的用户没有进行请求更改的适当权限。

解决方案

检查层次结构级别的 [edit event-options policy update-on-snmp-trap-link-down then change-configuration commands] 配置模式命令,并验证语法和执行顺序是否正确。

此外,增加重试计数和间隔选项,以便在配置被锁定的情况下,事件策略在第一个失败实例后尝试更改配置的指定次数。

此外,请验证配置的用户(如果有)是否具有适当的权限级别来进行请求的更改。

示例:更改接口配置以响应事件

此示例使用实时性能监控 (RPM) 探测为给定接口生成PING_TEST_FAILED事件。在配置的 RPM 探测的 60 秒内收到三个PING_TEST_FAILED事件的第一个实例后,事件策略将执行更改配置事件策略作。该作会修改配置以管理性禁用指定接口。如果您的接口不稳定、不断抖动,并且持续影响网络性能,则可能需要执行此类作。

要求

  • 运行 Junos OS 的设备或运行 Junos OS Evolved 的设备。

概述

此示例创建名为 disable-interface-on-ping-failure 的事件策略。您可以配置事件策略,以便事件进程侦听由特定 RPM 探针生成并与 ge-0/3/1 接口关联的PING_TEST_FAILED事件。如果给定接口在 60 秒的间隔内发生 3 个PING_TEST_FAILED事件,则事件策略将执行更改配置作。事件策略配置命令以管理方式禁用该接口。

为了测试事件策略,此示例配置了一个 RPM 探针,用于对与 ge-0/3/1 接口关联的 IP 地址发出 ping 命令。在此示例中,ge-0/3/1.0 接口配置了 IPv4 地址 10.1.4.1/26。默认情况下,每个测试发送一个探针,并且该示例在测试之间使用5秒的暂停。在连续三次探针丢失后,RPM 探针将生成一个PING_TEST_FAILED事件。由于可以同时运行多个 RPM 测试,因此事件策略会将收到的 PING_TEST_FAILED 事件的 和 test-name 属性与 owner-name RPM 探针所有者名称和测试名称进行匹配。当 RPM 探测在 60 秒的间隔内生成三个PING_TEST_FAILED事件时,它会触发事件策略,从而禁用接口。

此事件策略还演示了如何由于同一事件或相关事件的出现而多次限制同一配置更改的执行。在此示例中,该 within 60 trigger on 3 语句指定仅在 60 秒间隔内第三次出现PING_TEST_FAILED事件时触发配置更改。该 trigger until 4 语句指定PING_TEST_FAILED事件的后续出现不应导致事件策略重新触发。

注意:

如果仅配置条件trigger on 3,提交作可能会进入循环。和 trigger until 4trigger on 3组合可防止事件策略重复进行相同的配置更改。

配置

配置 RPM 探针

CLI 快速配置

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

分步程序

要配置为此示例创建PING_TEST_FAILED事件的 RPM 探测:

  1. 创建名为 ping-probe-test 的 RPM 探针,所有者为 icmp-ping-probe。

  2. 配置 RPM 探针以发送 ICMP 回显请求。

    配置 RPM 探针,以将 ICMP 回显请求发送到 IP 地址为 10.1.4.1 的 ge-0/3/1 接口。

  3. 配置测试窗口之间 5 秒的暂停。

  4. 配置 RPM 探针阈值,以便在连续三次探针丢失后触发PING_TEST_FAILED事件。

  5. 在层次结构级别配置 [edit system syslog] 新的日志文件,以记录设施 daemon 和严重性的 info系统日志事件。

    这将捕获探测测试期间发送的事件。

  6. 提交配置。

结果

在配置模式下,输入和show servicesshow system syslog命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

配置事件策略

CLI 快速配置

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

分步程序
  1. 创建事件策略并命名。

  2. 配置事件策略以匹配PING_TEST_FAILED事件。

  3. 将策略配置为在 60 秒内发生三个PING_TEST_FAILED事件时触发。

  4. 配置该 within 65 trigger until 4 语句以防止在发生三个以上PING_TEST_FAILED事件时重新触发策略。

  5. 配置该 attributes-match 语句,以便仅由关联的 RPM 探测生成的PING_TEST_FAILED事件触发事件策略。

  6. 指定在事件策略触发时要执行的配置模式命令。

    将每个命令配置在一行上,用引号括住命令字符串,并指定完整的语句路径。

  7. (选答) log 使用描述配置更改的注释配置选项。

    通过关联的事件策略成功执行提交作后,注释将添加到提交日志中。

  8. (选答)如果您有双路由引擎,请配置该synchronize选项以在两个路由引擎上提交配置。包括以下选项force以在另一个路由引擎上强制提交,并忽略任何警告。此示例不配置synchronizeforce和选项。

  9. (选答)配置用户名,其权限下进行配置更改和提交。

    如果未指定用户名,则以用户 root身份执行作。

  10. 在进行配置更改之前,请查看作模式命令的 show interfaces ge-0/3/1 输出。

    注意:

    应启用该接口。

  11. 提交配置。

结果

在配置模式下,输入 show event-options 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

验证

确认配置工作正常。

验证事件

目的

要手动测试事件策略,请使 ge-0/3/1 接口脱机,直到生成三个PING_TEST_FAILED事件。

行动

查看配置的系统日志文件。验证 RPM 探针是否在连续丢失探针后生成PING_TEST_FAILED事件。

验证提交

目的

通过查看提交日志和消息日志文件,验证事件策略提交作是否成功。

行动

发出 show system commit 作模式命令,查看提交日志。

查看消息日志文件。

意义

作模式命令输出 show system commit消息 日志文件验证 Junos OS 是否执行了配置的事件策略作以修改和提交配置。在给定日期和时间以用户管理员的权限通过事件策略进行的提交作成功。 show system commit 输出和 消息 日志文件将引用在配置的提交选项中指定的提交注释。

验证配置更改

目的

通过查看 [edit interfaces ge-0/3/1] 配置的层次结构级别来验证配置更改。

行动
意义

通过事件策略修改了 ge-0/3/1 配置层次结构以添加 disable 该语句。

验证接口的状态

目的

在进行配置更改后, show interfaces ge-0/3/1 查看作模式命令的输出。

行动

发出 show interfaces ge-0/3/1 作模式命令。事件策略配置更改作禁用接口后,状态会从“已启用”更改为“管理上关闭”。