帮助我们改善您的体验。

让我们了解您的想法。

您是否能抽出两分钟的时间完成一份问卷调查?

Announcement: Our new, consolidated Junos CLI Reference is now available.

close
external-header-nav
keyboard_arrow_up
list Table of Contents

机器翻译对您有帮助吗?

starstarstarstarstar
Go to English page
免责声明:

我们将使用第三方机器翻译软件翻译本页面。瞻博网络虽已做出相当大的努力提供高质量译文,但无法保证其准确性。如果对译文信息的准确性有任何疑问,请参阅英文版本. 可下载的 PDF 仅提供英文版.

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

date_range 18-Jan-25

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

配置组概述

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

配置群组的工作原理

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

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

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

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

继承模型

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

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

配置配置组

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

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

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

    content_copy zoom_out_map
    [edit]
    groups {
        group-name {
            configuration-data;
        }
    }
    
  2. 将步骤 1 中的配置组应用到配置层次结构中需要语句的级别。

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

创建配置群组

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

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

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

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

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

  1. 创建 MTU 值为 1500 的组:

    content_copy zoom_out_map
    [edit groups group-1]
    lab@vSRX3-05# show
    interfaces {
        ge-0/0/1 {
            unit 0 {
                family inet {
                    mtu 1500;
                }
            }
        }
    }
  2. 接下来,在接口配置中应用组。

    content_copy zoom_out_map
    [edit interfaces ge-0/0/1]
    lab@vSRX3-05# set apply-groups group-1
  3. 查看继承的配置。

    content_copy zoom_out_map
    [edit]
    lab@vSRX3-05# show interfaces ge-0/0/1 | display inheritance
    unit 0 {
        family inet {
            ##
            ## '1500' was inherited from group 'group-1'
            ##
            mtu 1500;
            address 5.0.0.254/24;
        }
    }

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

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

content_copy zoom_out_map
[edit groups group-1]
lab@vSRX3-05# show
interfaces {
    ge-* {
        unit 0 {
            family inet {
                mtu 1500;
            }
        }
    }
}

如何应用配置群组

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

content_copy zoom_out_map
apply-groups [ group-names ]; 

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

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

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

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

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

content_copy zoom_out_map
apply-groups [ eight nine ten ];
protocols {
    apply-groups seven;
    bgp {
        apply-groups [ five six ];
        group some-bgp-group {
            apply-groups four;
            neighbor 10.0.0.1 {
                apply-groups [ one two three ];
            }
        }
    }
}

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

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

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

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

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

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

    content_copy zoom_out_map
    [edit]
    groups {
        basic { # User-defined group name
            snmp { # This group contains some SNMP data
                contact "My Engineering Group";
                community BasicAccess {
                    authorization read-only;
                }
            }
        }
    }
    apply-groups basic; # Enable inheritance from group "basic"
    snmp { # Some normal (non-group) configuration
        location "West of Nowhere";
    }
    

此配置等效于以下内容:

content_copy zoom_out_map
[edit]
snmp {
    location "West of Nowhere";
    contact "My Engineering Group";
    community BasicAccess {
        authorization read-only;
    }
}

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

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

content_copy zoom_out_map
apply-groups-except [ group-names ];

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

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

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

content_copy zoom_out_map
[edit]
groups { # "groups" is a top-level statement
    global { # User-defined group name
        interfaces {
            <*> {
                hold-time down 640;
                link-mode full-duplex;
            }
        }
    }
}
apply-groups global;
interfaces {
    so-1/1/0 {
        apply-groups-except global;  # Disables inheritance from group "global"
        # so-1/1/0 uses default value for “hold-time”
        # and "link-mode" 
    }
}

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

content_copy zoom_out_map
[edit]
user@host# show | display inheritance 
snmp {
    location "West of Nowhere";
    ##
    ## 'My Engineering Group' was inherited from group 'basic'
    ##
    contact "My Engineering Group";
    ##
    ## 'BasicAccess' was inherited from group 'basic'
    ##
    community BasicAccess {
        ##
        ## 'read-only' was inherited from group 'basic'
        ##
        authorization read-only;
    }
}

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

