Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用配置群组快速配置设备

使用配置组设置和应用在同一配置中重复使用的通用元素。

配置组概述

本主题概述了 CLI 中的 Junos OS 配置组和继承模型。

配置群组的工作原理

通过配置组,您可以创建包含配置语句的组,并在其余配置中定向继承该组语句。同一组可以应用于配置的不同部分。一个组的配置语句的不同部分可以在配置的不同位置继承。

通过配置组,您可以创建更小、结构更合乎逻辑的配置文件,从而更轻松地配置和维护瞻博网络设备。例如,您可以将在配置中的许多位置重复的语句分组,例如在配置接口时。通过对语句进行分组,可以将配置更新限制为仅组。

您还可以在配置组中使用通配符。与通配符表达式匹配的任何对象都将继承组配置数据。

配置组机制独立于配置中其他位置使用的分组机制,例如 BGP 组。配置组提供了一种通用机制,您可以在整个配置过程中使用该机制,但只有 CLI 知道这种机制。执行配置指示的操作的各个软件进程接收配置的扩展形式;他们不知道配置组。

继承模型

配置组使用真正的继承,这涉及配置数据源与该数据目标之间的动态、持续关系。目标会自动继承您在配置组中更改的数据值。目标不需要包含继承的信息。但是,可以在目标中覆盖继承的值,而不会影响继承它们的源。

此继承模型使您能够仅查看特定于实例的信息,而看不到继承的详细信息。配置模式下的命令管道允许您显示继承的数据。

配置配置组

要使配置区域继承配置语句,必须先将这些语句放入配置组中。然后,将该组应用于配置层次结构中需要语句的级别。

对于要继承配置语句的配置区域:

  1. 将语句配置到配置组中。要配置配置群组和继承,您可以在 [edit] 层次结构级别添加 groups 语句:

  2. 将步骤 1 中的配置组应用到配置层次结构中需要语句的级别。

    将 语句包含在配置中需要配置组中包含的配置语句的任何位置。apply-groups [ group-names ]

创建配置群组

CLI Junos OS 使您能够创建包含配置语句的可重用组。您可以将这些组应用于多次重复相同配置语句的配置的不同部分。

在配置的不同部分中应用组时,该配置部分将继承组中配置的语句。配置组遵循继承规则,其中在配置数据源和该数据的目标之间设置动态、持续的关系。如果您更改配置群组中的数据值,继承的目标会自动反映这些更改。

如果需要,您可以覆盖目标配置中的值,这不会影响组中的源。

此继承模型使您能够仅查看特定于实例的信息,而看不到继承的详细信息。配置模式下的命令管道允许您显示继承的数据。例如,您可能希望将所有接口配置为 MTU 值 1500。ge-0/0/1

要为所有接口配置 MTU 值 1500,请执行以下操作:ge-0/0/1

  1. 创建 MTU 值为 1500 的组:

  2. 接下来,在接口配置中应用组。

  3. 查看继承的配置。

如果要在配置的不同部分中为接口 配置 MTU 值,可以使用选项应用 group 语句。ge-0/0/1apply-groups 如果手动执行此操作,后来想要增加 MTU,则可能需要手动更改每个接口。如果您使用配置组,则可以更改组配置,从而自动更新所有关联的接口。

您还可以在配置组中使用通配符,以允许与通配符表达式匹配的任何对象继承配置数据。例如:

如何应用配置群组

如果您希望瞻博网络设备配置继承配置组中的语句,请在配置中包含该 语句。apply-groups

如果指定多个组名,则必须按继承优先级顺序列出这些名称。第一组中的配置数据优先于后续组中的数据。

对于支持多个路由引擎的设备,您可以指定 和 分组名称。re0re1 仅当当前路由引擎位于插槽 0 中时,才会应用组中 指定的配置。同样,仅当当前路由引擎位于插槽 1 中时,才会应用组中 指定的配置。因此,两个路由引擎可以使用相同的配置文件,每个路由引擎仅使用适用于它的配置语句。re0re1 每个 或 组至少包含主机名和管理接口 () 的配置。re0re1fxp0 如果每个路由引擎使用不同的管理接口,则该组还应包含备份路由器和静态路由的配置。

