Interface Ranges
Interface ranges represent similar type of interfaces with common configurations that are grouped together. The ranges containa a name, a range and the configuration statements which is common to all the similar interfaces.
Understanding Interface Ranges for Switches
You can use the interface ranges to group interfaces of the same type that share a common configuration profile. This helps reduce the time and effort in configuring interfaces on Juniper Networks EX Series Ethernet switches. The configurations common to all the interfaces can be included in the interface range definition.
The interface range definition contains the name of the interface range defined, the names of the individual member interfaces that do not fall in a series of interfaces, a range of interfaces defined in the member range, and the configuration statements common to all the interfaces. An interface range defined with member ranges and individual members but without any common configurations, is also a valid definition.
The interface range definition is supported only for Gigabit, 10-Gigabit, and Fast Ethernet interfaces. OCX Series switches do not support Fibre Channel interfaces.
Starting in Junos OS Release 14.1X53-D15 and later, the common configurations defined in the interface range will not be overridden but appended to the local configuration. In Junos OS Releases prior to 14.1X53-D15, the common configurations defined in the interface range will be overridden by the local configuration.
The defined interface ranges can be used at places where the interface node is used in the following configuration hierarchies:
Table 1 lists the configuration hierarchies for the EX Series, NFX, OCX, QFX Series, and QFabric Series.
Configuration Hierarchies for EX Series |
Configuration Hierarchies for EX4600, NFX, QFX Series, and QFabric Systems |
Configuration Hierarchies for EX Series with ELS |
---|---|---|
|
Note:
These statements are not supported on OCX Series switches. |
For ELS details, see Using the Enhanced Layer 2 Software CLI. |
See Also
Configuring Interface Ranges for EX Series Switches with ELS
This task uses Junos OS for EX Series switches with support for the Enhanced Layer 2 Software (ELS) configuration style. If your switch runs software that does not support ELS, see Configuring Interface Ranges. For ELS details, see Using the Enhanced Layer 2 Software CLI.
Junos OS allows you to group a range of identical interfaces into an interface range. You first specify the group of identical interfaces in the interface range. Then you can apply a common configuration to the specified interface range, reducing the number of configuration statements required and saving time while producing a compact configuration.
- Configuring Interface Ranges on Switches
- Expanded Interface Range Statements
- Configuration Inheritance for Member Interfaces
- Configuration Group Inheritance
- Common Configuration Inheritance
- Configuration Inheritance Priority
- Configuration Expansion Where Interface Range Is Used
Configuring Interface Ranges on Switches
To configure an interface range, include the interface-range
statement at the [edit interfaces]
hierarchy level.
The interface-range
statement accepts only physical
networking interface names in its definition.
Interfaces can be grouped either as a range of interfaces or
using a number range under the interface-range
statement
definition.
Interfaces in an interface-range definition can be added as part of a member range or as individual members or multiple members using a number range.
To specify a member range, use the member-range
statement
at the [edit interfaces interface-range name]
hierarchy level.
To specify interfaces in lexical order, use the member-range start-range to end-range
statement.
A range for a member statement must contain the following:
*—All, specifies sequential interfaces from 0 through 47.
CAUTION:The wildcard * in a member statement does not take into account the interface numbers supported by a specific interface type. Irrespective of the interface type, * includes interface numbers ranging from 0 through 47 to the interface group. Therefore, use * in a member statement with caution.
num—Number; specifies one specific interface by its number.
[low-high]
—Numbers between low to high; specifies a range of sequential interfaces.[num1, num2, num3]
—Numbers num1, num2, and num3 specify multiple specific interfaces.
Example: Specifying an Interface Range Member Range
member-range ge-0/0/0 to ge-4/0/40;
To specify one or multiple members, use the member
statement at the [edit interfaces interface-range name]
hierarchy level.
To specify the list of interface range members individually
or for multiple interfaces using regex, use the member list of interface names
statement.
Example: Specifying an Interface Range Member
member ge-0/0/0; member ge-0/*/* member ge-0/[1-10]/0; member ge-0/[1,2,3]/3;
Regex or wildcards are not supported for interface-type prefixes. For example, prefixes ge, fe, and xe must be mentioned explicitly.
An interface-range definition can contain both member and member-range
statements within it. There
is no maximum limit on the number of member or member-range
statements within an interface-range. However, at least one member or member-range
statement must exist within
an interface-range definition.
Example: Interface Range Common Configuration
Configuration common to an interface range can be added as a part of the interface-range definition, as follows:
[edit] interfaces { + interface-range foo { + member-range ge-1/0/0 to ge-4/0/40; + member ge-0/1/1; + member ge-5/[1-10]/*; /*Common configuration is added as part of interface-range definition*/ mtu 256; hold-time up 10; ether-options { flow-control; speed { 100m; } 802.3ad primary; } } }
An interface-range definition having just member or member-range
statements and no common configurations
statements is valid.
These defined interface ranges can be used in other configuration hierarchies, in places where an interface node exists.
Example: Interface-Range foo Used Under the Protocols Hierarchy
protocols { dot1x { authenticator { interface foo{ retries 1; } } } }
foo should be an interface-range defined at
the [interfaces]
hierarchy level. In the above example,
the interface node can accept both individual interfaces
and interface ranges.
To view an interface range in expanded configuration, use
the (show | display inheritance)
command. For more information,
see the Junos OS CLI User Guide.
The defined interface ranges can be used at places where the interface node is used. To view the configuration hierarchies, see Understanding Interface Ranges for Switches.
Expanded Interface Range Statements
The operating system expands all member
and member-range
statements in an interface range definition to generate the final list of interface
names for the specified interface range.
An example configuration looks like this before it is expanded:
[edit] interfaces { interface-range range1 { member-range et-0/0/0 to et-4/0/20; member et-10/1/1; member et-5/[0-5]/*; /*Common configuration is added as part of the interface-range definition*/ mtu 256; hold-time up 10; ether-options { flow-control; speed { 100m; } 802.3ad primary; } } }
For the member-range
statement, all possible interfaces between
start-range
and end-range
are considered in
expanding the members. For example, the following member-range
statement:
member-range et-0/0/0 to et-4/0/20
expands to:
[et-0/0/0, et-0/0/1 ... et-0/0/max_ports et-0/1/0 et-0/1/1 ... et-0/1/max_ports et-0/2/0 et-0/2/1 ... et-0/2/max_ports . . et-0/MAX_PICS/0 ... et-0/max_pics/max_ports et-1/0/0 et-1/0/1 ... et-1/0/max_ports . et-1/MAX_PICS/0 ... et-1/max_pics/max_ports . . et-4/0/0 et-4/0/1 ... et-4/0/max_ports]
The following member
statement:
et-5/[0-5]/*
expands to:
et-5/0/0 ... et-5/0/max_ports et-5/1/0 ... et-5/0/max_ports . . et-5/5/0 ... et-5/5/max_ports
The following member
statement:
et-5/1/[2,3,6,10]
expands to:
et-5/1/2 et-5/1/3 et-5/1/6 et-5/1/10
Configuration Inheritance for Member Interfaces
When Junos OS expands the member
and
member-range
statements present in an
interface-range
, it creates interface objects if they
are not explicitly defined in the configuration. The operating system copies the
common configuration to all the interface range's member interfaces.
Foreground interface configuration takes priority over configuration that the interface inherits from the interface range configuration.
In this example, interface et-1/0/1
has an MTU value of 1024 because
that is its foreground configuration:
interfaces { interface-range range1 { member-range et-1/0/0 to et-7/0/47; mtu 500; } et-1/0/1 { mtu 1024; } }
You can verify this in the output of the show interfaces | display inheritance
command:
user@host: show interfaces | display inheritance ## ## 'et-1/0/0' was expanded from interface-range 'range1' ## et-1/0/0 { ## ## '500' was expanded from interface-range 'range1' ## mtu 500; } et-1/0/1 { mtu 1024; } ## ## 'et-1/0/2' was expanded from interface-range 'range1' ## et-1/0/2 { ## ## '500' was expanded from interface-range 'range1' ## mtu 500; } ......... ......... ## ## 'et-10/0/47' was expanded from interface-range 'range1' ## et-10/0/47 { ## ## '500' was expanded from interface-range 'range1' ## mtu 500; }
Configuration Group Inheritance
Interface range member interfaces inherit configurations from configuration groups like any other
foreground configuration. The only difference is that the
interface-range
goes through a member interfaces expansion
before the operating system reads this configuration.
In this example, Junos OS applies the
hold-time
configuration to all members of the interface range
range1
:
groups { global { interfaces { <*> { hold-time up 10; } } } } apply-groups [global]; interfaces { interface-range range1 { member-range et-1/0/0 to et-7/0/47; mtu 500; } }
You can verify this with show interfaces | display inheritance
, as follows:
user@host# show interfaces | display inheritance [...] ## ## 'et-1/0/0' was expanded from interface-range 'range1' ## et-1/0/0 { ## ## '500' was expanded from interface-range 'range1' ## mtu 500; ## ## 'hold-time' was inherited from group 'global' ## '10' was inherited from group 'global' ## hold-time up 10; } ## ## 'et-1/0/1' was expanded from interface-range 'range1' ## et-1/0/1 { ## ## '500' was expanded from interface-range 'range1' ## mtu 500; ## ## 'hold-time' was inherited from group 'global' ## '10' was inherited from group 'global' ## hold-time up 10; } ## ## 'et-7/0/47' was expanded from interface-range 'range1' ## et-7/0/47 { ## ## '500' was expanded from interface-range 'range1' ## mtu 500; ## ## 'hold-time' was inherited from group 'global' ## '10' was inherited from group 'global' ## hold-time up 10; }
See Also
Common Configuration Inheritance
If an interface is a member of multiple interface ranges, that interface will inherit the common configuration from all of those interface ranges.
For example:
[edit] interfaces { interface-range int-grp-one { member-range et-0/0/0 to et-4/0/40; mtu 256; } interface-range int-grp-two { member-range et-4/0/0 to et-4/0/40; hold-time up 10; } }
In this example, interfaces et-4/0/0
through et-4/0/40
have
both hold-time
and mtu
configured.
Configuration Inheritance Priority
The interface ranges are defined in the order of inheritance priority. The first interface range configuration data takes priority over subsequent interface ranges.
In this example, interface et-1/1/1
exists in both interface range
int-grp-one
and interface range
int-grp-two
:
[edit] interfaces { interface-range int-grp-one { member-range et-0/0/0 to et-4/0/47; member et-1/1/1; /*Common config is added part of the interface-range definition*/ mtu 500; hold-time up 10; } interface-range int-grp-two { member-range et-5/0/0 to et-7/0/47; member et-1/1/1; mtu 1024; } }
Interface et-1/1/1
inherits mtu 500
from
interface range int-grp-one
because it was defined first.
Configuration Expansion Where Interface Range Is Used
In this example, interface-range range1
is used under the
protocols
hierarchy:
[edit] interfaces { interface-range range1 { member et-7/1/1; member et-5/0/1; mtu 500; hold-time up 10; ether-options { flow-control; speed { 100m; } 802.3ad primary; } } protocols { dot1x { authenticator { interface range1 { retries 1; } } } } }
The interface
node present under authenticator
expands into
member interfaces of the interface range range1
as follows:
protocols { dot1x { authenticator { interface et-7/1/1 { retries 1; } interface et-5/0/1 { retries 1; } } } }
The interface range-1
statement is expanded into two
interfaces, et-7/1/1 and et-5/0/1, and the operating system copies the configuration
retries 1
under those two interfaces.
You can verify this configuration using the show protocols dot1x | display
inheritance
command.