content_copy zoom_out_map
[edit]
user@host# show | display inheritance | except ## 
snmp {
    location "West of Nowhere";
    contact "My Engineering Group";
    community BasicAccess {
        authorization read-only;
    }
}
注:

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

content_copy zoom_out_map
[edit]
user@host# show | display inheritance no-comments 
snmp {
    location "West of Nowhere";
    contact "My Engineering Group";
    community BasicAccess {
        authorization read-only;
    }
}

示例:junos-defaults使用配置组

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

注:

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

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

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

content_copy zoom_out_map
user@host# show groups junos-defaults
# Make vt100 the default for the console port
system {
    ports {
        console type vt100;
    }
}
applications {
    # File Transfer Protocol 
    application junos-ftp {
        application-protocol ftp;
        protocol tcp;
        destination-port 21;
    }
    # Trivial File Transfer Protocol 
    application junos-tftp {
        application-protocol tftp;
        protocol udp;
        destination-port 69;
    }
    # RPC port mapper on TCP 
    application junos-rpc-portmap-tcp {
        application-protocol rpc-portmap;
        protocol tcp;
        destination-port 111;
    }
    # RPC port mapper on UDP 
}

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

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

content_copy zoom_out_map
user@host>show  configuration groups junos-defaults applications
## protect: groups junos-defaults
##
#
# File Transfer Protocol 
#
application junos-ftp {
    application-protocol ftp;
    protocol tcp;
    destination-port 21;
}
#
# Trivial File Transfer Protocol 
#
application junos-ftp-data {
    application-protocol ftp-data;
    protocol tcp;
    destination-port 20;
}
application junos-tftp {
    application-protocol tftp;
    protocol udp;
    destination-port 69;
}
#
# Two-Way Active Measurement Protocol
#
application junos-twamp {
    application-protocol twamp;
    protocol tcp;
    destination-port 862;
}
#
# Real Time Streaming Protocol
#
application junos-rtsp {
    application-protocol rtsp;
    protocol tcp;
    destination-port 554;
}
#
# Network Basic Input Output System  - networking protocol used on
# Windows networks   session service port
#
application junos-netbios-session {
    protocol tcp;
    destination-port 139;
}
application junos-smb-session {
    protocol tcp;
    destination-port 445;
}
application junos-ssh {
    protocol tcp;
    destination-port 22;
}
application junos-telnet {
    protocol tcp;
    destination-port 23;
}

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

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

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

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

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

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

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

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

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

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

注:

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

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

content_copy zoom_out_map
[edit]
groups {
    sonet-default {
        interfaces {
            <so-*> {
                sonet-options {
                    payload-scrambler;
                    rfc-2615;
                }
            }
        }
    }
}

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

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

content_copy zoom_out_map
[edit]
groups {
    gigabit-ethernet-interfaces {
        interfaces {
            "<ge-1/2/[5-8]>" {
                description "These interfaces reserved for Customer ABC";
            }
        }
    }
}

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

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

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

content_copy zoom_out_map
[edit]
user@host# show 
groups {
    one {
        protocols {
            bgp {
                group <*a*> {
                    preference 1;
                }
                group <*b*> {
                    preference 2;
                }
                group <*c*> {
                    out-delay 3;
                }
                group <*d*> {
                    out-delay 4;
                }
                group abcd {
                    preference 10;
                    hold-time 10;
                    out-delay 10;
                }
            }
        }
    }
}
protocols {
    bgp {
        group abcd {
            apply-groups one;
        }
    }
}
[edit]
user@host# show | display inheritance 
protocols {
    bgp {
        group abcd {
            ##
            ## ’1’ was inherited from group ’one’
            ##
            preference 1;
            ##
            ## ’10’ was inherited from group ’one’
            ##
            hold-time 10;
            ##
            ## ’3’ was inherited from group ’one’
            ##
            out-delay 3;
        }
    }
}

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

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

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

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

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

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

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