在配置层次结构的每个特定级别只能包含一个 语句。apply-groups 特定层级的语句会列出要添加到包含语句的配置组列表中的配置组。apply-groups

在特定层级指定的值会覆盖从配置群组继承的值。

嵌套 语句中列出的组优先于外部语句中的组。apply-groups 在以下示例中,BGP 邻接方 从组 优先继承配置数据。10.0.0.1one 然后,它从组和组继承配置数据。twothree 组中 的配置数据将覆盖任何其他组中的数据。one 仅当语句不包含在任何其他组中时,才使用组中 的数据。ten

根级别是默认逻辑系统。配置为根级别定义的组时,无法将该组成功应用于层次结构级别下的 非默认逻辑系统。[edit logical-systems logical-system-name] 尽管如果您应用群组,设备会接受提交,但配置群组不会对非默认逻辑系统生效。您可以改为在根级别创建其他配置组,并将其应用到逻辑系统中。或者,您可以修改原始组,使其包含默认和非默认逻辑系统层次结构级别的配置。

示例:创建和应用配置群组

此示例说明了配置组的创建和应用。在此示例中,SNMP 配置分为组 配置层次结构和普通配置层次结构。basic

通过将特定于系统的配置(SNMP 联系)放入配置组中,从而将其与常规配置层次结构分离,您可以获得多种优势:

  • 您可以使用命令 替换任一部分,而不会丢弃另一部分的数据。load replace

  • 您可以为特定框设置联系人,因为组数据被特定于设备的数据隐藏。

此配置等效于以下内容:

示例:禁用配置群组的继承

您可以在层次结构顶层以外的任何级别禁用配置群组的继承。要禁用继承,请在 配置中包含以下语句:apply-groups-except

如果您在特定层级使用该语句, 但又想覆盖从特定参数的配置组继承的值,则此语句非常有用。apply-group

示例:禁用接口 so-1/1/0 上的继承

在以下示例中,语句 在接口级别全局应用。apply-groups 该 语句也会应用于接口 ,以便它使用 and 语句的默认值。apply-groups-exceptso-1/1/0hold-timelink-mode

由于设备可以从配置组继承配置数据,因此配置组可能会增加设备使用的实际值的混淆。要查看设备使用的实际值,请在命令中的竖线 ( | ) 后使用命令。display inheritanceshow 此命令在继承语句的级别以及继承语句的组显示继承语句:

要显示不带 ## 行的扩展配置(配置,包括继承的语句),请在命令中的竖线后使用命令:exceptshow

注:

使用该选项可删除所有带有 的行。display inheritance | except #### 因此,您可能无法查看有关使用位置 的密码或其他重要数据的信息。## 要查看包含所有信息的完整配置详细信息(不包括标有 的 注释),请使用 带有以下命令 的选项:##no-commentsdisplay inheritance

示例:使用配置组junos-defaults

Junos OS 提供一个名为的 隐藏且不可变的配置组,该组会自动应用于设备的配置。junos-defaults 该 组包含预配置的语句,这些语句包含常见应用程序的预定义值。junos-defaults 必须引用某些语句才能生效,例如应用程序的定义(例如,FTP 或 telnet 设置)。其他语句会自动应用,例如终端设置。

注:

配置组中包含的 许多标识符都以名称 开头。junos-defaultsjunos- 由于以名称开头的标识符保留供瞻博网络使用,因此您无法使用此名称 定义任何配置对象。junos-

您不能在语句中作为配置组名称添加。junos-defaultsapply-groups

要查看组中完整的 可用预设语句集,请在配置的顶层发出 配置模式命令。junos-defaultsshow groups junos-defaults 以下示例显示 Junos 默认组的部分列表:

要引用组中可用的语句,请在适用的层次结构级别包括选定的语句。junos-defaults junos-default-name

