示例:使用事件策略更改配置
可能需要修改配置以响应特定事件。从 Junos OS 版本 12.1 开始,您可以配置事件策略,以便在事件策略由一个或多个特定事件触发时执行配置更改。
此示例模拟特定接口的SNMP_TRAP_LINK_DOWN事件。收到事件后,事件策略会使用 change-configuration
操作来修改静态路由的配置,以便通过不同的出口接口使用新的下一跳跃 IP 地址。
要求
运行 Junos OS 版本 12.1 或更高版本的路由、交换或安全设备。
概述
当策略由单个事件或关联事件触发时,您可以配置事件策略操作来修改配置。假设您有一个静态路由到 10.10.10.0/24 网络,通过出口接口 ge-0/3/1 的下一跃点 IP 地址为 10.1.2.1。在某个时候,此接口会关闭,从而触发SNMP_TRAP_LINK_DOWN事件。
此示例会创建名为“更新上 snmp-trap-link-down”的事件策略。配置了事件策略,以便事件进程侦听与接口 ge-0/3/1.0 关联的SNMP_TRAP_LINK_DOWN事件。如果接口发生故障,事件策略将执行更改配置操作。事件策略配置命令通过 ge-0/3/1 出口接口移除静态路由,并通过出口接口 ge-0/2/1 创建下一跃点 IP 地址为 10.1.3.1 的相同目标网络的新静态路由。命令按事件策略中显示的顺序执行。
事件策略更改配置提交操作在用户名 bsmith 下执行,提交评论指定更改是通过关联的事件策略完成的。重试计数设置为 5,重试间隔设置为 4 秒。如果发出配置更改的初始尝试失败,系统将尝试更改配置 5 次,每次尝试之间等待 4 秒。
虽然此处未显示,但您可能有第二个类似事件策略,用于执行更改配置操作,以便在接口备份时更新静态路由。在这种情况下,该策略将触发同一接口的SNMP_TRAP_LINK_UP事件。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,移除任何换行符,更改与网络配置匹配所需的任何详细信息,然后将命令复制粘贴到层次结构级别的 [edit]
CLI 中:
set event-options policy update-on-snmp-trap-link-down events snmp_trap_link_down set event-options policy update-on-snmp-trap-link-down attributes-match snmp_trap_link_down.interface-name matches ge-0/3/1.0 set event-options policy update-on-snmp-trap-link-down then change-configuration retry count 5 set event-options policy update-on-snmp-trap-link-down then change-configuration retry interval 4 set event-options policy update-on-snmp-trap-link-down then change-configuration commands "delete routing-options static route 10.1.10.0/24 next-hop" set event-options policy update-on-snmp-trap-link-down then change-configuration commands "set routing-options static route 10.1.10.0/24 next-hop 10.1.3.1" set event-options policy update-on-snmp-trap-link-down then change-configuration user-name bsmith set event-options policy update-on-snmp-trap-link-down then change-configuration commit-options log "updating configuration from event policy update-on-snmp-trap-link-down" set routing-options static route 10.1.10.0/24 next-hop 10.1.2.1 set system syslog file syslog-event-daemon-warning daemon warning
配置事件策略
逐步过程
创建和命名事件策略。
[edit] bsmith@R1# edit event-options policy update-on-snmp-trap-link-down
配置语
events
句,使事件策略触发SNMP_TRAP_LINK_DOWN事件。设置语
attributes-match
句,以便仅当 ge-0/3/1.0 接口发生SNMP_TRAP_LINK_DOWN事件时,策略才会触发。[edit event-options policy update-on-snmp-trap-link-down] bsmith@R1# set events snmp_trap_link_down bsmith@R1# set attributes-match snmp_trap_link_down.interface-name matches ge-0/3/1.0
指定在 ge-0/3/1 接口停机时执行的配置模式命令。
在单行中配置每个命令,将命令字符串括在引文中,然后指定完整的语句路径。
[edit event-options policy update-on-snmp-trap-link-down then change-configuration] bsmith@R1# set commands "delete routing-options static route 10.1.10.0/24 next-hop" bsmith@R1# set commands "set routing-options static route 10.1.10.0/24 next-hop 10.1.3.1"
配置提交选项。
使用描述配置更改的评论来配置
log
选项。在通过相关事件策略成功执行提交操作后,将该评论添加到提交日志中。[edit event-options policy update-on-snmp-trap-link-down then change-configuration] bsmith@R1# set commit-options log "updating configuration from event policy update-on-snmp-trap-link-down"
如果有双路由引擎,则配置
synchronize
选项以在两个路由引擎上提交配置。force
包括在其他路由引擎上强制提交的选项,而忽略任何警告。此示例未配置synchronize
和force
选项。(可选)配置重试计数和重试间隔。
在此示例中,
count
设置为 5,interval
即 4 秒。[edit event-options policy update-on-snmp-trap-link-down then change-configuration] bsmith@R1# set retry count 5 interval 4
(可选)配置对配置进行更改和提交权限的用户名。
如果未指定用户名,则该操作将作为用户 root 执行。
[edit event-options policy update-on-snmp-trap-link-down then change-configuration] bsmith@R1# set user-name bsmith
在层次结构级别配置新的日志文件
[edit system syslog]
,记录设备daemon
和严重性的warning
syslog 事件。这会捕获SNMP_TRAP_LINK_DOWN事件。
[edit system syslog] bsmith@R1# set file syslog-event-daemon-warning daemon warning
要测试此示例,请将静态路由配置到 10.1.10.0/24 网络,下一跳 IP 地址为 10.1.2.1。
[edit] bsmith@R1# set routing-options static route 10.1.10.0/24 next-hop 10.1.2.1
提交配置。
bsmith@R1# commit
[edit routing-options static]
禁用 ge-0/3/1 接口之前,请查看配置的层次结构级别,并注意下一跳跃 IP 地址。bsmith@R1> show configuration routing-options static ... route 10.1.10.0/24 next-hop 10.1.2.1; ...
要手动测试事件策略,请将 ge-0/3/1 接口暂时脱机以生成SNMP_TRAP_LINK_DOWN事件。
[edit] bsmith@R1# set interfaces ge-0/3/1 disable bsmith@R1# commit
结果
[edit] event-options { policy update-on-snmp-trap-link-down { events snmp_trap_link_down; attributes-match { snmp_trap_link_down.interface-name matches ge-0/3/1.0; } then { change-configuration { retry count 5 interval 4; commands { "delete routing-options static route 10.1.10.0/24 next-hop"; "set routing-options static route 10.1.10.0/24 next-hop 10.1.3.1"; } user-name bsmith; commit-options { log "updating configuration from event policy update-on-snmp-trap-link-down"; } } } } } routing-options { static { route 10.1.10.0/24 next-hop 10.1.2.1; } } system { syslog { file syslog-event-daemon-warning { daemon warning; } } }
验证
确认配置工作正常。
验证接口的状态
目的
验证 ge-0/3/1 接口是否停机并触发SNMP_TRAP_LINK_DOWN事件。
行动
show interfaces ge-0/3/1
发出操作模式命令。命令输出显示接口的管理脱机。
bsmith@R1> show interfaces ge-0/3/1 Physical interface: ge-0/3/1, Administratively down, Physical link is Down <output omitted>
查看步骤 7 中配置的系统日志文件的内容。输出显示 ge-0/3/1.0 接口发生故障并生成SNMP_TRAP_LINK_DOWN事件。
bsmith@R1> show log syslog-event-daemon-warning Oct 10 18:00:57 R1 mib2d[1371]: SNMP_TRAP_LINK_DOWN: ifIndex 531, ifAdminStatus down(2), ifOperStatus down(2), ifName ge-0/3/1.0
验证提交
目的
查看提交日志和消息日志文件,验证事件策略提交操作是否成功。
行动
show system commit
发出操作模式命令以查看提交日志。在此示例中,日志确认配置是在给定日期和时间的用户 bsmith 的权限下通过事件策略提交的。
bsmith@R1> show system commit 0 2011-10-10 18:01:03 PDT by bsmith via junoscript updating configuration from event policy update-on-snmp-trap-link-down 1 2011-09-02 14:16:44 PDT by admin via netconf 2 2011-07-08 14:33:46 PDT by root via other
查看 消息 日志文件。收到SNMP_TRAP_LINK_DOWN事件后,Junos OS 执行配置的事件策略操作以修改和提交配置。提交操作发生在用户 bsmith 的权限下。
bsmith@R1> show log messages | last 20 ... Oct 10 18:00:57 R1 mib2d[1371]: SNMP_TRAP_LINK_DOWN: ifIndex 531, ifAdminStatus down(2), ifOperStatus down(2), ifName ge-0/3/1.0 Oct 10 18:00:59 R1 file[17575]: UI_COMMIT: User 'bsmith' requested 'commit' operation (comment: updating configuration from event policy update-on-snmp-trap-link-down) Oct 10 18:01:03 R1 eventd: EVENTD_CONFIG_CHANGE_SUCCESS: Configuration change successful: while executing policy update-on-snmp-trap-link-down with user bsmith privileges
如果配置了不同的日志文件,请查看特定于配置的文件。
意义
操作show system commit
模式命令和消息日志文件的输出验证提交操作是否成功。提交操作是在用户 bsmith 的权限下通过事件策略完成的。show system commit
输出和消息日志文件引用层级语句中指定的log
[edit event-options policy update-on-snmp-trap-link-down then change-configuration commit-options]
提交评论。
故障 排除
故障排除提交错误
问题
触发的事件策略不会对指定的配置进行更改,并且日志验证提交是否不成功。
bsmith@R1> show log messages | last 20 ... Oct 10 17:48:59 R1 mib2d[1371]: SNMP_TRAP_LINK_DOWN: ifIndex 531, ifAdminStatus down(2), ifOperStatus down(2), ifName ge-0/3/1.0 Oct 10 17:49:01 R1 file[17142]: UI_LOAD_EVENT: User 'bsmith' is performing a 'rollback' Oct 10 17:49:01 R1 eventd: EVENTD_CONFIG_CHANGE_FAILED: Configuration change failed: rpc to management daemon failed while executing policy update-on-snmp-trap-link-down with user bsmith privileges
如果配置被锁定,或者配置模式命令具有错误的语法或顺序,则可能会发生故障提交。
解决 方案
检查层次结构级别的 [edit event-options policy update-on-snmp-trap-link-down then change-configuration commands]
配置模式命令,并验证语法和执行顺序是否正确。
此外,增加重试计数和间隔选项,以便如果配置锁定,事件策略会尝试在第一个失败实例之后更改指定的配置次数。