Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

提交配置

使用 commit 配置模式命令,可以将设备配置更改保存到配置数据库中,并激活设备上的配置。

配置的提交模型

设备配置使用提交模型保存 - 根据需要修改候选配置,然后提交到系统。提交配置时,设备会检查配置中是否有语法错误,如果未发现错误,配置将另存为 juniper.conf.gz 并激活。以前处于活动状态的配置文件将另存为第一个回滚配置文件 (juniper.conf.1.gz),任何其他回滚配置文件将递增 1。例如, juniper.conf.1.gz 递增为 juniper.conf.2.gz,使其成为第二个回滚配置文件。设备最多可以保存 49 个回滚配置(编号为 1 到 49)。

在设备上,当前配置文件和前三个回滚文件(juniper.conf.gz.1、juniper.conf.gz.2、juniper.conf.gz.3)位于 /config 目录中。(其余回滚文件 4 到 49 位于 /var/db/config 中。

如果恢复配置文件 rescue.conf.gz 存在,则此文件也位于 /config 目录中。出厂默认文件位于 /etc/config 目录中。

有两种机制用于在设备内的路由引擎之间传播配置:

  • 同步:将配置从一个路由引擎传播到同一设备机箱内的第二个路由引擎。

    要同步配置,请使用 commit synchronize CLI 命令。如果其中一个路由引擎被锁定,则同步将失败。如果由于配置文件锁定导致同步失败,您可以使用命令 commit synchronize force 。此命令将覆盖锁定并同步配置文件。

  • 分布:在多机箱设备上的路由平面上传播配置。分配是自动发生的。没有可用于控制分发过程的用户命令。如果在分发配置期间锁定了配置,则锁定的配置不会收到分发的配置文件,因此同步将会失败。您需要在配置之前清除锁定并重新同步路由平面。

    注意:

    在多机箱平台上使用 commit synchronize force CLI 命令时,配置文件的强制同步不会影响配置文件在路由平面上的分布。如果从发出命令的设备远程锁定了配置文件,则远程设备上的同步将失败。您需要清除锁定并重新发出 synchronization 命令。

    注意:

    Junos OS Evolved 不支持以下 commit 配置选项:

    • fast-synchronize

    • peers

    • peer-synchronize

    • commit-synchronize-server

提交设备配置

要将设备配置更改保存到配置数据库中并激活设备上的配置,请使用 commit 配置模式命令。您可以从任何层级发出 commit 命令:

输入 commit 命令时,首先会检查配置是否存在语法错误 (commit check)。然后,如果语法正确,配置将被激活并成为当前的作设备配置。

注意:

如果路由器上启用了平滑路由引擎切换,则不建议在备份路由引擎上执行提交作。

配置提交可能由于以下任一原因而失败:

  • 配置包含不正确的语法,这会导致提交检查失败。

  • 您尝试提交的候选配置大于 700 MB。

  • 配置由输入 configure exclusive 命令的用户锁定。

如果配置包含语法错误,则会出现一条消息,指示错误的位置,并且配置不会激活。错误消息的格式如下:

例如:

在重新提交配置之前,必须先更正错误。要快速返回到错误所在的层级,请从错误的第一行复制路径,并将其粘贴到层级的配置模式提示 [edit] 处。

未提交的候选配置文件是 /var/rundb/juniper.db。默认情况下,文件的大小限制为配置数据库的默认最大大小。您可以通过发出 show system configuration database usage 命令来验证磁盘上的数据库大小和最大数据库大小。您还可以通过发出 run file list /var/rundb detail 命令从配置模式查看文件的大小。如果候选配置超过最大数据库大小,则提交将失败,并显示消息 configuration database size limit exceeded。若要解决此错误,您可以:

  • 通过在支持此语句的设备上[edit system configuration-database]在层次结构级别配置extend-size语句来增加配置数据库的最大大小。必须重新启动设备才能使更改生效。

  • 通过创建带有通配符的配置组或在防火墙过滤器中定义不太具体的匹配策略,简化配置并减小文件大小。

提交配置并在必要时重新启动后,可以通过发出 show system configuration database usage 命令来验证对磁盘上数据库大小或最大数据库大小的任何更新。

注意:

[edit interfaces] 层次结构级别为配置更改显示的 CLI 提交时间警告将被移除,并记录为系统日志消息。

这也适用于以下层级的 VRRP 配置:

  • [edit interfaces interface-name unit logical-unit-number family (inet | inet6) address address]

  • [edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number family (inet | inet6) address address]

提交配置时,将以当前形式提交整个配置。

注意:
  • 如果设备上启用 了平滑路由引擎切换 ,则不建议在备份路由引擎上执行提交作。

  • 如果为管理接口或内部接口(如 re0:mgmt-0 )和外部物理接口(如 xe-0/0/1)配置相同的 IP 地址,则启用平滑路由引擎切换 (GRES) 时,CLI 将显示相应的提交错误消息,指出已在专用接口和公共接口上找到相同的地址。在这种情况下,您必须为两个地址重复的接口分配唯一的 IP 地址。

多个用户配置软件时的提交作

最多 32 个用户可同时处于配置模式,对配置进行更改。所有用户所做的所有更改对编辑配置的每个人都可见 - 只要用户在更改配置的命令(如 seteditdelete)结束时按 Enter 键,更改就会可见。

当编辑配置的任何用户发出 commit 命令时,CLI 会检查并激活所有用户所做的所有更改。

如果使用 configure private 命令进入配置模式,则每个用户都有一个专用候选配置,可以独立于其他用户进行编辑。当您提交配置时,CLI 只会提交您自己的更改。要在其他用户提交更改后同步配置副本,可以在配置模式下运行 update 命令。提交作还会更新所有专用候选配置。例如,假设用户 X 和用户 Y 都处于 configure private 模式,并且用户 X 提交了配置更改。当用户 Y 执行后续提交作,然后查看新配置时,用户 Y 看到的新配置包括用户 X 所做的更改。

如果使用configure exclusive命令进入配置模式,只要您保持配置模式,就可以锁定候选配置。这使您可以在不受其他用户干扰的情况下进行更改。其他用户可以进入和退出配置模式,但不能提交配置。即使在您输入configure exclusive命令之前其他用户已进入配置模式,也是如此。例如,假设用户 X 已处于configure privateconfigure 模式。然后假设用户 Y 进入模式configure exclusive。用户 X 无法对配置进行任何更改,即使用户 X 在用户 Y 登录之前输入了这些更改。如果用户 Y 退出configure exclusive模式,则用户 X 可以提交在或configure模式下configure private所做的更改。

提交准备和激活概述

您可以通过两个步骤完成提交过程。通过两步提交功能,您可以配置多个设备并同时激活这些配置。两步提交为提交在系统上生效提供了明确的时间窗口。准备提交后,您可以进入提交模式,但您将收到一条消息,指出提交正在等待激活。

在第一步,即准备阶段,验证提交并生成包含必要文件的新数据库。如果配置包含任何语法错误,则会显示相应的错误消息,并且未准备配置。如果在准备阶段发生故障,将显示错误消息 commit check-out failed

在第二步,即激活阶段,激活先前准备好的配置。接下来,如果需要清除准备好的配置,可以使用命令执行此作 clear system commit prepared 。成功清除挂起的提交后,将生成一条日志消息。

注意:

建议不要在准备阶段和激活阶段之间对配置执行更改。

对于时间关键型提交,两步提交过程优于单步提交过程。在单步流程中,准备时间可能会因设备上的现有配置而异。在两步流程中,可以更有效地处理复杂的准备工作。

提供了配置命令,允许您准备配置缓存并激活配置。您可以使用新配置准备设备,并在所需的确切时间激活它们。

commit prepare命令验证配置,命令commit activate激活配置。命令具有以下配置选项:

  • and-quit

  • no-synchronize

  • peers-synchronize

  • synchronize

commit preparecommit activate 命令仅可用于专用、独占和共享提交。这些命令不适用于动态模式和瞬时模式。此功能适用于多机箱设备,但不适用于批量提交。

为了使用网络配置协议 (NETCONF) 支持此功能,提供了以下新的远程过程调用 (RPC):

  • <commit-configuration>< prepare/></commit-configuration>

  • <commit-configuration><activate/></commit-configuration>

  • <clear-system-commit><prepared/></clear-system-commit>

分两个步骤提交设备配置:准备和激活

您可以通过两个步骤完成提交过程。这使您能够配置多个设备,并且可以同时激活这些配置。在第一步(称为准备阶段)中,验证提交并生成新数据库以及必要的文件。如果配置包含任何语法错误,则会显示相应的错误消息,并且未准备配置。在第二步(称为激活阶段)中,先前准备好的配置将被激活,并成为当前的可作设备配置。

要准备配置,请执行以下作:

  1. [edit]在配置模式下的层次结构级别,对配置进行必要的更改。

    例如,要配置系统的脚本,请发出以下命令:

    例如:

  2. 发出 commit prepare 命令。

    将显示消息 commit prepare successful

    如果准备阶段失败,将显示错误消息 commit check-out failed

  3. 要在发出命令后commit prepare验证命令的输出show system commit,请使用以下命令:

要激活准备好的配置,请执行以下作:

  1. commit activate使用命令

    将显示消息 commit complete

  2. 要验证已激活的系统配置,请使用以下命令:

要验证发出之后commit activateshow system commit show system commit revision detail 命令的输出,请发出以下命令。

激活设备配置并确认

提交当前候选配置时,可能需要显式确认才能使提交成为永久配置。如果要验证配置更改是否正常工作,并且不会阻止对设备的访问,这将非常有用。如果更改阻止访问或导致其他错误,设备会自动返回到之前的配置,并在回滚确认超时通过后恢复访问。此功能称为自动回滚。

要提交当前候选配置,但需要显式确认才能使提交成为永久配置,请使用 commit confirmed 配置模式命令:

验证更改是否正常工作后,可以在命令的 commit confirmed 10 分钟内输入commitcommit check 命令,使新配置保持活动状态。例如:

如果在特定时间(默认为 10 分钟)内未确认提交,作系统会自动回滚到之前的配置,并向所有登录用户发送广播消息。

要显示何时在 commit confirmed 命令之后安排回滚,请输入 show system commit 命令。例如:

commit与命令一样,该commit confirmed命令会验证配置语法并报告所有错误。如果没有错误,配置将暂时激活(默认为 10 分钟),并开始在设备上运行。

图 1:确认配置 Confirm a Configuration

要更改必须确认新配置之前的时间量,请指定发出命令时的分钟数:

您也可以在配置模式中使用[edit private]命令commit confirmed

计划提交作

您可以安排候选配置何时处于活动状态。要保存设备配置更改并在将来或重新启动时激活设备上的配置,请使用commit at配置模式命令,并在 [edit] 层级指定reboot或将来时间:

stringreboot 或将来激活配置更改的时间。您可以用两种格式指定时间:

  • 格式 hh:mm为 [:ss](小时、分钟和可选秒)的时间值 - 在指定时间提交配置,该时间必须在未来但在发出配置模式命令当天 commit at 的晚上 11:59:59 之前提交配置。使用“24 小时时间”作为 hh 值;例如, 04:30:00 为 4:30:00 AM,为 20:00 8:00 PM。时间是根据路由器上的时钟和时区设置来解释的。

  • 格式 yyyy-mm-dd hh:mm为 [:ss] 的日期和时间值(年、月、日期、小时、分钟和(可选)秒) - 在指定的日期和时间提交配置,该日期和时间必须在发出命令之后。 commit at 使用 24 小时时间作为 hh 值。例如, 2018-08-21 12:30:00 是 2018 年 8 月 21 日中午 12:30。时间是根据路由器上的时钟和时区设置来解释的。

用引号 (“ ”) 将值括起来string。例如,commit at 8:00:00"1".对于日期和时间,将这两个值都包含在同一组引号中。例如commit at "2018-03-10 14:00:00".

发出 commit at 配置模式命令时,将立即执行提交检查。如果检查结果成功,则当前用户将退出配置模式,配置数据将保留为只读状态。在计划的提交完成之前,不能执行其他提交。

注意:

如果设备软件在配置更改激活之前出现故障,则所有配置更改都将丢失。

发出request system reboot命令后,无法输入commit at 配置命令。

将提交作安排在将来的特定时间后,将无法输入 request system reboot 命令。

当计划的提交处于挂起状态时,您无法提交配置。有关如何使用命令取消计划配置 clear 的信息,请参阅 CLI 资源管理器

注意:

如果设备上启用了平滑路由引擎切换,则不建议在备份路由引擎上执行提交作。

监控提交过程

要监控设备配置提交过程,请在管道后使用 display detail 命令并命令 commit

例如:

添加注释以描述提交的配置

您可以添加一条注释,描述对已提交配置所做的更改。为此,请包含 commit comment 语句。注释可以长达 512 个字符,您必须在一行上键入。

comment-string 是评论的文本。

注意:

不能在命令中 commit check 包含注释。

要向commit命令添加注释,请在命令后commit添加comment语句:

要向commit confirmed命令添加注释,请在命令后commit confirmed添加comment语句:

要查看这些提交注释,请发出 show system commit 作模式命令。

注意:

您也可以在配置模式中使用[edit private]命令commit confirmed

从 Junos OS 24.2R1 版开始,Junos OS 强制您为每个提交请求发出注释。这有助于跟踪多个用户或管理员在提交时所做的更改。

注意:

如果没有comment参数,commit则不会执行命令。

要强制用户为每个提交请求添加注释,请在[edit system commit]层次结构级别配置force-commit-log选项。

批处理提交概述

批量提交聚合或合并来自不同 CLI 会话或用户的多个配置编辑,并将它们添加到批量提交队列中。设备上运行的批处理提交服务器从批量提交队列中获取一个或多个作业,将配置更改应用于共享配置数据库,然后在单个提交作中提交配置更改。

提交服务器根据用户指定的批处理的优先级或添加批处理作业的时间对批处理进行优先级排序。一个批处理提交完成后,下一组配置更改将被聚合并加载到批处理队列中,以供批处理提交作的下一个会话使用。将创建批处理,直到队列目录中没有剩余提交条目。

与常规提交作(所有提交都按顺序独立提交)相比,批量提交通过在一次提交作中提交多个小的配置编辑来节省时间和系统资源。

批量提交是从 [edit batch] 配置模式执行的。可以在层次结构级别上配置 [edit system commit server] 提交服务器属性。

聚合和错误处理

当其中一个聚合作业中出现加载时错误时,遇到该错误的提交作业将被丢弃,其余作业将被聚合并提交。

例如,如果有五个提交作业(commit-1、、commit-2commit-3commit-4、和 commit-5)正在聚合,并且commit-3在加载时遇到错误,commit-3则会被丢弃,commit-2commit-4commit-1commit-5并将被聚合并提交。

如果在聚合和提交两个或多个作业时提交作期间出现错误,则该聚合将被丢弃,并且每个作业都像常规提交作一样单独提交。

例如,如果聚合了五个提交作业(commit-1、、commit-2commit-3commit-4commit-5),并且由于 commit-3而导致提交错误,则该聚合将被丢弃,commit-1commit-2commit-4commit-3commit-5和将单独提交,并且 CLI 会报告 的commit-3提交错误。

示例:配置 Batch Commit 服务器属性

此示例说明如何配置批处理提交服务器属性以管理批处理提交作。

概述

通过在 [edit system commit server] 层次结构级别配置服务器属性,可以控制提交服务器如何处理批处理提交队列。这使您能够控制聚合或合并到单个批处理提交中的提交作业数、可以添加到队列的最大作业数、保留批处理提交错误日志的天数、两次批处理提交之间的间隔以及批量提交作的跟踪作。

配置

CLI 快速配置

要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层级的 CLI [edit] 中。可以从常规 [edit] 模式或 [edit batch] 模式配置提交服务器属性。

设备 R0

配置提交服务器属性

分步过程
  1. (选答)配置在单个提交作中聚合或合并的提交事务数。

    maximum-aggregate-pool 默认值为 5

    注意:

    设置为maximum-aggregate-pool1单独提交每个作业。

    在此示例中,提交事务数设置为 4 指示在启动提交作之前将四个不同的提交作业聚合到单个提交中。

  2. (选答)配置批处理中允许的最大作业数。

    这会限制添加到队列中的提交作业数。

    注意:

    如果设置为maximum-entries1,则提交服务器无法向队列添加多个作业,并且当您尝试提交多个作业时,CLI 将显示相应的消息。

  3. (选答)配置在开始下一个批处理提交作之前等待的时间(以秒为单位)。

  4. (选答)配置保留错误日志的天数。

    默认值为 30 days。

  5. (选答)配置跟踪作以记录批量提交事件。

    在此示例中,用于记录批处理提交事件 commitd_nov的文件名为 ,并且设置了所有 traceoption 标志。

结果

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

从批处理配置模式提交配置

分步过程

要从该 [edit batch] 模式提交配置,请执行下列作之一:

  • 登录设备并输入 commit

  • 要为批处理提交作业分配更高的优先级,请发出带有priority选项的命令commit

  • 要在不将配置更改与队列中的其他提交作业聚合的情况下提交配置,请发出带有atomic选项的命令commit

  • 要提交配置而不将配置更改与队列中的其他提交作业聚合在一起,并向提交作业发出更高的优先级,请发出带有atomic priority选项的命令commit

验证

确认配置工作正常。

检查批处理提交服务器状态

目的

检查批处理提交服务器的状态。

行动

默认情况下,提交服务器的状态为 Not running。仅当批处理提交作业添加到队列中时,提交服务器才会开始运行。

将批处理提交作业添加到队列中时,提交服务器的状态将更改为 Running

意义

Jobs in process 字段列出了正在进行的作业的提交 ID。

检查批量提交状态

目的

检查提交服务器队列中的批处理提交状态。

行动
意义

Pending commits 显示已添加到提交队列但尚未提交的提交作业。 Completed commits 显示成功的提交作业列表。 Error commits 是由于错误而失败的提交。

查看批量提交作业中的修补程序文件

目的

查看时间戳、修补程序文件以及每个提交作业的状态。修补程序文件显示添加到批处理提交队列的每个提交作中发生的配置更改。

行动
  1. show system commit server queue patch使用命令查看所有提交作的修补程序。

    输出显示每个提交作业 ID 的配置更改。

  2. 要查看特定提交作业 ID 的修补程序,请发出 show system commit server queue patch id <id-number> 命令。

意义

输出显示为提交作业创建的修补程序。 +- 符号表示特定提交作业的配置更改。

查看批量提交作的跟踪文件

目的

查看批量提交作的跟踪文件。您可以将跟踪文件用于故障排除。

行动
  • file show /var/log/<filename>使用命令查看日志文件中的所有条目。

    输出显示提交服务器事件日志和批量提交的其他日志。

  • 要仅查看成功批处理提交作的日志条目,请发出带有| match committed管道选项的命令file show /var/log/<filename>

    输出显示成功提交作的批处理提交作业 ID。

  • 要仅查看失败的批处理提交作的日志条目,请发出带有| match “Error while”管道选项的命令file show /var/log/<filename>

    输出显示失败提交作的提交作业 ID。

  • 要仅查看提交服务器事件的日志条目, file show /var/log/<filename> 请发出带有 | match “commit server” 管道选项的命令。

    输出显示提交服务器事件日志。

备份备用启动驱动器上的已提交配置

提交配置并确信其运行成功后,应发出 request system snapshot 命令以将新软件备份到文件系统上 /altconfig 。如果不发出命令, request system snapshot 则备用启动驱动器上的配置将与主启动驱动器上的配置不同步。

命令 request system snapshot 将根文件系统备份到 /altroot、 和 /config /altconfig。root 和 /config 文件系统位于路由器的闪存驱动器上, /altroot/altconfig 文件系统位于路由器的硬盘上(如果可用)。

发出 request system snapshot 命令后,无法返回到软件的前一个版本,因为软件的运行副本和备份副本完全相同。