要查看组中的应用程序 列表,请发出 .junos-defaultsshow configuration groups junos-defaults applications 默认情况下,开头 的应用程序由瞻博网络配置。junos- 以下示例显示 Junos 默认组应用程序的部分列表。

示例:对配置群组使用通配符

您可以使用通配符来标识名称,并允许一个语句为各种语句提供数据。

在正常配置数据中使用通配符的样式与传统 UNIX shell 通配符的样式一致。在这种样式中,您可以使用以下元字符:

  • 星号 ( ) - 匹配任何字符串。*

  • 问号 ( ) - 匹配任意单个字符。?

  • 左方括号 ( ) - 引入字符类。[

  • 右方括号 ( ) - 指示字符类的结尾。] 如果缺少右方括号,则左方括号匹配左方括号 ,而不是引入字符类。[

  • 字符类匹配方括号之间的任何字符。在配置组中,必须用引号将包含字符类的接口名称括起来。

  • 连字符 ( ) - 指定字符范围。-

  • 感叹号 ( ) - 可以通过将感叹号设为字符类的第一个字符来补充字符类。! 要在字符类中包含右方括号 (),请使其成为列出的第一个字符(在 之后,如果有的话)。]! 要包含减号,请使其成为列出的第一个或最后一个字符。

注:

如果在层次结构中使用 标识符,请在标识符名称开头,而不是 。groups< 但是,如果要定义通配符语句,则可以使用 ,因为通配符语句必须具有结束 。<>

在配置组中使用通配符的规则与在正常配置中使用通配符的规则相同。但是, 在 层次结构下 使用时具有特殊含义。<>groups 在层次结构中,必须将使用通配符模式 &lt; 的任何术语括在尖括号中>以将其与配置文件中的其他通配符区分开来。groupspattern

通配符表达式匹配配置中仅与其表达式匹配的现有语句(并提供配置数据)。在前面的示例中,表达式将其语句传递给与表达式匹配的任何接口。<so-*>sonet-optionsso-*

以下示例演示如何指定一系列接口:

使用尖括号可以传递普通通配符,而无需修改。在配置中的任何匹配中,无论是否使用通配符,都会使用配置中遇到的匹配的第一项。在以下示例中,通配符 BGP 组中的数据按组的列出顺序继承。

  • 中的首选项值将覆盖 中的首选项。<*a*><*b*>
  • 来自的值将覆盖来自的值p<*c*><*d*>

来自这些组中的任何一个的数据值将覆盖以下中的数据 值:abcd

如何在使用配置群组时缩短提交时间

您可以使用配置组跨其他层次结构应用配置,而无需重新输入配置数据。您可以在配置组中指定每个配置详细信息。您还可以在配置组中使用通配符来配置数据范围,而无需详细说明每个配置行。使用配置组的另一种方法是创建一个继承路径,其中包含要应用的一长串配置。

提交使用配置组的配置时,提交过程会扩展并将组的所有配置数据读取到内存中,以便按预期应用配置。如果应用了许多配置组,则提交性能可能会受到负面影响,尤其是在配置组广泛使用通配符的情况下。

如果您的系统使用许多使用通配符的配置组,则可以在层次结构级别配置语句以提高提交时性能。persist-groups-inheritance[edit system commit]

使用此选项可使系统为数据库(而不是进程内存)中的每个配置组构建继承路径。此更改可以提高提交时间性能。但是,它也会增加数据库大小。

示例:使用配置组配置语句集

当配置组中存在语句集时,将继承所有值。例如:

对于未显示在括号内的集,也会继承所有值。例如:

示例:使用配置组配置接口

您可以使用配置组将通用接口介质参数与特定于接口的寻址信息分开。以下示例将 ATM 接口的配置数据放入名为 的组中。atm-options

示例:使用配置组为管理接口配置一致的 IP 地址

在具有多个路由引擎的设备上,为每个路由引擎配置了单独的管理接口 IP 地址。要访问主路由引擎,您必须知道哪个路由引擎处于活动状态并使用适当的 IP 地址。