content_copy zoom_out_map
[edit]
user@host# show 
groups {
    basic {
        snmp {
            interface so-1/1/1.0;
        }
    }
}
apply-groups basic;
snmp {
    interface so-0/0/0.0;
}
[edit]
user@host# show | display inheritance 
snmp {
    ##
    ## ’so-1/1/1.0’ was inherited from group ’basic’
    ##
    interface [ so-0/0/0.0 so-1/1/1.0 ];
}

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

content_copy zoom_out_map
[edit]
user@host# show 
groups {
    worldwide {
        system {
            name-server {
                10.0.0.100;
                10.0.0.200;
            }
        }
    }
}
apply-groups worldwide;
system {
    name-server {
        10.0.0.1;
        10.0.0.2;
    }
}
[edit]
user@host# show | display inheritance 
system {
    name-server {
        ##
        ## ’10.0.0.100’ was inherited from group ’worldwide’
        ##
        10.0.0.100;
        ##
        ## ’10.0.0.200’ was inherited from group ’worldwide’
        ##
        10.0.0.200;
        10.0.0.1;
        10.0.0.2;
    }
}

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

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

content_copy zoom_out_map
[edit]
user@host# show 
groups {
    atm-options {
        interfaces {
            <at-*> {
                atm-options {
                    vpi 0 maximum-vcs 1024;
                }
                unit <*> {
                    encapsulation atm-snap;
                    point-to-point;
                    family iso;
                }
            }
        }
    }
}
apply-groups atm-options;
interfaces {
    at-0/0/0 {
        unit 100 {
            vci 0.100;
            family inet {
                address 10.0.0.100/30;
            }
        }
        unit 200 {
            vci 0.200;
            family inet {
                address 10.0.0.200/30;
            }
        }
    }
}
[edit]
user@host# show | display inheritance
interfaces {
    at-0/0/0 {
        ##
        ## "atm-options" was inherited from group "atm-options"
        ##
        atm-options {
            ##
            ## "1024" was inherited from group "atm-options"
            ##
            vpi 0 maximum-vcs 1024;
        }
        unit 100 {
            ##
            ## "atm-snap" was inherited from group "atm-options"
            ##
            encapsulation atm-snap;
            ##
            ## "point-to-point" was inherited from group "atm-options"
            ##
            point-to-point;
            vci 0.100;
            family inet {
                address 10.0.0.100/30;
            }
            ##
            ## "iso" was inherited from group "atm-options"
            ##
            family iso;
        }
        unit 200 {
            ##
            ## "atm-snap" was inherited from group "atm-options"
            ##
            encapsulation atm-snap;
            ##
            ## "point-to-point" was inherited from group "atm-options"
            ##
            point-to-point;
            vci 0.200;
            family inet {
                address 10.0.0.200/30;
            }
            ##
            ## "iso" was inherited from group "atm-options"
            ##
            family iso;
        }
    }
}
[edit]
user@host# show | display inheritance | except ##
interfaces {
    at-0/0/0 {
        atm-options {
            vpi 0 maximum-vcs 1024;
        }
        unit 100 {
            encapsulation atm-snap;
            point-to-point;
            vci 0.100;
            family inet {
                address 10.0.0.100/30;
            }
            family iso;
        }
        unit 200 {
            encapsulation atm-snap;
            point-to-point;
            vci 0.200;
            family inet {
                address 10.0.0.200/30;
            }
            family iso;
        }
    }
}

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

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

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

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

content_copy zoom_out_map
[edit groups re0 interfaces fxp0]
unit 0 {
    family inet {
        address 10.17.40.131/25 {
            master-only;
        }
        address 10.17.40.132/25;
    }
}
[edit groups re1 interfaces fxp0]
unit 0 {
    family inet {
        address 10.17.40.131/25 {
            master-only;
        }
        address 10.17.40.133/25;
    }
}

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

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

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

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

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