一致访问主路由引擎的另一个选项是配置额外的 IP 地址。然后,无论哪个路由引擎处于活动状态,您都可以将此地址用于管理接口。此附加 IP 地址仅在主路由引擎的管理接口上处于活动状态。在切换期间,地址将移动到新的主路由引擎。

此示例为两个路由引擎配置地址 ,并包含一个 语句。10.17.40.131master-only 使用此配置, 地址仅在主路由引擎上处于活动状态。10.17.40.131 无论哪个路由引擎处于活动状态,地址都保持一致。地址分配给 ,分配给 。10.17.40.132fxp0re010.17.40.133fxp0re1

此功能在包含双路由引擎的所有路由器上可用。在由 TX Matrix 路由器组成的路由矩阵上,此功能仅适用于交换卡机箱 (SCC)。同样,在由 TX Matrix Plus 路由器组成的路由矩阵上,此功能仅适用于交换机结构机箱 (SFC)。

注:
  • 您必须为在专用和公共接口上具有重复地址的两个接口分配唯一的 IP 地址。启用平滑路由引擎切换 (GRES) 后,CLI 如果发现相同的地址,将显示相应的提交错误消息。如果为管理接口或内部接口(如)和外部物理接口(如 )配置相同的 IP 地址,则会发生此错误。fxp0ge-0/0/1

  • 管理以太网接口用于 TX Matrix Plus 路由器、路由矩阵中的 T1600 路由器和 PTX 系列数据包传输路由器。 自动创建设备的管理以太网接口。 em0Junos OSem0

示例:使用配置组配置对等实体

此示例创建一个组 ,其中包含与其他 ISP 相关的配置数据。some-isp 然后,它会在不同点插入 语句,以允许配置层次结构中的这些位置继承此数据。apply-group

示例:使用配置组建立区域配置

此示例使用整个公司的标准配置数据填充一个组,而另一个组包含与此标准的区域偏差:

示例:配置通配符配置组名称

通配符是使用特殊字符创建可应用于多个语句的模式的配置组名称。通配符可用于将一组配置选项复制到许多不同的配置组。您必须正确设置通配符名称,以确保通配符配置选项复制到相应的配置组。

此示例为语句下的 和 通配符组配置不同的值。<*-major><*-minor>label-switched-path 星号 () 字符表示通配符名称中可以匹配任何字符串的部分。* 例如,下 配置选项将传递到 以及其名称中包含的任何其他 配置组 。label-switched-path <*-major>label-switched-path metro-majorlabel-switched-path-major

示例:引用默认组中的预设语句

以下示例是默认组中可用于有状态防火墙中的 FTP 的预设语句:

要从缺省组中引用预设缺省语句,请在适用的层次结构级别包含该 语句。junos-default-name 例如,要在有状态防火墙中引用 FTP 的默认语句,请在层次结构级别包含该 语句 :junos-ftp[edit services stateful-firewall rule my-rule term my-term from applications]

示例:查看已应用于配置的默认语句

要查看已应用于设备配置的默认值,请发出 命令。show | display inheritance defaults 此示例在层次结构级别显示 继承的默认值:[edit system ports]

如果您选择不使用现有的默认语句,则可以手动创建自己的配置组。

要查看完整的配置信息,省略任何标有 的注释,请将选项与命令一起使用。##no-commentsdisplay inheritance

设置路由引擎配置组

在具有两个路由引擎的设备中,两个路由引擎应共享一个配置。此设置可确保两个路由引擎配置相同。在此配置中,创建两个路由引擎组,每个路由引擎一个。在这些组中,您可以指定路由引擎特定的参数。

有关冗余路由引擎系统和 re0 组的初始配置的详细信息,请参阅 Junos OS 高可用性用户指南