content_copy zoom_out_map
[edit]
user@host# show 
groups {
    some-isp {
        interfaces {
            <xe-*> {
                gigether-options {
                    flow-control;
                }
            }
        }
        protocols {
            bgp {
                group <*> {
                    neighbor <*> {
                        remove-private;
                    }
                }
            }
            pim {
                interface <*> {
                    version 1;
                }
            }
        }
    }
}
interfaces {
    xe-0/0/0 {
        apply-groups some-isp;
        unit 0 {
            family inet {
                address 10.0.0.1/24;
            }
        }
    }
}
protocols {
    bgp {
        group main {
            neighbor 10.254.0.1 {
                apply-groups some-isp;
            }
        }
    }
    pim {
        interface xe-0/0/0.0 {
            apply-groups some-isp;
        }
    }
}
[edit]
user@host# show | display inheritance 
interfaces {
    xe-0/0/0 {
        ##
        ## "gigether-options" was inherited from group "some-isp"
        ##
        gigether-options {
            ##
            ## "flow-control" was inherited from group "some-isp"
            ##
            flow-control;
        }
        unit 0 {
            family inet {
                address 10.0.0.1/24;
            }
        }
    }
}
protocols {
    bgp {
        group main {
            neighbor 10.254.0.1 {
                ##
                ## "remove-private" was inherited from group "some-isp"
                ##
                remove-private;
            }
        }
    }
    pim {
        interface xe-0/0/0.0 {
            ##
            ## "1" was inherited from group "some-isp"
            ##
            version 1;
        }
    }
}

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

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

content_copy zoom_out_map
[edit]
user@host# show 
groups {
    standard {
        interfaces {
            <t3-*> {
                t3-options {
                    compatibility-mode larscom subrate 10;
                    idle-cycle-flag ones;
                }
            }
        }
    }
    northwest {
        interfaces {
            <t3-*> {
                t3-options {
                    long-buildout;
                    compatibility-mode kentrox;
                }
            }
        }
    }
}
apply-groups standard;
interfaces {
    t3-0/0/0 {
        apply-groups northwest;
    }
}
[edit]
user@host# show | display inheritance 
interfaces {
    t3-0/0/0 {
        ##
        ## "t3-options" was inherited from group "northwest"
        ##
        t3-options {
            ##
            ## "long-buildout" was inherited from group "northwest"
            ##
            long-buildout;
            ##
            ## "kentrox" was inherited from group "northwest"
            ##
            compatibility-mode kentrox;
            ##
            ## "ones" was inherited from group "standard"
            ##
            idle-cycle-flag ones;
        }
    }
}

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

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

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

content_copy zoom_out_map
[edit]
user@host# show
groups {
    mpls-conf {
        protocols {
            mpls {
                label-switched-path <*-major> {
                    retry-timer 5;
                    bandwidth 155m;
                    optimize-timer 60;
                }
                label-switched-path <*-minor> {
                    retry-timer 15;
                    bandwidth 64k;
                    optimize-timer 120;
                }
            }
        }
    }
}
apply-groups mpls-conf;
protocols {
    mpls {
        label-switched-path metro-major {
            to 10.0.0.10;
        }
        label-switched-path remote-minor {
            to 10.0.0.20;
        }
    }
}
[edit]
user@host# show | display inheritance
protocols {
    mpls {
        label-switched-path metro-major {
            to 10.0.0.10;
            ##
            ## "5" was inherited from group "mpls-conf"
            ##
            retry-timer 5;
            ## "155m" was inherited from group "mpls-conf"
            ##
            bandwidth 155m;
            ##
            ## "60" was inherited from group "mpls-conf"
            ##
            optimize-timer 60;
        }
        label-switched-path remote-minor {
            to 10.0.0.20;
            ##
            ## "15" was inherited from group "mpls-conf"
            ##
            retry-timer 15;
            ##
            ## "64k" was inherited from group "mpls-conf"
            ##
            bandwidth 64k;
            ##
            ## "120" was inherited from group "mpls-conf"
            ##
            optimize-timer 120;
        }
    }
}

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

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

content_copy zoom_out_map
[edit]
groups {
    junos-defaults {
        applications {
            application junos-ftp {# Use FTP default configuration 
            application-protocol ftp; 
            protocol tcp;
            destination-port 21;
        }
    }
}

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

content_copy zoom_out_map
[edit]
services {
    stateful-firewall {
        rule my-rule {
            term my-term {
                from {
                    applications junos-ftp; #Reference predefined statement, junos-ftp
                }
            }
        }
    }
}

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

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

content_copy zoom_out_map
user@host# show system ports | display inheritance defaults
## ## 'console' was inherited from group 'junos-defaults'
## 'vt100' was inherited from group 'junos-defaults' 
## console type vt100;

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

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

设置路由引擎配置组

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

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

要设置路由引擎配置组:

  1. 创建配置组 re0。组 re0 是仅在冗余路由平台中使用的特殊组指示符 RE0
    content_copy zoom_out_map
    [edit]
    root# set groups re0
  2. 导航到 groups re0 配置层次结构的级别。
    content_copy zoom_out_map
    [edit]
    root#  edit groups re0
  3. 指定设备主机名。
    content_copy zoom_out_map
    [edit groups re0]
    root# set system host-name host-name
    注:

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

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

      content_copy zoom_out_map
      [edit]
      root@# set interfaces fxp0 unit 0 family inet address address/prefix-length
      
    • 对于 TX Matrix Plus 路由器、仅路由矩阵中的 T1600 或 T4000 路由器以及 PTX 系列数据包传输路由器:

      content_copy zoom_out_map
      [edit]
      root@# set interfaces em0 unit 0 family inet address address/prefix-length
      

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

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

      content_copy zoom_out_map
      [edit]
      root@# set interfaces fxp0 unit 0 family inet address address/prefix-length
      
    • 仅适用于路由矩阵中的 TX Matrix Plus 路由器和 T1600 或 T4000 路由器:

      content_copy zoom_out_map
      [edit]
      root@# set interfaces em0 unit 0 family inet address address/prefix-length
      

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

  10. 返回到层次结构的顶层。
    content_copy zoom_out_map
    [edit groups re0]
    root# top
  11. 指定组应用程序顺序。
    content_copy zoom_out_map
    [edit]
    root# set apply-groups [ re0 re1 ]
    

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

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

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

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

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

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

要求

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

概述

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

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

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

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

配置

CLI 快速配置

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

content_copy zoom_out_map
set groups test1 when model mx240 
set groups test1 when chassis lcc0 
set groups test1 when routing-engine re0 
set groups test1 when member member0 
set groups test1 when node node0 
set groups test1 when time 9 to 5

程序

分步过程

要配置配置组 test1的条件:

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

    content_copy zoom_out_map
    [edit groups test1 when]
    user@host# set model mx240 
    
  2. 将标识机箱类型的条件设置为 LCC0。

    content_copy zoom_out_map
    [edit groups test1 when]
    user@host# set chassis lcc0 
    
  3. 将标识运行路由引擎 RE0的条件设置为 。

    content_copy zoom_out_map
    [edit groups test1 when]
    user@host# set routing-engine re0 
    
  4. 设置标识虚拟机箱 member0的条件。

    content_copy zoom_out_map
    [edit groups test1 when]
    user@host# set member member0 
    
  5. 设置标识集群 node0的条件。

    content_copy zoom_out_map
    [edit groups test1 when]
    user@host# set node node0 
    
  6. 设置仅在每天上午 9:00 至下午 5:00 之间应用组的条件。

    content_copy zoom_out_map
    [edit groups test1 when]
    user@host# set time 9 to 5
    
    注:

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

  7. 提交配置。

    content_copy zoom_out_map
    user@host# commit
    
结果

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

content_copy zoom_out_map
user@host# show groups test1
when { 
    time 9 to 5; 
    chassis lcc0; 
    model mx240; 
    routing-engine re0;
     member member0; 
    node node0;
 }

验证

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

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

操作

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

content_copy zoom_out_map
user@host> show | display inheritance when model mx240 
user@host> show | display inheritance when chassis lcc0  
user@host> show | display inheritance when routing-engine re0 
user@host> show | display inheritance when member member0 
user@host> show | display inheritance when node node0 
user@host> show | display inheritance when time 9 to 5 
external-footer-nav