要设置路由引擎配置组:

  1. 创建配置组 。re0 组 是仅在冗余路由平台中使用的特殊组指示符 。re0RE0
  2. 导航到 配置层次结构的级别。groups re0
  3. 指定设备主机名。
    注:

    DNS 服务器不使用您在设备配置中指定的主机名来解析为正确的 IP 地址。DNS 服务器使用此主机名在 CLI 中显示路由引擎的名称。例如,当您登录到 CLI 时,主机名会显示在命令行提示符处:

  4. 配置设备以太网接口的 IP 地址和前缀长度。
    • 对于所有设备 ,TX Matrix Plus 路由器、路由矩阵中的 T1600 或 T4000 路由器以及 PTX 系列数据包传输路由器:except

    • 对于 TX Matrix Plus 路由器、仅路由矩阵中的 T1600 或 T4000 路由器以及 PTX 系列数据包传输路由器:

      要用作 带外管理以太网接口,必须使用有效的 IP 地址为其逻辑端口 配置。em0em0.0

  5. 返回到层次结构的顶层。
  6. 创建配置组 。re1
  7. 导航到 配置层次结构的级别。groups re1
  8. 指定设备主机名。
  9. 配置设备以太网接口的 IP 地址和前缀长度。
    • 对于所有设备 ,TX Matrix Plus 路由器、路由矩阵中的 T1600 或 T4000 路由器以及 PTX 系列数据包传输路由器:except

    • 仅适用于路由矩阵中的 TX Matrix Plus 路由器和 T1600 或 T4000 路由器:

      要用作 带外管理以太网接口,必须使用有效的 IP 地址为其逻辑端口 配置。em0em0.0

  10. 返回到层次结构的顶层。
  11. 指定组应用程序顺序。

如何使用条件应用配置群组

您可以在层级使用该语句来定义应用配置组的条件。when[edit groups group-name]

您可以根据机箱类型、型号或路由引擎、 虚拟机箱 成员、群集节点以及一天或日期的开始和可选结束时间配置要应用的组。

例如,您可以使用该 语句为每种类型的节点创建通用配置组,然后根据某些节点属性(如机箱或型号)应用配置。when

示例:配置应用配置组的条件

此示例说明如何配置应用指定配置组的条件。

要求

在配置此示例之前,不需要除设备初始化之外的特殊配置。

概述

您可以在层次结构级别配置组配置数据 。[edit groups group-name] 然后,您可以使用该 语句根据如下条件应用组配置:when 机箱类型、型号、路由引擎、虚拟机箱成员、群集节点以及一天或日期的开始和可选结束时间。

如果您在单个配置组中指定多个条件,则必须先满足所有条件,然后才能应用配置组。

您可以指定要应用的配置群组的开始时间或持续时间。如果仅指定了开始时间,系统会在指定时间应用配置群组,并在时间更改之前一直有效。如果指定了结束时间,则应用配置群组会在每天的指定时间启动和停止。

此示例在配置组中设置条件, 以便仅当满足以下所有条件时应用此组:test1 路由器是机箱类型 LCC0 的 MX240 型号路由器,路由引擎作为 RE0 运行,是节点 0 上虚拟机箱的成员 0,配置组仅在每天上午 9:00 至下午 5:00 之间生效。

配置

CLI 快速配置

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

程序

分步过程

要配置配置组 的条件:test1

  1. 设置标识型号 MX240 路由器的条件。

  2. 将标识机箱类型的条件设置为 LCC0。

  3. 将标识运行路由引擎 的条件设置为 。RE0

  4. 设置标识虚拟机箱 的条件。member0

  5. 设置标识集群 的条件。node0

  6. 设置仅在每天上午 9:00 至下午 5:00 之间应用组的条件。

    注:

    指定时间的语法为:time <start-time> [to <end-time>] 使用时间格式 YYYY-MM-DD.HH:MM、HH:MM 或 HH。

  7. 提交配置。

成果

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

验证

使用条件数据检查组继承
目的

验证应用配置组中的条件数据时是否继承。

操作

使用数据发出操作命令以显示条件继承。show | display inheritancewhen 使用此示例,可以发出以下命令之一来确定条件数据是否已继承: