Switch Engine 33-2-1 User Guide
Switch Engine 33-2-1 User Guide
1 User Guide
9039158-00 Rev AA
January 2025
Copyright © 2025 Extreme Networks
Legal Notice
Extreme Networks, Inc. reserves the right to make changes in specifications and other
information contained in this document and its website without prior notice. The reader should
in all cases consult representatives of Extreme Networks to determine whether any such changes
have been made.
The hardware, firmware, software or any specifications described or referred to in this document
are subject to change without notice.
Trademarks
Extreme Networks and the Extreme Networks logo are trademarks or registered trademarks of
Extreme Networks, Inc. in the United States and/or other countries.
All other names (including any product names) mentioned in this document are the property
of their respective owners and may be trademarks or registered trademarks of their respective
companies/owners.
For additional information on Extreme Networks trademarks, see: https://
www.extremenetworks.com/about-extreme-networks/company/legal/trademarks
Glossary...................................................................................................................................... 2261
This guide is intended for use by network administrators who are responsible
for installing and setting up network equipment. In addition to comprehensive
conceptual information about each feature of our software, you will also find
detailed configuration material, helpful examples, and troubleshooting information.
Also included are supported platforms and recommended best practices for optimal
software performance.
Important
Release 31.6 introduced new names for the network operating systems running
on Universal hardware. ExtremeXOS (EXOS) was renamed to Switch Engine
and VSP Operating System Software (VOSS) was renamed to Fabric Engine. All
references to ExtremeXOS apply to Switch Engine 31.6 and later.
Note
If the information in the release notes shipped with your switch differs from the
information in this guide, follow the release notes.
Related Publications
Cloud-management platforms and direct switch access (telnet and ssh, for example)
using regular administrator credentials.
Supported Platforms
4120 and 4220 series switches.
Supported Platforms
7520-48Y and 7720-32C series switches.
Supported Platforms
7520-48Y and 7720-32C series switches.
This feature is only applicable to standalone switches and does not support switch
stacks.
Supported Platforms
All platforms.
Limitations
The following limitations apply to this feature:
• You cannot configure a Locally Administered Address (LAA) as the alternate MAC
address.
• You cannot configure multicast MAC addresses as the alternate MAC address.
Extreme Platform ONE includes three license levels: Standard, Advanced, and
Premium. A Standard license is required to manage devices from ExtremeCloud IQ
Agent.
Supported Platforms
All Universal platforms.
Supported Platforms
All platforms.
policy profile is assigned to a port (or port/mac address combination). The profile has
a default pvid specified and pvid-status enabled. Authentication mode "optional" must
be enabled for both Netlogin MAC and dot1x enabled ports in order to handle first
authentication failure due to service unavailability. If authentication fails or the RADIUS
server is unavailable, the user will be placed in the VLAN specified as the profile's
default pvid (the show netlogin session command will display the entries as "Auth
Failed".
Windows dot1x clients must be set with "Fallback to unauthorized network access". In
this case, because the authentication has failed, the session is marked as such but the
traffic is handled by the admin profile as long as the authentication mode is set as
"optional".
This feature only works on re-authentication, because the unavailability or failure of the
first authentication is handled by the existing administration rule Policy feature.
Configuration Examples
You can active this enhancement by enabling the following command options:
Limitations
The following are limitations for this enhancement:
• Netlogin dot1x session-timeout value sent using RADIUS must be higher than the
radius keep-alive timer value.
• "Keep Session On Re-authentication Service Unavailable - On/Off" attribute doesn't
apply for non-Policy Netlogin service unavailability feature.
• For dot1x, this feature depends on RADIUS keep-alive being enabled (on).
• It is recommended that keep-session-on-reauth-svc-unavail remain off for non-
Policy mode.
• For re-authentication during service unavailable, it is possible that the dot1x client
is triggered to re-authenticate due to timing of the re-authentication period and
RADIUS keep-alive are synchronized. It is recommended that the dot1x client be
set to use "Fallback to unauthorized network access". When this happens, the dot1x
re-authentication timer does not get re-initialized but the session is still kept.
Supported Platforms
All platforms.
Supported Platforms
All platforms.
Supported Platforms
All platforms that support MSDP.
Supported Platforms
All platforms.
Supported Platforms
All platforms.
Supported Platforms
All platforms.
Supported Platforms
All platforms.
Supported Platforms
All platforms.
The Getting Started chapter is intended to help you learn about your operating
system software. Information about your product, software version requirements and
navigation, common commands, and password management, along with other helpful
software orientation information can be found in this chapter.
Product Overview
This table lists the Extreme Networks products that run the Switch Engine software.
* - See 4000 Series User Guide for this version of Switch Engine for detailed information
on these Cloud-managed devices.
Software Required
For information about which software version is required for each hardware switch
model, see ExtremeXOS and Switch Engine Software Support.
The features available on each switch are determined by the installed feature license
and optional feature packs. For more information, see the Switch Engine
Licensing Guide document.
In addition, users can configure the IQ Agent HTTP Proxy server IP and port, and define
the username and password, if required.
To configure a server VR, VLAN Management, or address, use the following command:
You can enable or disable the IQ Agent with the following commands:
Important
Disabling IQ Agent prevents all access to ExtremeCloud IQ. Any current activity
with ExtremeCloud IQ, including remote SSH sessions, are disconnected
immediately. Re-enabling IQ Agent can only occur by using the enable
command by either console or Telnet or SSH access. Disabling IQ Agent
deactivates automatic DHCP access on VLAN Mgmt, which is required for
Zero-Touch Provisioning (ZTP).
enable iqagent
disable iqagent
* - See 4000 Series User Guide for this version of Switch Engine for detailed information
on these Cloud-managed devices.
Note that Telnet and SSH do not permit access to ‘hivemanager’ account, which the
IQ Agent creates for its own purpose and uses it for all cloud-initiated SSH connections
through local host, so logging on to this account through Telnet or SSH is not allowed.
IQ Agents use SNMPv2 (enabled only for internal requests) to monitor the status of the
switch.
You can also manually install the ACL to redirect IQ Agent traffic to CPU queue 5 on
smaller switches with 8 ACL slices by running the following command:
# configure access-list iqagent.pol any
iqagent.pol:
entry iqagent_cpu5 {
if {
protocol tcp;
source-port 443;
} then {
traffic-queue cpu_q_5;
}
}
EXOS: Default
EXOS: Primary 31.1.1.398
EXOS: Secondary 31.1.1.398
EXOS: Primary 31.1.1.398 with default configuration
EXOS: Secondary 31.1.1.398 with default configuration
EXOS: Rescue
Change the switch OS to Fabric Engine
Run Manufacturing Diagnostics
Update bootloader
Reboot system
Use the up and down arrow keys to select Change the switch OS to VOSS, and
then press Enter.
◦ Safe defaults mode start-up menu (see Using Safe Defaults Mode on page 45—
When the question Would you like to change the switch OS to VOSS?
[y/N/q] appears:
▪ For Switch Engine, type N.
▪ For Fabric Engine, type y.
Continue to log onto the switch (see Logging in to the Switch on page 28).
Caution
Changing your network operating systems deletes all configuration files,
debug information, logs, events, and statistics information of the previous
network operating system.
Note
If you anticipate ever changing the operating system to Fabric Engine, and
you want to statically assign IP addresses on the DHCP server, then it is
recommended to assign them based on the DHCP client ID. For more
information about this issue, see Using a BOOTP or DHCP Server on page 71.
Note
Do not use the active, inactive, and partition options. They are not
applicable for Fabric Engine.
Chalet is packaged with ExtremeXOS release 15.7.1 and later for all platforms, so there's
nothing extra to download or install. Chalet can be launched in any modern web
browser and does not depend on any outside resources to work, including Java Applets,
Adobe Flash, or dedicated mobile applications.
Chalet helps you interact with the switch outside of a CLI environment and allows you
to easily:
• Configure the switch for the first time without the use of a console cable.
• View status and details of the switch and its slots and ports.
• Analyze power efficiency of power supplies, fans, and PoE ports.
• Create VLANs and ACL policies.
• Enable and disable multiple features, including QoS, AVB, auto-negotiation, and
flooding.
• View recent system events.
Note
Beginning with version 31.4, access to the switch through Chalet is limited to
only Admin users. Read-only users do not have access to the switch through
the Chalet interface. This restriction is included due to security concerns.
For instructions about setting up, logging in, configuring, and monitoring your switch,
see Switch Configuration with Chalet for ExtremeXOS 21.x and 22.x.
For example consider a scenario where two ports should be added to four tagged
VLANs. Previously, this required four commands:
• configure vlan red add ports 2, 10 tagged
• configure vlan blue add ports 2, 10 tagged
• configure vlan green add ports 2, 10 tagged
• configure vlan orange add ports 2, 10 tagged
Assuming the tags for the VLANs are 100, 200, 300, 400 respectively this configuration
can be accomplished with a single command:
• configure vlan 100,200,300,400 add ports 2, 10 tagged
Note
commands enhanced with VID list support operate in a “best effort” fashion. If
one of the VIDs in a VID list do not exist the command is still executed for all of
the VIDs in the list that do exist. No error or warning is displayed for the invalid
VIDs unless all of the specified VIDs are in valid.
Note
ZTP works on both tagged and untagged VLANs.
Note
ZTP+ supports stacking mode, but ZTP does not.
By configuring the Ethernet management port "just out of the box" with an IP address,
a user can connect a laptop directly to the management Ethernet port. If the laptop is
not configured with a fixed IP address, it tries to get an IP address from a DHCP server.
If it cannot, it assigns its own Link-Local address putting the switch and the laptop on
the same subnet. The laptop can then use Telnet or a web browser to access the switch
removing the need for the serial cable.
Note
Most ExtremeSwitching 5320 models do not have dedicated management
ports. You can use front panel ports for management connectivity for these
switches. Models 5320-24T-4X-XT and 5320- 24T-24S-4XE-XT have dedicated
management ports.
The IPv4 address format is used to make it simple for a user to determine the switch’s
IP address. The formula is to use the lower 2 bytes of the MAC address as the last two
numbers in the Link-Local IPv4 address.
• MAC address: 00:04:96:97:E9:EE
• Link-Local IP address: 169.254.233.238 or 0xa9fee9ee
Web browsers accept a hexadecimal value as an IPv4 address. (Microsoft IE displays the
URL with the number dot notation 169.254.233.239.)
The user documentation directs the customer to access the web browser by typing
0xa9fe followed by the last two number/letter groups in the MAC address found on the
switch label. No hexadecimal translation is required.
With this information, you can connect the Ethernet port directly from a laptop to this
switch using the temporary Link-Local address. You can communicate via web or Telnet
to perform the initial switch configuration, if needed, and no longer needs a serial cable
to configure a switch.
DHCP Parameters
If a DHCP server is available, ZTP tries to contact it alternating between the default
VLAN and the management Ethernet port. The DHCP server can provide:
• IP Address
• Gateway
• Option 43 on page 18
• Options 66 and 67 on page 19
If a TFTP server IP address is provided along with the name of a config file, ZTP
downloads the config file to the switch. The switch reboots to activate the config file.
For .xos image files, ZTP executes the download image command to update the switch
software. The switch does not reboot after the download image command completes.
Option 43
Option 43 processing does not require an NMS. If a switch receives option43 as part of
the DHCP response, it uses the TFTP protocol to transfer files from the specified TFTP
server IP address.
Multiple file names may be specified in option43. The file names can be either relative
path names or a full URL with the IP address of the TFTP server. If relative path names
are specified, the TFTP IP address is also required.
File name examples assuming a TFTP server is present with the IP address 10.10.10.1:
• exos/summitX-15.7.1.1.xos (specify the IP address in sub-option 100)
• tftp://10.10.10.1/exos/summitX-15.7.1.1.xos (sub-option 100 is not required)
Once all of the files specified in option43 have been transferred to the switch, the
switch reboots.
Options 66 and 67
Option 66 and option 67 provide TFTP server and bootpfilename for cases when
option 43 is not available for ZTP.
Options 66 and 67 are received as DHCP options in a DHCP response by Switch Engine.
• Option 66 is used to identify the TFTP server with details of TFTP server IP address.
• Option 67 provides the bootpfilename details, which are downloaded to
Switch Engine from the TFTP server IP address, and Switch Engine is rebooted after
the download is successful. The bootpfilename can be of any image type (.xos
or .xmod) or configuration file (.xsf or .py).
If option 43 is not present, then Switch Engine looks for the TFTP server IP address
and bootp file name in options 66 and 67 to load the configurations or update the
new image. If option 43, and options 66 and 67 are present, option 43 has higher
precedence.
The ZTPDHCP script enables auto-bind by calling the following CLI command for every
VLAN it creates:
If during ZTP the path to a DHCP server uses a tagged port, then the ZTPDHCP script
auto-provisions a corresponding VLAN and adds the tagged port. This removes the port
from STP Domain "s0", which may result in a network loop. Enabling auto-bind for the
auto-provisioned VLAN on STPD "s0" provides loop protection.
The log file generated by the ZTPDHCP script logs the event whenever auto-bind is
enabled on STPD “s0” for a newly created VLAN.
Cloning Switches
Switch Engine switches provide a script called clone.py that allows you to clone one
switch's setup to another switch in the following scenarios:
• Within a stack (see Cloning within a Stack on page 21)
• Standalone to standalone (see Cloning Standalone to Standalone on page 23)
• Standalone to stack (see Cloning from Standalone to a Stack on page 25)
• Standalone to USB (see Copying One Switch's Configuration to Another Switch
Using USB Zero Touch Provisioning (ZTP) on page 28)
◦ /alt/exos
◦ (optionally) /usr/local/cfg
• Specific NVRAM contents:
◦ Boot selector
◦ CLI banner
◦ Failsafe username,password, and action
Limitations
• Cloning to a standalone switch using a stacking master as the source does not make
the standalone switch a stacking master. The configuration cloned from a stacking
master to the standalone switch is ignored by the operating system.
• ONIE to non-ONIE or non-ONIE to ONIE cloning cannot be performed.
• Clone application does not connect through VR-USER.
• If the clone primary is started and stopped, the configuration dirty bit is set.
Supported Platforms
Cloning is supported on all ExtremeSwitching Universal platforms.
Using Clone.py
To run clone.py to copy the current switch, use the following command:
To show if clone.py is running and display the version number, use the following
command:
To clone within a stack by running the clone.py script directly, on the master switch,
enter the command:
Where slotlist can be any number of valid slot positions separated with commas, or
all. For example, run script clone.py slot 1,2,3
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ C A U T I O N +
+ Cloning will erase all contents on these slots: +
+ 1,3,4,5,6,7,8 +
+ The switch contents of this stacking master +
+ will replace the contents of these switches +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Do you want to continue cloning? [y/N]: y
Cloning slot 1 started
........................................
Slot 1 cloning COMPLETE
Cloning slot 3 started
.........................................................
Slot 3 cloning COMPLETE
Cloning slot 4 started
...........................................................
Slot 4 cloning COMPLETE
Cloning slot 5 started
............................................................
Slot 5 cloning COMPLETE
Cloning slot 6 started
...........................................................
Slot 6 cloning COMPLETE
Cloning slot 7 started
..........................................................
Slot 7 cloning COMPLETE
Cloning slot 8 started
................................................
Slot 8 cloning COMPLETE
Rebooting ...
reboot: Restarting system
Note
• The synchronize {slot slotid} command only works for cloning within
the stack.
• To clone in a stack containing both 5720 and 5520 switches, you must
download the image of the 5520 in a primary and secondary partition in
the master slot.
• The unconfigure switch all command removes the summit-arm images
that have been downloaded and saved in the cross stack.
Scenario 1: You want to have a reference ExtremeXOS image and configuration for your
network. New switches can clone from the master switch, getting an exact copy as the
beginning switch configuration that you can then modify as needed.
Scenario 2: You receive a large shipment of switches and want to configure one switch
the way you want it, and then replicate that for all of the new switches. Clone.py is run
on the clone master and the new switches can use DHCP to get a new address, and
then copy from the clone master. The new switches must have an IP address and must
be able to connect with the IP address of the clone master. Either a front panel port or
the management port can be used. Clone.py tries both VR-Mgmt and VR-Default to
connect with the IP address of the clone master.
2. On the new switch (target), run the command run script clone.py from
ipaddress. Where ipaddress is the IP address of the master switch. The following
appears:
When cloning to become a stacking member, additional NVRAM attributes are copied:
• Stacking enabled
• Stack MAC address
• Slot number—either provided or derived from the stacking master
• Switch's master-capable status—using the –m option when running clone.py sets
the standalone switch to be master-capable.
Note
Cloning to a standalone switch using a stacking master as the source does not
make the standalone switch a stacking master. The configuration cloned from
a stacking master to the standalone switch is ignored by ExtremeXOS.
Important
You must perform this step before cloning the standalone switch.
If the switch is cloned as a stacking standby switch, console login
and configuration options require contacting a stack master for user
authentication. If the stacking links are not configured correctly, then only
failsafe login is available.
4. On the standalone switch, confirm that the stacking links are configured correctly.
Run the command show stacking. The following should appear (see bold text):
# show stacking
Stack Topology is a Ring
This node is not in an Active Topology
Node MAC Address Slot Stack State Role Flags
------------------ ---- ----------- ------- ---
*00:04:96:98:94:d3 - Disabled Master --- <-This is the standalone switch
00:04:96:98:87:3a 4 Active Standby --O
0e:00:00:00:00:85 5 Active Standby --O
00:04:96:98:87:54 6 Active Standby --O
0e:00:00:00:00:84 7 Active Standby --O
00:04:96:14:0b:03 8 Active Backup --O
00:04:96:14:0b:04 1 Active Standby --O
0e:00:00:00:00:83 2 Active Master --O
* - Indicates this node
Flags: (C) Candidate for this active topology, (A) Active Node
(O) node may be in Other active topology
5. On the standalone switch, run the command run script clone.py from
ipaddress -s STACKING_SLOT-M, where:
• ipaddress is the IP address of the stack master.
• STACKING_SLOT is the slot number. Use 0 (zero) to have the switch given the
lowest available slot number.
• -M enable this switch to be master-capable.
switch
Transfering control information from master switch
Transfering stacking information from master switch
Using first available slot 3
______ _
| ____| | |
| |__ __ _| |_ _ __ ___ _ __ ___ ___
| __| \ \/ / __| '__/ _ \ '_ ` _ \ / _ \
| |____ > <| |_| | | __/ | | | | | __/
|______/_/\_\\__|_| \___|_| |_| |_|\___|
_ _ _ _
| \ | | | | | |
| \| | ___| |___ _____ _ __| | _____
| . ` |/ _ \ __\ \ /\ / / _ \| '__| |/ / __|
| |\ | __/ |_ \ V V / (_) | | | <\__ \
|_| \_|\___|\__| \_/\_/ \___/|_| |_|\_\___/
(pending-AAA) login:
Authentication Service (AAA) on the master node is now available for login.
admin
password:
ExtremeXOS
Copyright (C) 1996-2017 Extreme Networks. All rights reserved.
This product is protected by one or more US patents listed at http://
www.extremenetworks.com/patents along with their foreign counterparts.
==============================================================================
You are connected to a Standby node. Only a limited command set is supported.
You may use "telnet slot <slot_number>" to connect to the Master node to access
the full set of commands.
Copying One Switch's Configuration to Another Switch Using USB Zero Touch
Provisioning (ZTP)
You can copy one switch's configuration (ExtremeXOS image, configuration files,
scripts) to another switch using USB Zero Touch Provisioning (ZTP).
Insert a USB drive with the desired configuration files on it into an unconfigured
switch (does not need to be connected to the network), and the unconfigured switch
automatically searches for the files and deploys them. The switch auto detects the USB
drive at bootup or while ExtremeXOS is running.
After you have successfully logged on, the following information about successful and
unsuccessful logons appears:
There have been 26 successful logins since last reboot and 0 failed logins since last
successful login
Last Successful Login was on: Thu Apr 23 17:16:08 2020
You can enter configuration commands at the # prompt. At the > prompt, you can
enter only monitoring commands, not configuration commands. When you log in as
admin (which has read and write access), you see the # prompt. When you log in
as user (which has only read access), you will see the > prompt. When the switch
is booting up, you may see the > command prompt. When the bootup process is
complete, the # prompt is displayed.
Note
The CLI is limited for the 4000 Series (4120 Series and 4220 Series). When you
log in as admin on 4000 Series models, you will see the = prompt, and can only
enter basic commands. See the 4000 Series User Guide for more information
about available commands.
When you enter a command at the prompt, ensure that you have the appropriate
privilege level.
Most configuration commands require you to have the administrator privilege level. For
more information on setting CLI privilege levels, see the create account, configure
account, and configure account [all | name] privilege [admin | user]
commands.
Syntax Helper
The CLI has a built-in syntax helper. If you are unsure of the complete syntax for a
particular command, enter as much of the command as possible, and then press:
• [Tab]— Auto-completes the command if there is a unique match. If there is a partial
match, auto-completes to the nearest match, and then lists the available options.
• ?—provides a list of options for the entered command.
If you enter an invalid command, the syntax helper notifies you of your error, and
indicates where the error is located.
If the command is one where the next option is a named component (such as a
VLAN, access profile, or route map), the syntax helper also lists any currently configured
names that might be used as the next option. In situations where this list is very long,
the syntax helper lists only one line of names, followed by an ellipsis (...) to indicate that
there are more names that can be displayed.
Object Names
You must provide all named components within a category of the switch configuration
(such as VLAN) a unique object name.
Object names must begin with an alphabetical character, and may contain
alphanumeric characters and underscores ( _ ), but they cannot contain spaces. The
maximum allowed length for a name is 32 characters. User-created object names for
the following modules are not case-sensitive: access list, account, CFM (Connectivity
Fault Management), EAPS (Extreme Automatic Protection Switching), ESRP (Extreme
Standby Router Protocol), flow-redirect, meter, MSDP (Multicast Source Discovery
Protocol), Network Login, PVLAN, protocol, SNMP, SSHD2, STP, tunnel, UPM, VLAN,
VMAN, etc.
Object names can be reused across categories (for example, STPD (Spanning
Tree Domain) and VLAN names). If the software encounters any ambiguity in the
components within your command, it generates a message requesting that you clarify
the object you specified.
Note
If you use the same name across categories, we recommend that you specify
the identifying keyword as well as the actual name. If you do not use the
keyword, the system may return an error message.
Reserved Keywords
Keywords such as vlan, stp, and other second-level keywords are reserved and you
cannot use them as object names. This restriction only applies to the specific word e.g
(vlan); you can use expanded versions e.g (vlan2) of the word.
A complete list of the reserved keywords for ExtremeXOS 12.4.2 and later software is
displayed in Table 3. Any keyword that is not on this list can be used as an object name.
Note
The list of reserved keywords is not exhaustive, and more will be added as new
features are added. A failure to create an object with the following error means
that the keyword is reserved:
"Name cannot be a reserved keyword."
Abbreviated Syntax
Abbreviated syntax is the shortest unambiguous allowable abbreviation of a command
or parameter. Typically, this is the first three letters of the command.
When using abbreviated syntax, you must enter enough characters to make the
command unambiguous and distinguishable to the switch. If you do not enter enough
letters to allow the switch to determine which command you mean, the syntax helper
provides a list of the options based on the portion of the command you have entered.
Command Shortcuts
Components are typically named using the create command. When you enter a
command to configure a named component, you do not need to use the keyword
of the component.
Note
True only for some named components.
Command Aliases
You can create aliases to execute any ExtremeXOS command, including any options,
arguments, and redirection.
For example, you can create an alias called "download" to substitute for "download
image 102.3.10.5". Now you can now simply type "download" and then the image
file name to download your ExtremeXOS image from the 102.3.10.5 location, instead of
typing download image 102.3.10.5 image_name.
Important
Aliases are only available in the shell session in which they are created. When
you exit the shell your aliases are lost. To create persistent aliases, you need
to add the aliases to the script exshrc.xsf that you must create using the VI
editor and save in the /usr/local/cfg folder.
For more information about the exshrc.xsf script, see ExtremeXOS Shell RC
Script on page 438. For information about managing files on the switch, see
Using the ExtremeXOS File System on page 128.
To be recognized, the alias must be the first word in the command string typed at the
prompt. Substitution does not occur if the alias name string occurs anywhere else.
Auto-completion works for aliases much as it does for ExtremeXOS commands (see
Syntax Helper on page 30).
Limitations
• Arguments cannot occur in the middle of alias commands. For example, you
cannot create an alias "set_vlan_ip" for the command configure vlan vlan_name
ipaddress ip_address where you specify the VLAN name as an argument. This is
because aliases work through direct textual substitution.
• Aliases cannot be chained together. For example, if you create an alias "sh" for show
version and another alias "ps" for process, then entering sh ps at the prompt is not
equivalent to entering “show version process”.
• You cannot tab-complete commands when creating an alias by using the alias
command.
• Aliases cannot be created for the current shell session using UPM scripts or Python
scripts.
• Tab completion does not work for commands given inside the aliases.
Usage
To create an alias, use the command alias alias_name command
To view a list of current aliases, use the command alias (with no other arguments).
To display the command that will be substituted for alias_name, use the command
alias alias_name.
1. show vlan
2. create vlan vlan_1
3. show ports
You can type configure vlan !2:2 ipaddress 10.0.0.1 to configure the IP address
of vlan_1. Or type !1 to run the command show vlan.
You can also use negative values for n to refer backward through the history. !-1 refers
to the previous command executed, which in the preceding example is show ports.
To execute a command that was typed two commands back, use !-2. You can use
negative values for w to refer to the first (1+|w|) words from the selected line in history.
For example, !2:-1 gives you the first 1+|-1|=2 words from line 2 of the history (in this
example, create vlan).
Supported Platforms
CLI history expansion is available on all ExtremeSwitching platforms.
To view the status of CLI history expansion, use the following command:
The following command manages how old keywords that have been moved and
redefined appear in the CLI:
table explains the configure command options, how they impact CLI behavior, and how
these choices appear in the show switch management command.
Symbols
You may see a variety of symbols shown as part of the command syntax.
These symbols explain how to enter the command, and you do not type them as part
of the command itself. Table 4 summarizes command syntax symbols you may see
throughout this guide.
Note
ExtremeXOS software does not support the ampersand (&), left angle bracket
(<), or right angle bracket (>), because they are reserved characters with special
meaning in XML.
Port Numbering
The operating system software runs on stand-alone switches.
Note
The keyword all acts on all possible ports; it continues on all ports even if one
port in the sequence fails.
Separate the port numbers by a dash to enter a range of contiguous numbers, and
separate the numbers by a comma to enter a range of non-contiguous numbers:
• x-y—Specifies a contiguous series of ports on a stand-alone switch.
• x,y—Specifies a non-contiguous series of ports on a stand-alone switch.
• x-y,a,d—Specifies a contiguous series of ports and a non-contiguous series of ports
on a stand-alone switch.
• Port:Channel—For 4120, ExtremeSwitching 5720, 7520, and 7720 channelized ports.
For example, 49:4 maps to Port 49, Channel 4.
For example, if there is a switch in slot 2 of the stack with a total of four ports, the
following ports are valid:
• 2:1
• 2:2
• 2:3
• 2:4
You can also use wildcard combinations (*) to specify port combinations.
The CLI prompt for the switch changes to show that you have changed it to slot:port
notation. For example:
Slot-1 5420F-48P-4XE.1
Note
5720 VIM-6YE ports are not channelized and map to ports 51-53 and 54-56.
Note
Switches running Release 31.6 or earlier that are connected to a channelized
5720 port will not display the correct port number via the Extreme Discovery
Protocol. The port numbers will display correctly via the Link Layer Discovery
Protocol.
Line-Editing Keys
Table 6 on page 42 describes the line-editing keys available using the CLI.
To view the list of recent CLI commands, use the command show cli journal.
To configure command list size, use the command configure cli journal size
size.
To view the currently configured command list size, use the command show switch
management.
To remove the list, use either of the following commands: unconfigure switch all or
unconfigure switch erase all.
Limitations
• Commands executed using North Bound interfaces (For example: SNMP, web) are
not supported.
• The command show cli journal is not checkpointed in backup slot.
Common Commands
This section discusses common commands you can use to manage the switch.
After you connect to the console port of the switch, or after you run unconfigure
switch {all} or run provisioning, you can change management access to your
device to enhance security.
2. You are prompted to select your network operating system: Switch Engine (default)
or Fabric Engine:
• For Switch Engine, type N.
• For Fabric Engine, type y.
3. Type y (to disable) or n (to enable ) auto-provisioning.
By default, Auto-Provisioning uses DHCP on all Ethernet ports as this switch
attempts to connect to an Extreme Networks management product.
Instead of using DHCP, do you want to 'disable auto-provision' and
configure a static IP address, default gateway and DNS server now? [y/N/q]: y
Select y to be prompted for a port to use for management, an IP address and subnet
mask length, an optional default gateway IP address, a DNS name server and DNS
domain suffix.
4. Type y (to disable) or n (to enable ) MSTP (Multiple Spanning Tree Protocol).
The switch offers an enhanced security mode. Would you like to read more,
and have the choice to enable this enhanced security mode? [y/N/q]:
If you select "yes," enhanced security mode is enabled. Go to step 10 on page 47.
6. If you select "no," you are prompted to disable Telnet:
Telnet is enabled by default. Telnet is unencrypted and has been the target of
security exploits in the past.
SNMPv3 user ‘admin’ was created with authentication protocol SHA and privacy protocol
AES-128.
In addition to the account-level privileges, you can optionally use an external RADIUS
server to provide CLI command authorization checking for each command. For more
information on RADIUS, see Security on page 1082.
Note
CLI commands are sent to the RADIUS server unencrypted. Sensitive
information entered into the CLI could be seen by either internal or external
third parties.
User Accounts
A user-level account has viewing access to all manageable parameters. Users cannot
access:
• User account database
• SNMP community strings
An account with a user-level privilege can use the ping command to test device
reachability and change the password assigned to the account name.
If you have logged on with user privileges, the command line prompt ends with a (>)
sign. For example: 5420-24T.3 >
Administrator Accounts
Administrator-level accounts can view and change all switch parameters.
With this privilege level, you can also add and delete users, as well as change
the password associated with any account name. To erase the password, use the
unconfigure switch all command.
If you log on with administrator privileges, the command line prompt ends with a
pound or hash (#) sign.
Note
If you log on with administrator privileges to 4120 and 4220 switches, the
command line prompt ends with an equal (=) sign.
• The password for the lawful intercept account can only be changed by the lawful
intercept user and cannot be changed by an administrative user.
• The show accounts command displays the existence of the lawful intercept
account, but does not display any related statistics.
• The show configuration command does not display the lawful intercept account.
• The show session {{detail} {sessID}} {history} command does not display
any lawful intercept user information. The EMS events normally associated with
logging in and out are suppressed, and do not occur relative to logging in and out of
the lawful intercept account.
• The EMS events normally associated with the enable cli config-logging
command are suppressed, and do not occur relative to a lawful intercept user
session.
• The lawful intercept user can create and delete non-permanent dynamic ACLs with
the mirror action only. The lawful intercept user cannot create or delete any other
ACLs.
• The show access-list command does not display any Lawful Intercept user-
created ACLs to a non-lawful intercept user.
• The lawful intercept user-created ACLs are not accessible for any use by a non-lawful
intercept user (specifically through the configure access-list add or configure
access-list delete commands).
• The lawful intercept user can only create or delete one (non-permanent) mirror
instance with which to bind the lawful intercept user-created ACLs and specify the
mirror-to port.
Configure Banners
You can add a banner to give users helpful information before or after logging in.
• To add a banner to your switch, use the following command:
configure banner {after-login | { before-login } { acknowledge } |
before-login {acknowledge} save-to-configuration}
When using before-login, you have to select the save-to-configuration option
so that the change is saved to the configuration file to have it show up in output of
the show configuration {module-name} {detail} command.
When you use the acknowledge option, users must press a key to get the login
prompt.
When no options are specified, the command configures a banner for a CLI session
that appears before login. A CLI banner can have a maximum size of 24 rows with 79
columns of text.
• To clear a configured banner, use the following command:
unconfigure banner { after-login | before-login } command.
• To disable the acknowledgment feature (which forces the user to press a key before
the login screen appears), use the following command omitting the acknowledge
option:
configure banner {after-login | { before-login } { acknowledge } |
before-login {acknowledge} save-to-configuration}
• To display the banners that are configured on the switch, use the following
command:
show banner { after-login | before-login }
ExtremeXOS
Copyright (C) 1996-2023 Extreme Networks.
All rights reserved.
This product is protected by one or more US
patents listed at
http://www.extremenetworks.com/patents
along with their foreign counterparts.
==============================================================================
* <switchname>.1 #
You must have an administrator-level account to change the text of the prompt. The
prompt text is taken from the SNMP sysname setting.
The number that follows the period after the switch name indicates the sequential line
of the specific command or line for this CLI session.
If an asterisk (*) appears in front of the command line prompt, it indicates that you have
outstanding configuration changes that have not been saved.
If you have logged on with administrator capabilities, the command line prompt ends
with a (#) sign.
Note
If you log on with administrator privileges to 4120 and 4220 switches, the
command line prompt ends with an equal (=) sign.
If you have logged on with user capabilities, the command line prompt ends with a (>)
sign.
Default Accounts
By default, the switch is configured with two accounts. ExtremeXOS 15.7.1 added the
ability to disable all default accounts ("admin" and "user").
Caution
Using the encrypted option incorrectly can result in being locked out of
your switch account. For more information about the encrypted option, see
create account.
If you do not want a password associated with the specified account, press [Enter]
twice.
User-created account names are not case-sensitive.
Viewing Accounts
You can view all accounts. To view the accounts that have been created, you must have
administrator privileges. Run the show accounts command.
Deleting an Account
You can remove accounts that should no longer exist, but you must have administrator
privileges. To delete an account, run the delete account command.
This enable/disable command affects the following North Bound Interfaces (NBIs) in
mgmt-access realm:
• console
• TELNET
• SSH
• HTTP
• XML
The local database stores user names and passwords and helps to ensure that any
configuration changes to the switch can be done only by authorized users.
You can increase authentication security using Secure Shell 2 (SSH2). SSH2 provides
encryption for management sessions. For information about SSH2, see Secure Shell 2
on page 1192.
Failsafe Accounts
The failsafe account is last possible method to access your switch.
This account is never displayed by the show accounts command, but it is always
present on the switch. To display whether the user configured a username and
password for the failsafe account, or to show the configured connection-type access
restrictions, use the following command: show failsafe-account .
To configure the account name and password for the failsafe account, use the following
command:
When you use the command with no parameters, you are prompted for the failsafe
account name and prompted twice to specify the password for the account.
For example:
# configure failsafe-account
enter failsafe user name: blue5green
enter failsafe password:
enter password again:
When you use the command with the permit or deny parameter, the connection-type
access restrictions are altered as specified. For example:
# configure failsafe-account deny all
# configure failsafe-account permit serial
Note
On a SummitStack, when the synchronize stacking {node-address node-
address | slot slot-number } command is used, the failsafe account is
transferred from the current node to the specified nodes in the stack topology.
You do not need to provide the existing failsafe account information to change it.
Note
The information that you use to configure the failsafe account cannot be
recovered by Extreme Networks. Technical support cannot retrieve passwords
or account names for this account. Protect this information carefully.
1. Connect to the switch using one of the (configured) permitted connection types.
2. At the switch login prompt, carefully enter the failsafe account name.
If you enter an erroneous account name, you cannot re-enter the correct name. In
that case, press [Enter] until you get a login prompt and then try again.
3. When prompted, enter the password.
Managing Passwords
When you first access the switch, you have a default account.
You configure a password for your default account. As you create other accounts
(see Creating Management Accounts on page 51), you configure passwords for those
accounts.
The software allows you to apply additional security to the passwords. You can enforce
a specific format and minimum length for the password. Additionally, you can age out
the password, prevent a user from employing a previously used password, and lock
users out of the account after three consecutive failed login attempts.
You can change the password to an encrypted password after you create an account.
Note
Passwords are case-sensitive. User-created account names are not case-
sensitive.
Note
If you forget your password while logged out of the CLI, you can use the
bootloader to reinstall a default switch configuration, which allows access to
the switch without a password. Note that this process reconfigures all switch
settings back to the initial default configuration.
You can enforce a minimum length for the password, and set a maximum and
minimum time limit, after which the password will not be accepted.
To increase security, you can lock users out of the system entirely after three failed
consecutive logon attempts.
After the user’s account is locked out (using the configure account password-policy
lockout-on-login-failures command), it must be re-enabled by an administrator.
Version 33.1.1 adds additional restrictions for more secure user and password
combinations. These include the following:
• A user name and password cannot be the same.
• The same letters or numbers cannot appear in succession in the pass phrase ( no '11'
or 'aa' in the passphrase).
• Sequential input (logical and keyboard indexed) beyond 3 characters is prohibited.
For example, 1234, abcd, qwer, zxcv.
• Any password used within the last three months is prohibited.
• To set character requirements for the password, use the following command:
configure account [all | name] password-policy char-validation [none |
all-char-groups]
• To configure the number of characters in a revised password that must be changed
from an existing password.
configure account [all |name] password-policy min-different-characters
[count]
• To set a minimum length for the password, use the following command:
configure account [all | name] password-policy min-length
[num_characters | none]
• To age out the password after a specified time, use the following command:
configure account [all | name] password-policy max-age [num_days |
none]
• To configure a minimum password lifespan, use the following command:
configure account [all | name] password-policy min-age [num_days |
none]
• To configure that the same letters or numbers can't appear in succession in the
passphrase, use the following command:
configure account [all | name] password-policy char-repeat [permit |
deny]
• To configure that the user name and pass phrase cannot match, use the following
command:
configure account [all | name] password-policy username-match [permit
| deny]
• To configure that sequential input (logical and keyboard indexed) beyond 3
characters is prohibited, use the following command:
configure account [all | name] password-policy long-sequence [permit |
deny]
• To block users from employing previously used passwords, use the following
command:
configure account [all | name] password-policy history [num_passwords
| duration days | none]
• To disable an account after three consecutive failed logon attempts, use the
following command:
configure account [all | name] password-policy lockout-on-login-
failures [on | off]
Note
If you are not working on SSH, you can configure the number of failed
logons that trigger lockout, using the configure cli max-failed-logins
num-of-logins command. (This command also sets the number of failed
logons that terminate the particular session.)
However, if a new user is created or a password is changed, it will use the SHA-256 hash.
After a downgrade, older software will not be able to validate users with the SHA-256
hash. Upgrading will not automatically change the hash for existing users.
A new mode of operation for the CLI requires prompting (with no echo) for all
passwords, secrets, or keys. The command configure cli password prompting-only
controls this mode.
Each CLI command with password arguments is modified to use the new mode
(designated with flags="prompting-only" in the CLI syntax attribute specification). Then
prompting must be handled by that command.
Timed Lockout
This feature includes the option to disable an account for a configurable period of
time after consecutive failed logins. After the configured duration elapses a disabled
account is re-enabled automatically. The configurable period of lockout time ranges
from 1 minute to 1 hour. The configurable number of the consecutive failed attempts
ranges from 1 to 10.
The intent is to ensure the box is not ever completely locked out.
Displaying Passwords
To display the accounts and any applied password security, use the following
command:
• To display accounts and passwords, use the following command:
show accounts password-policy
• To display which accounts can be locked out, use the following command:
show accounts
You are not prompted for your username or password. You are logged in to the same
account (with corresponding rights) with which you accessed the originating slot.
The DNS analytics engine analyzes the DNS queries (IPv4 and IPv6) from all connected
clients and keeps track of received DNS queries from clients, and domains accessed
along with time stamps. By using the cache and analytics, audits can be performed on
the details of queries coming from clients, which allows for threat mitigation.
Supported Platforms
All ExtremeSwitching Universal platforms.
Limitations
• TCP DNS queries are not cached.
• The DNS cache feature and the L7 DNS feature in ONEPolicy should not be enabled
at the same time.
• Checkpointing is not supported in a stack or a MLAG setup for DNS caching.
• IPv6 DNS queries are not cached.
• DNS cache feature should not be enabled on VXLAN tenant VLANs.
The DNS client can resolve host names to both IPv4 and IPv6 addresses. In addition,
you can use the nslookup utility to return the IP address of a host name.
Use the following command to specify up to eight DNS servers for use by the DNS
client:
Use the following command to specify a default domain for use when a host name is
used without a domain.
For example, if you specify the domain xyz-inc.com as the default domain, then
a command such as ping accounting1 is taken as if it had been entered ping
accounting1.xyz-inc.com.
Ping
The ping command enables you to send ICMP (Internet Control Message Protocol)
echo messages to a remote IP device.
The ping command is available for both the user and administrator privilege levels.
Note: If you are contacting an IPv6 link local address, you must
specify the VLAN you are sending the message from: ping ipv6
link-local address %vlan_name host .
If a ping request fails, the switch stops sending the request after three attempts. Press
[Ctrl] + [C] to interrupt a ping request earlier. The statistics are tabulated after the ping
is interrupted or stops.
Use the ipv6 variable to ping an IPv6 host by generating an ICMPv6 echo request
message and sending the message to the specified address. If you are contacting an
IPv6 link local address, you must specify the VLAN that you are sending the message
from, as shown in the following example (you must include the % sign):
Traceroute
The traceroute command enables you to trace the path between the switch and a
destination endstation.
traceroute {vr vrid} {ipv4 host} {ipv6 host} {ttl number} {from from}
{[port port] | icmp}
vr
The name of the VR.
ipv4/ipv6
The transport.
from
Uses the specified source address in the ICMP packet. If not specified, the address of
the transmitting interface is used.
host
The host of the destination endstation. To use the hostname, you must first
configure DNS.
ttl
Configures the switch to trace the hops until the time-to-live has been exceeded for
the switch.
port
Uses the specified UDP port number.
icmp
Uses ICMP echo messages to trace the routed path.
You can include or exclude show command output that matches your specified text
pattern. You can also exclude all output until a line matches the pattern, and then
include all output beginning with that line.
Most show commands can be filtered, but a few, for example, show tech-support, do
not allow filtering.
show specific show Specify the show command followed by the vertical bar
command syntax (|) or pipe character. For example, show ports.
include Display the lines that match the regular expression.
exclude Do not display the lines that match the regular
expression.
begin Display all the lines starting with the first line that
matches the regular expression.
grep Display the lines that match the regular expression.
ignore-case Ignore case distinctions in both the output and the
regular expression.
count Display the number of lines after the filtered output.
count Display the number of lines after the output.
regexp The text pattern (regular expression) to match (case-
sensitive), enclosed by quotation marks.
If the specified show command outputs a refreshed display, filtering the show
command terminates the display without refreshing and a message appears stating
this.
Flow control
The following example display the status of “flow control” on the ports of a switch:
show ports 1-2 information detail | include "(Port|Flow Control)"
Port: 1
Flow Control: Rx-Pause: Enabled Tx-Pause: Disabled
Priority Flow Control: Disabled
Port: 2
Flow Control: Rx-Pause: Enabled Tx-Pause: Disabled
Priority Flow Control: Disabled
Example
The following example runs the show ports command for port 11 runs 15 times with an
interval of 30 seconds:
# watch "show ports 11 statistics port-number no-refresh" count 15 interval 30
Port Link Tx Pkt Tx Byte Rx Pkt Rx Byte Rx Pkt Rx
Pkt Tx Pkt Tx Pkt
=========== ===========
> in Count indicates value exceeds column width. Use 'wide' option or '0' to
clear.
> in Count indicates value exceeds column width. Use 'wide' option or '0' to
clear.
> in Count indicates value exceeds column width. Use 'wide' option or '0' to
clear.
This chapter provides information about how to use your ExtremeXOS switch. Included
you will find information about the ExtremeXOS Shell, system redundancy, power
supply management, user authentication, Telnet, and hitless failover support, as well
as SNMP (Simple Network Management Protocol) and SNTP (Simple Network Time
Protocol) usage information.
Note
The CLI is limited for 4000 Series devices. See the 4000 Series User Guide
for this version of Switch Engine for detailed information on the available
commands.
• Access the switch remotely using TCP/IP through one of the switch ports, or through
the dedicated 10/100 unshielded twisted pair (UTP) Ethernet management port.
Remote access includes:
◦ Telnet using the CLI interface
◦ Secure Shell (SSH2) using the CLI interface
◦ SNMP access using an SNMP manager
• Download software updates and upgrades. For more information, see Software
Upgrade and Boot Options on page 1948.
At the prompt, input the commands you want to execute on the switch. After the
switch processes and executes a command, the results are displayed on your terminal.
The shell supports ANSI, VT100, and XTERM terminal emulation and adjusts to the
correct terminal type and window size. In addition, the shell supports UNIX-style page
view for page-by-page command output capability.
By default, up to eight active shell sessions can access the switch concurrently;
however, you can change the number of simultaneous, active shell sessions supported
by the switch. You can configure up to 16 active shell sessions. Configurable shell
sessions include both Telnet and SSH connections (not console CLI connections). If only
eight active shell sessions can access the switch, a combination of eight Telnet and SSH
connections can access the switch even though Telnet and SSH each support eight
connections. For example, if you have six Telnet sessions and two SSH sessions, no one
else can access the switch until a connection is terminated or you access the switch
through the console.
If you configure a new limit, only new incoming shell sessions are affected. If you
decrease the limit and the current number of sessions already exceeds the new
maximum, the switch refuses only new incoming connections until the number of
shell session drops below the new limit. Already connected shell sessions are not
disconnected as a result of decreasing the limit.
Configure the number of shell sessions accepted by the switch, use the following
command:
For more information about the line-editing keys that you can use with the ExtremXOS
shell, see Line-Editing Keys on page 42.
Note
The CLI is limited for 4000 Series devices. See the 4000 Series User Guide
for this version of Switch Engine for detailed information on the available
commands.
Note
For more information on the console port pinouts, see the hardware
installation guide for your switch.
After the connection is established, you will see the switch prompt and can now log in.
Note
The CLI is limited for 4000 Series devices. See the 4000 Series User Guide
for this version of Switch Engine for detailed information on the available
commands.
On a SummitStack, the master node is accessed using the management port primary
IP address for other platforms. The primary IP address is acquired by the backup node
when it becomes the master node due to a failover. You can also directly access any
node in the stack using its alternate IP address if the node's management port is
connected to your network.
• To configure the IP address and subnet mask for the VLAN mgmt, use the following
command:
configure vlan mgmt ipaddress ip_address /subnet_mask
• To configure the default gateway (you must specify VR-Mgmt for the management
port and VLAN mgmt), use the following command:
configure iproute add default gateway { metric } {multicast |
multicast-only | unicast | unicast-only} {vr vrname}
Note
The CLI is limited for 4000 Series devices. See the 4000 Series User Guide
for this version of Switch Engine for detailed information on the available
commands.
Supported Platforms
Switches: All ExtremeSwitching Universal platforms.
Limitations
• Stacking with Bluetooth is not supported. Currently, access to a slot connected with
a Bluetooth device is supported, but other slots cannot be accessed.
• No security procedures are initiated for Bluetooth connectivity.
• Only a specific list of Bluetooth dongles is supported.
• Only one Bluetooth adapter is enabled per card. Other adapters will be in powered
off state.
• On platforms that do not support VR-Mgmt (for example, ExtremeSwitching 5320
series switches), the DHCP server will not run on the Bluetooth interface. Instead,
clients can connect using the Link Local IPv4 address only. Clients that do not
support Link Local IPv4 address (such as Mobile) are not able to access the switch.
Using Bluetooth
Bluetooth users/clients can access switches using either the global IP address or
link local IP address. The Bluetooth interface is assigned with the global IP address
(192.168.1.1/24 or 172.16.1.1/24). DHCP server runs on the Bluetooth interface. This is
mainly to serve Bluetooth clients with DHCP support. After a Bluetooth connection
is established, all Bluetooth clients are allocated IP addresses from this pool (192.168.1.2–
192.168.1.20 or 172.16.1.1–172.16.1.20). For Bluetooth clients that do not support DHCP, you
can use the link local IP address for accessing the switch. Range is 169.254.1.1–169.254.1.8.
You can check Bluetooth status using the show switch bluetooth [statistics |
inventory] command.
3. If needed, enable Bluetooth on the desired Bluetooth device (phone or laptop).
4. To initiate pairing, do one of the following:
• Press and hold the mode button for approximately 5 seconds.
• Press the pairing button on the dongle.
The Bluetooth Status LED blinks green while pairing is in progress, and then
becomes solid green when Bluetooth is connected.
Bluetooth Commands
To enable Bluetooth capabilities, use the following command:
This product offers a comprehensive set of network management tools that are easy to
use from a client workstation running client software, or from a workstation configured
with a web browser and the Java plug-in.
Authenticating Users
There are three methods to authenticate users who log in to the switch: RADIUS
(Remote Authentication Dial In User Service) client, TACACS+, and a local database of
accounts and passwords.
Note
You cannot configure RADIUS and TACACS+ at the same time.
RADIUS Client
Remote Authentication Dial In User Service (RADIUS, RFC 2865) is a mechanism for
authenticating and centrally administrating access to network nodes.
TACACS+
Terminal Access Controller Access Control System Plus (TACACS+) is a mechanism for
providing authentication, authorization, and accounting on a central server, similar in
function to the RADIUS client.
The ExtremeXOS version of TACACS+ is used to authenticate prospective users who are
attempting to administer the switch. TACACS+ is used to communicate between the
switch and an authentication database.
For detailed information about TACACS+ and configuring TACACS+, see Security on
page 1082.
Management Accounts
ExtremeXOS supports two levels of management accounts (local database of accounts
and passwords): user and administrator.
A user level account can view but not change all manageable parameters, with
the exception of the user account database and SNMP community strings. An
administrator level account can view and change all manageable parameters.
Using Telnet
The operating system supports the Telnet Protocol based on RFC 854.
Note
The CLI is limited for 4000 Series devices. See the 4000 Series User Guide
for this version of Switch Engine for detailed information on the available
commands.
Note
Maximize the Telnet screen so that it correctly displays screens that
automatically update.
For more information about using the Telnet client on the switch, see Connect to
Another Host Using Telnet on page 71.
Up to eight active Telnet sessions can access the switch concurrently. If you enable
the idle timer using the enable cli idle-timeout command, the Telnet connection
times out after 20 minutes of inactivity by default. If a connection to a Telnet session is
lost inadvertently, the switch terminates the session within two hours.
For information about the Telnet server on the switch, see the following sections:
• Configuring Telnet Access to the Switch on page 74
• Disconnecting a Telnet Session on page 75
User-created VRs are supported only on the platforms listed for this feature in the
Switch Engine Licensing Guide document.
If the TCP port number is not specified, the Telnet session defaults to port 23. If the VR
name is not specified, the Telnet session defaults to VR-Mgmt. Only VT100 emulation is
supported.
If you are using IP and you have a Bootstrap Protocol (BOOTP) server set up correctly
on your network, you must provide the following information to the BOOTP server:
• Switch Media Access Control (MAC) address, found on the rear label of the switch
• IP address
Note
Dual network operating system ExtremeSwitching switches (for example, 5520
switches) when running ExtremeXOS use a base MAC address at offset 0 (for
example: 00:c0:cc:8b:68:00) for both the OOB management port as well as
inband VLANs using DHCP. However, when running VOSS, the offset is 0x81 for
OOB (for example: 00:c0:cc:8b:68:81) and 256 (for example: 00:c0:cc:8b:69:00),
assuming the first VLAN MAC offset 0 is assigned to the inband VLAN. If a
different VLAN MAC offset is assigned, this MAC address changes accordingly
(for example, if VLAN MAC offset is 10, then the associated MAC address is
00:c0:cc:8b:69:0A).
When using DHCP client on the switch, the switch sends a common DHCP
client identifier equal to the base MAC address of the switch that is printed
on the switch label. When transitioning between VOSS and ExtremeXOS, since
the DHCP client ID is the same, the same IP address should be given out by
the DHCP server assuming a standard DHCP pool configuration. If you want
to statically assign IP addresses on the DHCP server, then it is recommended
to assign them based on the DHCP client ID, since this ensures the binding
does not change when alternating between VOSS and ExtremeXOS. If the
DHCP IP addresses are assigned based on MAC addresses, multiple entries
have to be configured (one for 0x81 offset, and one for :00 offset) to account
for differences in the OOB or inband VLAN source MAC address usage between
the two operating systems.
The switch does not retain IP addresses assigned by BOOTP or DHCP through a power
cycle, even if the configuration has been saved. To retain the IP address through a
power cycle, you must configure the IP address of the VLAN using the CLI or Telnet.
If you need the switch's MAC address to configure your BOOTP or DHCP server, you can
find it on the rear label of the switch. Note that all VLANs configured to use BOOTP or
DHCP use the same MAC address to get their IP address, so you cannot configure the
BOOTP or DHCP server to assign multiple specific IP addresses to a switch depending
solely on the MAC address.
• To enable the BOOTP or DHCP client per VLAN, use the following command:
enable bootp vlan [ vlan_name | all]
enable dhcp vlan [ vlan_name | all]
• To disable the BOOTP or DHCP client per VLAN, use the following command:
disable bootp vlan [ vlan_name | all]
disable dhcp vlan [ vlan_name | all]
• To view the current state of the BOOTP or DHCP client, use the following command:
show dhcp-client state
Note
The ExtremeXOS DHCP client will discard the DHCP OFFER if the lease time
is less than or equal to two seconds.
Note
For information on creating and configuring VLANs, see VLANs on page
582.
Administrator capabilities enable you to access all switch functions. The default
user names have no passwords assigned.
If you have been assigned a user name and password with administrator
privileges, enter them at the login prompt.
Note
As a general rule, when configuring any IP addresses for the switch,
you can express a subnet mask by using dotted decimal notation or
by using classless inter domain routing notation (CIDR). CIDR uses a
forward slash plus the number of bits in the subnet mask. Using CIDR
notation, the command identical to the previous example is: configure
vlan default ipaddress 123.45.67.8/24.
3. Configure the default route for the switch using the following command:
configure iproute add default gateway {metric} {multicast | multicast-
only | unicast | unicast-only} {vr vrname}
For example:
configure iproute add default 123.45.67.1
4. Save your configuration changes so that they will be in effect after the next switch
reboot.
If you want to save your changes to the currently booted configuration, use the
following command: save
ExtremeXOS allows you to select or create a configuration file name of your choice to
save the configuration to.
a. If you want to save your changes to an existing or new configuration file, use the
following command:
save configuration {primary | secondary | existing-config | new-
config}
5. When you are finished using the facility, log out of the switch by typing: logout or
quit.
User-created VRs are supported only on the platforms listed for this feature in the
Switch Engine Licensing Guide document.
The safe defaults mode runs an interactive script that allows you to enable or disable
SNMP, Telnet, and switch ports. When you set up your switch for the first time, you
must connect to the console port to access the switch. After logging in to the switch,
you will enter into the safe defaults mode. Although SNMP, Telnet, and switch ports are
enabled by default, the script prompts you to confirm those settings.
If you choose to keep the default setting for Telnet—the default setting is enabled—the
switch returns the following interactive script:
Since you have chosen less secure management methods, please remember to increase the
security of your network by taking the following actions:
* change your admin password
* change your SNMP public and private strings
* consider using SNMPv3 to secure network management traffic
For more detailed information about safe defaults mode, see Using Safe Defaults Mode
on page 45.
• To configure the VR from which you receive a Telnet request, use the following
command:
configure telnet vr [all | default | vr_name]
• To change the default, use the following command:
configure telnet port [portno | default]
The range for the port number is 1–65535. The following TCP port numbers are
reserved and cannot be used for Telnet connections: 22, 80, and 1023. If you attempt
to configure a reserved port, the switch displays an error message.
Note
You must be logged in as an administrator to configure the virtual router(s)
used by Telnet and to enable or disable Telnet.
The user logged in by way of the Telnet connection is notified that the session has been
terminated.
The access profile logging feature allows you to use an ACL (Access Control List) policy
file or dynamic ACL rules to control access to Telnet services on the switch. When
access profile logging is enabled for Telnet, the switch logs messages and increments
counters when packets are denied access to Telnet. No messages are logged for
permitted access.
You can manage Telnet access using one (not both) of the following methods:
• Create and apply an ACL policy file.
• Define and apply individual ACL rules.
One advantage of ACL policy files is that you can copy the file and use it on other
switches. One advantage to applying individual ACL rules is that you can enter the rules
at the CLI command prompt, which can be easier than opening, editing, and saving a
policy file.
If the ACL is created with more match conditions or actions, only those listed above are
used for validating the packets. All other conditions and actions are ignored.
The source-address field allows you to identify an IPv4 address, IPv6 address, or subnet
mask for which access is either permitted or denied.
If the Telnet traffic does not match any of the rules, the default behavior is deny.
Limitations
Access profile logging for Telnet has the following limitations:
• Either policy files or ACL rules can be associated with Telnet, but not both at the
same time.
• Only source-address match is supported.
• Access-lists that are associated with one or more applications cannot be directly
deleted. They must be unconfigured from the application first and then deleted
from the CLI.
• Default counter support is added only for ACL rules and not for policy files.
Note
Do not also apply the policy to the access list. Applying a policy to both an
access profile and an access list is neither necessary nor recommended.
1. To add or delete a rule for Telnet access, use the following command:
configure telnet access-profile [ access_profile | [[add rule ] [first
| [[before | after] previous_rule]]] | delete rule | none ]
2. To display the access-list permit and deny statistics for an application, use the
following command:
show access-list counters process [snmp | telnet | ssh2 | http]
Rule <rule> is already applied A rule with the same name is already applied to this
service.
Please remove the policy A policy file is already associated with the service. You
<policy> already configured, must remove the policy before you can add a rule.
and then add rule <rule>
Rule <previous_rule> is not The specified rule has not been applied to the service, so
already applied you cannot add a rule in relation to that rule.
Rule <rule> is not applied The specified rule has not been applied to the service, so
you cannot remove the rule from the service.
Error: Please remove A policy or one or more ACL rules are configured for the
previously configured rule(s) service. You must delete the remove the policy or rules
before configuring policy from the service before you can add a policy.
<policy>
MyAccessProfile.pol
entry AllowTheseSubnets {
if {
source-address 10.203.133.0 /24;
} then {
permit;
}
}
MyAccessProfile.pol
entry AllowTheseSubnets {
if match any {
source-address 10.203.133.0 /24;
source-address 10.203.135.0 /24;
} then {
permit;
}
}
In the following example named MyAccessProfile_2.pol, the switch does not permit
connections from the subnet 10.203.133.0 /24 but accepts connections from all other
addresses:
MyAccessProfile_2.pol
entry dontAllowTheseSubnets {
if {
source-address 10.203.133.0 /24;
} then {
deny;
}
}
entry AllowTheRest {
if {
; #none specified
} then {
permit;
}
}
MyAccessProfile_2.pol
entry dontAllowTheseSubnets {
if match any {
source-address 10.203.133.0 /24;
The SSH2 switch application works with the following clients: Putty, SSH2 (version 2.x or
later) from SSH Communication Security, and OpenSSH (version 2.5 or later).
Up to eight active SSH2 sessions can run on the switch concurrently. If you enable
the idle timer using the enable cli idle-timeout command, the SSH2 connection
times out after 20 minutes of inactivity by default. If you disable the idle timer using
the disable cli idle-timeout command, the SSH2 connection times out after 60
minutes of inactivity, by default. You can modify the timeout value using the command
configure ssh2 idletimeout <minutes> where <minutes> can be from 1 to 240 . For
more information, refer to the help command for configure ssh2 idletimeout. If a
connection to an SSH2 session is lost inadvertently, the switch terminates the session
within 60 minutes.
When access profile logging is enabled for SSH2, the switch logs messages and
increments counters when packets are denied access to SSH2. No messages are
logged for permitted access.
You can manage SSH2 access using one (not both) of the following methods:
• Create and apply an ACL policy file
• Define and apply individual ACL rules
One advantage of ACL policy files is that you can copy the file and use it on other
switches. One advantage to applying individual ACL rules is that you can enter the rules
at the CLI command prompt, which can be easier than opening, editing, and saving a
policy file.
If the ACL is created with more match conditions or actions, only those listed above are
used for validating the packets. All other conditions and actions are ignored.
The source-address field allows you to identify an IPv4 address, IPv6 address, or subnet
mask for which access is either permitted or denied.
If the Telnet traffic does not match any of the rules, the default behavior is deny.
Limitations
Access profile logging for SSH2 has the following limitations:
• Either policy files or ACLs can be associated with SSH2, but not both at the same
time.
• Only source-address match is supported.
• Access-lists that are associated with one or more applications cannot be directly
deleted. They must be unconfigured from the application first and then deleted
from the CLI.
• Default counter support is added only for dynamic ACL rules and not for policy files.
Rule <rule> is already applied A rule with the same name is already applied to this
service.
Please remove the policy A policy file is already associated with the service. You
<policy> already configured, must remove the policy before you can add a rule.
and then add rule <rule>
Rule <previous_rule> is not The specified rule has not been applied to the service, so
already applied you cannot add a rule in relation to that rule.
Rule <rule> is not applied The specified rule has not been applied to the service, so
you cannot remove the rule from the service.
Error: Please remove A policy or one or more ACL rules are configured for the
previously configured rule(s) service. You must delete the remove the policy or rules
before configuring policy from the service before you can add a policy.
<policy>
TFTP is a method used to transfer files from one network device to another. The
ExtremeXOS TFTP client is a command line application used to contact an external
TFTP server on the network. For example, ExtremeXOS uses TFTP to download software
image files, switch configuration files, and ACLs from a server on the network to the
switch.
We recommend using a TFTP server that supports blocksize negotiation (as described
in RFC 2348, TFTP Blocksize Option), to enable faster file downloads and larger file
downloads.
Note
For better functionality, minimum block-size of 64 bytes is recommended.
Note
User-created VRs are supported only on the platforms listed for this feature
in the Switch Engine Licensing Guide document.
The TFTP session defaults to port 69. If you do not specify a VR, VR-Mgmt is used.
When you “get” the file through TFTP, the switch saves the file.
2. To view the files you retrieved, run the ls command at the command prompt.
In addition to the tftp command, the following two commands are available for
transferring files to and from the switch:
tftp get [ ip-address | host-name] { vr vr_name } { block-size
block_size } remote-file local-file} {force-overwrite}
By default, if you transfer a file with a name that already exists on the system, the
switch prompts you to overwrite the existing file. For more information, see the tftp
get command.
The primary node provides all of the switch management functions including running
the bridging and routing protocols, and configuring the switch. The primary node also
synchronizes the backup node in case it needs to take over the management functions
if the primary node fails.
For SummitStack, a node can be a redundant primary node if it has been configured to
be master-capable.
To configure master capability on one or all nodes in a SummitStack, use one of the
following commands:
configure stacking [node-address node-address | slot slot-number]
alternate-ip-address [ipaddress netmask | ipNetmask] gateway
configure stacking redundancy [none | minimal | maximal]
Node Election
Node election is based on leader election between master-capable nodes present in a
SummitStack.
By default, the SummitStack node in slot 1 has primary status. Each node uses health
information about itself together with a user configured priority value to compute its
node role election priority. Nodes exchange their node role election priorities. During
the node election process, the node with the highest node role election priority
becomes the master or primary node, and the node with the second highest node role
election priority becomes the backup node. All other nodes (if any) remain in STANDBY
state.
The primary node runs the switch management functions, and the backup node is
fully prepared to become the primary node if the primary fails. In SummitStack, nodes
that remain in STANDBY state (called Standby nodes) program their port hardware
based on instructions received from the primary. Standby nodes configured to be
master-capable elect a new backup node from among themselves after a failover has
occurred.
You can cause the primary to failover to the backup, thereby relinquishing its primary
status.
1. Use the show switch {detail} command on the primary or the backup node to
confirm that the nodes are synchronized and have identical software and switch
configurations before failover.
A node may not be synchronized because checkpointing did not occur,
incompatible software is running on the primary and backup, or the backup is down.
If the nodes are not synchronized and both nodes are running a version of
ExtremeXOS that supports synchronization, proceed to step 2.
If the nodes are synchronized, proceed to step 3 on page 85.
The output displays the status of the nodes, with the primary node showing MASTER
and the backup node showing BACKUP (InSync).
2. If the nodes are not synchronized because of incompatible software, use the
synchronize command to ensure that the backup has the same software in flash
as the primary.
The synchronize command:
• Reboots the backup node to prepare it for synchronizing with the primary node.
• Copies both the primary and secondary software images.
• Copies both the primary and secondary configurations.
• Reboots the backup node after replication is complete.
After you confirm the nodes are synchronized, proceed to step 3.
3. If the nodes are synchronized, use the run failover {force} command to initiate
failover from the primary node to the backup node.
The backup node then becomes the primary node and the original primary node
reboots.
Relaying configuration information is the first level of checkpointing . During the initial
switch boot-up, the primary’s configuration takes effect. During the initialization of a
node, its configuration is read from the local flash. After the primary and backup nodes
have been elected, the primary transfers its current active configuration to the backup.
After the primary and backup nodes are synchronized, any configuration change you
make to the primary is relayed to the backup and incorporated into the backup’s
configuration copy.
Note
To ensure that all of the configuration commands in the backup’s flash
are updated, issue the save command after you make any changes. On a
SummitStack, the save configuration command will normally save the primary
node's configuration file to all active nodes in the SummitStack.
If a failover occurs, the backup node continues to use the primary’s active configuration.
If the backup determines that it does not have the primary’s active configuration
because a run-time synchronization did not happen, the switch or SummitStack
reboots. Because the backup always uses the primary’s active configuration, the active
configuration remains in effect regardless of the number of failovers.
Note
If you issue the reboot command before you save your configuration changes,
the switch prompts you to save your changes. To keep your configuration
changes, save them before you reboot the switch.
Bulk Checkpointing
Bulk checkpointing causes the master and backup run-time states to be synchronized.
Since ExtremeXOS runs a series of applications, an application starts checkpointing
only after all of the applications it depends on have transferred their run-time states to
the backup node.
After one application completes bulk checkpointing, the next application proceeds
with its bulk checkpointing.
• To monitor the checkpointing status, use the show checkpoint-data {process}
command.
• To see if bulk checkpointing is complete (that is, to see if the backup node is
fully synchronized [in sync] with the master node), use the show switch {detail}
command.
Dynamic Checkpointing
After an application transfers its saved state to the backup node, dynamic
checkpointing requires that any new configuration information or state changes that
occur on the primary be immediately relayed to the backup.
This ensures that the backup has the most up-to-date and accurate information.
This command is also helpful in debugging synchronization problems that occur at run
time.
The output displays, in percentages, the amount of copying completed by each process
and the traffic statistics between the process on both the primary and the backup
nodes.
In a SummitStack, the show stacking command shows the node roles of active nodes.
The primary node provides all of the switch management functions including bringing
up and programming the other (standby) nodes in the SummitStack, running the
bridging and routing protocols, and configuring the switch. The primary node also
synchronizes the backup node in case it needs to take over the management functions
if the primary node fails.
Not all protocols support hitless failover. Layer 3 forwarding tables are maintained
for pre-existing flows, but subsequent behavior depends on the routing protocols
used. Static Layer 3 configurations and routes are hitless. You must configure OSPF
(Open Shortest Path First) graceful restart for OSPF routes to be maintained, and
you must configure BGP (Border Gateway Protocol) graceful restart for BGP routes
to be maintained. For more information about OSPF, see OSPF on page 1652 and for
more information about BGP, see BGP on page 1707. For routing protocols that do not
support hitless failover, the new primary node removes and re-adds the routes.
If a protocol indicates support for hitless failover, additional information is also available
in that particular chapter. For example, for information about network login support of
hitless failover, see Network Login on page 893.
Check the latest version of the ExtremeXOS release notes for additional information.
Note
When an EPS-T tray with two EPS-160 PSUs is connected to a
ExtremeSwitching switch, the internal power supply will show as failed.
For more information about ExtremeSwitching switches and EPS, see the hardware
documentation listed in Related Publications on page 6.
The only difference is that the power management commands have been centralized
so that they can be issued from the primary node.
NTP provides a coordinated Universal Time Clock (UTC), the primary time standard by
which the world regulates clocks and time. UTC is used by devices that rely on having a
highly accurate, universally accepted time, and can synchronize computer clock times
to a fraction of a millisecond. In a networked environment, having a universal time can
be crucial. For example, the stock exchange and air traffic control use NTP to ensure
accurate, timely data.
NTP uses a hierarchical, semi-layered system of levels of clock sources called a stratum.
Each stratum is assigned a layer number starting with 0 (zero), with 0 meaning the
least amount of delay. The stratum number defines the distance, or number of NTP
hops away, from the reference clock. The lower the number, the closer the switch is
to the reference clock. The stratum also serves to prevent cyclical dependencies in the
hierarchy.
SNTP, as the name would suggest, is a simplified version of NTP that uses the same
protocol, but without many of the complex synchronization algorithms used by NTP.
SNTP is suited for use in smaller, less complex networks. For more information about
SNTP see the section, Using the Simple Network Time Protocol on page 119.
Note
When NTP is enabled, it is not recommended to update the time manually.
Limitations
The Extreme Networks implementation of NTP includes the following limitations:
• SNTP cannot be enabled at the same time NTP is enabled.
• The NTP multicast delivery mechanism is not supported.
• The NTP autokey security mechanism is not supported.
• The broadcast client option cannot be enabled on a per-VLAN basis.
VR Configuration Support
Starting with ExtremeXOS 22.2, NTP can be configured over multiple VRs.
Note
If VR is not specified, command is executed in current VR context and enables
NTP for that VR alone.
To configure NTP in all VLANs for a VR, use the following command:
Beginning in version 32.6, NTP servers and peers can be configured in IPv6 address
format. Additionally, when enabling NTP on a VLAN, NTP is enabled on all the global
IPv6 addresses of the VLAN. You can also have a combination of IPv4 and IPv6 servers
or peers.
• To configure an NTP server, use the following command:
configure ntp [server | peer] add [ip_address | ipv6_address |
host_name] {key keyid} {option [burst | initial-burst]} {{vr} vr_name}
• To delete an NTP server, use the following command:
configure ntp [server | peer] delete [ip_address | ipv6_address |
host_name]
With scaled configuration, NTP takes more time to apply the configuration, since it
involves system calls to apply the configuration.
To show the NTP access list of the current system based on the source IP address
blocks, use the following command:
To ensure that NTP broadcast clients get clock information from the correct NTP
broadcast servers, with minimized risks from malicious NTP broadcast attacks,
configure RSA Data Security, Inc. MD5 (Message-Digest algorithm 5) Message-Digest
Algorithm authentication on both the NTP broadcast server and NTP clients.
• To configure an NTP broadcast server over a VLAN where NTP broadcast service is
provided, use the following command:
enable ntp {vlan} vlan-name broadcast-server {key keyid}
• To delete an NTP broadcast server over a VLAN where NTP broadcast service is
enabled, use the following command:
disable ntp {vlan} vlan-name broadcast-server
• To display an NTP broadcast server, use the following command:
show ntp server
show ntp vlan {{vr} vr_name}
When FIPS mode is enabled, Network Time Protocol (NTP) uses OpenSSL Federal
Information Processing Standards (FIPS) library and supports only FIPS-compliant
algorithms for authentication (SHA-256 authentication only). MD5 key configuration
support is not available when FIPS mode is enabled, and existing MD5 key
configurations are removed when FIPS mode comes into effect. For more information
about FIPS mode, see Federal Information Processing Standards (FIPS) Mode on page
1085.
First, enable NTP authentication globally on the switch. Then create an NTP
authentication key configured as trusted, to check the encryption key against the key
on the receiving device before an NTP packet is sent. After configuration is complete,
an NTP server, peer, and broadcast server can use NTP authenticated service.
• To enable or disable NTP authentication globally on the switch, use the following
command:
enable ntp authentication
disable ntp authentication
• To create or delete an RSA Data Security, Inc. MD5 Message-Digest Algorithm key for
NTP authentication, use the following command:
create ntp key keyid [md5 | sha256] {encrypted encrypted_key_string |
key_string}
delete ntp key [keyid | all]
• To configure an RSA Data Security, Inc. MD5 Message-Digest Algorithm key as
trusted or not trusted, use the following command:
configure ntp key keyid [trusted | not-trusted]
• To display RSA Data Security, Inc. MD5 Message-Digest Algorithm authentication,
use the following command:
show ntp key
• To display NTP authentication, use the following command:
show ntp sys-info
show ntp
To display the current system status based on the most reliable clock server or NTP
server, use the following command:
To display all of the NTP clock source information, from a statically configured server,
peer, or broadcast server:
SW#2 configures SW#1 as a time server using a normal unicast message. It also has a
local clock (127.127.1.1) with a stratum level of 10. SW#3 is configured as broadcast client
without specific server information. For security purposes, SW#2 and SW#3 use RSA
Data Security, Inc. MD5 Message-Digest Algorithm authentication with a key index of
100.
SW#1 Configuration
create vlan internet
create vlan toSW2
create vlan toSW3
config vlan internet add port 1
config vlan toSW2 add port 2
config vlan toSW3 add port 3
config vlan internet ipaddress 10.45.203.74/24
config vlan toSW2 ipaddress 100.1.1.1/24
config vlan toSW3 ipaddress 102.1.1.1/24
config iproute add default 10.45.203.1 vr vr-default
enable ntp
create ntp key 100 md5 EXTREME
config ntp key 100 trusted
enable ntp vlan internet
enable ntp vlan toSW2
enable ntp vlan toSW3
enable ntp vlan toSW3 broadcast-server key 100
config ntp server add 0.us.pool.ntp.org
config ntp server add 1.us.pool.ntp.org
config ntp server add 2.us.pool.ntp.org
config ntp server add 3.us.pool.ntp.org
config ntp local-clock stratum 10
config ntp server add 1000::1 vr VR-Default
SW#2 Configuration
create vlan toSW1
config vlan toSW1 add port 1
config vlan toSW1 ipaddress 100.1.1.2/24
enable ntp
enable ntp vlan toSW1
config ntp server add 100.1.1.1
SW#3 Configuration
create vlan toSW1
config vlan toSW1 add port 1
config vlan toSW1 ipaddress 102.1.1.2/24
enable ntp
enable ntp broadcast-client
create ntp key 100 md5 EXTREME
config ntp key 100 trusted
enable ntp vlan toSW1
SW#2 Configuration
create vlan v5 -- in vr VR-Default
config vlan v5 add port <port towards SW#1>
config vlan v5 ipaddress 5.1.1.6/24
enable ntp vr VR-Default
enable ntp vlan v5
configure ntp server add 5.1.1.5 initial-burst vr VR-Default
SW#3 Configuration
create vlan v6 -- in vr test (user-VR)
config vlan v6 ipaddress 6.1.1.7/24
config vlan v6 add port <port towards SW#1>
enable ntp vr test
enable ntp vlan v6
configure ntp server add 6.1.1.6 initial-burst vr test
Each network manager program provides its own user interface to the management
facilities.
Note
When using a network manager program to create a VLAN, we do not support
the SNMP createAndWait operation. To create a VLAN with SNMP, use the
createAndGo operation.
createAndGo is one of six values in the RowStatus column of SMIv2 tables.
createAndGo is supplied by a manager wishing to create a new instance of a
conceptual row and have its status automatically set to active in order to make
it available for use by the managed device
The following sections describe how to get started if you want to use an SNMP
manager. It assumes you are already familiar with SNMP management.
Note
Perform a save operation if you make any configurations using SNMP mibs. If
you do not save, some of the configurations may not survive when you reboot.
Most of the commands that support SNMPv2c use the keyword snmp; most of the
commands that support SNMPv3 use the keyword snmpv3.
After a switch reboot, all slots must be in the “Operational” state before SNMP can
manage and access the slots. To verify the current state of the slot, use the show slot
command.
When you set up your switch for the first time, you must connect to the console port
to access the switch. After logging in to the switch, you enter safe defaults mode.
Although Telnet and switch ports are enabled by default, the script prompts you to
confirm those settings or disable them.
SNMP is disabled by default. If you choose to enable SNMP, the switch follows the
interactive script asking you if you want to enable SNMPv2c and/or SNMPv3.
For more detailed information about safe defaults mode, see Using Safe Defaults Mode
on page 45.
SNMP access for a VR has global SNMP status that includes all SNMPv2c, SNMPv3, and
default group status. However, trap receiver configuration and trap enabling/disabling
are independent of global SNMP access and are still forwarded on a VR that is disabled
for SNMP access.
• Enable SNMP access on a VR:
enable snmp access vr [vr_name | all]
• Disable SNMP access on a VR, use the following command:
disable snmp access vr [vr_name | all]
• Display the SNMP configuration and statistics on a VR:
show snmp {vr} vr_name
Use the show switch management command to display SNMP authentication trap
configuration information.
By default, SNMP access and SNMPv2c traps are enabled. SNMP access and SNMP
traps can be disabled and enabled independently—you can disable SNMP access but
still allow SNMP traps to be sent, or vice versa.
Supported MIBs
Standard MIBs supported by the switch. In addition to private MIBs, the switch
supports the standard MIBs listed in Supported Standards, Protocols, and MIBs on page
2007.
Note
It is recommended to use a different community name for the trap receiver
and other SNMP read/write operations.
To configure the number of SNMP INFORM notification retries, use the following
command:
configure snmpv3 target-addr [[hex hex_addr_name] | addr_name] retry
retry_count
To configure the SNMP INFORM timeout interval, use the following command:
configure snmpv3 target-addr [[hex hex_addr_name] | addr_name] timeout
timeout_val
• Community strings—The community strings allow a simple method of
authentication between the switch and the remote network manager. There are two
types of community strings on the switch:
◦ Read community strings provide read-only access to the switch.
◦ Read-write community strings provide read- and-write access to the switch.
To store and display the SNMP community string in encrypted format, use the
following command:
configure snmpv3 add community [[hex hex_community_index] |
community_index] [encrypted name community_name | name [[hex
hex_community_name] | community_name] {store-encrypted} ] user
[[hex hex_user_name] | user_name] {tag [[hex transport_tag] |
transport_tag]} {volatile}
Note
SNMP community string name can contain special characters.
• System contact (optional)—The system contact is a text field that enables you to
enter the name of the person(s) responsible for managing the switch.
• System name (optional)—The system name enables you to enter a name that you
have assigned to this switch. The default name is the model name of the switch (for
example, BD-1.2).
• System location (optional)—Using the system location field, you can enter the
location of the switch.
SNMPv3
SNMPv3 is an enhanced standard for SNMP that improves the security and privacy of
SNMP access to managed devices and provides sophisticated control of access to the
device MIB. The prior standard versions of SNMP, SNMPv1, and SNMPv2c, provided no
privacy and little security.
The following RFCs provide the foundation for the Extreme Networks implementation
of SNMPv3:
• RFC 3410, Introduction to version 3 of the Internet-standard Network Management
Framework, provides an overview of SNMPv3.
• RFC 3411, An Architecture for Describing SNMP Management Frameworks, talks
about SNMP architecture, especially the architecture for security and administration.
• RFC 3412, Message Processing and Dispatching for the Simple Network
Management Protocol (SNMP), talks about the message processing models and
dispatching that can be a part of an SNMP engine.
• RFC 3413, SNMPv3 Applications, talks about the different types of applications that
can be associated with an SNMPv3 engine.
• RFC 3414, The User-Based Security Model for Version 3 of the Simple Network
Management Protocol (SNMPv3), describes the User-Based Security Model (USM).
• RFC 3415, View-based Access Control Model (VACM) for the Simple Network
Management Protocol (SNMP), talks about VACM as a way to access the MIB.
• RFC 3826, The Advanced Encryption Standard (AES) Cipher Algorithm in the SNMP
User-based Security Model.
Note
AES 192 and AES 256 bit encryption are proprietary implementations and may
not work with some SNMP Managers.
The SNMPv3 standards for network management were driven primarily by the need
for greater security and access control. The new standards use a modular design
and model management information by cleanly defining a message processing (MP)
subsystem, a security subsystem, and an access control subsystem.
The MP subsystem helps identify the MP model to be used when processing a received
Protocol Data Unit (PDU), which are the packets used by SNMP for communication.
The security subsystem features the use of various authentication and privacy protocols
with various timeliness checking and engine clock synchronization schemes.
The access control subsystem provides the ability to configure whether access to a
managed object in a local MIB is allowed for a remote principal. The access control
scheme allows you to define access policies based on MIB views, groups, and multiple
security levels.
In addition, the SNMPv3 target and notification MIBs provide a more procedural
approach for generating and filtering of notifications.
Note
In SNMPv3, many objects can be identified by a human-readable string or
by a string of hexadecimal octets. In many commands, you can use either a
character string, or a colon-separated string of hexadecimal octets to specify
objects. To indicate hexadecimal octets, use the keyword hex in the command.
Message Processing
A particular network manager may require messages that conform to a particular
version of SNMP. The choice of the SNMPv1, SNMPv2c, or SNMPv3 MP model can be
configured for each network manager as its target address is configured. The selection
of the MP model is configured with the mp-model keyword in the following command:
configure snmpv3 add target-params [[hex hex_param_name] |
param_name ]user [[hex hex_user_name] | user_name] mp-model [snmpv2c |
snmpv3] sec-model [snmpv2c | usm] {sec-level [noauth | authnopriv |
priv]} {volatile}
SNMPv3 Security
In SNMPv3 the User-Based Security Model (USM) for SNMP was introduced. USM deals
with security related aspects like authentication, encryption of SNMP messages, and
defining users and their various access security levels. This standard also encompasses
protection against message delay and message replay.
In a SummitStack, the MAC address chosen for the snmpEngineID is the configured
stack MAC address.
SNMPEngineBoots can be set to any desired value but will latch on its maximum,
2147483647.
Users are created by specifying a user name. Depending on whether the user will be
using authentication and/or privacy, you would also specify an authentication protocol
(RSA Data Security, Inc. MD5 Message-Digest Algorithm or SHA) with password or key,
and/or privacy (DES, AES) password or key.
Managing Users
Users are created by specifying a user name. Enabling the SNMPv3 user access allows
an end user to access the MIBs using SNMPv3 user. By deleting users access, the
end-user is not able to access the switch/MIBs using SNMPv3 user.
• To create a user, use the following command:
configure snmpv3 add user [[hex hex_user_name] | user_name]
{authentication [md5 | sha] [hex hex_auth_password | auth_password]}
{privacy {des | aes {128 | 192 | 256}} [[hex hex_priv_password] |
priv_password]} }{volatile}
• To display information about a user, or all users, use the following command:
show snmpv3 user {[[hex hex_user_name] | user_name]}
• To delete a user, use the following command:
configure snmpv3 delete user [all | [[hex hex_user_name] | user_name]
{ }]
Note
The SNMPv3 specifications describe the concept of a security name. In
the ExtremeXOS implementation, the user name and security name are
identical. In this manual, both terms are used to refer to the same thing.
• To configure SNMPv3 password policies for all users, use the following command:
configure snmpv3 user password-policy [authentication | privacy]
[[username-match | char-repeat | long-sequence | char-validation]
Managing Groups
Groups are used to manage access for the MIB. You use groups to define the security
model, the security level, and the portion of the MIB that members of the group can
read or write.
The security model and security level are discussed in Security Models and Levels on
page 113. The view names associated with a group define a subset of the MIB (subtree)
that can be accessed by members of the group. The read view defines the subtree
that can be read, write view defines the subtree that can be written to, and notify view
defines the subtree that notifications can originate from. MIB views are discussed in
Setting SNMPv3 MIB Access Control on page 114.
A number of default groups are already defined. These groups are: admin, initial, v2c_ro,
v2c_rw.
Disabling SNMPv3 default-group access removes access to users and user created
users who are part of the default-group.
Note
SNMPv3 default group should be enabled by default. If it is disabled snmpv2
community will not work.
The user-created authenticated SNMPv3 users (who are part of a user-created group)
are able to access the switch.
• To underscore the access function of groups, groups are defined using the following
command:
configure snmpv3 add access [[hex hex_group_name] | group_name] {sec-
model [snmpv2c | usm]} {sec-level [noauth | authnopriv | priv]}
{read-view [[hex hex_read_view_name] | read_view_name]} {write-view
[[hex hex_write_view_name]] | write_view_name]} {notify-view [[hex
hex_notify_view_nam]] | notify_view_name]} {volatile}
• To display information about the access configuration of a group or all groups, use
the following command:
show snmpv3 access {[[hex hex_group_name] | group_name]}
• To enable default-group, use the following command:
enable snmpv3 default-group
• To disable a default-group, use the following command:
disable snmpv3 default-group
When you delete a group, you do not remove the association between the group
and users of the group.
• To delete the association between a user and a group, use the following command:
configure snmpv3 delete group {[[hex hex_group_name] | group_name]}
user [all-non-defaults | {[[hex hex_user_name] | user_name] {sec-model
[snmpv2c|usm]}}]
The default is USM. You can select the security model based on your network manager.
For privacy, the user can select any one of the following supported privacy protocols:
DES, AES 128/192/256. In the case of DES, a 16-octet key is provided as input to
DES-CBS encryption protocol which generates an encrypted PDU to be transmitted.
DES uses bytes 1-7 to make a 56 bit key. This key (encrypted itself) is placed
The SNMP Context Name should be set to the VR name for which the information is
requested. If the Context Name is not set the switch will retrieve the information for
"VR-Default.". If the SNMP request is targeted for the protocols running per VR (see
Adding and Deleting Routing Protocols on page 729), then the contextName should be
set to the exact virtual-Router for which the information is requested. List of protocols
running per Virtual Router:
• BGP
• OSPF
• PIM
• RIP
• OSPFv3
• RIPNG
• MPLS (Multiprotocol Label Switching)
• ISIS
MIB views represent the basic building blocks of VACM. They are used to define
a subset of the information in the MIB. Access to read, to write, and to generate
notifications is based on the relationship between a MIB view and an access group.
The users of the access group can then read, write, or receive notifications from the part
of the MIB defined in the MIB view as configured in the access group.
A view name, a MIB subtree/mask, and an inclusion or exclusion define every MIB
view. For example, there is a System group defined under the MIB-2 tree. The Object
Identifier (OID) for MIB-2 is 1.3.6.1.2, and the System group is defined as MIB-2.1.1, or
directly as 1.3.6.1.2.1.1.
When you create the MIB view, you can choose to include the MIB subtree/mask or to
exclude the MIB subtree/mask.
In addition to the user-created MIB views, there are three default views:
defaultUserView, defaultAdminView, and defaultNotifyView.
The mask can also be expressed in hex notation (used in the ExtremeXOS CLI):
1.3.6.1.2.1.1/fe
• To define a view that includes the entire MIB-2, use the following subtree/mask:
1.3.6.1.2.1.1/1.1.1.1.1.0.0.0
1.3.6.1.2.1.1/f8
• To create a MIB view, use the following command:
configure snmpv3 add mib-view [[hex hex_view_name] | view_name]
subtree object_identifier {subtree_mask} {type [included | excluded]}
{volatile}
After the view has been created, you can repeatedly use the configure snmpv3 add
mib-view command to include and/or exclude MIB subtree/mask combinations to
precisely define the items you want to control access to.
• To show MIB views, use the following command:
show snmpv3 mib-view {[[hex hex_view_name] | view_name] {subtree
object_identifier}}
• To delete a MIB view, use the following command:
configure snmpv3 delete mib-view [all-non-defaults | {[[hex
hex_view_name] | view_name] {subtree object_identifier}}]
SNMPv3 Notification
SNMPv3 can use SNMPv2c notifications to send information from an agent to the
network manager.
The terms trap and notification are used interchangeably in this context. Notifications
are messages sent from an agent to the network manager, typically in response to
some state change on the agent system. With SNMPv3, you can define precisely
which traps you want sent, to which receiver by defining filter profiles to use for the
notification receivers.
To configure notifications, you configure a target address for the target that receives
the notification, a target parameters name, and a list of notification tags. The target
parameters specify the security and MP models to use for the notifications to the
target. The target parameters name also points to the filter profile used to filter the
notifications. Finally, the notification tags are added to a notification table so that any
target addresses using that tag will receive notifications.
In configuring the target address you supply an address name that identifies the
target address, a parameters name that indicates the MP model and security for the
messages sent to that target address, and the IP address and port for the receiver.
The parameters name also is used to indicate the filter profile used for notifications.
The from option sets the source IP address in the notification packets.
The tag-list option allows you to associate a list of tags with the target address.
The tag defaultNotify is set by default.
• To display target addresses, use the following command:
show snmpv3 target-addr {[[hex hex_addr_name] | addr_name]}
• To delete a single target address or all target addresses, use the following command:
configure snmpv3 delete target-addr [{[[hex hex_addr_name] |
addr_name]} | all]
Note
This notification entry can be deleted via CLI and also via MIB. If this is deleted,
then this can result in the traps not being sent for trap receivers which do not
have the tag-list value mentioned explicitly.
Any targets associated with tags in the snmpNotifyTable are notified, based on the
filter profile associated with the target.
• To display the notifications that are set, use the following command:
show snmpv3 notify {[[hex hex_notify_name] | notify_name]}
• To delete an entry from the snmpNotifyTable, use the following command:
configure snmpv3 delete notify [{[[hex hex_notify_name] |
notify_name]} | all-non-defaults]
Configuring Notifications
Because the target parameters name points to a number of objects used for
notifications, configure the target parameter name entry first.
You can then configure the target address, filter profiles and filters, and any necessary
notification tags.
When access profile logging is enabled for SNMP, the switch logs messages and
increments counters when packets are denied access to SNMP. No messages are
logged for permitted access.
You can manage SNMP access using one (not both) of the following methods:
• Create and apply an ACL policy file.
• Define and apply individual ACL rules.
One advantage of ACL policy files is that you can copy the file and use it on other
switches. One advantage to applying individual ACL rules is that you can enter the rules
at the CLI command prompt, which can be easier than opening, editing, and saving a
policy file.
If the ACL is created with more match conditions or actions, only those listed above are
used for validating the packets. All other conditions and actions are ignored.
The source-address field allows you to identify an IPv4 address, IPv6 address, or subnet
mask for which access is either permitted or denied.
If the SNMP traffic does not match any of the rules, the default behavior is deny.
Limitations
Access profile logging for SNMP has the following limitations:
• Either policy files or ACL rules can be associated with SNMP, but not both at the
same time.
• Only source-address match is supported.
• Access-lists that are associated with one or more applications (SNMP or Telnet,
for example) cannot be directly deleted. They must be unconfigured from the
application first and then deleted from the CLI.
• Default counter support is added only for ACL rules and not for policy files.
Note
The readonly option acts like the readwrite option when it is enabled.
• To display the access-list permit and deny statistics for an application, use the
following command:
show access-list counters process [snmp | telnet | ssh2 | http]
Rule <rule> is already applied A rule with the same name is already applied to this
service.
Please remove the policy A policy file is already associated with the service. You
<policy> already configured, must remove the policy before you can add a rule.
and then add rule <rule>
Rule <previous_rule> is not The specified rule has not been applied to the service, so
already applied you cannot add a rule in relation to that rule.
Rule <rule> is not applied The specified rule has not been applied to the service, so
you cannot remove the rule from the service.
Error: Please remove A policy or one or more ACL rules are configured for the
previously configured rule(s) service. You must delete the remove the policy or rules
before configuring policy from the service before you can add a policy.
<policy>
SNTP can be used by the switch to update and synchronize its internal clock from a
Network Time Protocol (NTP) server. After SNTP has been enabled, the switch sends
out a periodic query to the indicated NTP server, or the switch listens to broadcast NTP
updates. In addition, the switch supports the configured setting for Greenwich Mean
time (GMT) offset and the use of Daylight Saving Time.
1. Identify the host(s) that are configured as NTP server(s). Additionally, identify the
preferred method for obtaining NTP updates. The options are for the NTP server to
send out broadcasts, or for switches using NTP to query the NTP server(s) directly. A
combination of both methods is possible. You must identify the method that should
be used for the switch being configured.
2. Configure the Greenwich Mean Time (GMT) offset and Daylight Saving Time
preference. The command syntax to configure GMT offset and usage of Daylight
Saving Time is as follows:
configure timezone {name tz_name} GMT_offset {autodst {name
dst_timezone_ID} {dst_offset} begins [every floatingday | on
absoluteday] {at time_of_day_hour time_of_day_minutes} {ends
[every floatingday | on absoluteday] {at time_of_day_hour
time_of_day_minutes}}}
By default beginning in 2007, Daylight Saving Time is assumed to begin on the
second Sunday in March at 2:00 AM, and end the first Sunday in November at 2:00
AM and to be offset from standard time by one hour.
a. If this is the case in your time zone, you can set up automatic daylight saving
adjustment with the command:
configure timezone GMT_offset autodst
b. If your time zone uses starting and ending dates and times that differ from the
default, you can specify the starting and ending date and time in terms of a
floating day, as follows:
configure timezone name MET 60 autodst name MDT begins every last sunday march
at 1 30 ends every last sunday october at 1 30
c. You can also specify a specific date and time, as shown in the following
command:
configure timezone name NZST 720 autodst name NZDT 60 begins every first sunday
october
at 2 00 ends on 3 16 2004 at 2 00
The optional time zone IDs are used to identify the time zone in display
commands such as show switch {detail}.
5. If you would like this switch to use a directed query to the NTP server, configure
the switch to use the NTP server(s). An NTP server can be an IPv4 address or an
IPv6 address or a hostname. If the switch listens to NTP broadcasts, skip this step. To
configure the switch to use a directed query, use the following command:
configure sntp-client [primary | secondary] host-name-or-ip {vr
vr_name}
The following two examples use an IPv6 address as an NTP server and a hostname
as an NTP server:
configure sntp-client primary fd98:d3e2:f0fe:0:54ae:34ff:fecc:892
configure sntp-client primary ntpserver.mydomain.com
NTP queries are first sent to the primary server. If the primary server does not
respond within one second, or if it is not synchronized, the switch queries the
secondary server (if one is configured). If the switch cannot obtain the time, it
restarts the query process. Otherwise, the switch waits for the sntp-client update
interval before querying again.
6. Optionally, the interval for which the SNTP client updates the real-time clock of the
switch can be changed using the following command:
configure sntp-client update-interval update-interval
GMT Offsets
Table 14 lists offsets for GMT.
SNTP Example
In this example, the switch queries a specific NTP server and a backup NTP server.
The switch is located in Cupertino, California, and an update occurs every 20 minutes.
The commands to configure the switch are as follows:
configure timezone -480 autodst
configure sntp-client update-interval 1200
enable sntp-client
configure sntp-client primary 10.0.1.1
configure sntp-client secondary 10.0.1.2
When access profile logging is enabled for HTTP, the switch logs messages and
increments counters when packets are denied access to HTTP. No messages are
logged for permitted access.
Note
For more information on ExtremeXOS software support for HTTP, see
Hypertext Transfer Protocol on page 1191.
You can manage HTTP access using one (not both) of the following methods:
• Create and apply an ACL policy file
• Define and apply individual ACL rules
One advantage of ACL policy files is that you can copy the file and use it on other
switches. One advantage to applying individual ACL rules is that you can enter the rules
at the CLI command prompt, which can be easier than opening, editing, and saving a
policy file.
If the ACL is created with more match conditions or actions, only those listed above are
used for validating the packets. All other conditions and actions are ignored.
The source-address field allows you to identify an IPv4 address, IPv6 address, or subnet
mask for which access is either permitted or denied.
If the HTTP traffic does not match any of the rules, the default behavior is deny.
Limitations
Access profile logging for HTTP/HTTPS has the following limitations:
• Policy file support is not available for HTTP and HTTPS.
• Only source-address match is supported.
• Access-lists that are associated with one or more applications cannot be directly
deleted. They must be unconfigured from the application first and then deleted
from the CLI.
Rule <rule> is already applied A rule with the same name is already applied to this
service.
Please remove the policy A policy file is already associated with the service. You
<policy> already configured, must remove the policy before you can add a rule.
and then add rule <rule>
Rule <previous_rule> is not The specified rule has not been applied to the service, so
already applied you cannot add a rule in relation to that rule.
Rule <rule> is not applied The specified rule has not been applied to the service, so
you cannot remove the rule from the service.
Error: Please remove A policy or one or more ACL rules are configured for the
previously configured rule(s) service. You must delete the remove the policy or rules
before configuring policy from the service before you can add a policy.
<policy>
Once this command is used, the following commands are also run internally:
• enable ssh2
• enable telnet
• enable web http
• enable web https
• enable snmp access
Only these commands are present in the configuration once they finish executing. This
configuration must be saved.
Similarly, you can use the following command to disable all switch management
access:
Because this disables all management access, any existing sessions are closed and only
console connection can be used. The following warning displays to confirm your action:
# disable switch access
Warning: This command will disable access to switch via SSH, Telnet, HTTP, HTTPS and
SNMP. Existing such sessions will be logged out and user can access the switch only using
console connection.
Continue? (y/N) Yes
Note
For information about downloading and upgrading a new software image,
saving configuration changes, and upgrading the BootROM, see Software
Upgrade and Boot Options on page 1948.
Like any advanced operating system, the operating system gives you the tools to
manage your switch and create your network configurations.
The following enhancements and functionality have been added to the switch
operating system:
• File system administration
• Configuration file management
• Process control
• Memory protection
With the enhanced configuration file management, you can oversee and manage
multiple configuration files on your switch. In addition, you can upload, download,
modify, and name configuration files used by the switch.
Process control
With process control, you can stop and start processes, restart failed processes, and
update the software for a specific process or set of processes.
Memory protection
With memory protection, each function can be bundled into a single application
module running as a memory protected process under real-time scheduling. In
essence, the software protects each process from every other process in the system.
If one process experiences a memory fault, that process cannot affect the memory
space of another process.
The following sections describe in more detail how to manage the software.
The switch can store multiple user-defined configuration and policy files, each with its
own name. Using a series of commands, you can manage the files on your system.
For example, you can rename or copy a configuration file on the switch, display a
comprehensive list of the configuration and policy files on the switch, or delete a policy
file from the switch.
Note
File names are case-sensitive. For information on file name restrictions, see the
specific command in the Switch Engine Command References.
You can also download configuration and policy files from the switch to a network
Trivial File Transfer Protocol (TFTP) server using TFTP. For detailed information about
downloading switch configurations, see Software Upgrade and Boot Options on page
1948. For detailed information about downloading policies and ACLs, see ACLs on page
779.
With guidance from Extreme Networks Technical Support personnel, you can configure
the switch to capture core dump files, which contain debugging information that
is useful in troubleshooting situations. For more information about configuring
core dump files and managing the core dump files stored on your switch, see
Understanding Core Dump Messages on page 1961.
The command ls without specifying the path returns results for just the home
directory.
By default, core dumps are stored in the internal memory space (/usr/local/tmp), so
to see them, run the command ls /usr/local/tmp.
List Files
# ls /usr/local/tmp
-rw-r--r-- 1 root root 7429 Sep 22 16:19 core.nvram.1
-rw-r--r-- 1 root root 7100 Sep 28 08:40 core.nvram.2
drwxrwxrwx 2 root root 1024 Sep 28 08:43 dhcp
-rw-rw-rw- 1 root root 1072 Sep 28 08:43 trigger_log_slot1.txt
TFTP Files
# tftp put 10.6.48.39 /usr/local/tmp/core.nvram.1 mmitchell/core.nvram.1
Uploading core.nvram.1 to 10.6.48.39 ... done!
Copy Files
# cp /usr/local/tmp/core.nvram.1 core.copy
Copy 'core.nvram.1' from '/usr/local/tmp' to '/usr/local/cfg/core.copy'? (y/N)
Move Files
# mv /usr/local/tmp/core.nvram.1 core.moveToHome
Move 'core.nvram.1' from '/usr/local/tmp' to '/usr/local/cfg/core.moveToHome'? (y/N)
XML-formatted configuration files have a .cfg file extension. The switch runs only .cfg
files. ASCII-formatted configuration files have an .xsf file extension. See Uploading ASCII-
Formatted Configuration Files on page 1966 for more information. Policy files have a .pol
file extension.
When you rename a file, make sure the it uses the same file extension as the original
file. If you change the file extensions, the file may be unrecognized by the system. For
example, if you have an existing configuration file named test.cfg, the new filename
must include the .cfg extension.
2. Enter y to rename the file on your system. Enter n to cancel this process and keep
the existing filename.
If you attempt to rename an active configuration file (the configuration currently
selected the boot the switch), the switch displays an error similar to the following:
Error: Cannot rename current selected active configuration.
For more information about configuring core dump files and managing the core dump
files stored on your switch, see Understanding Core Dump Messages on page 1961.
XML-formatted configuration files have a .cfg file extension. The switch runs only .cfg
files. ASCII-formatted configuration files have an .xsf file extension. See Uploading ASCII-
Formatted Configuration Files on page 1966 for more information. Policy files have a .pol
file extension.
When you copy a configuration or policy file from the system, make sure you specify
the appropriate file extension. For example, if you want to copy a policy file, specify the
filename and .pol.
1. Copy an existing configuration or policy file on your switch using the cp command.
cp test.cfg test1.cfg
Copy config test.cfg to config test1.cfg on switch? (y/n)
2. Enter y to copy the file. Enter n to cancel this process and not copy the file.
When you enter y, the switch copies the file with the new name and keeps a backup
of the original file with the original name. After the switch copies the file, use the ls
command to display a complete list of files.
Note
If you make a copy of a file, such as a core dump file, you can easily compare
new information with the old file if needed.
For more information about configuring the storage of core dump files, see
Understanding Core Dump Messages on page 1961.
When you do not specify a parameter, this command lists all of the files in the current
directory stored on your switch.
If you do specify a parameter, you can refer to a specific directory to view all of the files
in that directory.
Output from this command includes the file size, date and time the file was last
modified, and the file name.
For more information about configuring core dump files and managing the core dump
files stored on your switch, see Understanding Core Dump Messages on page 1961.
Note
By default, if you transfer a file with a name that already exists on the
system, the switch prompts you to overwrite the existing file. For more
information, see the tftp get command.
• Download a file from a universal resource locator (URL), using the following
command:
download [url url {vr vrname} | image [active | inactive] [[hostname |
ipaddress] filename {{vr} vrname} {block-size block_size}] {partition}
{install {reboot}}
The download url command supports the following file types: cfg, lic, lst, pol, py,
voss, xmod, xos, xsf, and xtr.
The download image commands supports the following file types: voss, xmod, xos,
and xtr.
• To upload a file from the switch to a TFTP server, use the tftp or tftp put
commands:
tftp [ ip-address | host-name ] { -v vr_name } [ -p ] [ { -l local-
file | } { -r remote-file } | { -r remote-file } { -l local-file } ]
tftp put [ ip-address | host-name] {vr vr_name} local-file { remote-
file}
For detailed information about downloading software image files, BootROM files, and
switch configurations, see Software Upgrade and Boot Options on page 1948. For more
information about configuring core dump files and managing the core dump files
stored on your switch, see Understanding Core Dump Messages on page 1961.
When you delete a configuration or policy file from the system, make sure you specify
the appropriate file extension. For example, when you want to delete a policy file,
specify the filename and .pol. After you delete a file, it is unavailable to the system.
When you delete a file from the switch, a message similar to the following appears:
Remove testpolicy.pol from switch? (y/n)
Enter y to remove the file from your system. Enter n to cancel the process and keep the
file on your system.
For more information about configuring core dump files and managing the core dump
files stored on your switch, see Understanding Core Dump Messages on page 1961.
For more information about saving, uploading, and downloading configuration files,
see Save the Configuration on page 1969.
Stopping Processes
If recommended by Extreme Networks Technical Support personnel, you can stop a
running process. You can also use a single command to stop and restart a running
process during a software upgrade on the switch.
By using the single command, there is less process disruption and it takes less time to
stop and restart the process.
• To stop a running process, use the following command:
terminate process name [forceful | graceful]
In a SummitStack:
terminate process name [forceful | graceful] {slot slot}
Note
Do not terminate a process that was installed since the last reboot
unless you have saved your configuration. If you have installed a software
module and you terminate the newly installed process without saving your
configuration, your module may not be loaded when you attempt to restart
the process with the start process command.
cname Specifies the name of the process to restart. With this parameter, you
can terminate and restart all instances of the process associated with
a specific routing protocol on all VRs.You can restart the OSPF (Open
Shortest Path First) routing protocol and associated processes.
name Specifies the name of the process to terminate and restart. You can use
this command with the following processes: bgp, eaps, exsshd, isis, lldp,
netLogin, netTools, ntp, ospf, ospfv3, snmpMaster, telnetd, thttpd, tftpd,
vrrp, and xmld.
slot On a SummitStack, specifies the node’s slot number. The number is a
value from 1 to 8.
For the config recovery feature to work correctly, the netTools process can't be
restarted when config recovery is enabled.
Starting Processes
• To start a process, use the following command:
start process name {msm slot}
In a SummitStack:
start process name {slot slot}
Where the following is true:
name Specifies the name of the process to start. You can start the following
processes:
bgp, eaps exsshd, isis, lldp, netLogin, netTools, ospf, snmpMaster, telnetd,
thttpd, tftpd, vrrp, xmld
slot On a SummitStack, specifies the node’s slot number. The number is a
value from 1 to 8.
Note
After you stop a process, do not change the configuration on the switch
until you start the process again. A new process loads the configuration
that was saved prior to stopping the process. Changes made between a
process termination and a process start are lost, and error messages can
result when you start the new process.
As described in the section, Stopping Processes on page 134, you can use a single
command, rather than multiple commands, to stop and restart a running process.
• Stop and restart a process during a software upgrade.
restart process [class cname | name {msm slot}]
In a SummitStack:
restart process [class cname | name {slot slot}]
For more detailed information, see Stopping Processes on page 134.
Creating Processes
The following commands allow you to add a process. The process can be a C executable
compiled using the C-based SDK or a Python module. You upload it to /usr/local/cfg
using the normal mechanisms (for example, TFTP).
To manage the CPU and memory usage for the "Other" (non-ExtremeXOS) group, use
the following commands:
Note
Increasing the memory or CPU limit of the "Other" group impacts the total
available memory or CPU resources of the "EXOS" group. These commands
need to be used with careful consideration of the resource requirements in
real-time.
When these commands are issued, the CPU and memory limits for the "EXOS"
(ExtremeXOS) group are changed as well.
To clear the user-configured memory and CPU limits and restore default settings, use
the following command:
To clear the memory- and CPU-related statistics of "Vital" and/or “Other” groups, use
the following command:
To show the configured settings and statistics for the process control groups, use the
following command:
Memory protection increases the robustness of the system. By isolating and having
separate memory space for each individual process, you can more easily identify the
process or processes that experience a problem.
To display the current system memory and that of the specified process, use the
following command: show memory process name {slot slotid}
The current memory statistics for the individual process also includes the following:
• For SummitStacks, the slot number.
• The name of the process.
In general, the free memory count for a switch decreases when one or more running
processes experiences an increase in memory usage. If you have not made any system
configuration changes, and you observe a continued decrease in free memory, this
might indicate a memory leak.
The information from these commands may be useful for your technical support
representative if you experience a problem.
aaa n/a n/a 0.0 0.0 0.0 0.0 0.0 1.8 1.72 0.78
acl n/a n/a 0.0 0.0 0.0 0.0 0.0 0.0 0.40 0.24
bgp n/a n/a 0.0 0.0 0.0 0.0 0.0 12.6 11.18 2.21
cfgmgr n/a n/a 0.0 0.0 0.0 0.0 0.8 39.8 4743.92 3575.79
cli n/a n/a 0.0 0.0 0.0 0.0 0.0 0.0 0.59 0.42
devmgr n/a n/a 0.0 0.0 0.0 0.0 0.0 19.5 74.44 24.52
dirser n/a n/a 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
dosprotect n/a n/a 0.0 0.0 0.0 0.0 0.0 0.0 0.8 0.12
eaps n/a n/a 0.0 0.0 0.0 0.0 0.1 5.5 36.40 15.41
edp n/a n/a 0.0 0.0 0.0 0.0 0.0 11.1 10.92 3.97
elrp n/a n/a 0.0 0.0 0.0 0.0 0.0 0.0 0.49 0.44
ems n/a n/a 0.0 0.0 0.0 0.0 0.0 0.0 1.19 1.29
epm n/a n/a 0.0 0.0 0.0 0.0 0.0 30.7 48.74 32.93
esrp n/a n/a 0.0 0.0 0.0 0.0 0.0 2.7 0.82 0.45
etmon n/a n/a 0.0 0.0 0.0 0.0 0.5 30.5 4865.78 873.87
...
A stack consists of a group of up to eight switches that are connected to form a ring.
The stack offers the combined port capacity of the individual switches. But it operates
as if it were a single switch, making network administration easier.
This chapter contains information about configuring a stack, maintaining the stack
configuration, and troubleshooting.
Introduction to Stacking
When stacking switches, the stack operates as if it were a single switch with a single IP
address and a single point of authentication. One switch – called the primary switch –
is responsible for running network protocols and managing the stack. The primary runs
Switch Engine software and maintains all the software tables for all the switches in the
stack.
All switches in the stack, including the primary switch, are called nodes and can be
connected to each other by SummitStack cables.
All connections between stack ports must be directly between switches. A stacking
connection cannot pass through a third device, for example a Virtual Port Extender or
an LRM/MACsec Adapter.
Using the SummitStack feature—part of the Switch Engine Edge/Base license—a stack
can combine switches from different series, provided that every switch in the stack:
• Runs in the same partition (primary or secondary).
• Runs the same version of Switch Engine.
• Includes support for stacking.
See for information about which switch series can be combined to form a stack.
The following topics introduce you to the basic principles of stacking and provide
recommendations for creating stacks.
More information to answer your questions about stacking and help you plan your
configuration is available on the Extreme Networks GTAC Knowledge Base.
Note
4000 Series switches do not support alternate stacking.
When planning and building your stack, be sure to follow port compatibility and
cabling recommendations as described in this chapter.
Each switch in the stack is assigned a “slot number” during the initial software
configuration of the stack. Starting at the switch with the console connection,
numbers are assigned in numerical order following the physical path of the connected
stacking cables. For example, if you follow the cabling recommendations and configure
a vertical stack from the console on the switch at the top of the physical stack, the
switches will be assigned slot numbers 1 through 8 from the top down.
A quick way to verify that the cable connections match the software con iguration is to
check the stack number indicator on each switch. If the slot numbers do not line up in
the order you arranged the switches, this might indicate that the stacking cable setup
differs from what you intended when you con igured the software. In this case,
reconnect the cables in the correct order and perform the software con iguration
again.
To provide recovery in case of a break in the stack connections, you can configure
redundancy by designating a backup switch to take over as primary if the primary
switch fails. When you perform the initial software configuration of the stack, the
“easy setup” configuration option automatically configures redundancy, with slot 1 as
the primary and slot 2 as the backup. You can also configure additional switches as
“primary-capable,” meaning they can become a stack primary in case the initial backup
switch fails.
SummitStack Topologies
Figure 3 presents a graphical representation of a stack and some of the terms that
describe stack conditions.
Figure 3: Example of a Stack, Showing the Active Topology and the Stack Topology
A stack is the collection of all switches, or nodes, that are cabled together to form one
virtual switch using the Switch Engine SummitStack feature.
The maximum cable length supported between switches depends on the types of
switches in your stack, the installed option cards, and the configured stacking ports.
A stack topology is the set of contiguous nodes that are powered up and
communicating with each other. In the example shown, Switch 8 is not part of the
stack topology because it is not powered up.
An active topology is the set of contiguous nodes that are active. An active node is
powered up, is configured for stack operation, and is communicating with the other
active nodes.
Switch 5 in the example has failed, stacking is disabled on Switches 6 and 7, and Switch
8 has no power. As a result, the active topology includes Switches 1 through 4 only.
Note that, while a physical ring connection may be present, a ring active topology exists
only when all nodes in the stack are active.
We strongly recommend that your stack nodes be connected in a ring topology, not a
daisy-chain topology, for normal operation.
Nodes in an active topology can operate in a daisy-chain configuration even when there
is physically a ring connection in the stack.
You might need to use a daisy chain topology while adding a new node, removing a
node, or joining two stacks.
If you are using a daisy chain topology, the possibility of a dual master condition
increases. Before you create a daisy chain topology, read Managing a Dual Primary
Situation on page 205.
This feature, known as SummitStack-V or alternate stacking, means that you can
use less expensive cables to connect the switches in a stack. Because copper and
fiber Ethernet ports support longer cable distances, you can also extend the physical
distance between stack nodes – connecting, for example, switches on different floors in
a building or in different buildings on a campus.
The SummitStack-V feature means that you can stack switches that have no dedicated
(or native) stacking ports but that do have at least two Ethernet ports. The ports can
be configured to support either data communications or stacking. When configured to
support stacking, they are called alternate stacking ports to distinguish them from the
native stacking ports.
A single stack can use both native stacking ports and alternate stacking ports. On one
switch, for example, you can use a native stacking port to connect to a switch in the
same rack, and you can use an alternate stacking port to connect to a switch on a
different floor.
Note
When you connect distant nodes using alternate stacking ports, be sure to run
the cables over physically different pathways to reduce the likelihood of a cut
affecting multiple links.
On each switch model, only specific data ports can be used as alternate stacking ports.
The alternate stacking ports must be 10-Gbps Ethernet ports, either on the front panel
of the switch or on installed port option cards or versatile interface modules at the
rear of the switch. Switch models that do not have native stacking ports can still use
alternate stacking if they have 10-Gbps Ethernet ports.
Table 16 lists the data ports that can be used as native and alternate stacking ports for
each switch model.
command), those ports – listed in the Alternate Stacking Ports column of Table 16 –
operate as stacking ports.
Note
Ports designated as U1 and U2 are Universal ports. These ports can
be configured as either stacking ports or Ethernet data ports. When
stacking support is disabled, the Universal ports will provide normal data
communications.
Table 17 shows the switch models that can participate in each stacking method.
ExtremeSwitching 5320
For more details about the stacking methods that are available for each switch series,
see the hardware installation guide for your switch.
Note
All switches in the stack must run the same version of ExtremeXOS.
SummitStack Terms
Table 18 describes the terms used for the SummitStack feature. These terms are listed
in the recommended reading sequence.
A stack supports control plane redundancy and hitless failover. Hitless failover is
supported to the extent that the failing master node and all of its ports are
operationally lost, including the loss of supplied power on any PoE (Power over
Ethernet) ports that the node provided, but all other nodes and their provided ports
continue to operate. After the failover, the backup node becomes the master node.
At failover time, a new backup node is selected from the remaining standby nodes that
are configured to be master capable. All operational databases are then synchronized
from the new master node to the new backup node. Another hitless failover is possible
only after the initial synchronization to the new backup node has completed. This can
be seen using the show switch {detail} command on the master node and noting
that the new backup node is In Sync.
When a backup node transitions to the master node role, it activates the Management
IP interface that is common to the whole stack. If you have correctly configured an
alternate management IP address, the IP address remains reachable.
When a standby node is acquired by a master node, the standby node learns the
identity of its backup node. The master node synchronizes a minimal subset of its
databases with the standby nodes.
When a standby node loses contact with both its acquiring master and backup nodes,
it reboots.
A master node that detects the loss of an acquired standby node indicates that the
slot the standby node occupied is now empty and flushes its dynamic databases of all
information previously learned about the lost standby node.
A backup node restarts if the backup node has not completed its initial synchronization
with the master node before the master node is lost. When a backup node transitions
to the master node role and detects that the master node has not already synchronized
a minimal subset of its databases with a standby node, the standby node is restarted.
For all non-master nodes, a node that reboots or is power-cycled loses all of its
connections to all networks for the duration of the reboot cycle. Any PoE ports that
were providing power prior to the event do not supply power.
When a non-master node fails, the master node marks the related slot as Empty.
All other nodes exclude the failed node from the control path and any customer-
configured VLANs, trunk group ports, mirroring ports, and so forth.
Table 19: Stacking Configuration Items, Time of Effect, and Default Value
Configuration Item Takes Effect Default Value
Stacking Mode at boot time Disabled
Slot Number at boot time 1
Master-Capable at boot time Yes
License Restriction at boot time Not configured
Priority at the next master election Automatic
Alternate IP Address immediately Not configured
Stack MAC at boot time Not configured
Stacking parameters, such as mode, slot number, etc., can be configured from a single
unit in the stack topology. You can change the stacking-specific configuration even
when a node is not in stacking mode, but is connected to the stack. The target node
for the configuration must be powered on and running a version of ExtremeXOS that
supports stacking. Further, the node need not be in stacking mode and can be in any
node role.
Most ExtremeXOS configuration parameters are not stored in NVRAM, but are instead
stored in a configuration file. Configurations stored in NVRAM are those that are
needed when the configuration file is not available. The configuration file chosen for the
stack is the one selected on the master node that is first elected after a stack restart.
The data (non-stacking) port numbers, in the existing configuration files (which were
created when not in stacking mode), are simple integer quantities. On a stack, the data
port numbers are expressed as slot:port; where the slot is an integer representing the
slot and port is an integer representing the port. For example, 1:2. The configuration
file contains an indication that it was created on a stackable switch in stacking mode.
The indication is the stacking platform ID. Thus, when in stacking mode, the ports are
referenced in the configuration file with the slot:port notation and when not in stacking
mode, the ports are referenced as simple integers.
When a standalone switch is configured for stacking, after reboot the non-slotted
configuration is converted to a single slot (slot = 1) configuration (all port numbers and
port ranges are prepended with "1:"). The configuration is not automatically saved. You
must save the configuration to overwrite the existing primary.cfg, secondary.cfg, or
custom named file.
QoS in Stacking
Each stack uses QoS (Quality of Service) on the stacking links to prioritize the following
traffic within the stack:
• Stack topology control packets
• ExtremeXOS control packets
• Data packets
For stack performance and reliability, the priority of control packets is elevated over that
of data packets.
This is done to prevent control packet loss and avoid the timed retries that can lower
performance. It is also done to prevent unneeded stack topology changes that can
occur if enough stack topology information packets are lost. For these reasons, the
SummitStack feature reserves one QoS profile to provide higher priority to control
packets. The following sections describe the differences in QoS while using it in stack.
Because QP7 cannot be created, you cannot use hardware queue 6 to assign CoS level
6 to a packet. However, you can assign packets received with 802.1p priority 6 to a QoS
profile using the technique described in Processing of Packets Received With 802.1p
Priority 6 on page 155
Note
This restriction is applicable only when the stackable switch is operating in
stacking mode.
The scheduler for the data ports operates the same as for standalone
ExtremeSwitching switches and is managed with the following command:
The scheduler for the stacking ports is defined by the software when the stack is
configured, and it cannot be modified. For all switches, the scheduler is set to strict-
priority for the stacking ports, and meters are used to elevate the queue 6 priority
above the priority of the other queues. This is the only scheduling method for stack
ports.
Priority 7 is mapped to QoS profile QP8, and priorities 6 through 0 are mapped to
QoS profile QP1. You can create other QoS profiles and can change this mapping as
needed. Since you cannot create QP7 in stacking mode, 802.1p examination always
maps packets with priority 6 to other QoS levels. However, you can use an ACL (Access
Control List) rule entry to set the 802.1p egress value to 6 without affecting the QoS
profile assignment as shown in this example:
entry VoIPinSummitStack { if { IP-TOS 46; } then { replace-dot1p-value 6; } }
When stacking is enabled, the examination remains turned on for priority 6. However,
the examination happens at a lower precedence than that of all other traffic groupings.
The mapping you have configured for priority 6 remains in effect, and changes
accordingly if you subsequently change the mapping.
When stacking is not enabled, all 802.1p examination is disabled when the feature is
turned off.
In addition, the examination is adjusted to apply to all packets. The actual priority levels
that are used for such packets are the defaults (QP1), or the values last configured using
the following command:
Even though two links are available, the links might not be fully utilized. For example,
suppose there is a ring of eight nodes and the nodes are numbered clockwise from
1 to 8. The stacking port limit in this example is 10 Gbps in each direction for a total
stack throughput of 20 Gbps for each port, or 40 Gbps total. Suppose node 1 wants to
send 10 Gbps of unicast traffic to each of node 2 and node 3. The shortest path topology
forces all traffic from node 1 over the link to node 2. Traffic from node 1 to node 3 passes
through node 2. Thus, there is only 10 Gbps link available. However, if node 1 wanted to
send 10 Gbps to node 2 and node 8, there would be 20 Gbps available because both
links connected to node 1 would be used.
In a ring of eight nodes, between any two nodes, only one link is used. If the devices
provide 48 1-Gbps Ethernet ports, the overcommitment ratio between two such nodes
is approximately 5:1.
On backup and standby nodes, a log target and related filter is automatically installed.
The log target is the master node. The filter allows all messages that have a log level of
warning, error, or critical to be saved in the log file of the master node.
If the master node changes, the log target is updated on all the remaining nodes. You
can also log in to any node in the active topology and see the complete log of the node.
Configuring a Stack
Before configuring a new stack, do the following:
• Ensure that every switch, or node, in the stack is running on the same partition
(primary or secondary). To find this information for any node, issue the command
show switch and look for the Image Booted field in the output.
• Ensure that every switch in the stack is running the same version and patch level of
ExtremeXOS. To find this information for any node, issue the command show switch
and look for the Primary Ver or Secondary Ver field in the output.
• If necessary, enable switch license levels or configure license level restrictions for the
nodes in the stack.
◦ To understand how licensing works in stacked switches, see Managing Licenses
on a Stack on page 176.
◦ To enable a license on a node, see Software Upgrade and Boot Options on page
1948.
◦ To restrict the license level for one or more nodes in a stack, see Restricting a
Switch License Level on page 178.
• We recommend that you save the configuration for each switch that will participate
in the stack, so that you can reinstate the configuration after the switch is no longer
needed in the stack.
Note
New switches are primary-capable by default.
Because stacks can consist of switches of different series and different models,
ExtremeXOS does not restrict configuration settings based on the capabilities of any
particular node in the stack. Therefore, you are responsible for ensuring that your
configuration settings are appropriate for all switches in the stack.
The following switch families come from the factory with stacking-support enabled
with stack ports set to a default configuration. The following table describes the default
configuration for each switch:
Important
Some ExtremeSwitching switches contain different types of EXOS images.
ExtremeSwitching 5720, 7520, and 7720 require an onie_x86_64 image type.
The 4220 Series, ExtremeSwitching 5320, 5320 extended temperature (XT),
5420, and 5520 require a summit_arm image type. The 4120 Series requires an
rgz2 image type. Before building a mixed stack of these switch families, all
switches must have the same release level image loaded onto all nodes.
Once a mixed stack of ExtremeSwitching 5720 and ExtremeSwitching 5520
switch families has been built, a software upgrade is required. Download
and install the onie-summitarm-bundle.lst image, which combines the
onie_x86_64 image and the summit_arm image into one bundle.
Alternatively, you can use the following two step upgrade process:
1. Download the onie_x86_64 image (and optionally install) onto the Primary
node in the stack.
2. Download the summit_arm image (and optionally install) onto the Primary
node in the stack.
Follow these steps to configure a new stack. Some of the steps include references
where you can find additional information.
1. Physically connect the switches (stack nodes) using their stacking ports or alternate
stacking ports.
Instructions for physically setting up the stack are provided in the hardware
installation guide for your switch.
2. Power on the switches.
3. On each switch, issue the command enable stacking-support.
This command configures the switch so that it is capable of being added to a stack.
It is not the same as enable stacking, which you will use later to build the stack.
4. Ensure that all of the cabled stacking ports are enabled for stacking:
a. On each node, issue the command show ports x,y, where x and y are the port
numbers.
In the output, port state = E means a port is enabled.
b. For any ports that are not enabled, issue the command enable ports x,y,
where x and y are the port numbers.
c. If you enabled ports on any switches, reboot those switches.
Save the configuration files.
5. Configure all switches in the stack that will use the SummitStack-V, SummitStack-
V160, SummitStack-V200, SummitStack-V400, or MPLS (Multiprotocol Label
Switching) features.
Note
If the stack will use MPLS, only the 5520 switch can act as primary and
backup.
a. Configure switches that will use alternate stacking ports as described in Use
Ethernet Ports for Stacking (SummitStack-V Feature) on page 143.
b. Reboot the switches whose configurations you changed.
6. Log in, using the console port, to the switch that will be the primary.
7. Issue the command show stacking stack-ports to verify that the stacking ports
are properly connected.
All of the ports should show a state of Operational.
In the following example, two of the ports are not in an Operational state, which
means they are not connected properly.
* switch1 # show stacking stack-ports
Stack Topology is a Ring
Slot Port Select Node MAC Address Port State Flags Speed
---- ---- ------ ----------------- ----------- ----- -----
*- 1 27 00:04:96:9c:e4:39 Operational C- 10G
*- 2 28 00:04:96:9c:e4:39 Operational CB 10G
- 1 27 00:04:96:9b:c1:34 Operational CB 10G
- 2 28 00:04:96:9b:c1:34 Operational C- 10G
- 1 15 00:04:96:9e:5c:76 Link Down C- 10G
- 2 16 00:04:96:9e:5c:76 No-Neighbor C- 10G
- 1 15 00:04:96:9c:53:b6 Operational C- 10G
- 2 16 00:04:96:9c:53:b6 Operational C- 10G
* - Indicates this node
Flags: (C) Control path is active, (B) Port is Blocked
When a port displays a state other than Operational, use the following tips to
troubleshoot:
• If the state displays as Link Down, check the port's physical connections.
• Verify that the port is using the same stacking technology, for example
SummitStack-V160, as the rest of the ports in the stack.
8. Verify that all nodes in the stack have stacking disabled.
Note that, even though you enabled stacking-support in step 3 on page 158, it is
necessary that stacking be disabled before the stack is actually built.
a. Issue the command show stacking configuration.
For example:
* 5420F-48P-4XE # show stacking configuration
Stack MAC in use: <none>
Node Slot Alternate Alternate
MAC Address Cfg Cur Prio Mgmt IP / Mask Gateway Flags Lic
------------------ --- --- ---- ------------------ --------------- --------- ---
*00:04:96:9c:e4:39 1 - Auto <none> <none> -c-----Nn --
00:04:96:9b:c1:34 1 - Auto <none> <none> -c-----Nn --
00:04:96:9e:5c:76 1 - Auto <none> <none> -c-----Nn --
00:04:96:9c:53:b6 1 - Auto <none> <none> -c-----Nn --
* - Indicates this node
b. If a node is enabled for stacking (shown by a capital letter E in the Flags column),
issue the command disable stacking node-address mac_address for that
node.
Then reboot the switch.
9. From the node that will be the primary, issue the command enable stacking.
The following prompt displays:
10. Enter y to proceed with Easy Setup (strongly recommended), or enter n to configure
the stack manually.
• When you enter y for Easy Setup, you are prompted to confirm your choice:
Enter y again to confirm. All of the switches reboot automatically and form a stack
in which one switch is the primary, one is the backup, and the rest are standby
nodes. Easy Setup configures all other required stacking parameters for every
switch in the stack.
• If you forgo Easy Setup by entering n in response to the prompt (not
recommended), you will need to configure the stack manually. Instead of
continuing with step 11, follow the steps in Manually Configuring a Stack on page
161.
11. Verify the configuration, following the instructions in Verifying the Configuration on
page 167.
12. Save the ExtremeXOS configuration to every active node in the stack.
On the primary node, issue the command save configuration config_name,
where config_name is a descriptive name for this configuration.
The stacking-specific configuration parameters are saved in a file called
config_name.cfg to the NVRAM of each node.
However, instead of running Easy Setup, you can configure the stack parameters
manually. After performing step 1 on page 158 through step 9 on page 160, perform
the following steps as needed:
1. Reboot the switch that will be the master.
2. Optionally, assign slot numbers to all switches in the stack.
See Configuring Slot Numbers on page 161.
3. Configure node priorities on each slot.
When the stack boots up, the node priority determines which node will be the
master and which node will be the backup. Node priorities can be from 1 to 99, the
lowest numbered slot having the highest priority.
See Configuring the Primary, Backup, and Standby Roles on page 162.
4. Disable master capability for any nodes that you do not want to become master
nodes.
See Configuring Master-Capability on page 189.
5. Assign a MAC address to the stack.
See Assigning a MAC Address to a Stack on page 165.
6. Optionally, configure a failsafe account for the stack.
See Failsafe Accounts on page 52.
7. Optionally, set a command prompt for the stack.
Issue the command configure snmp sysName stack_name.
If you do not define your own command prompt, the default command prompt
looks similar to
stack does not dynamically assign a slot number. The available slot numbers are 1
through 8. You can specify a slot number for each node manually, or you can have the
system assign the slot numbers using a single command.
Note
Slot numbers take effect only after a restart. If you change a slot number, the
unit continues to operate with the slot number it was last restarted with.
Note
A node that boots in standalone mode does not use a slot number.
Some switch models have greater CPU processing capability, more memory, and
support additional features – thus making them more suitable for the role of primary
node.
To support the additional capabilities in a stack that includes multiple switch models,
the most capable switch automatically becomes the primary node. When choosing a
switch to act as a backup node, a switch with the same capability as the primary node
should be chosen.
The following list shows Universal switch models that can cross stack with each other.
Within the list, the relative ranking is shown with the most capable switches placed at
the top of the list:
Note
The 7720 Series and 7520 Series have the same level of capability. Either switch
can perform the role of Primary node or Backup node when combined in a
mixed stack.
Note
The 5720 must be the Primary and Backup when operating in a mixed stack
with the 5520. The 5520 switches can only operate as Standby nodes.
Note
5320-24T-4X-XT and 532024T-24S-4XE-XT switches can only stack with
themselves. These switches are designated as Extended Temperature and have
"XT" in their model number. These switches can't cross stack with any other
series of switches including the non-XT series of 5320 switches.
If the stack configuration includes switches that are more capable than others, the
stack will try to select the most-capable backup node.
If a switch with reduced capabilities serves as the backup node for a switch with greater
capabilities, that switch might not be able to support the stack as a primary node if a
failover occurs (for example, the less-capable switch might not have enough processing
power or table space to run efficiently as the primary node). If your configuration needs
to support automatic failover, we recommend that if a stack contains mixed model
numbers, one of the following configurations should be used:
• Identical, most-capable switches available to become the primary and backup
nodes.
• The primary-capability option is turned off for all less-capable switches.
When all primary-capable nodes in a stack have the same model number, the node
with the highest node role election priority becomes the primary as a result of the first
node role election, and the node with the second highest node role election priority
becomes the backup node. All other nodes become standby nodes. See Node Election
on page 83 for more information.
During subsequent node role elections that occur when a primary node fails, the node
priority configuration helps determine the node that becomes the replacement backup
node.
Node priority configuration takes effect at the next node role election. A change in
node priority configuration does not cause a new election. Once an active topology has
elected a primary node, that node retains the primary node role until it fails or loses a
dual primary resolution.
The priority algorithm is selected if any node has a numeric priority value configured.
You can specify an integer priority value between 1 and 100. The higher the value,
the greater the node role election priority. For example, the command configure
stacking slot 2 priority 10 assigns a priority of 10 to the switch in slot 2.
If any node participating in a role election has a priority value configured, all nodes use
the priority algorithm. A node configured with the automatic algorithm uses a priority
value of zero (the lowest priority) in the priority algorithm if another node has a priority
value configured.
In both algorithms, if the highest computed node role election priority is shared
among multiple nodes, the slot number is used to adjust the node role election
priority. A numerically lower slot number results in a higher role election priority than
a numerically higher slot number. If you want to use the slot number as the sole
determining factor in node role election priority calculation, you should configure every
node with the same priority value, rather than using the automatic algorithm.
Note
The automatic priority algorithm may change in future ExtremeXOS releases.
Nodes that are configured as not primary-capable do not participate in node role
election. Priority configuration is not relevant on such nodes.
A dual primary resolution does not use the configured node priority in most cases.
Instead, it uses the oldest time that a node became a primary in the current active
topology.
Each stackable switch is assigned a single unique MAC address during production. By
default, no stack MAC address is configured. You can choose any node to supply its
factory assigned MAC address to form the stack MAC address.
Note
This task is not necessary when you configure the stack using Easy Setup. With
Easy Setup, the MAC address is assigned by default.
When you assign a MAC address to a stack, one of the stackable switches is designated
as the node whose factory-assigned MAC address is used to form the stack MAC
address. Once this is done, all nodes receive and store this formed MAC address in
their own NVRAM. Whenever the stack boots up, this MAC address is used, regardless
of which node is the master.
When new nodes are added to the stack, the new nodes must be configured with the
stack MAC address. The easiest way to do this is to use the synchronize stacking
{node-address node_address | slot slot_number} command.
Before being stored as the stack MAC address, the chosen node’s factory-assigned MAC
address is converted to a locally administered MAC address. This prevents duplicate
MAC address problems which lead to dual master conditions. The chosen MAC address
is put into effect only at node boot time. If the address needs to be changed on a single
node, rebooting that node results in usage of the same address stack-wide.
If you do not configure the stack MAC address or it is not the same on all nodes, a
warning message appears in the log.
Each node operates with whatever address is available: the configured stack MAC
address or the node’s factory-assigned MAC address. If a master node fails over to
the backup node, and the backup node’s address is different than the one the former
master node was using, the address is inconsistent with the addresses programmed
into the packet forwarding hardware. The MAC address related to the management IP
address changes to the one in use by the new master, but no gratuitous ARP requests
are sent. In this case, it takes some time for hosts on the management network to flush
the related ARP entry.
Note
If the node whose MAC address is chosen was removed from the stack with
the intention of using the node elsewhere in the network, and that node
is selected to supply the stack MAC in its new stack, the stack MAC of the
original stack must be reconfigured to prevent a duplicate MAC address in the
network.
1. Use the show stacking configuration command to display the stack MAC
address configuration.
Slot-1 stack.3 # show stacking configuration
Stack MAC in use: 02:04:96:9c:e4:39
Node Slot Alternate Alternate
MAC Address Cfg Cur Prio Mgmt IP / Mask Gateway Flags Lic
------------------ --- --- ---- ------------------ --------------- --------- ---
*00:04:96:9c:e4:39 1 1 Auto <none> <none> CcEeMm-Nn --
00:04:96:9b:c1:34 2 2 Auto <none> <none> CcEeMm-Nn --
00:04:96:9e:5c:76 3 3 Auto <none> <none> --EeMm-Nn --
00:04:96:9c:53:b6 4 4 Auto <none> <none> --EeMm-Nn --
* - Indicates this node
Flags: (C) master-Capable in use, (c) master-capable is configured,
(E) Stacking is currently Enabled, (e) Stacking is configured Enabled,
(M) Stack MAC in use, (m) Stack MACs configured and in use are the same,
(i) Stack MACs configured and in use are not the same or unknown,
(N) Enhanced protocol is in use, (n) Enhanced protocol is configured,
(-) Not in use or not configured
License level restrictions: (C) Core, (A) Advanced edge, or (E) Edge in use,
(c) Core, (a) Advanced edge, or (e) Edge configured,
(-) Not in use or not configured
The MAC Address column displays the factory MAC address for the node. The stack
MAC address configuration information appears in the last three positions of the
Flags column. As shown in the key at the bottom of the command display, the
stack MAC configuration is displayed with the letters capital M, lower-case m, and
lower-case i. If the flags read ---, the stack MAC address needs to be configured. If the
flags read Mm-, the stack MAC address is already configured and in use.
2. To configure the stack to use the MAC address of the master node, follow these
steps:
a. Log in to the master node.
b. Issue the command configure stacking mac-address.
c. To verify that the command executed properly, enter the command show
stacking.
The Flags column should show --i, indicating that the stack MAC is configured
but is not in use. After you restart the stack, the i will no longer appear in the
Flags column.
d. To verify that the stack MAC is configured consistently, enter the command show
stacking detail.
Verify that all of the stack MAC addresses are the same.
3. To configure the stack to use a MAC address from a non-master node, log in to
the master console and enter the command configure stacking {node-address
node-address | slot slot-number} mac-address .
For example:
Slot-1 stack.4 # configure stacking slot 2 mac-address
This command will take effect at the next reboot of the specified node(s).
The stack is configured to use the MAC address of the node in slot 2.
4. Reboot the stack.
5. Verify the new stack MAC address using the command show stacking
configuration .
For example:
These commands are also helpful when debugging problems with your stack.
Note
The examples in the following sections show a stack consisting of four
switches.
show stacking
The show stacking command displays the stack topology along with each node's slot
number, state, and role (master, backup, or standby).
Slot-1 Stack.1 # show stacking
Stack Topology is a Ring
Active Topology is a Ring
Node MAC Address Slot Stack State Role Flags
------------------ ---- ----------- ------- ---
*00:04:96:9c:e4:39 1 Active Master CA-
00:04:96:9b:c1:34 2 Active Backup CA-
00:04:96:9e:5c:76 3 Active Standby CA-
00:04:96:9c:53:b6 4 Active Standby CA-
* - Indicates this node
Flags: (C) Candidate for this active topology, (A) Active Node
(O) node may be in Other active topology
• It is possible for a node to be in stabilizing or waiting state and still be in the active
topology.
In the command output, note especially the values in the Flags column:
• All nodes should have the Ee, Mm, and Nn flags active.
• Additionally, the master and backup nodes should have the Cc flags active.
(The meanings of the flags are displayed at the bottom of the table in the command
output.)
show slot
The show slot command shows the states of the nodes as they move from the empty
to operational state.
In the command output, a state other than Operational indicates a potential problem.
Check the physical connections and the software configuration for the ports in
question. For more information, see Troubleshooting a Stack on page 203.
Automatic stacking using the mode button feature is aimed at zero-touch customers
who want to deploy stacking in remote sites. You can ship switches to remote sites and
have a local (non-technical) installer mount the switches in the rack, attach the power
cables, and connect the stacking cables. The installer can then press the Mode button
to initiate the automatic stacking sequence. After stacking is complete, the switches
can be provisioned and managed remotely using a cloud connection.
You can stack 1 to 8 nodes. If you have only a single node in the stack, stacking occurs
in a daisy-chain topology. If there is more than a single node in the stack topology, the
stack is connected as a ring. If a ring is not detected, the automatic stacking sequence
does not run when you presses the Mode button.
You can build a stack a node at a time by initiating automatic stacking on one switch
that, after rebooting, becomes the primary node. Attaching nodes subsequently causes
those nodes to join the stack.
Important
To use automatic stacking, each switch must have the factory default
configuration. If any of the switches do not have the factory configuration
(directly out of the shipping box), remove any configuration and restore the
factory defaults by running the command unconfigure switch {all |
erase [all | nvram]} with the all option.
License level and ExtremeXOS version mismatches are automatically
reconciled. However, license mismatches due to installing feature licenses
cannot be resolved automatically. The applicable node is left in the failed state.
If the primary node is running a newer version of ExtremeXOS than the nodes, the
nodes are upgraded to the newer ExtremeXOS version.
• Not have an Extended Edge Switching topology.
Note
A mixed stack of ExtremeSwitching 5720 and 5520 switches cannot use
automatic stacking.
1. Remove the switches from their boxes and mount the desired number of switches
in the desired locations. For information about physically setting up switches, see
ExtremeSwitching Quick Reference Guide for the switch series.
2. Attach the stacking cables to form a ring between the switches (see Ring Topology:
Recommended for Stacking on page 142).
3. Attach the power cables to each switch, and then plug them into a power source.
4. Wait for all switches to boot (approximately 2 minutes).
5. Verify that there is LINK UP on all stack ports by checking the stack port LEDs.
Note
A single node stack (no cabling) will not have a lit LED.
6. On the switch that is going to be the stack primary, push the Mode button twice and
verify that the STK LED is solid green.
7. Press and hold the Mode button for at least 5 seconds.
AFter releasing the Mode button (following the final step), the front panel port LEDs
(on the primary node) flash in an alternating pattern followed by a delayed reboot of all
of the switches. The LEDs flash for approximately 15 seconds prior to reboot. After the
reboot completes, the switches are stacked.
If the front panel port LEDs on the primary node do not flash (flashing LEDs indicate
that automatic stacking has been initiated), try the following:
• Check the cabling for correct ring topology, and fix as needed (see Ring Topology:
Recommended for Stacking on page 142).
• Check that the stack port LINK UP LEDs are lit (see step 5 on page 171).
Note
A single node stack (no cabling) will not have a lit LED.
If you can verify that both the cabling and the LINK UP LEDs are lit, then further
troubleshooting requires accessing the switch with a console or by cloud access to
check the switch's error log.
You can stack 1 to 8 nodes. If you have only a single node in the stack, stacking occurs
in a daisy-chain topology. If there is more than a single node in the stack topology, the
stack is connected as a ring. If a ring is not detected, the automatic stacking sequence
does not run when you insert the USB flash drive.
You can build a stack one node at a time by initiating automatic stacking on one switch
that, after rebooting, becomes the primary node. Attaching nodes subsequently causes
those nodes to join the stack.
Important
To use automatic stacking, each switch must have the factory default
configuration. If any of the switches do not have the factory configuration
(directly out of the shipping box), remove any configuration and restore the
factory defaults by running the command unconfigure switch {all |
erase [all | nvram]} with the all option.
License level and ExtremeXOS version mismatches are automatically
reconciled. However, license mismatches due to installing feature licenses
cannot be resolved automatically. The applicable node is left in the failed state.
If the primary node is running a newer version of ExtremeXOS than the nodes, the
nodes are upgraded to the newer ExtremeXOS version.
• Not have an Extended Edge Switching topology.
1. Remove the switches from their boxes and mount the desired number of switches
in the desired locations. For information about physically setting up switches, see
ExtremeSwitching Quick Reference Guide for the switch series.
2. Attach the stacking cables to form a ring between the switches (see Introduction to
Stacking on page 139).
3. Attach the power cables to each switch, and then plug them into a power source.
4. Wait for all switches to boot (approximately 2 minutes).
5. Verify that there is LINK UP on all stack ports by checking the stack port LEDs.
Note
A single node stack (no cabling) will not have a lit LED.
6. On the switch that is going to be the stack primary, insert the USB flash drive.
The USB flash drive must contain a file named “autoStackingMasterNode,” which
invokes the auto-stacking logic. The front panel port LEDs (on the primary node) flash
in an alternating pattern followed by a delayed reboot of all of the switches. The LEDs
flash for approximately 15 seconds prior to reboot. After the reboot completes, the
switches are stacked.
Note
The delay for auto-stacking can be up to 5 minutes.
If the front panel port LEDs on the primary node do not flash within the 5 minute
timeout period (flashing LEDs indicate that automatic stacking has been initiated), try
the following:
• Check the cabling for correct ring topology, and fix as needed (see Introduction to
Stacking on page 139).
• Check that the stack port LINK UP LEDs are lit.
Note
A single node stack (no cabling) will not have a lit LED.
If you can verify that both the cabling and the LINK UP LEDs are lit, then further
troubleshooting requires accessing the switch with a console or by cloud access to
check the switch's error log.
Auto-discovery operates on stack ports U1 and U2 on both 5420 and 5520 series
switches. On 5420 series switches, the stack ports support either SFP+ or SFP-DD type
cables. On 5520 series switches, the stack ports only support QSFP+ type cables.
For example, if a 5420 series switch is configured for Native V40 stacking and Auto-
Discovery detects an SFP-DD cable present in either the U1 or U2 stack ports during
start up, the stack port speed is automatically reconfigured for Native V80 (to match
the speed of the SFP-DD cable).
Important
Changing the stacking cables on an operational stack to achieve a different
stack speed requires a reboot.
Supported Platforms
Auto-Discovery for Universal Hardware is supported on ExtremeSwitching 5420 and
5520 Series switches.
CLI Command
Auto-Discovery is enabled by default on the ExtremeSwitching 5420 and 5520
Series switches. Use the configure stacking-support auto-discovery [disable]
command to disable Auto-Discovery for Universal Hardware.
Note
Auto-Discovery is automatically re-enabled whenever the Universal Hardware
is restored back to the factory configuration when the unconfigure switch
all command is used.
Limitations
The following limitations apply to Auto-Discovery for Universal Hardware:
• Stacking-support must be enabled in order for the feature to execute.
• The feature will terminate if you have configured Alternate stacking on the
ExtremeSwitching 5520.
• The feature can be disabled by entering configure stacking-support auto-
discovery disable
The login security that is configured on the master node applies when logging into
any node in the active topology. This includes any active node that is present in a
slot. A node that is disabled for stacking is its own master, and uses its own security
configuration.
If you connect to the master node, you can configure and manage the stack. If you
connect to a non-master node, you can view node status and configure only a few
options from the node to which you are connected. However, you can use the Telnet
feature to connect to another node and manage that node as if you were connected to
it (see Logging Into a Node From Another Node on page 176).
The primary management IP address is assigned to the master node. You can use
a terminal emulation program and this IP address to connect to the master for
configuration and management.
The alternate management IP addresses allow you to connect to individual nodes from
your management network. During normal operation, you connect to the stack using
the primary management IP address. However, if the stack is split, you can use the
alternate management IP address to connect to the other half of the stack. For more
information, see Configuring an Alternate IP Address and Gateway on page 184.
After you log in to a master or standby node through the management network, you
can Telnet to any other node and control that node as if you were directly connected to
it. For more information, see Logging Into a Node From Another Node on page 176.
Note
If the node to which you want to connect does not appear in the show slot
{slot {detail} | detail } command display, you can connect to the node
through the its console port or management port.
You have the most control over the stack when you log in to the master.
1. Determine which node is the master using the command show stacking.
2. Telnet to another node using the command telnet slot slot-number .
The switches must be active in the stack for this command to function.
You are not prompted for your username or password. You are logged in to the same
account (with corresponding rights) with which you accessed the originating slot.
When the Telnet program accepts a connection from another node in the stack, it
performs security validation. The master node validates all login security information
(except for the failsafe account), regardless of the node into which you are attempting
to establish a login. If you are not able to log in using your user credentials, use the
failsafe account to log in.
• If you do not set a license level for the stack, the license level the stack uses is the
effective license level of the node that is elected master at startup.
Note
If the stack is using a certain license level, and you attempt to add a master-
capable node that is using a lower level license, the node does not become
operational. In response to the show slot {slot {detail} | detail }
command, the node displays as Failed with a License Mismatch reason.
• Master-capable nodes continuously monitor the effective license level of the master
node.
• Nodes with higher license levels than other nodes can be restricted to operate at a
lower or effective license level.
The Enabled License Level is the purchased license level. This is the maximum level
at which this node can operate without purchasing a license level upgrade.
The Effective License Level is the operating license level. If a license level restriction
is configured for this node, the effective license level may be lower than the enabled
license level. All master-capable switches must be operated at the same effective
license level.
Feature Packs shows which feature packs are installed on that node.
2. On the master node, run show stacking configuration to view the license level
restrictions configured for all nodes in a stack.
Slot-1 stack.2 # show stacking configuration
Stack MAC in use: 02:04:96:9c:e4:39
Node Slot Alternate Alternate
MAC Address Cfg Cur Prio Mgmt IP / Mask Gateway Flags Lic
------------------ --- --- ---- ------------------ --------------- --------- ---
*00:04:96:9c:e4:39 1 1 Auto <none> <none> CcEeMm-Nn --
00:04:96:9b:c1:34 2 2 Auto <none> <none> CcEeMm-Nn --
00:04:96:9e:5c:76 3 3 Auto <none> <none> --EeMm-Nn --
00:04:96:9c:53:b6 4 4 Auto <none> <none> --EeMm-Nn -e
* - Indicates this node
Flags: (C) master-Capable in use, (c) master-capable is configured,
(E) Stacking is currently Enabled, (e) Stacking is configured Enabled,
(M) Stack MAC in use, (m) Stack MACs configured and in use are the same,
(i) Stack MACs configured and in use are not the same or unknown,
(N) Enhanced protocol is in use, (n) Enhanced protocol is configured,
(-) Not in use or not configured
License level restrictions: (B) Base, or (P) Premier in use,
License level restrictions appear in the Lic column. The license level restriction in
use appears first, represented by a capital letter as shown in the display legend. The
configured license level restriction appears second, represented by a lower-case letter.
When the letters in the Lic column are different, for example -e or Ae, the node is
configured with a different license level restriction than the one that is currently in use.
To put the configured license level restriction into effect, you must reboot the node.
For instructions on enabling a license on a node, see Software Upgrade and Boot
Options on page 1948.
To restrict a master-capable node to operate at a license level that is lower than the one
purchased for the node, use the command:
In the following example, node 7 is restricted to operate at the Edge license level:
Slot-1 Stack.3 # configure stacking slot 7 license-level edge
This command will take effect at the next reboot of the specified node(s).
You must reboot the master-capable node for the command to take effect.
The command restricts the specified node to operate at the specified license level.
The specified license level must match the effective license level of all master-capable
nodes in the stack. To avoid stack reboots when future license level upgrades are
purchased, during initial deployment you should purchase the same license level for
every master-capable node in the stack, and the license level restriction should not be
configured.
level as a master-capable switch. For example, if you want to upgrade to the core
license, your master-capable nodes must be switches that support the core license.
Note
For information about which switches support which licenses, see the
Switch Engine Licensing Guide document. That document also lists
which switches support the SummitStack feature.
To upgrade the licenses for the switches in a stack, follow these steps:
The Rolling Upgrade process reboots all the Standby nodes, reboots the Backup node,
and then initiates a failover to make the old Backup node the new Primary. The failover
results in the old Primary node rebooting. Since the selected software version on each
node is the newer, upgraded software version, after each node reboots, they will run the
new software version.
To begin a Rolling Upgrade, all nodes in the stack must have the same selected
software version.
Note
Performing a Rolling Upgrade does not change the current method of
installing software, only how the stack is rebooted.
If a Rolling Upgrade fails, the nodes in the stack will likely be in different stages of the
rolling upgrade process. Any nodes that have started the reboot process will be running
the newer software version. Nodes that did not begin rebooting will still be running the
older software. The stack should not be left in this condition for an extended period of
time.
1. Determine which partition is currently selected on each node by entering the show
slot detail command.
The include keyword can be used to simplify the output. In the following example,
the Backup and both Standy nodes have been rebooted and are running the newer
software version:
# show slot detail | include "information|Image|State|ver:"
Slot-1 information:
State: Operational
Current State: MASTER
Image Selected: primary
Image Booted: secondary
Primary ver: 31.3.1.22
Secondary ver: 31.3.0.106
Slot-2 information:
State: Operational
Current State: BACKUP (In Sync)
Image Selected: primary
Image Booted: primary
Primary ver: 31.3.1.22
Secondary ver: 31.3.0.106
Slot-3 information:
State: Operational
Current State: STANDBY
Image Selected: primary
Image Booted: primary
Primary ver: 31.3.1.22
Secondary ver: 31.3.0.106
Slot-4 information:
State: Operational
Current State: STANDBY
Image Selected: primary
Image Booted: primary
Primary ver: 31.3.1.22
Secondary ver: 31.3.0.106
2. Change the selected software partition to the old version on all nodes by entering
the use image secondary command.
3. When all nodes have the old software version selected, reboot each node running
the new software version, starting with the Backup node first.
When the Backup node reboots, it should go back to “In-Sync” with the Primary
node.
Note
After each reboot, allow a few minutes for the network to converge before
proceeding.
4. Reboot any Standby nodes individually, ensuring that the rebooted node is
operational before moving on to the next node.
When all nodes are running the old software version, the upgrade is reverted. At
this point, all nodes should have both their selected and booted partitions set to the
partition that contains the old software version.
To manually finish an upgrade and continue rebooting nodes that were not rebooted,
complete the following steps:
1. Determine which partition was booted for each node by entering the show slot
detail command.
The include keyword can be used to simplify the output. In the following example,
only one of the Stanby nodes (Slot-3) was rebooted and is running the newer
software version:
# show slot detail | include "information|Image|State|ver:"
Slot-1 information:
State: Operational
Current State: MASTER
Image Selected: primary
Image Booted: secondary
Primary ver: 31.3.1.22
Secondary ver: 31.3.0.106
Slot-2 information:
State: Operational
Current State: BACKUP (In Sync)
Image Selected: primary
Image Booted: secondary
Primary ver: 31.3.1.22
Secondary ver: 31.3.0.106
Slot-3 information:
State: Operational
Current State: STANDBY
Image Selected: primary
Image Booted: primary
Primary ver: 31.3.1.22
Secondary ver: 31.3.0.106
Slot-4 information:
State: Operational
Current State: STANDBY
Image Selected: primary
Image Booted: secondary
Primary ver: 31.3.1.22
Secondary ver: 31.3.0.106
2. Reboot any Standby nodes running the old software version individually, ensuring
that the rebooted node is operational before moving on to the next node.
3. When all the Standby nodes are running the new software version and the network
has converged, reboot the Backup node and allow it to go back “In-Sync” with the
Primary node.
Note
After each reboot, allow a few minutes for the network to converge before
proceeding.
4. Failover control of the stack from the Primary node to the Backup node by entering
the run failover command.
When all nodes are running the newer software version, the upgrade is finished. At
this point, all nodes should have both their selected and booted partitions set to the
partition that contains the newer software version.
Note
You cannot automatically update a switch running ExtremeXOS 30.2 or earlier
to ExtremeXOS 30.3 or later due to a file system compatibility issue. If you are
inserting a switch that has ExtremeXOS 30.2 or earlier, prior to inserting the
switch into the stack topology, you need to manually upgrade the switch with
the following procedure.
Hitless upgrade is not supported in a stack, except during a Stack Rolling Software
Upgrade.
1. To download and install a new image, the active partitions (primary or secondary) of
all non-master nodes must match the active partition of the master node.
a. To determine the active partition selected on all nodes and the ExtremeXOS
versions installed in each partition, use the show slot {slot {detail} |
detail } command with the detail option. If the node being upgraded is
running on the primary partition, then the new image is downloaded and
installed on the secondary partition.
b. If the active partition is different on some nodes, the action you take depends on
what is stored in both partitions:
If both primary and secondary partitions have the same ExtremeXOS release, you
may use the following commands to cause a node to use the same active image
as the rest of the stack:
The slot number is the one in use by the active node that is to be upgraded. Be sure
that you keep the same image versions on all the other nodes as you have on the
master node.
Alternatively, if your master node has the same image versions in its partitions
that you want installed in the node to be upgraded, you can use the command
synchronize {slot slotid} to upgrade both images and select the desired
image.
2. You can upgrade the image on an active node even if the node shows as Failed
when using the show slot command.
You can download and install the bootrom to a specific slot using the slot parameter.
The slot parameter is available only on stackable switches in the active stack topology.
For information on upgrading the bootrom, see Software Upgrade and Boot Options on
page 1948.
If you do not provide a slot number, the stack attempts to download the bootrom
image and install it on all stackable switches in the active topology.
For each node in the stack, you can configure an alternate management IP address,
subnetwork mask, and default gateway. The alternate IP address is restricted to being
a member of the primary IP subnetwork that is configured on the management VLAN,
and thus the alternate IP subnetwork must exactly match the primary IP management
subnetwork. A subnetwork match is exact if the subnetwork portion of the IP addresses
match exactly. For example, 10.11.12.1/24 and 10.11.12.2/24 are an exact subnetwork match
(because both represent the subnet 10.11.12.0/24).
Standby nodes always install their configured alternate management IP address and
gateway on the management interface. A standby node does not have the ability to
verify whether the configured alternate IP address matches the primary management
IP subnetwork of the stack.
The backup and master nodes have the ability to verify the configured alternate
IP address. The master and backup nodes compare the primary IP subnetwork
information to the alternate IP subnetwork. If there is a match, the backup node installs
the primary IP management subnetwork’s default routes and installs only the alternate
management IP address (not the primary IP address). The master node installs both
the configured management subnetwork with specific IP address and the alternate
IP address. In this case, the alternate gateway is not used, expecting that primary
management routes are configured or will be configured. In either case, if the alternate
IP subnetwork does not match the configured management subnetwork, the alternate
IP address is not installed on the management interface.
Each node in the stack normally installs its alternate IP address on the management
subnetwork. When an ARP request for the alternate IP address is satisfied, the
stackable switch supplies its factory-assigned MAC address and not the stack MAC
address. Only the master node installs the primary IP address. An ARP request for
the configured management IP address returns the configured stacking MAC address.
Because of the above behavior, all nodes are reachable over their management ports
even during a dual master condition. The VLAN used is the management VLAN (VID
4095) and is untagged.
The alternate gateway is only installed on a master or backup node when the primary
management IP subnetwork is not configured. Once the primary IP subnetwork is
installed, the alternate gateway is removed. The alternate gateway is always installed on
a standby node.
If a dual master condition occurs because a stack has been severed, the alternate IP
addresses and associated MAC addresses are unique, and it is possible to use telnet or
ssh to reach any node. Any node on the segment with the incorrect master can then
be used to reboot the entire stack segment into standby mode if you want to rejoin the
stack segments later.
Note
Only IPv4 alternate management IP addresses are supported in this release.
3. If you do not have a continuous block of IP addresses for the stack, assign an
alternate IP address and gateway to each node using the configure stacking
[node-address node-address | slot slot_number] alternate-ip-address
[ipaddress netmask | ipNetmask] gateway command.
For example:
Slot-1 Stack.6 # configure stacking slot 4 alternate-ip-address 10.127.4.139/24
10.127.4.254
Note
If you try to assign an alternate IP address and gateway to a node that
is already configured with these parameters, an error message appears.
To remove an existing configuration so you can change the alternate IP
address and gateway, enter the unconfigure stacking {node-address
node_address | slot slot_number} alternate-ip-address command.
4. Enter the show stacking configuration command to verify that the alternate IP
address and gateway is configured as intended for each node.
For the management VLAN, a secondary address cannot be configured and so the
Secondary IP line does not appear.
Some stacking parameters do not take effect until the next restart, the configured
values and the values currently being used are both shown. Specifically, this applies to
the slot number, whether or not stacking is enabled, the master-capable configuration,
the license level restriction, and the stack MAC configuration.
The only parameters that take effect without a reboot are the node priority and the
alternate management IP subnetwork and gateway.
For the management VLAN, a secondary address cannot be configured and so the
Secondary IP line does not appear.
The commands accept stacking port ranges that span multiple nodes. For example,
both port-list and stacking-port-list might be expressed as 1:1-3:2.
See Switch Engine Command References for details about these commands.
Note
You can not disable a port that is configured to stack.
Configuring Master-Capability
Each node is configurable to be master-capable or not. This means that a node can
either be allowed to take on any node role, or be restricted to executing the standby
node role only. The default is that a node can take on any role. The restriction is used to
avoid the dual master condition. A master-capability configuration change takes effect
at the next restart.
You can configure one or more nodes to be allowed to operate either as a master or a
backup.
The commands do not allow you to disable master-capability on all nodes in a stack
topology.
Note
If the entire stack is restarted in stacking mode without any node having
master capability, you need to know the failsafe account and password to log
into any node in the stack. If you do not know the failsafe account information,
you might need to rescue the stack. See Rescuing a Stack that has No Primary-
Capable Node on page 208.
You can use any of the following commands to configure the master-capability:
• configure stacking [node-address node_address | slot slot_number]
master-capability [on | off]
• configure stacking redundancy [none | minimal | maximal]
Rebooting a Stack
You can reboot a stack by entering the command reboot from the master. You can:
• Reboot all the nodes in the stack topology by entering the reboot command from a
master node login session.
• Reboot a specific node by entering the reboot node-address node-address
command.
• Reboot all nodes in the active topology by entering the reboot stack-topology
command.
• Move a node to a standby node.
• Reboot the stack topology so that every node comes up in standby role.
• Reboot an active node from another active node by entering the reboot slot
slot-number command.
• Reboot the stack by rolling through each node individually, allowing multi-homed
devices to remain connected through the reboot by entering the reboot rolling
command.
Important
You can only replace a switch with the same switch model, or with a model
from the same switch series (family) with the same number of ports, but
a different port type. For example, you can replace an ExtremeSwitching
5420F-24T-4XE with an ExtremeSwitching 5420-24P-4XE (24T → 24P).
Connecting a new node to a stack automatically triggers the following tasks in a stack:
• Adds New Nodes—When a new switch is connected to a stack, the switch is
automatically:
Note
You cannot automatically update a switch running ExtremeXOS 30.2 or
earlier to ExtremeXOS 30.3 or later due to a file system compatibility issue. If
a switch has ExtremeXOS 30.2 or earlier, prior to inserting the switch into the
stack topology, you need to manually upgrade the switch (see Upgrading
the Software on all Active Nodes on page 183).
Note
License mismatches due to installing feature licenses cannot be resolved
automatically. The node is left in the failed state.
a. If the replacement switch is not out of the shipping box, remove any
configuration and restore the factory defaults by running the command
unconfigure switch {all | erase [all | nvram]} with the all option.
b. If the replacement switch is going to be the backup node, check for feature
license mismatches between it and the master by running show licenses
{[slot slot |all]} {detail} on both switches. Install licenses as needed to
the replacement node by running the command or;
a. On the master, run the command configure slot slot module module_type ,
and change the module_type as applicable.
b. Save the configuration (save configuration {primary | secondary |
existing-config | new-config} ).
4. Physically connect the new switch to the stack, and power it up. For information
about cabling, see the hardware installation guide for your switch.
5. Configure the switch port and speed for stack communication on the connected
port of the new node for ExtremeSwitching Universal switches by running the
command configure stacking-support stack-port [stack-ports | all]
selection [native {V40 | V80 | V160 | V200 | V320 | V400 {alternative-
configuration | help}} | alternate].
To manually add or replace a node, see Manually Adding Nodes to a Stack on page 191.
Note
If the node being added is actually a replacement node for one that was
previously removed, see Replacing a Node with the Same Switch Type on page
194 or Replacing a Node with a Different Switch Type on page 196.
Note
If the stack will use MPLS, only the 5520 switch can act as primary and backup.
Review the general and model-specific configuration guidelines for the node you are
installing. These guidelines are described in the hardware installation guide for your
switch.
The examples in the following procedure assume that your current stack has four
nodes and you are adding a new node at slot 5.
h. If the new node will operate as a primary-capable node, use the show licenses
command to verify that the enabled license level is at the same level as the
primary-capable nodes in the stack.
If necessary, configure the license-level restriction of the new node to be same as
the other primary-capable nodes in the stack (see Managing Licenses on a Stack
on page 176).
i. Configure the node role priority to correspond to the priority it should have in the
stack (see Configuring the Primary, Backup, and Standby Roles on page 162).
j. Configure an alternate IP address and gateway (see Configuring an Alternate IP
Address and Gateway on page 184).
k. If the new node will use the SummitStack-V feature, configure the alternate
stacking ports as described in Use Ethernet Ports for Stacking (SummitStack-V
Feature) on page 143.
2. Connect the stacking cables to the new node.
The connections should be made such that the new node appears in the natural
position in the stack and in the slot. The following example adds a new node that
becomes slot 5.
• Break the connection between slot 4 port 2 and slot 1 port 1.
• Connect slot 5 port 1 (the new node) to slot 4 port 2.
• Connect slot 5 port 2 (the new node) to slot 1 port 1.
For more information about cabling, see the hardware installation guide for your
switch.
3. Reboot the new node.
4. At the stack primary node, enter the command synchronize stacking node-
address node-address.
5. Reboot the new node by entering the command reboot node-address node-
address].
6. (Optional) Run the show stacking and show slot commands, as shown in the
following example, to verify that the configuration is what you want.
Slot-1 Stack.1 # show stacking
Stack Topology is a Ring
Active Topology is a Ring
Node MAC Address Slot Stack State Role Flags
------------------ ---- ----------- ------- ---
*00:04:96:9c:e4:39 1 Active Master CA-
00:04:96:9b:c1:34 2 Active Backup CA-
00:04:96:9e:5c:76 3 Active Standby CA-
00:04:96:9c:53:b6 4 Active Standby CA-
00:04:96:26:6c:92 5 Active Standby CA-
* - Indicates this node
Flags: (C) Candidate for this active topology, (A) Active Node
(O) node may be in Other active topology
Slot-5 Empty 0
Slot-6 Empty 0
When you replace a node with the same switch type, for example when you replace
a 5420-24T-4XE switch with another5420-24T-4XE switch, you can continue to use the
same stack configuration.
If you are replacing a node with a different switch type, you must change the stack
configuration before the new node can operate. Follow the procedure in Replacing a
Node with a Different Switch Type on page 196.
Note
If the stack will use MPLS, only the 5520 can act as primary and backup.
e. Use the enable stacking command to enable stacking. Then decline the Easy
Setup option.
f. Configure the slot number for the new node using the slot number noted in step
1. For more information, see Configuring Slot Numbers on page 161.
g. Configure the node's primary-capability to correspond to the role it should have in
the stack (see Configuring Master-Capability on page 189).
h. If the new node will operate as a primary-capable node, use the show licenses
command to verify that the enabled license level is at the same level as the
primary-capable nodes in the stack.
If necessary, configure the license-level restriction of the new node to be same as
the other primary-capable nodes in the stack (see Managing Licenses on a Stack
on page 176).
i. Configure the node role priority to correspond to the priority it should have in the
stack (see Configuring the Primary, Backup, and Standby Roles on page 162).
j. Configure an alternate IP address and gateway (see Configuring an Alternate IP
Address and Gateway on page 184).
k. If the new node will use the SummitStack-V feature, configure the alternate
stacking ports as described in Use Ethernet Ports for Stacking (SummitStack-V
Feature) on page 143.
5. Connect the stacking cables and reboot the node. The new node will join the stack
topology.
For cabling instructions, see the hardware installation guide for your switch.
6. At the stack primary node, enter synchronize stacking.
Note
If the primary node was replaced, log into another stack node before
entering this command.
7. Reboot the new node by entering the command: reboot slot [slot-number |
node-address node-address].
Note
If the primary node was replaced, reboot the stack by entering the reboot
command at the primary node.
8. (Optional) Run the show stacking configuration command and verify that the
configuration is what you want.
Note
To verify that the new node became operational, enter the show slot
{slot {detail} | detail } command. If the slot shows a Mismatch state,
the node was replaced with a different type of switch (see Replacing a Node
with a Different Switch Type on page 196).
When you replace a node with a different switch type, you cannot continue to use the
same stack configuration. The slot configuration for the replaced node must change to
reflect the new switch type.
Note
If you are replacing a node with the same switch type, you can continue to use
the existing stack configuration. For more information, see Replacing a Node
with the Same Switch Type on page 194.
1. Use the show switch, show licenses, and show stacking configuration
commands to display configuration information for the node to be replaced.
Note the following about the node you are replacing:
• ExtremeXOS software version
• Partition on which the switch is booted
• Effective license level for the stack
• Slot number
• Master-capable feature configuration
• Node priority
•Alternate gateway IP address
2. Enter the unconfigure slot slot command to remove the configuration for the
node to be replaced.
All configuration parameters (except for the related node's NVRAM-based
configurations such as stacking parameters, image to be used, and failsafe account)
for the slot are erased.
3. Remove the stacking cables from the node that is being replaced.
4. Add the new node to the stack following the procedure in Manually Adding Nodes
to a Stack on page 191.
The operation performed when two stack segments are joined together depends on
the following factors:
• Whether a slot number is duplicated
• Whether both stacks have master nodes
• The states of the nodes in each stack
If the nodes are configured with stacking enabled, one of the following occurs:
• If two segments are joined, both have operational masters, and at least one of
the nodes in one of the stacks duplicates a slot number of a node in the other
stack, the join is allowed. The link that has just connected the two stacks shows as
Inhibited. This prevents accidental stack joins. In this condition, the nodes on the
joined segment can still be reconfigured centrally for stacking.
• If two segments are joined, both have operational masters, and all nodes have
assigned slot numbers that are unique in both stacks, the dual master situation is
automatically resolved.
• If two segments are joined, there are no duplicate slot numbers, one of the
segments has a master and a backup node, and the other segment does not have
either a master or a backup node, the nodes in this segment are acquired by the
master node. These nodes become standby nodes in the stack.
The nodes that are not configured for stacking do not attempt to join the active
topology but join the stack anyway.
Any nodes enabled for stacking that are isolated between nodes (that are not enabled
for stacking) attempt to form an isolated active topology.
If one of the nodes that is not configured for stacking is then configured for stacking
and restarted, the behavior is as if two active stacks were joined.
In the steps that follow, the nodes are referred to as A1, A2, B1, and B2, as shown in this
table:
(M) Stack MAC in use, (m) Stack MACs configured and in use are the same,
(i) Stack MACs configured and in use are not the same or unknown,
(N) Enhanced protocol is in use, (n) Enhanced protocol is configured,
(-) Not in use or not configured
License level restrictions: (C) Core, (A) Advanced edge, or (E) Edge in use,
(c) Core, (a) Advanced edge, or (e) Edge configured,
(-) Not in use or not configured
1. Form the new stack. Assuming both stacks are rings, break one link in each stack as
follows:
Note
Refer to Table 21 for a guide to the switch (node) names used in the
following steps.
a. For StackA, break the link between node A1 port 1 and node A2 port 2.
b. For StackB, break the link between node B1 port 1 and node B2 port 2.
2. Connect the broken links between the two stacks to form a ring as follows:
a. Connect node A2 port 2 to node B1 port 1.
b. Connect node B2 port 2 to node A1 port 1.
Because both stacks are active stacks and have duplicate slot numbers, the links
between the two stacks are in Inhibited state.
3. Assume that the master node of stackA is to be the master node of the joined stack.
Log into the intended master node. (This is node A1.)
4. Verify the details of the new stack using the following commands:
show stacking
show stacking configuration
show stacking stack-ports
Slot-1 Stack.1 # show stacking
Stack Topology is a Ring
Active Topology is a Daisy-Chain
Node MAC Address Slot Stack State Role Flags
------------------ ---- ----------- ------- ---
5. Configure the nodes so that they all have unique slot numbers.
See Configuring Slot Numbers on page 161.
6. Configure the stack MAC address using the configure stacking mac-address
command.
See Assigning a MAC Address to a Stack on page 165.
7. Optionally, use the configure stacking redundancy minimal command to ensure
that only slots 1 and 2 are master-capable.
8. Optionally, configure new alternate IP addresses for nodes from the original StackB.
See Configuring an Alternate IP Address and Gateway on page 184.
9. For master-capable nodes, configure a license restriction to be the minimum of the
two original values on all master-capable nodes.
Alternatively, you may purchase license upgrades from Extreme if necessary. In this
case, use the command: configure stacking license-level edge
10. Either reboot the entire stack topology using the reboot stack-topology
command, or individually reboot the two nodes that formerly were in StackB.
Using the nodes in this example, the latter requires the following commands:
reboot node 00:04:96:9e:5c:76
reboot node 00:04:96:9c:53:b6
Reboot the nodes in this order: standby nodes first, backup node next, and master
node last. Because none of these nodes is master-capable, there is no temporary
dual master situation as a result of these separate node reboots.
11. When the rebooted nodes come back up, run the following commands to see the
resulting stack.
You can verify that the joined stack came up as expected – that is, all nodes have
unique slot numbers, a common stack MAC address, and so forth:
Slot-1 Stack.15 # show stacking
Stack Topology is a Ring
Active Topology is a Ring
Node MAC Address Slot Stack State Role Flags
------------------ ---- ----------- ------- ---
*00:04:96:9c:e4:39 1 Active Master CA-
00:04:96:9b:c1:34 2 Active Backup CA-
00:04:96:9e:5c:76 3 Active Standby CA-
00:04:96:9c:53:b6 4 Active Standby CA-
* - Indicates this node
Flags: (C) Candidate for this active topology, (A) Active Node
(O) node may be in Other active topology
12. Configure the new slots in VLANs, IP subnetworks, and so forth as required.
Note
Do not reboot the target node at this time.
Dismantling a Stack
To dismantle a stack and use the ExtremeSwitching switches in standalone mode, do
the following:
1. Issue the show stacking stack-ports command to see if any nodes in the stack
are using alternate stacking ports.
In the following example, the switches in slots 1 and 2 have 24 data ports, and the
switches in slots 3 and 4 have 12 data ports. The numbers in the Select column show
that all ports in this stack are alternate stacking ports, not regular data ports.
Slot-1 Stack.5 # show stacking stack-ports
Stack Topology is a Ring
Slot Port Select Node MAC Address Port State Flags Speed
---- ---- ------ ----------------- ----------- ----- -----
*1 1 27 00:04:96:9c:e4:39 Operational C- 10G
*1 2 28 00:04:96:9c:e4:39 Operational CB 10G
2 1 27 00:04:96:9b:c1:34 Operational CB 10G
2 2 28 00:04:96:9b:c1:34 Operational C- 10G
3 1 15 00:04:96:9e:5c:76 Operational C- 10G
3 2 16 00:04:96:9e:5c:76 Operational C- 10G
4 1 15 00:04:96:9c:53:b6 Operational C- 10G
4 2 16 00:04:96:9c:53:b6 Operational C- 10G
* - Indicates this node
Flags: (C) Control path is active, (B) Port is Blocked
2. For every non-master node in the stack that is using alternate stacking ports, log
into the node and issue the unconfigure stacking-support command.
Do not reboot any of the switches.
If step 1 showed that no alternate stacking ports are in use, skip this step.
Note
• This command resets the ports so that they are no longer dedicated for
use as stacking ports.
• It is not necessary to unconfigure stacking-support on the master node.
• If a node is a member of the active topology, you can log in to
other nodes using the telnet slot slot-number {no-auto-login}
command. Otherwise, you need access to the node's console port, or you
need to log in through a management network.
3. Log into the master node and issue the unconfigure switch all command.
After this command is entered, the configuration file is deselected, all stacking
parameters are reset to factory defaults, and all nodes in the active topology reboot.
In effect, this sets all nodes back to the factory default configuration, thus allowing
each switch to be redeployed individually.
4. Restore the saved configuration for each switch, if applicable.
Troubleshooting a Stack
Use this section to diagnose and troubleshoot problems with your stacked switches.
The commands can help you spot common problems like the following.
The following topics contain information for troubleshooting problems related to the
choice of the master node:
• Managing a Dual Primary Situation on page 205
• Connecting to a Stack with No Primary on page 208
• Rescuing a Stack that has No Primary-Capable Node on page 208
In each case, to optimize your use of the failover feature, follow the guidelines in
Configuring the Primary, Backup, and Standby Roles on page 162.
In the example, a link was broken while a node in the ring was powered off. The broken
link formerly connected the original primary (M1) and backup (M2) nodes of a single
active topology.
All nodes in the stack except the powered-off node are in the active topology and all
nodes are configured to be primary-capable. Nodes 1, 7 and 8 form an active topology
and nodes 2, 3, 4, and 5 form another active topology. Node M2 immediately transitions
from backup to primary node role. Nodes B8 and B3 are elected in their respective
active topologies as backup nodes.
If the backup node is on one stack and the primary node is on the other, the backup
node becomes a primary node because the situation is similar to that of primary failure.
Because both stacks are configured to operate as a single stack, there is confusion
in your networks. For example, all of the switch’s configured IP addresses appear to
be duplicated. The management IP address also appears to be duplicated since that
address applies to the entire original stack.
To help mitigate the dual primary problem, you can configure primary-capability so as
to prevent some nodes in the stack from operating in backup or primary node roles. In
addition, you can force all nodes in the (broken) stack topology to restart and come up
as not primary-capable for the life of that restart. The save configuration {primary
| secondary | existing-config | new-config} command saves the configuration
on all nodes in the active topology.
Standby nodes that exist in a severed stack segment that does not contain either the
original primary or backup node do not attempt to become the primary node. Instead,
these nodes reboot. After rebooting, however, a primary election process occurs among
the nodes on this broken segment, resulting in a dual primary situation.
Dual primary conditions are also possible when two non-adjacent nodes in a ring or a
single (middle) node in a daisy chain reboot.
For a period of time, a rebooting node does not advertise itself to its neighbors,
resulting in temporary stacking link failures. This can cause node isolation, and the
nodes that are isolated perform as a severed stack segment depending on the
circumstances of the severance:
• If the backup node is on the broken portion, it becomes a (dual) primary.
• If the backup node is on the same portion as the primary, all nodes on the (other)
broken portion reboot.
When the rebooting nodes have sufficiently recovered, or when a severed stack is
rejoined, the dual primary condition is resolved, resulting in the reboot of one of the
primary nodes. All standby and backup nodes that had been acquired by the losing
primary node also reboot.
the master node because the other master node duplicates the stack’s primary
management IP address and stack MAC address.
Note
The following procedure is necessary only if you cannot reconnect the severed
link in a timely manner. If you can reconnect, the dual master condition
resolves itself. The formerly broken portion of the stack reboots and the nodes
come up as standby nodes.
1. If you lose the management connectivity, log into the master node using its
alternate management IP address.
2. Use the show stacking command to determine which nodes have been lost from
the stack.
You should already know which nodes are expected to be part of the stack.
3. Log into any node in the severed segment you want to deactivate, either
through its console port or through the management interface using the alternate
management IP address.
4. Issue the show stacking command to find out whether the broken segment has
indeed elected a new master node.
5. Using the reboot stack-topology as-standby command, reboot the broken
segment.
This forces all nodes in the segment to come up as standby nodes.
If you have unsaved configuration changes, take care when selecting the stack
segment to be rebooted. You should reboot the segment that has the smaller
System UpTime.
If you know the node that was master of the unbroken stack, you can reboot the
stack segment that does not contain this master node. Otherwise, determine the
System UpTime shown by each master node.
If the System UpTimes of both masters are the same, you can reboot either segment
without loss of unsaved configuration changes. If the System UpTimes of both
masters differ, you must reboot the segment with the smaller System UpTime.
It is possible that each stack segment has its own master. Resolution of the dual master
situation should generally be in favor of the original stack segment’s master node. This
is because the original stack segment may still retain the unsaved configuration. If
the severed segment was restarted before electing a new master node, the unsaved
configuration is lost on that segment.
The master election is done using the System UpTime. The master election process
collects the System UpTime information of the nodes. If a failover occurs, the System
UpTime is inherited by the new master node, and the new master node continues to
increase it as time passes. Thus the System UpTime is the time since a master was first
elected on a segment. When the stack is broken and both master and backup nodes
are on the same segment, the severed segment always has the smaller System UpTime.
If a stack severance results in the master and backup nodes being on different
segments, both have the same System UpTime. In this case, the master is elected using
the normal node role election method.
If a new node has been added to the stack since the stack failsafe account was
configured, logging in to that node requires knowledge of the failsafe account
information that is already configured into that node's NVRAM.
If you do not know the failsafe account and you still want to log in to the stack, you have
to:
1. Join the stack to another segment that has a primary node to which the you have
access.
2. Manually restart the stack to clear the as-standby condition if the reboot stack-
topology as-standby command was previously used.
3. Use the procedure described in Rescuing a Stack that has No Primary-Capable Node
on page 208.
Another example is the case where you dismantle a stack before using the
unconfigure stacking command or the unconfigure switch all command. In this
case, the individual switches are configured for stacking, are not primary-capable, and
are isolated from a stack primary.
In this situation, the only security information available is the failsafe account. If you
know the failsafe user name and password, you can log into any node and reconfigure
primary-capability or redundancy. However, if you do not know the failsafe account
information, there is another way you can change the configuration.
The procedure described here generally is not needed if another primary-capable node
is expected to rejoin the stack. If this procedure is used, it is possible that the new
primary will duplicate the primary that is expected to rejoin later.
1. At the login prompt, enter the following special login ID exactly as displayed below
(all uppercase letters) and press [Enter]:
REBOOT AS PRIMARY-CAPABLE
This node then sets an internal indicator that is preserved across the reboot. While
restarting, the node notices and resets this indicator, ignores the node primary-
capability configuration, and becomes a primary node.
The special login ID described here is available only if all of the following conditions
are met:
• The node supports the SummitStack feature.
• Stacking mode is active on the node.
• All nodes in the active topology have primary-capability turned off.
• There is no primary node in the active topology.
If the above conditions are met, five minutes after starting the node and every five
minutes after that, the following message displays on the console:
Warning: the stack has no Primary node and all active nodes are operating
with primary-capability turned off. If you wish to reconfigure, you may log
in using the failsafe account. Alternatively, you may use the special login
REBOOT AS PRIMARY-CAPABLE with no password to force a reboot of a node with
primary-capability temporarily turned on.
Using the special login ID does not alter the primary-capability configuration
permanently. If you restart a node that has been restarted with the special login
ID, that node restarts using its configured primary-capability, unless you again use
the special login ID to restart.
When a node has been rebooted using the special login ID, it becomes a primary
node. While the node is a primary, the special login ID is not recognized, even
though the entire stack is still configured as not primary-capable. To get the special
login ID to be recognized, the node must be rebooted again.
2. If a node was intentionally separated from the stack without first being
unconfigured, its security configuration might be unusable. In this case, perform the
following steps:
a. Connect to the node's console port.
b. Reboot the node using the special REBOOT AS PRIMARY-CAPABLE login ID
described in step 1.
c. During the reboot, enter the bootrom program by waiting until you see the
message Starting Default Bootloader ... and then pressing and holding
the space bar until the bootrom prompt displays.
d. Force the switch to boot up with a default configuration by entering the following
commands at the bootrom prompt:
config none
boot
Daisy Chain
If you issue the show stacking command and see that the stack topology is a daisy
chain, we strongly recommend that you reconfigure the stack to use a ring topology.
Here is a sample CLI output from show stacking showing that the stack is in a daisy
chain.
# show stacking
Stack Topology is a Daisy-Chain
This node is not in an Active Topology
Node MAC Address Slot Stack State Role Flags
------------------ ---- ----------- ------- ---
*00:04:96:7d:fc:9a - Disabled Master ---
1. Ensure that all stack cables are properly seated and that the Link LED is illuminated
on each stack port.
2. Ensure that each stack node meets the following conditions:
• All nodes must have ExtremeXOS running on the same partition.
• All nodes must be running the same ExtremeXOS version.
• All nodes must have the same license level.
3. Wait for all stack nodes to finish booting and get through AAA login.
4. Enter show stacking to verify that all stack nodes are connected in a ring topology.
5. Check that the stacking port LEDs show as active on all nodes.
6. Reconnect the stacking cables.
A common symptom of this problem is that either or both ends of a stacking link show
that the state is No Neighbor. This can mean that the port at either end is configured
incorrectly. Some configuration errors can produce the No Neighbor state at one end
and the Link Down state at the other end.
Here is an example of how an isolated node would look when you log in to it:
(pending-AAA) login:
Warning: the stack has no Master node and all active nodes are operating with
master-capability turned off. If you wish to reconfigure, you may log in using
the failsafe account. Alternatively, you may use the special login
REBOOT AS MASTER-CAPABLE
with no password to force a reboot of a node with master-capability temporarily
turned on.
If the show stacking command shows the stack state for a slot as Active with the “O”
flag set, the node associated with that slot might be isolated from the rest of the stack
by a failed node.
Failed Stack
Even if the enable stacking command executes without any warnings or prompts, it
is still possible for a stack to fail.
When a stack fails, verify that all of the following conditions are met.
• All nodes must have ExtremeXOS running on the same partition.
• All nodes must be running the same ExtremeXOS version.
• All nodes must have the same license level.
A common sign of a failed stack is one of the non-master nodes being stuck at
(pending-AAA) for more than five minutes. You can attempt to communicate with the
master node (the switch on which the stack was enabled) and determine what went
wrong by checking the state of each slot in the stack, as shown in this example CLI
session:
Slot-1 Stack.1 # show slot
Slots Type Configured State Ports
----------------------------------------------------------
Slot-1 switch_model Operational 50
Slot-2 switch_model Failed 26
Slot-3 Empty 0
Slot-4 Empty 0
Slot-5 Empty 0
Slot-6 Empty 0
Slot-7 Empty 0
Slot-8 Empty 0
In this example, Slot-2 is in the failed state. To determine why it failed, enter the show
slot command – in this example, show slot 2 – to get detailed information about the
state of the failed slot:
Slot-1 Stack.1 # show slot 2
Slot-2 information:
State: Failed
Download %: 0
Last Error: License Mismatch
Restart count: 1 (limit 5)
In this example, the highlighted line in the output reveals the cause of the failure: a
license mismatch in Slot-2.
License Mismatch
A stack might have a failed node even though the show licenses command shows
that all nodes are running the same license and/or feature packs.
1. At the master node's console, enter show slot slot_number repeatedly until you
find the slot node that is failing.
Note
When you are creating a stack, a blinking orange MGMT light usually
indicates a license mismatch on a master-capable standby node.
3. After making a connection to the failed switch's slot, update the license information
for that node:
a. For universal platforms, licenses can be uninstalled or revoked using the following
command:
uninstall license [{file} | {product}] {filename} | {productname}]
[{withhold} | {revoke}]
Select revoke.
b. Enter reboot
c. Obtain the correct license information for the failed switch, then enter # enable
license license_key (where license_key has the format xxxx-xxxx-xxxx-
xxxx-xxxx).
For more information about licensing for stack nodes, see Managing Licenses on
a Stack on page 176.
4. Enter show stacking and enable stacking to re-enable the stack.
Note
Only those switches that are master-capable require compatible licenses be
installed.
The show slot {slot {detail} | detail } command displays the slots that contain
active nodes that are in the severed portion as Empty.
When an overheat condition is detected on an active node, the stack generates the
following trap when the node reaches a steady state:
• extremeStackMemberOverheat
When a member is added to or deleted from the stack, or any time the status of a
stacking port changes, the change is indicated by means of the following traps:
• extremeStackingPortStatusChanged
• IfIndex: Interface Index of the port
• extremeStackingPortRemoteMac: MAC Address of the remote switch attached to
this port
• extremeStackingPortLinkSpeed: the port's link speed, for example, 100, or 1000
Mbps
• extremeStackingPortLinkStatus: the status of the link
This chapter describes the processes for enabling, disabling and configuring individual
and multiple ports and displaying port statistics.
Port Numbering
ExtremeXOS runs on stand-alone and SummitStack switches, and the port numbering
scheme is slightly different on each.
Separate the port numbers by a dash to enter a range of contiguous numbers, and
separate the numbers by a comma to enter a range of noncontiguous numbers:
• x-y: Specifies a contiguous series of ports on a stand-alone switch
• x,y: Specifies a noncontiguous series of ports on a stand-alone switch
• x-y,a,d: Specifies a contiguous series of ports and a series of noncontiguous ports on
a stand-alone switch
For example, if the second switch in a SummitStack has four ports, the following ports
are valid:
• 2:1
• 2:2
• 2:3
• 2:4
You can also use wildcard combinations (*) to specify multiple port combinations.
Refer to Displaying Port Information on page 310 for information on displaying link
status.
Note
Stacking ports always use the same type of connector and copper PHY, which
are built in to the ExtremeSwitching switches. You cannot configure stacking
port parameters such as port speed, duplex, and link fault signal. You also
cannot configure data port features such as VLANs and link aggregation.
Auto-negotiation determines the port speed and duplex setting for each port (except
10 and 40 Gbps ports). You can manually configure the duplex setting and the speed of
10/100/1000 Mbps ports.
The 10/100/1000 Mbps ports can connect to either 10BASE-T, 100BASE-T, or 1000BASE-T
networks. By default, the ports autonegotiate port speed. You can also configure each
port for a particular speed (either 10 Mbps or 100 Mbps).
Note
With auto-negotiation turned off, you cannot set the speed to 1000 Mbps.
In general, SFP gigabit Ethernet ports are statically set to 1 Gbps, and their speed
cannot be modified.
However, there are two SFPs supported by Extreme that can have a configured speed:
• 100 FX SFPs, which must have their speed configured to 100 Mbps.
• 100FX/1000LX SFPs, which can be configured at either speed.
The 10 Gbps ports always run at full duplex and 10 Gbps. The 40 Gbps ports always run
at full duplex and 40 Gbps.
ExtremeXOS allows you to specify the medium as copper or fiber when configuring
ExtremeSwitching switches with combination ports. If the medium is not specified for
combination ports then the configuration is applied to the current primary medium.
The current primary medium is displayed in the Media Primary column of the show
ports configuration command output.
Note
For switches that do not support half-duplex, the copper switch ports must
have auto-negotiation disabled and full duplex enabled when connecting
10/100/1000 Mbps devices that do not autonegotiate. If the switch attempts
and fails to auto negotiate with its partner, it will fail to link up. A non-
negotiating connected device must also be manually configured for full duplex
or packet loss and port errors will occur each time it detects a collision.
Note
Beginning in version 32.4, auto-negotation defaults to ON for SFP28, QSFP+,
and QSFP28 ports (25G/40G/50G/100G).
To configure port speed and duplex setting , use the following command:
configure ports port_list {medium [copper | fiber]} auto off speed speed
duplex [half | full]
Note
The keyword medium is used to select the configuration medium for
combination ports. If port_list contains any non-combination ports, the
command is rejected.
ExtremeXOS does not support turning off auto-negotiation on the management port.
Note
For Universal Hardware switches, auto-negotiation is disabled by default when
a 1G SFP optic is inserted in a 10 Gbps SFP+ port.
Note
Half-duplex is not supported on the multi-rate ports of ExtremeSwitching
5520-12MW-36W. Half-duplex is supported on the copper ports of 48T/W and
24T/W at 10/100Mbps, but not at 1000Mbps.
With Extreme Networks devices, the 1 Gbps ports and the 10 Gbps ports implement
flow control as follows:
• 1 Gbps ports:
◦ Auto-negotiation enabled
▪ Advertise support for pause frames
▪ Respond to pause frames
◦ Auto-negotiation disabled
▪ Do not advertise support for pause frames
▪ Do not respond to pause frames
• 10 Gbps ports:
◦ Auto-negotiation always disabled
◦ Do not advertise support for pause frames
◦ Respond to pause frames
Note
When 1G SFP optics are inserted into 10 GBps ports, you must configure
auto-negotiation "on" with 1G speed.
FEC gives the receiver the ability to correct errors without requiring a reverse channel
to request retransmission of data, but at the cost of a fixed, higher forward channel
bandwidth. Some devices require this to interoperate.
FEC is only available on 4120 SFP28 and QSFP28 ports, 4220 SFP+
ports,ExtremeSwitching 5420-4XE ports, 5420-4YE ports, 5520-VIM-4YE ports, 5720
QSFP ports, 5720-VIM-6YE/2CE ports, and Extreme 7520-48XT.
You can always configure a 255-character-long string regardless of the configured value
of ifAlias size. Its value only affects the SNMP behavior.
Use the following commands to configure up to 255 characters associated with a port:
Use the following command to control the accessible string size (default 64, per MIB)
for the SNMP ifAlias object:
If you choose extended size option, the following warning will be displayed:
Warning: Changing the size to [extended] requires the use of increased 255 chars long
ifAlias object of ifXtable from IF-MIB(RFC 2233)
Port Groups
Port groups allow you to define ports by similar functionality or role. You can create port
groups and use them to configure QoS profiles, ingress meters and flood rate-limiters
for ports that share the same role. QoS commands that use port groups are updated
automatically if the ports group is removed or if ports are added or removed from the
group.
In addition, ExtremeCloud IQ Site Engine can create and manipulate port groups
through the CoS MIB using SNMP. These groups are used to configure the
ExtremeCloud IQ Site Engine-specified CoS resources that are mapped to QoS profiles,
ingress meters, and flood rate-limiters. Since the ExtremeCloud IQ Site Engine CoS
feature is port group-oriented, ExtremeXOS QoS entities (QoS profiles, ingress meter,
and flood rate-limiting) that are configured on a per-port basis are not exposed
through the CoS MIB using SNMP.
Note
100G is not supported on the ExtremeSwitching 5520 series switches QSFP28
ports.
Note
When replacing a Universal switch (for example, the ExtremeSwitching 5420
series or ExtremeSwitching 5520 series switch) that is not in a stack, stacking-
support should be disabled before applying a configuration where port
partitioning is enabled on either of the Universal ports (U1 or U2).
Note
This partition allows all ports to be converted either as 10G or as 25G and
not both. To partition the 25G ports, apply the 4x10 option in the following
command to the first VIM port (port 33 for 24-port models and port 57 for
48-port models).
Version 32.5 adds support for ports with different max speed capabilities to be part
of the same Link Aggregation Group (LAG). This lets you change the speed and the
auto-negotiation configuration of a port that is part of a LAG without unconfiguring
and reconfiguring the LAG. This feature also supports dynamic repartitioning of the
LAG ports without deleting and then recreating the LAG.
Note
Because of the nature of these ports at the physical layer level, the 10G side
may show a remote or local linkup.
Flow Control
IEEE 802.3x flow control provides the ability to configure different modes in the default
behaviors. Ports can be configured to transmit pause frames when congestion is
detected, and the behavior of reacting to received pause frames can be disabled.
TX
You can configure ports to transmit link-layer pause frames upon detecting congestion.
The goal of IEEE 802.3x is to backpressure the ultimate traffic source to eliminate or
significantly reduce the amount of traffic loss through the network. This is also called
lossless switching mode.
• When flow control is applied to the fabric ports, there can be a performance
limitation. For example, a single 1G port being congested could backpressure a high-
speed fabric port and reduce its effective throughput significantly.
To configure a port to allow the transmission of IEEE 802.3x pause frames, use the
following command:
Note
To enable TX flow-control, RX flow-control must first be enabled. If you attempt
to enable TX flow-control with RX flow-control disabled, an error message is
displayed.
To configure a port to return to the default behavior of not transmitting pause frames,
use the following command:
RX
You can configure the switch to disable the default behavior of responding to received
pause frames. Disabling rx-pause processing avoids dropping packets in the switch and
allows for better overall network performance in some scenarios where protocols such
as TCP handle the retransmission of dropped packets by the remote partner.
To configure a port to disable the processing of IEEE 802.3x pause frames, use the
following command:
Note
To disable RX flow-control, TX flow-control must first be disabled. If you attempt
to disable RX flow-control with TX flow-control enabled, an error message is
displayed.
When buffer congestion is detected, IEEE 802.3x flow control allows the
communicating device to pause all traffic on the port, whereas IEEE 802.1Qbb allows
the device to pause just a portion of the traffic while allowing other traffic on the same
port to continue.
For PFC, when an ingress port detects congestion, it generates a MAC control packet
to the connected partner with an indication of which traffic priority to pause and an
associated time for the pause to remain in effect. The recipient of the PFC packet then
stops transmission on the priority indicated in the control packet and starts a timer
indicating when traffic can resume.
Limitations
Supported Platforms
If you attempt to enable PFC on unsupported ports, an error message is displayed. (See
Abnormal Configuration Examples on page 228.)
Priority is established for reception of PFC packets with a QoS (Quality of Service) profile
value on the ExtremeXOS switch and for transmission with a priority value added to the
PFC packet.
• QoS profile—Ingress traffic is associated with a QoS profile for assignment to one
of eight hardware queues in the system that define how the traffic flows with
respect to bandwidth, priority, and other parameters. By default, there are two QoS
profiles (QP1 and QP8) defined in these supported platforms and PFC works with
this default. To segregate the ingress traffic with more granularity, you will want to
define other QoS profiles. The traffic that will be paused on reception of the PFC
packet is associated with the hardware queue of the QoS profile that you specify.
It is suggested that the priority in the VLAN header match the QoS profile priority
when traffic ingresses at the edge of the network so that the traffic can be more easily
controlled as it traverses through the network.
When the ingress and egress ports are located on separate nodes in a SummitStack,
note that some older systems do not support the enhanced fabric mode required for
PFC.
If any other ExtremeSwitching switch attempts to join the stack after the initial
configuration of PFC, it is not allowed to join.
If your situation does not respond well to having flow control enabled on the fabric
links, you can turn off flow control in the fabric by using the following command:
Example
The network needs to transport FCoE (Fiber Channel over Ethernet) traffic which
is intermixed with other more typical LAN traffic on the same Ethernet network.
FCoE needs a lossless transport and PFC can be used to enable this. You define QoS
profiles for all eight traffic priorities. At the network level, it is decided that FCoE
traffic will be assigned to priority 3 (which corresponds to QP4) and the remaining
traffic is assigned to one or more other priorities. For this example, it is also assumed
that the priority bits in the incoming packets are also 3.
One mechanism that can be used for this classification is the use of Access Control
Lists (ACLs) that match on the FCoE ethertypes (0x8906 and 0x8914) using the
ethernet-type qualifier with an action of QoS profile QP4 for both rules. Other traffic
can be classified to other priorities. Once this configuration is applied, FCoE is now
separated from the other Ethernet traffic and is assigned a priority of 3 through the
switch.
PFC is enabled at the ports that will see FCoE traffic, in this case, ports 1:1, 2:3, and 6:5.
Since FCoE is assigned to QP4, you would enable the receive PFC for QoS profile to
be QP4 and, in this example, would also enable PFC with a transmit priority of 3. The
enable commands would then read as follows:
enable flow-control tx-pause priority 3 ports 1:1,2:3,6:5
enable flow-control rx-pause qosprofile qp4 ports 1:1,2:3,6:5
Without the no-refresh option the display refreshes until interrupted by the console
operator pressing Escape:
# show ports 1,5,9 flow-control rx-pauses
Flow Control Frame Monitor Sat Aug 18 19:35:12 2012
Port Pause PFC0 PFC1 PFC2 PFC3 PFC4 PFC5 PFC6 PFC7
Rcvs Rcvs Rcvs Rcvs Rcvs Rcvs Rcvs Rcvs Rcvs
==============================================================================
1 - - - - 1234567 1234567 - 1234567 -
5 - - - - 1234567 1234567 - 1234567 -
16:104 1234567 - - - - - - - -
===============================================================================
">" Name truncated, "-" rx-pause not enabled, "." Counter not available
Spacebar->Toggle screen 0->Clear counters U->Pageup D->Pagedown ESC->exit
The new show port flow-control tx-pause no-refresh CLI command displays
the following information. With the no-refresh option the display shows the
following information:
# show ports 1,5,9 flow-control tx-pauses no-refresh
Flow Control Frames Transmitted
Port Pause PFC0 PFC1 PFC2 PFC3 PFC4 PFC5 PFC6 PFC7
Xmts Xmts Xmts Xmts Xmts Xmts Xmts Xmts Xmts
==============================================================================
1 - - - - 1234567 1234567 - 1234567 -
5 - - - - 1234567 1234567 - 1234567 -
16:104 1234567 - - - - - - - -
===============================================================================
">" Name truncated, "-" tx-pause not enabled, "." Counter not available
Without the no-refresh option the display refreshes until interrupted by the console
operator pressing the escape key:
# show ports 1,5,9 flow-control tx-pauses
Flow Control Frame Monitor Sat Aug 18 19:35:12 2012
Port Pause PFC0 PFC1 PFC2 PFC3 PFC4 PFC5 PFC6 PFC7
Xmts Xmts Xmts Xmts Xmts Xmts Xmts Xmts Xmts
==============================================================================
1 - - - - 1234567 1234567 - 1234567 -
5 - - - - 1234567 1234567 - 1234567 -
16:104 1234567 - - - - - - - -
===============================================================================
">" Name truncated, "-" tx-pause not enabled, "." Counter not available
Spacebar->Toggle screen 0->Clear counters U->Pageup D->Pagedown ESC->exit
Once this configuration is complete, if a switch ingress port detects congestion, it will
send PFC packets to the remote link partner and will respond to PFC packets from the
remote link partner by stopping transmit.
• When PFC is enabled on a port, IEEE 802.3x will be disabled. If, after enabling
PFC, you try to modify RX or TX pause parameters, an error message similar to the
following will be issued explaining the dependency on PFC configuration:
BD8810.1# enable flow-control tx-pause port 1:1
Error: Priority Flow Control is currently enabled on port 1:1 and is mutually
exclusive with TX and RX pause configuration. TX and RX pause configuration cannot be
done until PFC is disabled on this port.
Note
To display the part number of the switch in a SummitStack, use the show slot
slot_number command.
Although the physical link remains up, all Layer 2 and above traffic stops.
The system sends LinkDown and LinkUp traps when these events occur. Additionally,
the system writes one or more information messages to the syslog, as shown in the
following example:
09/09/2004 14:59:08.03 <Info:vlan.dbg.info> MSM-A: Port 4:3 link up at
10 Gbps speed and full-duplex
09/09/2004 14:59:08.02 <Info:hal.sys.info> MSM-A: 4:3 - remote fault recovered.
09/09/2004 14:59:05.56 <Info:vlan.dbg.info> MSM-A: Port 4:3 link down
due to remote fault
09/09/2004 14:59:05.56 <Info:hal.sys.info> MSM-A: 4:3 - remote fault.
09/09/2004 15:14:12.22 <Info:hal.sys.info> MSM-A: 4:3 - local fault
recovered.
09/09/2004 15:14:11.35 <Info:vlan.dbg.info> MSM-A: Port 4:3 link up at
10 Gbps speed and full-duplex
09/09/2004 15:13:33.56 <Info:vlan.dbg.info> MSM-A: Port 4:3 link down
due to local fault
09/09/2004 15:13:33.56 <Info:hal.sys.info> MSM-A: 4:3 - local fault.
09/09/2004 15:13:33.49 <Info:vlan.dbg.info> MSM-A: Port 4:3 link down
due to local fault
Note
A link down or up event may trigger Spanning Tree Protocol topology changes
or transitions.
Turning off autopolarity applies only to the 10/100 BASE-T ports on the switch and
copper medium on ExtremeSwitching combination ports.
When the autopolarity feature is enabled, the system causes the Ethernet link to come
up regardless of the cable type connected to the port. When the autopolarity feature
is disabled, you need either a crossover or a straight-through cable depending on the
native polarity of the switch (it may vary across platforms) and the type of equipment
being connected to the port. When disabling autopolarity, you have the option to set
the port’s polarity or Medium-Dependent Interface (MDI) mode to straight-through
(MDI) or crossover (MDIX) mode irrespective of the native MDI mode of the port. The
autopolarity feature is enabled by default.
Under certain conditions, you can choose to turn autopolarity off and set a specific MDI
mode on one or more ports.
• To disable or enable autopolarity detection, use the following command:
configure ports port_list auto-polarity [on | off { mdi-mode [ default
| mdi | mdix]}]
Where:
◦ port_list—Specifies one or more ports on the switch
◦ off—Disables the autopolarity detection feature on the specified ports
◦ on—Enables the autopolarity detection feature on the specified ports
◦ mdi-mode—Medium-Dependent Interface (MDI) mode
◦ default—Use the platform's default MDI mode
◦ mdi—Force MDI mode to be straight-through
◦ mdix—Force MDI mode to be crossover
The following example turns autopolarity off and sets the polarity as crossover for
ports 5 to 7 on an ExtremeSwitching switch:
configure ports 5-7 auto-polarity off mdi-mode mdix
• When autopolarity is disabled on one or more Ethernet ports, you can verify that
status using the command:
show port information detail
Flow Monitor
Flow Monitor provides IP Flow Information Export (IPFIX) and K-Mirror support based
on RFC 7011 to collect and export flow records for Universal platforms. Flow Monitor
builds on IPFIX by providing additional metering and exporting processes. Flow
Monitor enables switches to gather information about flows through different ports
on each switch and export the flow records (via UDP) to a remote collector(s). This
information can be used to analyze application and network usage, and monitor real-
time network infrastructure.
Supported Features
The following table lists feature and version support for Flow Monitor:
Supported Platforms
This feature is supported on ExtremeSwitching 5420, 5520, and 5720 series switches.
Limitations
• Flow Monitor is not compatible with legacy IPFIX.
• Legacy ExtremeXOS IPFIX templates for non-IP packets are not supported.
• Transport of Flow Monitor records to Collector(s) is UDP only.
• Collectors must be reachable on an IPv4 subnetwork and are not reachable through
the IPv6 network.
• Histograms are not supported in version 32.2.
• Support for an internal collector is not provided.
• Datagram Transport Layer Security (DTLS) is not supported.
• Flow Monitor is not supported on stacks in version 32.2.
To enable a Flow Monitor group, use the following command: enable flowmon group
group_name.
Note
While a group is being enabled, it cannot be modified except to add or delete
keys.
Note
Before a group can be enabled, it must have at least one key and one collector
added to it. A template key portion is present when a key has been added.
To disable Flow Monitor globally, use the following command: disable flowmon.
Note
Modification rules for groups, keys, and collectors remain active after Flow
Monitor is disabled. A new group can be created and configured with its
parameters, collector, template portions (defines the elements to be exported),
and added keys. The group can also be enabled or disabled.
Note
Enabling a group while Flow Monitor is disabled will program the hardware,
but the flow collection for the group will be disabled.
To disable a Flow Monitor group, use the following command: disable flowmon group
group_name.
Up to eight external collectors are supported. The created collector must be configured
before it can be added to a group, and a collector can be used by many groups.
Note
The system will reject any attempt to create a collector that already exists.
To export flow records using the Flow Monitor, you must first configure a collector.
To configure a collector, use the configure flowmon collector collector_name
command.
If any of the specified parameters cannot be set, or if there is an error honoring the
configuration request, the configuration command will be ignored. While this scenario
will affect configured parameter values, the state of the UDP socket might not be
affected.
Note
The system will reject any attempt to delete a collector that does not exist.
Flow keys are used to identify the flows to be tracked by a specified flow group. Flows
keys are a combination of parameters that can be generic, for example, 'ipv4', or more
specific, for example, 'ipv4 src-port 80 dst-port 122'.
Note
The system will reject any attempt to create a key that already exists.
To configure a Flow Monitor key with IPv4 parameters, use the configure flowmon
key key_name ipv4 command.
To configure a Flow Monitor key with IPv6 parameters, use the configure flowmon
key key_name ipv6 command.
Note
If a specific port list indicates a slot where Flow Monitor is not supported, the
command will be rejected.
To delete a Flow Monitor key, use the delete flowmon key key_name command.
If a key is added to the group, it cannot be deleted using the delete flowmon
key command until the key is deleted from the group. The related template key is
disassociated and only deleted when there are no more keys or groups referencing it.
Note
The system will reject any attempt to delete a key that does not already exist.
Note
The system will reject any attempt to create a group that already exists.
To configure a created group where Flow Monitor sends information, use the
configure flowmon group group_name command.
Only one collector can be added to a group, but the same collector can be added to
multiple groups.
Note
The system will reject any attempt to add a collector to a group that already
contains a collector. The system will also reject any attempt to delete a
collector from a group that was not previously added to the group.
To configure a relationship between a Flow Monitor key and a group, use the
configure flowmon group group_name [add | delete] key key_name command.
While a key is being added to a group, the key cannot be modified.
Flow Monitor creates a template key portion that matches the key. If a different
template key portion is related to the group, then the add fails. Otherwise, the template
key portion is related to the group.
If the group is already enabled, the key is installed in the hardware. Keys can be added
to or deleted from a group regardless of the state of the group.
When a key is to be deleted from a group, the key is disassociated from the key
template portion. The key is then disassociated from the group. If the group has no
more keys associated with it and the group is disabled, the group is then disassociated
from the template key portion.
To delete a Flow Monitor group, use the delete flowmon group group_name
command.
An enabled group cannot be deleted and the system will reject any attempt to do so.
Groups must be disabled before deleting.
Note
The system will reject any attempt to delete a group that does not already
exist.
The show flowmon command shows whether Flow Monitor is in enabled or disabled
state, the number of groups, number of keys, and number of collectors. It also shows
the current total number of flows learned in each hardware domain.
When detail is entered, the source and destination IPv4 addresses, source and
destination UDP ports, VR name, and export MTU size are displayed.
Note
If collector_name is not entered, then a list of collectors is displayed.
The show flowmon group group_name | all] detail command shows Flow Monitor
group information. For each Flow Monitor group, the group name and parameters are
shown.
When detail is entered, the assigned collector name, complete template name,
template key portion name, and a list of key names, dependent keys and containing
groups are shown. In addition, the group state and whether the group is enabled or
disabled are shown. The group state is defined as follows:
• Configuring – The user is configuring the group, and the group is not enabled.
• GroupInstall – The group is being installed.
When all is entered, then all groups are shown with full detail.
When group_name is entered, only the statistics for that group are shown. When not
entered, all groups are shown using the Page Up and Page Down options.
Each group name is displayed along with the number of active flows, the number of
flows that have aged out, the number of flows that were not learned because the group
flow limit was exceeded, the number of flows learned on the group, and the number of
flows that were not learned because the flow table was full.
When no-refresh is provided, the specified group or groups are displayed one time
with their current values.
If no-refresh is not entered, the display is updated with refreshed values every five
seconds. This display operates as a standard updatable Switch Engine statistics display,
providing Page Up, Page Down, Exit, and Clear options.
When no-refresh is entered, the specified group or groups are displayed one time
with their current values.
When wide is entered, a wider version of the display is shown. If wide is not entered, the
counters are limited to a display width that fits into 80 display columns. When wide is
provided, the full 64-bit counter value can be displayed (about 21 columns per integer
value).
The show flowmon group group_name template detail command displays Flow
Monitor group template information. The complete template name is shown with the
template key portion name.
When detail is entered, the Element IDs are shown in text form.
The show flowmon key key_name command shows Flow Monitor key information. For
each key, the name, type, associated group name (if applicable), and the 'before' or after
key name (if applicable) are displayed.
When all is entered and detail is not specified, all keys are shown in tabular format.
When detail is entered, the IPv4 or IPv6 address and mask, source or destination UDP
or TCP port, protocol or next header, and specified list of ports to which the key is
applied are shown. If none are specified, all values are shown.
Cut-through switching allows the switch to begin transmitting a packet before its
entire contents have been received thereby reducing the overall forwarding latency
for large packet sizes.
Cut-through forwarding mode is supported on 10G, 25G, 40G, 50G, and 100G ports on
Extreme Networks 7520 and 7720 series switches.
The locally available clock on each network device synchronizes with a grandmaster
clock by exchanging timestamps that contain sub-nanosecond granularity. This allows
them to deliver very high accuracy to ensure the stability of base station frequency and
handovers. The timestamps between master and slave devices are exchanged through
PTP event packets. The ExtremeXOS 1588v2 implementation uses the IPv4/UDP
transport mechanism PTP packets.
Note
The Precision Time Protocol is currently available only for version 32.6
and later releases on ExtremeSwitching 5520 series switches, and version
33.1.1 on 7520-48Y and 7720-32C series switches. For this router, accurate
synchronization of base stations to nanoseconds accuracy is critical to
minimize service disruptions and eliminate dropped connections as calls move
between adjacent cells.
Overview of PTP
The IEEE 1588v2 Precision Time Protocol (PTP) defines a packet-based time
synchronization method that provides frequency, phase, and time-of-day information
with nanoseconds level of accuracy.
The grandmaster provides the time reference for one or more slave devices. These slave
devices can, in turn, act as master devices for further hierarchical layers of slave devices.
To determine the master-slave hierarchy, a Best Master Clock (BMC) algorithm is used.
This algorithm determines which clock is the highest quality clock within a network.
The clock elected by BMC (the master clock) then synchronizes all other clocks (slave
clocks) in the network. If the BMC is removed from the network or is determined by the
BMC algorithm to no longer be the highest quality clock, the algorithm then redefines
the new BMC and adjusts all other clocks accordingly. No administrator input is needed
for this readjustment because the algorithm provides a fault tolerant behavior.
A PTP network must have a grandmaster clock reference and a slave. Between a
master and a slave, a PTP network may have multiple boundary clocks, transparent
clocks, and non-PTP bridges.
Note
A PTP port is a logical interface (VLAN / IP interface).
Boundary clocks are switches with one or more PTP ports. One PTP port of a boundary
clock can act as a slave to a master clock in the network, and the rest of the PTP ports
can act as a master for the downstream nodes.
Transparent clocks correct the delays for PTP messages in the correction field.
The residence time is defined as the delay between the reception and the transmission
of packets through the device. The accumulated CorrectionField value is used by
boundary or slave clocks for delay compensation in the time offset correction.
Basic Synchronization
1. The master sends a Sync message to the slave, notes the time (t1) it was sent, and
embeds the t1 time in the message.
2. The slave receives the Sync message, and notes the time it is received (t2).
3. The master conveys to the slave the timestamp t1 either by (1) embedding the
timestamp t1 in the Sync message (this requires hardware processing for highest
accuracy and precision, and is called as one step clocking) or by (2) embedding the
timestamp t1 in a Follow_Up message (this is called as two step clocking).
4. The slave sends a DelayReq message to the master, and notes the time (t3) it was
sent.
5. The master receives the DelayReq message, and notes the time it is received (t4).
6. The master embeds the t4 timestamp in a DelayResp message to the slave.
At the conclusion of this exchange of messages, the slave possesses all four
timestamps. You can use these timestamps to compute the offset of the slave’s
clock with respect to the master, and the mean propagation time of messages
between the two clocks.
The calculation for the offset from the master is as follows: offset_from_master = t2 -
t1 - one_way_delay.
Note
The above explanation for offset calculation is provided simply for
understanding the basic PTP protocol. The actual calculations involve many
more variables.
The computation of offset and propagation time assumes that the master-to-slave
and slave-to-master propagation times are equal. Any asymmetry in propagation time
introduces an error in the computed value of the clock offset.
PTP defines the notion of End-to-end transparent clocks which do not participate in
time synchronization with master clock.
Rather, they simply accumulate the residence time of PTP event messages such
as Sync/DelayReq that transit the switch. The residence time is updated in the
CorrectionField of these messages.
The transit delay in the link between the hops are not accounted in the CorrectionField
by the End-to-end transparent clocks.
Each PTP network element maintains a PTP-free running time-of-day counter used
as a basis for generating recovered clock signals and computing latencies, offsets and
drift rates. The free-running counter runs on the local system clock, asynchronously to
the clocks maintained by the other members of the PTP network. Correction factors
are applied to the free-running clock in order to arrive at a local time value that is
synchronized to the grand master clock. The PTP free-running time value consists of
a 32-bit nanoseconds field, and a 48-bit seconds field. Every second the nanoseconds
[31:0] field is rolled over and the 48-bit seconds [47:0] counter is incremented. The
PTP network element uses the information calculated from the master clock's sync
messages to perform local clock adjustments.
Drift Adjustment
If the trend of slave offset values calculated from the Sync Messages continues to
increase or decrease over time, the local reference clock that increments the free-
running counter is operating at a rate slightly slower or faster than the master
reference. You can make a drift adjustment to the free-running counter by slightly
increasing or decreasing the rate at which the counter increments. Doing so locks the
frequency of the counter to the master reference (syntonization). Syntonization is the
adjustment of a clock signal to match the frequency, but not necessarily the phase, of
another clock signal.
Xn – X0
Offset Adjustment
Once the drift rate has been measured and compensated for correctly, the slave clock
offset should remain fairly constant at each Sync interval. Ideally, once an offset is
computed and put in place, it is only rarely changed. The offset is applied to the local
time value to synchronize the local time with the master's.
Ultimately, the slave clock uses the drift and offset adjusted counter to generate a
usable clock signal externally. Through PTP, each slave free-running counter is both
frequency and time-of-day locked to the master clock. The slave clock uses the free-
running clock and phase information to generate a frequency and phase aligned clock
signal traceable to the master clock.
PTP as a protocol basically gives the timestamp values based on its messages and
operation for calculating offset and drift adjustment. The problem is that the Slave
clock cannot be simply corrected by setting the free running counter to a new value. If
done this way, there would be time intermission or time back scenarios, and inaccurate
synchronization. Thus the change to the slave clock should be brought in gradually
while taking several other factors into account that affect the working of PTP:
Timestamps provided by PTP are used as an input to the Servo Algorithm. This
algorithm addresses all of above mentioned network impairments (PDV being the
most critical one) and gives an output for the amount of adjustment that should be
made to the local slave clock. 1588v2 Specification does not define the Servo part. The
Servo Algorithm’s goal is to achieve zero time difference between the master and the
slave, and that the frequency of the slave clock and master clock are locked (meaning
the ratio should be constant).
Hybrid Networks
The Precise Time Protocol (PTP) synchronizes the network by transferring the master
clock information in the form of timestamps in the PTP messages (Sync/FollowUp/
DelayReq/DelayResp). In the slave clock, the clock offset is computed through the
reception of PTP messages that carry master clock as timestamps.
PTP Time-source
Each node in the Hybrid network recovers and transfers primary reference frequency
using SyncE and phase/ToD using PTP. The PTP implementation usually includes
a local reference clock at each boundary and ordinary clocks. The PTP protocol
synchronizes this local reference clock to the Grandmaster clock by correcting its
offset. In Hybrid networks, since frequency of the Primary reference is already available
through clock recovered from SyncE, this recovered clock is used as a local reference
clock. The timestamps received through the PTP event messages are processed and
the Phase/ToD information is recovered.
The PTP protocol does not specify the source of time (frequency and/or Phase/ToD),
or the method of clock recovery. This is left to the implementation. For boundary and
ordinary slave clocks, the source of time is through PTP messages. However, since PTP
messages carry timestamps that can be used to recover both frequency and phase/
ToD, the implementations separate this aspect of recovery, and perform only phase/ToD
recovery on the received PTP messages. The frequency recovery from the received PTP
messages is not performed. The PTP implementation uses the recovered clock from
SyncE as a frequency time-source.
Limitations of PTP
The following are the limitations of the implementation of PTP:
• Layer 2 transport is not supported.
• IPv6-UDP transport is not supported.
• Multicast event messages are not supported.
• Peer-to-peer delay mechanism is not supported.
• PTP datasets are not maintained for end-to-end transparent clocks.
• Domain number cannot be assigned to end-to-end transparent clocks.
• Boundary clock does not support synchronizing clocks across multiple domains.
• Distributing clock frequency recovered from SyncE or from BITS or from a TDM port
over PTP is not supported.
• Ordinary clock master (Grandmaster) mode is not supported.
• Synchronizing system time with the time recovered from PTP event messages is not
supported.
• Time of Day (ToD) output and inputs are not supported.
• Unicast message negotiation on clock ports is not supported.
• PTP cannot be used if network clock source is configured as BITS.
The following limitation also apply to 7520 and 7720 series switches:
• Stacking with PTP is not supported.
• PTP transparent clock is not supported.
• PTP ordinary clock is not supported.
A PTP Transparent clock updates the residence time of the PTP event packets that
transit the switch. The switch supports End-to-End delay mechanism and accounts for
the residence time for Sync and DelayReq packets in the switch.
• To create or delete an End-to-End Transparent clock, use the following command:
create network-clock ptp end-to-end-transparent
delete network-clock ptp end-to-end-transparent
• To add PTP capable front-panel ports for End-to-End Transparent clock, use the
following command:
configure network-clock ptp end-to-end-transparent [add | delete] ports port_list {one-
step}
A PTP Boundary or Ordinary clock synchronizes to the master clock through the
reception of the PTP event packets. To reconfigure clocks to a different domain, the
existing configuration must be deleted. The Boundary and Ordinary clocks can be
configured to operate on a single PTP domain.
• To create or delete the Boundary or Ordinary clock, use the following commands:
create network-clock ptp [boundary | ordinary] {domain domain_number}
delete network-clock ptp [boundary | ordinary]
• Enable or disable the Boundary or Ordinary clock, use the following commands:
enable network-clock ptp [boundary | ordinary]
disable network-clock ptp [boundary | ordinary]
Note
After you enable a boundary clock, you cannot create an ordinary clock.
However, you can delete the boundary clock instance and create a new one
in order to change the domain number.
To create an ordinary clock instance in the switch that has the boundary clock
instance enabled, delete the boundary clock instance, save the configuration and
reboot the switch. After the reboot, you can create and enable the ordinary clock
instance. Similarly, to create and enable a boundary clock in a switch that has an
ordinary clock enabled, delete the ordinary clock instance, save the configuration
and reboot the switch. After the reboot you can create and enable a boundary clock.
The following message is displayed when you create the boundary clock instance in
a device with no prior clock instances:
Warning: The ordinary clock cannot be created after enabling the boundary clock. A
delete followed by save and reboot are required to create the ordinary clock.
After you enable a boundary clock instance, if you delete the instance and try to
create an ordinary clock instance, the above message is displayed as an error, and
the ordinary clock instance is not created.
• To configure priority1 and priority2 values of the Boundary and Ordinary clock, use
the following commands:
configure network-clock ptp [boundary | ordinary] priority1 priority
configure network-clock ptp [boundary | ordinary] priority2 priority
• To display the datasets such as Port, Time-properties and Parent of the Ordinary or
Boundary clock, use the following commands:
show network-clock ptp ordinary {parent | port | time-property}
show network-clock ptp boundary {parent | port | time-property}
The Boundary and Ordinary clocks operate in 1-step protocol mode. An Ordinary clock
can have at most one clock port in slave mode. A Boundary clock can have multiple
clock ports in master or slave modes. Multiple unicast master or slave entries can be
added to the clock ports.
• Add or remove a slave clock port to an Ordinary clock.
configure network-clock ptp ordinary add {vlan} vlan_name {one-step}
slave-only
configure network-clock ptp ordinary delete {vlan} {vlan_name}
• Add or remove a clock port to the Boundary clock.
configure network-clock ptp boundary add {vlan} vlan_name {one-step}
{master-only | slave-only}
configure network-clock ptp boundary delete {vlan} vlan_name
• Enable or disable a clock port in the Boundary or Ordinary clock.
enable network-clock ptp [boundary | ordinary] {{vlan} vlan_name}
disable network-clock ptp [boundary | ordinary] {{vlan} vlan_name}
Note
Note: A minimum two L3 VLANs (with VLAN port configured) must be
configured as Boundary clock ports. Loopback VLAN interface can't be
configured as a Boundary clock instance.
For Ordinary clocks, only unicast master entries can be added on the slave port.
The query interval for unicast announce messages from the slave port is specified in
log base 2.
• Add or remove the unicast master entries on a slave port of the Ordinary clock.
configure network-clock ptp ordinary add unicast-master ipv4_address
{query-interval seconds_log_base_2} {vlan} vlan_name
configure network-clock ptp ordinary delete unicast-master
ipv4_address {vlan} vlan_name
The unicast master entries can be added to the slave port of the Boundary clock. The
Boundary clock also support addition of unicast master entries on the port of type
'master or slave'.
• Add or remove unicast master entries on the port of the Boundary clock.
configure network-clock ptp boundary add unicast-master ipv4_address
{query-interval vlan_name} {vlan} vlan_name
configure network-clock ptp boundary delete unicast-master
ipv4_address {vlan} vlan_name
• Display the unicast-master entries added to the Boundary or Ordinary clock port.
show network-clock ptp boundary unicast-master [{vlan} vlan_name |
vlan all]
show network-clock ptp ordinary unicast-master [{vlan} vlan_name |
vlan all]
• Display the PTP message counters for the peers added to Boundary or Ordinary
clock port.
show network-clock ptp boundary vlan [vlan_name {{ipv4_address}
[unicast-master]} | all] counters
show network-clock ptp ordinary vlan [vlan_name {{ipv4_address}
[unicast-master]} | all] counters
• Clear the PTP message counters for the peers added to Boundary or Ordinary clock
port.
clear network-clock ptp boundary vlan [vlan_name {ipv4_address
[unicast-master]} | all] counters
clear network-clock ptp ordinary vlan [vlan_name {ipv4_address
[unicast-master]} | all] counters
• The following properties can be configured on the clock ports added to the
Boundary and Ordinary clocks:
a. Sync message interval:
configure network-clock ptp [boundary | ordinary] sync-interval
seconds_log_base_2 {vlan} vlan_name
b. DelayReq message interval:
configure network-clock ptp [boundary | ordinary} delay-request-
interval seconds_log_base_2 {vlan} vlan_name
• To configure the PTP clock recovery state (servo state) in the system, use the
following command:
show network-clock ptp
The clock recovery using PTP event messages undergoes the following servo state
changes:
◦ Servo Not Ready - The servo is not yet ready to track the master clock.
◦ Servo Ready to Correct - The is ready to track and requests a clock jump to
immediately correct the estimated offset.
◦ Servo Locked - The servo is tracking the master clock.
GPS
1 4 3
2 2
clocks. The transparent clock node can be configured as L2 or L3. In the configuration
example below, the transparent clock node is configured as L2.
Note
The grandmaster clock should be reachable from the boundary clock and vice
versa. Similarly the ordinary clocks should be reachable from the boundary
clock and vice versa. The configuration example below does not consider the
provisioning methods used to achieve reachability between the switches, and
only limits to the PTP 1588v2 and its associated configuration.
In this example, the transparent clock is configured as an L2 switch to transit the PTP
event stream between boundary and ordinary clocks.
Note
The transparent clocks accumulate the residence times on 1-step event
messages by performing timestamp in ingress PHYs and in egress PHYs. For
proper transparent clock operation, you must ensure in the configuration that
the PTP events stream ingress and egress through physical ports that are PTP
capable.
The ordinary clock node is configured to synchronize with the boundary clock node.
The master clock port’s IP address in the boundary clock node is added as “unicast-
master” in the ordinary clock node.
Note
For PTP event messages originating from ordinary clocks (such as DelayReq),
the ingress timestamp for updating the CorrectionField is done in the switch.
So you must enable the End-to-End Transparent clock on all the egress ports.
Ensure that you do not include the non-PTP capable ports in the configuration
of possible egress ports through which the boundary is reachable.
The boundary clock node is configured to synchronize with the grandmaster node.
Note
For boundary clocks, the End-to-End Transparent clock configuration must be
applied on the egress ports through with the grandmaster and the ordinary/
boundary clocks are reachable.
Note
Loopback IP interface is not added as a PTP clock port. A minimum of two
clock ports must be configured for Boundary clock operation. A maximum of
32 PTP clock ports can be configured in Boundary clock.
Limitations
This feature has the following limitations:
• Support exists only for Extreme Networks certified SFP+ modules.
• It can take 500-1000 ms to stabilize the channel after DWDM channel configuration
is completed, meaning that the port loses its data transmission capability for that
time frame. Links are dropped until the channel is stabilized. However, this is
expected behavior when the physical medium is changed.
• When a tunable dense wavelength division multiplexing (TDWDM) SFP+ module
is inserted, the software configures the default channel or the configured channel
based on the existing configuration, and the link is likely to be dropped during this
process.
Configuring DWDM
• To configure DWDM specific channels on the port(s), use the following command:
configure port all | port_list dwdm channel channel_number
• To configure the DWDM default channel 21 on the port(s), use the following
command:
configure port all | port_list dwdm channel none
Displaying DWDM
• To display DWDM configuration, use the following command
show ports {mgmt | port_list | tag tag} configuration {no-refresh}
show port {mgmt | port_list | tag tag} information {detail}
• To display the channel scheme for mapping the DWDM wavelengths, use the
following command
show dwdm channel-map { channel_first { - channel_last } } {port
port_num}
Jumbo Frames
Jumbo frames are Ethernet frames that are larger than 1522 bytes, including four bytes
used for the cyclic redundancy check (CRC).
Extreme products support switching and routing of jumbo frames at wire-speed on all
ports. The configuration for jumbo frames is saved across reboots of the switch.
Jumbo frames are used between endstations that support larger frame sizes for more
efficient transfers of bulk data. Both endstations involved in the transfer must be
capable of supporting jumbo frames. The switch only performs IP fragmentation, or
participates in maximum transmission unit (MTU) negotiation on behalf of devices that
support jumbo frames.
To enable jumbo frame support, enable jumbo frames on the desired ports:
• To set the maximum jumbo frame size, use the following command:
configure jumbo-frame-size framesize
The jumbo frame size range is 1,523 to 9,216. This value describes the maximum size
of the frame in transit (on the wire), and includes 4 bytes of CRC.
Note
For Tagged Packets, the maximum frame size supported is 9,220 bytes,
which includes 4 bytes of cyclic redundancy check (CRC), plus another 4
bytes.
• To set the MTU size for the VLAN, use the following command:
configure ip-mtu mtu vlan vlan_name
• Next, enable support on the physical ports that will carry jumbo frames using the
following command:
enable jumbo-frame ports [all | port_list]
You can enable or disable jumbo frames for individual ports before configuring the
VMANs.
The path MTU discovery process ends when one of the following is true:
• The source host sets the path MTU low enough that its datagrams can be delivered
without fragmentation.
• The source host does not set the DF bit in the datagram headers.
If it is willing to have datagrams fragmented, a source host can choose not to set the
DF bit in datagram headers. Normally, the host continues to set DF in all datagrams, so
that if the route changes and the new path MTU is lower, the host can perform path
MTU discovery again.
This feature is designed to be used in conjunction with jumbo frames. Frames that are
fragmented are not processed at wire-speed within the switch fabric.
Note
Jumbo frame-to-jumbo frame fragmentation is not supported. Only jumbo
frame-to-normal frame fragmentation is supported.
Note
To set the MTU size greater than 1500, all ports in the VLAN must have
jumbo frames enabled.
Load sharing, link aggregation, and trunking are terms that have been used
interchangeably in Extreme Networks documentation to refer to the same feature,
which allows multiple physical ports to be aggregated into one logical port, or
LAG (Link Aggregation Group). Refer to IEEE 802.1AX for more information on this
feature. The advantages to link aggregation include an increase in bandwidth and link
redundancy.
Note
All ports in a LAG must be running at the same speed and duplex setting. Each
port can belong to only one LAG.
For example, VLANs see the LAG as a single logical port. And, although you can only
reference the master port of a LAG to a STPD (Spanning Tree Domain), all the ports of
the LAG actually belong to the specified STPD.
If a port in a load-sharing group (or LAG) fails, traffic is redistributed to the remaining
ports in the LAG. If the failed port becomes active again, traffic is redistributed to
include that port.
Note
Load sharing must be enabled on both ends of the link, or a network loop may
result.
In both situations, the aggregation of separate physical links into a single logical link
multiplies total link bandwidth in addition to providing resiliency against individual link
failures.
The software supports control protocols across the LAGs, both static and dynamic. If
you add the protocols (for example, EAPS, ESRP (Extreme Standby Router Protocol),
and so forth) to the port and then create a LAG on that port, you may experience a
slight interruption in the protocol operation. To seamlessly add or delete bandwidth
when running control protocols, we recommend that you create a LAG consisting of
only one port. Then add your protocols to that port and add other ports as needed.
Limitations
The distribution modes affect only the distribution of known unicast packets on a LAG.
Non-unicast packets are distributed among all active members of a LAG.
Note
The platform-related load sharing algorithms apply to LACP (as well as static
load sharing).
Load-Sharing Algorithms
Load-sharing, or link aggregation, algorithms select an egress link for each packet
forwarded to egress the LAG.
The ExtremeXOS software supports the following types of load sharing algorithms:
• Address based—The egress link is chosen based on packet contents (see Address-
Based Load Sharing on page 255).
• Port-based—The egress link is chosen based on the key assigned to the ingress port
(see Port-Based Load Sharing on page 257).
configure an algorithm. Algorithm selection is not intended for use in predictive traffic
engineering.
Note
Always reference the master logical port of the load-sharing group when
configuring or viewing VLANs. VLANs configured to use other ports in the LAG
will have those ports deleted from the VLAN when link aggregation is enabled.
The following are the types of traffic to which addressed-based algorithms apply and
the traffic components used to select egress links:
• IPv4 and IPv6 packets—Load sharing is based on the configured options supported
on each platform:
◦ L2 algorithm—Layer 2 source and destination MAC addresses. Available on
SummitStack and all ExtremeSwitching series switches.
◦ L3 algorithm—Layer 3 source and destination IP addresses. Available on
ExtremeSwitching series switches and SummitStack.
◦ L3_L4 algorithm—Layer 3 and Layer 4, the combined source and destination IP
addresses and source and destination TCP and UDP port numbers. Available on
ExtremeSwitching series switches.
• Non-IP traffic—The source and destination MAC addresses.
Standard Algorithms
The following are the types of traffic to which standard addressed-based algorithms
apply and the traffic components used to select egress links:
• Layer 2 frames, Unknown unicast packet and non-IP traffic—The source and
destination MAC addresses.
• IPv4 and IPv6 packets—Load sharing is based on the configured options supported
on each platform:
◦ L2 algorithm—Layer 2 source and destination MAC addresses.
◦ L3 algorithm—Layer 3 source and destination IP addresses.
◦ L3_L4 algorithm—Layer 3 and Layer 4, the combined source and destination IP
addresses and source and destination TCP and UDP port numbers.
• MPLS (Multiprotocol Label Switching) packets—The source and destination MAC
addresses.
Custom Algorithms
The following are the types of traffic to which custom addressed-based algorithms
apply and the traffic components used to select egress links:
• Non-IP Layer 2—Uses the VLAN ID, the source and destination MAC addresses, and
the ethertype.
• IPv4 packets—Uses IP address information from an IP header, or for tunneled
packets, the custom algorithm always uses the inner header of an IP-in-IP or GRE
tunnel packet. The configuration options are:
◦ The source and destination IPv4 addresses and Layer 4 port numbers (default)
◦ The source IP address only,
◦ The destination IP address only
◦ The source and destination IP addresses
• IPv6 packets—Uses the source and destination IPv6 addresses and Layer 4 port
numbers.
• MPLS packets—Uses the top, second, and reserved labels and the source and
destination IP addresses.
Note
In a switch having at least one LAG group with custom algorithm, the egress
port for unknown unicast packets across all LAG groups in switch will be
decided based on Layer 3 source and destination IP address.
The following command allows you to enable load sharing and select either a standard
algorithm or specify that you want to use a custom algorithm:
If you choose the custom option when you enable load sharing, you can use the
following command to select a custom load sharing algorithm:
To change the algorithm for a previously created LAG, use the command:
Note
Use of the ACL (Access Control List) redirect-port-no-sharing port action
overrides any load-sharing algorithm hash that is generated based on the
lookup results. For more information about this action, see LAG Port Selection
on page 843.
Another strategy for preventing hash polarization is to configure different hash seed
values that are used by the CRC versions of the custom algorithms on the LAG
switches. With different hash seeds used on neighboring switches, hash polarization
can be prevented while maintaining otherwise identical distribution algorithms.
By using the switch-mac-address option for the hash seed value, identical load
sharing algorithms may be used on all of the LAGs in the network while automatically
preventing hash polarization.
Prior to supporting configuring the hash seed (ExtremeXOS 30.1), the default value of
the hash seed was 0x7F2193EA. You can restore the legacy default behavior for the hash
seed by explicitly configuring this legacy value.
Note
This feature is supported on all ExtremeSwitching Universal platforms.
The resulting behavior is that ports with a key value of 0 distribute to the lowest
numbered port in an aggregator, ports with a key value of 1 distribute to the second
lowest numbered port in an aggregator, etc.
Example
A port-based load sharing group contains aggregator ports 2,4,6 and 8. If the zero-
based load sharing key 7 is assigned to port 1, then traffic received on port 1 and
forwarded to the group will be transmitted on port 8 according to the following
calculation:
When considering the selection of a LAG algorithm, even distribution over member
ports is usually the goal. Full utilization of the LAG’s bandwidth requires even
distribution. In the absence of even distribution, a single member port may become
oversubscribed while other member ports are undersubscribed resulting in traffic loss
when the LAG, viewed as an aggregate of member ports, is undersubscribed. LAGs
distribute best when the diversity of flows destined for the LAG is large relative to the
number of ports in the aggregator. For example, when many thousands of L2 flows are
destined to a LAG using the “L2” algorithm, distribution on the LAG is typically good
(even). Since the number of ports which will switch to a LAG is unlikely to be much
larger (orders of magnitude) than the number of ports in the aggregator, extra care
may be required from a network administrator when configuring and/or provisioning a
switch using port-based LAGs.
The distribution modes below affect only the distribution of known unicast packets on
a LAG. Non-unicast packets are distributed among all active members of a LAG.
The “local-slot” distribution mode restricts distribution of unicast packets to the active
LAG members on the same slot where the packet was received. If no active LAG
members are present on the slot where the packet was received, all active LAG
member ports are included in the distribution algorithm.
The “local-slot” distribution mode may be specified during LAG creation with the
configure sharing port slot slot distribution-list [port_list | add
port_list | all] CLI command. It may also be configured dynamically with the
“configure sharing” command. This distribution mode is self-configuring in the sense
that no configuration is required other than the specification of the “local-slot”
distribution mode. Addition or deletion of LAG member ports via the configure
sharing port slot slot distribution-list [port_list | add port_list |
all] command is automatically handled.
The “local-slot” distribution mode is useful for reducing the fabric bandwidth load of a
switch.
The “port-lists” distribution mode provides the ability to configure one or more LAG
member ports to be eligible for unicast LAG distribution on each slot in the switch.
If a slot does not have a distribution port list configured or if none of the configured
member ports is active in the LAG, then all active member ports are eligible for unicast
distribution.
The “port-lists” distribution mode may be specified during LAG creation with the
configure sharing port slot slot distribution-list [port_list | add
port_list | all] CLI command. It may also be configured dynamically with the
configure sharing port slot slot distribution-list [port_list | add
port_list | all]command. The use of the “port-lists” distribution mode should be
taken into consideration when adding ports to a LAG with the “configure sharing” CLI
command. Any newly added port on a LAG will not be available for unicast distribution
unless it is also added to the distribution port list of at least one slot.
LACP
You can run the Link Aggregation Control Protocol (LACP) on Extreme Networks
devices. LACP enables dynamic load sharing and hot standby for link aggregation links,
in accordance with the IEEE 802.3ad standard. All third-party devices supporting LACP
run with Extreme Networks devices.
The addition of LACP provides the following enhancements to static load sharing, or
link aggregation:
• Automatic configuration
• Rapid configuration and reconfiguration
• Deterministic behavior
• Low risk of duplication or misordering
After you enable load-sharing, the LACP protocol is enabled by default. You configure
dynamic link aggregation by first assigning a primary, or logical, port to the group, or
LAG and then specifying the other ports you want in the LAG.
LACP, using an automatically generated key, determines which links can aggregate.
Each link can belong to only one LAG. LACP determines which links are available.
The communicating systems negotiate priority for controlling the actions of the entire
trunk (LAG), using LACP, based on the lowest system MAC number. You can override
this automatic prioritization by configuring the system priority for each LAG.
After you enable and configure LACP, the system sends PDUs (LACPDUs) on the LAG
ports. The LACPDUs inform the remote system of the identity of the sending system,
the automatically generated key of the link, and the desired aggregation capabilities
of the link. If a key from a particular system on a given link matches a key from
that system on another link, those links are aggregatable. After the remote system
exchanges LACPDUs with the LAG, the system determines the status of the ports and
whether to send traffic on which ports.
Among those ports deemed aggregatable by LACP, the system uses those ports with
the lowest port number as active ports; the remaining ports aggregatable to that LAG
are put into standby status. Should an active link fail, the standby ports become active,
also according to the lowest port number. (See Configuring LACP on page 268 for the
number of active and standby LACP links supported per platform.)
All ports configured in a LAG begin in an unselected state. Based on the LACPDUs
exchanged with the remote link, those ports that have a matching key are moved
into a selected state. If there is no matching key, the ports in the LAG remain in the
unselected state.
However,if more ports in the LAG are selected than the aggregator can handle because
of the system hardware, those ports that fall out of the hardware’s capability are moved
into standby state. The lowest numbered ports are the first to be automatically added
to the aggregator; the rest go to standby. As the name implies, these ports are available
to join the aggregator if one of the selected ports should go offline.
You can configure the port priority to ensure the order that ports join the aggregator.
However, that port must first be added to the LAG before you can configure the LACP
settings. Again, if more than one port is configured with the same priority, the lowest-
numbered port joins the aggregator first.
After the ports in the LAG move into the selected state, LACP uses the mux portion
of the protocol to determine which ports join the aggregator and can collect and
distribute traffic. A few seconds after a port is selected, it moves into the mux state of
waiting, and then into the mux state of attached. The attached ports then send their
own LACP sync messages announcing that they are ready to receive traffic.
The protocol keeps sending and receiving LACPDUs until both sides of the link have
echoed back each other’s information; the ends of the link are then considered
synchronized. After the sync messages match up on each end, that port is moved into
the aggregator (into the mux state of collecting-distributing) and is able to collect and
distribute traffic.
The protocol then enables the aggregated link for traffic and monitors the status of the
links for changes that may require reconfiguration. For example, if one of the links in
a LAG goes down and there are standby links in that LAG, LACP automatically moves
the standby port into selected mode and that port begins collecting and distributing
traffic.
The marker protocol portion of LACP ensures that all traffic on a link has been received
in the order in which it was sent and is used when links must be dynamically moved
between aggregation groups. The Extreme Networks LACP implementation responds
to marker frames but does not initiate these frames.
Note
Always verify the LACP configuration by issuing the show ports sharing
command; look for the ports specified as being in the aggregator. You can
also display the aggregator count by issuing the show lacp lag command.
You can configure additional parameters for the LACP protocol and the system sends
certain SNMP traps in conjunction with LACP. The system sends a trap when a member
port is added to or deleted from an aggregator.
The system now detects and blocks loopbacks; that is, the system does not allow a pair
of ports that are in the same LAG but are connected to one another by the same link
to select the same aggregator. If a loopback condition exists between two ports, they
cannot aggregate. Ports with the same MAC address and the same admin key cannot
aggregate; ports with the same MAC address and a different admin key can belong to
the same LAG.
The system sends an error message if a LAG port is configured and up but still not
attached to the aggregator or in operation within 60 seconds. Use the show lacp
member-port port detail command to display the churn on both sides of the link.
If the churn value is shown as True in the display, check your LACP configuration.
The issue may be either on your end or on the partner link, but you should check
your configuration. The display shows as True until the aggregator forms, and then it
changes to False.
A LAG port moves to expired and then to the defaulted state when it fails to receive
an LACPDU from its partner for a specified time. You can configure this timeout value
as long, which is 90 seconds, or short, which is three seconds; the default is long.
(In ExtremeXOS 11.3, the timeout value is not configurable and is set as long, or 90
seconds.) Use the show lacp lag group-id detail command to display the timeout
value for the LAG.
There are two LACP activity modes: active and passive. In LACP active mode, the switch
periodically sends LACPDUs; in passive mode, the switch sends LACPDUs only when it
receives one from the other end of the link. The default is active mode. (In ExtremeXOS
11.3, the mode is not configurable; it is always active mode.) Use the show lacp lag
group-id detail command to display the LACP mode for the LAG.
Note
One side of the link must be in active mode in order to pass traffic. If you
configure your side in the passive mode, ensure that the partner link is in LACP
active mode.
A LAG port moves into a defaulted state after the timeout value expires with no
LACPDUs received for the other side of the link. You can configure whether you
want this defaulted LAG port removed from the aggregator or added back into the
aggregator. If you configure the LAG to remove ports that move into the default state,
those ports are removed from the aggregator and the port state is set to Unselected.
The default configuration for defaulted ports is to be removed, or deleted, from the
aggregator. (In ExtremeXOS version 11.3, defaulted ports in the LAG are always removed
from the aggregator; this is not configurable.)
Note
To force the LACP trunk to behave like a static sharing trunk, use the
configure sharing port lacp defaulted-state-action [add | delete]
command to add ports to the aggregator.
If you configure the LAG to add the defaulted port into the aggregator, the system
takes inventory of the number of ports currently in the aggregator. If there are fewer
ports in the aggregator than the maximum number allowed, the system adds the
defaulted port to the aggregator (port set to selected and collecting-distributing). If the
aggregator has the maximum ports, the system adds the defaulted port to the standby
list (port set to standby). Use the show lacp lag group-id {detail} command to
display the defaulted action set for the LAG.
Note
If the defaulted port is assigned to standby, that port automatically has a lower
priority than any other port in the LAG (including those already in standby).
LACP Fallback
Preboot Execution Environment (PXE) is a client/server environment that allows
workstations to boot from the server before their full operating system is running. PXE
images are too small to take advantage of LACP functionality, and therefore it is up
to the administrator to statically configure the switch for correct connectivity. This also
means that after the full operating is fully running the switch needs to be reconfigured
back for LACP. The LACP fallback feature introduced in ExtremeXOS 21.1 allows for this
process to be automated.
LAG
The selected port stays in fallback mode until fallback is disabled or until LACP PDUs
start being received on any of the member ports, at which point the old aggregator
is removed and a new one is selected based on information propagated in the LACP
PDUs. The new fallback port may also be reelected if the existing fallback port changes
state; such as port priority change, link bounce, or port enable/disable.
Note
In an environment, fallback port selection occurs only on the LACP master
switch.
Both static and LACP LAGs are supported. In the case of static LAG, we check if
the number of active physical member port links is greater than or equal to the
user-configured minimum link value. If so, the LAG remains up. If the number of
active physical member port links falls below the configured minimum link value, the
static LAG is brought DOWN and all applications receive a Link-Down message for
this LAG. As soon as the number of Active physical member ports equals or exceed
the configured minimum link value, the static LAG is brought UP and all applications
receive a Link-Up message for this LAG.
In the case of LACP, we keep track of the how many member ports LACP has requested
to be added to the LAG. After successfully negotiating with its peer, LACP will send
a request to add a member port to the LAG. When the number of member ports
LACP has requested to be added to the LAG drops below the configured minimum link
value, the LACP LAG will be brought down and all applications will receive a Link-Down
message for this LAG. As soon LACP has added enough member ports such that the
total member ports equals or exceed the configured minimum link value, the LAG is
brought up and all applications receive a Link-Up message for this LAG.
Both static and LACP LAGs can be used with on either the ISC or the MLAG ports. We
will verify that the minimum links feature behaves properly for static and LACP LAGs
used by MLAG.
Note
For static LAGs, ensure that both ends of the LAG use the same value for
minimum links. If the minimum links value differs, one side may see the LAG as
down, where the other side may see the LAG as up.
When connectivity to the TCP/IP address and TCP port fails, the member link is
removed from the link aggregation group.
and TCP port, the connection is considered up. The TCP connection will retry based on
the configured frequency and miss settings.
A typical use case for this application is when a user wishes to connect each member
link to a Security Server to validate traffic. Each member link of the Health Check LAG
is connected to an individual Security Server. The LAG is added to a VLAN on the same
subnet as the Security Server IP addresses they wish to monitor. Each member port
is configured to monitor a particular IP address and TCP port. The Health Check LAG
application attempts to do a TCP connect to each IP/TCP port through each member
port. The Health Check LAG, by virtue of the sharing algorithm, will load balance
traffic across the member links. If a TCP connection cannot be established through
the member link, the port is removed from the aggregator and traffic through that
particular link is redistributed to the other LAG member links.
• A Health Check LAG can contain the same number of ports as a static LAG.
• You can configure only the address-based load-sharing algorithm as described in
the following sections:
◦ Address-Based Load Sharing on page 255
◦ Link Aggregation Standard and Custom Algorithms on page 255
• The maximum number of LAGs for ExtremeSwitching series switches is 128.
Note
See Configuring LACP on page 268 for the maximum number of links, selected
and standby, per LACP.
The following rules apply to load sharing for all Universal platforms:
• A static LAG can contain up to 32 ports when configured to use the L2,L3,L3_L4 or
custom algorithm.
• For all the algorithms, LACP LAG can contain up to 64 ports per LAG, which includes
up to 32 selected links and 32 standby links.
• A SummitStack consisting entirely of 5520 or 5720 switches can contain up to 64
ports for all algorithms. All platforms have the same stacking limits.
• A SummitStack consisting entirely of 5320 or 5420 switches can contain up to
8 ports for all algorithms. A stack consisting of only 4120 switches or only 4220
switches also can contain up to 8 ports for all algorithms.
Note
See Guidelines for Load Sharing on page 265 for specific information on load
sharing for each specific device.
The first port in the load-sharing group is configured to be the master logical port. This
is the reference port used in configuration commands and serves as the LAG group ID.
It can be thought of as the logical port representing the entire port group.
All the ports in a load-sharing group must have the same exact configuration, including
autonegotiation, duplex setting, ESRP host attach or don’t-count, and so on. All the
ports in a load-sharing group must also be of the same bandwidth class.
Note
All ports that are designated for the LAG must be removed from all VLANs
prior to configuring the LAG.
Note
When aggregator membership changes on a LAG, both redistribution of flows,
as well as some traffic loss, may be expected.
• To add or delete ports from a load-sharing group, use the following commands:
configure sharing port add ports port_list
configure sharing port delete ports port_list
Note
See Configuring LACP on page 268 for the maximum number of links,
selected and standby, per LACP.
On SummitStack:
enable sharing port grouping port_list {algorithm [address-based {L2 |
L3 | L3_L4 | custom} | }]} {lacp | health-check}
On all platforms:
Configuring LACP
To configure LACP, you must, again, first create a LAG. The first port in the LAG serves as
the logical port for the LAG. This is the reference port used in configuration commands.
It can be thought of as the logical port representing the entire port group, and it serves
as the LAG Group ID.
The port you assign using the first parameter becomes the logical port for the link
aggregation group and the LAG Group ID when using LACP. This logical port must
also be included in the port list of the grouping itself.
2. If you want to override the default prioritization in LACP for a specified LAG, use:
configure sharing port lacp system-priority priority
This step is optional; LACP handles prioritization using system MAC addresses.
3. Add or delete ports to the LAG as desired using:
configure sharing port add ports port_list
4. Override the ports selection for joining the LAG by configuring a priority for a port
within a LAG by using the command:
configure lacp member-port port priority port_priority
5. Change the expiry timer using:
configure sharing port lacp timeout [long | short]
The default value for defaulted LAG ports is delete the default ports.
Note
Always verify the LACP configuration by issuing the show ports sharing
command; look for the ports listed as being in the aggregator.
When you create the LAG, no monitoring is initially configured. The LAG is created in
the same way that a static LAG is created and if no monitoring is ever created, this LAG
behaves like a static LAG.
The port you assign using the port parameter becomes the logical port for the
link aggregation group and the LAG Group ID when using Health Check link
aggregation. This logical port must also be included in the port list of the grouping
itself.
2. Configure monitoring for each member port using:
configure sharing health-check member-port port add tcp-tracking IP
Address {tcp-port TC Port frequency sec misses count}
If the TCP-port, frequency, or misses are not specified, the defaults described in the
Switch Engine Command References are used.
3. Add the LAG to a VLAN whose subnet is the same as the configured tracking IP
addresses.
configure vlan vlan add port lag port [tagged | untagged]
All of the tracking IP addresses must be in the same subnet in which the LAG
belongs.
Note
VLANs to which Health Check LAG ports are to be added must be
configured in loopback mode. This is to prevent the VLAN interface from
going down if all ports are removed from the Health Check LAG. In a
normal LAG when all ports are removed from the aggregator, the trunk is
considered DOWN. As a consequence, if this were the only port in the VLAN,
the VLAN interface would be brought DOWN as well. In the Health Check
LAG situation, this would cause the TCP monitoring to fail because the L3
vlan interface used by TCP monitoring would no longer send or receive TCP
data.
Load-Sharing Examples
This section provides examples of how to define load sharing, or link aggregation, on
stand-alone switches, as well has defining dynamic link aggregation.
When using load sharing, you should always reference the master logical port of the
load-sharing group (port 9 in the previous example) when configuring or viewing
VLANs; the logical port serves as the LAG Group ID. VLANs configured to use other
ports in the load-sharing group will have those ports deleted from the VLAN when load
sharing becomes enabled.
In this example, logical port 5:7 represents physical ports 3:9 through 3:12 and 5:7
through 5:10.
When using load sharing, you should always reference the LAG Group ID of the load-
sharing group (port 5:7 in the previous example) when configuring or viewing VLANs.
VLANs configured to use other ports in the load-sharing group will have those ports
deleted from the VLAN when load sharing becomes enabled.
In this example, logical port 3:9 represents physical ports 3:9 through 3:12.
LACP Example
The following configuration example:
• Creates a dynamic LAG with the logical port (LAG Group ID) of 10 that contains ports
10 through 12.
• Sets the system priority for that LAG to 3.
MLAG
MLAG Overview
The feature allows you to combine ports on two switches to form a single logical
connection to another network device. The other network device can be either a server
or a switch that is separately configured with a regular LAG (or appropriate server port
teaming) to form the port aggregation.
comprised of a single link or a LAG on each switch. When an MLAG port is a LAG, the
MLAG port state remains up until all ports in the LAG go down.
As long as at least one port in the LAG remains active, the MLAG port state remains
active. When an MLAG port (a single port or all ports in a LAG) fails, any associated MAC
FDB (forwarding database) entries are moved to the ISC, forcing traffic destined to the
MLAG to be handled by the MLAG peer switch. Additionally, the MLAG peer switch is
notified of the failure and changes its ISC blocking filter to allow transmission to the
MLAG peer port. In order to reduce failure convergence time, you can configure MLAG
to use ACLs for redirecting traffic via the "fast" convergence-control option.
Each of the two switches maintains the MLAG state for each of the MLAG ports and
communicates with each other to learn the MLAG states, MAC FDB entries, and IP
multicast entries of the peer MLAG switch.
When at least one peer port is active, the upper layer software initiates a block of traffic
that ingresses the ISC port and needs to be forwarded to the local MLAG ports. This
is considered to be the steady state condition. In normal steady state operation most
network traffic does not traverse the ISC. All unicast packets destined to MLAG ports are
sent to the local MLAG port only. However, flood and multicast traffic will traverse the
ISC but will be dropped from MLAG peer port transmission by the ISC blocking filter
mechanism. The ISC blocking filter matches all Layer 2 traffic received on the ISC and
blocks transmission to all MLAG ports that have MLAG peer ports in the active state.
When there are no active MLAG peer ports, the upper layer software initiates an
unblocking of traffic that ingresses the ISC port and needs to be forwarded to the local
MLAG ports thus providing redundancy. This is considered to be the failed state.
Linkup Isolation
Under certain circumstances, a temporary (less than a second) loop condition exists
when an MLAG port becomes operational, but before the remote peer installs the
ISC blocking filter (see ISC Blocking Filters on page 273). MLAG linkup isolation
addresses this condition by preventing any flood traffic (broadcast, unknown, unicast,
etc.) received on a just operational MLAG port from being forwarded to ISC ports until
the remote MLAG peer installs the ISC blocking filter.
Inter-Switch Communication
Keep-alive Protocol
peers monitor the health of the ISC using a keep-alive protocol that periodically sends
health-check messages. The frequency of these health-check hellos is configurable.
When the MLAG switch stops receiving health check messages from the peer, it could
be because of the following reasons:
• Failure of the ISC link when the remote peer is still active.
• The remote peer went down.
If the ISC link alone goes down when the remote peer is alive, both the MLAG peers
forward the south-bound traffic, resulting in duplication of traffic. However, this does
not result in traffic loops. This is because the remote node load shares to both the
MLAG peers and does not forward the traffic received on one of the load shared
member ports to other member ports of the same load shared group.
When the MLAG switch misses 3 consecutive health check messages from the peer, it
declares that the MLAG peer is not reachable on the ISC link. It then starts sending out
health check messages on the alternate path to check if the peer is alive. When the first
health check message is received from the MLAG peer on the alternate path, it means
that the peer is alive. In this scenario, one of the MLAG peers disables its MLAG ports to
prevent duplication of south-bound traffic to the remote node.
Note
The MLAG switch having the lower IP address for the alternate path VLAN
disables its ports.
When the ISC link comes up and the switch starts receiving health check messages on
the ISC control VLAN, the ports that were disabled earlier have to be re-enabled. This
action is not performed immediately on the receipt of the first health check message
on the ISC control VLAN. Instead the switch waits for 2 seconds before enabling the
previously disabled ports. This is done to prevent frequent enabling and disabling of
MLAG ports due to a faulty ISC link up event.
Each switch sends its MLAG peer information about the configuration and status of
MLAGs that are currently configured over the ISC link.
The checkpoint messages exchanged between the MLAG peers over the TCP
connection are sent in plain text and can be subjected to spoofing. Starting from
ExtremeXOS 15.5 a provision is provided as part of this feature to secure the checkpoint
connection against spoofing.
A key for authentication must be configured on both the MLAG peer switches. This
key will be used in calculating the authentication digest for the TCP messages.
TCP_MD5SIG socket option will be used for authentication and so only MD5 (Message-
Digest algorithm 5) authentication is supported. The configured key will be used in
setting up TCP_MD5SIG option on the checkpoint socket. The same key must be
configured on both the MLAG peers. The checkpoint connection will not be established
if different keys are configured on the MLAG peer switches.
Note
PIM MLAG is supported only on default VR and is not supported on user-
created VRs.
• The checkpoint PIM state between MLAG peers. This should include all MLAG
egresses.
• You can verify that PIM functionality for MLAG is present by issuing the following
show command:
show pim cache {{detail} | {state-refresh} {mlag-peer-info}
{group_addr {source_addr}}}
• Additionally, the existing show pim cache command displays ingress VLAN
information for all MLAG peers.
The output of the command is shown below:
Index Dest Group Source InVlan Origin
[0001] 226.1.1.1 112.2.2.202 (S) fifthteen Sparse
Expires after 203 secs UpstNbr: 51.15.15.2
RP: 61.2.2.2 via 51.15.15.2 in fifthteen
Peer Ingress VLAN (ISC 1): 51.15.15.4/24 (Same)
EgressIfList = eight(0)(FW)(SM)(I) , five(0)(FW)(SM)(I)
PrunedIfList = ten(0)(SM)(AL)
Multiple VLAN Registration Protocol (MVRP) over Multi-switch Link Aggregation (MLAG)
This feature adds support for Multiple VLAN Registration Protocol (MVRP) on . The
objective of running Multiple VLAN Registration Protocol (MVRP) over MLAG is to
propagate the VLANs across the MLAG peers and to have the VLAN database synced,
so that the remote switches/servers continue to see a single logical connection.
Checkpointing
PDU Checkpointing
Each incoming MRP PDU on a MLAG port is encapsulated and sent to the MLAG
peer through the ISC connection. On the MLAG peer, the packet is de-capsulated and
processed by the MRP process as if received by the local MLAG port. This ensures that
the local MLAG port on the peer is also added to the VLAN. The MVRP propagation
happens normally in addition to the PDU checkpointing. In Figure 11 on page 276,
Switch 1 and 2 are MLAG peers connected through ISC port (LAG ports 3,4). Switch 3
can send the MVRP PDUs to either Switch 1 or Switch 2 based on which MLAG peer is
up. Assuming the MVRP PDU is sent to Switch 1, port 1 of Switch 1 is added to the VLAN
and the PDU is checkpointed to Switch 2. If checkpointing is not done, port 1 of Switch
2 does not get added to the dynamic VLAN, since the MVRP PDU is not received on
that port.
Bulk Checkpointing
When the MLAG peer comes up for the first time, bulk checkpointing of VLAN
membership of the MLAG ports occurs. The peer that comes up sends a “pull” message
to the active peer. Upon receiving the pull message, MVRP PDU is constructed for each
of the MLAG ports and checkpointed through the ISC connection. Upon receiving the
checkpointed PDU, it is decapsulated and processed as if it were received locally by the
MRP process. This way the MLAG ports of the peer that came up gets added to VLANs.
Bulk checkpointing is also done when MVRP is enabled on the MLAG port.
After entering this orchestration mode, like the existing virtual-router mode, the
configuration prompt changes indicating that commands issued are within this
context:
(orchestration bottom) switch model #
Note
Enabling orchestration mode on both MLAG peers at same time is not
recommended. If orchestration mode is enabled on both MLAG peers and
you execute commands on both switches at same time, the switch may abort
execution of the command.
For information about the orchestration commands, see Configuring MLAGs on page
287.
Note
If you need to have different settings on each MLAG peer (for example,
IP addresses), you need to perform those configuration steps outside of
orchestration mode.
servers MLAGed to the peers that traverse the ISC can be lost during the duration when
the traffic hashes to the MLAG peer while the ISC is still not up.
The MLAG reload delay timer keeps MLAG ports disabled for the configured duration
while the switch configuration is loading. This timer is also useful for cases where
network-facing Layer 3 protocols, like OSPF, are yet to converge on the node that has
just come up. This feature is disabled by default.
Note
A port is an MLAG port only with respect to a particular MLAG peer switch. In
the above example, the “green” port on switch-2 is an MLAG port with respect
to switch-3 on ISC-2. It is not an MLAG port with respect to switch-1 on ISC-1.
Similarly, on switch-2, “blue” and “orange” ports are MLAG ports with respect to
switch-1 on ISC-1. They are not MLAG ports with respect to switch-3 on ISC-2.
Traffic Flows
In the steady state when all the ports are enabled, the blocking rule prevents traffic
coming from the ISC port to be forwarded to its MLAG ports. So, in steady state, any
unknown (unknown unicast/broadcast/multicast) traffic from Switch-1 to Switch-2 over
ISC-1 will not be flooded to “blue” and “orange” MLAG ports on switch-2. However, since
the “green” MLAG port on switch-2 does not correspond to ISC-1, the traffic from ISC-1
will be forwarded to “green” MLAG port as shown in the following illustration:
FDB Checkpointing
All FDB entries on VLANs having ISC port as a member will be checkpointed to the
peer switch(es). FDB entries learned on an MLAG port will be checkpointed to the
corresponding MLAG port on the peer switch. FDB entries on the non-MLAG, non-ISC
port will be checkpointed to the corresponding ISC port on the peer switch.
Layer-2 IP Multicast
The receiver Rx1 sends an IGMP (Internet Group Management Protocol) report towards
Server 1. Since server 1 is connected to both Switch 1 and Switch 2 through a LAG, let
us assume that it selects a port towards Switch 2 to forward the report. This results
in Switch 2 receiving a report on port P2. It adds the port to the group table. Switch
2 sends a checkpoint message to Switch 1 since Switch 1 is the peer for MLAG-1. But
Switch 2 doesn’t checkpoint the report to Switch 3 since Switch 3 is not an MLAG peer
for MLAG-1. However, Switch 2 forwards the report towards Switch 3 over ISC. Switch
3 would learn this on ISC port. The group information tables on each of the switches
appears below.
Figure 18 depicts a scenario where a multicast stream STR1 ingressing Switch 1 will
reach Rx1 and Rx2 directly via P2 and P3 respectively. Similarly traffic ingressing Switch
2 will reach Rx3 through P4 directly.
Figure 19 figure depicts a traffic flow scenario when the local MLAG port is down. When
the local MLAG port is down, IGMP group information received from the peer MLAG
router will result in ISC being added as egress port. Now traffic stream STR1 ingressing
Switch 1 will go over ISC-1 to Switch 2 where it gets forwarded towards Server 2 over P3.
| |
+----------------DUT-3(edge lic)---------------+
DUT-1 and DUT-2 are MLAG peers, DUT-3 is a L2 switch whose uplink is a LAG up to the
pair of MLAG switches.
• RP and BSR can be configured on same device along with the MLAG configuration,
but we recommend to keep RP node away from MLAG peers. One MLAG peer will be
Designated Router (DR) and another one will be elected as NON-DR for MLAG VLAN.
DR node will send *,G and try to pull the traffic from RP, and Non-DR will not pull
the traffic until DR is alive. If you config RP on Non-DR node then both MLAG peers
will pull the traffic which triggers the assert to avoid the traffic duplication. It is not
supported to setup RP on any VLAN on MLAG peers.
• It is recommended to avoid the assert operation since a small amount of traffic
duplication happens during the assert operation. We can avoid assert in some
scenario but not all the scenarios.
• DR priority configuration will help to make RP node as DR. The DR priority feature is
available from 15.3.2 release onwards.
Note
In the case of ExtremeSwitching standalone switches, it is strongly
recommended that MLAG peer switches be of the same type.
In the case of SummitStack switches, we recommend that the MLAG ports
be from slots of similar capability.
• Layer 2 protocols such as EAPS or STP (Spanning Tree Protocol) will be configured to
not allow the blocking of the ISC.
• The number of MLAG ports for each pair of switches is limited to the number of
physical ports in the system.
• MLAG peers should run the same version of ExtremeXOS for proper functioning.
• ESRP cannot be configured in a MLAG environment with more than one peer.
• The MLAG peers in a multi peer setup cannot be looped however can be extended
as a linear daisy chain.
Note
The behavior of ExtremeXOS 30.1 has changed if locally configured IP
addresses are used to determine network reachability. For details, see the ping
command.
MLAG Requirements
The following table shows additional MLAG requirements that are specific to other
protocols and features.
Items Impact
VLAN:Membership You must add the respective port (or LAG) that is part of an
MLAG to a VLAN on both MLAG peers.
The set of configured VLANs on [Switch1:P1] must be identical to
the set of VLANs configured on [Switch2:P2].
You must add the ISC to every VLAN that has an MLAG link as a
member port.
VMAN:Membership The restrictions are the same as those for VLAN Membership.
VLAN:ISC You must create a Layer 3 VLAN for control communication
between MLAG peers.
You cannot enable IP forwarding on this VLAN.
The ISC is exclusively used for inter-MLAG peer control traffic
and should not be provisioned to carry any user data traffic.
Customer data traffic however can traverse the ISC port using
other user VLANs.
VMAN:ISC Although not recommended, a VMAN may be configured to
carry Inter-MLAG peer traffic,
LAG:Load-Sharing It is recommended but not required that LAGs that form an
Algorithm MLAG be configured to use the same algorithm.
Ports:Flooding To disable flooding on an MLAG, you must disable flooding on
both ports (or LAGs) that form the MLAG.
Ports:Learning To disable learning on an MLAG, you must disable learning on
both ports (or LAGs) that form the MLAG. Learning is disabled by
default on ISC ports.
FDB:Static & Configuration must be identical on both MLAG peers for entries
Blackhole entries that point to an MLAG port.
FDB:Limit learning Learning limits are applicable to member ports of each peer.
The limit on the MLAG is the sum of the configured value on
each peer.
FDB:MAC Lockdown This is supported but needs configuration on both peers. A
switch can still receive checkpointed MAC addresses from its
peer in the window between executing the lockdown command
on both switches.
EAPS MLAG ports cannot be configured to be EAPS ring ports.
Configuration of the ISC port as an EAPS blocked port is
disallowed.
Items Impact
STP You should ensure that the ISC port is never blocked by STP.
You should configure in such a way that one of the MLAG
peers become root bridge and also configure MLAG peers with
backup root option.
Loop protect feature should not be enabled on LAG ports
on access switches. Enabling this feature on MLAG ports is
acceptable.
For more information about STP and MLAG, see STP and MLAG
on page 1381.
VRRP VRRP must be enabled on Layer 3 VLANs that have MLAG
member ports.
ESRP MLAG and ISC ports must be added as ESRP host-attach ports.
EDP/LLDP (Link There are no restrictions but the remote end of the MLAG will
Layer Discovery display different neighbors for different ports in the same LAG.
Protocol)
ELSM ELSM is not to be configured on MLAG ports at either end of an
MLAG.
Software- These are not to be configured on MLAG ports at either end of
Redundant Ports an MLAG.
Mirroring Mirroring on local ports in an MLAG is supported. Mirroring of
MLAG peer ports to a local port is not supported.
Routing Protocols OSPFV2/OSPFV3 neighborship can be formed across an MLAG.
Multicast:IGMP All timers related to IGMP must be identical on both the peers.
Multicast:PIM PIM should be configured on both the MLAG peers, and the PIM
timers must be identical.
MLAG functionality must not be enabled on PIM Intermediate
routers. It should be enabled only on Last Hop (LHR) and First
Hop (FHR) routers.
MLAG peer switches S1 and S2 perform Checkpoint PIM for S
and G states. This should include all MLAG egresses.
To avoid traffic drops due to asserts, do not include ISC port in
MLAG egresses if the ingress VLAN includes ISC port, and both
the peers have the same ingress for the S, G cache.
Multicast:MVR MVR should be enabled on only one of the MLAG peer switches.
MVR must not be enabled on MLAG VLANs.
Multicast:PIM This is not supported.
Snooping
Multicast:IPv6 There are no restrictions.
CFM There are no restrictions.
MPLS:General MPLS cannot be enabled on VLANs having MLAG member
ports.
Items Impact
MPLS:VPLS VPLS must be configured for redundancy using ESRP. The ESRP
master VLAN must include the ISC ports and the VPLS service
VLAN ports as members.
Pseudowires cannot traverse an ISC link. You should not add the
ISC port as a member to MPLS VLANs that can be used by LSPs
that can carry Layer 2 VPN traffic terminating on MLAG peer
switches.
ACLs It is strongly recommended that configuration be identical
across peers on MLAG ports.
QoS It is strongly recommended that configuration be identical
across peers on MLAG ports.
NetLogin Supported. NetLogin should be enabled across the MLAG ports
of both the peers.
VLAN:PVLAN If an MLAG port is a member of either a subscriber VLAN or a
network VLAN, the ISC port needs to be added as a member of
the network VLAN.
Subscriber VLANs in a private VLAN cannot have overlapping
MLAG ports as members. Configuring dedicated loopback ports
for subscriber VLANs in a private VLAN that shares an MLAG port
causes duplicate traffic to be sent to the remote node.
W-MLAG Supported.
Configuring MLAGs
This section provides the commands used to configure MLAGs and display information
about those configured.
• To create an peer switch association structure, use the following command:
create mlag peer peer_name
• To delete a peer switch, use the following command:
delete mlag peer peer_name
• To associate an MLAG peer structure with an MLAG peer switch IP address, use the
following command:
configure mlag peer peer_name ipaddress peer_ip_address {vr VR}
• To unconfigure the association, use the following command:
unconfigure mlag peer peer_name ipaddress
• To configure the time interval between health check hello packets exchanged
between MLAG peer switches, use the following command:
configure mlag peer peer_name interval msec
• To unconfigure the time interval setting and reset the interval to the default of 1000
ms, use the following command:
unconfigure mlag peer peer_name interval
• To bind a local port or LAG to an MLAG specified with an integer identifier, use the
following command:
enable mlag port port peer peer_name id identifier
• To disable a local port or LAG from an MLAG, use the following command:
disable mlag port port
• To enable the current ports associated with the given MLAG ID, use the following
command:
enable ports [mlag-id mlag_id]
• To disable the current ports associated with the given MLAG ID, use the following
command:
disable ports [mlag-id mlag_id]
• To set a preference for having a fast convergence time or conserving access lists, use
the following command:
configure mlag ports convergence-control [conserve-access-lists |
fast]
Note
Executing the refresh policy command with MLAG configuration may
result in health check hellos not reaching the CPU. To avoid MLAG peer
connectivity disruption, you can either execute the disable access-list
refresh blackhole command or temporarily increase the peer hello
interval to a large value (for instance, 10000 ms) and reset it back once
refresh policy is complete.
2. Create the MLAG peer and associate the peer switch's IP address.
Description: By creating an MLAG peer you associate a peer name that can be
associated with the peer switch's IP address and other peer configuration properties.
The peer is then bound to each individual MLAG port group.
Tip
At this point, you could use orchestration mode to allow you to checkpoint
all commands issued on the one switch to its MLAG peer. For more
information about, MLAG orchestration, see Orchestration Mode for
Checkpointing MLAG Port Configuration on page 277.
Description: Creates an MLAG port group by specifying the local switch's port, the
MLAG peer switch, and an "mlag-id" which is used to reference the corresponding
port on the MLAG peer switch. The specified local switch's port can be either a single
port or a load share master port.
Local Remote
MLAG Local Link Remote Peer Fail Fail
Id Port State Link Peer Status Count Count
=========================================================================
1 1:1 A Up rightBD8K Up 0 0
2 1:2 A Up rightBD8K Up 0 0
=========================================================================
Local Link State: A - Active, D - Disabled, R - Ready, NP - Port not present
Remote Link : Up - One or more links are active on the remote switch,
Down - No links are active on the remote switch,
N/A - The peer has not communicated link state for this MLAG port
Number of Multi-switch Link Aggregation Groups : 2
Convergence control : Fast
Figure 21 on page 289, shows a basic MLAG network. Figure 22 shows a network
with back-to-back aggregation. There is one MLAG configured on the BlackDiamond
switches and three configured on the ExtremeSwitching switches.
MLAG-LACP
Beginning in ExtremeXOS 15.3, the ExtremeXOS feature supports Link Aggregation
Control Protocol (LACP) over MLAG ports. To do this, all MLAG peer switches use a
common MAC in the System Identifier portion of the LACPDU transmitted over the
MLAG ports. The following options and requirements are provided:
• The MLAG peer that has the highest IP address for the ISC control VLAN is
considered the MLAG LACP master. The switch MAC of the MLAG LACP master
is used as the System Identifier by all the MLAG peer switches in the LACPDUs
transmitted over the MLAG ports. This is the default option.
• You can configure a common unicast MAC address for use on all the MLAG peer
switches. This MAC address is used as the System Identifier by all the MLAG peer
switches in the LACPDUs transmitted over the MLAG ports. This configuration is
not checkpointed to the MLAG peers, and you must make sure that the same MAC
address is configured on all the MLAG switches. Additionally, you must ensure that
this address does not conflict with the switch MAC of the server node that teams
with the MLAG peer switches.
Note
When LACP shared ports are configured as MLAG ports, a LAG ID change after
MLAG peer reboot may result in MLAG ports being removed and re-added to
the aggregator. To avoid the MLAG port flap, it is recommended to configure a
common LACP MAC in both the MLAG peers using the configure mlag peer
peer_name lacp-mac lacp_mac_address command.
Configuration Guidelines
• LACP configuration for MLAG ports (system priority, LACP timeout, activity mode,
etc.) should be the same on all the MLAG peer switches.
• We recommend that the server node has a lower System Aggregation Priority
than the MLAG peers so that the server node chooses which of the ports can
be aggregated. As an example, there are a maximum of 8 ports that can be
aggregated together, and there are eight links from Peer1 to the Server, and another
eight links from Peer2 to the server node. When the server node has a lower
System Aggregation Priority, it can choose which of the total available links can be
aggregated together.
• If the Port Aggregation Priority is not configured for the load shared member ports,
there is a chance that only the links from server node to one of the MLAG peer are
aggregated together (based on the port numbers). In this instance, the links from
the server node to the other MLAG peer are unused. To avoid this, you can configure
the Port Aggregation Priority on the server node so that the number of active links
to the MLAG peers is balanced.
• You must configure load sharing groups on all the MLAG ports even if they contain
just one port.
• It is recommended to configure static LACP MAC on both MLAG peers to avoid traffic
interruption during failure scenarios.
Configuration on Peer1
create vlan "isc"
configure vlan isc tag 4000
enable sharing 5 grouping 5,10 lacp
configure vlan "isc" add ports 5 tagged
configure vlan "isc" ipaddress 1.1.1.1/8
Configuration on Peer2
create vlan "isc"
configure vlan isc tag 4000
enable sharing 5 grouping 5,10 lacp
configure vlan "isc" add ports 5 tagged
configure vlan "isc" ipaddress 1.1.1.2/8
Mirroring
Mirroring is a function on existing Extreme Networks switches that allows copies of
packets to be replicated to additional ports without affecting the normal switching
functionality. The mirrored data actually occupies fabric bandwidth, so it is very likely
that normal forwarding and mirroring cannot both be done at line rate. In the most
general terms, traffic ingressing and/or egressing an interface is mirrored. For ports,
traffic ingressing and/or egressing a port can be mirrored (refer to the configure
mirror add command). For VLANs and virtual ports, only traffic ingressing these
interfaces are mirroring.
One of the common uses of the mirroring functionality is packet capture; for example
sending copies of all packets that arrive on port P, vlan V, to a monitor port Q.
Previous implementations of mirroring were limited to a single instance, where only
one destination port (or port list) was allowed to be configured in the system. That
implementation was also limited to 128 total sources of this traffic (also referred to as
filters). Only VLAN and VLAN/port “filters” are currently implemented as filters.
instance consists of a unique destination port, or port list, and the source filters
associated with it. Our current implementation allows for 128 per instance.
Note
You can have a maximum of 16 mirroring instances in the switch (including
the default mirroring instance) but only 4 can be active at a time as explained
below:
• Four (4) ingress
• Three (3) ingress and one (1) egress
• Two (2) ingress and two (2) egress
In general, there are four hardware resource slots. Each single instance uses
one slot, while one (ingress + egress) instance uses two slots. So, you can use of
total four slots, but there can be no more then two egress instances.
Note
You can accomplish port mirroring using ACLs, or CLEAR-Flow. See ACLs on
page 779 and CLEAR-Flow on page 1234 for more information.
A virtual port is a combination of a VLAN and a port. The monitor port or ports can then
be connected to a network analyzer for packet analysis. The system uses a traffic filter
that copies a group of traffic to the monitor port(s). You can have only one monitor port
or port list on the switch. This feature allows you to mirror multiple ports or VLANs to
a monitor port, while preserving the ability of a single protocol analyzer to track and
differentiate traffic within a broadcast domain (VLAN) and across broadcast domains
(for example, across VLANs when routing).
Note
The mirroring filter limits discussed later do not apply when you are using ACLs
or CLEAR-Flow.
Up to 128 mirroring filters can be configured across all active mirroring instances.
ExtremeXOS has enhanced mirroring to support IPFIX flows to be mirrored as well. This
is done by using the mirroring capabilities in ExtremeXOS along with IPFIX to provide
additional information about flows to our Application Analytics appliance (previously
known as Purview). As mentioned earlier, ExtremeXOS can collect statistics about
flows that are recognized based on configured flow keys. However ExtremeXOS cannot
inspect packets deeper than the L4 (TCP) level. Mirroring this traffic to the Application
Analytics appliance allows for deep packet inspection beyond L4 when provided a
copy of the packet payload. This enhancement provides the ability to mirror the first 15
packets of any flow to a port where Application Analytics can receive copies for deep
packet inspection. As with mirroring, this allows you to configure multiple mirroring
instances.
Note
You can create an instance where the source is ingress only. When you
add a source, pay attention to the monitor port.
• Two packets are mirrored when a packet encounters both an ingress and egress
mirroring filter.
• The configuration of remote-tag does not require the creation of a VLAN with
the same tag; on these platforms the existence of a VLAN with the same tag
as a configured remote-tag is prevented. This combination is allowed so that an
intermediate remote mirroring switch can configure remote mirroring using the
same remote mirroring tag as other source switches in the network. Make sure that
VLANs meant to carry normal user traffic are not configured with a tag used for
remote mirroring.
When a VLAN is created with remote-tag, that tag is locked and a normal VLAN
cannot have that tag. The tag is unique across the switch. Similarly if you try to
create a remote-tag VLAN where remote-tag already exists in a normal VLAN as a
VLAN tag, you cannot use that tag and the VLAN creation fails.
• The loopback port is dedicated for mirroring, and cannot be used for other
configurations. This is indicated through the glowing LED.
• Egress mirrored packets are always tagged when egressing the monitor port. If an
egress mirrored packet is untagged on the egress mirrored port, the mirrored copy
contains a tag with an internal VLAN ID.
• As traffic approaches line rate, mirroring rate may decrease. Since mirroring makes
copies of traffic, the bandwidth available will be devoted mostly to regular traffic
instead of mirrored traffic when the load is high.
• A mirror port cannot be a LAG.
Configuring Mirroring
• To create a named mirror instance, use the following command:
create mirror mirror_name {to [port port | port-list port_list
loopback-port port] { remote-tag rtag } | {{ } {} { [ | ]}{ [ | ]}
priority priority_value ]} {description mirror-desc}
• If you want to configure mirroring on multiple ports, and did not configure this
with the above create command, use the following command using the port-list
option:
configure mirror mirror_name {to [port port | port-list port_list |
loopback port port] {add} {{} } { [ | ]} { [ | ]}] {remote-tag rtag |
port none} {priority priority_value}
The port-list is a list of monitor ports that transmit identical copies of mirrored
packets. The loopback-port is an unused port that is required when you mirror to
a port-list. The loopback-port is not available for switching user data traffic. Certain
L2 control protocol packets, such as STP, LACP, and LLDP, cannot be mirrored with
one-to-many mirroring.
For high availability, you can add up to four redundant remote IP addresses. If you
are adding another (redundant) remote IP address to an existing mirror that already
has a remote IP address configured, you must use the add option.
• Mirroring is disabled by default. To enable mirroring, use one of the following
commands:
◦ enable mirror mirror_name
◦ enable mirror to [port port | port-list port_list loopback-port
port] {remote-tag tag}
◦ enable mirror {mirror_name} to remote-ip remote_ip_address {{vr}
vr_name} {priority priority_value} {from [source_ip_address | auto-
source-ip]} {ping-check [on | off]}]
• To disable mirroring, use the following command:
disable mirror [mirror_name | all]
• To remove one or all remote IP addresses, use the following command:
configure mirror {mirror_name to remote-ip delete [all |
remote_ip_address {{vr} vr_name}] }
To delete all or the last remaining remote IP address, you must disable the mirror
first.
Remote Mirroring
Remote mirroring enables the user to mirror traffic to remotely connected switches.
Remote mirroring allows a network administrator to mirror traffic from several different
remote switches to a port at a centralized location. There are two kinds of remote
mirroring: Layer-2 using a remote VLAN tag, and Layer-3 using GRE encapsulation
through a routed network to a remote IP address. This section describes remote
mirroring using Layer-2. Remote mirroring is accomplished by reserving a dedicated
VLAN throughout the network for carrying the mirrored traffic. You can enable remote
mirroring on the ExtremeSwitching series switches.
Figure 24 shows a typical remote mirroring topology. Switch A is the source switch
that contains ports, VLANs, and/or virtual ports to be remotely mirrored. Port 25 is the
local monitor port on Switch A. Switch B is the intermediate switch. Switch C is the
destination switch, which is connected to the network analyzer.
remove the remote-tag, and the mirrored packet reaches the network analyzer as the
source switch sent it.
Unlike basic mirroring, remote mirroring does not remove VLAN membership from the
local monitor port(s). This allows remote mirroring to use the existing network topology
to transport remote mirrored packets to a destination switch.
Configuration Details
This section describes in detail the configuration details for the topology shown in
Figure 24 on page 300.
Remote mirroring can also be enabled to a single port, without the port-list and
loopback-port keywords.
• To establish ports 24 and 25 as monitor ports, follow the example:
enable mirror to port-list 24,25 loopback-port 1 remote-tag 1000
The show mirror output displays the remote tag when remote mirroring is
configured.
• To enable remote mirroring to port 25, follow the example:
enable mirror to port 25 remote-tag 1000
Another way to configure a remote mirroring VLAN is to create a normal VLAN and
disable learning on the VLAN. IGMP snooping must be disabled on that VLAN for you to
remotely mirror multicast packets through the switch.
• You may add the remote-mirroring keyword when you configure the tag to
differentiate a normal VLAN from the remote mirroring VLAN.
create vlan remote_vlan
configure vlan remote_vlan tag 1000 remote-mirroring
configure vlan remote_vlan add ports 1,2 tagged
• You may use the following configuration for creating the remote mirroring VLAN:
create vlan remote_vlan
configure vlan remote_vlan tag 1000
disable learning vlan remote_vlan
disable igmp snooping remote_vlan
For a remote mirroring VLAN, the configured tag displayed by the show vlan output is
remote tag instead of the normal tag.
For EDP configuration on the remote mirroring VLAN, in the intermediate and
destination switches you need to install ACL to block the EDP packets on the remote
mirroring VLAN. Use the following commands for installation:
create access-list remote_edp " ethernet-destination-address 00:e0:2b:00:00:00 mask
ff:ff:ff:ff:ff:ff ;" "deny"
conf access-list add "remote_edp" first vlan "remote_vlan"
Switch A Configuration
enable mirror to port-list 8:2,1:48 loopback-port 8:1 remote-tag 1000
configure mirror add port 8:35 create vlan eaps_control
configure vlan eaps_control tag 1001
configure vlan eaps_control add ports 8:2,1:48 tag
create eaps eaps1
configure eaps1 mode master
configure eaps1 primary port 8:2
configure eaps1 secondary port 1:48
configure eaps1 add control eaps_control
configure eaps1 add protected internalMirrorLoopback
enable eaps1
enable eaps
Switch B Configuration
create vlan remote_vlan
configure vlan remote_vlan tag 1000 remote-mirroring
configure vlan remote_vlan add ports 19,9 tag
create vlan eaps_control
configure vlan eaps_control tag 1001
configure vlan eaps_control add ports 19,9 tag
create eaps eaps1
configure eaps1 mode transit
configure eaps1 primary port 19
configure eaps1 secondary port 9
configure eaps1 add control eaps_control
configure eaps1 add protected remote_vlan
enable eaps1
enable eaps
Switch C configuration
create vlan remote_vlan
configure vlan remote_vlan tag 1000 remote-mirroring
configure vlan remote_vlan add ports 31,45 tag
configure vlan remote_vlan add ports 1
create vlan eaps_control
configure vlan eaps_control tag 1001
configure vlan eaps_control add ports 31,45 tag
create eaps eaps1
configure eaps1 mode transit
configure eaps1 primary port 31
configure eaps1 secondary port 45
configure eaps1 add control eaps_control
configure eaps1 add protected remote_vlan
enable eaps1
enable eaps
Note
The internalMirrorLoopback is an internal VMAN created when enabling
mirroring to multiple ports. Depending on the platform, the internal VLAN or
VMAN needs to be added as the protected VLAN in the source switch in order
to block the ports for mirroring when EAPS is complete.
Switch A Configuration
enable mirror to port-list 8:2,1:48 loopback-port 8:1 remote-tag 1000
configure mirror add port 8:35
create vlan v1
configure vlan v1 tag 1001
configure vlan v1 add ports 8:2,1:48 tag
create stp stp1
configure stp1 mode dot1w
configure stp1 add v1 ports all
configure stp1 tag 1001
configure stp1 add vlan internalMirrorLoopback ports 8:2,1:48
enable stp1
enable stpd
Switch B Configuration
Switch C Configuration
enable stp1
enable stpd
To add more redundant remote IP addresses, use the following command using the
remote-ip , add, and priority options:
EDP is enabled on all ports by default, including the management port. EDP enabled
ports advertise information about the Extreme Networks switch to other switches on
the interface and receives advertisements from other Extreme Networks switches.
Information about other Extreme Networks switches is discarded after a timeout
interval is reached without receiving another advertisement.
Starting with ExtremeXOS 30.3, EDP detects mismatches when untagged ports are
used in configurations where the port endpoints are used in VLANs that have
different VLAN IDs. While this is not technically invalid, it nearly always indicates a
mis-configuration. If a mismatch ID is detected, a log event is generated. The event
is only generated once per boot. There is also a command to display port/VLAN ID
endpoints for easy comparison (show edp {ports [all | ports] {detail | vlan-
id {mismatch {untagged}} {neighbor nbr}}}).
• To disable EDP on specified ports, use the following command:
disable edp ports [ports | all]
• To enable EDP on specified ports, use the following command:
enable edp ports [ports | all]
• To clear EDP counters on the switch, use the following command:
clear counters edp
This command clears the following counters for EDP protocol data units (PDUs) sent
and received per EDP port:
◦ Switch PDUs transmitted
◦ VLAN PDUs transmitted
◦ Transmit PDUs with errors
◦ Switch PDUs received
◦ VLAN PDUs received
◦ Received PDUs with errors
• To view EDP port information on the switch, use the following command:
show edp {ports [all | ports] {detail | vlan-id {mismatch {untagged}}
{neighbor nbr}}}
• To configure the advertisement interval and the timeout interval, use the following
command:
configure edp advertisment-interval timer holddown-interval timeout
For information about displaying EDP status, see Displaying Port Information on page
310.
If the primary port fails, the switch will establish a link on the redundant port and
the redundant port becomes active. Only one side of the link must be configured as
redundant because the redundant port link is held in standby state on both sides of
the link. This feature provides very fast path or network redundancy.
Note
You cannot have any Layer 2 protocols configured on any of the VLANs that are
present on the ports.
The Smart Redundancy feature allows control over how the failover from a redundant
port to the primary port is managed. If this feature is enabled, which is the default
setting, the switch attempts to revert to the primary port as soon as it can be recovered.
If the feature is disabled, the switch attempts only to recover the primary port to active
if the redundant port fails.
Note
The primary and redundant ports must have identical VLAN membership.
You configure the software-controlled redundant port feature either to have the
redundant link always physically up but logically blocked, or to have the link always
physically down. The default value is to have the link physically down, or Off.
By default, Smart Redundancy is always enabled. If you enable Smart Redundancy, the
switch automatically fails over to the redundant port and returns traffic to the primary
port after connectivity is restored on that port. If you do not want the automatic
restoration of the primary link when it becomes active, disable Smart Redundancy.
In the following figure only the ports on switch C would be configured as redundant.
• To configure a software-controlled redundant port, use the following command:
configure ports primaryPort redundant secondaryPort {link [on | off]}
The first port specified is the primary port. The second port specified is the
redundant port.
• Unconfigure a software-controlled redundant port, use the following command and
enter the primary port(s):
unconfigure ports port_list redundant
• To configure the switch for the Smart Redundancy feature, use the following
command:
enable smartredundancy port_list
• To disable the Smart Redundancy feature, use the following command:
disable smartredundancy port_list
Refer to Displaying Port Information on page 310 for more information on the show
port information command.
If you plan to use the automatic failover feature, ensure that port settings are set
correctly for autonegotiation.
Note
You may experience a brief episode of the link going down and recovering
during the failover.
• To display the port type currently used as well as the preferred media setting, use
the following command:
show port {mgmt | port_list | tag tag} information {detail}
Refer to Displaying Port Information on page 310 for more information on the show
port information command.
Hardware determines when a link is lost and swaps the primary and redundant
ports to maintain stability.
After a failover occurs, the switch keeps the current port assignment until there is
another failure or until you change the assignment using the CLI.
• To change the uplink failover assignment, use the following command:
configure ports port_list preferred-medium [copper | fiber] {force}
Note
When the Tx of active fiber link is disconnected while Rx is still connected,
the fiber link goes down but the copper link does not come up.
The show ports information command shows you either summary information on
all the ports, or more detailed information on specific ports. The output from the
command differs very slightly depending on the platform you are using.
To display the remote end of the link's advertised auto-negotiation ability, use the
following command:
Note
This command is applicable only for port speed of up to 1Gbps This command
is not applicable for Extended Edge Switching bridge port extenders (BPE)
ports.
When you use a parameter (packets, bytes, or bandwidth) with the above command,
the display for the specified type shows a snapshot per port when you issue the
command.
The “?” symbol is used to indicate an optic with a mismatched partition. If an optic is
a third party unsupported optic, then the “!” unsupported indication will override the
“?” mismatched partition indication.
If the switch does not have the proper license to operate at the optic's given speed,
then the port cannot be partitioned for any corresponding port speeds. For example,
if a 100G optic is inserted into an unlicensed port regardless of the operating mode,
the CLI will display “?$” to indicate a mismatched partition and unlicensed port. In
addition to these CLI display indications, a corresponding informational message will
be logged to help determine the cause of the indications.
Some characters are not permitted as they have special meanings. These characters
include the following:
• “
• <
• >
• :
• <space>
• &.
This new field is CLI accessible only through the show port info detail command,
but you can also access it through the SNMP ifAlias object of IfXTable from IF-MIB (RFC
2233), and through the XML API.
If you configure a string longer than 64 characters, the following warning will be
displayed: Note: Port description strings longer than 64 chars are only
accessible via SNMP if the following command is issued: configure snmp
ifmib ifalias size extended
To control the accessible string size (default 64, per MIB) for the SNMP ifAlias object,
issue the command:
If you choose the extended size option, the following warning will be displayed:
Warning: Changing the size to [extended] requires the use of increased
255 chars long ifAlias object of ifXtable from IF-MIB(RFC 2233)
You can always configure a 255-character-long string regardless of the configured value
of ifAlias size. Its value only affects the SNMP behavior.
Port Isolation
The Port Isolation feature blocks accidental and intentional inter-communication
between different customers residing on different physical ports. This feature provides
a much simpler blocking mechanism without the use of ACL hardware. The
fundamental requirements are as follows:
• Blocking Rules: All traffic types received on a isolation port is blocked from being
forwarded through other ‘isolation’ ports.
• All traffic types received on an isolation port can be forwarded to any other port.
• All traffic types received on non-isolation ports are permitted to be forwarded to
isolation ports.
There is no access-list hardware use. The blocking mechanism is a set of one or two
table memories. These resources are not shared with other features, nor do they have
any scaling limits that can be reached by configuring this feature. Port isolation can
be configured in conjunction with other features, including VPLS, IDM, and Extreme
Network Virtualization (XNV). However, you cannot configure a mirror-to port to be an
isolated port.
You can issue this command either on a single port or on a master port of a load
share group. If you issue this command on a non-master port of a load share group,
the command will fail. When a port load share group is formed, all of the member
ports assume the same isolation setting as the master port.
2. Issue the show port info detail and show port info outputs to display the
current isolation settings.
EEE reduces significant power consumption on the switch. Within ExtremeXOS, a PHY/
switch combination, or a PHY with autogrEEEN capability is provided to allow EEE to
work. In a typical setup, the PHY and switch communicate when to enter or exit low
power idle (LPI) mode.
AutoGrEEEn technology implements the EEE standard directly into PHYs, and enables
the EEE mode when interfacing with non-EEE enabled MAC devices,. This allows you to
make existing network equipment EEE-compliant by simply changing the PHY devices.
EEE is currently only implemented for copper ports
The EEE protocol uses an LPI signal that the transmitter sends to indicate that the link
can go idle. After sending LPI for a period (Ts = time to sleep), the transmitter stops
signaling altogether, and the link becomes quiescent. Periodically, the transmitter
sends some signals so that the link does not remain quiescent for too long without
a refresh. When the transmitter wishes to resume the fully functional link, it sends
normal idle signals. After a pre-determined time (Tw = time to wake), the link is active
and data transmission resumes.
The EEE protocol allows the link to be re-awakened at any time; there is no minimum
or maximum sleep interval. This allows EEE to function effectively in the presence of
unpredictable traffic. The default wake time is defined for each type of PHY, and is
designed to be similar to the time taken to transmit a maximum length packet at the
particular link speed.
The refresh signal serves the same purpose as the link pulse in traditional Ethernet. The
heartbeat of the refresh signal ensures that both partners know that the link is present,
and allows for immediate notification following a disconnection. The frequency of the
refresh prevents any situation where one link partner is disconnected and another
inserted without causing a link fail event. This maintains compatibility with security
mechanisms that rely on continuous connectivity and require notification when a link
is broken.
The maintenance of the link through refresh signals also allows higher layer
applications to understand that the link is continuously present, preserving network
stability. You can also use the refresh signal to test the channel, and create an
opportunity for the receiver to adapt to changes in the channel characteristics. For
high speed links, this is vital to support the rapid transition back to the full speed data
transfer without sacrificing data integrity. The specific makeup of the refresh signal is
designed for each PHY type to assist the adaptation for the medium supported.
Supported Platforms
EEE is supported on the following Extreme Networks platforms:
• 4120—copper 10/100/1000/2500 and multi-rate ports
• 4220—copper 10/100/1000 and multi-rate ports
Note
A 4220 Series hardware limitation prevents multi-rate ports from supporting
EEE when they are operating at 2.5 Gbps or 5 Gbps speeds.
Note
An ExtremeSwitching 5720 Series hardware limitation prevents multi-rate
ports from supporting EEE when they are operating at 2.5 Gbps or 5 Gbps
speeds.
Note
A hardware limitation prevents multi-rate ports from supporting EEE when
they are operating at 2.5 Gbps or 5 Gbps speeds.
The keyword on specifies that the port advertises to its link partner that it is EEE
capable at certain speeds. If both sides, during auto-negotiation, determine that
they both have EEE on and are compatible speed wise, they will determine other
parameters (how long it takes to come out of sleep time, how long it takes to wake
up) and the link comes up. During periods of non-activity, the link will shut down
parts of the port to save energy. This is called LPI for low power idle. When one side
sees it must send something, it wakes up the remote and then transmits.
• To display the statistics of the EEE features, use the following command:
show ports port_list eee {no-refresh | refresh } { port-number}
Node Alias
(see CTRON Alias MIB on page 2009). Enabling Node Alias on ports of interest provides a
powerful troubleshooting tool for network administrators.
Note
By default, Node Alias is disabled on all ports.
Limitations
Currently, 100 packets per second per slot are admitted for snooping. Packets are
dropped if the rate exceeds 100 pps.
The database is capable of holding 8,192 entries per-slot. To avoid starvation among
ports, each port is allowed to create only its share of entries in the database. The default
maximum per port is 8,192 divided by the number of ports on the slot. For example,
on a 64-port slot, this translates to 128 entries per port. You can modify the per-port
maximum (configure nodealias ports [port_list |all] maxentries entries)
up to the limit of 8,192.
As a result of snooping one frame, Node Alias may create additional entries to facilitate
the searching based on finer details, such as protocol type. For example, when a BGP
(Border Gateway Protocol) frame is received, two entries are created: one entry with
protocol type IP, and another entry with protocol type BGP.
Node Alias also supports VMAN. For VMANs, itt includes the VMAN ID, instead of VLAN
ID in the database.
If the ports are combined to form a LAG, Node Alias must be enabled on individual
ports; enabling Node Alias on the master port does not automatically enable Node Alias
on member ports.
Supported Protocols
Node Alias is enabled by default to capture all of the following supported protocols:
IPv4, IPv6, OSPF, BGP, VRRP, DHCPS, DHCPC, BOOTPS, BOOTPC, UDP, BPDU, LLMNR,
SSDP, and mDNS. You can selectively disable any of these protocols.
Note
• ARP is categorized under IP.
• UDP entry is created when destination IP address is broadcast.
• BPDU means STP and GVRP frames.
Note
By default, Node Alias is disabled on all ports.
Note
Node Alias should be separately enabled/disabled on a LAG ports.
Note
By default, Node Alias is enabled to capture all of the following supported
protocols: IPv4, IPv6, OSPF, BGP, VRRP, DHCPS, DHCPC, BOOTPS, BOOTPC,
UDP, BPDU, LLMNR, SSDP, and mDNS.
To modify the per-port maximum number of alias entries in the Node Alias database,
use the following command:
show nodealias
To clear node alias entries out of the Node Alias feature database by specified port(s) or
alias ID, use the following command:
Limitations
Only STP uses LAA MAC.
To direct the switch to generate unique locally administered MAC addresses, use the
following command:
To disable generating unique locally administered MAC addresses, use the following
command:
disable switchlocally-administered-address
Supported Platforms
All ExtremeSwitching platforms.
Limitations
Stack support is not available. You need to enable this command individually on each
node in a stack.
To show the status of the USB port, use the following command:
In this architecture, ports on the CB or BPEs connecting to BPEs are termed cascade
ports, while corresponding ports on BPEs connecting them to the CB or upstream
BPEs are termed upstream ports. Ports from the BPEs connected to the rest of the
network are termed extended ports.
Note
Due to the lack of extensive processing performed on BPEs, traffic entering
on a BPE extended port that is destined to exit another extended port on the
same BPE is forwarded to the controlling bridge (CB), and then forwarded
back to the BPE, rather than processed exclusively within the BPE.
Important Terminology
The following terms are important for understanding virtual port extenders (VPEX):
• Bridge Port Extenders (BPEs)— Devices that do not fully process packets, nor
make forwarding or filtering decisions. Instead, BPEs simply receive packets from
extended ports and forward packets towards the upstream controlling bridge for
L2/L3 processing.
• Cascade port—a port on a controlling bridge or BPE that connects to an upstream
port.
• Controlling Bridge (CB)—In this context, a switch that provides full L2/L3 packet
processing and filtering functionality for cascade ports and extended ports.
• E-Channel-ID (E-CID)—Identifies the BPE destination port (or port-list for multicast
E-CID).
• E-Tag—A tag header immediately following the 802.1BR EtherType (0x893F) that
contains the E-CID; this tag is only resident between bridge port extenders and
controlling bridge devices.
• Edge Control Protocol (ECP)—Provides basic acknowledgement and re-transmission
mechanism for reliable delivery; used for PE-CSP transmission.
• Extended bridge—A controlling bridge combined with one or more BPEs.
• Extended ports—Ports from BPEs connected to the rest of the network.
• Port Extender Control and Status Protocol (PE-CSP)—Simple command/response
protocol that allows a controlling bridge to discover, program, and obtain status
from a bridge port extender.
• Upstream port—Port on a BPE that connects to a cascade port.
• Virtual Port Extender (VPEX)—A switching architecture based on the IEEE 802.1BR
specification, comprising a CB, and one or more BPEs.
Chassis Analogy
VPEX, with its controlling bridge (CB) and bridge port extenders (BPEs), is analogous to
a chassis with slots.
When you enter VPEX mode (using ), the CLI prompt changes to show that the CB is in
VPEX mode and is slot 1 in this context:
Slot-1 VPEX switch model #
In VPEX mode, you refer to ports in the familiar slot:port notation in applicable
commands, where the CB is always slot 1, and the BPEs are slots 100–162 (see Figure
28).
As opposed to expanding the network using additional switches, BPEs provide the
following benefits:
• No console. BPEs are configured and managed through the controlling bridge (CB)
user interface, so there is no need to connect a terminal console connection to each
BPE.
• No out-of-band management.
• Single point of license management.
• Single point for configuring/debugging/diagnostics.
• Single node when managed by management software products.
and Status Protocol (PE-CSP) to control and manage the BPE. PE-CSP is a simple
command/response protocol (see Port Extension Control and Status Protocol on page
324) that runs on top of the Edge Control Protocol (ECP), which provides reliable
delivery (see Edge Control Protocol on page 323).
In the data-plane, the BPE receives Ethernet packets on its extended ports, inserts
an E-TAG with an E-CID identifying the source port, and forwards it on its upstream
ports towards the CB. When the CB receives a packet on a cascaded port, it uses
the E-CID within the E-TAG to identify the source extended port and performs the
L2/L3/policy forwarding decisions for the packet. Based on these forwarding decisions,
the CB inserts an E-TAG to identify the destination and forwards the packet out
the corresponding cascaded port. If the forwarding decision is to forward to another
extended port, the CB inserts an E-Tag. The BPE receives the packet on its upstream
port, processes the associated E-TAG, and forwards the packet out the corresponding
egress extended port(s).
The BPE device accepts either the nearest non-TPMR bridge group address or the
individual MAC address sent in its LLDP PE TLV.
• SA (Source MAC address)—The source MAC address of the bridge. The SA is six octets
long.
• EtherType—ECP Ethertype (0x8940). The ECP EtherType is two octets long.
• Version—The ECP protocol version. The version is 4 bits long, and the value is 1.
• Operation Type—Defines the operation type. It is 2 bits long. The values are:
◦ ECP Request (0x0)
◦ ECP acknowledgment (0x1)
• SubType—Defines the ULP type included in the PDU. The value of Subtype is 0x2
when BPE CSP is the ULP. See table 43-1 of IEEE-802.1Q-2014. The SubType field is a
10 bits long.
• Sequence Number—The Sequence Number field identifies the sequential order
of the PDU with respect to other ECPDUs. The first sequence number can start
anywhere, but each subsequent sequence number is incremented by one. The
Sequence Number is 2 octets long.
• ULPDU—The ULPDU contains the Upper Layer Protocol Data Unit if the operation
type value is “ECP Request”. The ULPDU field is absent if the operation type value
is “ECP Acknowledgment”. The length of this field is upper layer dependent. The
ULPDU in this case is PE-CSP.
Each PE-CSP PDU is made of a command TLV and zero or more additional TLVs.
Figure 30 shows a typical PE-CSP exchange between a CB and a bridge port extender
(BPE).
You can use MLAGs to form an extended bridge with two CBs, also serving as MLAG
peers, connected to dual-homed BPE devices using MLAG cascaded ports (see Figure
31 on page 326).
Note
When using MLAG, you must run LACP on the CB MLAG cascade ports.
Note
With an MLAG/Extended Edge Switching topology, enabling policy and using
policy features does not work with the ONEPolicy default resource profile. Use
the profile-modifier feature to free up ACL resources from any specific policy
profile (see Platform Rule Allocation on page 977).
Note
Extended Edge Switching Auto-configuration (see Configuring Extended Edge
Switching Topology with Partial Automation (Auto-configuration) on page 344)
uses values within the range of 5100 to 5164 to configure an MLAG port ID. It is
recommended that you do not use values within this range when configuring
MLAG port IDs manually, since the MLAG port might be unconfigured by auto-
configuration when auto-configuration finds the MLAG port ID has already
been used.
Figure 31: Redundant Controlling Bridge Architecture with MLAG over Cascaded
Ports
With redundant CBs attached to each BPE, the associated extended port configuration
must be identical on each controlling bridge. To reduce the configuration complexity
and to minimize the risk of inconsistency, you can use orchestration mode so that
any configuration commands are now checkpointed to the MLAG peer switch. Before
entering orchestration mode, ensure that any configuration parameters (connecting
ports for the BPEs, VLAN names, numbers etc.) are the same for both CBs.
After entering this orchestration mode, like the existing virtual-router mode, the
configuration prompt changes indicating that commands issued are within this
context:
When using automation (see Configuring Extended Edge Switching Topology with
Partial Automation (Auto-configuration) on page 344 and Configuring Extended Edge
Switching Topology with Full Automation on page 341) to set up redundant CB MLAGs,
the following occurs:
• The same slot number is assigned to the same BPE on both CBs.
• MLAG port is configured for first tier BPEs. The MLAG port identifier is set to 5,000
plus the BPE's slot number.
stop {orchestration}
Rings are not explicitly configured, but rather are detected and created automatically.
A ring contains the BPEs that were used in its formation. The life of a ring is ended by
either a configuration command that changes one or both cascades, or a reboot of the
CBs.
To support a wiring closet with only two links, each BPE that directly connects to the
CB connects with only one link in its . To support this capability without forcing you to
reserve and not use a port on one of the CBs, ExtremeXOS supports “one-arm” MLAGs
where one CB has a connection reserved, and the other does not (see One-Arm MLAGs
on page 331). This allows MLAG operation as if one link were down, meaning that both
CBs are able to switch to the MLAG. ExtremeXOS also supports regular cross-connected
MLAG at the top of the ring.
Multiple rings are supported. However, each ring must be completely separate from
all others. For example, a simple ring could be formed from a single CB ports 1:1 and
1:2, while a separate ring could be formed from ports 1:3 and 1:4. Multiple rings cannot
otherwise intersect, except at the CB itself.
Limitations
• A maximum of 8 BPEs per ring is supported.
• A ring can be formed from exactly one or two cascades. A cascade (or any part
thereof) can be a part of at most one ring.
For information about setting up a ring, see Configuring Extended Edge Switching
Ring Topology on page 346.
Forming a Ring
To form a ring, you configure one or two cascades and allow them to form. After that,
you connect the end bridget port extenders (BPEs) of these cascades to each other, or
the end of the single unconfigured cascade to a port on the controlling bridge (CB).
After establishing the control plane, the formed cascades are as shown in Figure 32.
1. Link Failure Detection and the Ring Link Fail Notification (RLFN) Message
2. Ring Disable Message
3. Traffic Re-routing and Cascade Information Clearing
4. Failed Link Restoration
When the connection between two BPEs in a ring is severed, the BPE whose upstream
port was at the point of disconnection sends a notification of the failure to its active
cascade port. Simultaneously, that BPE will "fail over" to its backup upstream port,
changing the upstream direction of the data plane. The notification is called a Ring
Link Failure Notification (RLFN). When the downstream BPE receives it, it forwards
the RLFN to its active cascade port. If the BPE received the RLFN over its active
upstream port, it too fails over as above. The end result is one or two data plane
cascades terminating at the broken connection with no remaining backup path, which
is re-established after the next ring detection. The new backup upstream direction
is established on all nodes. Some BPEs will have different upstream and backup
upstream ports than those that were originally established. The cascades that were
established when the ring was severed remain in place.
Cross-Connect MLAGs
For dual (redundant) controlling bridges (CBs) on Extended Edge Switching rings, you
can use cross-connect s. Cross-connect MLAGS require 48-port bridge port extenders
(BPEs) with four trusted ports (for example, V400-48p-10GE4). Figure 34 shows a ring
formed using CBs connected to a BPE ring using two cross-connect MLAGs.
One-Arm MLAGs
In some wiring closet applications, bridge port extenders (BPEs) are located in the
closet, and the controlling bridge (CB) is located more centrally, and there are only
two links wired from the CB to the closet. An important capability of Extended Edge
Switching rings is to provide redundancy among BPEs that have only two trusted ports.
In this configuration the CB neighbor has only one link to one of the cascades of the
ring. To overcome this limitation, you can use a one-arm to achieve CB redundancy.
Figure 35 shows a ring formed using CBs connected to a BPE ring using two one-
armed MLAGs. One-armed MLAG uses virtual MLAG ports where a physical port
connection is not present. The virtual port is always down, so MLAG blocking rules are
not applied.
On CB-1, Cascade 1 is configured with port 2 as the native cascade port, and similarly, on
CB-2, Cascade 2 is configured with port 2 as the native cascade port.
When the first MLAG comes up, CB-1 and CB-2 elect a master that is the controller of
all CSP sessions with BPEs that reside at any tier other than tier 1 (the BPEs directly
connected to the CB). The same mastership applies to both MLAGs. Because the
MLAGs are one-armed, the master sends messages to such BPEs through the CB that
is directly connected to tier 1 of the related cascade. You can determine which CB is the
master using the show vpex ports {ports_list} command.
Each CB establishes and controls the CSP session with the tier 1 BPE that is locally
connected. The master CB establishes and controls all CSP sessions with BPE that are
not at tier 1.
If the receivers of VLAN v1 (or VLAN v2) are spread across different native cascade ports,
separate copies might be sent for VLAN v1 on each native cascade port depending on
the best path to reach a receiver. However, when the receiver is an extended port LAG,
the CB has to do the replication. Because extended port LAG members could belong
to different BPEs, and because BPE cannot do the pruning, the CB has to send copies
to the individual LAG member. For instance, if VLAN v1 membership includes a LAG
comprising ports 101:1, 103:1, and another LAG comprising ports 102:1, 102:2, two copies
are sent, one for the 101:1 LAG member and another one for the 102:1 LAG member.
Because replication and VLAN flooding both use multicast ECIDs, using optimized IP
multicast reduces the number of VLANs with extended ports to 3,000.
Important
On V400 BPEs, only SFP+ ports can be used for upstream/cascade ports.
For information about which optics are supported with the V400 Virtual Port Extenders,
see the Extreme Hardware/Software Compatibility and Recommendation Matrices.
Supported Platforms
The following switches are supported as controlling bridges (CBs):
Note
BPE ports cannot be used to form MLAGs.
Supported Topologies
BPEs at the “first tier” (directly connected to the stack) can connect any or all of their
intended upstream ports to any switch in the stack.
A cascaded BPE (tier 2 or higher) can connect its upstream ports only to the same BPE,
meaning only point-to-point upstream topologies are supported below tier 1. Cascade
ports that are configured on LAGs impose the restriction that all of the LAG members
must be provided by the same BPE, or must all be provided by the stack directly.
Two BPE cascades can be connected together at their ends forming an Extended Edge
Switching Ring.
Limitations
All nodes in a stack running Extended Edge Switching must be controlling bridge
capable. Any attempt to add a non-capable slot to a stack running Extended Edge will
fail. Enabling Extended Edge Switching on a stack that contains a non-capable node
will fail.
You must use the same class of controlling bridge for both the primary and backup. For
example, if a 5520 series switch is the primary node, then the backup must also be a
5520 series switch.
The primary-capable node in a stack that has the least maximum supported number
of BPEs determines the maximum for the stack. When using Extended Edge with
Stacking, BPEs cannot be attached to configured MLAG ports.
Supported Platforms
The following devices are supported as controlling bridges (CBs):
The V300 and V400 BPEs can be attached to a stack that is configured as a controlling
bridge.
Note
The V300-8P-2T-W BPE requires PoE.
Supported Commands
Existing Extended Edge display commands show the same result on the primary and
backup nodes.
The show slot command shows the Failed state for the attempted addition of a new
stack node that does not support the controlling bridge function when the Extended
Edge Switching feature is enabled. A message is logged at the time this failure occurs.
The show slot command also shows the presence of any BPEs that have occupied
slots.
Use the show vpex stacking command to show Extended Edge Switching
information for all nodes in the stack topology.
ZTPStack Behavior
ZTPStack runs on all Extended Edge switches that have not yet been configured.
ZTPStack is a function that either sets up SummitStack, or detects BPEs and sets up
MLAG and enables Extended Edge Switching and Exteded Edge autoconfiguration.
Software Upgrade
The package containing EXOS and the supported BPE image can be loaded on a stack
(the .lst file). The installation of the images is performed on all stack nodes in the
active stack topology.
• A maximum of 4 upstream ports (in a LAG) per BPE is supported (with V400-48).
• Trusted ports on BPEs cannot be used as user data ports. No protocols or features
should be applied/configured on this port.
Table 28: ExtremeXOS Feature Compatibility with V400 Virtual Port Extenders
ExtremeXOS Feature Status
ACLs Ingress (first and second stage) and egress ACLs are supported
with the following limitations:
• Ingress ACLs applied to a list of extended ports results in one
hardware rule per extended port. This is the same behavior
as regular ports when counters and/or meters are used.
• Egress ACLs applied to an egress port do NOT match L2 flood
traffic, but egress ACLs applied to VLANs do.
• Ingress ACLs with Replace-ethernet-destination-address
action, replace-ethernet-source-address, and replace-vlan-id
actions are not supported when packets are egressing
extended ports.
• L3/L4 match criteria are not available in the same egress ACL
key as an extended port match.
• ACL byte counters include an extra 8 bytes per packet
(Ethertype + Etag) for the added encapsulation.
• Egress ACLs applied to extended port LAGs are not
supported. Use egress ACLs bound to VLANs/any instead.
Table 28: ExtremeXOS Feature Compatibility with V400 Virtual Port Extenders
(continued)
ExtremeXOS Feature Status
Dot1p examination Disabled by default on extended ports; enabled by default
on controlling bridge cascade ports. Use cascade port Dot1p
examination for extended port traffic to conserve ACL hardware
resources.
EAPS Supported, except that EAPS ring ports cannot be extended
ports.
EDP/LLDP/CDP Supported.
EEE Supported.
ELSM Not supported.
ERPS Supported, except that ERPS ring ports cannot be extended
ports.
ESRP Not supported.
Fabric Attach ExtremeXOS Fabric Attach (FA) supports FA servers and FA
Proxies to be Extended Edge Switching controlling bridge (CB)
nodes connected with bridge port extenders (BPEs) in two
different topologies:
• Single-arm ring—see Single-ARM MLAG Ring Topology
Configuration Examples on page 750.
• Cross-connect MLAG—see Cross-Connect MLAG Topology
Configuration Examples on page 763.
FDB
FDB: Limit learning Supported.
FDB: MAC lockdown Supported.
FDB: Static and Supported, except that multi-port unicast FDBs entries are not
blackhole entries supported.
Flood rate-limit Not supported on extended ports.
HcLAG Not supported.
Identity Identity Management should not be enabled on cascade ports.
Management
L2 PBR Not supported.
FDB: multi-port Not supported.
unicast entries
L3
L3: PBR Supported.
L3: Gateway routers Gateway router connected to extended port LAGs is not
supported.
Table 28: ExtremeXOS Feature Compatibility with V400 Virtual Port Extenders
(continued)
ExtremeXOS Feature Status
L3: IP unicast Maximum gateways (using configure iproute sharing max-
forwarding gateways max_gateways ) must be greater than or equal to
the number of active extended LAG members.
L3: Routing protocols Supported on CB; not supported on extended ports.
L3 Tunnels Supported on CB ports.
Not supported on extended ports.
LAG: LACP Supported.
The default and only supported algorithm on extended port
LAGs is "custom."
V400 Virtual Port Supported. For information about the location of BPE LEDs, see
Extender LEDs the V400 Virtual Port Extender Quick Reference Guide.
Mirroring Mirroring extended ports is supported.
Mirroring to extended ports is supported on all Universal
platforms.
Ingress mirroring of an extended port will include an 802.1BR
E-tag.
Table 28: ExtremeXOS Feature Compatibility with V400 Virtual Port Extenders
(continued)
ExtremeXOS Feature Status
Netlogin Dot1X and MAC Auth supported, and supported with MLAG.
Not supported:
• Multi-supplicant (MAC-based VLANs) without ONEPolicy.
• Port restart option.
• Trusted ports.
WebAuth is not supported with MLAG.
Node Alias Supported.
OnePolicy Basic policy supported:
• Policy scale (number of users, roles, rules) same as CB.
• LAG rules not supported on extended ports with tci-
overwrite.
• Per-port, policy-driven, ingress rate limiting is not supported
on extended ports.
• ExtremeSwitching 5420 and 5520 series switches as CBs do
not support tci-overwrite.
Table 28: ExtremeXOS Feature Compatibility with V400 Virtual Port Extenders
(continued)
ExtremeXOS Feature Status
Restart port Not supported on extended ports. Use disable/enable port
commands.
sFlow Supported: sFlow hardware sampling on Extended Edge
Switching extended ports is provided by the underlying
Extended Edge Switching cascade port hardware. As such, the
configured sample rate is programmed on the cascade port
and is provided in aggregate to all subtended sFlow-enabled
Extended Edge Switching extended ports.
Software-redundant Supported.
ports
STP Supported, primarily for edge loop detection (edge guard);
supported with MLAG redundancy for RSTP and MSTP protocol
modes.
VLAN
VLAN:Membership Supported; users specify VLAN membership using <slot>:<port>
notation; protocol VLANs not supported.
VLAN: statistics Supported on extended ports.
However, the disadvantage of full automation is that you must start with an
unconfigured controlling bridge (CB) (out of the shipping box) or unconfigure the CB
switch. To avoid unconfiguring the CB, but to still avoid manually configuring the entire
Extended Edge Switching topology, consider using partial automation (see Configuring
Extended Edge Switching Topology with Partial Automation (Auto-configuration) on
page 344).
Note
Do not attach bridge port extenders (BPEs) to a partitioned port.
Unconfiguring the CB removes the port partition configuration, and this
causes full automation to fail.
Full automation for Extended Edge Switching performs the following tasks:
Note
ZTPStack will enable Extended Edge Switching upon detection of an
attached BPE, but will not reboot the switch. Stacking automation (push
button or easy-setup) completes this task.
Note
For full automation, the entire process can take about 6–7 minutes to complete
depending upon the configuration.
1. (Optional) If you are setting up redundant CBs, connect the two CBs to each other.
2. Attach BPE(s).
3. Ensure that full automation is enabled. Full automation is enabled by default. Run
show vpex:
# show vpex
Virtual Port Extender: Disabled
Auto-Configuration: Enabled
Ring rebalancing: Auto
Zero Touch Provisioning: Nothing Provisioned - Existing configuration present
Cascade
Port/MLAG Id Slot
====================
For information about locating and deleting files on the switch, see Using the
ExtremeXOS File System on page 128.
5. Ensure that the CB(s) do not have a configuration. Run unconfigure switch {all
| erase [all | nvram]}. Use either:
• unconfigure switch—removes configuration, but leaves other settings intact.
• unconfigure switch all—removes configuration and resets all settings to
factory defaults (recommended).
6. Reboot the CB(s).
7. The configuration applied by automation is not automatically saved. Save the
configuration:
• Manually: save configuration {primary | secondary | existing-config |
new-config}
• Automatically: save configuration automatic {every minutes {primary |
secondary | existing-config | new-config} | never}
Note
To avoid having automation start if you do want it to, run terminate vpex ztp
or perform some configuration prior to attaching BPEs or have a default.xsf
(or other similar file) file in place.
To view automation status, use the command show vpex.
Note
Auto-configuration is disabled by default. If auto-configuration is enabled,
Extended Edge Switching ports cannot be manually configured.
Cascade port connections to a BPE are automatically grouped into a LAG with the first
detected connection set as the master logical port. Automatic LAG grouping occurs
even if there is only a single connection to the BPE. With auto-configuration enabled,
additional connections added after the initial Extended Edge Switching configuration is
established are automatically added to the LAG. If you remove connection(s) and want
the port(s) removed from the LAG, you must do this manually (see Adding and Deleting
Ports in a Load-Sharing Group on page 267).
To use auto-configuration:
enable vpex
4. Reboot the CB(s) to allow the VPEX mode command to take effect.
5. Enable auto-configuration:
The partial automation process detects the new BPEs connected to ports not
configured as cascade ports, and automatically configures cascade ports, extended
slots, and LAGs on cascade ports.
show vpex
Use manual configuration when you want precise control over items such as slot
number assignment.
1. Physically set up the bridge port extender(s) (BPEs). See the applicable Virtual Port
Extender Quick Reference Guide.
Note
If you are using unconfigured (unconfigure switch all) or "out-of-the
box" controlling bridge switches (CBs), to ensure that full automation does
not start to run, do not reboot the CBs after connecting the BPEs.
3. (Optional) Set up a LAG with LACP on the switch to operate as the cascade port. Use
the command:
enable sharing port grouping port_list {algorithm [address-based
{L2 | L3 | L3_L4 | custom} | }]} {resilient-hashing [on | off]}
{distribution-mode [all | local-slot | port-lists]} {lacp | health-
check}
Note
You cannot convert a cascade port to a LAG after the cascade port is created
without first unconfiguring the slot from the cascade port.
4. Assign a slot number identifier to the attached BPE on the specified cascade port.
Use the command:
configure vpex ports port_list slot slot_num
Note
If the cascade port is part of a LAG, then configure the LAG master port as
the VPEX port.
Extended Edge Switching rings allow two Extended Edge Switching (VPEX) cascades
to be joined together to form a ring, or a single cascade to be joined back to the
controlling bridge (CB). When a link breaks or a bridge port extender (BPE) otherwise
leaves, the remaining BPEs form one or two new cascades that end at the ring break,
thus keeping connectivity to the CB alive.
For more information about Extended Edge Switching ring topology, see Extended
Edge Switching Rings on page 327.
Ensure that all BPEs are running the minimum VPEX version software to support
Extended Edge Switching (see ExtremeXOS Release Notes). For information about
upgrading the BPEs, see Upgrading the Controlling Bridge and Bridge Ports Extenders
on page 366.
2. Configure the cascades and allow them to form. You can use either:
• Full automation (Configuring Extended Edge Switching Topology with Full
Automation on page 341).
• Partial automation (Configuring Extended Edge Switching Topology with Partial
Automation (Auto-configuration) on page 344).
• Manual configuration (Manually Configuring Bridge Port Extenders on page 345).
Note
Ring re-balancing establishes two cascades of approximately equal
length without regard to bandwidth consumption of a BPE. In a mixed
node cascade, you should place the most bandwidth consuming BPEs as
close as possible to the CB in the cascade. For example, a 48t BPE may
use two-port LAGs to communicate with the CB, but a 24t BPE switch
can only have one port in its upstream direction. Thus the 24-port BPEs
should be placed at the tiers that are farther from the CB.
Use the show slot {slot {detail} | detail } and show vpex topology
{ port port_num} {summary | detail} commands to ensure that the cascades
have finished forming correctly.
3. Connect the end BPEs of these cascades to each other, or the end of the single
cascade to a port on the CB.
A message similar to the following appears:
Limitation Workaround
If the CB has MLAG • Remove the MLAG peer configuration to make it a
peer configuration, but single CB setup.
its MLAG peer is down, • Bring up the MLAG peer.
you cannot enable auto-
configuration.
If a BPE is configured Manually configure MLAG port for the previously
before MLAG peer configured BPE by setting the MLAG port ID to 5000 plus
is configured, auto- the BPE’s slot number.
configuration does not
configure the MLAG
port for the previously
configured BPE.
Note that changing this configuration at run time could result in temporary loss of
traffic while the tables are reprogrammed. It is preferable to identify which option
works best for the particular topology and leave the setting unchanged during run
time or schedule the change during a maintenance window.
To set the way VLAN membership is implemented, use the following command:
To see the current selection for VLAN membership, use the command:
To set the IPMC replication mode, on the controlling bridge or bridge port extenders,
use the following command:
To view the current selection for IPMC replication, use the following command:
1. If the slot module is configured, use the command unconfigure slot slot .
2. unconfigure vpex ports port_list slot.
The behavior of this command is similar to removing slots within a chassis. After
executing this command, the BPE no longer occupies the slot number assignment.
This procedure explains how to replace a BPE with another BPE of the same model.
If you want to replace an existing BPE with a different model, you need to remove
the existing BPE, and then add the new BPE (see Inserting Additional Bridge Port
Extenders on Cascades on page 350).
Note
For cascade topologies, control plane/traffic is disrupted on the cascade below
the BPE being replaced until the new BPE is connected and accepted into the
cascade.
To replace a BPE:
You can add additional bridge port extenders (BPEs) to existing Extended Edge
Switching cascade topologies. You can add additional BPEs anywhere in the cascade.
You can use either partial automation or manual configuration to add the additional
BPE.
To add a BPE using partial automation, connect the BPE in the desired location, and
then reboot the controlling (CB).
You can add bridge port extenders (BPEs) to existing Extended Edge Switching ring
topologies. You can add BPEs anywhere in the ring.
To add a BPE:
1. Disconnect the cable between the two BPEs in the ring at the desired insertion
point, which allows the ring to enter the severed state, and then re-converge into
two operational cascades.
2. Connect the new BPE to the same connection points disconnected previously.
If you have auto-configuration enabled (enable vpex auto-configuration), you
are finished. If you want to manually configure the rest of the setup (ensure that
auto-configuration is disabled), continue with the following steps.
3. (If you are connecting at the point where the configured cascades were joined, do
not perform this step) Unconfigure the cascade port of the BPE connecting the new
BPE using the procedure in Removing Bridge Port Extenders from Slot Assignments
on page 350.
Note
To find where the configured cascades were joined, use the show vpex
topology { port port_num} {summary | detail} command, and
see where the dynamically created cascade ports ("d" flag) start on the
cascade(s).
4. Configure the new BPE using the procedure in Manually Configuring Bridge Port
Extenders on page 345 starting with step 3 on page 346.
Configuring a new VPEX port/slot in a ring destroys the ring, and changes the
configured cascades that formed it. For the new cascades, one ends where the new
slot/BPE was added and the other ends at the next BPE that is connected to the
cascade with the new slot/BPE.
You can permanently remove bridge port extenders (BPEs) from existing Extended
Edge Switching cascades.
To remove a BPE:
1. Unconfigure the BPE to be removed, and all BPEs below the location of that BPE in
the cascade starting from the bottom, and then moving up, using the command:
unconfigure vpex ports port_list slot
2. Disconnect the desired BPE, and then re-cable the remaining BPEs as needed.
3. Re-configure all of the previously unconfigured BPEs, except for the removed BPE,
starting from the top, and then moving down, using the procedure in Manually
Configuring Bridge Port Extenders on page 345 starting with step 3 on page 346.
4. Unconfigure the removed BPE's slot assignment using the following command:
unconfigure slot slot
To see an example of removing a BPE from a cascade, see Removing Bridge Port
Extender from a Cascade Example on page 360.
You can permanently remove bridge port extenders (BPEs) from existing Extended
Edge Switching rings.
To remove a BPE:
1. Disconnect both connections for the BPE. The ring enters the severed state.
2. Connect the two disconnected ports together. The ring does not re-form at this
time.
3. Unconfigure the removed BPEs from the topology using the procedure in Removing
Bridge Port Extenders from Slot Assignments on page 350.
Configuring a new VPEX port/slot in a ring destroys the ring, and changes the
configured cascades that formed it. For the new cascades, one ends where the new
slot/BPE was added and the other ends at the next BPE that is connected to the
cascade with the new slot/BPE.
show vpex
• To show status information about the BPE attached to the specified cascade ports,
use the following command:
In a cascade, to take a BPE offline, use the following command specifying the cascade
port that the BPE is attached to in port_list (do not use the all option):
Note
If the cascade port is part of a LAG, you must disable all ports in the LAG.
With a ring, disabling only the cascade or upstream port on a BPE results in a ring
failover, so the BPE is not taken offline if only one connection is disabled. You must
disable all ports that can connect the BPE back to the controlling bridge (CB). Also, if
there are load sharing groups connecting the BPE to another BPE or CB, all ports in
that group must be disabled just to sever one of the connections.
Rebooting VPEX
To reboot all attached BPEs, use the following command specifying the all option:
reboot {[time mon day year hour min sec] | cancel} {slot slot-number}
| node-address node-address | stack-topology {as-standby} | all} |
rolling}
To reboot a single BPE, use the preceding command, specifying the BPE's slot in slot-
number.
Configuration Examples
3. Remove CB configuration:
# unconfigure switch all
Restore all factory defaults and reboot? (y/N) Y
When the CB finishes rebooting, connected BPEs, extended slots, and LAGs on
cascade ports are automatically configured.
4. Apply Layer 2 configuration:
Note
Due to unconfiguring the switch, a series of questions appear to apply the
desired level of security configuration. Respond to the prompts as desired.
For more information, see Using Safe Defaults Mode on page 45.
5. If required, you can use standard show commands to troubleshoot the network from
the CB using the counters:
Note
After reboot, command prompt changes to show that you are in VPEX
mode.
3. Enable auto-configuration:
Slot-1 VPEX 465.1 # enable vpex auto-configuration
VPEX Auto-Configuration is enabled for non-MLAG configuration.
When the CB finishes rebooting, connected BPEs, extended slots, and LAGs on
cascade ports are automatically configured.
6. If required, you can use standard show commands to troubleshoot the network from
the CB using the counters:
Slot-1 VPEX 465.3 # show port 130:49-50, 120:49-50, 1:7 statistics no-refresh
Port Link Tx Pkt Tx Byte Rx Pkt Rx Byte Rx Pkt Rx Pkt Tx Pkt Tx Pkt
State Count Count Count Count Bcast Mcast Bcast Mcast
====== ===== ======= ========== ========= ========== ======= ====== ======= ======
130:1 A 97045942 6209457963 0 0 0 0 0 35
130:2 R 0 0 0 0 0 0 0 0
120:1 A 36 4715 97001731 6206623104 0 0 0 35
120:2 A 95802538 6897726741 95784987 7279063658 0 512 0 697
1:7 A 97045942 4715 97001731 6206623104 0 0 0 0
====== ===== ======== ========= ========= ========== ====== ====== ======= ======
> in Port indicates Port Display Name truncated past 8 characters
> in Count indicates value exceeds column width. Use 'wide' option or '0' to
clear.
Link State: A-Active, R-Ready, NP-Port Not Present, L-Loopback
Slot-1 VPEX 465.13 # show port 130:49-50, 120:49-50, 1:7 qosmonitor no-refresh
Port Qos Monitor
Port QP1 QP2 QP3 QP4 QP5 QP6 QP7 QP8
Pkt Pkt Pkt Pkt Pkt Pkt Pkt Pkt
Xmts Xmts Xmts Xmts Xmts Xmts Xmts Xmts
========================================================================================
130:49 119682459 0 0 0 0 0 0 45
130:50 0 0 0 0 0 0 0 0
120:49 0 0 0 0 0 0 0 45
120:50 119803233 0 0 0 0 0 0 923
1:7 119803233 0 0 0 0 0 0 923
Note
After reboot, command prompt changes to show that you are in VPEX
mode.
Note
Observe that the show slot command shows the CB as slot 1 with the two
BPEs as slots 110 and 120.
Note
Observe that the show vpex command shows that ports 1:10 and 1:20 are the
cascade ports connecting to the BPEs.
8. If required, you can use standard show commands to troubleshoot the network from
the CB using the counters:
Slot-1 VPEX 5520.3 # show port 130:49-50, 120:49-50, 1:7 statistics no-refresh
Port Link Tx Pkt Tx Byte Rx Pkt Rx Byte Rx Pkt Rx Pkt Tx Pkt Tx Pkt
State Count Count Count Count Bcast Mcast Bcast Mcast
====== ===== ======= ========== ========= ========== ======= ====== ======= ======
130:1 A 97045942 6209457963 0 0 0 0 0 35
130:2 R 0 0 0 0 0 0 0 0
120:1 A 36 4715 97001731 6206623104 0 0 0 35
120:2 A 95802538 6897726741 95784987 7279063658 0 512 0 697
1:7 A 97045942 4715 97001731 6206623104 0 0 0 0
====== ===== ======== ========= ========= ========== ====== ====== ======= ======
> in Port indicates Port Display Name truncated past 8 characters
> in Count indicates value exceeds column width. Use 'wide' option or '0' to
clear.
Link State: A-Active, R-Ready, NP-Port Not Present, L-Loopback
Slot-1 VPEX 5520.13 # show port 130:49-50, 120:49-50, 1:7 qosmonitor no-refresh
Port Qos Monitor
Port QP1 QP2 QP3 QP4 QP5 QP6 QP7 QP8
Pkt Pkt Pkt Pkt Pkt Pkt Pkt Pkt
Xmts Xmts Xmts Xmts Xmts Xmts Xmts Xmts
========================================================================================
130:49 119682459 0 0 0 0 0 0 45
130:50 0 0 0 0 0 0 0 0
120:49 0 0 0 0 0 0 0 45
120:50 119803233 0 0 0 0 0 0 923
1:7 119803233 0 0 0 0 0 0 923
This example removes the BPE at slot 101 in a four-tier cascade and connects the BPE
at slot 100 to the BPE at slot 102 (see Figure 39).
For more information about redundant CBs, see Redundant Controlling Bridges on
page 325.
Note
The CLI prompt changes to inform you that you are in orchestration mode.
Using orchestration mode enforces that all configuration commands are now
checkpointed to the MLAG peer switch.
6. Create LAGs between CB and first-tier BPEs by substituting the following
commands in step 3:
Slot-1 VPEX 5520.1 # enable sharing 1:10 group 1:10 lacp
Slot-1 VPEX 5520.2 # enable sharing 1:20 group 1:20 lacp
7. Set up the rest of the MLAG by executing the commands in the Manual
Configuration Example on page 357, inserting the following commands between
step 2 and 3:
enable mlag port 1:10 peer vpex_peer id 101
enable mlag port 1:20 peer vpex_peer id 102
When LACP shared ports are configured as MLAG ports, a LAG ID change after
MLAG peer reboot may result in MLAG ports being removed and re-added to the
aggregator.
8. To avoid the MLAG port flap, configure a common LACP MAC in both MLAG peers:
configure mlag peer peer_name lacp-mac lacp_mac_address
If the ISC port belongs to a higher port number and the MLAG port comes up before
the ISC port on reboot/failover, then it might create a short loop.
9. To avoid the short loop, configure the reload delay timer for the MLAG ports to bring
up the MLAG port with some delay:
configure mlag ports reload-delay <time>
enable mlag port reload-delay
For MLAG best practices with VPEX, see the following article: MLAG best practices with
VPEX
Note
After reboot, command prompt changes to show that you are in VPEX
mode.
3. Configure slot identifiers associated with the first-tier BPEs in cascades 1 and 2:
Slot-1 VPEX 5520.1 # configure vpex port 1:10 slot 110
WARNING: This command will remove VLAN membership from the
port 1:10.
Do you want to continue? (y/N)Yes
D - Slot Disabled
I - Insufficient Power (refer to "show power budget")
Note
Observe that the show slot command shows the CB as slot 1 with the two
BPEs as slots 110 and 120.
Note
Observe that the show vpex command shows that ports 1:10 and 1:20 are the
cascade ports connecting to the BPEs.
4. Configure slot identifiers associated with the second-tier BPEs in cascades 1 and 2:
Slot-1 VPEX 5520.1 # configure vpex port 110:49 slot 130
WARNING: This command will remove VLAN membership from the
port 110:49.
Do you want to continue? (y/N)Yes
Note
Observe that the show slot command shows the CB as slot 1 with the four
BPEs as slots 110, 120, 130, and 140.
Note
Observe that the show vpex command shows that ports 1:10, 1:20, 110:49, and
120:49 are the cascade ports connecting to the BPEs.
The CBs run ExtremeXOS software, while the BPEs run VPEX software that is either
packaged with the ExtremeXOS software or provided as a separate modification file.
The different image files are distinguishable by their file extension:
• .xos—ExtremeXOS CB-only image file (example: SummitX-22.6.0.19.xos ).
• .xmod—ExtremeXOS modification file with VPEX software for the BPEs (example:
SummitX-22.6.0.19-vpex-bpe-1.1.0.41.xmod).
Note
Starting with ExtremeXOS 30.2, the diagnostic image is in a separate xmod
file (example: onie-30.2.2.x-vpex_bpe_diag-1.0.0.1.xmod) that is not included
in the regular BPE xmod or combined list files, but is installed on the BPE
at the factory. We anticipate that you will not generally need to update this
image.
For complete information about how to perform a software upgrade, see the Software
Upgrade and Boot Options on page 1948 chapter.
Automatic Upgrading
Upgrading automatically uses .lst files, so that the CB and BPEs are upgraded together
to ensure that all hardware is up-to-date.
When the upgrade is performed, the CB is upgraded (requires a reboot), and when
the BPE boots up, it performs a version check. If the BPE image is up-to-date, the
BPE progresses to the operational state. However, if the BPE image needs to be
upgraded, the BPE retrieves the software image file from the CB, upgrades itself, and
then reboots.
1. Ensure that automatic upgrading is enabled (default behavior). Use the show vpex
command to see if automatic upgrading is enabled. If not enabled, use the enable
vpex auto-upgrade command to enable it.
2. On the first CB, install the .lst image. After installation, reboot the first CB.
3. After the first CB has finished rebooting and has synchronized all of the slot and ring
information, on the second CB, install the.lst image, and then reboot it.
Note
If you do not have automatic upgrading enabled when using redundant
CBs, and a BPE image upgrade is needed, you must reboot both CBs
simultaneously. Simultaneous reboot is required because sequential rebooting
(waiting for each to come fully operational before proceeding to reboot the
other) maintains BPE connectivity. Because the BPE does not re-attach, it is
not upgraded if needed.
After an upgrade occurs, the log shows messages similar to the following indicating
that the BPE has been upgraded:
08/04/2017 17:57:25.69 <Info:HAL.Card.Info> Slot-1: VPEX BPE slot 100 Active image VER
1.1.0.41
08/04/2017 17:53:44.52 <Info:HAL.Card.Info> Slot-1: Upgrading VPEX BPE slot 110 image
from ver 1.1.0.40 to 1.1.0.41
08/04/2017 17:53:43.70 <Info:HAL.Card.Info> Slot-1: VPEX BPE slot 120 Active image VER
1.1.0.40
Manual Upgrading
For manual upgrading, you update each CB and BPE image individually in a “rolling”
fashion.
To manually upgrade:
1. Upgrade ExtremeXOS on your first CB using .xos image file (install image, and then
reboot); do not install xmod.
2. For redundant CB topologies, repeat 1 for each redundant CB.
3. Install the xmod on each CB, and then reboot each BPE one at a time, using
reboot slot BPE slot on the master CB, allowing the upgrade and initialization to
complete for each BPE before proceeding to the next.
Note
To determine which CB is the master, use the show vpex ports
{ports_list} command. The switch with the M flag is the master CB.
Note
Rebooting a BPE tears down the connection to any additional BPEs that are
cascaded from that BPE, so proper redundancy planning is required.
Auto-peering Introduction
Auto-peering is a network of cooperating interconnected devices that create an
AutoBGP for any topology, providing fully redundant, multipath routing. The fabric
grows dynamically and freely, not bound to any well-known topology such as Clos or
Leaf/Spine.
Auto-peering nodes build a secure network by running the very scalable Border
Gateway Protocol (BGP) to exchange topology and host information about IP networks.
It uses IPv6 as the network layer to transport IPv4 and IPv6 traffic.
Auto-peering uses a combination of the Link Layer Discovery Protocol (LLDP) and
external BGP over an IPv6 Transport Layer to create the network. Auto-peering uses
LLDP to discover surrounding nodes and the node’s capabilities. LLDP is extended to
advertise networking capabilities.
Note
Auto-peering automatically creates VLANs dynamically when using the create
auto-peering bgp routerid ipaddress AS-number asNumber command.
Note
The command create auto-peering bgp routerid ipaddress AS-number
asNumber uses eBGP adjacencies. The AS number should be different for all
devices participating in the network.
After executing the command create auto-peering bgp routerid ipaddress AS-
number asNumber , the following series of events occurs, setting up the auto-peering:
1. AutoBGP capability is advertised out all ports by LLDP automatically. AutoBGP gets
its configuration using cloud connector through Zero Touch Provisioning. A Python
script initiates default VLAN and BGP configuration that is needed for AutoBGP.
2. When an AutoBGP-capable neighbor is detected out a port, LLDP notifies the
AutoBGP manager.
3. The AutoBGP manager assigns the LLDP-learned port to one of the VLANs within its
configured range and notifies VLAN manager. DHCP Relay is enabled on this VLAN.
4. AutoBGP informs LLDP of the IPv6 link-local address configured on that VLAN along
with the BGP router ID and AS number.
5. LLDP sends the AutoBGP information (IPv6 link-local, router ID, and AS number ) to
the remote neighbor and learns the remote neighbor information and then send
this to the AutoBGP manager.
6. The AutoBGP manager creates an AutoBGP route to the learned remote router ID in
route manager.
7. The AutoBGP manager creates and enables the BGP neighbor.
8. The AutoBGP is formed and host route updates occur allowing end-to-end
connectivity.
9. MBGP capability to carry VXLAN information is automatically enabled on each BGP
peer when AutoBGP is enabled. In addition BGP is registered as a client of the
Overlay Tunnel Manager (OTM), which maintains VNI/LTEP information.
10. The MBGP IPv4-VXLAN capability is used to advertise the Assisted Replication role if
it is configured as "Replicator" or "Leaf".
IPv4 Multicast sources and receivers from the access side are switched in the cloud.
AutoBGP VLANs have only v6 interfaces, so PIM-DM is enabled in v6 mode on the
network side. IPv6 network interfaces are added to the egress list of IPv4 cache entries
so that IPv4 traffic reaches auto-peering devices. PIM-DM works on flood and prune
mechanism so interfaces that have v6 and v4 neighbors or IGMP group joins receive
the multicast traffic. IPv6 PIM-enabled interfaces process the IPv4 Multicast traffic and
replicate it to the Multicast-enabled outgoing interfaces.
Limitations
• Slow path forwarding of IP Multicast traffic within an BGP auto-peering network is
not supported.
• Avoiding “loss of first packet” of IP Multicast is not supported.
• PIM should be enabled on all the auto-peering devices, so PIM snooping is not
recommended.
• PIM-SM and SSM modes are not supported within the auto-peering network.
The protocols Intermediate System to Intermediate System (ISIS) and RIP (Routing
Information Protocol) are not supported.
This information is used, with a deterministic mechanism (lowest router ID), by a switch
to place its port in standby mode. Standby mode means "Oper Status Down," and link
down. If the active port goes down, the switch in the standby mode detects this using
the same BGP mechanism, and makes its port active. Packets are reflected until BGP
convergence of Ethernet segment ID to participating nodes.
For each attached client, only one attached port per switch is allowed. By default, after
enabling auto-peering, each switch automatically supports creation of LAGs on all edge
(client) ports, and prevents creation of LAGs on all auto-peering ports.
This allows a LAG to come up on LAG-capable attached devices, and to have the port
become a forwarding bridge port in one second if attached to a non-LAG capable (or
LAG is disabled) device. If the attached device later becomes able to support LAG, LAG
automatically comes up. In the same manner, as manually executing the commands,
this produces a persistent state, and the commands appear in the configuration. This
configuration persists after reboots.
Currently, the ingress fabric router responds to all ARP (Address Resolution
Protocol)s regardless of target IP address. This is sometimes called “local proxy ARP”
and is disabled on VXLAN interfaces. Local proxy is a valid setting with non-VXLAN
VLANs and fabric routing.
• IP hosts attached to a VLAN associated with a VXLAN and having a VNI. They are
directly routed at the ingress switch with no VTEP encapsulation if the packet has a
DMAC equal to VMAC as explained below and the destination host is in the routing
table.
Normally, a host uses ARP for its default gateway when it must reach a destination
that does not match its own network/subnet. A receiving auto-peering router
responds with its virtual MAC for any ARP request whose target IP address matches
its configured IP address, and if the source IP address is of the same subnet for
which it is connected. Subsequent host packets destined to a remote host have a
destination MAC address matching the VMAC and are routed directly at the ingress
switch without VTEP encapsulation. Packets may be routed locally if any destination
host is attached to the same ingress switch, but have a different VNI or in the case
where they are connected on VLANs without VXLAN enabled. It is presumed that
forwarding routers in the path have reachability to the destination host as they are
learned using the VRRP (Virtual Router Redundancy Protocol) host mobility feature
(see VRRP Host Mobility on page 1437) and propagated by BGP throughout the
network. Any ARP packets not requesting the VIP of the auto-peering node are
consumed on the ingress switch by ARP/L2 FDB (forwarding database) and the
underlying VXLAN feature. Hence, subsequent packets with non-VMAC match FDB
entries and those destinations are sent over VXLAN tunnels.
To allow the feature, configure an IP address and subnet mask and enable IP
forwarding on a VLAN associated with a VNI. Enabling IPv6 forwarding should be not
permitted, so IPv6 traffic must be tunneled. For ExtermeXOS 22.4 and later, along
with the IPv6 restriction, this service is limited to the default VR. If VRF is required, do
not use this feature. Additionally, VRRP and host mobility should also be enabled on
the VLAN.
IP VRF Limitations
The following limitations apply to IP VRF:
• IP VRF route leaking is not supported.
• Route reflection is not supported.
• VRF is not supported for underlay routing.
• Static routes are supported per VRF, but only for external routers that are attached
on a tenant VLAN.
Asymmetric Routing
AutoBGP nodes perform asymmetric routing for EVPN type 2 IP/MAC routes that are
associated with a local virtual network identifier (VNI). They are installed into the FDB
and ARP tables. They are not installed in the VRF RTM. Locally learned IP hosts using
VRRP host-mobility may be installed in the VRF RTM. Asymmetric routing requires all
VNIs to be created and associated with a VRF on all participating nodes.
Figure 44: EVPN and Asymmetric VRF Routing in BGP Auto-peering with Routers
Supported Platforms
All ExtremeSwitching Universal platforms.
This feature requires the Base license. For more information about licenses, see the
Switch Engine Licensing Guide.
delete auto-peering
To show the status of BGP auto-peering and the learned auto-peering interfaces and
corresponding remote peer information, use the command:
OneConfig Commands
To add dynamic BOOTP relay servers that the DHCP relay agent uses to forward DHCP
traffic received from host attachments, use the following command:
To configure a list of OneConfig dynamic Auto-peering static routes, use the following
command:
To configure a list of unique values that identify the remote Auto-peering devices
to which this device can also automatically form an adjacency, use the following
command:
To configure the auto-peering TCP MD5 password devices will configure in the TCP
MD5, use the following command:
To configure the ID used by each device when automatically forming an adjacency with
an BGP Auto-peering neighbor, use the following command:
Note
An Advanced Edge or Base license must be installed on all devices.
Leaf 1
configure vlan default delete ports 1-2
create vlan “red" tag 100
configure vlan red add ports 1 untagged
configure vlan "red" ipaddress 10.1.1.1/24
enable ipforwarding vlan "red"
Leaf 2
configure vlan default delete ports 1-2
create vlan “red" tag 100
configure vlan red add ports 1 untagged
configure vlan "red" ipaddress 10.1.1.1/24
enable ipforwarding vlan "red"
Spine 1
# create auto-peering bgp routerid 10.255.2.1 AS-number 4278125057
# show auto-peering
ISSU : In Service
Router ID: 10.255.2.1
AS : 4278125057
Spine 2
# create auto-peering bgp routerid 10.255.2.2 AS-number 4278125058
# show auto-peering
ISSU : In Service
Router ID: 10.255.2.2
AS : 4278125058
Note
An Advanced Edge or Base license must be installed on all switches.
Leaf 1
create auto-peering bgp routerid 1.1.1.120 AS-number 345200
Leaf 2
create auto-peering bgp routerid 1.1.1.121 AS-number 123500
Spine 1
# create auto-peering bgp routerid 10.255.2.1 AS-number 4278125057
# show auto-peering
ISSU : In Service
Router ID: 10.255.2.1
AS : 4278125057
. . .
FBRC_VLAN_2064 None
Spine 2
# create auto-peering bgp routerid 10.255.2.2 AS-number 4278125058
# show auto-peering
ISSU : In Service
Router ID: 10.255.2.2
AS : 4278125058
Auto-peering nodes build a secure network by running the OSPFv2 protocol over
unnumbered point-to-point links to exchange database information that describes the
topology of the autonomous system.
4. LLDP sends the AutoOSPFv2 information to the remote neighbor and learns the
remote neighbor's information.
5. An Auto-peering route is created to the learned remote router ID.
6. When OSPF learns of the auto-peering dynamic VLAN, it automatically enables a
point-to-point link on that VLAN and places it in the backbone area.
7. The OSPF Auto-peering network is formed. OSPFv2 routes are propagated. The
nexthop of the routes is the neighbor’s router ID. The routes have the loose next
hop flag set so the gateway can be resolved by the auto-peering route.
8. When OSPF Auto-peering is enabled, the OSPFv2 capability to carry VXLAN
information is automatically enabled on each OSPFv2 peer.
9. VNI/LTEP pairs are passed to the OSPFv2 client which generates OSPFv2-opaque
advertisements to any peers.
10. When an OSPFv2-opaque LSA is received containing a VNI/LTEP pair, the OSPFv2
client passes this to the client interface.
Other limitations:
• One MLAG peer per node.
• Static router must be an external router per VRF.
• VLANs spanning multiple bridges, where each bridge has automatically configured
LAG connections, must be VXLAN-based or replaced with MLAG.
delete auto-peering
To view OSPFv2 and BGP auto-peering status, use the following command:
Note
The Universal Port feature is supported only on the platforms listed for this
feature in the license tables in the Switch Engine Licensing Guide
document.
The primary component of the Universal Port feature is the profile, which is a special
form of command script that runs when triggered by the events mentioned above.
Profiles execute commands and use variables as do the scripts described in Using
CLI Scripting on page 436. The primary difference is that a profile can be executed
manually or automatically in response to switch events.
Note
The term profile is distinct from the term policy because a policy is only one
particular application of a profile.
Universal Port works with the following ExtremeXOS components and third-party
products:
• ExtremeXOS Network Login
• ExtremeXOS LLDP
• ExtremeXOS CLI Scripting
• Status Monitoring and Statistics
• RADIUS Servers
• Active directory services such as LDAP and Microsoft Active Directory
The following are some examples of how you can use Universal Port on a network:
• Automatically provision a VoIP phone and the attached switch port with appropriate
PoE (Power over Ethernet) budget and QoS (Quality of Service) settings when the
phone connects.
• Create security policies that can follow a user as the user roams around a campus.
For example, an engineer can walk from Building 1 to Building 5, plug his PC into the
network and be authenticated with the appropriate access rights and ACLs.
• Support separate authentication for VoIP phones and workstations on the same
port.
• Create profile templates with variables so that you can re-use templates with
different address ranges and parameters.
• Apply different security policies for different locations (for example, a restricted area).
• Disable wireless access after business hours.
Note
Special scripts can be run when the switch boots. For more information, see
Using Autoconfigure and Autoexecute Files on page 1969.
Profile Types
The ExtremeXOS software supports two types of profiles: static and dynamic.
Static Profiles
Static profiles are so named because they are not triggered by dynamic system events.
To trigger a static profile, you must enter a command at the switch prompt or run
a script that contains the command to start a static profile. The following guidelines
apply to static profiles:
• Static profiles are not limited to individual ports and can include system-wide
configuration changes.
• Static profiles are not assigned to a port and are not specific to a device or a user.
• Changes made by static profiles are persistent. They are saved in the switch
configuration and are preserved during system reboots.
Static profiles are typically used to establish default switch settings. Using scripts and
variables, you can create static profiles that serve as templates for initializing switches
Dynamic Profiles
Dynamic profiles are so named because they are dynamically triggered by the
following types of events:
• Device discovery and disconnect
• User- or standards-based authentication and logoff
• Time of day
• Switch events reported by the EMS
Without dynamic profile support, IT personnel must be available when devices are
added, moved, or changed so they can configure both the network port and the new
device. These tasks typically take a long time, do not support mobility, and are often
prone to human error.
When dynamic profiles are configured properly and a device connects to an edge
port, a triggering event triggers a profile that runs a script to configure the port
appropriately. The script can use system run-time variables and information gathered
from tools such as Netlogin and LLDP (Link Layer Discovery Protocol) to customize
the port configuration for the current network environment. For example, the profile
can customize the port configuration based on the user ID or MAC address. Dynamic
profiles allow you to automate the network response to a variety of network events.
Dynamic profiles create temporary states. For example, if a power outage causes the
switch to restart, all ports return to the default configuration. When a triggering event
such as a specific device connection occurs again, the profile is applied again. When
the device is no longer connected, the disconnect event can trigger another profile to
unconfigure the port.
Although the switch configuration returns to the default values after a restart, there is
no automatic configuration rollback for dynamic profiles. For example, if a profile grants
secure access to network resources at user login, the configuration is not automatically
rolled back when the user logs off. To roll back the configuration at user log off, you
must create another profile that responds to user log off events.
To support configuration rollback, the scripting feature allows you to save information
used in dynamic profiles in variables. When a profile is activated and you want the
option to roll back to the previous default setting, some information must be saved,
such as the default VLAN (Virtual LAN) setting or the default configuration of a port.
Essentially anything modified from the previous setting can be preserved for future use
by the profile that rolls back the configuration.
There can be multiple profiles on a switch, but only one profile runs at a time. Data
from a trigger event is used to select the appropriate profile, and that data can also be
used to make decision points within a profile. A typical example is the use of a RADIUS
(Remote Authentication Dial In User Service) server to specify a particular profile and
then apply port-based policies to the user based on the user’s location.
Device Triggers
Device triggers launch a profile when a device connects to or disconnects from a port.
The two types of device triggers are labeled device-detect and device-undetect in the
software. Profiles that respond to these triggers are called device-detect profiles or
device-undetect profiles.
Typically, a device-detect profile is used to configure a port for the device that has just
connected.
Device triggers respond to the discovery protocols IEEE 802.1ab LLDP and ANSI/
TIA-1057 LLDP-MED for Voice-over-IP (VoIP) phone extensions. A device-detect trigger
occurs when an LLDP packet reaches a port that is assigned to a device-detect profile.
A device-undetect trigger occurs when periodically transmitted LLDP packets are not
received anymore. LLDP age-out occurs when a device has disconnected or an age-out
time has been reached. LLDP must be enabled on ports that are configured for device-
detect or device-undetect profiles. LLD P is described in LLDP.
The combination of device triggers and LLDP enables the custom configuration of
devices that connect to switch ports. For example, VoIP phones can send and receive
information in addition to normal device identification information. The information
sent through LLDP can be used to identify the maximum power draw of the device.
The switch can then set the maximum allocated power for that port.
If the switch does not have enough PoE left, the switch can take action to lower the
PoE loading and try again. The switch can also transmit additional VoIP files and call
server configuration information to the phone so the phone can register itself and
receive necessary software and configuration information.
There can only be one device-detect profile and one device-undetect profile per
port. To distinguish between different connecting devices, you can use if-then-else
statements in a profile along with detailed information provided through LLDP.
The network login feature does not permit any access beyond the port until the user or
device is authenticated.
The two types of user authentication triggers are labeled user-authenticate and user-
unauthenticated in the software. Profiles that respond to these triggers are called user-
authenticate profiles or user-unauthenticated profiles. Typically, a user-authenticate
profile is used to configure a port for a user and device that has just connected.
Likewise, a user-unauthenticated profile is used to return the port to a default
configuration after a user or device disconnects. Successful network login triggers
the user-authenticate profile, and either an explicit logout, a session time out, or a
disconnect triggers the user-unauthenticated profile.
Note
VoIP phones are also capable of being authenticated before being allowed
on the network. The phone begins 802.1X authentication based on a personal
username and password. This authentication step is available and supported
by the latest firmware from vendors such as Avaya and Mitel.
VSAs are values that are passed from the RADIUS server to the switch after successful
authentication. VSAs can be used by the switch to configure connection attributes such
as security policy, VLAN, and location. For more information on RADIUS and VSAs, see
Security on page 1082.
The following sections introduce each of the network login event types that can trigger
profiles:
• 802.1X Network Login
At login, the user supplies a user name and password, which the switch passes to the
RADIUS server for authentication. When the user passes authentication, the RADIUS
server notifies the switch, and the user-authenticate profile is triggered.
One advantage of 802.1X network login is that it can uniquely identify a user.
A disadvantage is that not all devices support 802.1X authentication. For more
information, see Network Login on page 893.
When network login detects a device with a MAC address that is configured on the
switch, the switch passes the MAC address and an optional password to the RADIUS
server for authentication. When the device passes authentication, the RADIUS server
notifies the switch, and the user-authenticate profile is triggered.
Note
MAC-based authentication can also be used to identify devices. For example,
an entire MAC address or some bits of the MAC address can identify a device
and trigger switch port auto-configuration similar to the LLDP-based device
detect event. The difference between MAC-based authentication and LLDP
authentication is that MAC-based authentication does not provide information
on the connected device. The advantage of MAC-based authentication is that it
enables non-LLDP devices to trigger profiles.
Note
UPM VSA is supported in ONEPolicy in NetLogin mode.
At login, the user supplies a user name and password through a web browser client,
which the switch passes to the RADIUS server for authentication. When the user passes
authentication, the RADIUS server notifies the switch, and the user-authenticate profile
is triggered.
Some advantages of web-based network login are that it can uniquely identify a
user and it uses commonly available web client software. Some disadvantages are a
lower level of security and the IP configuration requirement. For more information, see
Network Login on page 893.
Time Triggers
Time triggers launch a profile at a specific time of day or after a specified period of time.
For example, you can use time triggers to launch profiles at the following times:
• 6:00 p.m. every day
• One-time after 15 minutes
• One hour intervals
A profile that uses a time trigger is called a time-of-day profile. You might use a time
trigger to launch a profile to disable guest VLAN access, shut down a wireless service, or
power down a port after business hours. Time triggers enable profiles to perform timed
backups for configurations, policies, statistics, and so forth. Anything that needs to
happen on a regular basis or at a specific time can be incorporated into a time-of-day
profile. Time-of-day profiles are not limited to non-persistent-capable CLI commands
and can use any command in the ExtremeXOS CLI.
Unlike the device-detect and user-authenticate triggers, time triggers do not have an
equivalent function to the device-undetect or user-unauthenticated triggers. If you
need the ability to unconfigure changes made in a time-of-day profile, just create
another time-of-day profile to make those changes.
Profiles that respond to EMS-event triggers are called EMS-event profiles. Typically, an
EMS-event profile is used to change the switch configuration in response to a switch or
network event.
The EMS events that trigger Universal Port profiles are defined in EMS filters and can be
specified in more detail with additional CLI commands.
You can use the show log components command to display all the components and
subcomponents for which you can filter events. If you specify a filter to take action
on a component or subcomponent, any event related to that component triggers the
profile. You can use the show log events all command to display all the conditions or
events for which you can filter events. If you decide that you want to configure a profile
to take action on an ACL (Access Control List) policy change, you can add a filter for the
ACL.Policy.Change event.
You can further define an event that triggers a Universal Port profile by specifying an
event severity level and text that must be present in an event message.
When a specified event occurs, event information is passed to the Universal Port profile
in the form of variables, which can be used to modify the switch configuration.
EMS-triggered profiles allow you to configure responses for any EMS event listed
in the show log components and show log events all commands. However,
you must be careful to select the correct event and corresponding response for
each profile. For example, if you attempt to create a Universal Port log target for a
specific event (component.subcomponent.condition) and you accidentally specify a
component (component), the profile is applied to all events related to that component.
Using EMS-triggered profiles is similar to switch programming. They provide more
control and therefore more opportunity for misconfiguration.
If you need the ability to unconfigure changes made in an EMS-event profile, just create
another static or dynamic profile to make those changes.
When a device connects to a port that has a device-detect profile configured, the
switch runs the specified profile and stops. Only one device detect profile can be
configured for a port, so the same profile runs each time a device is detected on the
port. Only one device-undetect profile can be configured for a port, so the same profile
is run each time the switch detects that all previously-connected devices are no longer
connected.
go beyond the port into the network until the user is authenticated through a RADIUS
server.
Starting with ExtremeXOS 30.4, the authentication VLAN information from ONEPolicy
is passed to Netlogin, so that UPM scripts can make use of this information. Note that
dynamic VLANS are not fully supported, because a dynamic VLAN can be created prior
to the client being authenticated. In such cases, the VLAN appears as "<not found> xxx"
where "xxx" is the VLAN number, rather than the VLAN name, which usually appears.
UPM VLAN processing also does not function, because the VLAN has not yet been
created.
The switch authenticates the user through a RADIUS server, which acts as a centralized
authorization point for all network devices. The RADIUS server can contain the
authentication database, or it can serve as a proxy for a directory service database, such
as LDAP or Active Directory. The switch also supports optional backup authentication
through the local switch database when a RADIUS server is unavailable.
The RADIUS server responds to the switch and either accepts or denies user
authentication. When user authentication is accepted, the RADIUS server can also send
Vendor Specific Attributes (VSAs) in the response. The VSAs can specify configuration
data for the user such as the Universal Port profile to run for logon, a VLAN name, a user
location, and a Universal Port profile to run for logout. Extreme Networks has defined
vendor specific attributes that specify configuration settings and can include variables
to be processed by the Universal Port profile. If profile information is not provided by
the RADIUS server, the user-authenticate profile is used.
Profiles are stored and processed on the switch. When a user name or MAC address
is authenticated, the switch places the appropriate port in forwarding mode and
runs either a profile specified by the RADIUS server, or the profile defined for the
authentication event. The profile configures the switch resources for the user and stops
running until it is activated again.
When a user or MAC address is no longer active on the network, due to logoff,
disconnect, or inactivity, user unauthentication begins.
The preferred unauthenticate profile is one specified by the RADIUS server during
authentication. If no unauthenticate profiles are specified, the switch runs the
authenticate profile used to authenticate the user or device.
Obtaining Profiles
You can write your own profiles.
You can obtain profiles from the Extreme Networks website, another Extreme Networks
user or partner, or Extreme Networks professional services.
Sample profiles are listed in Sample Universal Port Configurations on page 413.
The Universal Port Handset Provisioning Module is a collection of profiles and
documentation that is available with other samples on the Extreme Networks website.
Profile Rules
All profiles have the following restrictions:
• Maximum 5000 characters in a profile.
• Maximum 128 profiles on a switch.
• Profiles are stored as part of the switch configuration file.
• Copy and paste is the only method to transfer profile data using the CLI.
• Unless explicitly preceded with the command configure cli mode persistent, all
non-persistent-capable commands operate in non-persistent mode when operating
in dynamic profiles.
• Unless explicitly preceded with the command configure cli mode non-
persistent, all non-persistent-capable commands operate in persistent mode
when operating in static profiles.
Note
There is no profile hierarchy, which means users must verify there are no
conflicting rules in static and dynamic profiles. This is a normal requirement
for ACLs, and is standard when using policy files or dynamic ACLs.
When the switch is configured to allow non-persistent-capable commands
to operate in non-persistent mode, the switch configuration related to the
non-persistent commands is not saved to the configuration file. This behavior
enables the ports to return to their initial state when a reboot or power
cycle occurs. You can view the configuration changes made by non-persistent
commands through the application's show commands, but the changes do
not appear in show configuration {module-name} {detail} .
You can configure multiple user profiles on a port or a group of ports. For instance,
you might create user-authentication profiles for different groups of users, such as
Engineering, Marketing, and Sales.
You can also configure a device-triggered profile on a port that supports one or more
user profiles. However, you can configure only one device-triggered profile on a port.
Commands that are executed in persistent mode become part of the saved switch
configuration that persists when the switch is rebooted. Commands that are executed
in non-persistent mode configure temporary changes that are not saved in the switch
configuration and do not persist when the switch is rebooted.
Most commands operate only in persistent mode. The subset of commands that
operate in non-persistent mode are called non-persistent-capable commands. The
Universal Port feature uses the non-persistent-capable commands to configure
temporary changes that could create security issues if the switch were rebooted or
reset. The use of non-persistent-capable commands in scripts and Universal Port
profiles allows you to make temporary configuration changes without affecting the
default configuration the next time the switch is started.
LLDP Commands
Port Commands
disable inline-power
enable inline-power
VLAN Commands
QOS/Rate-limiting Commands
Show Commands
By default, all commands operate in persistent mode with the following exceptions:
• In Universal Port dynamic profiles, the non-persistent-capable commands operate
in non-persistent mode unless preceded by the configure cli mode persistent
command in the profile.
• In the CLI, CLI scripts, and static profiles, the non-persistent-capable commands
operate in non-persistent mode only when preceded by the configure cli mode
non-persistent command.
You can use the configure cli mode persistent command and the configure cli
mode non-persistent command to change the mode of operation for non-persistent-
capable commands multiple times within a script, profile, or configuration session.
Variables allow you to create profiles and scripts that respond to the state of the switch
as defined in the variables. When a profile is triggered, the system passes variables to
the profile. You can also create and use variables of your own. User-defined variables are
limited to the current context unless explicitly saved.
Note
You must enable CLI scripting before using variables or executing a script.
If you save variables (as described in Saving, Retrieving, and Deleting Session Variables
on page 447), certain data from one profile can be reused in another profile for another
event. For example, between login and logout events, the data necessary for the
rollback of a port configuration can be shared.
The following sections describe the variables that are available to profiles:
• Common Variables
• User Profile Variables
• Device Detect Profile Variables
• Event Profile Variables
Common Variables
Table 29 shows the variables that are always available for use by any script. These
variables are set up for use before a script or profile is executed.
As described in LLDP, LLDP is a protocol that can be used to collect information about
device capabilities from attached devices or supplicants.
To use Universal Port with LLDP, you must enable LLDP on the port.
Note
Avaya and Extreme Networks have developed a series of extensions for
submission to the standards consortium for inclusion in a later version of the
LLDP-MED standard:
• Avaya Power conservation mode
• Avaya file server
• Avaya call server
Note
LLDP is tightly integrated with IEEE 802.1X authentication at edge ports. When
used together, LLDP information from authenticated end point devices is
trustable for automated configuration purposes. This tight integration between
802.1X and LLDP protects the network from automation attacks.
• VLAN Name
• Port VLAN ID
• Power Conservation Mode
• Avaya File Server
• Avaya Call server
• 802.1Q Framing
No single overview procedure can cover all the possible Universal Port configurations.
The following sections provide overviews of the common types of Universal Port
configurations.
Device-Detect Configurations
A Universal Port device-detect configuration requires only a switch and supplicants.
If PoE devices will connect to the switch, the switch should support PoE. Supplicants
should support LLDP in the applicable software or firmware.
Note
To support supplicant configuration, you might consider adding a DHCP server
to your network.
Use the following procedure to configure Universal Port for device detection:
User-Authentication Configurations
A Universal Port user-authenticate configuration requires specific components:
• An Extreme Networks switch, which might need to include PoE support.
• RADIUS server for user authentication and VSA transmission.
• Supplicants that support the authentication method you select. LLDP support is
recommended, but is optional when MAC address authentication is used.
Note
To support supplicant configuration, you might consider adding a DHCP server
to your network. For VoIP applications, you can use a TFTP server and a call
server to provide for additional supplicant configuration.
Use the following procedure to configure Universal Port for user login:
1. Configure the RADIUS server as described in Security on page 1082. The configuration
should include the following:
• User ID and password for RADIUS clients.
• Extreme Networks custom VSAs.
• Addition of the edge switch as a RADIUS client.
Time-of-Day Configurations
To configure Universal Port to use a time-of-day profile, use the following procedure:
1. Create a profile as described in Creating and Configuring New Profiles on page 408.
2. Create and configure a timer as described in Configuring a Universal Port Timer on
page 409.
3. Create the timer trigger and attach it to the profile as described in Configuring a
Timer Trigger on page 409.
EMS-Event Configurations
To configure Universal Port to use an EMS-event profile, use the following procedure:
1. Create the EMS-Event profile as described in Creating and Configuring New Profiles
on page 408.
2. Create and configure an event filter to identify the trigger event as described in
Creating an EMS Event Filter on page 410.
3. Create the event trigger and attach it to the profile and filter as described in
Configuring an EMS Event Trigger on page 410.
4. Enable the event trigger as described in Enabling and Disabling an EMS Event
Trigger on page 410.
This proxy mode is configured between the RADIUS server and the central directory
service. Once configured, supplicants can be authenticated from the central directory
service.
Note
In the CLI, “upm” is used as an abbreviation for the Universal Port feature.
The example above creates a log entry and sets some variables, but it is not
complete. This example shows that after you enter the create upm profile
command, you can enter system commands. When you have finished entering
commands, you can exit the profile creation mode by typing the period character
( . ) at the start of a line and pressing [Enter].
Replace upm-event with one of the device event trigger types: device-detect or device-
undetect.
Replace upm-event with one of the device event trigger types: user-authenticate or
user-unauthenticated.
configure upm timer timer-name at month day year hour min secs {every
seconds}
Replace timerName with the timer name and profileName with the profile name.
1. Create a log filter to identify the event by using the following command:
create log filter name {copy filter name}
2. Configure the log filter using the following commands:
configure log filter name [add | delete] {exclude} events [event-
condition | [all | event-component] {severity severity {only}}]
configure log filter name [add | delete] {exclude} events [event-
condition | [all | event-component] {severity severity {only}}] [match
| strict-match] type value
1. Create a log target to receive the event notification by using the following
command:
create log target upm {upm_profile_name}
2. Configure the log target to specify a filter and any additional parameters that define
the event by using the following commands:
configure log target upm {upm_profile_name} filter filter-name
{severity [[severity] {only}]}
configure log target upm {upm_profile_name} match {any | regex}
To enable an EMS event trigger or disable a previously enabled trigger, use the
following commands:
Unconfiguring a Timer
To unconfigure a timer, use the following command:
Note
Variables are not validated for correct syntax.
Example:
If the variables keyword is not present, but an event variable is specified, you are
prompted for various environment variables appropriate for the event, including the
VSA string for user authentication.
Displaying a Profile
To display a profile, use the following command:
Displaying Timers
Display a list of timers and associated timer information.
To display a list of Universal Port events for one of the above triggers, use the following
command:
You can use the commands described earlier in this section to view information about
the profile and how it behaves.
Because Universal Port works with multiple switch features, you might want to enter
commands to examine the configuration of those features.
The following commands are an example of some of the commands that can provide
additional information about profile operation.
Run:
show lldp
show lldp neighbors
show log
show netlogin
The status column displays the status of the last command executed in a profile. If
the last command was successful, the status shows “pass”; otherwise, the status shows
“failed”. If you wish to terminate the execution of a profile on encountering the first
error, you must include the line “configure cli scripting mode abort-on-error” in
the beginning of the profile. Otherwise, the profile executes all the commands even if
an error was encountered and displays the status of the last command executed.
• To see a tabular display showing the complete history of the last 100 profiles, use the
following command:
show upm history {profile profile-name | event upm-event | status
[pass | fail] | timer timer-name | detail}
Use the detail keyword to display the actual executions that happened when the
profile was run.
• To display a specific execution that was run, use the following command:
show upm history exec-id number
Select the exec-id number from the list in the tabular display.
To disable a profile or enable a previously disabled profile, use the following commands:
Deleting a Profile
To delete a profile, use the following command:
Deleting a Timer
To delete a timer, use the following command:
Note
You can also use the Identity Management feature to configure ports in
response to MAC device detection events. For more information, see Identity
Management.
Switch Configuration
The general switch configuration is as follows:
#Vlan config
create vlan v1
configure v1 add ports 1:17-1:18
configure vlan v1 ipadd 192.168.10.1/24
#mac tracking config
create fdb mac-tracking entry 00:01:02:03:04:01
create fdb mac-tracking entry 00:01:02:03:04:02
create fdb mac-tracking entry 00:01:02:03:04:03
create fdb mac-tracking entry 00:01:02:03:04:04
create fdb mac-tracking entry 00:01:02:03:04:05
#Log filter configuration
create log filter macMoveFilter
configure log filter "macMoveFilter" add events "FDB.MACTracking.MACMove"
#Meter configuration for ingress /egress rate limit
create meter m1
configure meter m1 peak-rate 250 mbps
create meter m2
configure meter m2 peak-rate 500 mbps
Profile Configuration
The profile is configured as follows:
Console Logs
The following show commands display the switch configuration:
The following show commands display the switch status after a MAC address move:
==================================
(debug) BD-12804.7 # show log
05/14/2009 11:33:54.89 <Noti:ACL.Policy.bind> MSM-A:
Policy:bind:egress_limit:vlan:*:port:*:
05/14/2009 11:33:54.89 <Info:pm.config.loaded> MSM-A: Loaded Policy: egress_limit number
of entries 1
05/14/2009 11:33:54.89 <Info:pm.config.openingFile> MSM-A: Loading policy egress_limit
from file /config/egress_limit.pol
05/14/2009 11:33:54.89 <Noti:ACL.Policy.bind> MSM-A:
Policy:bind:ingress_limit:vlan:*:port:1:18:
05/14/2009 11:33:54.88 <Noti:ACL.Policy.bind> MSM-A:
Policy:bind:ingress_limit:vlan:v1:port:*:
05/14/2009 11:33:54.87 <Info:pm.config.loaded> MSM-A: Loaded Policy: ingress_limit number
of entries 1
05/14/2009 11:33:54.87 <Info:pm.config.openingFile> MSM-A: Loading policy ingress_limit
from file /config/ingress_limit.pol
05/14/2009 11:33:54.72 <Noti:UPM.Msg.upmMsgExshLaunch> MSM-A: Launched profile macMove
for the event log-message
A total of 8 log messages were displayed.
* (debug) BD-12804.8 # show upm history
--------------------------------------------------------------------------------
Exec Event/ Profile Port Status Time Launched
Id Timer/ Log filter
--------------------------------------------------------------------------------
1 Log-Message(macMoveF macMove --- Pass 2009-05-14 11:33:54
--------------------------------------------------------------------------------
Number of UPM Events in Queue for execution: 0
* (debug) BD-12804.9 # sh upm history detail
UPM Profile: macMove
Event: Log-Message(macMoveFilter)
Profile Execution start time: 2009-05-14 11:33:54
Profile Execution Finish time: 2009-05-14 11:33:54
Execution Identifier: 1 Execution Status: Pass
Execution Information:
1 # enable cli scripting
2 # configure cli mode non-persistent
3 # set var EVENT.NAME LOG_MESSAGE
4 # set var EVENT.LOG_FILTER_NAME "macMoveFilter"
5 # set var EVENT.LOG_DATE "05/14/2009"
6 # set var EVENT.LOG_TIME "11:33:54.72"
7 # set var EVENT.LOG_COMPONENT_SUBCOMPONENT "FDB.MACTracking"
8 # set var EVENT.LOG_EVENT "MACMove"
9 # set var EVENT.LOG_SEVERITY "Notice"
10 # set var EVENT.LOG_MESSAGE "The MAC address %0% on VLAN '%1%' has moved from port %2%
to port %3%"
11 # set var EVENT.LOG_PARAM_0 "00:01:02:03:04:05"
12 # set var EVENT.LOG_PARAM_1 "v1"
13 # set var EVENT.LOG_PARAM_2 "1:17"
14 # set var EVENT.LOG_PARAM_3 "1:18"
15 # set var EVENT.PROFILE macMove
16 # enable cli scripting
17 # create access-list dacl1 "source-address 192.168.10.0/24 " "permit ;count dacl1"
#********************************
# Last Updated: April 11, 2007
# Tested Phones: Avaya 4610, 4620, 4625
# Requirements: LLDP capable devices
#********************************
# @MetaDataStart
# @ScriptDescription "This is a template for configuring network parameters for VoIP
phones support LLDP but without authentication. The module is triggered through the
detection of an LLDP packet on the port. The following network side configuration is
done: enable SNMP traps, QOS assignment, adjust POE reservation values based on device
requirements, add the voiceVlan to the port as tagged. "
# @VariableFieldLabel "Voice VLAN name"
set var voicevlan voiceavaya
# @VariableFieldLabel "Send trap when LLDP event happens (true or false)"
set var sendTraps false
# @VariableFieldLabel "Set QoS Profile (true or false)"
set var setQuality false
# @MetaDataEnd
#
if (!$match($EVENT.NAME,DEVICE-DETECT)) then
create log message Starting_LLDP_Generic_Module_Config
# VoiceVLAN configuration
configure vlan $voicevlan add port $EVENT.USER_PORT tagged
#SNMP Trap
if (!$match($sendTraps,true)) then
create log message Config_SNMP_Traps
enable snmp traps lldp ports $EVENT.USER_PORT
enable snmp traps lldp-med ports $EVENT.USER_PORT
else
disable snmp traps lldp ports $EVENT.USER_PORT
disable snmp traps lldp-med ports $EVENT.USER_PORT
endif
#Link Layer Discovery Protocol-Media Endpoint Discover
create log message Config_LLDP
configure lldp port $EVENT.USER_PORT advertise vendor-specific med capabilities
configure lldp port $EVENT.USER_PORT advertise vendor-specific dot1 vlan-name vlan
$voicevlan
configure lldp port $EVENT.USER_PORT advertise vendor-specific med policy application
voice vlan $voicevlan dscp 46
configure lldp port $EVENT.USER_PORT advertise vendor-specific med power-via-mdi
#Configure POE settings per device requirements
create log message Config_POE
configure inline-power operator-limit $EVENT.DEVICE_POWER ports $EVENT.USER_PORT
#QoS Profile
if (!$match($setQuality,true)) then
create log message Config_QOS
configure port $EVENT.USER_PORT qosprofile qp7
endif
endif
if (!$match($EVENT.NAME,DEVICE-UNDETECT) && $match($EVENT.DEVICE_IP,0.0.0.0)) then
create log message Starting_LLDP_Generic_UNATUH_Module_Config
if (!$match($sendTraps,true)) then
create log message UNConfig_SNMP_Traps
disable snmp traps lldp ports $EVENT.USER_PORT
disable snmp traps lldp-med ports $EVENT.USER_PORT
endif
create log message UNConfig_LLDP
This is a template for configuring network parameters for 802.1X authenticated devices.
The module is triggered through successful authentication or unauthentication of the
device.
#***********************************************
# Last Updated: April 11, 2007
# Tested Phones: Avaya 4610, 4620, 4625
# Requirements: 802.1X capable devices, netlogin configured and enabled on deployment
ports
#***********************************************
# @MetaDataStart
# @ScriptDescription "This is a template for configuring network parameters for 802.1X
authenticated devices. The module is triggered through successful authentication of the
device. The following network side configuration is done: QOS assignment and enables DOS
protection. When used with IP phones, phone provisioning is done through DHCP options."
# @Description "VLAN name to add to port"
set var vlan1 voiceavaya
# @VariableFieldLabel "Set QoS Profile (yes or no)"
set var setQuality yes
# @Description "QoS Profile (0-100)"
set var lowbw 50
# @VariableFieldLabel "QoS MAX Bandwidth (0-100)"
set var highbw 100
# @VariableFieldLabel "Enable Denial of Service Protection (yes or no)"
set var dosprotection yes
# @MetaDataEnd
##################################
# Start of USER-AUTHENTICATE block
##################################
if (!$match($EVENT.NAME,USER-AUTHENTICATED)) then
############
#QoS Profile
############
# Adds a QOS profile to the port
if (!$match($setQuality,yes)) then
create log message Config_QOS
configure port $EVENT.USER_PORT qosprofile qp7
configure qosprofile qp7 minbw $lowbw maxbw $highbw ports $EVENT.USER_PORT
endif
#
########################
#Security Configurations
########################
#********************************
# Last Updated: April 11, 2007
# Tested Phones: SW4610, SW4620
# Requirements: 802.1X authentication server, VSA 203 and VSA 212 from authentiication
server. QP7 defined on the switch
#********************************
# @MetaDataStart
# @ScriptDescription "This is a template for configuring LLDP capable Avaya phones using
the authentication trigger. This module will provision the phone with the following
parameters: call server, file server, dot1q, dscp, power. Additionally the following
network side configuration is done: enable SNMP traps and QOS assignment"
# @VariableFieldLabel "Avaya phone call server IP address"
set var callserver 192.45.95.100
# @VariableFieldLabel "Avaya phone file server IP address"
set var fileserver 192.45.10.250
# @VariableFieldLabel "Send trap when LLDP event happens (true or false)"
set var sendTraps true
# @VariableFieldLabel "Set QoS Profile (true or false)"
set var setQuality true
# @MetaDataEnd
#
if (!$match($EVENT.NAME,USER-AUTHENTICATED)) then
create log message Starting_Avaya_VOIP_802.1X_AUTH_Module_Config
if (!$match($sendTraps,true)) then
enable snmp traps lldp ports $EVENT.USER_PORT
enable snmp traps lldp-med ports $EVENT.USER_PORT
else
disable snmp traps lldp ports $EVENT.USER_PORT
This profile creates and configures EAPS (Extreme Automatic Protection Switching) on
the edge switch for connecting to the aggregation switch, creates specific VLANs and
assigns tags, configures network login, and configures the RADIUS client component
on the switch.
#***********************************************
# Last Updated: May 11, 2007
# Tested Devices: SummitX EXOS 12.0
# Description: This profile configures the switch with an EAPs ring, creates specified
# vlans, configure network login, RADIUS.
#***********************************************
# @MetaDataStart
# @ScriptDescription “This is a template for configuring network parameters for edge
Summit devices. The profile will configure the listed features: EAPs ring, Network
login, 802.1X, vlans, and default routes.”
# @VariableFieldLabel “Create EAPs ring? (yes or no)”
set var yneaps yes
# @VariableFieldLabel “Name of EAPs domain”
set var eapsdomain upm-domain
# @VariableFieldLabel “Primary port number”
set var eapsprimary 23
# @VariableFieldLabel “Secondary port number”
set var eapssecondary 24
# @VariableFieldLabel “Name of EAPs control VLAN”
set var eapsctrl upm_ctrl
# @VariableFieldLabel “Tag for EAPs control VLAN”
set var eapsctrltag 4000
# @VariableFieldLabel “Create standard VLANs? (yes or no)”
set var ynvlan yes
# @VariableFieldLabel “Name of Voice vlan”
set var vvoice voice
# @VariableFieldLabel “Voice VLAN tag”
set var vvoicetag 10
# @VariableFieldLabel “Voice VLAN virtual router”
set var vvoicevr vr-default
# @VariableFieldLabel “Name of Security Video”
set var vidsec vidcam
# @VariableFieldLabel “Security Video VLAN tag”
set var vidsectag 40
# @VariableFieldLabel “Security Video VLAN virtual router”
set var vidsecvr vr-default
# @VariableFieldLabel “Name of Data vlan”
set var vdata datatraffic
# @VariableFieldLabel “Data VLAN tag”
set var vdatatag 11
# @VariableFieldLabel “Data VLAN virtual router”
set var vdatavr vr-default
# @VariableFieldLabel “Enable Network Login? (yes or no)”
set var ynnetlogin yes
# @VariableFieldLabel “RADIUS Server IP Address”
set var radserver 192.168.11.144
# @VariableFieldLabel “RADIUS Client IP Address”
set var radclient 192.168.11.221
# @VariableFieldLabel “RADIUS Server Shared Secret”
set var radsecret goextreme
# @VariableFieldLabel “Network Login port list”
set var netloginports 1-20
# @MetaDataEnd
##################################
# Start of EAPs Configuration block
##################################
if (!$match($yneaps,yes)) then
create log message Config_EAPs
config eaps config-warnings off
create eaps $eapsdomain
config eaps $eapsdomain mode transit
config eaps $eapsdomain primary port $eapsprimary
config eaps $eapsdomain secondary port $eapssecondary
create vlan $eapsctrl
config $eapsctrl tag $eapsctrltag
config $eapsctrl qosprofile qp8
config $eapsctrl add port $eapsprimary tagged
config $eapsctrl add port $eapssecondary tagged
config eaps $eapsdomain add control vlan $eapsctrl
enable eaps
enable eaps $eapsdomain
else
create log message EAPs_Not_Configured
endif
############
#VLAN Config
############
if (!$match($ynvlan,yes)) then
create log message CreateStandardVLANs
create vlan $vvoice vr $vvoicevr
config vlan $vvoice tag $vvoicetag
config vlan $vvoice add port $eapsprimary tagged
config vlan $vvoice add port $eapssecondary tagged
config eaps $eapsdomain add protected $vvoice
enable lldp ports $netloginports
create qosprofile qp5
config vlan $vvoice ipa 192.168.10.221
#
create vlan $vidsec vr $vidsecvr
config vlan $vidsec tag $vidsectag
config vlan $vidsec add port $eapsprimary tagged
config vlan $vidsec add port $eapssecondary tagged
config eaps $eapsdomain add protected $vidsec
config vlan $vidsec ipa 192.168.40.221
#
create vlan $vdata vr $vdatavr
config vlan $vdata tag $vdatatag
config vlan $vdata add port $eapsprimary tagged
config vlan $vdata add port $eapssecondary tagged
config eaps $eapsdomain add protected $vdata
config vlan $vdata ipa 192.168.11.221
# config ipr add default 192.168.11.254 vr vr-default
else
create log message NoVLANsCreated
endif
############
#RADIUS & Netlogin
############
if (!$match($ynnetlogin,yes)) then
create log message ConfigNetlogin
#configure $vdata ipaddress 192.168.11.221
create vlan nvlan
config netlogin vlan nvlan
config default del po $netloginports
enable netlogin dot1x
enable netlogin mac
enable netlogin ports $netloginports dot1x mac
config netlogin ports $netloginports mode mac-based-vlans
config radius netlogin primary server $radserver client-ip $radclient vr VR-Default
config radius netlogin primary shared-secret $radsecret
enable radius netlogin
config netlogin add mac-list 00:19:5B:D3:e8:DD
else
create log message NoNetlogin
endif
# Configure the RADIUS server for the userID and password pair.
# For FreeRADIUS, edit the users file located at /etc/raddb/users as shown in the
# following lines.
#
#Sample entry of using an individual MAC addresses
00040D50CCC3 Auth-Type := EAP, User-Password == "00040D50CCC3"
Extreme-Security-Profile = "phone LOGOFF-PROFILE=clearport;",
Extreme-Netlogin-VLAN = voice
#Sample entry of using wildcard MAC addresses (OUI Method)
00040D000000 Auth-Type := EAP, User-Password == "1234"
Extreme-Security-Profile = "phone LOGOFF-PROFILE=clearport;",
Extreme-Netlogin-VLAN = voice
#Sample entry of using numeric UserID and password
10284 Auth-Type := EAP, User-Password == "1234"
Extreme-Security-Profile = "voip LOGOFF-PROFILE=voip",
Extreme-Netlogin-Vlan = voice
#Sample entry of using a text UserID and password
Sales Auth-Type := EAP, User-Password == "Money"
Extreme-Security-Profile = "Sales-qos LOGOFF-PROFILE=Sales-qos",
Extreme-Netlogin-Vlan = v-sales
# Define the Extreme custom VSAs on RADIUS.
# For FreeRADIUS, edit the dictionary file located at //etc/raddb/dictionary to
# include the following details:
VENDOR Extreme 1916
The rest of this example demonstrates the configuration that takes place at the
ExtremeXOS switch:
Start typing the profile and end with a . as the first and the only character on a line.
Use - edit upm profile <name> - for block mode capability
create log message STARTING_Script_CLEARPORT_on_$EVENT.USER_PORT
unconfigure lldp port $EVENT.USER_PORT
create log message LLDP_Info_Cleared_on_$EVENT.USER_PORT
unconfigure inline-power operator-limit ports $EVENT.USER_PORT
create log message POE_Settings_Cleared_on_$EVENT.USER_PORT
create log message FINISHED_Script_CLEARPORT_on_$EVENT.USER_PORT
.
* switch 2 #
# Configure RADIUS on the edge switch.
#
* switch 4 # config radius primary server 192.168.11.144 client-ip 192.168.10.4 vr "VR-
Default"
* switch 5 # config radius primary shared-secret purple
# Configure Network Login on the edge switch.
#
For Network Login 802.1X, use the following command:
* switch 7 # create vlan nvlan
* switch 8 # config netlogin vlan nvlan
* switch 9 # enable netlogin dot1x
* switch 10 # enable netlogin ports 11-20 mode mac-based-vlans
* switch 11 # enable radius netlogin
#
# For Network Login MAC-based or OUI method, use the following command:
* switch 7 # create vlan nvlan
* switch 8 # config netlogin vlan nvlan
* switch 9 # enable netlogin mac
* switch 10 # config netlogin add mac-list 00:04:0D:00:00:00 24 1234
* switch 11 # enable radius netlogin
# Assign the user-authenticate profile to the edge port.
#
* switch 12 # configure upm event user-authenticate profile "phone" ports 11-20
* switch 13 #
# Assign the user-unauthenticate profile to the edge port.
#
* switch 14 # configure upm event user-unauthenticated profile "clearport" ports 11-20
* switch 15 #
# Check that the correct profiles are assigned to the correct ports.
#
* switch 16 # show upm profile
===========================================================
UPM Profile Events Flags Ports
===========================================================
phone User-Authenticated e 11-20
clearport User-Unauthenticated e 11-20
===========================================================
Number of UPM Profiles: 5
Number of UPM Events in Queue for execution: 0
Flags: d - disabled, e - enabled
Event name: log-message(Log filter name) - Truncated to 20 chars
# Enable LLDP message advertisements on the ports.
#
* switch 17 # enable lldp ports 11-20
When the user or phone logs in with a particular MAC address, the script configures the
QoS profile configured by the user in the RADIUS server for the USER-AUTHENTICATED
event. In this example, the user sets the QoS profile to be qp8.
You must configure network login, the RADIUS server, and Universal Port on the switch
as part of the user log-in authentication process. For more information on configuring
the RADIUS users file, see Security on page 1082.
The following example is an entry in the RADIUS users file for the MAC address of the
phone:
Should these loops develop, they can cause network degradation and eventually crash
the network by duplicating too many Ethernet frames. By leveraging Universal Port
and the Extreme Loop Recovery Protocol (ELRP) as shown in example below, it is not
only possible to detect and isolate the egress port, but it is also possible to disable the
egress port to break loops.
Note
This example illustrates how to create an event profile that reconfigures the
switch after an event. After this example was created, ELRP was updated with
the capability to disable a port without the help of an event profile. For more
information, see Using ELRP to Perform Loop Tests on page 1989.
When a loop is detected on ports where ELRP is enabled and configured, ELRP logs a
message using the following format:
To view more information on format of this command, enter the show log events
command as shown in the following example:
In the example log statement, the VLAN ksu, the ports is all, and the interval is “1.”
If a loop is detected, we want to disable the egress port on which the ELRP control
packets went out. In this example, we enable ELRP on all ports of a VLAN as follows:
configure elrp-client periodic vlan ports all interval 1 seconds
We want the profile to disable egress ports 1 and 24 (which have been configured for
loop). If we enable ELRP on only one port, then the port alone would be disabled.
We observe that parameter 7 is the one we have to disable from the above log message
and the details for that event.
2. Verify that the profile is created and enabled by entering the following command:
show upm profile
6. To view the profile execution history, enter the show upm history command.
f you want to see the more details, enter the show upm history details command to
see all the profiles or display information on a specific event by entering the exec-id.
7. To view the configuration, use the show config upm and show config ems
commands.
#********************************
# Last Updated: March 20, 2007
# Tested Phones: Avaya 4610, 4620, 4625
# Requirements: LLDP capable devices
#********************************
# @META_DATA_START
# @FileDescription "This is a template for configuring network parameters for VoIP phones
support LLDP but without 802.1X authentication. The module is triggered through the
detection of an LLDP packet on the port. The following network side configuration is
done: enable SNMP traps, QOS assignment, adjust POE reservation values based on device
requirements, add the voiceVlan to the port as tagged."
# @Description "Voice VLAN name"
set var voicevlan voice
# @Description "Send trap when LLDP event happens (true or false)"
set var sendTraps false
# @Description "Set QoS Profile (true or false)"
set var setQuality false
# @META_DATA_END
#
if (!$match($EVENT.NAME,DEVICE-DETECT)) then
create log message Starting_LLDP_Generic_Module_Config
# VoiceVLAN configuration
configure vlan $voicevlan add port $EVENT.USER_PORT tagged
#SNMP Trap
if (!$match($sendTraps,true)) then
create log message Config_SNMP_Traps
enable snmp traps lldp ports $EVENT.USER_PORT
enable snmp traps lldp-med ports $EVENT.USER_PORT
else
disable snmp traps lldp ports $EVENT.USER_PORT
disable snmp traps lldp-med ports $EVENT.USER_PORT
endif
#Link Layer Discovery Protocol-Media Endpoint Discover
create log message Config_LLDP
configure lldp port $EVENT.USER_PORT advertise vendor-specific med capabilities
configure lldp port $EVENT.USER_PORT advertise vendor-specific dot1 vlan-name vlan
$voicevlan
configure lldp port $EVENT.USER_PORT advertise vendor-specific med policy application
voice vlan $voicevlan dscp 46
configure lldp port $EVENT.USER_PORT advertise vendor-specific med power-via-mdi
#Configure POE settings per device requirements
create log message Config_POE
configure inline-power operator-limit $EVENT.DEVICE_POWER ports $EVENT.USER_PORT
#QoS Profile
if (!$match($setQuality,true)) then
create log message Config_QOS
configure port $EVENT.USER_PORT qosprofile qp7
endif
endif
if (!$match($EVENT.NAME,DEVICE-UNDETECT) && $match($EVENT.DEVICE_IP,0.0.0.0)) then
create log message Starting_LLDP_Generic_UNATUH_Module_Config
if (!$match($sendTraps,true)) then
create log message UNConfig_SNMP_Traps
disable snmp traps lldp ports $EVENT.USER_PORT
disable snmp traps lldp-med ports $EVENT.USER_PORT
endif
create log message UNConfig_LLDP
unconfig lldp port $EVENT.USER_PORT
if (!$match($setQuality,true)) then
create log message UNConfig_QOS
unconfig qosprofile ports $EVENT.USER_PORT
endif
unconfig inline-power operator-limit ports $EVENT.USER_PORT
endif
if (!$match($EVENT.NAME,DEVICE-UNDETECT) && !$match($EVENT.DEVICE_IP,0.0.0.0)) then
create log message DoNothing_0.0.0.0
create log message $EVENT.TIME
endif
create log message End_LLDP_Generic_Module_Config
#***********************************************
# Last Updated: April 6, 2007
# Tested Phones: Avaya 4610, 4620, 4625
# Requirements: 802.1X capable devices, netlogin configured and enabled on deployment
ports
#***********************************************
# @META_DATA_START
# @FileDescription "This is a template for configuring network parameters for 802.1X
authenticated devices. The module is triggered through successful authentication of the
device. The following network side configuration is done: QOS assignment and enables DOS
protection. When used with IP phones, phone provisioning is done through DHCP options."
#********************************
# Last Updated: March 20, 2007
# Tested Phones: SW4610, SW4620
# Requirements: 802.1X authentication server, VSA 203 and VSA 212 from authentiication
server. QP7 defined on the switch#
********************************
# @META_DATA_START
# @FileDescription "This is a template for configuring LLDP capable Avaya phones using
the authentication trigger. This module will provision the phone with the following
parameters: call server, file server, dot1q, dscp, power. Additionally the following
network side configuration is done: enable SNMP traps and QOS assignment."
# @Description "Avaya phone call server IP address"
set var callserver 192.45.95.100
# @Description "Avaya phone file server IP address"
set var fileserver 192.45.10.250
# @Description "Send trap when LLDP event happens (true or false)"
set var sendTraps true
# @Description "Set QoS Profile (true or false)"
set var setQuality true
# @META_DATA_END
#
if (!$match($EVENT.NAME,USER-AUTHENTICATED)) then
create log message Starting_Avaya_VOIP_802.1X_AUTH_Module_Config
if (!$match($sendTraps,true)) then
enable snmp traps lldp ports $EVENT.USER_PORT
enable snmp traps lldp-med ports $EVENT.USER_PORT
else
disable snmp traps lldp ports $EVENT.USER_PORT
disable snmp traps lldp-med ports $EVENT.USER_PORT
endif
enable lldp port $EVENT.USER_PORT
configure lldp port $EVENT.USER_PORT advertise vendor-specific dot1 vlan-name
configure lldp port $EVENT.USER_PORT advertise vendor-specific avaya-extreme call-server
$callserver
configure lldp port $EVENT.USER_PORT advertise vendor-specific avaya-extreme file-server
$fileserver
configure lldp port $EVENT.USER_PORT advertise vendor-specific avaya-extreme dot1q-
framing tag
if (!$match($setQuality,true)) then
configure port $EVENT.USER_PORT qosprofile qp7
endif
endif
#
if (!$match($EVENT.NAME,USER-UNAUTHENTICATED)) then
create log message Starting_Avaya_VOIP_802.1X_UNATUH_Module_Config
if (!$match($sendTraps,true)) then
enable snmp traps lldp ports $EVENT.USER_PORT
enable snmp traps lldp-med ports $EVENT.USER_PORT
else
disable snmp traps lldp ports $EVENT.USER_PORT
disable snmp traps lldp-med ports $EVENT.USER_PORT
endif
disable lldp port $EVENT.USER_PORT
if (!$match($setQuality,true)) then
unconfig qosprofile ports $EVENT.USER_PORT
endif
endif
create log message End_Avaya_VOIP_802.1X_Module_Config
Dynamic Security Policy
if (!$match($CLI_EVENT,USER-AUTHENTICATED) ) then
create access-list $(EVENT.DEVICE_MAC)_192_168_1_0 "ethernet-source-address
$EVENT.DEVICE_MAC ;
destination-address 192.168.1.0/24 " "permit "
create access-list $(EVENT.DEVICE_MAC)_192_168_2_0 "ethernet-source-address
$EVENT.DEVICE_MAC ;
destination-address 192.168.2.0/24 " "permit "
create access-list $(EVENT.DEVICE_MAC)_192_168_3_0 "ethernet-source-address
$EVENT.DEVICE_MAC ;
destination-address 192.168.3.0/24 " "permit "
create access-list $(EVENT.DEVICE_MAC)_smtp "ethernet-source-address $EVENT.DEVICE_MAC ;
destination-address 192.168.100.125/32 ; protocol tcp ; destination-port 25" "permit "
create access-list $(EVENT.DEVICE_MAC)_http "ethernet-source-address $EVENT.DEVICE_MAC ;
protocol tcp ; destination-port 80" "permit "
create access-list $(EVENT.DEVICE_MAC)_https "ethernet-source-address $EVENT.DEVICE_MAC ;
protocol tcp ; destination-port 443" "permit "
create access-list $(EVENT.DEVICE_MAC)_dhcp "protocol udp; destination-port 67" "permit"
create access-list $(EVENT.DEVICE_MAC)_deny "destination-address 0.0.0.0/0" "deny "
configure access-list add $(EVENT.DEVICE_MAC)_192_168_1_0 first port $USER_PORT
configure access-list add $(EVENT.DEVICE_MAC)_192_168_2_0 first port $USER_PORT
configure access-list add $(EVENT.DEVICE_MAC)_192_168_3_0 first port $USER_PORT
configure access-list add $(EVENT.DEVICE_MAC)_smtp first port $USER_PORT
configure access-list add $(EVENT.DEVICE_MAC)_http last port $USER_PORT
configure access-list add $(EVENT.DEVICE_MAC)_https last port $USER_PORT
configure access-list add $(EVENT.DEVICE_MAC)_dhcp first port $USER_PORT
configure access-list add $(EVENT.DEVICE_MAC)_deny last port $USER_PORT
endif
if (!$match($CLI_EVENT,USER-UNAUTHENTICATED) ) then
# Clean up
configure access-list delete $(EVENT.DEVICE_MAC)_192_168_1_0 ports $USER_PORT
configure access-list delete $(EVENT.DEVICE_MAC)_192_168_2_0 ports $USER_PORT
configure access-list delete $(EVENT.DEVICE_MAC)_192_168_3_0 ports $USER_PORT
configure access-list delete $(EVENT.DEVICE_MAC)_smtp ports $USER_PORT
configure access-list delete $(EVENT.DEVICE_MAC)_http ports $USER_PORT
configure access-list delete $(EVENT.DEVICE_MAC)_https ports $USER_PORT
configure access-list delete $(EVENT.DEVICE_MAC)_dhcp ports $USER_PORT
configure access-list delete $(EVENT.DEVICE_MAC)_deny ports $USER_PORT
delete access-list $(EVENT.DEVICE_MAC)_192_168_1_0
delete access-list $(EVENT.DEVICE_MAC)_192_168_2_0
delete access-list $(EVENT.DEVICE_MAC)_192_168_3_0
delete access-list $(EVENT.DEVICE_MAC)_smtp
delete access-list $(EVENT.DEVICE_MAC)_http
delete access-list $(EVENT.DEVICE_MAC)_https
delete access-list $(EVENT.DEVICE_MAC)_dhcp
delete access-list $(EVENT.DEVICE_MAC)_deny
endif
The profile configures and applies an ACL onto a switch port when a user
authenticates. This ACL blocks a particular IP address from accessing the video camera
and assigns the user to QoS profile 7.
#***********************************************
# Last Updated: March 9, 2007
# Tested Devices: Dlink DCS 1110
# Requirements: netlogin configured and enabled on deployment ports
#***********************************************
# @MetaDataStart
# @ScriptDescription "This is a template for configuring the switch for the right
environment for this webcam. It creates a dynamic access-list to restrict access"
# @Description "VLAN name to add to port"
# set var vlan1 voiceavaya
# @VariableFieldLabel "Set QoS Profile (yes or no)"
# set var setQuality yes
# @Description "QoS Profile (0-100)"
# set var lowbw 50
# @VariableFieldLabel "QoS MAX Bandwidth (0-100)"
# set var highbw 100
# @MetaDataEnd
##################################
# Start of USER-AUTHENTICATE block
##################################
if (!$match($EVENT.NAME,USER-AUTHENTICATED)) then
############
#QoS Profile
############
# Adds a QOS profile to the port
# if (!$match($setQuality,yes)) then
# create log message Config_QOS
# configure port $EVENT.USER_PORT qosprofile qp7
# configure qosprofile qp7 minbw $lowbw maxbw $highbw ports $EVENT.USER_PORT
# endif
#
############
#ACL Section
############
# Adds an ACL to stop traffic to a particular address
create log message Config_ACL
create access-list webcamblock "destination-address 192.168.10.220/32" "deny"
configure access-list add webcamblock first port $EVENT.USER_PORT
#endif
#
endif
################################
# End of USER-AUTHENTICATE block
################################
#
#
####################################
# Start of USER-UNAUTHENTICATE block
####################################
if (!$match($EVENT.NAME,USER-UNAUTHENTICATED)) then
# create log message Starting_8021x_Generic_UNATUH_Module_Config
# if (!$match($setQuality,yes)) then
# create log message UNConfig_QOS
# unconfig qosprofile ports $EVENT.USER_PORT
# endif
# unconfigure inline-power operator-limit ports $EVENT.USER_PORT
#### remove acl
configure access-list delete webcamblock port $EVENT.USER_PORT
delete access-list webcamblock
endif
##################################
# End of USER-UNAUTHENTICATE block
##################################
create log message End_802_1x_Generic_Module_Config
CLI-based scripting allows you to create a list of commands that you can execute
manually with a single command or automatically when a special event occurs.
Note
The CLI is limited for 4000 Series devices. See the 4000 Series User Guide
for this version of Switch Engine for detailed information on the available
commands.
CLI-based scripting supports variables and functions, so that you can write scripts that
operate unmodified on multiple switches and in different environments. It allows you to
significantly automate switch management.
Note
Special scripts can be used to configure the switch when it boots. For more
information, see Using Autoconfigure and Autoexecute Files on page 1969.
Setting Up Scripts
you do not include the permanent option, CLI scripting is disabled the next time the
switch boots.
• To support scripting, including the testing of script-related commands, enable
scripting using the following command. CLI scripting is disabled by default.
enable cli scripting {permanent}
Note
CLI scripting cannot be enabled when CLI space auto completion is enabled
with the enable cli space-completion command.
Creating Scripts
There are two ways to create scripts.The method you choose depends on how you want
to execute the script.
If you want to create a script file to configure a switch or a switch feature, and you plan
to execute that script manually, you can create a script file.
If you want to create a script that is activated automatically when a device or user
connects to or disconnects from a switch port, you should create the script with
the Universal Port feature. The following sections provide more information on these
options.
You can move an ASCII script file to the switch using the same techniques described for
managing ASCII configuration files in Software Upgrade and Boot Options on page 1948.
These dynamic profiles contain script commands and cause dynamic changes to the
switch configuration to enforce a policy. The universal port profiles support all the
scripting options listed in Creating Scripts for Use with the Universal Port Feature on
page 437 for creating script files. For more information on entering script commands in
a universal port profile, see Universal Port on page 389.
This RC script follows the ExtremeXOS scripting rules and is primarily meant for shell-
specific configuration, but is capable of running any ExtremeXOS commands.
The following are some examples of commands that could be placed in this file:
alias ps “show process”
disable clipaging
configure cli columns 256 lines 200
Python Scripting
Introduced in ExtremeXOS 15.6, Python scripting provides the ability to customize your
switch and add functionality quickly by downloading and running scripts without the
need for engineering expertise. Python scripting is extended using the synonymous
load script and run script commands.
Note
To use Python scripting, FIPS mode must be off (configure security fips-
mode [on | off] and you need to ensure that Python support is enabled
(configure security python [on | off]).
Expect Functionality
The pexpect.py provides interfaces to run interactive shell commands and to process
the results through expect like functions. The challenge with exsh.clicmd() is that it is a
synchronous call and not a separate process. The exshexpect.py module was developed
to provide a wrapper for pexpect.py that interfaces to exsh.clicmd().
import pexpect
import exshexpect
Create a prompt for expect that will not match any command output.
exosPrompt = '::--:--::'
Create an expect object. Pass in the prompt and the back end function to call:
p = exshexpect.exshspawn(exosPrompt, exsh.clicmd)
Use sendline to send commands to the backend function (in this case exsh.clicmd) :
print 'idx=',idx
print 'before->',p.before
print 'after->',p.after
p.send('enable debug-mode\nC211-6BB4-E6F5-B579\n')
In the line above, use send() and include ‘newline’ terminations for the command and
the additional parameter.
Creating a socket in a Python script defaults to the management interface. You can
change the VR when the socket is create by using the following example:
.
.
.
# your program here
.
.
.
udp_sock.close()
Note
Do not use os.system('echo 2 > /proc/self/ns_id’) to do this because os.system()
spawns a subprocess. The subprocess will switch to vr-default, and then exit.
The calling process will still be using the same VR as before.
In cases where the socket needs to be mapped to a user VR, include the followiung API
in the script to get the VR name in kernel.
Example 1
This is a single line script that illustrates the exsh.clicmd () called from a Python
script.
In this example, the second parameter passed to exsh.clicmd () is True. This returns
the CLI display output that would have normally been sent to the user. In this case, the
line prints the output anyway, which is shown below.
SysName: X670V-48x
SysLocation:
SysContact: [email protected], +1 888 257 3000
System MAC: 00:04:96:6D:12:A7
System Type: X670V-48x
Example 2
In this example, we create a number of VLAN (Virtual LAN)s in the form of prefix tag
and add tagged port lists to each VLAN. There are a number of methods for collecting
user input and validating the data type. This example uses a simple while True: loop
until the input is the correct type. A more robust example would also apply range
checking etc… to the vlan tag(s). E.g. Create vlans with tags from 1000 to 1099 The prefix
is ‘dave’, so each vlan name will have a name like ‘dave1000’, ‘dave1001’ etc… The user
provided port list will be added to each vlan name as tagged ports.
import sys
while True:
prefix = raw_input('enter vlan name prefix:')
if len(prefix):
break
while True:
reply = raw_input('beginning vlan tag:')
if reply.isdigit():
minTag = int(reply)
break
while True:
reply = raw_input('ending vlan tag:')
if reply.isdigit():
maxTag = int(reply)
break
while True:
portlist = raw_input('port list:')
if len(portlist):
break
Note
UPM variables can be used with Python scripting. They must be passed as
arguments of the script.
For example: create vlan v($X)e where X is the variable. The variable created will persist
through the session and will not get reset after disable/enable cli scripting.
Table 33 shows the predefined system variables that are always available for use by any
script. Predefined variables are automatically set up for use before a script or profile is
executed.
Note
You must enable CLI scripting before using these variables or executing a
script.
Table 34 shows the system variables that you must define before use.
Creating Variables
You can create your own variables and change their values. When using variables, the
following guidelines apply:
• Variable names are case insensitive and are limited to 32 characters.
• The variable name must be unique.
• A variable can be referenced as $X or $(X).
• If a variable already exists, it is overwritten. No error message is displayed.
• The variable expression can be a constant value, another variable, or a combination
of the above with operators and functions. Operators are described in , and functions
are described in .
• Only the set var command supports expression evaluation.
• If the variable name X contains special characters such as +-/*, then the variable
needs to be enclosed in parentheses. For example: set var z ($(x) + 100).
• When you use a variable with a TCL special character in the $TCL function, the
variable must be enclosed in braces. For example: set var x $TCL(string length $
{CLI.USER}.
• For more information on TCL functions, see Using Built-In Functions on page 446.
Note
ExtremeXOS does not consider the dot/period character as a de-limiter. This
is different from standard TCL behavior, where dot/period is considered as a
de-limiter.
• To create a variable and set a value for it, or to change a variable value, use the
following command:
set var varname _expression
The ($) indicates a variable, and the (") surrounds text strings. To use these characters
as regular characters, precede the special character with a backslash character (\). For
example:
set var variablename \$<varname>
set var CLI.USER “Robert \"Bob\" Smith”
Using Operators
Operators allow you to manipulate variables and evaluate strings.
Some operators can be used in all numeric expressions, while others are restricted
to integer or string expressions. Table 35 lists the operators supported and provides
comments on when they can be used. The valid operators are listed in decreasing order
of precedence.
Conditional Execution
IF (<expression>) THEN
<statements>
ELSE
<statements>
ENDIF
Nesting is supported up to five levels. The Ctrl-C key combination can be used to break
out of any While loop(s).
The operators mentioned in Using Operators on page 444 can be used in an expression
in the set var command or in an IF or WHILE condition.
Note
ExtremeXOS uses TCL version 8.5.14.
For examples of scripts that use TCL functions, see CLI Scripting Examples on page 451.
The default setting for scripts is non-persistent. To change the script configuration
persistence setting, use the following command:
The software allows you to save session variables before replacing them. In the example
above, this allows you to retrieve the earlier values when the port returns to the
device-undetected state. Up to five variables can be saved or retrieved at a time.
These variables are saved to system memory using a key, which is an ID for the saved
variables. You are responsible for generating unique keys. When you want to retrieve
the variables, you use the key to identify the variables to be retrieved.
• To save up to five session variables, use the following command:
save var key key [var1 var2 …]
The variables saved by the save var command are saved using the specified key and are
retrievable and restored in the context that this profile was applied. They are available
to rollback events like user-unauthenticate and device-undetect.
Note
For SummitStack, session variables are saved on the master ExtremeSwitching
switch. To repopulate session variables after a failover event, manually execute
the appropriate script.
Nesting Scripts
The ExtremeXOS software supports three levels of nested scripts. An error appears if
you attempt to start a fourth-level script. The following example demonstrates nested
scripts:
Load script x1
# Script x1 contents:
Cmd 1
Cmd 2
Load script x2
Cmd 3
Cmd 4
# Script x2 contents:
Cmd 1
Cmd 2
Load script x3
In the above example, Cmd x is a generic representation for any script command.
Script x1 is the first level script and launches the second level script Script x2. Script x2
launches the third level script Script x3. If Script x3 contained a command to launch
another script, the script would not launch the software would generate an error.
Executing Scripts
You can execute scripts by loading a script file or through the Universal Port feature.
For information on how to create profiles and configure the triggers, see Universal Port
on page 389.
Aborting a Script
There are three ways to abort a script:
• Press [Ctrl] + C while the script is executing.
• Configure the switch to abort a script when an error occurs by using the following
command:
configure cli mode scripting [abort-on-error | ignore-error]
• Abort a script and store a status code in the $STATUS variable by using the following
command:
return statusCode
When the CLI scripting output is disabled, the only script output displayed is the show
var {varname} command and its output. When the CLI scripting output is enabled, all
script commands and responses are displayed.
Use the enable cli scripting output and disable cli scripting output
commands to control what a script displays when you are troubleshooting.
The following script sorts the FDB (forwarding database) table in descending order:
The following script extracts the MAC address given the age of an FDB entry:
The Link Layer Discovery Protocol (LLDP) is defined by IEEE standard 802.1ab and
provides a standard method for discovering physical network devices and their
capabilities within a given network management domain.
LLDP-enabled network devices include repeaters, bridges, access points, routers, and
wireless stations, and LLDP enables these devices to do the following:
• Advertise device information and capabilities to other devices in the management
domain.
• Receive and store device information received from other network devices in the
management domain.
The individual advertisements within the packet are called TLVs, and each TLV
advertises device information or a device capability. Certain TLVs are mandatory and
are always advertised after LLDP is enabled; optional TLVs are advertised only when so
enabled by default or during configuration.
Mandatory TLVs
Mandatory TLVs are those TLVs that must be advertised (as defined in IEEE standard
802.1ab) when LLDP is enabled.
If you enable LLDP on a port, the mandatory TLVs are advertised and there is no
command to disable this advertising.
Optional TLVs
IEEE standard 802.1ab defines a set of optional TLVs, which are listed in the following
table.
The system description TLV is advertised by default. All other optional TLVs must be
configured to enable advertising. You can use the CLI to configure the optional TLVs,
or you can use an SNMP-compatible network management system (NMS). For more
information on the optional TLVs, see Configuring Optional TLV Advertisements on
page 463.
These TLVs advertise and receive information for Avaya voice over IP (VoIP) telephones,
which include powered device (PD) information. Some TLVs are advertised by the
switch, and some are advertised by the telephone. The switch starts advertising
these proprietary TLVs when you enable LLDP and configure the specified TLVs to be
advertised. The switch receives the proprietary TLVs when LLDP is enabled; you do not
have to configure the switch to receive individual TLVs.
devices, which can include powered device (PD) information. Some TLVs are advertised
by the switch, and some are advertised by the endpoint device.
You must enable the LLDP-MED capabilities TLV for advertising before you configure
any other LLDP MED TLVs for advertising. Likewise, when disabling LLDP MED TLV
advertisement, you can disable the LLDP-MED capabilities TLV only after you have
disabled advertisement for all other LLDP MED TLVs.
After the LLDP-MED capabilities TLV is configured for advertising, the switch can
receive LLDP MED TLVs from endpoints; you do not have to configure the switch to
receive individual TLVs.
The switch advertises LLDP MED TLVs only after the switch receives an LLDP MED
TLV from an endpoint, and the switch only advertises on ports from which an LLDP
MED TLV has been received. This approach prevents the switch from advertising LLDP
MED TLVs to another switch, and it prevents the wasted bandwidth and processing
resources that would otherwise occur.
The LLDP MED protocol extension introduces a new feature called MED fast start,
which is automatically enabled when the LLDP MED capabilities TLV is configured for
advertisement.
When a new LLDP MED-capable endpoint is detected, the switch advertises the
configured LLDP MED TLVs every one second for the configured number of times
(called the repeat count). This speeds up the initial exchange of LLDP MED capabilities.
After the repeat count is reached, the LLDP MED TLVs are advertised at the configured
interval.
Note
The fast-start feature is automatically enabled, at the default level of 3, when
you enable the LLDP MED capabilities TLV on the port.
LLDP information (for example, LLDP neighbors, Fabric Attach Elements and
Assignments) is continuously synchronized from the Primary to the Backup nodes.
In case of Failover, the Backup becomes the Primary node, with all existing LLDP
information retained. Existing LLDP and Fabric Attach neighbors are not re-learned.
Because Fabric Attach Assignments are retained, there is no impact on the traffic
during Failover.
Note
Statistics information is not synchronized to the Backup. LLDP and Fabric
Attach statistics start from empty on Failover.
LLDP Packets
LLDP packets transport TLVs to other network devices (see Figure 45).
The LLDP packet contains the destination multicast address, the source MAC address,
the LLDP EtherType, the LLDPDU data (which contains the TLVs), and a frame check
sequence (FCS). The LLDP multicast address is defined as 01:80:C2:00:00:0E, and the
EtherType is defined as 0x88CC.
The length of the packet cannot exceed 1500 bytes. As you add TLVs, you increase the
length of the LLDP frame. When you reach 1500 bytes, the remaining TLVs are dropped.
We recommend that you advertise information regarding only one or two VLANs on
the LLDP port, to avoid dropped TLVs.
If the system drops TLVs because of exceeded length, the system logs a message to the
EMS and the show lldp statistics command shows this information under the Tx
Length Exceeded field.
Note
The LLDPDU maximum size is 1500 bytes, even with jumbo frames enabled.
TLVs that exceed this limit are dropped.
When configured to transmit LLDP messages, the LLDP agent running on the
switch passes serially through the list of ports that are enabled for LLDP. For each
LLDP-enabled port, the switch periodically sends out an untagged LLDP packet that
contains the mandatory LLDP TLVs as well as the optional TLVs that are configured
for advertisement. These TLVs are advertised to all neighbors attached to the same
network. LLDP agents cannot solicit information from other agents by way of this
protocol.
Note
When both IEEE 802.1X and LLDP are enabled on the same port, LLDP packets
are not sent until one or more clients authenticate a port.
Also, LLDP MED TLVs are advertised only after an LLDP MED TLV is received on
a port that is configured for LLDP MED. (See LLDP MED Optional TLVs on page
455.)
The source information for TLVs is obtained from memory objects such as standard
MIBs or from system management information. If the TLV source information changes
at any time, the LLDP agent is notified. The agent then sends an update with the
new values, which is referred to as a triggered update. If the information for multiple
elements changes in a short period, the changes are bundled together and sent as a
single update to reduce network load.
After you configure a port to receive TLVs, all LLDP TLVs are received (even if the
LLDP MED capabilities TLV is not enabled). Each port can store LLDP information for a
maximum of four neighbors.
Note
When both IEEE 802.1X and LLDP are enabled on the same port, incoming
LLDP packets are accepted only when one or more clients are authenticated.
When configured to receive LLDP messages, the TLVs received at a port are stored
in a standard Management Information Base (MIB), which makes it possible for the
information to be accessed by an SNMP-compatible NMS. Unrecognized TLVs are
also stored on the switch, in order of TLV type. TLV information is purged after the
configured timeout interval, unless it is refreshed by the remote LLDP agent. You can
also manually clear the LLDP information for one or all ports with the clear lldp
neighbors command.
• To display TLV information received from LLDP neighbors, use the following
command:
show lldp neighbors detailed
You must use the detailed variable to display all TLV information.
LLDP Management
You can manage LLDP using the CLI and/or an SNMP-compatible NMS. LLDP works
concurrently with the EDP. It also works independently; you do not have to run EDP to
use LLDP.
You can use the save configuration command to save LLDP configurations across
reboots.
The switch logs EMS messages regarding LLDP, including when optional TLVs exceed
the 1500-byte limit and when more than four neighbors are detected on a port.
After you enable LLDP, you can enable LLDP-specific SNMP traps; the traps are
disabled by default. After you enable LLDP-specific traps, the switch sends all LLDP
traps to the configured trap receivers. You can configure the period between SNMP
notifications; the default interval is five seconds.
You can configure an optional TLV to advertise or not advertise the switch
management address information to the neighbors on a port. When enabled, this TLV
sends out the IPv4 address configured on the management VLAN. If you have not
configured an IPv4 address on the management VLAN, the software advertises the
system’s MAC address. LLDP does not send IPv6 addresses in this field.
Configuration Overview
You configure LLDP per port, and each port can store received information for a
maximum of four neighbors.
Note
LLDP runs with link aggregation.
1. Enable LLDP on the desired port(s) as described in Enabling and Disabling LLDP on
page 461.
2. If you want to change any default timer values, see Configuring LLDP Timers on
page 461.
3. Enable the SNMP traps and configure the notification interval as described in
Configuring SNMP for LLDP on page 462.
4. Configure any optional TLV advertisements as described in Configuring Optional TLV
Advertisements on page 463.
Note
By default, an LLDP-enabled port advertises the optional system description
TLV. By default, all other optional TLVs are not advertised.
After you enable LLDP, the following TLVs are automatically added to the LLDPDU:
• Chassis ID
• Port ID
• TTL
• System description
• End of LLDPDU
All of these, except the system description, are mandated by the 802.1ab standard
and cannot be configured. For information on changing the system description TLV
advertisement, see System Description TLV on page 464.
• Enable LLDP.
enable lldp ports [all | port_list] {receive-only | transmit-only}
• Disable LLDP.
disable lldp ports [all | port_list] {receive-only | transmit-only}
Note
Once the LLDP MED TLVs begin transmitting (after detecting LLDP MED
TLVs from a connected endpoint), those TLVs are also controlled by these
timers.
When LLDP is disabled or if the link goes down, LLDP is reinitialized. The reinitialize
delay is the number of seconds the port waits to restart the LLDP state machine; the
default is two seconds.
The time between triggered update LLDP messages is referred to as the transmit delay,
and the default value is two seconds. You can change the default transmit delay value
to a specified number of seconds or to be automatically calculated by multiplying the
transmit interval by 0.25.
Each LLDP message contains a TTL value. The receiving LLDP agent discards all LLDP
messages that surpass the TTL value; the default value is 120 seconds. The TTL is
calculated by multiplying the transmit interval value and the transmit hold value; the
default transmit hold value is four.
• To change the default reinitialize delay period, use the following command:
configure lldp reinitialize-delay seconds
LLDP messages are transmitted at a set interval; this interval has a default value of
every 30 seconds.
• To change this default value, use the following command:
configure lldp transmit-interval seconds
• To change the value for the transmit delay, use the following command:
configure lldp transmit-delay [ auto | seconds]
• To change the default transmit hold value, use the following command:
configure lldp transmit-hold hold
The traps are only sent for those ports that are both enabled for LLDP and have
LLDP traps enabled.
• To disable the LLDP SNMP traps on one or more ports, use the following command:
disable snmp traps lldp {ports [all | port_list]}
• To change the default value for the interval for the entire switch, use the following
command:
configure lldp snmp-notification-interval seconds
Note
If you want to send traps for LLDP MED, you must configure it separately.
Use the enable snmp traps lldp-med {ports [all | port_list]}
command to enable these traps.
You can choose to advertise or not advertise any optional TLV, but be aware that
the total LLDPDU length, which includes the mandatory TLVs, cannot exceed 1500
bytes. Optional TLVs that cause the LLDPDU length to exceed the 1500-byte limit are
dropped. You can see if the switch has dropped TLVs by referring to the EMS log or by
issuing the show lldp statistics command.
The following sections describe configuration for the following types of optional TLVs.
The port description TLV advertises the ifDescr MIB object, which is the ASCII string you
configure.
The string can be configured using the configure ports display-string command.
If you have not configured this parameter, the TLV carries an empty string.
To control advertisement of the port description TLV, use the following command:
The system name TLV advertises the configured system name for the switch. This is
the sysName as defined in RFC 3418, which you can define using the configure snmp
sysname command.
To control advertisement of the system name TLV, use the following command:
By default, the ExtremeXOS software advertises this TLV whenever you enable LLDP on
a port, but you can disable advertisement. This TLV advertises show version command
information similar to the following in the system description TLV:
To control advertisement of the system description TLV, use the following command:
The system capabilities TLV advertises the capabilities of the switch and which of these
capabilities are enabled. When so configured, the ExtremeXOS software advertises
bridge capabilities. If IP forwarding is enabled on at least one VLAN in the switch, the
software also advertises router capabilities.
To control advertisement of the system capabilities TLV, use the following command:
The management address TLV advertises the IP address of the management VLAN.
If the management VLAN does not have an assigned IP address, the management
address TLV advertises the system’s MAC address, unless another VLAN's IP address is
specified. LLDP does not recognize IPv6 addresses in this field.
To specify a VLAN IP address, other than the Management VLAN, for advertisement as
the management address, use the following command:
To turn on or off advertisement of the management address TLV, use the following
command:
Note
The ExtremeXOS software sends only one management address.
The VLAN name TLV advertises a VLAN name for one or more VLANs on the port. You
can advertise this TLV for tagged and untagged VLANs. When you enable this TLV for
tagged VLANs, the TLV advertises the IEEE 802.1Q tag for that VLAN. For untagged
VLANs, the internal tag is advertised.
If you do not specify a VLAN when you configure this TLV, the switch advertises all VLAN
names on the specified ports. You can choose to advertise one or more VLANs for the
specified ports by specifying the name of a VLAN in the configuration command. You
can repeat the command to specify multiple VLANs.
To control advertisement of the port VLAN Name TLV, use the following command:
Note
Because each VLAN name requires 32 bits and the LLDPDU cannot exceed
1500 bytes, we recommend that you configure each port to advertise no more
than one or two specific VLANs. Optional TLVs that cause the LLDPDU length
to exceed the 1500-byte limit are dropped.
The port VLAN ID advertises the untagged VLAN on that port. Thus, only one port VLAN
ID TLV can exist in the LLDPDU. If you configure this TLV and there is no untagged
VLAN on the specified port, this TLV is not included in the LLDPDU.
• To control advertisement of the port VLAN ID TLV, use the following command:
configure lldp ports [all | port_list] [advertise | no-advertise]
vendor-specific dot1 port-vlan-ID
When configured for advertisement, this TLV advertises whether the specified VLANs
on the specified ports support protocol-based VLANs or not.
If you do not specify a VLAN when you configure this TLV, the switch advertises
protocol-based VLAN support for all VLAN names on the specified ports. You can
choose to advertise support for one or more VLANs for the specified ports by specifying
the name of a VLAN in the configuration command. You can repeat the configuration
command to specify multiple VLANs.
Because all VLANs on Extreme Networks switches support protocol-based VLANs, the
switch always advertises support for protocol-based VLANs for all VLANs for which this
TLV is advertised. If no protocol-based VLANs are configured on the port, the switch
sets the VLAN ID value to 0.
• To control advertisement of the port and protocol VLAN ID TLV, use the following
command:
configure lldp ports [all | port_list] [advertise | no-advertise]
vendor-specific dot1 port-protocol-vlan-ID {vlan [all | vlan_name]}
Note
Because a TLV is advertised for every VLAN that is advertised, and because
the LLDPDU cannot exceed 1500 bytes, we recommend that you advertise
this VLAN capability only for those VLANs that require it. Optional TLVs that
cause the LLDPDU length to exceed the 1500-byte limit are dropped.
When configured for advertisement, this TLV advertises the autonegotiation and
physical layer capabilities of the port. The switch adds information about the port
speed, duplex setting, bit rate, physical interface, and autonegotiation support and
status.
• To control advertisement of the port and protocol MAC/PHY configuration/status
TLV, use the following command:
configure lldp ports [all | port_list] [advertise | no-advertise]
vendor-specific dot3 mac-phy
When configured for advertisement on Ethernet (PoE) or PoE+ ports, this TLV
advertises the device type, power status, power class, and pin pairs used to supply
power.
The device type field contains a binary value that represents whether the LLDP-
compatible device transmitting the LLDPDU is a power sourcing entity (PSE) or
powered device (PD), as listed in Table 43.
Refer to for Configuring Avaya-Extreme TLVs on page 467 and Configuring LLDP MED
TLVs on page 468 more information on power-related TLVs.
When configured for advertisement, this TLV advertises information on the port’s load-
sharing (link aggregation) capabilities and status.
To control advertisement of the link aggregation TLV, use the following command:
When configured for advertisement, this TLV advertises the maximum supported
frame size for a port to its neighbors. When jumbo frames are not enabled on the
specified port, the TLV advertises a value of 1518. If jumbo frames are enabled, the TLV
advertises the configured value for the jumbo frames.
To control advertisement of the maximum frame size TLV, use the following command:
Note
You can display the values for these TLVs using the show lldp neighbors
detailed command.
When configured for advertisement, this TLV advertises a request to the connected PD
to go into a certain power conservation level or go to the maximum conservation level.
This LLDP TLV is sent out only on PoE-capable Ethernet ports.
By default, the requested conservation value on this proprietary LLDP TLV is 0, which is
no power conservation. You can change this level temporarily using a network station
or SNMP with the MIB; this change is not saved across a reboot.
• To control advertisement of the PoE conservation level request TLV, use the
following command:
configure lldp ports [all | port_list] [advertise | no-advertise]
vendor-specific avaya-extreme poe-conservation-request
When configured for advertisement, this TLV advertises the IP addresses of up to eight
call servers. Avaya phones use this addressing information to access call servers.
• To control advertisement of the call server TLV and define call server addresses, use
the following command:
configure lldp ports [all | port_list] [advertise | no-advertise]
vendor-specific avaya-extreme call-server ip_address_1 {ip_address_2
{ip_address_3 {ip_address_4 {ip_address_5 {ip_address_6 {ip_address_7
{ip_address_8}}}}}}
When configured for advertisement, this TLV advertises the IP addresses of up to 4 file
servers. Avaya phones use this address information to access file servers.
• To control advertisement of the file server TLV and define file server addresses, use
the following command:
configure lldp ports [all | port_list] [advertise | no-advertise]
vendor-specific avaya-extreme file-server ip_address_1 {ip_address_2
{ip_address_3 {ip_address_4}}}
When configured for advertisement, this TLV advertises information about Layer 2
priority tagging for Avaya phones.
• To control advertisement of the 802.1Q framing TLV, use the following command:
configure lldp ports [all | port_list] [advertise | no-advertise]
vendor-specific avaya-extreme dot1q-framing [tagged | untagged | auto]
Note
For this command to work, you must have previously enabled both the
configure lldp ports vendor-specific med capabilities and the
configure lldp ports vendor-specific med policy application
commands. (See Configuring LLDP MED TLVs on page 468 for complete
information.)
Note
After you enable an LLDP MED TLV, the switch waits until it detects a MED-
capable device before it begins transmitting the configured LLDP MED TLVs.
You must configure the LLDP MED capabilities TLV to advertise before any of
the other LLDP MED TLVs can be configured. Also, this TLV must be set to
no-advertise after all other MED TLVs are set to no-advertise.
This approach assures that network connectivity devices advertise LLDP MED TLVs only
to end-devices and not to other network connectivity devices.
Note
You can display the values for these TLVs using the show lldp neighbors
detailed command.
This TLV advertises the LLDP MED capabilities of the switch and must be enabled
before any of the other LLDP MED TLVs can be enabled.
To enable configuration and transmission of any other LLDP MED TLV and to determine
the LLDP MED capabilities of endpoint devices, use the following command:
The LLDP MED fast-start feature allows you to increase the learning speed of the switch
for LLDP MED TLVs. The fast-start feature is automatically enabled once you enable the
LLDP MED capabilities TLV.
By default, the switch sends out the LLDPDU every second for up to the default repeat
count, which is 3. Once the repeat count is reached, the configured transmit interval
value is used between LLDPDUs. You can configure the repeat count to any number in
the range of 1 to 10.
This TLV advertises which VLAN an endpoint should use for the specified application.
You can configure only one instance of an application on each port, and you can
configure a maximum of eight applications, each with its own DSCP value and/or
priority tag.
To control advertisement and configure one or more network policy TLVs for a port, use
the following command:
This TLV advertises one of three different location identifiers for a port, each with a
different format.
• Coordinate-based, using a 16-byte hexadecimal string.
• Civic-based, using a hexadecimal string with a minimum of six bytes.
• ECS ELIN, using a numerical string with a range of 10-25 characters.
This TLV advertises fine-grained power requirement details, including the PoE settings
and support. You can enable this TLV only on PoE-capable ports; the switch returns an
error message if you attempt to transmit this LLDP TLV over a non-PoE-capable port.
To receive SNMP traps on the LLDP MED, you must enable these separately from the
other LLDP traps. (See Configuring SNMP for LLDP on page 462.)
• Enable the LLDP MED SNMP traps.
enable snmp traps lldp-med {ports [all | port_list]}
• Disable the LLDP MED SNMP traps.
disable snmp traps lldp-med {ports [all | port_list]}
Unconfiguring LLDP
• To unconfigure the LLDP timers, use the following command:
unconfigure lldp
This command returns the LLDP timers to default values; LLDP remains enabled,
and all the configured TLVs are still advertised.
• To leave LLDP enabled, but reset the advertised TLVs to the five default TLVs, use the
following command, and specify the affected ports:
unconfigure lldp port [all | port_list]
You can display information on the LLDP port configuration and on the LLDP
neighbors detected on the port.
Note
You must use the detailed option to display information on the proprietary
Avaya-Extreme Networks TLVs and the LLDP MED TLVs.
CFM
Connectivity Fault Management (CFM), discussed in the IEEE 802.1Q-2011 standard and
originally specified in the IEEE 802.1ag-2007 standard, allows you to detect, verify, and
isolate connectivity failures in virtual bridged LANs.
Note
The ExtremeXOS implementation of CFM is based on the IEEE 802.1Q-2011 and
Y.1731 standards.
There is no direct interaction between CFM and other Layer 2 protocols; however,
blocked STP (Spanning Tree Protocol) ports are taken into consideration when
forwarding CFM messages.
CFM Overview
You can create hierarchical networks, or domains, and test connectivity within a
domain by sending Layer 2 messages, known as CCM (Connectivity Check Message).
Note
Extreme Networks uses values defined in IEEE 802.1Q-2011 for the MAC
addresses and Ethernet type for CFM.
Note
The arrows in the above figure indicate the span that CCM messages take, not
the direction. (See Figure 47 on page 474 for more information on spans for
CCM messages.) This has been removed until the missing xref can be fixed.
To achieve this hierarchical connectivity testing, create and configure the following
entities:
• Maintenance domains, or domains
• Maintenance domain (MD) level; a unique hierarchical numeric value for each
domain
• Maintenance associations (MAs)
• Maintenance points (MPs) and MEP (Maintenance End Point), which are one of the
following types:
◦ UP MEPs
◦ DOWN MEPs
• Maintenance intermediate points (MIPs)
Note
The CFM filter function (CFF) is no longer supported from ExtremeXOS 12.1. The
functionality of CFF is implicitly performed by MEPs.
An UP MEP sends CFM frames toward the frame filtering entity, which forwards the
frames to all other ports of a service instance other than the port on which the UP MEP
is configured. This is similar to how the frame filtering entity forwards a normal data
frame, taking into account the port's STP state. For an UP MEP, a CFM frame exits from
a port if only if the STP state of the port is in the forwarding state.
A DOWN MEP sends CFM frames directly to the physical medium without considering
the port STP state. For a DOWN MEP, a CFM frame exits from a port even if the port STP
state is in blocking state.
section where you are monitoring Layer 2 connectivity. A domain is intended to be fully
connected internally.
Note
Domains may cross VR boundaries; domains are not virtual router (VR)-aware.
You assign each domain an MD level, which functions in a hierarchy for forwarding CFM
messages. The MD levels are from 0 to 7. The highest number is superior in the CFM
hierarchy.
All CFM messages with a superior MD level (numerically higher) pass throughout
domains with an inferior MD level (numerically lower). CFM messages with an inferior
MD level are not forwarded to domains with a superior MD level. Refer to the following
table for an illustration of domains with hierarchical MD levels.
Within a given domain, you create maintenance associations (MAs). Extreme Networks’
implementation of CFM associates MAs with service instances (a service instance can
be a VLAN (Virtual LAN), VMAN, BVLAN, or SVLAN). All of the ports in that VLAN
service instance are now in that MA and its associated domain. In general, you should
configure one MIP on each intermediate switch in the domain and a MEP on every
edge switch.
Each MA associates with one service instance, and a service instance can be associated
with more than one MA. The MA is unique within the domain. One switch can have
8 domains, 128 ports, and 256 associations (see Supported Instances for CFM on page
477).
Note
You cannot associate the Management VLAN with an MA or a domain.
You assign the MPs to ports: UP MEPs, DOWN MEPs, and MIPs. These various MPs filter
or forward the CFM messages to test the connectivity of your network.
Each configured MEP periodically sends out a Layer 2 multicast or unicast CCM
message.
The destination MAC address in the CCM frame is from a multicast MAC address range
that is reserved for CFM messages. Each MEP must have a MEP ID that is unique within
the MA. The MEPs send the CCM messages differently, depending on the configuration,
as follows:
• The DOWN MEPs sends out a single CCM message.
• The UP MEPs potentially sends the CCM message to all ports on the service instance
(MA)—except the sending port—depending on the MPs configured on the outgoing
ports.
Note
Ensure that you configured the UP and DOWN MEPs correctly, or the CCMs
will flow in the wrong direction through the domain and not allow connectivity
testing.
MIPs define intermediate points within a domain. MIPs relay the CCM messages to the
next MIP or MEP in the domain.
You configure the time interval for each MEP to send a CCM. We recommend setting
this interval for at least one second. Each MEP also makes a note of what port and what
time it received a CCM. This information is stored in the CCM database.
Each CCM has a time-to-live (TTL) value also noted for that message. This TTL interval is
3.5 times the CCM transmission interval you configured on the switch that is originating
the CCM. After the TTL expires, the connectivity is considered broken, and the system
sends a message to the log. One important result of the continual transmission of
CCM frames is that the MAC address of the originating MEP is known to all MPs in the
association.
Note
All MEPs in an MA must be configured with the same CCM transmission
interval.
The MD values are from 0 to 7; in the hierarchy, the MD level of 0 is lowest and 7 is
highest.
Not all combinations of MPs are allowed on the same port within an MA; only the
following combinations can be on the same port within an MA:
• UP MEP and MIP
• DOWN MEP with neither UP MEP nor MIP
• Dynamic Remote MEP learning is not supported for the MEPs created in hardware.
You must explicitly create static Remote MEPs.
• Sender-Id-IP Address cannot be configured for the MEPs created in hardware.
• Unicast CCM transmission is not supported by the MEPs created in hardware.
• Domain name format should be of string type to create any MEPs in hardware in
that domain.
• The CCM transmission state is disabled by default for the MEPs created in hardware
by the CFM user interface.
• The CCM transmission state is enabled by default for the MEPs created in hardware
by CFM clients like ERPS (Ethernet Ring Protection Switching).
• The hardware Remote MEP status appears in show cfm detail. It is also forwarded
to the client if created by a client like ERPS.
• CFM objects like domain, association, MEP, Remote MEP created by a client are not
saved by dot1ag.
Note
An MA can have an UP MEP in one switch and a DOWN MEP on another
switch for the same MA.
These are also referred to as a Layer 2 ping or a traceroute message. You can send with
an LBM or an LTM only from an MEP (either UP or DOWN).
You can only send a ping from a MEP, and you ping to the unique system MAC address
on the switch you are testing connectivity to. The operator sends out a unicast LBM,
and the first MIP or MEP on the switch with the destination MAC address matching the
embedded MAC address replies with an LBR (loopback reply).
You can only send a traceroute (LTM) from a MEP. You send the traceroute to the
unique system MAC address on the switch to which you are testing connectivity. The
system sends out an LTM to the special multicast address. If the destination address
is not present in the FDB (forwarding database), the LTM is flooded on all the ports in
the MIP node. Each MIP in the path passes the frame only in the direction of the path
and sends a link trace reply (LTR) message back to the originating with information
that the LTM passed. The traceroute command displays every MIP along the path (see
traceroute mac port).
Note
The total number of CFM ports is a guideline, not a limit enforced by the
system.
CFM Groups
Loop detection protocols like EAPS (Extreme Automatic Protection Switching)/ERPS
want to depend upon CFM to detect link status for faster failover recovery.
They register with LMEP and RMEP objects created by CFM in order to receive the link
status event notifications to take the necessary action.
Currently LMEP is identified with domain, association, port, MEPId quadruples. And
RMEP is identified with domain, association, LMEP, RMEPId quadruples. Each LMEP
can be tied up to multiple RMEPs. So applications need to configure domain,
association, LMEP and RMEPs through a client/server interface.
You can associate a group to each LMEP created on a port. There exists a one-to-one
relationship between LMEP-port-group. Whenever CFM stops receiving CCMs on this
port, it informs a group DOWN event to registered clients like ERPS/EAPS. Whenever
CFM starts receiving the CCMs again on this port, a group UP event is sent to registered
clients.
Configuring CFM
To configure CFM, create a maintenance domain and assign it a unique MD level. Next,
associate MAs with the specified domain and assign MPs within that MA. Optionally,
you can configure the transmission interval for the CCMs, destination MAC type for an
MA and remote MEPs statically in an MA.
If a MEP fails to receive a CCM before the last advertised TTL value expires, the system
logs a message. After the network administrator sees the system log message, he can
send a Layer 2 ping and/or a traceroute message to isolate the fault.
Note
CFM does not use ACL (Access Control List); there are no additional ACL entries
present for CFM in the show access-list dynamic command output.
ExtremeXOS 15.5 provides support for transmitting and receiving ITU-T Y.1731 CCMs. The
main difference between IEEE 802.1ag and ITU-T Y.1731 CCMs is between the MAID and
MEG ID formats in CCMs:
• MAID ---- MA (format + length + name) with/without MD (format + length +name)
details.
• MEG ID ---- MEG (format + length + name) without MD details.
• MA is referred to as MEG in Y.1731 and both are same.
• MA assumes four formats (string/integer/vpn-id/vlan-id) for its name.
• MEG assumes ICC format which is a combination of ICC (6 bytes) + organization
specific UMC (6 bytes).
• To support Y.1731 CCMs, an additional name format for MEG name is added for
association.
You can name domains using any one of the following three formats:
• Simple string—Use an alphanumeric character string with a maximum of 43
characters.
• Domain name server (DNS) name—Use an alphanumeric character string with a
maximum of 43 characters.
• MAC address plus 2-octet integer—Use a MAC address and a 2-octet integer. The
display format is XX.XX.XX.XX.XX.XX.YYY, where X is the MAC address, and Y is the
2-octet integer. For example, a domain name in this format using 123 as the 16-bit
unsigned integer appears as follows: 00:11:22:33:44:55.123.
Note
Whatever convention you choose, you must use that same format throughout
the entire domain.
The CFM messages carry the domain name, so the name and naming format must
be identical to be understood throughout the domain. You can, however, use different
naming conventions on different domains on one switch (up to eight domains allowed
on one switch). User-created CFM names are not case sensitive.
• To create a domain and assign an MD level using the DNS convention, use the
following command:.
create cfm domain dns name md-level level
• To create a domain and assign an MD level using the MAC address convention, use
the following command:.
create cfm domain mac mac-addr int md-level level
• To create a domain and assign an MD level using the string convention, use the
following command :
create cfm domain string str_name md-level level
• Although you assign an MD level to the domain when you create that domain, you
can change the MD level on an existing domain by running:
configure cfm domain domain_name md-level level
• To delete a domain, use the following command:
delete cfm domain domain
Each MA associates with one service instance, and each service instance may associate
with more than one MA; you can configure more than one MAs in any one domain.
Like the domains, ExtremeXOS supports multiple formats for naming the MA. The
following formats are supported for naming the MAs:
• Character string
• 2-octet integer
• RFC 2685 VPN
• VLAN ID
• Y.1731 MEG name
• To add an MA to a domain using the character string format, use the following
command:
configure cfm domain domain_name add association string name [vlan
vlan_name|vman vman_name]
• To add an MA to a domain using the 2-octet integer format, use the following
command:
configure cfm domain domain_name add association integer int [vlan
vlan_name|vman vman_name]
• To add an MA to a domain using the RFC 2685 VPN ID format, use the following
command:
configure cfm domain domain_name add association vpn-id oui oui index
index [vlan vlan_name|vman vman_name]
• To add an MA to a domain using the VLAN ID format, use the following command:
configure cfm domain domain_name add association vlan-id vlanid [vlan
vlan_name|vman vman_name]
• To add an MA using Y.1731 compliant MEG, use the following command: configure
cfm domain domain_name add association meg [meg name] [vlan vlan_name|
vman vman_name]
• To delete an MA from a domain, use the following command:
configure cfm domain domain_name delete association association_name
In addition to supporting multicast destination MAC address for CCM and LTM
frames specified by the 802.1ag standard, ExtremeXOS CFM supports the use of a
unicast destination address for CCM and LTM frames.
This allows the support of a CFM operation in a network where use of multicast
address is prohibited.
• To configure the destination MAC address type for an MA, use the following
command:
configure cfm domain domain-name association association_name
destination-mac-type [unicast | multicast]
• Use the following command to add a remote MEP to an MA statically:
configure cfm domain domain-name association association_name add
remote-mep mepid { mac-address mac_address }
ExtremeXOS CFM supports configuring remote MEPs statically for CFM operation
where dynamic discovery of MEPs in an MA using multicast address is prohibited.
• To delete a remote MEP from an MA, use the following command:
configure cfm domain domain-name association association_name delete
remote-mep mepid
• To configure a remote MEP MAC address, use the following command:
configure cfm domain domain-name association association_name remote-
mep mepid mac-address mac_address
Each MEP must have an ID that is unique for that MEP throughout the MA.
• To configure UP and DOWN MEPs and its unique MEP ID, use the following
command:
configure cfm domain domain_name association association_name ports
port_list add [ end-point [ up | down ] mepid group { group_name } ] |
[ intermediate-point ]]
• To change the MEP ID on an existing MEP, use the following command:
configure cfm domain domain_name association association_name ports
port_list end-point [ up | down ] mepid { mepid }
• To delete UP and DOWN MEPs, use the following command:
configure cfm domain domain_name association association_name ports
port_list delete [[ end-point [ up | down ]] | intermediate-point ]
• To configure a MIP, use the following command:
configure cfm domain domain_name association association_name ports
port_list add [ end-point [ up | down ] mepid group { group_name }]
| [ intermediate-point ]
• To delete a MIP, use the following command:
configure cfm domain domain_name association association_name ports
port_list delete [[ end-point [ up | down ]] | intermediate-point ]
• To configure the transmission interval for the MEP to send CCMs, use the following
command:
configure cfm domain domain_name association association_name ports
port_list end-point [ up | down ] transmit-interval [ 3| 10 | 100 |
1000 | 10000 | 60000 | 600000 ]
• To unconfigure the transmission interval for the MEP to send CCMs and return it to
the default, use the following command:
unconfigure cfm domain domain_name association association_name ports
port_list end-point [ up | down ] transmit-interval
• To enable or disable a MEP, use the following command:
configure cfm domain domain_name association association_name ports
port_list end-point [ up | down ] [enable | disable ]
To assign MEP Group name when creating a MEP, use the following command:
To assign a MEP Group name to an existing MEP, use the following command:
configure cfm domain domain_name association association_name ports
port_list end-point [up|down] [add|delete] group group_name
To add specific RMEPs for a MEP Group to monitor, use the following command:
# sh cfm groups
Group : eapsCfmGrp1 Status : UP
Local MEP : 11 port : 41
Remote MEPs : 10
Client(s) : eaps
Domain : MD1
Association : MD1v2
Group : eapsCfmGrp2 Status : UP
Local MEP : 12 port : 31
Remote MEPs : 13
Client(s) : eaps
Domain : MD1
Association : MD1v2
Note
You must have all the CFM parameters configured on your network before
issuing the ping and traceroute messages.
Displaying CFM
To verify your CFM configuration, you can display the current CFM configuration using
the show cfm command.
The information this command displays includes the total ports configured for CFM,
the domain names and MD levels, the MAs and associated service instances, and the
UP and DOWN MEPs.
To display the CCM database for each MEP, use the show cfm detail command.
Counters are added for missed-hellos, which mainly help to constantly monitor the
health of CFM session path and hence tweaking the configured interval times to get
the best reliability with the shortest fail over times for radio and wireless networks
that rely on CFM to detect any failures. These counters can be displayed using show
cfm session counters missed-hellos command. The counters can be cleared using
"clear counters cfm session missed-hellos" command.
CFM Example
As shown in Figure 48 on page 484, this example assumes a simple network and
assumes that CFM is configured on the access switches, as well as the necessary
VMANs configured with the ports added. This example shows a VMAN associated with
two maintenance domains and two different MAs. UP MEPs are configured for an MA
with MD level 6 and DOWN MEPs are configured for an MA with MD level 3.
configure cfm domain core-d3 add association string core-d3-m100 vman m100
configure cfm domain core-d3 association core-d3-m100 port 2:1 add end-point down 10
Frame-Delay Measurement
ExtremeXOS software supports:
• Two-way delay measurement—Delay Measurement Message (DMM) and Delay
Measurement Reply (DMR).
• Continuous (proactive) measurement of frame delay and frame delay variation.
• On-demand measurement of frame delay and frame delay variation.
By default, DMM is not enabled. You must explicitly enable the DMM transmission for a
CFM segment, either as continuous or on-demand mode.
The following list offers specific configuration information that is required by a peer to
support ETH-DM:
• Maintenance domain (MD) level—The MD level at which the peer exists.
• Priority—The priority of the frames with ETH-DM information.
• Drop eligibility—Frames with ETH-DM information that are always marked as drop
ineligible.
• Transmission rate.
• Total transmit interval.
A node transmits frames with ETH-DM information with the following information
element:
Whenever a valid DMM frame is received by the peer, a DMR frame is generated and
transmitted to the requesting node.
• A DMM frame with a valid MD level and a destination MAC address equal to the
receiving node’s MAC address is considered to be a valid DMM frame. Every field in
the DMM frame is copied to the DMR frame with the following exceptions:
◦ The source and destination MAC addressed are swapped.
◦ The OpCode field is changed from DMM to DMR.
The switch makes two-way frame delay variation measurements based on its ability to
calculate the difference between two subsequent two-way frame delay measurements.
To allow a more precise two-way frame delay measurement, the peer replying to the
frame with ETH-DM request information may include two additional timestamps in the
ETH-DM reply information:
• RxTimeStampf—Timestamp at the time of receiving a frame with ETH-DM request
information
• TxTimeStampb—Timestamp at the time of transmitting a frame with ETH-DM reply
information
Here the frame delay is calculated by the peer that receives the DMR as follows:
• Frame Delay = (RxTimeStampb - TxTimeStampf) - (TxTimeStampb - RxTimeStampf)
Figure 49 describes the DMM and DMR message flows between two end points.
Figure 49: Two-Way Frame Delay and Frame Delay Variance Measurement
The PDUs used to measure frame delay and frame delay variation are the DMM and the
DMR PDUs where DMM is initiated from a node as a request to its peer and DMR is the
reply from the peer.
If you try to enable the transmission for a CFM segment whose configuration is not
complete, the trigger is rejected and an error message similar to the following is given:
ERROR: CFM Configuration is not complete for segment "s1" to start transmission
Note
A CFM segment without a domain and an association is considered to be an
incomplete segment.
Upon enabling the transmission from a CFM segment, the segment transmits DMM
frames, one at each transmit-interval which is configured through the CLI. If the user
enables on-demand transmission, the segment transmits "X" number of DMMs and
moves back to the disabled state, where "X" is the number of frames specified by the
user through the CLI.
For continuous transmission, the segment continues to transmit DMM frames until
stopped by the user. This transmission continues even after reboot for both continuous
and on-demand mode. For on-demand transmission, the segment, which was enabled
to transmit "X" number of frames, and is still transmitting, starts transmitting again "X"
number of frames after reboot, or failover, or process restart. The old statistics are not
preserved for both continuous and on-demand mode for all the above three scenarios.
Upon transmitting a DMM, the segment is expected to get a reply from the destination
within the specified time. If a reply is received after that time, that reply will be
considered as a delayed one.
If a reply is not received within the transmit-interval, that is, between two subsequent
DMM transmissions, then that frame is considered as lost. Once the percentage of the
sum of lost and delayed frames reaches the alarm threshold, an alarm is generated
and the segment is moved to the alarming state. This state is maintained until the
percentage of valid replies reaches the clear threshold. These alarm and clear states
are maintained for a specified window, which holds a set of recent frames and their
corresponding delays.
Various times are recorded at the segment level during the transmission of DMM
frames.
• Start time—Time at which the segment started the current transmission.
• Min delay time—Time at which the minimum delay occurred in the current
transmission window.
• Max delay time—Time at which the maximum delay occurred in the current
transmission window.
• Alarm time—The recent alarm time, if any, during the current transmission.
The mean delay and delay variance for the current window is also measured whenever
the user polls the segment statistics.
Frame-Loss Measurement
Frame-loss is measured by sending and receiving frames with frame-loss information
between peer maintenance end points (MEPs).
Note
ExtremeXOS does not support dual-ended frame-loss measurement.
The protocol data unit (PDU) for dual-ended frame-loss measurement information is
Continuity Check Message (CCM).
For an on-demand loss measurement, a MEP periodically transmits LMM frames with
TxFCf (value of the local TxFCl counter at the time of LMM frame transmission). Upon
receiving a valid LMM frame, a MEP sends an LMR frame to the requesting MEP.
(Valid LMM frames have a valid MD level and a destination MAC address equal to the
receiving MEP's MAC address.)
Upon receiving an LMR frame, a MEP uses the following values to make near-end and
far-end loss measurements:
• Received LMR frame's TxFCf, RxFCf, and TxFCb values, and local counter RxFCl value
at the time this LMR frame was received. These values are represented as TxFCf[tc],
RxFCf[tc], TxFCb[tc], and RxFCl[tc]; where tc is the time the current reply frame was
received.
• Previous LMR frame's TxFCf, RxFCf, and TxFCb values, and local counter RxFCl value
at the time the previous LMR frame was received. These values are represented as
TxFCf[tp], RxFCf[tp], TxFCb[tp], and RxFCl[tp],where tp is the time the previous reply
frame was received.
Near-end frame loss refers to frame loss associated with ingress data frames, while far-
end frame loss refers to frame loss associated with egress data frames. Both near-end
and far-end frame loss measurements contribute to near-end severely errored seconds
(near-end SES) and far-end severely errored seconds (far-end SES) respectively, which
together contribute to unavailable time.
A SES is declared when, during one measurement period, the number of frames lost
exceeds a threshold. ExtremeXOS logs the start and end time of the unavailable periods
(see Figure 52 from ITU-T G.7710).
Some of these commands are optional and, if not configured, the default values are
used. Table 46 lists the default values for delay measurement for a CFM segment.
Table 46: Default Values for Delay Measurement for a CFM Segment
Configuration Default Values
Transmit interval 10 seconds
Window 60 frames
Timeout 50 milliseconds
Alarm threshold 10%
Clear threshold 95%
Dot1p priority 6
Table 47 lists the default values for loss measurement for a CFM segment.
Table 47: Default Values for Loss Measurement for a CFM Segment
Configuration Default Values
LMM Transmit interval 90 seconds
Dot1p priority 6
Window 1200 frames
SES threshold 0.01
Consecutive available count 4
Note
The statistics for a particular transmission are preserved until the user triggers
the transmission once again or if clear counters cfm segment is triggered
from the CLI.
The same transmit-interval is used for both delay and loss measurements.
• To get separate values for delay and loss measurements, use the following
command:
configure cfm segment frame-delay/frame-loss transmit interval
interval
• To configure the dot1p priority of a DMM frame, use the following command:
configure cfm segment segment_name frame-delay dot1p dot1p_priority
• To configure the dot1p priority of a LMM frame, use the following command:
configure cfm segment segment_name frame-loss dot1p dot1p_priority
• To configure the dot1p priority of the CFM segment, use the following command:
configure cfm segment segment_name dot1p dot1p_priority
The same priority is used for both delay and loss measurements.
• To get separate values of priority for delay and loss measurements, use the following
command:
configure cfm segment segment_name frame-delay dot1p dot1p_priority
The same window size is used for both delay and loss measurements.
• To get separate values of window size for delay and loss measurements, use the
following:
configure cfm segment segment_name frame-loss window window_size
• To start the transmission of LMM frames for the set transmit interval, use the
following command:
enable cfm segment frame-loss measurement segment_name mep mep_id
[continuous | count frames]
Note
For the above command, If the the segment is not completely configured,
frames are not transmitted and an error occurs.
• To stop the transmission of the LMM frames for a particular CFM segment, use the
following command:
disable cfm segment frame-loss measurement segment_name mep mep_id
• To display the frame loss or frame delay statistics for the CFM segment, use the
following command:
show cfm segment {{segment_name} | {frame-delay {segment_name}} |
{frame-loss {segment_name {mep mep_id}}}}
Note
Frame-loss measurements are not supported on platforms where the VLAN
packet statistics are not retrieved, and on up-meps.
The MIB is divided into a number of different object groupings: the PM MIB MEP
objects, PM MIB loss measurement objects, PM MIB delay measurement objects, and
SOAM PM notifications. The initial implementation of MIB supports GET operations for
Frame Loss& Frame Delay.
Limitations
• Currently we are storing a maximum of 1800 frames data for each LMM/DMM
session. But to support at least 2 history and 1 current measurement intervals,
we need to store 2700 frames (if message period is 1 sec, Repetition time is 0,
measurement interval is 15 min) for each delay/loss session.
• Each frame’s data is about 60 bytes for LMM and which takes about 44 MB of
memory for 288 sessions
The ability to operate a link in a unidirectional mode for diagnostic purposes supports
the maintenance objective of failure detection and notification. Unidirectional OAM
operation is not supported on some legacy links but is supported on newer links such
as 100BASE-X PCS, 1000BASE-X PCS, and 10GbE RS. On technologies that support
the feature, OAM PDUs can be transmitted across unidirectional links to indicate fault
information. To the higher layers, the link is still failed in both directions, but to the OAM
layer, some communication capabilities exist. The distinction between a unidirectional
link and a normal link is shown in Figure 53.
The operation of OAM on an Ethernet interface does not adversely affect data traffic
because OAM is a slow protocol with very limited bandwidth potential, and it is not
required for normal link operation. By utilizing the slow protocol MAC address, OAM
frames are intercepted by the MAC sub layer and cannot propagate across multiple
hops in an Ethernet network. This implementation assures that OAM PDUs affect only
the operation of the OAM protocol itself and not user data traffic.
The IEEE 802.3ah standard defines fault notifications based on one-second timers. But
by sending triggered OAM PDUs on detecting link down/local fault rather that waiting
to send on periodic PDUs, failure detection is less than one second can be achieved,
thereby accelerating fault recovery and network restoration.
EFM OAM uses standard length Ethernet frames within the normal frame length of 64
to 1518 bytes as PDUs for their operation. Table 48 describes the fields of OAM PDUs.
Note
Only the TWAMP-Test protocol is supported.
The test sessions are setup via the ‘Request-Session’ command message, sent from the
Control-Client to the Server. The Server replies with an ‘Accept Session’ message, which
indicates if the Server is capable of accommodating the request or not. The Control-
Client may send several ‘Request-Session’ command messages to setup multiple test
sessions. To begin the tests, the Control-Client transmits a ‘Start-Session’ command
message. The Server replies with a ‘Start-Ack’ message. The Control-Client does not
begin its test until it receives the ‘Start-Ack’ message. This allows the Server ample
time to configure the test sessions. The Control-Client will stop the test sessions with a
‘Stop-Sessions’ message. The Server does not respond to this message.
TWAMP-Test Protocol
The TWAMP logical roles of the Session-Sender and Session-Reflector use the TWAMP-
Test protocol. The Session-Sender, controlled by the Client, transmits TWAMP-Test
packets to the Session-Reflector. The Session-Reflector processes the packet, copies
the fields from that packet into the reply, and then transmits a reply packet back to the
Session-Sender. The reply packet is larger than the request packet unless the Clients
adds padding.
BFD Overview
Bidirectional Forwarding Detection (BFD) is a hello protocol that provides the rapid
detection of failures in the path and informs the clients (routing protocols) to initiate
the route convergence.
It is independent of media, routing protocols, and data protocols. BFD helps in the
separation of forwarding plane connectivity and control plane connectivity.
Different routing protocol hello mechanisms operate in variable rates of detection, but
BFD detects the forwarding path failures at a uniform rate, thus allowing for easier
network profiling and planning, and consistent and predictable re-convergence time.
You can configure detection multipliers and TX and RX intervals on a directly connected
interface (VLAN).
• The detection multiplier signifies the number of BFD packets the BFD server waits
for after which a timeout is declared.
• The receive interval is the interval at which the BFD server is ready to receive
packets.
• The transmit interval is the interval at which the BFD server is ready to transmit
packets.
For example, when two nodes, A and B, initiate a BFD session between them, a
negotiation about the receive and transmit intervals occurs.
The receive interval of node A is calculated as the maximum of the configured receive
interval of node A and the configured transmit interval of node B. The same applies to
node B.
If multiple clients ask for the same neighbor on the same interface, then a single BFD
session is established between the peers.
Note
BFD can be used to protect IPv4 & IPv6 static routes, OSPFv2 & OSPFv3 (Open
Shortest Path First version 3) interfaces and BGP (Border Gateway Protocol)
and MPLS (Multiprotocol Label Switching) interfaces. For more information, see
Configuring Static Routes on page 1571, BFD for OSPF on page 1653, or refer to
Managing the MPLS BFD Client on page 1513.
Limitations
The following limitations apply to BFD in this release:
• BGP, OSPF (Open Shortest Path First), MPLS, OTM, and static routes act as BFD
clients.
• The echo function is not supported.
• Hardware assist BFD is not supported Universal platforms.
• The number of sessions handled by BFD at minimal timers (less than 100ms) varies
depending on the platform type, the implementation type (H/w or S/w), and the
processing load (which is influenced by other protocols being enabled or other
system conditions such as software forwarding).
• The following scaling limits apply to BFD hardware assist:
◦ Maximum 900 sessions if PTP feature not enabled.
◦ Maximum 425 sessions with PTP enabled.
◦ Maximum of 256 sessions with 3 ms transmit interval.
Configuring BFD
You can enable, disable, configure, and unconfigure BFD.
• To enable or disable BFD, use the following command:
[enable | disable] bfd vlan vlan_name
• To configure the detection multipliers and TX and RX intervals, use the following
command:
configure bfd vlan vlan_name [{detection-multiplier multiplier}
{receive-interval rx_interval} {transmit-interval tx_interval}]
• To specify either authentication using a simple password or no authentication, use
the following command:
configure bfd vlan vlan_name authentication [none | simple-password
{encrypted} password]]
• To unconfigure BFD, use the following command:
unconfigure bfd vlan vlan_name
To find a suitable low-range interval for the chosen configuration and network load,
statistics of missed hello packets can help. These hello packets are exchanged between
BFD peers, and if n number of packets are missed in a row, path failure will be declared,
where n is detection-multiplier. However, missed hellos less than n number will not
declare failure, but if statistics are steadily increasing, it can indicate that the currently
chosen BFD interval is not appropriate.
In that case, a next longer interval/ higher detection multiplier can be chosen for the
BFD session, and statistics can be monitored again. In addition, when statistics are
observed periodically, missed hellos can give an indication of whether health of the
path is deteriorating. These statistics are collected continuously for each BFD session.
The commands to display the statistics of missed hellos are provided in Displaying BFD
Information on page 502.
Note
Enabling strict BFD generates a warning message to reboot the switch so as
to update the route table: WARNING: Please reboot the switch for the
strict BFD to take effect.
To show strict BFD session protection status, use the following command:
• To display counters of missed hello packets for a session using neighbor IP address,
use the following command:
show bfd session counters missed-hellos neighbor ipaddress {vr [vrname
| all]}
• To display counters of missed hello packets for a particular range of session ID, use
the following command:
show bfd session counters missed-hellos session-id first {- last}
• To show strict BFD session protection status, use the following command:
show iproute bfd
To make BFD sessions run in the hardware, the following configuration is required:
• Hardware BFD is enabled by configuring one of the unused front panel port as a
loopback port, which should not be available for switching user data traffic. This port
is used internally by the BFD hardware to send control packets.
• Ensure IP forwarding is enabled on the BFD interfaces.
• The next hop MAC address of the neighbor should be known for the session
creation. The BFD process triggers ARP to resolve the next hop MAC address, if this is
not configured statically.
L2 topology convergence time might affect the BFD sessions running at the shortest
interval.
Unconfiguring loopback for BFD disables the hardware assist support. The supported
shortest interval is 3 ms in hardware mode.
Sample configuration:
To check the number of BFD sessions supported in the hardware and configured
loopback port:
#show bfd
..
..
Hardware Assist Operational State : Enabled(Loopback
port not configured)
Hardware Assist Primary Loopback Port : 1
Hardware Assist Secondary Loopback Port : None
Maximum # of Hardware Assist Sessions : 900
ExtremeXOS 15.5 supports read-only for all BFD MIB tables, global objects, and supports
BFD notifications as well. BFD-MIB implementation is based on draft-ietf-bfd-mib-14,
and draft-ietf-bfd-tc-mib-02. Currently, the BFD MIB is kept under the enterprise MIB in
ExtremeXOS implementation.
For example, if sessions with session IDs 1, 2, 3, 4, and 5 are moving to the UP state in
the same window of time, then a single trap is sent with low range index 1 and high
range index 5. As a second example, after all sessions moved to the UP state, session ID
2 goes DOWN and comes back UP before generating the first trap. In this case also, the
first trap which is the UP trap, is set to include all sessions. Then, the second trap would
be the DOWN trap for session ID 2, and finally the third trap would be the UP trap again
for session ID 2. Thus, events are not missed or reordered.
NMS relates traps to sessions using only the session index which is provided in traps. It
is necessary that the session index does not change until NMS retrieves session details
via GET requests. To achieve this, the session will be retained for fifteen minutes after
deletion is initiated by the BFD client (control protocol). During this period transmission
and reception of BFD control packets will be stopped. If BFD protection is requested for
the same destination again within this period, the same session index is reused. With
this change, NMS can also have good history of the session to a particular destination.
Note
SNMP (Simple Network Management Protocol) traps for BFD are disabled by
default for both session-down and session-up.
Configuration Example
Router R1:
Power over Ethernet (PoE) is an effective method of supplying 48 VDC power to certain
types of powered devices (PDs) through Category 5 and above twisted pair Ethernet
cables.
PDs include wireless access points, IP telephones, laptop computers, web cameras,
and other devices. With PoE, a single Ethernet cable supplies power and the data
connection, reducing costs associated with separate power cabling and supply.
PoE+ supports higher power levels as defined by the IEEE 802.3at standard.
PoE++ supports higher power levels as defined by the IEEE 802.3bt standard.
PoE+
• ExtremeSwitching 5420F-8W-16P-4XE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5420F-24P-4XE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5420F-16MW-32P-4XE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5420F-16W-32P-4XE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5420F-48P-4XE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5420F-48P-4XL—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5420M-16MW-32P-4YE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5320-48P-8XE—Switch Engine 31.6 and later.
PoE++
• ExtremeSwitching 5520-24W—ExtremeXOS 31.1 and later.
• ExtremeSwitching 5520-48W—ExtremeXOS 31.1 and later.
• ExtremeSwitching 5520-12MW-36W—ExtremeXOS 31.1 and later.
• ExtremeSwitching 5420F-8W-16P-4XE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5420F-16MW-32P-4XE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5420F-16W-32P-4XE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5420M-24W-4YE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5420M-16MW-32P-4YE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5420M-48W-4YE—ExtremeXOS 31.3 and later.
• ExtremeSwitching 5720-24MW—Switch Engine 32.1 and later.
• ExtremeSwitching 5720-24MXW—Switch Engine 32.1 and later.
• ExtremeSwitching 5720-48MW—Switch Engine 32.1 and later.
• ExtremeSwitching 5720-48MXW—Switch Engine 32.1 and later.
• 4120-24MW-4Y—Switch Engine 32.7 1 and later.
• 4120-48MW-4Y—Switch Engine 32.7 1 and later.
• 4220-4MW-8P-4X—Switch Engine 32.7 1 and later.
• 4220-4MW-20P-4X—Switch Engine 32.7 1 and later.
• 4220-8MW-40P-4X—Switch Engine 32.7 1 and later.
• Monitor and control of port PoE fault conditions including exceeding configured
class limits and power limits and short-circuit detection
• Support for configuring and monitoring PoE status at the system, slot, and port
levels
• Management of an over-subscribed power budget
• Port LED control for indicating the link state
• Support for hitless failover in a SummitStack with a master and backup node.
• (Fast PoE) Ability to provide PoE power when the switch is powered on without
waiting for boot up based on last saved PoE state on all Universal (per port)
platforms).
• (Perpetual PoE) Preserve PoE power delivery to devices during reboot on all
Universal platforms.
Power Delivery
This section describes how the system provides power to the PDs. ExtremeXOS always
configures the PoE controller to use Dynamic Power Management mode.
Switch Model With Internal With Internal With Internal With Internal
Fixed PSU Fixed PSU + Fixed PSU + Fixed PSU +
920W PSU 1200W PSU 2000W PSU
4120-24MW-4Y 680W 1440W 1380W Not
(100-120VAC) Supported
4120-48MW-4Y 640W Not 1340W 1230W
(100-120VAC) Supported
4120-24MW-4Y 680W 1440W 1540W Not
(200-240VAC) Supported
4120-48MW-4Y 980W Not 1780W 2180W
(200-240VAC) Supported
Note
* @ 100-120 VAC
Note
** @ 200-240VAC
Note
It’s recommended that primary and secondary PSUs be of the same type to
support optimal PoE operation.
Guard Band
To reduce the chances of ports fluctuating between powered and non-powered states,
newly inserted PDs are not powered when the actual delivered power for the switch is
within a preset value below the configured inline power budget for that slot or switch.
This band is called the guard band and the value used is 20 W for all ExtremeSwitching
series switches. However, actual aggregate power can be delivered up to the
configured inline power budget for the slot or switch (for example, when delivered
power from ports increases or when the configured inline power budget for the slot is
reduced).
If total consumed power is within the guard band, new ports are not powered up.
PD Disconnect Precedence
After a PD is discovered and powered on an ExtremeSwitching switch, the actual power
drain is continuously measured.
If the usage for power by PDs is within the guard band, the system begins denying
power to PDs.
You can configure the switch to handle a request for power that exceeds the power
budget situation in one of two ways, called the disconnect precedence:
• Disconnect PDs according to the configured PoE port priority for each PD.
• Deny power to the next PD requesting power, regardless of that port’s PoE priority.
The default value is deny-port.
When a port is disconnected or otherwise moves into a fault state, SNMP (Simple
Network Management Protocol) generates an event (after you configure SNMP and a
log message is created).
The default value is 70%; you can configure this threshold to generate events from 1%
to 99% consumption of the reserved power budget. You can also configure the system
to log an EMS message when the usage threshold is crossed (for more information on
EMS, see Using the Event Management System/Logging on page 549).
Legacy Devices
ExtremeXOS software allows the use of non-standard PDs with the switch. These are
PDs that do not comply with the IEEE 802.3af standard.
The system detects non-standard PDs using a capacitance measurement. You must
enable the switch to detect legacy devices; the default value is disabled.
Detecting a PD through capacitance is used only if the following two conditions are
both met:
• Legacy PD detection is enabled.
• The system unsuccessfully attempted to discover the PD using the standard
resistance measurement method.
If the measured power for a specified port exceeds the port’s operator limit, the power
is withdrawn from that port and the port moves into a fault state.
If you attempt to set an operator limit outside the accepted range, the system returns
an error message.
Configuring PoE
PoE supports a full set of configuration and monitoring commands that allows you
to configure, manage, and display PoE settings at the system, slot, and port level. To
enable inline power, or PoE, you must have a powered switch.
To configure inline power, or PoE, you must accomplish the following tasks:
Additionally, you can configure the switch to use legacy PDs, apply specified PoE limits
to ports, apply labels to PoE ports, and configure the switch to allow you to reset a PD
without losing its power allocation.
For complete information on using the CLI commands, see the Switch Engine
Command References.
Disabling the inline power to a PD immediately removes power from the PD. Inline
power is enabled by default.
• To display the configuration for inline power, use the following command:
show inline-power
• To display fast and perpetual PoE status, use the following commands:
show inline-power [fast | perpetual]
show inline-power [fast | perpetual] slot slot
show inline-power fast ports {port_list}
Note
The switch generates an SNMP event if a PD goes offline, and the port’s state
moves from Power to Searching. You must configure SNMP to generate this
event.
When the actual power used by the PDs on a switch or slot exceeds the power
budgeted for that switch or slot, the switch refuses power to PDs. There are two
methods used by the switch to refuse power to PDs, and whichever method is in place
applies to all PoE slots in the switch. This is called the disconnect precedence method,
and you configure one method for the entire switch.
The default value is deny port. Using this method, the switch simply denies power to
the next PD requesting power from the slot, regardless of that port’s PoE priority or
port number.
Using the lowest priority method of disconnect precedence, the switch disconnects the
PDs connected to ports configured with lower PoE priorities.
When several ports have the same PoE priority, the lower port numbers have higher
PoE priorities. That is, the switch withdraws power (or disconnects) those ports with the
highest port number(s).
The system keeps dropping ports, using the algorithm you selected with the
disconnect ports command, until the measured inline power for the slot is lower than
the reserved inline power.
• To Configure the disconnect precedence for the switch, use the following command:
configure inline-power disconnect-precedence [deny-port | lowest-
priority]
• To return the disconnect precedence to the default value of deny port, use the
following command:
unconfigure inline-power disconnect-precedence
• To display the currently configured disconnect precedence, use the following
command:
show inline-power
The default value for this usage threshold is 70%. You can configure the usage
threshold to be any integer between 1% and 99%.
• To configure the threshold percentage of budgeted power used on a slot or the total
power on a stand-alone switch that causes the system to generate an SNMP event
and EMS message, use the following command:
configure inline-power usage-threshold threshold
• To reset the threshold that causes the system to generate an SNMP event and EMS
message per slot to 70% for measured power compared to budgeted power, use the
following command:
unconfigure inline-power usage-threshold
• To display the currently configured usage threshold, use the following command:
show inline-power
This configuration applies to the entire switch; you cannot configure the detection
method per slot.
The switch detects PDs through capacitance only if both of the following conditions are
met:
• The legacy detection method is enabled.
• The switch unsuccessfully attempted to discover the PD using the standard
resistance measurement method.
• To configure a switch to detect legacy, non-standard PDs for a specified slot, use the
following command:
configure inline-power detection [802.3af-only | legacy-and-802.3af
[4-point | 2-point] | bypass] ports port_list
• To configure the switch to detect legacy PDs on a switch, use the following
command:
configure inline-power detection [802.3af-only | legacy-and-802.3af
[4-point | 2-point] | bypass] ports port_list
If the operator limit for a specified port is less than the power drawn by the legacy PD,
the legacy PD is denied power.
• To set the operator limit on specified ports, which limits how much power a PD can
draw from that port, use the following command:
configure inline-power operator-limit milliwatts ports [all |
port_list]
• To reset the operator limit to the default value of 15.4 W for PoE, 30 W for PoE+, or 60
W for PoE++, use the following command:
unconfigure inline-power operator-limit ports [all |port_list]
• To display the current operator limit on each port, use the following command:
show inline-power configuration ports {port_list}
Note
With a class-based operator-limit type, if a class4 PD is attached, then the
operator-limit set will be ignored and the switch will not deliver more than
30W to the PD.
When class-based operator-limit is configured on a port, "Max Allowed
Power" will show the maximum power for the class of the attached PD.
Without the class-based option, "Max Allowed Power" will show the
configured or default value of operator-limit.
Clearing Statistics
You can clear the PoE statistics for specified ports or for all ports.
To clear the statistics and reset the counters to 0, enter the following command:
The output indicates the following inline power status information for each slot:
◦ Inline power status—The status of inline power. The status conditions are:
◦ Enabled
◦ Disabled
◦ Firmware status—The operational status of the slot. The status conditions are:
◦ Operational
◦ Not operational
◦ Disabled
◦ Subsystem failure
◦ Card not present
◦ Slot disabled
The detail command option lists all inline power information for the selected ports.
Detail output displays the following information:
• Configured admin state
• Inline power state
• MIB detect status
• Label
• Operator limit
• PD class
• Max allowed power
• Measured power
• Line voltage
• Current
• Fault status
• Detailed status
• Priority
* (CIT_32.1.1.6) 5720-24MW-SwitchEngine.1 # show inline-power perpetual
Perpetual PoE
-------------
Disabled
To display PoE fast information by port, run the show inline-power fast ports
{port_list} command. This command displays the following information:
• Port status (enabled/disabled)
• Operator limits
• Priority
• Detection method
* (CIT_32.1.0.383) 5720-24MW-SwitchEngine.2 # sh inline-power fast
State Enable Disconnect Last Fast Boot Status
----- -------- --------------- -------------------------
HW Disabled Deny-port Succeeded
Cfg Disabled Deny-port
Viewing statistics on a regular basis allows you to see how well your network is
performing. If you keep simple daily records, you can see trends emerging and notice
problems arising before they cause major network faults. In this way, statistics can help
you get the best out of your network.
This information may be useful for your technical support representative if you have
a problem. ExtremeXOS software includes many command line interface (CLI) show
commands that display information about different switch functions and facilities.
Note
For more information about show commands for a specific ExtremeXOS
feature, see the appropriate chapter in this guide.
You can also display a snapshot of the real-time port statistics at the time you issue
the command and view the output in a page-by-page mode. This setting is not saved;
therefore, you must specify the no-refresh parameter each time you want a snapshot
of the port statistics.
• For SummitStack stacking ports, you can also view transmit and receive errors with
the following commands:
show ports stack-ports stacking-port-list}txerrors {no-refresh}
show ports stack-ports {stacking-port-list}rxerrors {no-refresh}
Information displayed is identical to the details displayed for non-stacking ports.
You can configure the interval, threshold (maximum number of link down events), and
disable time, and which of the preceding actions to take on a per port basis.
Thus, the maximum configurable value for threshold = link-flap interval (seconds) *
maximum link-flaps detectable/second.
• If the threshold is exceeded, and the log action is set, and the disable port action is
not set, then a log message similar to the following appears:
• If the log action and disable port action are set, and the threshold is exceeded, then
a log message similar to the following appears:
• This log message appears when all of the following conditions are met:
◦ Disable port action is set on a port.
◦ The number of link-flaps on the port exceeds the threshold.
◦ You issue the command enable log debug-mode.
◦ You add the event to the log filter (for example: "conf log filter "DefaultFilter" add
events vlan.msgs.PortLinkFlapActDsblPort")
SNMP Traps
If configured, after excessive link flapping an SNMP (Simple Network Management
Protocol) trap notification is generated for link up or down events. The trap notification
“etsysLinkFlapViolation” includes the following information regarding the port in
violation of threshold:
• Interface index
• Interface name
• Operation status (up or down)
Statistics Description
Current Lin- Flaps Number of link-flaps in the current interval before the
threshold is exceeded.
Total Link-Flaps Total number of link-flaps accumulated for this port
since the feature was turned on.
Time Elapsed Time in seconds that has passed in the current interval.
Threshold Exceeded Number of times a given port has exceeded the
threshold value for the maximum number of tolerated
link-flaps per interval.
To set interval, threshold (maximum number of link down events), and disable time
values for link-flap detection, use the following command:
To reset interval, threshold (maximum number of link down events), and disable time
to defaults for link-flap detection, use the following command.
To add or delete actions (disabling ports, logging events, generating SNMP traps) to be
taken when excessive link-flapping is detected, use the following command:
To manually enable ports that have been disabled due to excessive link flapping, use
the following command:
To clears the counters related to port link flapping, use the following command.
To display the link-flap detection status for ports, use the following command:
Table 64: Port Monitoring Display Keys with Auto-Refresh Enabled (continued)
Key(s) Description
[0] Clears all counters.
[Space] Cycles through the following screens:
• Packets per second
• Bytes per second
• Percentage of bandwidth
Table 65 describes the keys used to control the displays that appear if you use any of
the show ports commands and specify the no-refresh parameter.
Note
While using VLAN statistics, traffic also matching egress ACL (Access Control
List) counters will cause the VLAN statistics Tx counter to not increment.
In simple terms, a normal routine performs a simple ASIC and packet loopback test
on all ports, and an extended routine performs extensive ASIC, ASIC-memory, and
packet loopback tests. By running and viewing the results from diagnostic tests, you
can detect and troubleshoot any hardware issues.
On ExtremeSwitching series switches, you run the diagnostic routine on the switch or
on the stacking ports. Running the switch or stacking port diagnostic routine affects
system operation; the switch is unavailable during the diagnostic test.
Note
Before running diagnostics, you must power on the External Power Supply
(EPS) when it is connected to the switch.
When you run diagnostics on the SummitStack stacking ports, the switch completes a
hardware test to ensure that the stacking ports are operational.
Note
No ExtremeSwitching Universal switches include the diagnostic image in the
main ExtremeXOS core software image (.xos). Instead, they have a separate
diagnostic image that is upgraded using an XMOD file. For information about
how to install an XMOD file, see Installing a Modular Software Package on page
1962.
Running Diagnostics
If you run the diagnostic routine, the switch reboots and then performs the diagnostic
test.
During the test, traffic to and from the ports on the switch is temporarily unavailable.
When the diagnostic test is complete, the switch reboots and becomes operational
again.
To run the diagnostic routine on the stack ports, you need a dedicated stacking cable
that connects stack port 1 to stack port 2, which are located at the rear of the switch.
The stacking cable is available from Extreme Networks. The switch performs a hardware
test to confirm that the stack ports are operational; traffic to and from the ports on the
switch is temporarily unavailable. This Bit Error Rate Test (BERT) provides an analysis of
the number of bits transmitted in error.
After the switch runs the diagnostic routine, test results saved to the switch’s EEPROM
and messages are logged to the syslog.
• Run diagnostics with the following command:
run diagnostics [extended | normal | stack-port] {slot [slot | A | B]}
While diagnostic tests are running, the MGMT LED blinks amber. If a diagnostic test
fails, the MGMT LED continues to blink amber. During normal operation, the MGMT
LED blinks green.
Example
The following example displays the results of boot-time diagnostics on a specific stack
slot:
# show diagnostics slot 2 boot-time
Slot-2: 5520-48SE-ACDC
Time: Thu May 23 19:04:11 2024
The software performs a proactive, preventive search for problems by polling and
reporting the health of system components, including power supplies, power supply
controllers, and fans. By isolating faults to a specific module, backplane connection,
control plane, or component, the system health checker notifies you of a possible
hardware fault.
The system health checker polls and reads the switch fabric and CPU registers.
Polling is always enabled on the system and occurs in the background every 10
seconds; the polling value is not a user-configured parameter.
System health check errors are reported to the Syslog. If you see an error, contact
Extreme Networks Technical Support. There are no health checking tests related to
the stacking links in a SummitStack.
To display the system health check setting, including polling and how ExtremeXOS
software handles faults on the switch, use the command: show switch
The system health check setting, displayed as SysHealth check, shows the polling
setting and how ExtremeXOS handles faults. The polling setting appears as Enabled,
and the fault handling setting appears in parenthesis next to the polling setting.
Using ELSM
Extreme Link Status Monitoring (ELSM) is an Extreme Networks proprietary protocol
that monitors network health by detecting CPU and remote link failures.
About ELSM
ELSM monitors network health by exchanging various hello messages between two
ELSM peers.
ELSM uses an open-ended protocol, which means that an ELSM-enabled port expects
to send and receive hello messages from its peer. The Layer 2 connection between
ports determines the peer connection. Peers can be either directly connected or
separated by one or more hubs. If there is a direct connection between peers, they
are considered neighbors.
If ELSM detects a failure, the ELSM-enabled port responds by blocking traffic on that
port. For example, if a peer stops receiving messages from its peer, ELSM brings down
that connection by blocking all incoming and outgoing data traffic on the port and
notifying applications that the link is down.
In some situations, a software or hardware fault may prevent the CPU from
transmitting or receiving packets, thereby leading to the sudden failure of the CPU.
If the CPU is unable to process or send packets, ELSM isolates the connections to the
faulty switch from the rest of the network. If the switch fabric sends packets during a
CPU failure, the switch may appear healthy when it is not. For example, if hardware
forwarding is active and software forwarding experiences a failure, traffic forwarding
may continue. Such failures can trigger control protocols such as ESRP (Extreme
In addition to the ELSM port states described in the next section, ELSM has hello
transmit states. The hello transmit states display the current state of transmitted ELSM
hello messages and can be one of the following:
• HelloRx(+)—The ELSM-enabled port is up and receives Hello+ messages from its
peer. The port remains in the HelloRx+ state and restarts the HelloRx timer each
time it receives a Hello+ message. If the HelloRx timer expires, the hello transmit
state enters HelloRx(-). The HelloRx timer is 6 * hello timer, which by default is 6
seconds.
• HelloRx(-)—The ELSM-enabled port either transitions from the initial ELSM state or is
up but has not received hello messages because there is a problem with the link or
the peer is missing.
For information about displaying ELSM hello messages and hello transmit states, see
Displaying ELSM Information on page 544.
If an ELSM-enabled port enters the Up state, the up timer begins. Each time the port
receives a Hello+ message from its peer, the up timer restarts and the port remains
in the Up state. The up timer is 6 * hello timer, which by default is 6 seconds.
• Down—Indicates that the port is down, blocked, or has not received Hello+
messages from its peer.
If an ELSM-enabled port does not receive a hello message from its peer before the
up timer expires, the port transitions to the Down state. When ELSM is down, data
packets are neither forwarded nor transmitted out of that port.
• Down-Wait—Indicates a transitional state.
If the port enters the Down state and later receives a Hello+ message from its peer,
the port enters the Down-Wait state. If the number of Hello+ messages received
is greater than or equal to the hold threshold (by default, two messages), the port
transitions to the Up state. If the number of Hello+ messages received is less than
the hold threshold, the port enters the Down state.
• Down-Stuck—Indicates that the port is down and requires user intervention.
If the port repeatedly flaps between the Up and Down states, the port enters the
Down-Stuck state. Depending on your configuration, there are two ways for a port to
transition out of this state:
By default, automatic restart is enabled, and the port automatically transitions out
of this state. For more information, see the enable elsm ports port_list auto-
restart command.
If you disabled automatic restart, and the port enters the Down-Stuck state, you
can clear the stuck state and enter the Down state by using one of the following
commands:
◦ clear elsm ports port_list auto-restart
◦ enable elsm ports port_list auto-restart
Note
If you reboot the peer switch, its ELSM-enabled peer port may enter the Down-
Stuck state. If this occurs, clear the stuck state using one of the following
commands:
• clear elsm ports port_list auto-restart
• enable elsm ports port_list auto-restart
For information about displaying ELSM port states, see Displaying ELSM Information on
page 544.
Link States
The state of the link between ELSM-enabled (peer) ports is known as the link state. The
link state can be one of the following:
• Ready—Indicates that the port is enabled but there is no physical link
• Active—Indicates that the port is enabled and the physical link is up
• View the state of the link between the peer ports using the commands:
show elsm ports all | port_list
show ports {port_list} information {detail}
If you use the show elsm ports all | port_list command, the Link State row
displays link state information.
If you use the show ports {port_list} information command, the Link State
column displays link state information.
If you use the show ports {port_list} information command and specify the
detail option, the ELSM Link State row displays ELSM link state information. For
more information, see ELSM Link States on page 539.
For more information about these show commands, see Displaying ELSM Information
on page 544.
• View the current state of ELSM on the switch using the commands:
◦ show elsm
show elsm ports all | port_list
show ports {port_list} information {detail}
If you use the show elsm commands, the following terms display the ELSM link
state:
◦ Up—Indicates that ELSM is enabled and the ELSM peer ports are up and
communicating; the ELSM link state is up. In the up state, the ELSM-enabled port
sends and receives hello messages from its peer.
◦ Down—Indicates that ELSM is enabled, but the ELSM peers are not
communicating; the ELSM link state is down. In the down state, ELSM transitions
the peer port on this device to the down state. ELSM blocks all incoming and
outgoing switching traffic and all control traffic except ELSM PDUs.
If you use the show ports {port_list} information {detail} command, the
following columns display the current state of ELSM on the switch:
◦ Flags
▪ L—Indicates that ELSM is enabled on the switch
▪ - —Indicates that ELSM is disabled on the switch
◦ ELSM
▪ up—Indicates that ELSM is enabled and the ELSM peer ports are up and
communicating; the ELSM link state is up. In the up state, the ELSM-enabled
port sends and receives hello messages from its peer.
▪ dn—Indicates that ELSM is enabled, but the ELSM peers are not
communicating; the ELSM link state is down. In the down state, ELSM
transitions the peer port on this device to the down state. ELSM blocks all
incoming and outgoing switching traffic and all control traffic except ELSM
PDUs.
▪ - —Indicates that ELSM is disabled on the switch.
If you specify the optional detail parameter, the following ELSM output is called out
in written explanations versus displayed in a tabular format:
◦ ELSM Link State (displayed only if ELSM is enabled on the switch)
▪ Up—Indicates that ELSM is enabled and the ELSM peer ports are up and
communicating; the ELSM link state is up. In the up state, the ELSM-enabled
port sends and receives hello messages from its peer.
▪ Down—Indicates that ELSM is enabled, but the ELSM peers are not
communicating; the ELSM link state is down. In the down state, ELSM
transitions the peer port on this device to the down state. ELSM blocks all
incoming and outgoing switching traffic and all control traffic except ELSM
PDUs.
◦ ELSM
▪ Enabled—Indicates that ELSM is enabled on the switch
▪ Disabled—Indicates that ELSM is disabled on the switch
For more information about these show commands, see Displaying ELSM Information
on page 544.
ELSM Timers
To determine whether there is a CPU or link failure, ELSM requires timer expiration
between the ELSM peers. Depending on the health of the network, the port enters
different states when the timers expire. For more information about the ELSM port
states, see ELSM Port States on page 537.
Table 67 describes the ELSM timers. Only the hello timer is user-configurable; all other
timers are derived from the hello timer. This means that when you modify the hello
timer, you also modify the values for down, up, and HelloRx timers.
Note
ELSM and mirroring are mutually exclusive. You can enable either ELSM, or
mirroring, but not both.
Note
ELSM is not to be configured on ports at either end of an MLAG.
Enabling ELSM
ELSM works between two connected ports (peers), and each ELSM instance is based on
a single port. The Layer 2 connection between the ports determines the peer. You can
have a direct connection between the peers or hubs that separate peer ports. In the
first instance, the peers are also considered neighbors. In the second instance, the peer
is not considered a neighbor.
• Enable ELSM on one or more ports with the command:
enable elsm ports port_list
When you enable ELSM on a port, ELSM immediately blocks the port and it enters the
Down state. When the port detects an ELSM-enabled peer, the peer ports exchange
ELSM hello messages. At this point, the ports enter the transitional Down-Wait state.
If the port receives Hello+ messages from its peer and does not detect a problem, the
peers enter the Up state. If a peer detects a problem or there is no peer port configured,
the port enters the Down state.
For more information about the types of ELSM hello messages, see ELSM Hello
Messages on page 537. For information about configuring the ELSM hello timer, see
the next section.
A high hello timer value can increase the time it takes for the ELSM-enabled port to
enter the Up state. The down timer is (2 + hold threshold) * hello timer. Assuming
the default value of 2 for the hold threshold, configuring a hello timer of 128 seconds
creates a down timer of (2 + 2) 128, or 512 seconds. In this scenario it would take 512
seconds for the port to transition from the Down to the Up state.
• Configure the ELSM hello timer with the command:
configure elsm ports port_list hellotime hello_time
After the down timer expires, the port checks the number of Hello+ messages against
the hold threshold. If the number of Hello+ messages received is greater than or equal
to the configured hold threshold, the ELSM receive port moves from the Down-Wait
state to the Up state.
If the number of Hello+ messages received is less than the configured hold threshold,
the ELSM receive port moves from the Down-Wait state back to the Down state and
begins the process again.
If you modify the hold threshold on one port, we recommend that you use the same
hold threshold value on its peer port.
You must configure the hold threshold on a per-port basis, not on a per-switch basis.
• Configure the ELSM hold threshold with the command:
configure elsm ports port_list hold-threshold hold_threshold
If you disable ELSM automatic restart, the ELSM-enabled port can transition between
the following states multiple times: Up, Down, and Down-Wait. When the number
of state transitions is greater than or equal to the sticky threshold, the port enters
the Down-Stuck state. The ELSM sticky threshold specifies the number of times a
port can transition between the Up and Down states. The sticky threshold is not user-
configurable and has a default value of 1. That means a port can transition only one
time from the Up state to the Down state. If the port attempts a subsequent transition
from the Up state to the Down state, the port enters the Down-Stuck state.
We recommend that you use the same automatic restart configuration on each peer
port.
• If the port enters the Down-Stuck state, you can clear the stuck state and enter the
Down state by using one of the following commands:
clear elsm ports port_list auto-restart
enable elsm ports port_list auto-restart
Disabling ELSM
• Disable ELSM on one or more ports with the command:
disable elsm ports port_list
When you disable ELSM on the specified ports, the ports no longer send ELSM hello
messages to their peers and no longer maintain ELSM states.
This command displays in a tabular format the operational state of ELSM on the
configured ports.
If ports are configured for ELSM (ELSM is enabled), the switch displays the following
information:
◦ Port—The port number of the ELSM-enabled port.
◦ ELSM State—The current state of ELSM on the port. For information about the
port states, see ELSM Port States on page 537.
◦ Hello time—The current value of the hello timer, which by default is 1 second. For
information about configuring the hello timer, see Configuring the ELSM Hello
Timer on page 542.
If no ports are configured for ELSM (ELSM is disabled), the switch does not display
any information.
• Display detailed information for one or more ELSM-enabled ports on the switch.
show elsm ports all | port_list
In addition to the port, ELSM state, and hello timer information, this command
displays in a tabular format the following:
◦ Link State—The state of the link between ELSM-enabled ports. For information
about the link states, see Link States on page 538.
◦ ELSM Link State—The current state of the ELSM logical link on the switch. For
more information, see ELSM Link States on page 539.
You can also use the clear counters command, which clears all of the counters on
the device, including those associated with ELSM.
ELSM detects remote link failures if the established link is through a Layer 2 transport
cloud and the ELSM endpoints traverse the Layer 2 cloud in a point-to-point fashion, as
shown in Figure 57 on page 546.
Note
In the following sample configurations, any lines marked (Default) represent
default settings and do not need to be explicitly configured.
Switch A Configuration
• ELSM-enabled port—Port 1
• Hello timer—2 seconds
• Hello threshold—2 hello messages
enable elsm ports 1
configure elsm ports 1 hellotime 2
configure elsm ports 1 hold-threshold 2 (Default)
Switch B Configuration
• ELSM-enabled port—Slot 2, port 1
• Hello timer—2 seconds
• Hello threshold—2 hello messages
enable elsm ports 2:1
configure elsm ports 2:1 hellotime 2
configure elsm ports 2:1 hold-threshold 2 (Default)
After you enable ELSM on the ports, the peers exchange hello messages with each
other as displayed in Figure 58.
Figure 58: Extreme Networks Switches with ELSM-Enabled Ports Exchanging Hello
Messages
To configure ELSM with LAG (Link Aggregation Group), enable ELSM on each port
member of the LAG, as shown in the following example:
enable sharing 7 grouping 7-9, 41 algorith address-based L2
enable elsm port 7
enable elsm port 8
enable elsm port 9
enable elsm port 41
# sh elsm
Port ELSM State Hello Time
==== ========== ==========
7 Up 1 (secs)
8 Down 1 (secs)
9 Down 1 (secs)
41 Up 1 (secs)
You can view the system temperature with the command: show temperature
SummitStack
The following output shows a sample display from a SummitStack.
Slot-3 Stack.1 # show temperature
Field Replaceable Units Temp (C) Status Min Normal Max
--------------------------------------------------------------------------
Slot-1 :
Slot-2 : SummitX 34.50 Normal -10 0-54 59
Slot-3 : SummitX 36.50 Normal -10 0-66 67
Slot-4 :
Slot-5 :
Slot-6 :
Slot-7 :
Slot-8 :
Slot-3 Stack.2 #
The switch monitors its temperature and generates a warning if the temperature
exceeds the normal operating range. If the temperature exceeds the maximum limit,
the show switch output indicates the switch in an OPERATIONAL (Overheat) mode,
and the show temperature output indicates an error state due to overheat.
For example, a link going down, a user logging in, a command entered on the
command line, or the software executing a debugging statement, are all events that
might generate a log message. The system for saving, displaying, and filtering events
is called the EMS. With EMS, you have many options about which events generate log
messages, where the messages are sent, and how they are displayed.
The first six targets exist by default; but before enabling any syslog host, you must add
the host's information to the switch using the configure syslog command.
By default, the memory buffer and NVRAM targets are already enabled and receive
messages.
• To start sending messages to the targets, use the following command:
enable log target [console | memory-buffer | nvram | primary-
node|backup-node| session | syslog [all | ipaddress udp-port
{udp_port} | ipPort | ipaddress tls_port {tls_port}] {vr vr_name}
{local0...local7}]]
After you enable this feature, the target receives the messages for which it is
configured. See Target Configuration on page 551 for information on viewing
the current configuration of a target. The memory buffer can contain only the
configured number of messages, so the oldest message is lost when a new message
arrives, when the buffer is full.
• To stop sending messages to the target, use the following command:
disable log target [console | memory-buffer | nvram |primary-node |
backup-node | session | syslog [all | ipaddress udp-port {udp_port}
| ipPort | ipaddress tls_port {tls_port}] {vr vr_name} {local0 ...
local7}]]
Refer to your UNIX documentation for more information about the syslog host facility.
However, the full data between the EMS servers is not synchronized. The reason for this
design decision is to make sure that the control channel is not overloaded when a high
number of log messages are generated.
To capture events generated by the primary node onto the backup node, two
additional targets are shown in the target commands—one called primary-node and
one called backup-node. The first target is active only on the non-primary (backup)
EMS server and is used to send matching events to the primary EMS server. The other
target is active only on the primary EMS server and is used to send matching events to
all other EMS servers.
If the condition for the backup target is met by a message generated on the primary
node, the event is sent to the backup node. When the backup node receives the event,
it detects if any of the local targets (NVRAM, memory, or console) are matched. If so
that event gets processed. The session and Syslog targets are disabled on the backup
node, as they are handled on the primary. If the condition for the primary target is met
by a message generated on the backup, the event is sent to the primary node.
Note that the backup target is active only on the primary node, and the primary target
is active only on the backup node.
Target Configuration
To specify the messages to send to an enabled target, you can set a message severity
level, a filter name, and a match expression. These items determine which messages
are sent to the target. You can also configure the format of the messages in the targets.
For example, the console display target is configured to get messages of severity info
and greater, the NVRAM target gets messages of severity warning and greater, and
the memory buffer target gets messages of severity debug-data and greater. All the
targets are associated by default with a filter named DefaultFilter that passes all events
at or above the default severity threshold. All the targets are also associated with a
default match expression that matches any messages (the expression that matches
any message is displayed as Match : (none) from the command line). And finally, each
target has a format associated with it.
• To display the current log configuration of the targets, use the following command:
show log configuration target {console | memory-buffer | nvram |
primary-node | backup-node | session | syslog {ipaddress {udp-port
{udp_port }}| ipPort |ipaddress tls-port {tls_port}} {vr vr_name}
{[local0...local7]}}
• To configure a target, you use specific commands for severity, filters, and formats,
use the following command:
configure log target [console | memory-buffer | nvram |primary-
node |backup-node | session | syslog [all | ipaddress {udp-port
{udp_port}} | ipPort | ipaddress tls-port {tls_port} ] {vr vr_name}
{local0...local7 }] {severity severity {only}}
In addition, you can configure the source IP address for a syslog target. Configuring
the source IP address allows the management station or syslog server to identify
from which switch it received the log messages.
• To configure the source IP address for a syslog target, use the following command.
configure log target syslog [all | ipaddress {udp-port {udp_port}} |
ipPort | ipaddress tls-port {tls_port}] {vr vr_name} {local0...local7}
from source-ip-address
Note
The address family (i.e IPv4 or IPv6) of the specified source IP address must
be the same as the address family of the syslog server.
Severity
Messages are issued with one of the following severity levels: Critical, Error, Warning,
Notice, Info, Debug-Summary, Debug-Verbose, or Debug-Data, which are described in
Table 68.
See Displaying Debug Information on page 563 for more information about
debugging.
You can use more than one command to configure the severity level of the messages
sent to a target.
• The most direct way to set the severity level of all the sent messages is to use the
following command:
configure log target [console | memory-buffer | nvram |primary-
node |backup-node | session | syslog [all | ipaddress {udp-port
{udp_port}} | ipPort | ipaddress tls-port {tls_port} ] {vr vr_name}
{local0...local7 }] {severity severity {only}}
When you specify a severity level, messages of that severity level and greater are
sent to the target. If you want only those messages of the specified severity to be
sent to the target, use the keyword only. For example, specifying severity warning
will send warning, error, and critical messages to the target, but specifying severity
warning only sends only warning messages.
• You can also use the following command to configure severity levels, which
associate a filter with a target:
configure log target [console | memory-buffer | | primary-node | |
backup-node | nvram | session | syslog [all | ipaddress {udp-port
{udp_port}} | ipPort | ipaddress tls-port {tls_port} ]{vr vr_name}
{local0...local7}] filter filter-name {severity severity {only}}
When you specify a severity level as you associate a filter with a target, you further
restrict the messages reaching that target. The filter may allow only certain categories
of messages to pass. Only the messages that pass the filter and then pass the specified
severity level reach the target.
Finally, you can specify the severity levels of messages that reach the target by
associating a filter with a target. The filter can specify exactly which message it will
pass. Constructing a filter is described in Filtering By Components and Conditions on
page 554.
Severity
Component Title Threshold
------------------- ---------------------------------------------- -------------
...
...
STP Spanning-Tree Protocol (STP) Error
InBPDU STP In BPDU subcomponent Warning
OutBPDU STP Out BPDU subcomponent Warning
System STP System subcomponent Error
...
...
The display above lists the components, subcomponents, and the severity
threshold assigned to each. In EMS, you use a period (.) to separate component,
subcomponent, and condition names. For example, you can refer to the InBPDU
subcomponent of the STP component as STP.InBPDU. On the CLI, you can
abbreviate or [Tab] complete any of these.
For example, to see the conditions associated with the STP.InBPDU subcomponent,
use the following command: show log events stp.inbpdu
The display above lists the five conditions contained in the STP.InBPDU component,
the severity of the condition, and the number of parameters in the event message.
In this example, the severities of the events in the STP.InBPDU subcomponent range
from error to debug-summary.
When you use the details keyword, you see the message text associated with the
conditions.
• For example, if you want to see the message text and the parameters for the
event condition STP.InBPDU.Trace, use the following command: show log events
stp.inbpdu.trace details
The following is sample output from this command:
The Comp heading shows the component name, the SubComp heading shows
the subcomponent (if any), the Condition heading shows the event condition, the
Severity heading shows the severity assigned to this condition, the Parameters
heading shows the parameters for the condition, and the text string shows the
message that the condition will generate. The parameters in the text string (for
example, %0% and %1% above) will be replaced by the values of these parameters
when the condition is encountered and displayed as the event message.
You may want to send the messages that come from a specific component that makes
up ExtremeXOS or to send the message generated by a specific condition. For example,
you might want to send only those messages that come from the STP component, or
send the message that occurs when the IP.Forwarding.SlowPathDrop condition occurs.
Or you may want to exclude messages from a particular component or event. To do
this, you construct a filter that passes only the items of interest, and you associate that
filter with a target.
1. The first step is to create the filter using the create log filter command.
You can create a filter from scratch, or copy another filter to use as a starting point. (It
may be easiest to copy an existing filter and modify it.)
2. To create a filter, use the following command:
create log filter name {copy filter_name}
If you create a filter from scratch, that filter initially blocks all events until you add
events (either the events from a component or a specific event condition) to pass.
You might create a filter from scratch if you want to pass a small set of events and
to block most events. If you want to exclude a small set of events, use the default
filter that passes events at or above the default severity threshold (unless the filter
has been modified), named DefaultFilter, that you can copy to use as a starting point
for your filter.
3. After you create your filter, you configure filter items that include or exclude events
from the filter.
Included events are passed; excluded events are blocked.
4. To configure your filter, use the following command:
configure log filter name [add | delete] {exclude} events [event-
condition | [all | event-component] {severity severity {only}}]
For example, if you create the filter myFilter from scratch, use the following
command to include events:
configure log filter myFilter add events stp
All STP component events of at least the default threshold severity passes myFilter
(for the STP component, the default severity threshold is error). You can further
modify this filter by specifying additional conditions.
For example, assume that myFilter is configured as before, and assume that you
want to exclude the STP.CreatPortMsgFail event.
5. To add that condition, use the following command:
configure log filter myFilter add exclude events stp.creatportmsgfail
6. You can also add events and subcomponents to the filter.
For example, assume that myFilter is configured as before, and you want to include
the STP.InBPDU subcomponent. To add that condition, use the following command:
configure log filter myFilter add events stp.inbpdu
7. You can continue to modify this filter by adding more filter items.
The filters process events by comparing the event with the most recently configured
filter item first. If the event matches this filter item, the incident is either included
or excluded, depending on whether the exclude keyword was used. If necessary,
subsequent filter items on the list are compared. If the list of filter items is exhausted
with no match, the event is excluded and is blocked by the filter.
8. To view the configuration of a filter, use the following command:
show log configuration filter {filter_name}
The following is sample output from this command (for the earlier filter):
The show log configuration filter command shows each filter item, in the
order that it will be applied and whether it will be included or excluded. The above
output shows the three filter items, one including events from the STP.InBPDU
component, one excluding the event STP.CreatPortMsgFail, and the next including
the remaining events from the STP component. The severity value is shown as “*”,
indicating that the component’s default severity threshold controls which messages
are passed. The Parameter(s) heading is empty for this filter because no match is
configured for this filter. Matches are described in Matching Expressions on page
556.
Each time a filter item is added to or deleted from a given filter, the specified events
are compared against the current configuration of the filter to try to logically simplify
the configuration. Existing items will be replaced by logically simpler items if the new
item enables rewriting the filter. If the new item is already included or excluded from
the currently configured filter, the new item is not added to the filter.
Matching Expressions
You can configure the switch so messages reaching the target match a specified match
expression.
The message text is compared with the configured match expression to determine
whether to pass the message on. To require that messages match a match expression,
use the following command:
The messages reaching the target will match the match-expression, a simple regular
expression. The formatted text string that makes up the message is compared with
the match expression and is passed to the target if it matches. This command does
not affect the filter in place for the target, so the match expression is compared only
with the messages that have already passed the target’s filter. For more information on
controlling the format of the messages, see Formatting Event Messages on page 560.
A simple regular expression is a string of single characters including the dot character
(.), which are optionally combined with quantifiers and constraints. A dot matches any
single character, while other characters match only themselves (case is significant).
Quantifiers include the star character (*) that matches zero or more occurrences of the
immediately preceding token. Constraints include the caret character (^) that matches
at the beginning of a message and the currency character ($) that matches at the
end of a message. Bracket expressions are not supported. There are a number of
sources available on the Internet and in various language references describing the
operation of regular expressions. The following table shows some examples of regular
expressions.
Matching Parameters
Rather than using a text match, EMS allows you to filter more efficiently based on the
parameter values of the message.
In addition to event components and conditions and severity levels, each filter item
can also use parameter values to further limit which messages are passed or blocked.
The process of creating, configuring, and using filters has already been described
in Filtering By Components and Conditions on page 554, so this section describes
matching parameters with a filter item.
Each event in ExtremeXOS is defined with a message format and zero or more
parameter types.
The show log events all command can be used to display event definitions (the event
text and parameter types). Only those parameter types that are applicable given the
events and severity specified are exposed on the CLI. The syntax for the parameter
types (represented by type in the command syntax above) is:
You can specify the ipaddress type as IPv4 or IPv6, depending on the IP version.
The following examples show how to configure IPv4 addresses and IPv6 addresses:
IPv4 address
• To configure an IP address, with a mask of 32 assumed, use the following command:
configure log filter myFilter add events all match ipaddress 12.0.0.1
IPv6 address
• To configure an IPv6 address, with a mask of 128 assumed, use the following
command:
configure log filter myFilter add events all match ipaddress 3ffe::1
• To configure a range of IPv6 addresses with a mask of 16, use the following
command:
configure log filter myFilter add events all match ipaddress 3ffe::/16
To configure a scoped IPv6 address, with a mask of 128 assumed, use the following
command:
configure log filter myFilter add events all match ipaddress fe80::1%Default
To configure a range of scoped IPv6 addresses with a mask of 16, use the following
command:
configure log filter myFilter add events all match ipaddress fe80::/16%Default
To configure a scoped IPv6 address with any VLAN, use the following command:
configure log filter myFilter add events all match ipaddress fe80::/16%*
To configure any scoped IPv6 address with a specific VLAN, use the following
command:
configure log filter myFilter add events all match ipaddress fe80::/0%Default
Note
In the previous example, if you specify the VLAN name, it must be a full match;
wild cards are not allowed.
As an example, an event may contain a physical port number, a source MAC address,
and a destination MAC address. To allow only those RADIUS (Remote Authentication
Dial In User Service) incidents, of severity notice and above, with a specific source MAC
address, use the following command:
configure log filter myFilter add events aaa.radius.requestInit severity notice match
source mac-address 00:01:30:23:C1:00
The string type is used to match a specific string value of an event parameter, such
as a user name. The exact string is matched with the given parameter and no regular
expression is supported.
The match and strict-match keywords control the filter behavior for those incidents
with event definition that does not contain all the parameters specified in a configure
log filter events match command.
This is best explained with an example. Suppose an event in the XYZ component,
named XYZ.event5, contains a physical port number, a source MAC address, but no
destination MAC address. If you configure a filter to match a source MAC address
and a destination MAC address, XYZ.event5 will match the filter when the source
MAC address matches regardless of the destination MAC address because the event
contains no destination MAC address. If you specify the strict-match keyword, then
the filter will never match event XYZ.event5 because this event does not contain the
destination MAC address.
In other words, if the match keyword is specified, an incident will pass a filter so long as
all parameter values in the incident match those in the match criteria, but all parameter
types in the match criteria need not be present in the event definition.
Using the default format for the session target, an example log message might
appear as:
06/25/2004 22:49:10.63 <Info:dm.Info> MSM-A: PowerSupply:4 Powered On
If you set the current session format using the following command:
configure log target session format timestamp seconds date mm-dd-yyyy event-name
component
• Provide some detailed information to technical support, set the current session
format.
configure log target session format timestamp hundredths date mmm-dd event-name
condition process-name source-line
This setting may be saved to the FLASH configuration and is restored on boot-up (to
the console display session).
• Turn on log display for the current session with the command:
enable log target session
This setting only affects the current session and is lost when you log off the session.
The messages that are displayed depend on the configuration and format of the
target. For information on message filtering, see Filtering Events Sent to Targets on
page 551. For information on message formatting, see Formatting Event Messages
on page 560.
You can use many options to select those log entries of interest. You can select to
display only those messages that conform to the specified:
◦ Severity
◦ Starting and ending date and time
◦ Match expression
The displayed messages can be formatted differently from the format configured for
the targets, and you can choose to display the messages in order of newest to oldest
or in chronological order (oldest to newest).
The new command can be used to enable the alert and to specify the percentage
threshold that triggers alerts. When the percentage threshold is set to a value in the
allowed range, the memory buffer alert is enabled. When the percentage threshold
is set to none, the memory buffer alert is disabled. The alert triggered will be a log
message with Notice severity.
If the alert is enabled, a log message will be generated in the following three scenarios:
1. When the actual use of the memory buffer first exceeds the configured percentage
threshold.
2. When the configured memory buffer size is changed and the actual use of the
buffer exceeds the configured percentage threshold.
3. When the configured percentage threshold is changed and the actual use of the
buffer exceeds the re-configured percentage threshold.
When you execute the command clear log, the memory buffer will be emptied.
When the new logs re-fill up to the configured percentage threshold, the log message
will be re-generated. Output of show log configuration will be modified as well
to include the information of memory buffer alert configuration and current memory
buffer usage.
You must specify the TFTP host and the filename to use in uploading the log.
There are many options you can use to select the log entries of interest. You can
select to upload only those messages that conform to the specified:
◦ Severity
◦ Match expression
The uploaded messages can be formatted differently from the format configured for
the targets, and you can choose to upload the messages in order of newest to oldest
or in chronological order (oldest to newest).
The system displays two counters. One counter displays the number of times an
event has occurred, and the other displays the number of times that notification for
the event was made to the system for further processing. Both counters reflect totals
accumulated since reboot or since the counters were cleared using the clear log
counters or clear counters command.
The show log counters command also displays an included flag (the column titled
In in the output). The included flag is set to Y(es) if one or more targets are receiving
notifications of this event without regard to matching parameters.
The keywords include, notified, and occurred display events only with non-zero
counter values for the corresponding counter.
Occurred : # of times this event has occurred since last clear or reboot
Flags : (*) Not all applications responded in time with there count values
In(cluded): Set to Y(es) if one or more targets filter includes this event
Notified : # of times this event has occurred when 'Included' was Y(es)
You can specify that logged commands appear in fully expanded form, rather than the
abbreviations you may have used when entering them in the command line.
You can selectively enable and disable ciphers using the following command:
To see which ciphers are enabled or disabled for Syslog TLS sessions, use the following
command:
To view the value set for Syslog TLS TCP user timeout, use the following comamnd:
Note
Be sure you understand the ramifications of turning off OCSP if you chose to
do so.
OCSP nonce cryptographically binds an OCSP request and an OCSP response with an
id-pkix-ocsp-nonce extension to prevent replay attacks.
OCSP override configures one HTTP Online Certificate Status Protocol (OCSP) override
URL for TLS connections to a remote Syslog server.
OCSP-nocheck
If this configuration is turned on, then the operating system assumes the OCSP signer
certificate contains the ocsp-nocheck extension, whether it has the extension or not.
This results in the system accepting the OCSP responses from this OCSP signer. By
default, this configuration is off to maintain backward compatibility, but can be turned
on or off per application. This is also applicable for both the override server and AIA
servers.
Introduction
This feature allows an event such as a configuration change, a fault, a change in
status, the crossing of a threshold, or an external input to the system, to be sent as
an asynchronous message or event notification to external web servers.
The only ExtremeXOS modules that support XML notification as targets are Identity
Management and EMS.
XML notification does not provide any event filtering capability. However, in the case of
EMS, the target Web server can be configured with log filters and conditions. The XML
notification feature establishes and checks the connectivity with the web server only
when an event is ready to be pushed. State transitions take place if required. Statistics
are updated accordingly and can be monitored.
The Web servers must be configured and enabled using ExtremeXOS CLI with an IP
address, port, protocol type, user authentication, session information, if any, and other
web server configuration.
The XML schemas are defined using Web Services Description Language (WSDL) in the
XML SDK.
The XML notification client can communicate with the external HTTP/HTTPS server.
HTTP/HTTPS client interfaces maintain persistent connections with external Web
servers as long as the target is activated on the switch.
HTTP basic access authentication method (Base64 algorithm) is used to encrypt the
user name and password when making a request. HTTP cookies are not supported in
this release.
Create a server certificate that can be used by the HTTPS server. To generate the secure
certificate on a ExtremeXOS switch, see the configuration guidelines of the HTTP server,
(see Secure Socket Layer on page 1224 for more information).
Examples
Below are examples of configuring web server targets in a XML Notification module.
Scenario 1: Push filtered EMS events to external web server in a well-defined XML format.
Create a Web Server Target test1, create a log target and a filter in EMS, and attach the
filter to the web target. Enable the target in both EMS and XML-Notification module.
create XML-notification target test1 url http://10.255.129.22:8080/xos/webservice user
admin
create log target xml-notification "test1"
create log filter xmlc_filter_1
configure log filter "xmlc_filter_1" add events idmgr
Scenario 2: Push user identity events to the external web server without EMS module in
a well defined (XML Schema) XML format.
Create a web server target and attach an idmgr module. Idmgr modules use an
XML-notification backend library to trigger events. In this case, no special filters are
supported.
create xml-notification target test2 url http://10.255.129.22:8080/xos/webservice user
admin
configure xml-notification target test2 add module idmgr
enable xml-notification test2
Using sFlow
sFlow is a technology for monitoring traffic in data networks containing switches and
routers. It relies on statistical sampling of packets from high-speed networks, plus
periodic gathering of the statistics. A UDP (User Datagram Protocol) datagram format
is defined to send the information to an external entity for analysis. sFlow consists of
a MIB (Management Information Base), and a specification of the packet format for
forwarding information to a remote agent. For details on sFlow specifications, see RFC
3176; and for more general information, go to www.sflow.org.
Additionally, the switch software also allows you to set the individual port sampling
rates, so that you can fine-tune sFlow statistics.
sFlow and mirroring are not mutually exclusive on ExtremeSwitching series switches,
whether or not they are included in a SummitStack. You can enable them
simultaneously.
However, be aware that the following limitations are present in the ExtremeXOS
implementation:
• Generic port statistics are reported to the sFlow collector
• Non-extended data
• Only port-based sampling
• No MIB support
Sampling Mechanisms
ExtremeSwitching series switches support hardware-based sampling at a programmed
interval.
With hardware-based sampling, the data path for a packet that traverses the switch
does not require processing by the CPU. Fast path packets are handled entirely by
ASICs and are forwarded at wire speed rate.
Both ingress and egress sFlow sampling can be enabled simultaneously on a port.
The enable sflow port command provides an option to enable sFlow on ingress, or
egress, or both directions. The default value is ingress. The sample rate is maintained on
a per-port basis, so a given port has the same sample rate for ingress and egress traffic.
Ingress and egress sFlows sample both unicast and multicast egress flows. The global
enable/disable control of sFlow is common to both ingress and egress. When the global
option is enabled, the port level sFlow parameter is applied to hardware.
When sFlow sampling is enabled on a port, the sFlow agent samples the traffic on that
port, processed in slow path and passed on to the collector. You can configure the rate
at which the packets are sampled.
ExtremeXOS 22.5 expands upon sFlow's capability by providing support for additional
data structures that an sFlow agent can use to report table utilization statistics in sFlow
counter samples (see Displaying sFlow Information on page 575).
Table 70 illustrates the expected output of the ifIndex when based on traffic type, and
sampling direction.
Configuring sFlow
ExtremeXOS allows you to collect sFlow statistics on a per port basis.
An agent residing locally on the switch sends data to a collector that resides on another
machine. You configure the local agent, the address of the remote collector, and the
ports of interest for sFlow statistics gathering. You can also modify default values for
how frequently on an average a sample is taken and the maximum number of samples
allowed before throttling the sample gathering.
Optionally, you may also change the default values of the following items:
• How often the statistics are collected
• How frequently a sample is taken, globally or per port
• How many samples per second can be sent to the CPU
Configuration Tasks
Use the following commands to configure the sFlow feature:
• enable sflow ports all | port_list {ingress | egress | both}
The keyword options enable you to configure sFlow types on a given set of ports. If
you do not configure an sFlow type, then ingress sFlow sampling is enabled as the
default configuration.
Use the following commands to display the type of sFlow configured on the physical
interface, and various statistics about sFlow sampling:
• show sflow configuration
• show sflow statistics
• Unconfigure the remote collector and remove it from the database using the
command:
unconfigure sflow collector {ipaddress} ipaddress {port udp-port-
number} {vr vr_name}
When you disable sFlow globally, the individual ports are also put into the disabled
state. If you later enable the global sFlow state, individual ports return to their
previous state.
The ingress option allows you to configure the sFlow type on a given set of ports.
This option is configured on the port by default.
You may enable and disable sFlow on ports irrespective of the global state of sFlow,
but samples are not taken until both the port state and the global state are enabled.
• Disable sFlow on ports using the command:
disable sflow ports port_list
You can also configure how frequently packets are sampled per port.
Polling Interval
Each port counter is periodically polled to gather the statistics to send to the collector.
If there is more than one counter to be polled, the polling is distributed in such a way
that each counter is visited once during each polling interval, and the data flows are
spaced in time. For example, assume that the polling interval is 20 seconds and there
are 40 counters to poll. Two ports will be polled each second, until all 40 are polled.
• Configure the polling interval using the command:
configure sflow poll-interval seconds
For example, if you set the sample rate number to 16384, the switch samples one out of
every 16384 packets received. Higher numbers mean fewer samples and longer times
between samples. If you set the number too low, the number of samples can be very
large, which increases the load on the switch. Do not configure the sample rate to a
number lower than the default unless you are sure that the traffic rate on the source is
low.
Note
The minimum rate that these platforms sample is 1 out of every 256 packets.
If you configure a rate to be less than 256, the switch automatically rounds up
the sample rate to 256.
The rate is rounded off to the next power of two, so if 400 is specified, the sample rate is
configured as 512. The valid range is [256-536870912].
• Set the sampling rate on individual ports.
configure sflow ports port_list sample-rate number
Note
Sflow sampling is limited to 2000 packets per second in the CPU. Any packets
sent at a rate greater than 2000 pps are dropped.
On a stand-alone switch, whenever the limit is reached, the sample rate value is
doubled on the ports from which the maximum number of samples are received.
For ports that are sampled less frequently, the sampling rate is not changed; the sub-
sampling factor is adjusted downward.
• Configure the maximum CPU sample limit.
configure sflow max-cpu-sample-limit rate
Unconfiguring sFlow
• Reset the configured values for sFlow to their default values and remove from sFlow
any configured collectors and ports using the following ocmmand:
unconfigure sflow
You can capture web traffic, FTP traffic, mail traffic, and all bits of data that travel across
service providers’ edge routers to their customers’ (end users’) servers.
The example in this section assumes that you already have an sFlow data collector
installed somewhere in your network. In many environments, the sFlow data collector
is on a network PC.
The following sFlow configuration example performs the following tasks in a service
provider environment:
• Configures the IP address of the sFlow data collector.
Note
In many environments, the sFlow data collector is not directly connected to
the switch. Make sure to specify the VR used to forward traffic between the
sFlow collector and the switch. In most cases the VR is VR-Mgmt.
Using RMON
Using the Remote Monitoring (RMON) capabilities of the switch allows network
administrators to improve system efficiency and reduce the load on the network.
Note
You can use the RMON features of the system only if you have an RMON
management application and have enabled RMON on the switch.
About RMON
RMON is the common abbreviation for the Remote Monitoring Management
Information Base (MIB) system defined by the Internet Engineering Task Force (IETF)
documents RFC 1757 and RFC 2021, which allows you to monitor LANs remotely.
RMON Agent
An RMON agent is an intelligent software agent that continually monitors port
statistics and system variables.
Information collected by RMON includes Ethernet port statistics and history and the
software version and hardware revision of the device. RMON generates alarms when
threshold levels are met and then logs those events to the log. RMON can also send
traps to the destination address configured by the management workstation. You can
also use RMON to trigger a system reboot.
Management Workstation
A management workstation communicates with the RMON agent and collects the
statistics from it.
The workstation does not have to be on the same network as the RMON agent and can
manage the agent by in-band or out-of-band connections.
If you enable RMON on the switch, you can use a management workstation to review
port statistics and port history, no configuration of the management workstation is
necessary. However, you must use a management workstation to configure the alarm
and event entries.
The switch also supports the following parameters for configuring the RMON agent
and the trap destination table, as defined in RFC 2021:
• probeCapabilities
• probeSoftwareRev
• probeHardwareRev
• probeDateTime
• probeResetControl
• trapDestTable
The following sections describe the supported groups, the RMON probe configuration
parameters, and the trap destination parameter in greater detail.
Statistics
The RMON Ethernet Statistics group provides traffic and error statistics showing
packets, bytes, broadcasts, multicasts, and errors on an Ethernet port.
Information from the Statistics group is used to detect changes in traffic and error
patterns in critical areas of the network.
History
The History group provides historical views of network performance by taking periodic
samples of the counters supplied by the Statistics group.
The group features user-defined sample intervals and bucket counters for complete
customization of trend analysis.
The group is useful for analysis of traffic patterns and trends on an Ethernet port, and
for establishing baseline information indicating normal operating parameters.
Events
The Events group creates entries in an event log and/or sends SNMP traps to the
management workstation.
An event is triggered by an RMON alarm. The action taken can be configured to ignore
it, to log the event, to send an SNMP trap to the receivers listed in the trap receiver
table, or to both log and send a trap. The RMON traps are defined in RFC 1757 for rising
and falling thresholds.
Effective use of the Events group saves you time. Rather than having to watch real-
time graphs for important occurrences, you can depend on the Events group for
notification. Through the SNMP traps, events can trigger other actions, which provides
a mechanism for an automated response to certain occurrences.
If the probe is aware of time zones, the display also includes the Greenwich Mean
Time (GMT) offset. For example, Friday, December 31, 2004, 1:30:15 PM EST with the
offset known is displayed as: 2004-12-31,13:30:15.0, -4.0
trapDestTable
The trapDestTable contains information about the configured trap receivers on the
switch and stores this information in non-volatile memory.
To configure one or more trap receivers, see Using the Simple Network Management
Protocol on page 104.
Extreme-RtStats-MIB
The extremeRtStatsTable provides the user with all the common measurement/
monitoring attributes in a single table.
Configuring RMON
RMON requires one probe per LAN segment, and stand-alone RMON probes
traditionally have been expensive. Therefore, the approach taken by Extreme Networks
has been to build an inexpensive RMON probe into the agent of each system. This
allows RMON to be widely deployed around the network without costing more than
traditional network management. The switch accurately maintains RMON statistics at
the maximum line rate of all of its ports.
By default, RMON is disabled. However, even in the disabled state, the switch collects
etherStats and you can configure alarms and events.
RMON saves the history, alarm, and event configurations to the configuration file.
Runtime data is not stored in the configuration file and is subsequently lost after a
system restart.
• Enable or disable the collection of RMON statistics on the switch using the
commands:
enable rmon
disable rmon
By enabling RMON, the switch begins the processes necessary for collecting switch
statistics.
Event Actions
The actions that you can define for each alarm are shown in Table 71.
To be notified of events using SNMP traps, you must configure one or more trap
receivers, as described in Using the Simple Network Management Protocol on page
104.
SMON
SMON is the common abbreviation for the Switch Network Monitoring Management
Information Base (MIB) system defined by the Internet Engineering Task Force (IETF)
document RFC 2613.
SMON is a set of MIB extensions for RMON that allows monitoring of switching
equipment from a SNMP Manager in greater detail. The supported MIB tables
are described in Supported Standards, Protocols, and MIBs on page 2007;
smonPrioStatsControlTable and smonPrioStatsTable cannot be supported due to
hardware limitations.
Note
When you delete all the mirroring filters through the portCopyConfigTable, the
mirroring is disabled automatically.
By viewing this history on a regular basis, you can see trends emerging and identify
processes with peak utilization. Monitoring the workload of the CPU allows you
to troubleshoot and identify suspect processes before they become a problem. By
default, the switch monitors CPU utilization every five seconds. In addition, when CPU
utilization of a process exceeds 90% of the regular operating basis, the switch logs an
error message specifying the process name and the current CPU utilization for the
process.
This command disables CPU monitoring on the switch; it does not clear the monitoring
interval. Therefore, if you altered the monitoring interval, this command does not return
the monitoring interval to five seconds. The next time you enable CPU monitoring, the
switch uses the existing configured interval.
System 3.7 3.7 3.6 3.6 3.5 3.5 3.3 5.3 17.63 158657.42
aaa 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 15.55 18.87
acl 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.6 138.28 214.65
bfd 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.6 75.59 62.81
bgp 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.1 0.25 0.07
brm 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.06 0.03
cfgmgr 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.2 0.46 0.23
cli 0.0 0.1 0.0 0.0 0.0 0.0 0.0 16.0 10.05 3.42
devmgr 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.5 0.60 0.33
dirser 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.3 0.15 0.22
dosprotect 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.09 0.06
dot1ag 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.58 2.23
This chapter contains information about configuring VLAN (Virtual LAN)s, displaying
VLAN information, private VLANs, and VLAN translation. In addition, you can learn
about the benefits and types of VLANs, along with valuable information about virtual
routers.
VLANs Overview
Setting up VLANs on the switch eases many time-consuming tasks of network
administration while increasing efficiency in network operations.
Note
The software supports using IPv6 addresses, in addition to IPv4 addresses.
You can configure the VLAN with an IPv4 address, IPv6 address, or both. See
IPv6 Unicast Routing on page 1605 for complete information on using IPv6
addresses.
The term VLAN is used to refer to a collection of devices that communicate as if they
were on the same physical LAN.
Note
ExtremeXOS supports only 4,092 user-configurable VLANs. (VLAN 1 is the
default VLAN, and 4,095 is the management VLAN, and you may not configure
them.
Any set of ports (including all ports on the switch) is considered a VLAN. LAN segments
are not restricted by the hardware that physically connects them. The segments are
defined by flexible user groups that you create with the command line interface (CLI).
Note
The system switches traffic within each VLAN using the Ethernet MAC address.
The system routes traffic between two VLANs using the IP addresses.
Benefits
Implementing VLANs on your networks has the following advantages:
• VLANs help to control traffic—With traditional networks, broadcast traffic that
is directed to all network devices, regardless of whether they require it, causes
congestion. VLANs increase the efficiency of your network because each VLAN can
be set up to contain only those devices that must communicate with each other.
• VLANs provide extra security—Devices within each VLAN can communicate only
with member devices in the same VLAN. If a device in VLAN Marketing must
communicate with devices in VLAN Sales, the traffic must cross a routing device.
• VLANs ease the change and movement of devices—With traditional networks,
network administrators spend much of their time dealing with moves and changes.
If users move to a different subnetwork, the addresses of each endstation must be
updated manually.
If you do not specify a virtual router when you create a VLAN, the system creates that
VLAN in the default virtual router (VR-Default). The management VLAN is always in the
management virtual router (VR-Mgmt).
After you create virtual routers, the ExtremeXOS software allows you to designate one
of these virtual routers as the domain in which all your subsequent configuration
commands, including VLAN commands, are applied. After you create virtual routers,
ensure that you are creating each VLAN in the desired virtual router domain. Also,
ensure that you are in the correct virtual router domain before you begin modifying
each VLAN.
For information on configuring and using virtual routers, see Virtual Routers on page
720.
Types of VLANs
This section introduces the following types of VLANs:
• Port-Based VLANs
• Tagged VLANs
• Protocol-Based VLANs
• XNV Dynamic VLAN on page 683
Note
You can have netlogin dynamic VLANs and netlogin MAC-based VLANs. See
Network Login on page 893 for complete information on netlogin.
Port-Based VLANs
In a port-based VLAN, a VLAN name is given to a group of one or more ports on the
switch.
At boot-up, all ports are members of the port-based VLAN default. Before you can
add any port to another port-based VLAN, you must remove it from the default VLAN,
unless the new VLAN uses a protocol other than the default protocol any. An untagged
port can be a member of only one port-based VLAN.
On the Extreme Networks switch in Figure 59, ports 9 through 14 are part of VLAN
Marketing; ports 25 through 29 are part of VLAN Sales; and ports 21 through 24 and 30
through 32 are in VLAN Finance.
To create a port-based VLAN that spans two switches, you must do two things:
1. Assign the port on each switch to the VLAN.
2. Cable the two switches together using one port on each switch per VLAN.
Figure 60 illustrates a single VLAN that spans a BlackDiamond switch and another
Extreme Networks switch. All ports on the System 1 switch belong to VLAN Sales.
Ports 1 through 29 on the system 2 switch also belong to VLAN Sales. The two
switches are connected using slot 8, port 4 on System 1 (the BlackDiamond switch),
and port 29 on system 2 (the other switch).
3. To create multiple VLANs that span two switches in a port-based VLAN, a port on
System 1 must be cabled to a port on System 2 for each VLAN you want to have span
across the switches.
At least one port on each switch must be a member of the corresponding VLANs as
well.
Figure 61 illustrates two VLANs spanning two switches. On System 2, ports 25
through 29 are part of VLAN Accounting; ports 21 through 24 and ports 30 through
32 are part of VLAN Engineering. On System 1, all ports on slot 1 are part of VLAN
Accounting; all ports on slot 8 are part of VLAN Engineering.
Tagged VLANs
Tagging is a process that inserts a marker (called a tag) into the Ethernet frame. The
tag contains the identification number of a specific VLAN, called the VLANid (valid
numbers are 1 to 4094).
Note
The use of 802.1Q tagged packets may lead to the appearance of packets
slightly bigger than the current IEEE 802.3/Ethernet maximum of 1,518 bytes.
This may affect packet error counters in other devices and may also lead to
connectivity problems if non-802.1Q bridges or routers are placed in the path.
The switch-to-switch connections are typically called trunks. Using tags, multiple
VLANs can span multiple switches using one or more trunks. In a port-based VLAN,
each VLAN requires its own pair of trunk ports, as shown in Figure 62 on page 588.
Using tags, multiple VLANs can span two switches with a single trunk.
Another benefit of tagged VLANs is the ability to have a port be a member of multiple
VLANs. This is particularly useful if you have a device (such as a server) that must belong
to multiple VLANs. The device must have a Network Interface Card (NIC) that supports
IEEE 802.1Q tagging.
A single port can be a member of only one port-based VLAN. All additional VLAN
membership for the port must be accompanied by tags.
Each VLAN may be assigned an 802.1Q VLAN tag. As ports are added to a VLAN with
an 802.1Q tag defined, you decide whether each port uses tagging for that VLAN. The
default mode of the switch is to have all ports assigned to the VLAN named default
with an 802.1Q VLAN tag (VLANid) of 1 assigned.
Not all ports in the VLAN must be tagged. As traffic from a port is forwarded out of the
switch, the switch determines (in real time) if each destination port should use tagged
or untagged packet formats for that VLAN. The switch adds and strips tags, as required,
by the port configuration for that VLAN.
Note
Packets arriving tagged with a VLANid that is not configured on a port are
discarded.
Figure 62 illustrates the physical view of a network that uses tagged and untagged
traffic.
As data passes out of the switch, the switch determines if the destination port requires
the frames to be tagged or untagged. All traffic coming from and going to the server
is tagged. Traffic coming from and going to the trunk ports is tagged. The traffic that
comes from and goes to the other stations on this network is not tagged.
You can configure the switch using a combination of port-based and tagged VLANs. A
given port can be a member of multiple VLANs, with the stipulation that only one of its
VLANs uses untagged traffic. In other words, a port can simultaneously be a member of
one port-based VLAN and multiple tag-based VLANs.
Note
For the purposes of VLAN classification, packets arriving on a port with an
802.1Q tag containing a VLANid of 0 are treated as untagged.
Protocol-Based VLANs
Protocol-based VLANs enable you to define a packet filter that the switch uses as the
matching criteria to determine if a particular packet belongs to a particular VLAN.
Protocol-based VLANs are most often used in situations where network segments
contain hosts running multiple protocols. For example, in Figure 64, the hosts are
running both the IP and NetBIOS protocols.
The IP traffic has been divided into two IP subnets, 192.207.35.0 and 192.207.36.0. The
subnets are internally routed by the switch. The subnets are assigned different VLAN
names, Finance and Personnel, respectively. The remainder of the traffic belongs to the
VLAN named MyCompany. All ports are members of the VLAN MyCompany.
If necessary, you can define a customized protocol filter by specifying EtherType, Logical
Link Control (LLC), or Subnetwork Access Protocol (SNAP). Up to six protocols can be
part of a protocol filter. To define a protocol filter:
Note
Protocol-based VLAN for Etype from 0x0000 to 0x05ff are not classifying as
per filter. When traffic arrive with these Etypes, it is classifed to native VLAN
rather protocol based vlan.
The values for snap are the same as the values for etype, described previously. For
example:
configure protocol fred add llc feff
configure protocol fred add snap 9999
Note
For more information about SNAP for Ethernet protocol types, see TR
11802-5:1997 (ISO/IEC) [ANSI/IEEE std. 802.1H, 1997 Edition].
If a protocol filter is deleted from a VLAN, the VLAN is assigned a protocol filter of 'any'.
You can continue to configure the VLAN. However, no traffic is forwarded to the VLAN
until a protocol is assigned to it.
Default VLAN
The default switch configuration includes one default VLAN that has the following
properties:
• The VLAN name is default.
• It contains all the ports on a new or initialized switch.
• The default VLAN is untagged on all ports. It has an internal VLANid of 1; this value is
user-configurable.
VLAN Names
VLAN names must conform to the guidelines listed in Object Names on page 31.
VLAN names can be specified using the [Tab] key for command completion. VLAN
names are locally significant. That is, VLAN names used on one switch are only
meaningful to that switch. If another switch is connected to it, the VLAN names have
no significance to the other switch.
Note
We recommend that you use VLAN names consistently across your entire
network.
For example consider a case where two ports should be added to four tagged VLANs.
Normally this would require four commands:
Assuming the tags for the VLANs are 100, 200, 300, 400 respectively this configuration
can be accomplished with a single command:
Note
Commands enhanced with VID list support operate in a “best effort” fashion. If
one of the VIDs in a VID list do not exist the command is still executed for all of
the VIDs in the list that do exist. No error or warning is displayed for the invalid
VIDs unless all of the specified VIDs are in valid.
Note
IPv4 addresses with 31-bit prefixes can be configured on network VLANs
and the management VLAN. Applications and protocols can use these IPv4
addresses.
Note
Each IP address and mask assigned to a VLAN must represent a unique IP
subnet. You cannot configure the same IP subnet on different VLANs on the
same VR.
The software supports using IPv6 addresses, in addition to IPv4 addresses.
You can configure the VLAN with an IPv4 address, IPv6 address, or both. See
IPv6 Unicast Routing on page 1605 for complete information on using IPv6
addresses.
The system returns the following message if the ports you are adding are already
EAPS primary or EAPS secondary ports:
WARNING: Make sure Vlan1 is protected by EAPS, Adding EAPS ring ports to a VLAN could
cause a loop in the network.
Do you really want to add these ports? (y/n)
The system returns the following message if the ports that you are adding are
untagged ports already associated with an untagged VLAN, and you are adding
them to a different untagged VLAN or tagged VLAN
Port 1 untagged has been auto-moved from VLAN "Default" to "v2".
You can enable direct movement of untagged ports by enabling auto-move globally
with the configure vlan untagged-ports auto-move [on | off |inform]
command.
• To remove ports from a VLAN, use the following command:
Renaming a VLAN
To rename an existing VLAN, use the following command:
When you attempt to disable a VLAN running Layer 2 protocol traffic (for example,
the VLAN Accounting), the system returns a message similar to the following:
VLAN accounting cannot be disabled because it is actively used by an L2 Protocol
• You can disable the default VLAN; ensure that this is necessary before disabling the
default VLAN.
• You cannot disable the management VLAN.
• You cannot bind Layer 2 protocols to a disabled VLAN.
• You can add ports to and delete ports from a disabled VLAN.
Note
Because VLAN names are unique, you do not need to enter the keyword vlan
after you have created the unique VLAN name. You can use the VLAN name
alone (unless you are also using this name for another category such as STPD
(Spanning Tree Domain) or EAPS, in which case we recommend including the
keyword vlan).
Slot 5, ports 6 through 8, and slot 6, ports 1, 3, and 4-6 are assigned to the VLAN. In
this example, you can add untagged ports to a new VLAN without first deleting them
from the default VLAN, because the new VLAN uses a protocol other than the default
protocol.
The following example defines a protocol filter, myprotocol and applies it to the VLAN
named myvlan. This is an example only, and has no real-world application.
To disable the protocol-based VLAN (or any VLAN) in the above example, use the
following command:
disable vlan myprotocol
Note
IP and MAC anycast should be used only with VXLAN tenant VLANs. IP and
MAC anycast should not be used with any protocols other than MLAG, since it
might cause MAC flaps.
Note
Switching through a VXLAN tunnel to a remote L3 Anycast gateway is not
supported.
Note
To display IPv6 information, you must use either the show vlan detail
command or show vlan command with the name of the specified VLAN.
To display the VLAN information for other ExtremeXOS software features, use the
following commands:
• show {vlan} vlan_name dhcp-address-allocation
• show {vlan} vlan_name dhcp-config
• show {vlan} vlan_name eaps
• show {vlan} vlan_name security
• show {vlan} {vlan_name | vlan_list} stpd
You can display additional useful information on VLANs configured with IPv6 addresses
by issuing the command:
Private VLANs
The following sections provide detailed information on private VLANs:
• PVLAN Overview on page 599
• Configuring PVLANs on page 608
• Displaying PVLAN Information on page 611
• PVLAN Configuration Example 1 on page 612
• PVLAN Configuration Example 2 on page 614
PVLAN Overview
PVLANs offer the following features:
• VLAN translation
• VLAN isolation
Note
PVLAN features are supported only on the platforms listed for this feature in
the Switch Engine Licensing Guide document.
VLAN translation allows you to aggregate Layer 2 VLAN traffic from multiple clients into
a single uplink VLAN, improving VLAN scaling. Figure 65 shows an application of VLAN
translation.
VLAN Isolation
VLAN isolation provides Layer 2 isolation between the ports in a VLAN. Figure 66 shows
an application of VLAN isolation.
PVLAN Components
Figure 67 shows the logical components that support PVLAN configuration in a switch.
The network VLAN aggregates the uplink traffic from the other VLANS, called
subscriber VLANs, for egress communications on a network VLAN port. A network
port can serve only one PVLAN, but it can serve one or more subscriber VLANs.
Ingress communications on the network VLAN port are distributed to the appropriate
subscriber VLANs for distribution to the appropriate ports. Devices that connect to
subscriber VLAN ports are considered to be on the subscriber side of the switch.
Note
PVLAN network-tagged packets are allowed to ingress on subscriber VLAN
ports.
Tag translation within the PVLAN is managed at the egress ports. To enable tag
translation for uplink traffic from the subscriber VLANs, you must enable tag translation
on the appropriate network VLAN port. Tag translation is automatically enabled on
subscriber VLAN egress ports when the subscriber VLAN is created and the port is
added to the VLAN as tagged. Egress traffic from a subscriber VLAN is always tagged
with the subscriber VLAN tag when the port is configured as tagged.
You can choose to not translate tags on a network VLAN port, but this is generally used
only for extending a PVLAN to another switch. A non-isolated subscriber VLAN that
does not use tag translation is functionally equivalent to a regular VLAN, so it is better
to create non-isolated VLANs only when you plan to use tag translation.
Ports in a non-isolated VLAN can communicate with other ports in the same VLAN,
ports in the network VLAN, and destinations on the network side of the switch. As with
standard VLANs, non-isolated ports cannot communicate through Layer 2 with ports in
other subscriber VLANs.
In Figure 67 on page 602, the Engineering and Marketing VLANs are configured as
non-isolated subscriber VLANs, which means that they act just like traditional VLANs,
and they can participate in tag translation when VLAN translation is enabled on a
network VLAN port that leads to network side location.
Note
Although using the same VLAN names on all PVLAN switches might make
switch management easier, there is no software requirement to match the
VLAN names. Only the tags must match.
When a PVLAN is configured on multiple switches, the PVLAN switches function as one
PVLAN switch. Subscriber VLAN ports can access the network VLAN ports on any of
the PVLAN switches, and non-isolated VLAN ports can communicate with ports in the
same VLAN that are located on a different physical switch. An isolated VLAN can span
multiple switches and maintain isolation between the VLAN ports.
The network and subscriber VLANs can be extended to other switches that are not
configured for the PVLAN (as described in Extending Network and Subscriber VLANs
to Other Switches on page 604). The advantage to extending the PVLAN is that tag
translation and VLAN isolation is supported on the additional switch or switches.
You might want to do this to connect to existing servers, switches, or other network
devices. You probably do not want to use this approach to support clients, as tag
translation and VLAN isolation are not supported unless the PVLAN is configured on all
PVLAN switches as described in PVLAN Support over Multiple Switches on page 603.
Switch 2, port 22 supports the Network, NonIsolated, and Isolated VLANs, but no PVLAN
is configured.
Because port 22 supports multiple VLANs that are part of the PVLAN, and because
these Switch 2 VLANs are not part of the PVLAN, Switch 1, port 24, must be configured
as a PVLAN endpoint, which establishes the PVLAN boundary. Switch 2, port 22, is
configured as a regular tagged VLAN port.
For most applications, it would be better to extend the PVLAN to Switch 2 so that the
PVLAN features are available to the Switch 2 VLANs.
The following sections describe the FDB entries created for the PVLAN components
and how to estimate the impact of a PVLAN on the FDB table:
• Non-Isolated Subscriber VLAN
• Isolated Subscriber VLAN
• Network VLAN
• Calculating the Total FDB Entries for a PVLAN
When a MAC address is learned on a non-isolated subscriber VLAN port, two entries are
added to the FDB table:
• MAC address, non-isolated subscriber VLAN tag, and the port number
• MAC address, network VLAN tag, port number, and a special flag for tag translation
The network VLAN entry is used when traffic comes in from the network ports destined
for an non-isolated port.
When a new MAC address is learned on an isolated subscriber VLAN port, two entries
are added to the FDB table:
• MAC address, isolated subscriber VLAN tag, port number, and a flag that indicates
that the packet should be dropped
• MAC address, network VLAN tag, port number, and a special flag for tag translation
If a port in the isolated VLAN sends a packet to another port in the same VLAN that
already has an entry in the FDB, that packet is dropped. You can verify the drop packet
status of an FDB entry by using the show fdb command. The D flag indicates that
packets destined for the listed address are dropped.
The network VLAN entry is used when traffic comes in from the network ports destined
for an isolated port.
Network VLAN
When a new MAC address is learned on a network VLAN port, the following entry is
added to the FDB table: MAC address, network VLAN tag, and port number.
For every subscriber VLAN belonging to this PVLAN, the following entry is added to the
FDB table: MAC address, subscriber VLAN tag, and port number
The following formula can be used to estimate the maximum number of FDB entries
for a PVLAN:
Note
The formula above estimates the worst-case scenario for the maximum
number of FDB entries for a single PVLAN. If the switch supports additional
PVLANs, apply the formula to each PVLAN and add the totals for all PVLANs. If
the switch also support standard VLANs, there will also be FDB entries for the
standard VLANs.
Layer 3 Communications
For PVLANs, the default switch configuration controls Layer 3 communications exactly
as communications are controlled in Layer 2.
You can enable Layer 3 communications between all ports in a PVLAN. For more
information, see Managing Layer 3 Communications in a PVLAN on page 611.
PVLAN Limitations
The Private VLAN feature has the following limitations:
• Requires more FDB entries than a standard VLAN.
• VLAN tag duplication is not allowed.
• VLAN name duplication is not allowed.
• Each MAC address learned in a PVLAN must be unique. A MAC address cannot exist
in two or more VLANs that belong to the same PVLAN.
• MVR cannot be configured on PVLANs.
• A VMAN cannot be added to a PVLAN.
• A PBB network (BVLAN) cannot be added to a PVLAN.
• EAPS control VLANs cannot be either subscriber or network VLANs.
• For PVLAN with STP (Spanning Tree Protocol) implementation, irrespective of port
translation configuration in the Network VLAN, it is recommended to add both the
Network VLAN and all subscriber VLANs to the STP.
• For PVLAN with EAPS implementation, irrespective of port translation configuration
in the Network VLAN, it is recommended to add both the Network VLAN and all
subscriber VLANs to the EAPS ring.
• ESRP (Extreme Standby Router Protocol) can only be configured on network VLAN
ports (and not on subscriber VLAN ports). To support ESRP on the network VLAN,
you must add all of the VLANs in the PVLAN to ESRP.
• There is no NetLogin support to add ports as translate to the network VLAN, but the
rest of NetLogin and the PVLAN features do not conflict.
• IGMP (Internet Group Management Protocol) snooping is performed across the
entire PVLAN, spanning all the subscriber VLANs, following the PVLAN rules. For
VLANs that are not part of a PVLAN, IGMP snooping operates as normal.
• PVLAN and VPLS are not supported on the same VLAN.
• When two switches are part of the same PVLAN, unicast and multicast traffic require
a tagged trunk between them that preserves tags (no tag translation).
• Subscriber VLANs in a PVLAN cannot exchange multicast data with VLANs outside
the PVLAN and with other PVLANs. However, the network VLAN can exchange
multicast data with VLANs outside the PVLAN and with network VLANs in other
PVLANs.
Note
A maximum of 80% of 4K VLANs can be added to a PVLAN. Adding more
VLANS will display the following log error:
<Erro:HAL.VLAN.Error>Slot-<slot>: Failed to add egress vlan translation entry on
port <port> due to “Table full”.
If two or more member VLANs have overlapping ports (where the same ports are
assigned to both VLANs), each additional VLAN member with overlapping ports must
have a dedicated loopback port. To state it another way, one of the VLAN members
with overlapping ports does not require a dedicated loopback port, and the rest of
the VLAN members do require a single, dedicated loopback port within each member
VLAN.
Note
There is a limit to the number of unique source MAC addresses on the network
VLAN of a PVLAN that the switch can manage. It is advised not to exceed the
value shown in the item “FDB (maximum L2 entries)” in the Supported Limits
table of the ExtremeXOS Release Notes.
Configuring PVLANs
The following section describes how to configure a private VLAN.
Creating PVLANs
To create a VLAN, you need to do the following:
Note
All traffic that exits a subscriber VLAN port uses the subscriber VLAN tag,
unless the port is configured as untagged. There is no need to configure VLAN
translation (from network to subscriber VLAN tag) on subscriber VLAN ports.
1. To configure network VLAN ports for VLAN translation, use the following command
and specify the network VLAN and port numbers:
configure {vlan} vlan_name | vlan_list add ports port_list private-
vlan translated
2. If you want to later reconfigure a port that is configured for VLAN translation so that
it does not translate tags, use the following command and specify either the tagged
or the untagged option:
configure {vlan} vlan_name | vlan_list add ports [port_list | all]
{tagged | untagged} {{stpd} stpd_name} {dot1d | emistp | pvst-plus}}
These tasks can be completed in any order, but they must both be completed before a
port can participate in a PVLAN. When configuration is complete, all egress traffic from
the port is translated to the VLAN tag for that non-isolated VLAN (unless the port is
configured as untagged).
Note
To configure VLAN translation for network VLAN ports, see Configuring
Network VLAN Ports for VLAN Translation on page 609.
• To add a non-isolated subscriber VLAN to the PVLAN, use the following command:
configure private-vlan name add subscriber vlan_name non-isolated
• To add ports to a non-isolated VLAN (before or after it is added to the PVLAN), use
the following command:
configure {vlan} vlan_name | vlan_list add ports [port_list | all]
{tagged | untagged} {{stpd} stpd_name} {dot1d | emistp | pvst-plus}}
If you specify the tagged option, egress traffic uses the non-isolated VLAN tag,
regardless of the network translation configuration on any network port with which
these ports communicate. Egress traffic from a non-isolated VLAN port never carries
the network VLAN tag.
Note
To configure VLAN translation for network VLAN ports, see Configuring
Network VLAN Ports for VLAN Translation on page 609.
The process for configuring ports for VLAN isolation requires two tasks:
• Add a VLAN to the PVLAN as an isolated subscriber VLAN.
• Assign ports to the isolated subscriber VLAN.
These tasks can be completed in any order, but they must both be completed before a
port can participate in an isolated VLAN.
• To add an isolated subscriber VLAN to the PVLAN, use the following command:
configure private-vlan name add subscriber vlan_name
• To add ports to an isolated VLAN (before or after it is added to the PVLAN), use the
following command:
configure {vlan} vlan_name | vlan_list add ports [port_list | all]
{tagged | untagged} {{stpd} stpd_name} {dot1d | emistp | pvst-plus}}
If you specify the tagged option, egress traffic uses the isolated VLAN tag, regardless
of the network translation configuration on any network port with which these ports
communicate. Egress traffic from an isolated VLAN port never carries the network
VLAN tag.
overlapping ports (where the same ports are assigned to both VLANs), each of the
subscriber VLANs with overlapping ports must have a dedicated loopback port.
The loopback port can be added when the subscriber VLAN is added to the PVLAN.
If you need to add a loopback port to an existing subscriber VLAN, use the following
command:
To enable Layer 3 communications between all ports in a PVLAN, use the following
command:
configure iparp add proxy [ipNetmask | ip_addr {mask}] {vr vr_name} {mac
| vrrp} {always}
Specify the IP address or subnet specified for the network VLAN in the PVLAN. Use the
always option to ensure that the switch will reply to ARP requests, regardless of the
VLAN from which it originated.
Delete PVLANs
To delete an existing PVLAN, use the command:
To remove a network or subscriber VLAN from a PVLAN, use the following command:
show private-vlan
1. The first configuration step is to create and configure the VLANs on the local switch:
create vlan Main
configure vlan Main add port 1:*
configure vlan Main tag 100
create vlan ClientConnections
configure vlan ClientConnections add port 2:*
configure vlan ClientConnections tag 200
create vlan Research
3. The next step is to create the PVLAN on the local switch and configure each of the
component VLANs for the proper role:
create private-vlan MedPrivate
configure private-vlan "MedPrivate" add network "Main"
configure private-vlan "MedPrivate" add subscriber "ClientConnections"
configure private-vlan "MedPrivate" add subscriber "Research" non-isolated
4. The final step is to configure VLAN translation on the local switch so that Research
VLAN workstations can connect to the file servers on the remote switch:
configure Main add ports 1:1 private-vlan translated
Note
The following examples contain comments that follow the CLI comment
character (#). All text that follows this character is ignored by the switch and
can be omitted from the switch configuration.
The following commands configure the switch in the first floor closet:
# Create and configure the VLANs.
create vlan Main
configure vlan Main add port 1
configure vlan Main tag 100
configure vlan Main add port 2 tagged
create vlan ClientConnections
configure vlan ClientConnections tag 200
configure vlan ClientConnections add port 5-19
configure vlan ClientConnections add port 20 tagged
create vlan ConfRoom
configure vlan ConfRoom tag 300
configure vlan ConfRoom add port 21-30
configure vlan ConfRoom add port 20 tagged
# Create and configure the PVLAN named Motel.
create private-vlan Motel
configure private-vlan Motel add network Main
configure private-vlan Motel add subscriber ClientConnections # isolated subscriber VLAN
configure private-vlan "Motel" add subscriber "ConfRoom" non-isolated loopback-port 30
configure private-vlan Motel add subscriber ConfRoom non-isolated
# If you omit the loopback-port command, the above command produces the following error
message:
# Cannot add subscriber because another subscriber vlan is already present on the same
port, assign a loopback port when adding the subscriber vlan to the private vlan
# Note that the loopback port is flagged with an "L" and listed as a tagged port, and the
network VLAN ports are flagged with an "s" and listed as tagged ports.
VLAN Translation
The VLAN translation feature described in this section provides the same VLAN
translation functionality that is provided for PVLANs. This is described in VLAN
Translation in a PVLAN on page 599.
Note
The VLAN translation feature is supported only on the platforms listed for
this feature in the license tables in the Switch Engine Licensing Guide
document.
VLANs 101, 102, and 103 are configured as member VLANs of translation VLAN1. The
member VLANs are equivalent to the non-isolated subscriber VLANs in the PVLAN
implementation of VLAN translation.
This configuration enables tag translation between the translation VLAN and the
member VLANs. All member VLANs can communicate through the translation VLAN,
but they cannot communicate through Layer 2 with each other.
Unicast Traffic
Traffic on the member VLANs can be either tagged or untagged.
Traffic is switched locally between client devices on the same member VLAN as normal.
Traffic cannot be switched between clients on separate member VLANs. Traffic from
any member VLAN destined for the translation VLAN is switched and the VLAN tag
is translated appropriately. Traffic from the translation VLAN destined for any member
VLAN is switched and the VLAN tag is translated.
Broadcast Behavior
Broadcast traffic generated on a member VLAN is replicated in every other active port
of that VLAN as normal.
In addition, the member VLAN traffic is replicated to every active port in the translation
VLAN and the VLAN tag is translated appropriately. Broadcast traffic generated on
the translation VLAN is replicated to every other active port in this VLAN as usual.
The caveat in this scenario is that this traffic is also replicated to every active port in
every member VLAN, with VLAN tag translation. In effect, the broadcast traffic from the
translation VLAN leaks onto all member VLANs.
Multicast Behavior
IGMP snooping can be enabled on member and translation VLANs so that multicast
traffic can be monitored within the network.
IGMP snooping software examines all IGMP control traffic that enters the switch. IGMP
control traffic received on a VLAN translation port is forwarded by the CPU to all other
ports in the translation group. Software VLAN translation is performed on the packets
which cross the translation boundary between member and translation VLANs. The
snooping software detects ports joining and leaving multicast streams. When a VLAN
translation port joins a multicast group, an FDB entry is installed only on receiving a
data miss for that group. The FDB entry is added for the requested multicast address
and contains a multicast PTAG. When a VLAN translation port leaves a multicast group,
the port is removed from the multicast list. The last VLAN translation port to leave a
multicast group causes the multicast FDB entry to be removed.
Interfaces
Use the following information for selecting and configuring VLAN translation interfaces:
• A single physical port can be added to multiple member VLANs, using different
VLAN tags.
• Member VLANs and translation VLANs can include both tagged and untagged
ports.
A prospective translation VLAN becomes a translation VLAN when the first member
VLAN is added to it.
• To add a member VLAN to a translation VLAN, use the following command:
configure {vlan} vlan_name vlan-translation add member-vlan
member_vlan_name {loopback-port port}
• To delete a member VLAN from a translation VLAN, use the following command:
configure {vlan} vlan_name vlan-translation delete member-vlan
[member_vlan_name | all]
• To view the translation VLAN participation status of a VLAN, use the following
command:
show vlan {virtual-router vr-name}
The following configuration commands create the translation VLAN and enable VLAN
translation:
create vlan v1000
configure v1000 tag 1000
configure v1000 add ports 2:1 tagged
configure v1000 vlan-translation add member-vlan v101
configure v1000 vlan-translation add member-vlan v102 loopback-port 1:23
configure v1000 vlan-translation add member-vlan v103
configure v1000 vlan-translation add member-vlan v104 loopback-port 1:24
The SW2 and SW3 VLAN translation switches are protected by an ESRP control VLAN.
The master ESRP switch performs the translation and provides the connectivity to the
backbone. If a failure occurs, the slave ESRP switch takes over and begins performing
the translation.
The configuration for SW2 and SW3 is identical for this example.
This set of configuration commands creates the translation VLANs and enables VLAN
translation on SW2:
create vlan v1000
configure v1000 tag 1000
configure v1000 add ports 2:1 tagged
configure v1000 vlan-translation add member-vlan v101
configure v1000 vlan-translation add member-vlan v102
configure v1000 vlan-translation add member-vlan v103
configure v1000 vlan-translation add member-vlan v104
The final set of configuration commands creates the ESRP control VLAN and enables
ESRP protection on the translation VLAN for SW2:
create vlan evlan
configure evlan add ports 2:2
enable esrp evlan
configure evlan add domain-member v1000
The following configuration commands create the translation VLAN and enable VLAN
translation onVLANs that have overlapping ports:
configure v1000 vlan-translation add member-vlan v102 loopback-port 1:22
configure v1000 vlan-translation add member-vlan v103 loopback-port 1:23
configure v1000 vlan-translation add member-vlan v104 loopback-port 1:24
Parallel paths exist from the member VLAN portion of the network to the translation
switch. STP ensures that the main path for this traffic is active and the secondary path
is blocked. If a failure occurs in the main path, the secondary paths are enabled.
These configuration commands create the member VLANs and enable STP on SW2:
create vlan v103
configure v103 tag 103
configure v103 add ports 1:1 tagged
configure v103 add ports 1:3 tagged
configure v103 add ports 1:4 tagged
create vlan v104
configure v104 tag 104
configure v104 add ports 1:2 tagged
configure v104 add ports 1:3 tagged
configure v104 add ports 1:4 tagged
create vlan v101
configure v101 tag 101
configure v101 add ports 1:3 tagged
configure v101 add ports 1:4 tagged
create vlan v102
configure v102 tag 102
configure v102 add ports 1:3 tagged
configure v102 add ports 1:4 tagged
create stpd stp1
configure stp1 tag 101
configure stp1 add vlan v101
configure stp1 add vlan v102
configure stp1 add vlan v103
configure stp1 add vlan v104
enable stpd stp1
This set of configuration commands creates the member VLANs and enables STP on
SW3:
create vlan v101
configure v101 tag 101
configure v101 add ports 1:3 tagged
configure v101 add ports 1:4 tagged
create vlan v102
configure v102 tag 102
configure v102 add ports 1:3 tagged
configure v102 add ports 1:4 tagged
create vlan v103
configure v103 tag 103
configure v103 add ports 1:3 tagged
configure v103 add ports 1:4 tagged
create vlan v104
configure v104 tag 104
configure v104 add ports 1:3 tagged
configure v104 add ports 1:4 tagged
create stpd stp1
configure stp1 tag 101
configure stp1 add vlan v101
configure stp1 add vlan v102
configure stp1 add vlan v103
configure stp1 add vlan v104
enable stpd stp1
The final set of configuration commands creates the translation VLAN and enables
VLAN translation on SW3:
create vlan v1000
configure v1000 tag 1000
configure v1000 add ports 2:1 tagged
configure v1000 vlan-translation add member-vlan v101
configure v1000 vlan-translation add member-vlan v102
configure v1000 vlan-translation add member-vlan v103
configure v1000 vlan-translation add member-vlan v104
The following configuration commands create the translation VLAN and enable VLAN
translation on VLANs that have overlapping ports:
configure v1000 vlan-translation add member-vlan v102 loopback-port 1:22
configure v1000 vlan-translation add member-vlan v103 loopback-port 1:23
configure v1000 vlan-translation add member-vlan v104 loopback-port 1:24
The Port-specific VLAN tag allows tagged VLAN ports to be configured with tag values.
When the tag is not configured, it is implicit that the tag of the tagged port is the tag of
the VLAN. We call the tag of the port the "port tag", and the tag of the VLAN the "base
tag". The port tag is used to determine the eligibility of the frames allowed to be part of
the VLAN. Once the frame is admitted to the VLAN port, the base tag is used. From a
functional standpoint, the frame tag is rewritten to the base tag.
The base tag then is translated to the port tag for the outgoing frame.
Note
The port tag is equal to the base tag when the port tag is not specified, so the
current VLAN behavior is preserved.
Untagged VLAN ports also have port tag, which is always the same as the base tag.
Outgoing frames are untagged. The untagged VLAN port always has an implicit port
tag thats's always equal to the base tag. There can be only one untagged VLAN port
on a physical port. It receives untagged frames, and tagged frames, and transmits only
untagged frames.
A tagged VLAN port can have a port tag configured, or not. When not configured, the
port tag is equal to the base tag. There can be more than one tagged VLAN port on a
physical port. It receives tagged frames with tag equals to the port tag, and transmits
tagged frames with port tag.
When the VLAN is assigned to L2VPN, the base tag is the tag that is carried by the
pseudo-wire when the dot1q include is enabled. It can be viewed that VPLS PW port
tag is equal to the base tag. To assign a VLAN with a port-specific tag to an L2VPN, use
the existing configure vpls vpls_name add service vlan vlan_name command.
Since every tagged VLAN port has different VIDs, forwarding between them on the
same physical port (hairpin switching) is possible. From the external traffic point of
view, the frame tags are rewritten from the receive port tag to the transmit port tag.
Since each port tag is a different VLAN port, a frame that has to be broadcasted to
multiple VLAN ports is sent out multiple times with different tags when the VLAN ports
are on the same physical port. Each port + port tag is an individual VLAN port.
MAC addresses are learned on the VLAN port. This means that the port in the FDB
entry is the port + port tag. A unicast frame destined to a MAC address that is in the
FDB is sent out of the associated VLAN port. As mentioned earlier, there is only one
MAC addressed learned on the VLAN. If the MAC address is learned on a different port
or a different tag, it is a MAC move. It is transmitted out of the physical port only on the
associated VLAN port tagged with the port tag when the VLAN port is tagged.
When there are multiple tagged VLAN ports on the transmit port, only one frame with
the right tag is transmitted. It is transmitted untagged on an untagged VLAN port.
Accordingly, the static MAC address is configured on a VLAN port. This means that
the port tag is specified when the tag is not equal to the base tag. The command
to flush FDB does not need to change. But, a VLAN port-specific flush needs to be
implemented to handle the case when a VLAN port is deleted. This flush is internal and
not available through the CLI.
Per VLAN port (port + tag) rate limiting and accounting is achieved by the existing ACL.
Use match condition vlan-id to match the port VID. You can use action count and
byte-count for accounting. And you can use show access-list counter to view the
counters. Action meter can be used for rate limiting. To create a meter, use the create
meter command, and configure the committed rate and maximum burst size.
Supported Platforms
Port-Specific VLAN Tag is supported on the following platforms:
• ExtremeSwitching X460-G2 (supported from ExtremeXOS 15.6)
• ExtremeSwitching X690
Similarly, the following is an example for VPWS. There can only be a single VLAN port in
the VLAN for assignment to VPWS to be successful:
create vlan exchange tag 100
config vlan exchange add ports 1 tagged 10
config l2vpn vpws pw1 add service vlan exchange
ACLs
You can use the existing match vlan-id ACL to accomplish counting and metering. You
can assign the ACL to both ingress and egress port. The followings are the examples of
such configuration. The port 3 tag is 4 and the port 4 tag is 5. These ACLs will match the
frame vlan-ID, and the vlan-ID specified in the match criteria is independent of the port
tag.
Content of acl.pol
entry tag_1 {
if {
vlan-id 4;
} then {
packet-count tag_1_num_frames;
meter tag_1_meter;
}
}
entry tag_2 {
if {
vlan-id 5;
} then {
byte-count tag_2_num_bytes;
meter tag_2_meter;
}
}
Content of acl_egress.pol
entry tag_1_egr {
if {
vlan-id 4;
} then {
packet-count tag_1_egr_num_frames;
meter tag_1_egr_meter;
}
}
entry tag_2_egr {
if {
vlan-id 5;
} then {
byte-count tag_2_egr_num_bytes;
meter tag_2_egr_meter;
}
}
The virtual metropolitan area network (VMAN) feature allows you to scale a Layer 2
network and avoid some of the management and bandwidth overhead required by
Layer 3 networks.
Note
If a failover occurs, VMAN operation is not interrupted. The system has hitless
failover—network traffic is not interrupted during a failover.
VMAN Overview
The VMAN feature is defined by the IEEE 802.1ad standard, which is an amendment to
the IEEE 802.1Q VLAN (Virtual LAN) standard.
A VMAN is a virtual Metropolitan Area Network (MAN) that operates over a physical
MAN or Provider Bridged Network (PBN). This feature allows a service provider to create
VMAN instances within a MAN or PBN to support individual customers. Each VMAN
supports tagged and untagged VLAN traffic for a customer, and this traffic is kept
private from other customers that use VMANs on the same PBN.
The PBN uses Provider Bridges (PBs) to create a Layer 2 network that supports VMAN
traffic. The VMAN technology is sometimes referred to as VLAN stacking or Q-in-Q.
Note
Virtual MAN (VMAN) is an Extreme Networks term that became familiar to
Extreme Networks customers before the 802.1ad standard was complete. The
term VMAN is used in the ExtremeXOS software and also in this document
to support customers who are familiar with the term. The term PBN is also
used in this guide to establish the relationship between this industry standard
technology and the Extreme Networks VMAN feature.
The CEP role, which is configured in software as a cep vman port, connects a VMAN
to specific CVLANs based on the CVLAN CVID. The CNP role, which is configured as
an untagged vman port, connects a VMAN to all other port traffic that is not already
mapped to the port CEP role. These roles are described later.
All other VMAN ports (except the access ports) operate as VMAN network ports, which
are also known as Provider Network Ports (PNPs) in the 802.1ad standard. The VMAN
network ports connect the PBs that form the core of the VMAN. During configuration,
the VMAN network ports are configured as tagged VMAN ports.
Figure 77 on page 632 shows one VMAN, but a PBN can support multiple VMAN
instances, which are sometimes called VMANs or Service VLANs (SVLANs). VMANs
allow you to partition the PBN for customers in the same way that VLANs allow you
to partition a Layer 2 network. For example, you can use different VMANs to support
different customers on the PBN, and the PBN delivers customer traffic only to the PBN
ports that are configured for appropriate VMAN.
A VMAN supports two tags in each Ethernet frame, instead of the single tag supported
by a VLAN Ethernet frame. The inner tag is referred to as the customer tag (C-tag), and
this optional tag is based on the CVLAN tag if the source VLAN is a tagged VLAN. The
outer tag is referred to as the service tag (S-tag) or VMAN tag or SVLAN tag, and it is
the tag that defines to which SVLAN a frame belongs. Figure 77 on page 632 shows the
frame manipulation that occurs at the VMAN edge switch.
When the switch in the figure above acts as the egress switch for a VMAN, VMAN
frames arrive on network ports 2:1 and 2:2. The switch accepts only those frames with
the correct S-tag, removes the S-tags, and switches those frames to access ports 1:1
and 1:2. Unless special configuration options are applied, the egress frames are identical
to ingress CVLAN frames. (Configuration options are described in VMAN Configuration
Options and Features on page 636.)
Figure 78 shows that the S-tags and C-tags used in VMAN frames contain more than
just customer and service VLAN IDs.
The SVID is the VLAN tag you assign to a VMAN when you create it (see the configure
vman vman_name tag tag command. The CVID represents the CVLAN tag for tagged
VLAN traffic.
Switch ports support VMAN roles and features, which are described in the following
sections:
• Customer Network Ports
• Customer Edge Ports
• CVID Translation
• CVID Egress Filtering
Note
The CNP term is defined in the IEEE 802.1ad standard and is also called a
port-based service interface. The CNP operation is similar to a MEF 13 UNI Type
1.2, and in releases before ExtremeXOS 12.6, CNPs were known as VMAN access
ports or untagged vman ports. With the addition of CEPs, the term VMAN
access port is now a generic term that refers to CNPs and CEPs.
A PBN can support up to 4094 VMANs, and each VMAN can support up to 4094
CVLANs. Because each CNP connects to only one VMAN, the maximum number of
customer VMANs on an edge switch is equal to the total number of switch ports minus
one, because at least one port is required to serve as the PNP (Provider Network Port).
To define the connections between CVLANs and SVLANs, each CEP uses a dedicated
CVID map, which defines the supported CVIDs on the CEP and the destination VMAN
for each CVID. For example, you can configure a CEP to forward traffic from five specific
CVLANs to VMAN A and from ten other specific CVLANs to VMAN B. During VMAN
configuration, certain ports are added to the VMAN as CEPs, and certain CVIDs on
those ports are mapped to the VMAN. To enable customer use of a VMAN, service
providers must communicate the enabled CVIDs to their customers. The customers
must use those CVIDs to access the VMAN.
Note
The CEPterm is defined in the IEEE 802.1ad standard and is also called a C-
tagged service interface. The CEP operation is similar to a MEF 13 UNI Type 1.1.
Much like the CVIDs configured as part of the CEP feature, the configured port CVID
is not represented by a VLAN within ExtremeXOS. The implication is that protocols
and individual services cannot be applied to the Port CVID alone. Protocols and
services are instead applied to the VMAN and/or port as the VMAN represents the
true layer-2 broadcast domain. Much like regular untagged and CEP VMAN ports, MAC
FDB (forwarding database) learned occurs on the VMAN so duplicate MAC addresses
received on multiple CVIDs which are mapped to the same VMAN can be problematic.
Even when the additional Port CVID is configured, the port still has all of the attributes
of a regular untagged VMAN port. This means that any single c-tagged packets
received on the same port will have just the SVID associated with the VMAN added
to the packet. Likewise, any egress packet with a CVID other than the configured Port
CVID will have just the SVID stripped. This is not true when the Port CVID specification
is part of the CEP configuration, added in ExtremeXOS 16.2.1.
Coexistence with Tagged VLANs Interfaces, CEP VMAN Interfaces, and Tagged VMAN Interfaces
Since the port-cvid configuration still has the attributes of a regular untagged VMAN,
all of the VLAN and VMAN exclusion and compatibility rules of a regular untagged
VMAN port also apply. A list of these rules is contained in “EXOS Selective Q-in-Q”. In
ExtremeXOS 21.1, when port-cvid is specified as part of CEP, there can only be one such
port-cvid on the port. Any adjacent CEP CVIDs will not be included in the same CVID
range.
Protocols that locally originate control packets, such as STP (Spanning Tree Protocol)
and ELRP which are used for loop prevention, will transmit packets as natively
untagged on the wire when the port is an untagged VMAN member. These untagged
packets will also be able to be received and processed by ExtremeXOS. This makes
STP edge safeguard + BPDU guard or ELRP effective ways to detect and react
to network loops on the device. However, since control packets are transmitted as
untagged upstream devices may need additional configuration support to properly
detect remote loops not directly attached to the device.
Other effective loop prevention mechanisms work without any interaction with
untagged VMAN ports. For example, turning physical port auto-polarity off will prevent
an accidental looped cable from becoming active. Likewise, storm-control rate limiting
of broadcast and flood traffic can be applied in this environment to minimize the
effects of a network loop. In addition to detecting, preventing, and minimizing the
effects of a network loop, user ACL (Access Control List)s can be applied to gain
visibility and control of L2, L3, and L4 match criteria even with double tagged packets.
All applicable ACL action modifiers are available in this environment. IP multicast
pruning within a VMAN can be accomplished via normal IGMP (Internet Group
Management Protocol) snooping. ExtremeXOS supports full IGMP snooping and IP
multicast pruning of single tagged and double tagged packets. However, when an
IP address is configured on the VMAN, the IGMP protocol engine will transmit single
tagged packets on tagged VMAN ports or untagged packets on untagged VMAN ports
so upstream switch configuration and support may be necessary to properly propagate
group memberships across the network.
CVID Translation
To support CVLANs that are identified by different CVIDs on different CEPs, some
switches support a feature called CVID translation, which translates the CVID received
at the VMAN ingress to a different CVID for egress from the VMAN (see Figure 79).
ranges for translation. The commands can be applied to a single port or a list of ports,
and after configuration, the configuration applied to a port is retained by that port.
Note
CVID translation is available only on the platforms listed for this feature in the
Switch Engine Licensing Guide document.
CVID translation can reduce the number of CVIDs that can be mapped to VMANs.
Note
CVID egress filtering is available only on the platforms listed for this feature in
the Switch Engine Licensing Guide document.
When this feature is enabled, it reduces the maximum number of CVIDs that can be
mapped to VMANs. The control of CVID egress filtering applies to fast-path forwarding.
When frames are forwarded through software, CVID egress filtering is always enabled.
Note
Commands enhanced with VID list support operate in a “best effort” fashion. If
one of the VIDs in a VID list do not exist the command is still executed for all of
the VIDs in the list that do exist. No error or warning is displayed for the invalid
VIDs unless all of the specified VIDs are in valid.
ACL Support
The ExtremeXOS software includes VMAN (PBN) ACL support for controlling VMAN
frames.
VMAN ACLs define a set of match conditions and modifiers that can be applied to
VMAN frames. These conditions allow specific traffic flows to be identified, and the
modifiers allow a translation to be performed on the frames.
Note
This feature is supported only on the platforms listed for this feature in the
license tables in the Switch Engine Licensing Guide document.
The C-tag and S-tag components that are added to all VMAN (PBN) frames include
C-ethertype and S-ethertype components that specify an ethertype value for the
customer VLAN and VMAN, respectively. The I-tag used in PBBN frames also includes
an ethertype value. When a VLAN or VMAN frame passes between two switches, the
ethertype is checked for a match. If the ethertype does not match that of the receiving
switch, the frame is discarded.
The secondary ethertype support feature applies only to VMANs. The ethertype value
for VLAN frames is standard and cannot be changed.
If your VMAN transits a third-party device (in other words, a device other than an
Extreme Networks device), you must configure the ethertype value on the Extreme
Networks device port to match the ethertype value on the third-party device to which it
connects.
The secondary ethertype support feature allows you to define two ethertype values for
VMAN frames and select either of the two values for each port.
For example, you can configure ports that connect to other Extreme Networks devices
to use the default primary ethertype value, and you can configure ports that connect
to other equipment to use the secondary ethertype value, which you can configure to
match the requirements of that equipment.
When you create a VMAN, each VMAN port is automatically assigned the primary
ethertype value. After you define a secondary ethertype value, you can configure a
port to use the secondary ethertype value. If two switch ports in the same VMAN use
different ethertype values, the switch substitutes the correct value at each port. For
example, for VMAN edge switches and transit switches, the switch translates an ingress
ethertype value to the network port ethertype value before forwarding. For egress
traffic at VMAN edge switches, no translation is required because the switch removes
the S-tag before switching packets to the egress port.
You can set the primary and secondary ethertypes to any value, provided that the two
values are different.
QoS Support
The VMAN (PBN) feature interoperates with many of the QoS (Quality of Service) and
HQoS features supported in the ExtremeXOS software.
One of those features is egress queue selection, which is described in the next section.
For more information on other QoS and HQoS features that work with VMANs, see
Quality of Service on page 859.
Note
This feature is supported only on the platforms listed for this feature in the
license tables in the Switch Engine Licensing Guide document.
On some systems you can configure this feature to examine the values in the C-tag or
the S-tag. For more information, see the list in the Switch Engine Licensing Guide
document.. For instructions on configuring this feature, see Selecting the Tag used for
Egress Queue Selection on page 642.
Much like the CVIDs configured as part of the CEP feature, the configured Port CVID
is not represented by a VLAN within ExtremeXOS. The implication is that protocols
and individual services cannot be applied to the Port CVID alone. Protocols and
services are instead applied to the VMAN and/or port as the VMAN represents the true
layer-2 broadcast domain. Much like regular untagged VMAN ports, MAC FDB learning
occurs on the VMAN, so duplicate MAC addresses received on multiple CVIDs that are
mapped to the same VMAN can be problematic. Even when the additional Port CVID is
configured, the port still has all of the attributes of a regular untagged VMAN port. This
means that any single c-tagged packets received on the same port will have just the
SVID associated with the VMAN added to the packet. Likewise, any egress packet with a
CVID other than the configured Port CVID will have the SVID stripped.
See Coexistence with Tagged VLANs Interfaces, CEP VMAN Interfaces, and Tagged
VMAN Interfaces on page 634.
Configuration
• You can enable or disable jumbo frames before configuring VMANs. You can enable
or disable jumbo frames on individual ports. See Configuring Ports on a Switch on
page 215 for more information on configuring jumbo frames.
• STP operation on CVLAN components in a PEB as described in IEEE 802.1ad is not
supported.
• The initial version of this feature does not implement an XML API.
• Multiple VMAN roles can be combined on one port with certain VLAN types as
shown in Table 72.
Table 72: Port Support for Combined VMAN Roles and VLANs
Platform Combined Combined Combined Combined
CNP, CEP, PNP, CNP, PNP and PNP and
and and Tagged Untagged
Tagged CEP a,b,c VLAN VLAN
VLAN a,b
All ExtremeSwitching Universal X X Xd X
platforms
Note
If you already configured VLANs and VMANs on the same stand-alone switch
using ExtremeXOS 11.4 or later, you cannot change the VMAN ethertype from
0X8100 without first removing either the VLAN or VMAN configuration.
Note
You must enable jumbo frames before configuring VMANs on these
systems.
Note
You must configure CNP ports as untagged, so that the S-tag is stripped
from the frame on egress. If the port-cvid is configured, any untagged
packet received on the port will be double tagged with the configured
port CVID and the SVID associated with the VMAN. Packets received with
a single CVID on the same port will still have the SVID added as usual.
As double tagged packets are received from tagged VMAN ports and
forwarded to untagged VMAN ports,the SVID associated with the VMAN is
stripped. Additionally, the CVID associated with the configured port CVID is
also stripped in the same operation.
a Subsets of this group are also supported. That is, any two of these items are supported.
b When a CNP is combined with a CEP or tagged VLAN, any CVIDs not explicitly configured for a CEP or
tagged VLAN are associated with the CNP.
c A PNP (tagged VMAN) and a CNP (untagged VMAN) or CEP cannot be combined on a port for which the
selected VMAN ethertype is 0x8100.
d If the secondary VMAN ethertype is selected for the port, it must be set to 0x8100.
Note
This feature is supported only on the platforms listed for this feature in the
license tables in the Switch Engine Licensing Guide document.
1. Configure the primary and secondary (if needed) VMAN ethertype values for the
switch using the following command:
configure vman ethertype hex_value [primary | secondary]
By default, all VMAN ports use the primary ethertype value.
2. If you plan to use a secondary ethertype, select the secondary ethertype for the
appropriate VMAN ports using the following command:
configure port port_list ethertype {primary | secondary}
Note
This feature is supported and configurable only on the platforms listed for
this feature in the license tables in the Switch Engine Licensing Guide
document.
Note
See Quality of Service on page 859 for information on configuring and
displaying the current 802.1p and DiffServ configuration for the S-tag
802.1p value. To enable dot1p examination for inner-tag, dot1p examination
for outer-tag must be disabled using the command disable dot1p
examination ports [all | port_list]
Note
The display for the show vman command is different depending on the
platform and configuration you are using. See the Switch Engine
Command References for complete information on this command.
You can also display VMAN information, as well as all the VLANs, by issuing the show
ports information detail command. And you can display the VMAN ethernet type
and secondary etherType port_list by using the show vman etherType command
Configuration Examples
Port 1 serves as the CEP, and egress filtering is enabled on the port. Ports 22 and 23
serve as CNPs, providing the connection between the CEP port and the rest of each
VMAN.
The primary VMAN (PBN) ethertype is changed from the default value, but that is not
required.
#
# configure vman vman300 add port 1:1, 2:1, 2:2 tagged
# configure vman vman300 add port 1:2 untagged
The FDB (forwarding database) chapter is intended to help you learn about forwarding
databases, adding and displaying entries and entry types, managing the FDB, and
MAC-based security. This chapter also provides information about MAC Address
tracking.
The switch maintains a forwarding database (FDB) of all MAC addresses received on all
of its ports. It uses the information in this database to decide whether a frame should
be forwarded or filtered.
Note
See the Switch Engine Command References for details of the
commands related to the FDB.
FDB Contents
Each FDB entry consists of:
• The MAC address of the device
• An identifier for the port and VLAN (Virtual LAN) on which it was received
• The age of the entry
• Flags
Frames destined for MAC addresses that are not in the FDB are flooded to all members
of the VLAN.
The ability to learn MAC addresses can be enabled or disabled on a port-by-port basis.
You can also limit the number of addresses that can be learned, or you can lock down
the current entries and prevent additional MAC address learning.
The hardware is checked every “polling interval” seconds to see if there is traffic flow
from the given FDB entry.If there is a traffic flow from this MAC, the entry is refreshed
and aging counter is reset to 0.
If there is no traffic from that FDB entry during this polling interval, the age gets
incremented till the configured age time (configured by configure fdb agingtime
seconds). The entry gets removed when there is no traffic flow from this FDB entry
when the age count reaches the configured age time.
Polling interval = FDB aging time/4 (subject to the minimum and maximum values
being 10 and 60 seconds respectively).
Dynamic Entries
A dynamic entry is learned by the switch by examining packets to determine the
source MAC address, VLAN, and port information.
The switch then creates or updates an FDB entry for that MAC address. Initially, all
entries in the database are dynamic, except for certain entries created by the switch at
boot-up.
Entries in the database are removed (aged-out) if, after a period of time (aging time),
the device has not transmitted. This prevents the database from becoming full with
obsolete entries by ensuring that when a device is removed from the network, its entry
is deleted from the database.
The aging time is configurable, and the aging process operates on the supported
platforms as follows:
• On all platforms, you can configure the aging time to 0, which prevents the
automatic removal of all dynamic entries.
• On all platforms, the aging process takes place in software and the aging time is
configurable.
For more information about setting the aging time, see Configuring the FDB Aging
Time on page 650.
Note
If the FDB entry aging time is set to 0, all dynamically learned entries in the
database are considered static, non-aging entries. This means that the entries
do not age, but they are still deleted if the switch is reset.
Dynamic entries are flushed and relearned (updated) when any of the following take
place:
• A VLAN is deleted.
• A VLAN identifier (VLANid) is changed.
• A port mode is changed (tagged/untagged).
• A port is deleted from a VLAN.
• A port is disabled.
• A port enters blocking state.
• A port goes down (link down).
A non-permanent dynamic entry is initially created when the switch identifies a new
source MAC address that does not yet have an entry in the FDB. The entry can then be
updated as the switch continues to encounter the address in the packets it examines.
These entries are identified by the “d” flag in the show fdb command output.
Static Entries
A static entry does not age and does not get updated through the learning process.
To create a permanent static FDB entry, see Adding a Permanent Unicast Static Entry
on page 649.
If a duplicate MAC address is learned on a port other than the port where the
static entry is defined, all traffic from that MAC address is dropped. By default, the
switch does not report duplicate addresses. However, you can configure the switch to
report these duplicate addresses as described in Managing Reports of Duplicate MAC
Addresses for Static Entries on page 651.
A locked static entry is an entry that was originally learned dynamically, but has been
made static (locked) using the MAC address lock-down feature. It is identified by the “s,”
“p,” and “l” flags in show fdb command output and can be deleted using the delete
fdb command. See MAC Address Lockdown on page 1102 for more information about
this feature.
Note
Static FDB entries created on EAPS (Extreme Automatic Protection Switching)-
or STP (Spanning Tree Protocol)-enabled ports forward traffic irrespective of
the port state. Consequently, you should avoid such a configuration.
Blackhole Entries
A blackhole entry configures the switch to discard packets with a specified MAC
destination address.
Blackhole entries are treated like permanent entries in the event of a switch reset or
power off/on cycle. Blackhole entries are never aged out of the database.
Once the multiport static FDB entry is created, any ingress traffic with a destination
MAC address matching the FDB entry is multicasted to each port in the specified list. If
the FDB entry is the next hop for an IP adjacency, unicast routing sends the packet to
the first port in the list.
Note
When a multiport list is assigned to a unicast MAC address, load sharing is not
supported on the ports in the multiport list.
ExtremeSwitching series switches do not support this multiport feature natively using
the FDB table. Instead, for each FDB entry of this type, a series of system ACL (Access
Control List)s have been installed which match the specified MAC address and VLAN
ID, and override the egress port forwarding list with the supplied list of ports. Multiple
ACLs per FDB are required to handle Layer 2 echo kill by installing a unique ACL per
individual port in the list to send matching traffic to all other ports in the list.
User-configured ACLs take precedence over these FDB-generated ACL rules, and the
total number of rules is determined by the platform.
The hardware ACL limitations for each platform are described in ACLs on page 779.
Use the create fdb mac_addr vlan vlan_name [ports port_list | blackhole]
command to enter the multicast FDB address. After traffic with a multicast MAC
destination address enters the switch, that traffic is multicast to all ports on the list.
This feature is useful when you want the switch to learn the Sender-MAC address for a
redundant protocol, such as VRRP (Virtual Router Redundancy Protocol). For example,
if your network has a gateway with a virtual MAC address, the switch learns the system
MAC address for the gateway. If you enable the IP ARP Sender-MAC learning feature,
the switch also learns the virtual MAC address embedded in IP ARP packets for the
gateway IP address.
• To enable the IP ARP sender-MAC learning feature, use the command:
enable learning iparp sender-mac
• To view the configuration of this feature, use the command:
show iparp
• To disable this feature, use the command:
disable learning iparp sender-mac
The mirrored traffic is sent using a VLAN that is configured for this purpose. For more
information, see MLAG Limitations and Requirements on page 284.
Transit switches are the switches between the source switch where ports are mirrored
and the destination switch where the mirrored traffic exits the network to a network
analyzer or network storage device.
Because the mirrored traffic is an exact copy of the real traffic, a transit switch can learn
the MAC addresses and make incorrect forwarding decisions.
show fdb stats {{ports {all | port_list} | vlan {all} | {vlan} vlan_name
| vlan_list } {no-refresh}}
MAC-Based Security
MAC-based security allows you to control the way the FDB is learned and populated. By
managing entries in the FDB, you can block and control packet flows on a per-address
basis.
You can also prioritize or stop packet flows based on the source MAC address of the
ingress VLAN or the destination MAC address of the egress VLAN.
Note
For detailed information about MAC-based security, see Security on page 1082.
When MAC address learning is disabled on a port, the switch no longer stores the
source address information in the FDB. However, the switch can still examine the
source MAC address for incoming packets and either forward or drop the packets
based on this address. The source address examination serves as a preprocessor for
packets. Forwarded packets are forwarded to other processes, not to other ports. For
example, if the switch forwards a packet based on the source address, the packet can
still be dropped based on the destination address or the egress flooding configuration.
When MAC address learning is disabled, the two supported behaviors are labeled as
follows in the software:
• forward-packets
• drop-packets
The disable learning forward-packets option saves switch resources (FDB space),
however, it can consume network resources when egress flooding is enabled. When
egress flooding is disabled or the drop-packet option is specified, disabling learning
adds security by limiting access to only those devices listed in the FDB.
Note
When the forward-packet option is chosen,
• If unicast, multicast, and broadcast packet from a source address is not
present in the FDB , the packets is flooded.
• If the destination MAC is present in the forwarding database, the packet is
forwarded.
You can enhance security and privacy as well as improve network performance by
disabling Layer 2 egress flooding on a port, VLAN, or VMAN. This is particularly useful
when you are working on an edge device in the network. Limiting flooded egress
packets to selected interfaces is also known as upstream forwarding.
Note
Disabling egress flooding can affect many protocols, such as IP and ARP.
Figure 82 illustrates a case where you want to disable Layer 2 egress flooding on
specified ports to enhance security and network performance.
However, when you disable all egress flooding on ports 1 and 2, this sort of attack is
impossible, for the following reasons:
• Broadcast and multicast traffic from the clients is forwarded only to the uplink port.
• Any packet with unlearned destination MAC addresses is forwarded only to the
uplink port.
• One client cannot learn any information from the other client. Because egress
flooding is disabled on the access ports, the only packets forwarded to each access
port are those packets that are specifically targeted for one of the ports. There is no
traffic leakage.
In this way, the communication between client 1 and client 2 is controlled. If client 1
needs to communicate with client 2 and has that IP address, client 1 sends out an ARP
request to resolve the IP address for client 2.
◦ Disabling multicasting egress flooding does not affect those packets within an
IGMP membership group at all; those packets are still forwarded out.
◦ If IGMP snooping is disabled, multicast packets with static FDB entries are
forwarded according to the FDB entry.
Note
Blackhole is not supported on port-specific VLAN tags.
For example, the following ACL policy would also blackhole traffic destined to or
sourced from a specific MAC address:
entry blackhole_dest {
if {
ethernet-destination-address 00:00:00:00:00:01;
} then {
deny;
}
}
entry blackhole_source {
if {
ethernet-source-address 00:00:00:00:00:01;
} then {
deny;
}
}
When MAC address tracking is enabled for a port, this feature applies to all MAC
addresses on the port.
When an event occurs for a specified address or port, the software generates an
EMS message and can optionally send an SNMP trap. When MAC address tracking is
enabled for a specific MAC address, this feature updates internal event counters for the
address. You can use this feature with the Universal Port feature to configure the switch
in response to MAC address change events (for an example, see Universal Port on page
389).
Note
When a MAC address is configured in the tracking table, but detected on a
MAC tracking enabled port, the per MAC address statistical counters are not
updated.
The MAC address tracking feature is always enabled; however, you must configure MAC
addresses or ports before tracking begins. The default configuration contains no MAC
addresses in the MAC address tracking table and disables this feature on all ports.
Use the following commands to enable or disable SNMP traps for MAC address tracking
events:
VMs can be packaged as either OVAs (Open Virtual Appliance) or qcow2 or any QEMU-
compatible (including VMDK) disk images.
Requirements
IAH requires the following:
• Core or Premier license (for more information about licenses, see the Switch Engine
Licensing Guide)
• Solid State Storage Device SSD-120 (see SSD-120 Device on page 659).
SSD-120 Device
The SSD-120 device is a dedicated storage device, required for the Integrated
Application Hosting (IAH) feature, and provides support for virtual machines (VMs) on
ExtremeXOS-based switches, including:
• Storage of VM installation images (OVA and downloaded qcow2 or any QEMU-
compatible (including VMDK) disk images)
• VM configuration files (libvirt XML format)
• Disk images for installed VMs
• Libvirt configuration files
Folder Structure
The folder structure of SSD-120 is available at /usr/local/vm. The /usr/local/vm/
packages folder is for storing downloaded OVA, qcow2, and QEMU-compatible VM
installation files.
The normal connectivity between a guest VM and the network is by dedicated ports.
Any management operations (CLI commands, SNMP gets/sets, API calls, etc.) that can
be applied to a front-panel port can also be applied to a dedicated port. Only one guest
VM can be configured per dedicated port.
Note
If you do not have root access, you the following command to create
a copy of the disk image: virsh vol-download --pool default
disk_name.qcow2 my_copy.qcow2.
Note
The image size can be reduced substantially because of all
the adjacent zeroes: qemu-img convert -O qcow2 my_copy.qcow2
my_reduced_copy.qcow2.
Note
Compatibility issues might occur when using third-party OVA files. The
image format qcow2 is generally more reliable.
The default for number of CPUs allocated is 1. The default amount of RAM allocated
to a VM is 4,096 MB. You can change this with the create vm command as needed.
The VNC server only listens to the switch’s loopback IP address (127.0.0.1). You need
to forward TCP traffic from the server’s port on the switch to a port that the client
software is running on using an SSH (Secure Shell) tunnel. On the switch, VNC port
numbers range from 5,900 to 5,915.
6. To open a session to the VM's serial console, use the following command:
open vm vm_name {console}
Note
TPVM is configured to use a serial console.
Note
You cannot access the serial console before starting a VM. You must start
the VM, and then reboot it to gain serial console access.
The default bus type is VirtIO, but some operating systems are do not support this,
and as a consequence, the VM will fail to boot. You can configure the bus type to IDE
or SCSI.
9. Start the VM.
start vm vm_name
If needed to save disk space, after successful creation of the VM, you can delete the VM
package file at /usr/local/vm/packages.
For additional IAH commands, see Integrated Application Hosting (IAH) Commands on
page 663.
Creating VMs
create vm vm_name ova ova_file {memory memory_size} {cpus num_cpus}
{slot slot_ID} {vnc [none | vnc_display]}
Configuring VMs
configure vm vm_name {add | delete} ports portlist
Starting/Stopping/Suspending/Resuming VMs
start vm vm_name
suspend vm vm_name
resume vm vm_name
Deleting VMs
delete vm vm_name
Showing VM Information
show vm {vm_name | detail}
Clearing VM Storage
clear vm storage
Saving VMs
save vm vm_name state
Removing VMs
To remove all installed VMs, use the following command with the all option:
Note
VM installation files (OVA, qcow2, QEMU-compatible) are not removed with this
command.
Be aware that using this command generally resets the switch back to factory defaults,
which includes removing the configuration file, management IP address, failsafe
account, and SummitStack-specific parameters, and the rebooting the switch.
port, and break out ports using VLANs on the switch. The serial terminal function of
Switch Engine works with no extra configuration required.
Table 73: Services Offered by the IAH Compute Environment on Switch Engine
Switch Number Available Available Dedicate Manage Number Sideband
Models of CPUs RAM Storage d ment of BW
Manage Port BW Sideband Supporte
ment Ports d
Port
5720-24M 2 4GB 120GB Yes 1G 1 10G
XW
5720-48 2 4GB 120GB Yes 1G 1 10G
MXW
7520-48Y 8 16GB 120GB Yes 1G 1 10G
7520-48X 8 16GB 120GB Yes 1G 1 10G
T
7720-32C 8 16GB 120GB Yes 1G 2 10G
Note
Virtual Interface mapping is not visible to the Palo Alto Firewall virtual
machine. If all mapped interfaces are virtual, the VM will panic and go into
maintenance mode.
# show inside
5720-42MW # sh inside
VLAN Interface with name inside created by user
Admin State: Enabled Tagging: 802.1Q Tag 10
Description: None
Virtual router: VR-Default
IP Anycast: Disabled
IPv4 Forwarding: Disabled
IPv4 MC Forwarding: Disabled
Primary IP: 192.168.1.254/24
IPv6 Forwarding: Disabled
IPv6 MC Forwarding: Disabled
IPv6: None
STPD: None
Protocol: Match all unfiltered protocols
Loopback: Disabled
NetLogin: Disabled
QosProfile: None configured
Egress Rate Limit Designated Port: None configured
Flood Rate Limit QosProfile: None configured
Suppress ARP: Disabled
Suppress ND: Disabled
Proxy ARP: Entry required
Ports: 2. (Number of active ports=1)
Untag: 1,*57(Insight)
1. Transfer the firewall image to the switch by entering the directory of the images:
# cd /usr/local/vm/packages/
Note
If you are unable to change to this directory, you are likely missing a Core
license on your switch.
Adding these ports in sequence maps them in sequence as the VM boots. Palo
Alto takes the first port for management, then the second port as Ethernet 1/1, and
the third as Ethernet 1/2. The ports are configured on the switch to VLAN Mgmt
(10.10.10.x), VLAN inside (192.168.1.x), and VLAN outside (10.10.100.x). Each VLAN has
a DHCP server available for their respective subnets. If you want the VM to start
automatically every time the switch is booted, add this command:
Note
The Palo Alto firewall VM takes a moment to boot-up. It may be a few
minutes before the prompt appears on the CLI.
The firewall will report the IP address it retrieved in the CLI before logon: DHCP: new
IP 10.10.10.149 : mask 255.255.255.0
PA-VIM Login:
You can see this configuration using the command show vm pan. The mapped port
is 5901, but it is not directly accessible. To reach this port, it is necessary to map an
SSH tunnel on the client accessing the switch. On MacOS and Linux environments,
us the following command:
You are prompted for your password, and a successful logon to the switch also
creates an SSH tunnel to the VNC server. Use your favorite VNC client to open:
127.0.0.1:1.
11. Activate the firewall interface and assign VLANs for zones:
Configure according to Palo Alto instructions. The firewall interface is Eth1/1 and
Eth1/2. This example is configured with each in Layer 3 mode. The interfaces are
directed to request IP addressing from the switch DHCP server.
===========================================================================
IP MAC State Lease Time Left
===========================================================================
192.168.1.100 48:9b:d5:eb:1e:42 Assigned 0001:22:17
VLAN "outside":
DHCP Address Range : 10.10.100.100->10.10.100.110
Netlogin Lease Timer : Not configured (Default = 10 seconds)
DHCP Lease Timer : Not configured (Default = 7200 seconds)
Ports DHCP Enabled : 58
===========================================================================
IP MAC State Lease Time Left
===========================================================================
10.10.100.100 48:9b:d5:eb:1e:43 Assigned 0001:22:17
13. Continue configuring the firewall. For more information, see the Palo Alto Networks
documentation.
The 5720 series is configured for two firewall interfaces mapped to non-trunked
ports on the switch in Layer 3 mode for a total of two zones: inside and outside.
DHCP was used to assign IP addresses. You can chose instead to use tagged VLANs
on the switch ports 57 and 58 to present more switch VLANs to the firewall by
sub-interfaces or VLANs. Using two sideband ports provides a theoretical bandwidth
of 20Gb/s in and 20Gb/s out for firewall inspection.
14. Configure the interfaces to allow PING and other services, so that bi-directional
communication can be verified.
Network > Network Profiles > Interface Management.
15. PING your interfaces and populate the IPARP and FDB tables on the switch.
16. Check the interface mapping against the switch MAC addresses. From the VM side,
use the command:
admin@PA-VM> debug show vm-series interfaces all
As each interface is mapped, activated, and used on the VM, they appear the IP
ARP table and the switch forwarding database. Port management is shared with the
front panel Management port and limited to 1 Gb/s. Ports 57 and 58 are connected
directly to the forwarding plane on an X465. (A X695 has only one port connected
to the forwarding plane and requires VLANs to instantiate multiple interfaces. Check
the hardware guide for your switch for the number and port designations of the
forwarding plane ports.)
ExtremeSwitching X695 series switches provide greater CPU and memory capacity, but
have only one sideband port: port 63. This is a 10Gb/s port. The configuration of the
firewall on the X695 requires the use of sub-interfaces or VLANs on the firewall to gain
more than one firewall traffic port. The configuration is as above, but the two ports
(Mgmt and port 63) are mapped. Mgmt provides the web UI and port 63 maps to
Ethernet 1/1.
When using a ExtremeSwitching X695 switch for the above procedure, the following
applies.
# sh vm PAN
VM Name: PAN
State: Running
Memory size: 8192 MB
CPUs: 2
Auto-start: Disabled
VNC: 127.0.0.1:1 (Port 5901)
Disk: vda
Source: /mnt/vmdisk/.vm/PAN_PA-VM-KVM-9.1.2.qcow2
Disk bus type: virtio
Allocated size in bytes: 64424509440 (60.00 GB)
Physical size in bytes: 5405478912 (5.03 GB)
Read requests: 48213
Bytes read: 1188752896
Write requests: 17699
Bytes written: 1011475968
Network interfaces:
Attached switch ports: mgmt,63
CPU utilization:
User: 0.16%
System: 62.53%
Memory utilization:
Used: 0.67 GB
Available: 7.33 GB
# sh ports 63 vlan
Untagged
Port /Tagged VLAN Name(s)
-------- -------- ------------------------------------------------------------
They are mapped directly to interface Ethernet 1/1 (Default VLAN on 63), sub-interface
Ethernet 1/1.10 (VLAN 10, v1), sub-interface Ethernet 1/1.20 (VLAN 20, v2).
Figure 85: Palo Alto Firewall Interface Management Profile Window for X695
The total availability of bandwidth for this VM is one 10Gb/s port: 10Gb/s in, 10Gb/s out.
This chapter provides information about Extreme Network's Data Center Solutions. It
provides an overview of data centers and provides information about how to configure
and manage data center features, including DCBX, Extreme Network Virtualization
(XNV), VM Tracking, and Direct Attach to support VEPA.
Note
For additional information on using ExtremeXOS features to implement
Data Center Bridging, see the application note titled Enhanced Transmission
Selection (ETS) Deployment and Configuration for ExtremeXOS on the Extreme
Networks website.
The ExtremeXOS software supports two versions of DCBX standards. The first version is
a pre-standard version known as the baseline version, or more specifically as Baseline
Version 1.01. The DCBX baseline version is specified in DCB Capability Exchange
Protocol Base Specification Rev 1.01 and was developed outside of the IEEE and later
submitted to the IEEE for standardization. The IEEE agreed to standardize DCBX as part
of IEEE 802.1Qaz Enhanced Transmission Selection for Bandwidth Sharing Between
Traffic Classes. While IEEE 802.1Qaz has progressed through the standards process,
many companies have released support for the baseline version.
After you enable DCBX, the protocol collects most of the information to be advertised
from other switch services such as QoS and PFC. The only DCBX feature that needs
configuration is the application priority feature.
DCBX uses the LLDP (Link Layer Discovery Protocol) (IEEE 802.1AB) to exchange
attributes between two link peers. DCBX attributes are packaged into organizationally
specific TLVs, which are different for the Baseline and IEEE 802.1Qaz versions.
Information on the TLV support differences is provided in the ExtremeXOS Command
Reference under the command description for the command: show lldp {port [all
| port_list]} dcbx {ieee|baseline} {detailed}
When you configure a custom application, you define a priority number that applies
to traffic related to that application. DCBX advertises this priority to end stations in
an application TLV. End stations that support this feature use the priority number for
communications with the switch. The priority number maps to an 802.1p value, which
determines which QoS profile in the switch manages the application traffic.
The rest of this section provides general guidelines for configuring the ExtremeXOS
PFC feature for DCB operation. After you configure PFC, DCBX advertises the PFC
compatible configuration to DCBX peers on all DCBX enabled ports.
• PFC configuration is controlled per-port using the following command:
enable flow-control [tx-pause {priority priority} | rx-pause
{qosprofile qosprofile}] ports [all | port_list]
The rx-pause option is configured on the QoS profile.
The PFC priority to which a QoS profile responds is fixed and is determined by the
QoS profile number such that qpN responds to a PFC frame for priority N-1.
For example, the following command enables PFC priority 4 for qp5 on ports 1-24:
enable flow-control rx-pause qosprofile qp5 ports 1-24
After the above command is entered, if a PFC frame is received indicating that
priority 4 should be paused, then qp5 will be paused. Note that qp5 is paused
regardless of whether the packets mapped to qp5 have priority 4 or other priorities.
For example, if we enter the command configure dot1p type 3 qosprofile qp5, priority
3 packets are queued in qp5, and a PFC pause frame for priority 4 pauses priority
3 frames, which might not be desired. For this reason, you should be careful about
mapping multiple priorities to the same QoS profile when PFC is enabled for that
profile.
The tx-pause option is configured on the priority itself. For example, the following
command enables the transmittal of PFC Pause frames for priority 4 when frames with
priority 4 are congested:
enable flow-control tx-pause priority 4 ports 1-24
The tx-pause configuration determines what is advertised in the DCBX PFC TLV. In
order for PFC to work correctly, it is important to ensure that all switches in the DCB
network are receiving and transmitting PFC consistently for each priority on all ports.
In summary, the following three commands ensure that PFC is enabled for priority 4
traffic on ports 1-24:
configure dot1p type 4 qosprofile qp5
enable flow-control rx-pause qosprofile qp5 ports 1-24
enable flow-control tx-pause priority 4 ports 1-24
For more information on PFC, see IEEE 802.1Qbb Priority Flow Control on page 224.
To support VM mobility, the XNV feature requires that each VM use unique, static MAC
and IP addresses. Switch port operation for a VM can be configured with a policy file or
an ACL (Access Control List).
VM Port Configuration
An important part of the XNV feature is the ability to configure a switch port to
support a particular VM. A Virtual Port Profile (VPP) identifies a policy file or ACL rule to
associate with a VM entry in the authentication database. You can define both ingress
and egress policies in VPPs to configure a port separately for each direction. When the
VPP is configured for a VM entry and the VM is detected on a port, any associated
policy or rule is applied to the port in the specified direction.
The XNV feature supports two types of VPPs, Network VPPs (NVPPs) and Local VPPs
(LVPPs).
NVPPs are stored on an FTP server called a repository server. The XNV feature supports
file synchronization between XNV-enabled switches and the repository server. One of
the advantages of the repository server is centralized storage for NVPPs.
LVPPs must be configured on each switch. LVPPs are a good choice for simple network
topologies, but NVPPs offer easier network management for more complex network
topologies.
VM Authentication Process
The XNV feature supports three methods of authentication:
• NMS server authentication.
• Network authentication using a downloaded authentication database stored in the
VMMAP file.
• Local authentication using a local database created with ExtremeXOS CLI
commands.
The default VM authentication configuration uses all three methods in the following
sequence: NMS server (first choice), network based VMMAP file (second choice),
and finally, local database. If a service is not available, the switch tries the next
authentication service in the sequence.
The Access-Accept packet from the NMS server can include the following Vendor
Specific Attributes (VSAs):
• VM name
• VM IP address
• VPP configured for the VM
Local Authentication
Authentication Failure
If all configured authentication methods fail, EMS messages are logged and no VPP is
applied.
Each VM MAC must be unique. If duplicate MAC addresses are detected on the switch,
whether on the same VLAN (Virtual LAN) or different VLANs, the switch supports only
the last MAC detected.
File Synchronization
The XNV feature supports file synchronization between XNV-enabled switches and
the repository server. The files stored on the repository server include the .map, .vpp,
and .pol files. One of the advantages of the repository server is that multiple XNV-
enabled switches can use the repository server to collect the network VM configuration
files. The XNV feature provides for access to a secondary repository server if the primary
repository server is unavailable.
Through file synchronization, the network files are periodically downloaded to the
XNV-enabled switches, which allows these switches to continue to support VM
authentication when the NMS server is unavailable.
For instructions on managing the XNV feature using the switch CLI, see Managing the
XNV Feature, VM Tracking on page 681.
The ExtremeXOS direct attach feature works with VEPA software on a VM server to
intelligently forward unicast, flood, and broadcast traffic. Without direct attach, frames
are never forwarded back out the same port on which they arrive. With direct attach,
frames can be forwarded back out the ingress port, and VEPA software on the VM
server ensures that the frames are forwarded appropriately.
For instructions on managing the Direct Attach feature, see Managing Direct Attach to
Support VEPA on page 701.
Use the following commands to enable LLDP and the DCBX feature on switch ports:
Use the following commands to add or delete DCBX application priority instances:
Limitations
The following limitations apply to this release of the VM tracking feature:
• When VM tracking is configured on a port, all existing learned MAC addresses are
flushed. MAC addresses will be relearned by the switch and the appropriate VPP (if
any) for each VM will be applied.
• If a VM changes MAC addresses while moving between ports on a switch, the VM
remains authenticated on the original port until the original MAC address ages out
of the FDB.
• VM counters are cleared when a VM moves between ports on the same switch
(because the ACLs are deleted and recreated).
• Each VPP entry supports a maximum of eight ingress and four egress ACL or
policies.
• For Network VPP, only policy files can be mapped. For Local VPP, either ACL or policy
files can be mapped. You cannot map a mixture of both ACL and policy files to a
particular VPP.
Note
When the VM tracking feature is disabled, file synchronization with the
repository server stops.
• Issue the following command to view the VM tracking feature configuration and the
list of authenticated VMs:
show vm-tracking
The default VM authentication configuration uses all three methods in the following
sequence: NMS server (first choice), network based VMMAP file (second choice),
and finally, local database. If a service is not available, the switch tries the next
authentication service in the sequence.
To configure one or more authentication methods and a preferred sequence, use the
following command:
configure vm-tracking authentication database-order [[nms] | [vm-map] |
[local] | [nms local] | [local nms] | [nms vm-map] | [vm‑maplocal] |
[local vm-map] | [nms vm-map local] | [localnmsvm-map]]
When a VLAN's MAC is detected on a port, XNV consults the configuration database to
determine the VLAN configuration for the VM. For a case where the VM sends tagged
traffic, the VLAN tag of the received frame is used to determine VLAN classification for
the VM's traffic. If VLAN configuration exists for the VM and it conflicts with the actual
tag present in received traffic, XNV reports an EMS message and does not trigger
VLAN creation or port addition. However, if no configuration is present for the VM, XNV
assumes that there are no restrictions for classifying traffic for the VM to the received
VLAN.
For untagged traffic, XNV can determine the VLAN for the VM from any one of the three
possible sources:
• VLAN configuration for the VM MAC entry.
• VLAN configuration for the VPP associated with the VM's MAC. The VPP can either
be a network VPP or a local VPP.
• In case of untagged traffic from the VM, the "default" VLAN for the port that is
specified as part of the dynamic VLAN enable configuration.
This list determines the order of precedence for VLAN classification for untagged traffic
only. For tagged VLAN traffic, XNV validates the tag of the received traffic with then
VLAN tag configuration for that VM.
In addition to the VLAN tag, you can specify the VR to which the dynamically created
VLAN needs to be associated. The VR configuration is relevant only if a VLAN tag is
configured for the VM.
When you disable dynamic VLAN on a port, XNV does the following:
• Triggers deletion of MAC-based entries on that port in the hardware.
• If the port has been added to any VLAN by XNV, XNV triggers a flush for those VLANs.
• If the port has been added to an VLAN by XNV, XNV requests VLAN manager to
remove the port from the VLAN.
Note
It is up to the VLAN manager to decide if the port actually needs to be
removed from the VLAN.
On deleting the ports from base/default VLAN the below warning message will be
thrown and XNV Dynamic vlan gets disabled on that port:
Warning: Removing the untagged VLAN from a port may disrupt network connectivity. IDM and
VMT may not be functional on the port without an untagged VLAN.
Note
This behavior is in effect from ExtremeXOS 16.1.
Example
create vlan v1
con v1 add ports 1untagged
enable vm-tracking
enable vm-tracking ports 1
enable vm-tracking dynamic-vlan ports 1
con vlan v1 delete ports 1
Warning: Removing the untagged VLAN from a port may disrupt network connectivity. IDM
and VMT may not be functional on the port without an untagged VLAN.
show vm-tracking
----------------------------------------------------------
VM Tracking Global Configuration
-----------------------------------------------------------
VM Tracking : Enabled
VM Tracking authentication order: nms vm-map local
VM Tracking nms reauth period : 0 (Re-authentication disabled)
VM Tracking blackhole policy : none
-----------------------------------------------------------
Port : 1
VM Tracking : Enabled
VM Tracking Dynamic VLAN : Disabled
When XNV is disabled on a port, the XNV dynamic VLAN feature is also disabled. The
XNV dynamic VLAN configuration is not persistent, and needs to be re-enabled after
XNV is re-enabled on that port.
Once the ingress counter installation option is selected for a specific local or network
VPP and the virtual machine which has this VPP mapping is detected on the switch,
the counter is installed with the name "xnv_ing_dyn_cnt_vmxxxxxxxxxxxx" for the port
on which the VM MAC is detected. In this case, xxxxxxxxxxxx denotes the virtual
machine MAC for which the counter is installed. In the same way, the egress counter is
installed using the name "xnv_egr_dyn_cnt_vmxxxxxxxxxxxx" for that port.
You can view a list of packet/byte counts for this counter name using the command
show access dynamic-counter. The counter is uninstalled only when the virtual
machine MAC is deleted on the switch or the VPP is mapped to a virtual machine
MAC which has the counter option set to none. If the VM MAC move happens then the
counter installed on the previous port is uninstalled and the counter is installed on the
new port. The counter values are not maintained during the MAC move.
By default, the XNV feature tries to access the FTP server with anonymous login and
fetch the files from the pub directory within the FTP server root directory.
To configure a different directory for repository server files, use the following command:
You can create the MANIFEST file with a text editor. The MANIFEST file must be placed
on the repository server as described in Selecting the Repository Server Directory on
page 686.
Because the definition for each file in the MANIFEST includes a date and time, you
must update the MANIFEST file every time you update the VMMAP file or a policy file.
The file extensions for the files in the MANIFEST file identify the supported file types:
• .map—VMMAP files
• .vpp—VPP files
• .pol—Policy files
<VMLIST>
<VM>
<MAC>00:00:00:00:00:21</MAC>
<NAME>network_vm1</NAME>
<IPV4>10.10.10.10</IPV4>
<VPP>nvpp1</VPP>
</VM>
<VM>
<MAC>00:00:00:00:00:22</MAC>
<NAME>network_vm2</NAME>
<IPV4>20.20.20.20</IPV4>
<VPP>nvpp2</VPP>
</VM>
</VMLIST>
For information on where to place the VMMAP file, see Selecting the Repository Server
Directory on page 686.
<vppList>
<vpp>
<name>nvpp1</name>
<last-updated>2002-05-30T09:00:00</last-updated>
<policy>
<name>policy1</name>
<direction>ingress</direction>
<order>1</order>
</policy>
<policy>
<name>policy4</name>
<direction>ingress</direction>
<order>4</order>
</policy>
<policy>
<name>epolicy1</name>
<direction>egress</direction>
<order>1</order>
</policy>
<policy>
<name>epolicy4</name>
<direction>egress</direction>
<order>4</order>
</policy>
</vpp>
</vppList>
The VPP file supports up to 400 child nodes, and each VPP entry supports up to eight
ingress and four egress ACL or policies. If multiple policies are defined within a VPP
entry for either ingress or egress, the switch uses the policy with the lowest order
number. If two ingress or egress policies have the same order number, the switch
selects the policy based on which name is lexicographically lower.
To refresh all policies which are all associated and applied to each VPP, use the
following command:
refresh policy policy-name
The NVPP policy files must be placed on the repository server as described in Selecting
the Repository Server Directory on page 686.
To display the policy file or ACL associated with one or all VPPs, use the following
command:
show vm-tracking vpp {vpp_name}
• To remove the configuration for one or both repository servers, use the following
command:
unconfigure vm-tracking repository {primary | secondary}
• To display the repository server configuration and status, use the following
command:
show vm-tracking repository {primary | secondary}
You can display NMS authenticated VMs as described in Displaying NMS Authenticated
VMs on page 690.
Example: MyVM1
• VSA ID: 214 (EXTREME_VM_VPP_NAME)
Example: nvpp1
• VSA ID: 215 (EXTREME_VM_IP_ADDR)
Example: 11.1.1.254
To display the VMs and corresponding policies in the network authentication database,
use the following command:
show vm-tracking network-vm
For instructions on creating policy files, see Policy Manager on page 774. For
instructions on creating dynamic ACLs, see ACLs on page 779.
• To create and configure entries in the LVPP database, use the following commands:
create vm-tracking vpp vpp_name
configure vm-tracking vpp vpp_name add [ingress | egress] [policy
policy_name | dynamic-rule rule_name] {policy-order policy_order}
• To delete or unconfigure entries in the local VPP database, use the following
commands:
delete vm-tracking vpp {vpp_name}
unconfigure vm-tracking vpp vpp_name
• To display the policy file or ACL associated with one or more VPPs , use the following
command:
show vm-tracking vpp {vpp_name}
Note
Ingress ACLs or policies apply to traffic flowing from the VM, into the switch
port, and then to the client. Egress ACLs apply to traffic flowing from the client,
out the switch port, and to the VM.
Note
For NMS server and network authentication, the NMS server and repository
server must be accessible to all XNV-enabled switches through VR-Mgmt.
Each physical VMWare server should be configured with two VMs. Use the V-Center
client to trigger Vmotion.
<VMLIST>
<VM>
<MAC>00:04:96:27:C8:23</MAC>
<NAME>vm_1</NAME>
<IPV4>11.1.1.101</IPV4>
<VPP>nvpp1</VPP>
<CTag>1000</CTag>
<VRName>Vr-Default</VRName>
</VM>
<VM>
<MAC>00:04:96:27:C8:24</MAC>
<NAME>vm_2</NAME>
<IPV4>11.1.1.102</IPV4>
<VPP>nvpp2</VPP>
</VM>
</VMLIST>
<vppList>
<vpp>
<name>nvpp1</name>
<last-updated>2011-05-30T09:00:00</last-updated>
<policy>
<name>nvpp1.pol</name>
<direction>ingress</direction>
<order>1</order>
</policy>
<policy>
<name>nevpp1.pol</name>
<direction>egress</direction>
<order>1</order>
<CTag>1000</CTag>
<VRName>Vr-Default</VRName>
</policy>
</vpp>
<vpp>
<name>nvpp2</name>
<last-updated>2011-05-30T09:00:00</last-updated>
<policy>
<name>nvpp2.pol</name>
<direction>ingress</direction>
<order>1</order>
</policy>
<policy>
<name>nevpp2.pol</name>
<direction>egress</direction>
<order>1</order>
</policy>
</vpp>
</vppList>
entry nvpp1 {
if match all {
ethernet-destination-address 00:04:96:00:00:00 / ff:ff:ff:00:00:00 ;
} then {
deny ;
count host1
} }
entry nvpp2 {
if match all {
ethernet-destination-address 00:04:97:00:00:00 / ff:ff:ff:00:00:00 ;
} then {
deny ;
count host2
} }
entry nevpp1 {
if match all {
ethernet-source-address 00:04:96:00:00:00 / ff:ff:ff:00:00:00 ;
} then {
deny ;
count h1
} }
entry nevpp2 {
if match all {
ethernet-source-address 00:04:97:00:00:00 / ff:ff:ff:00:00:00 ;
} then {
deny ;
count h2
} }
entry etherType1 {
if {
ethernet-source-address 00:a1:f1:00:00:01;
}
then {
permit;
count etherType1;
}
}
entry denyall {
if {
source-address 10.21.1.1/32;
}
then {
deny;
}
}
entry allowall {
if {
source-address 11.1.1.1/32;
source-address 12.1.0.0/16;
}
then {
allow;
}
}
entry destIp {
if {
destination-address 192.20.1.0/24;
protocol UDP;
}
then {
deny;
count destIp;
}
}
entry denyAll {
if {
}
then {
deny;
count denyAll;
}
}
The following is the policy1.pol file for Port 21 in the ingress direction:
entry nvpp1 {
if match all {
ethernet-destination-address 00:04:96:00:00:00 / ff:ff:ff:00:00:00 ;
} then {
deny ;
count host1
} }
The following is the policy2.pol file for Port 21 in the egress direction:
entry nevpp1 {
if match all {
ethernet-source-address 00:04:96:00:00:00 / ff:ff:ff:00:00:00 ;
} then {
deny ;
count h1
} }
The following commands used to create VM-mac with vlan-tag, and Vr for Dynamic
vlan creation:
create vm-tracking local-vm mac-address 00:00:00:00:00:01
configure vm-tracking local-vm mac-address 00:00:00:00:00:01 vpp lvpp1
configure vm-tracking local-vm mac-address 00:00:00:00:00:01 vlan-tag 1000 vr VR-Default
configure vm-tracking vpp lvpp1 vlan-tag 2000
The following commands display the switch XNV feature status after configuration:
Port : 19
VM Tracking : Enabled
VM Tracking Dynamic VLAN : Enabled
Flags
MAC APC IP Address Type Value
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
Flags :
(A)uthenticated : L - Local, N - NMS, V - VMMAP
(P)olicy Applied : B - All Ingress and Egress, E - All Egress, I - All Ingress
(C)ounter Installed : B - Both Ingress and Egress, E - Egress Only, I - Ingress Only
Type :
IEP - Ingress Error Policies
EEP - Egress Error Policies
After the repository server is configured (see Repository Server Setup on page 693), the
following commands can be used to display the switch XNV feature status:
Example: MyVM1
◦ VSA ID: 214 (EXTREME_VM_VPP_NAME)
Example: nvpp1
◦ VSA ID: 215 (EXTREME_VM_IP_ADDR)
Example: 11.1.1.254
Note
For the Dynamic VLAN feature, the following VSAs are used:
EXTREME_VM_VLAN_ID with VSA ID as 216
EXTREME_VM_VR_NAME with VSA ID as 217
After the repository server is configured (see Repository Server Setup on page 693), the
following commands can be used to display the switch XNV feature status:
* Switch.33 # show vm-tracking nms server
VM Tracking NMS : enabled
VM Tracking NMS server connect time out: 3 seconds
Primary VM Tracking NMS server:
Server name :
IP address : 10.127.5.221
Server IP Port: 1812
Client address: 10.127.8.12 (VR-Mgmt)
Shared secret : qijxou
Access Requests : 7 Access Accepts : 2
Access Rejects : 5 Access Challenges : 0
Access Retransmits: 0 Client timeouts : 0
Bad authenticators: 0 Unknown types : 0
Round Trip Time : 0
* Switch.32 # show vm-tracking
-----------------------------------------------------------
VM Tracking Global Configuration
-----------------------------------------------------------
VM Tracking : Enabled
VM Tracking authentication order: nms
VM Tracking nms reauth period : 0 (Re-authentication disabled)
Note
When the Direct Attach feature is configured on a port, the port number
cannot be included in the port list for a static FDB entry. For example, the
Direct-Attach enabled port can be the only port number specified in a static
FDB entry, but it cannot be included in a port-list range for a static FDB
entry.
This chapter provides information about Audio Video Bridging support. It specifically
discusses the AVB Feature Pack License, as well as how to configure and manage the
AVB feature.
Overview
Audio Video Bridging (AVB) supports the deployment of professional quality audio
and/or video (AV) over standard Ethernet while coexisting with other "legacy" (or
non-AV) Ethernet traffic. This supports "Network Convergence," or using one simple
standard Ethernet network for all communication needs.
The time synchronization and QoS requirements for AVB systems are defined in the
following set of IEEE Standards:
• IEEE 802.1AS: Timing and Synchronization for Time-Sensitive Applications in Bridged
Local Area Networks (gPTP)
• IEEE 802.1Q
◦ Clause 10: Multiple Registration Protocol (MRP) and Multiple MAC Registration
Protocol (MMRP)
◦ Clause 11: VLAN (Virtual LAN) Topology Management (MVRP)
For more information about the AVB Feature Pack, supported platforms, and licensing,
see the Switch Engine Licensing Guide.
Note
AVB is not supported on SummitStacks.
Note
AVB is not supported when MACsec is enabled.
# enable avb
The show avb command displays high level information about each of the three
main protocols (gPTP, MSRP, and MVRP). Each protocol section indicates that all three
protocols are enabled both globally, and on ports 1,2 and 11-21. The “*” indicates that we
have link on each of the ports.
The gPTP status indicates that port 1 is a slave port, which means that the Grand Master
Clock (GMC) is reachable through port 1. The gPTP status also indicates that the rest of
the ports are master ports. Furthermore, the fact that no ports are shown to be in the
Disabled role means that gPTP is operational on all the ports.
ExtremeXOS provides static AVB configuration with the exception of of Best Master
Clock Algorithm (BMCA), which runs as part of gPTP. The BMCA feature adds the ability
to disable BMCA and to specify a slave port if desired. When BMCA functionality is on,
BMCA is executed normally as described in IEEE 802.1AS. When BMCA is off, BMCA is
not executed. In disabled mode, a port can be configured to be the slave-port. If no
ports are configured to be slave-port, then the switch will become the Grandmaster
Clock and all network-gptp enabled ports will be master ports. The show network-gptp
command displays whether BMCA is on or off.
The "ab" on the MSRP status indicates that all ports are members of both the class A
and class B domain domains. The MVRP status simply shows which ports are enabled
and active.
The user interface for AVB includes the following five protocols:
• gPTP
• MRP
• MVRP
• MSRP
• FQTSS
The "avb" commands shown above are part of a set of AVB macro commands provided
to simplify the process of enabling and disabling AVB. The AVB macro commands have
the form:
Using one of the macro commands is the same as executing the following three
commands:
MRP does not need to be enabled or disabled, and the only MRP properties that may
be configured are timer values. The defaults should be sufficient for most deployments,
though it may be necessary to increase the leave-all and leave time values when
supporting a large number of streams.
MVRP data structure is based on port Instance. All dynamic VLANs created or
propagated for a given port will be stored for each port Instance. For normal ports,
the port Instance will correspond to the PIF port instance, and for LAG ports, the port
Instance will correspond to the LIF port Instance. The port instance is not shown in
any of the standard CLI show commands, though it is available as a part of the debug
commands. Once MVRP is enabled on the master port, addition / deletion of individual
links is supported. MVRP packets received on the newly added link will be accounted
instantaneously.
The FQTSS settings are managed by MSRP, and may not be configured directly.
The disable commands disable the AVB protocols globally or per port without
changing any other configured settings, while the unconfigure commands reset all
AVB settings to the initial states, and release all switch resources that were allocated
when the protocols were enabled.
More detailed configuration options are provided on a per-protocol basis using the
corresponding configure commands:
configure network-clock gptp
configure mvrp
configure msrp
configure mrp
There are two modes of how a LAG runs with MRP/MSRP. The two MRP/MSRP LAG
modes are single-port and cumulative. The concept of effective bandwidth is used
below to simulate the available bandwidth of a physical port (port speed). As in the case
of the physical port, a configurable percentage, deltaBandwidth, which by default is
75%, of the effective bandwidth is the final bandwidth available for MSRP streams.
In single-port mode, the LAG is simply a way to provide redundancy. Therefore the
effective bandwidth is set to the minimum bandwidth of all member ports.
All LAG member ports on ExtremeXOS must have the same speed to aggregate.
Therefore, the minimum bandwidth is equivalent to the bandwidth of any member
port.
In cumulative mode, the LAG trades redundancy for extra bandwidth. To calculate the
available bandwidth, all bandwidth of one active member and partial bandwidth of
other member ports are used to calculate the effective bandwidth.
effective bw = min (bw of all active member ports) + beta * sum (bw of
all other active member ports)
For example, if the LAG has three 1GB member ports, and deltaBandwidth = 75%, then
in the single-port mode, the effective bandwidth is 1GB, of which 75%, that is 0.75GB is
reservable for MSRP, exactly the same as in the case of a physical port.
For the same LAG in the cumulative mode, if beta = 50%, then 100% of one member
port and 50% bandwidth of other two member ports contributes to the effective
bandwidth, therefore:
effective bw = 1GB (one active member port) + 50% * 1GB (the next active
member port) + 50% * 1GB (the last active member port) = 2GB
When a LAG runs in the cumulative mode, the streams are roughly evenly distributed
on all member links. Even though beta percent bandwidth of the other member
ports contributes to the effective bandwidth, it does not mean that reservation on
that member port is limited to beta percent of its bandwidth. That is just the way
to calculate an estimate of how much bandwidth can be provided with a LAG,
with a balanced redundancy requirement. All member ports are treated equally and
programmed in the same way.
As in the case of physical ports, if the (total requested BW) <= deltaBandwidth *
(effective BW), then assume the LAG is able to handle all streams safely and provide
a comfortable level of redundancy if the streams are reasonably evenly distributed.
In extremely polarized cases, where many streams are hashed to a certain member
link, packet drop is inevitable. When (total requested BW) > deltaBandwidth *
(effective BW), then the LAG is not able to safely handle all streams, even though it
may still be able to. At this time new reservation requests are declined.
The effective bandwidth is an aggregate of multiple physical ports and can exceed the
bandwidth of any single physical port. The QoS profile is configured on a physical port,
so if the reservation bandwidth request is less than the delta bandwidth of the physical
port, the QoS profile will be configured to the requested bandwidth. To prevent the
QoS profile configuration from exceeding the physical port bandwidth, the QoS profile
configuration is limited to delta bandwidth of the physical port (which is typically 75%
of the port bandwidth).
Multiple VLAN Registration Protocol (MVRP) is supported over (for more information,
see Multiple VLAN Registration Protocol (MVRP) over Multi-switch Link Aggregation
(MLAG) on page 275).
In the CLI display, all member ports with gPTP enabled, regardless port operational
status, are listed, but noted as a LAG member port. The LAG itself is not displayed
because it does not participate the protocol.
gPTP
Detailed information about gPTP can be displayed using the following set of
commands:
show network-clock gptp ...
For example, the show network-clock gptp ports command can be used to view
the gPTP properties of a given port, and is useful for debugging when the show avb
command shows that the port is not operational for gPTP.
# show network-clock gptp ports 1
Physical port number : 1
gPTP port status : Enabled
Clock Identity : 00:04:96:ff:fe:51:ba:ea
gPTP Port Number : 1
IEEE 802.1AS Capable : Yes
Port Role : 9 (Slave)
Announce Initial Interval : 0 (1.000 secs)
Announce Current Interval : 0 (1.000 secs)
Announce Receipt Timeout : 3
Sync Initial Interval : -3 (0.125 secs)
Sync Current Interval : -3 (0.125 secs)
Sync Receipt Timeout : 3
Sync Receipt Timeout Interval : 375000000 ns
Measuring Propagation Delay : Yes
Propagation Delay : 623 ns
Propagation Delay Threshold : 3800 ns (auto)
Propagation Delay Asymmetry : 0
Peer Delay Initial Interval : 0 (1.000 secs)
Peer Delay Current Interval : 0 (1.000 secs)
Peer Delay Allowed Lost Responses : 3
Neighbor Rate Ratio : 1.000020
PTP Version : 2
MSRP
Detailed information about MSRP can be displayed using the following set of
commands:
show msrp ...
The show msrp command displays the summary information included in the show
avb command, but also displays the total number of streams and reservations on the
switch.
# show msrp
MSRP Status : Enabled
MSRP Max Latency Frame Size : 1522
MSRP Max Fan-in Ports : No limit
MSRP Enabled Ports : *1ab *2ab *10ab *11ab 12
13 14 15 16 17
18 19 20 21
Total MSRP streams : 2
Total MSRP reservations : 6
Flags: (*) Active, (!) Administratively disabled,
(a) SR Class A allowed, (b) SR Class B allowed
The show msrp streams command displays all of the streams that the switch is aware
of.
# show msrp streams
Stream Id Destination Port Dec Vid Cls/Rn BW
---------------------- ----------------- ---- ---- ---- ------ ---------
00:50:c2:4e:db:02:00:00 91:e0:f0:00:ce:00 1 Adv 2 A/1 6.336 Mb
00:50:c2:4e:db:06:00:00 91:e0:f0:00:0e:82 2 Adv 2 A/1 6.336 Mb
Total Streams: 2
-------------------------------------------------------------------------------
BW : Bandwidth, Cls : Traffic Class,
Dec : Prop. Declaration Types, Rn : Rank
The show msrp listeners command displays all of the listeners the switch is aware of.
If the declaration type is either Ready or RdyFail, a reservation has been made, and the
Stream Age will show the length of time this reservation has been active.
# show msrp listeners
Stream Id Port Dec Dir State Stream Age
Applicant States:
AA : Anxious active, AN : Anxious new,
AO : Anxious observer, AP : Anxious passive,
LA : Leaving active, LO : Leaving observer,
QA : Quiet active, QO : Quiet observer,
QP : Quiet passive, VN : Very anxious new,
VO : Very anxious observer, VP : Very anxious passive
Registrar States:
IN : In - Registered, LV : Leaving - Timing out
MT : Empty - Not Registered
The show msrp streams propagation command is useful for debugging the
propagation of Talkers and Listeners for each stream.
# show msrp streams propagation stream-id 00:50:c2:4e:db:02:00:00
Stream Id Destination Port Dec Vid Cls/Rn BW
----------------------- ----------------- ---- ---- ---- ------ ---------
00:50:c2:4e:db:02:00:00 91:e0:f0:00:ce:00 1 Adv 2 A/1 6.336 Mb
Talker Propagation:
Ingress Ingress Propagated Propagated Egress
DecType Port DecType Ports DecType
------- ------- ---------- ---------- -------
Adv --> 1 --> Adv --> 2 -->
Adv
10 --> Adv
11 --> Adv
Listener Propagation:
Egress Egress Propagated Listener Ingress
DecType Port DecType Ports DecType
------- ------- ---------- ---------- -------
Ready <-- 1 <-- Ready <-- 2 <-- Ready
MVRP
Other than the MVRP summary information displayed in the show avb command,
information about dynamically created VLANs is shown using the "vlan" commands as
follows.
Active
router
/Total
------------------------------------------------------------------------------------------
---
Default 1 --------------------------------T--------------- ANY 4 /33 VR-
Default
Mgmt 4095 ------------------------------------------------ ANY 1 /1 VR-
Mgmt
SYS_VLAN_0002 2 --------------------------------T------d-------- ANY 4 /4 VR-
Default
------------------------------------------------------------------------------------------
---
Flags : (B) BFD Enabled, (c) 802.1ad customer VLAN, (C) EAPS Control VLAN,
(d) Dynamically created VLAN, (D) VLAN Admin Disabled,
(e) CES Configured, (E) ESRP Enabled, (f) IP Forwarding Enabled,
(F) Learning Disabled, (i) ISIS Enabled,
(I) Inter-Switch Connection VLAN for MLAG, (k) PTP Configured,
(l) MPLS Enabled, (L) Loopback Enabled, (m) IPmc Forwarding Enabled,
(M) Translation Member VLAN or Subscriber VLAN, (n) IP Multinetting Enabled,
(N) Network Login VLAN, (o) OSPF Enabled, (O) Virtual Network Overlay,
(p) PIM Enabled, (P) EAPS protected VLAN, (r) RIP Enabled,
(R) Sub-VLAN IP Range Configured, (s) Sub-VLAN, (S) Super-VLAN,
(t) Translation VLAN or Network VLAN, (T) Member of STP Domain,
(v) VRRP Enabled, (V) VPLS Enabled, (W) VPWS Enabled,
(Y) Policy Enabled, (Z) OpenFlow Enabled
Total number of VLAN(s) : 3
You can display details about SYS_VLAN_0002 using the following command:
# show SYS_VLAN_0002
VLAN Interface with name SYS_VLAN_0002 created dynamically
Admin State: Enabled Tagging: 802.1Q Tag 2
Description: None Virtual router: VR-Default
IPv4 Forwarding: Disabled
IPv4 MC Forwarding: Disabled
IPv6 Forwarding: Disabled
IPv6 MC Forwarding: Disabled
IPv6: None
STPD: s0(Enabled)
Protocol: Match all unfiltered protocols
Loopback: Disabled
NetLogin: Disabled
OpenFlow: Disabled
QosProfile: None configured
Flood Rate Limit QosProfile: None configured
Ports: 4. (Number of active ports=4)
Tag: *1H, *2H, *10H, *11H
Flags: (*) Active, (!) Disabled, (g) Load Sharing port
(b) Port blocked on the vlan, (m) Mac-Based port
(a) Egress traffic allowed for NetLogin
(u) Egress traffic unallowed for NetLogin
(t) Translate VLAN tag for Private-VLAN
(s) Private-VLAN System Port, (L) Loopback port
(e) Private-VLAN End Point Port
(x) VMAN Tag Translated port
(G) Multi-switch LAG Group port
(H) Dynamically added by MVRP
(U) Dynamically added uplink port
(V) Dynamically added by VM Tracking
This ExtremeXOS feature introduces the ability to tunnel and filter Layer 2 PDUs.
Tunneling allows you to send Layer 2 PDUs across a service provider network, and be
delivered to remote switches. It is useful when a network includes remote sites that
are connected through a service provider network. Using tunneling, you can make the
service provider network transparent to the customer network.
An operator can specify a CoS (Class of Service) value for the tunneled PDUs. This can
be useful since some L2 protocols may have a higher priority than others (for example,
STP (Spanning Tree Protocol) may be considered higher priority than LLDP (Link Layer
Discovery Protocol)). If a CoS value is specified for a protocol for which tunneling is
enabled, the switch will transmit the encapsulated PDUs for that protocol with the
operator specified CoS towards the network. The CoS value specified by the operator is
transmitted on the SP network as follows:
• VLAN/VMAN – The CoS value is written to the PRI bits of the outermost VLAN tag if
available.
• VPLS/VPWS – The CoS value is written to the EXP bits of the outermost MPLS label.
The action taken by the switch for PDUs of a protocol is as described in the following
table.
• VXLAN – The CoS value configured on the profile attached to the access port is
written to the PRI bits of the outer VLAN header of the VXLAN encapsulated frames
before transmitting them to other RTEPs.
As VXLAN tunneled packets cross L3 boundaries in the underlay network, the CoS
can get lost when traversing L3 boundaries. An operator may choose to configure a
Differentiated Services Code Point (DSCP) that needs to be set in the outer IP header
of the encapsulated packets. If the packet encapsulated into the VXLAN tunnel is an
IP packet, the DSCP from inner IP header is typically copied to DSCP of the outer IP
header. A configuration option is provided to overwrite this outer DSCP value. In case of
L2 protocols (which do not have an inner DSCP), the configured DSCP value is set in the
outer IP header.
The action taken by the switch for encapsulated PDUs for a protocol is as described in
the following table.
Protocol Tunneling
To make L2PT configuration easier, in ExtremeXOS you can create L2PT profiles. An
L2PT profile specifies the tunneling action and other parameters for protocols (specified
using protocol filters) that should be tunneled. You can then apply the profile to the
interfaces of the service that are participating in L2PT. And you can also change the
profile when it is already bound to an interface.
The L2PT parameters that can be configured through a profile include the following:
• Tunneling Action
• Tunneling CoS
• Tunneling DSCP for VXLAN case
The following validity checks are performed when an entry for a protocol filter is created
in an L2PT profile:
• Ensure that all protocols in the protocol filter define a destination MAC address.
• Ensure that all protocols in the protocol filter define a protocol identifier.
• Ensure that all protocols in the protocol filter are unique within the L2PT profile.
• If the action for the protocol filter is ‘encapsulate:
◦ Ensure that there are no entries with action as ‘tunnel in the L2PT profile.
◦ Ensure that the service interface is either a tagged VLAN port, a PW, or a VXLAN
RTEP.
The following validity checks are performed when a L2PT profile is bound to an
interface of a service:
• If the profile specifies the action as ‘tunnel’ for protocol filter:
◦ Ensure that the interface is not a PW or a VXLAN RTEP.
◦ Ensure that none of the protocols in the L2PT profile are filtered on the underlying
port of the interface.
◦ Ensure that none of the protocols in the L2PT profile are tunneled on the
underlying port of the interface.
Typically, you will want to configure the tunneling action for all customer facing
interfaces of the service that participate in L2PT as tunnel, and the tunneling action
for all network facing interfaces as encapsulate/decapsulate. Once any interface of the
service is configured to tunnel a protocol, the switch will configure all tagged ports and
PWs or VXLAN RTEPs of the service to encapsulate/decapsulate mode. You can override
this implicit configuration by binding the RTEPs a profile to the service interface that
specifies a different tunneling action.
For example, consider a VMAN service named c1 with customer facing ports 1, 2 and 3
and network facing ports 4, 5, 6. Ports 4, 5 and 6 are added as tagged to the VMAN and
1, 2 and 3 are added as untagged to the VMAN. The operator wants to tunnel LACP and
EFM OAM on all customer facing ports at CoS 5. The configurations that he or she must
make are as follows:
# Create a protocol filter
create protocol filter “my_slow_protocols_filter”
# Create an L2PT profile for the customer facing ports named c1_l2pt_profile
create l2pt profile “c1_l2pt_profile”
# Enable CDP tunneling with CoS 3 and DSCP 38 in case of VXLAN tenant VLAN
configure l2pt profile “c1_l2pt_profile” add protocol filter
# Please note that the network facing port 4, 5 and 6 don’t have to be explicitly
# configured to encapsulate/decapsulate mode since the switch implicitly sets all
# tagged ports to encapsulate/decapsulate mode when an L2PT profile is bound to
# any port of the service.
The operator also has the option to configure the L2PT destination MAC address (i.e.,
the DA used by L2PT encapsulated PDUs). This is may be done using the following CLI
command:
The L2PT destination MAC address may only be changed when no L2PT profiles have
been bound to any service interface. The default L2PT DA MAC is 01:00:0C:CD:CD:D0
(selected to be interoperable with Cisco and Juniper).
Use the following commands to view the status and statistics of L2PT:
clear l2pt counters {[vlan] vlan_name {{vxlan {vr vr_name} rtep rtep_ipvs}}}
• If any protocol is tunneled on the service interface, an ACL rule is added to drop
all packets received on the service interface with a destination address equal to the
L2PT destination MAC address.
Protocol Filtering
You can enable filtering of PDUs of a protocol on any port. If you enable filtering for a
protocol on a port, the switch discards PDUs of that protocol on that port.
Use the following command to view protocol filter status and statistics:
Else:
◦ An ACL rule is added to copy and drop all packets on the port that match the
destination address of the packet. The rule is also qualified with the EtherType of
the protocol if it defines one.
The protocol filtering data-plane inspects all packets received from ports that have
protocol filters attached, and drops any packet that matches any of the protocols
configured in the protocol filter.
Protocol filtering is also supported for VXLAN tenant VLANs. However, filtering has to be
configured on access ports only, and is not supported on RTEPs. This aligns with the
existing behavior where filtering cannot be supported on pseudo wires.
Protocol Filters
Both L2PT and protocol filtering allow you to tunnel or filter many protocols on an
interface. For this purpose, ExtremeXOS supports creating protocol filters. A protocol
filter contains a number of protocols to which you can apply some action (like
tunneling and filtering). Each protocol in a protocol filter is defined using the following
fields:
• The destination MAC address of PDUs of the protocol. This field is mandatory for all
protocols that are to be tunneled or filtered.
• The protocol id (EtherType, LLC, SNAP). This field is mandatory for all protocols that
are to be tunneled.
• User defined field. This is an arbitrary field in the PDU of the protocol that is specified
using the offset of the field from the start of the PDU, the value of the field and a
mask.
For example, use the following command to create a protocol filter that includes LACP
and EFM OAM:
# Create a protocol filter
create protocol filter my_slow_protocols_filter
• If the protocol filter is used by any port for the purpose of protocol filtering
(configure ports port# protocol filter filter-name):
◦ Ensure that the protocol defines a destination MAC address.
• For every port that has the protocol filter attached for the purpose of protocol
filtering:
◦ Ensure that the protocol is not tunneled by a service on that port.
Note
Protocol filters may be used with features other than L2PT and protocol
filtering (for example, Protocol Based VLANs). The validity tests listed above are
only the ones relevant to L2PT and protocol filtering.
Protocol filters for the following protocols are created automatically by the switch when
the switch is set to default configuration:
• Cisco Discovery Protocol (CDP)
• Unidirectional Link Detection (UDLD)
L2PT Limitations
• L2PT and protocol filtering is implemented in software, so the number of frames that
can be filtered or tunneled is limited.
• Both L2PT and protocol filtering can be configured only through CLI. Configuration
through SNMP (Simple Network Management Protocol)/XML is not supported for
this release.
• If L2PT configurations are made on PWs, these configurations are lost on a restart of
the MPLS process unless the L2PT process is also restarted.
• If L2PT configurations are made on a VPLS or VPWS service, dot1p tag inclusion must
be enabled on the VPLS/VPWS. Also, VPLS or VPWS service must have same VLAN
IDs at each end of a PW.
• When tunneling protocols are point-to-point in nature, it is your responsibility to
ensure that there are only two tunnel endpoints for the protocol.
• If a protocol that is configured to be tunneled on a service interface cannot be
uniquely identified by its destination address and EtherType, then all packets with
the same DA and EtherType of the protocol being tunneled (but that are not really
PDUs of the protocol) will be slow path forwarded.
• Tagged protocol PDUs cannot be tunneled over VLANs. Tagged protocol PDUs can
only be tunneled over VMANs (the VMAN can be the service VMAN for a VPLS/VPWS
service, or a standalone VMAN). Untagged protocol PDUs can be tunneled over both
VLANs and VMANs (the VLAN/VMAN can be standalone, or be the service VMAN for
a VPLS/VPWS service).
• Untagged protocol PDUs cannot be bypassed if the ingress port is an untagged
VMAN port with a default CVID. Untagged protocol PDUs can be bypassed if the
ingress port is an untagged VMAN port without a default CVID.
• In VPLS, only full-mesh configuration is supported for L2PT.
• L2PT is not supported on VLAN ports that have a port specific tag.
• L2PT is not supported on provider edge ports when MACSEC was enabled on
customer edge.”
This section provides information about Virtual Routers. It discusses how ExtremeXOS
software supports Virtual Routers and VRFs, and provides specific information about
how to configure and manage those virtual routers.
Each VR maintains a separate logical forwarding table, which allows the VRs to
have overlapping IP addressing. Because each VR maintains its own separate routing
information, packets arriving on one VR are never switched to another.
Note
VRs should not be connected together through a Layer 2 domain. Since there
is a single MAC address per switch in the ExtremeXOS software, this same
MAC address is used for all VRs. If two VRs on the same switch are connected
through a Layer 2 domain, the intermediate Layer 2 switches learn the same
MAC address of the switch on different ports, and may send traffic into the
wrong VR.
Ports on the switch can either be used exclusively by one VR, or can be shared among
two or more VRs. One reason to configure a port for the exclusive use of a single VR is to
be sure that only packets from that VR egress from that port. One reason to configure
a port to be shared by multiple VRs is to pass traffic from multiple VRs across a shared
link.
Because a single physical switch supports multiple VRs, some commands in the
ExtremeXOS software require you to specify to which VR the command applies. For
example, when you use the ping command, you must specify from which VR the ping
packets are generated. Many commands that deal with switch management use the
Note
The term VR is also used with the VRRP (Virtual Router Redundancy Protocol).
VRRP uses the term to refer to a single virtual router (VR) that spans
more than one physical router, which allows multiple switches to provide
redundant routing services to users. For more information about VRRP, see
VRRP Overview on page 1424.
VR-Control has no VLAN interface, and no VLAN can be created for it.
Users can create and delete VLANs in VR-Default. The Default VLAN is created in
VR-Default during the ExtremeXOS system boot-up. The Default VLAN cannot be
deleted from VR-Default.
One instance of each routing protocol is spawned for VR-Default during the
ExtremeXOS system boot-up, and these routing instances cannot be deleted.
The routing tables for each VR are separate from the tables for other VRs, so user VRs
can support overlapping address space.
Note
User VRs are supported only on the platforms listed for the VR feature in
the Switch Engine Licensing Guide document. When a SummitStack
contains switches that do not support user VRs, the ports on those devices
cannot be added to a user VR.
When a new user VR is created, by default, no ports are assigned, no VLAN interface is
created, and no support for any routing protocols is added. User VRs support all switch
routing protocols. When you add a protocol to a user VR, the user VR starts a process
for that protocol. The ExtremeXOS software supports up to 63 user VRs, each of which
supports protocols for that VR and all child Virtual Routers and Forwarding instances
(VRFs).
Note
When using SNMPv2c for user created VR, "read community" in the SNMP tool
should be set as "vr_name@community_name" where vr-name is user created
virtual router name . Similarly for SNMPv3, "Context name" in SNMP tool should
be set as "vr_name@community_name" where vr-name is user created virtual
router name .
VRFs
Virtual Router and Forwarding instances (VRFs) are similar to VRs. VRFs are created
as children of user VRs or VR-Default, and each VRF supports Layer 3 routing and
forwarding. The routing tables for each VRF are separate from the tables for other VRs
and VRFs, so VRFs can support overlapping address space. The primary differences
between VRs and VRFs are:
• For each routing protocol added to a VRF, only one process is started in the user VR
and VRF. The VRF protocol operates as one instance of the parent VR protocol, and
additional child VRFs operate as additional instances of the same parent VR protocol
process. VRFs allow a protocol process running in the parent VR to support many
virtual router instances.
• ExtremeXOS supports up to 63 VRs and up to many more VRFs. For the maximum
number of supported VRFs, see the ExtremeXOS Release Notes.
Use VRFs instead of VRs when your network plan calls for more than 63 virtual routers
or when you want to create Layer 3 VPNs. Use VRs instead of VRFs when the routing
protocol you want to use is not supported on a VRF.
When a new VRF is created, by default, no ports are assigned, no VLAN interface is
created, and no support for any routing protocols is added. When you add a protocol
to a VRF, an instance of the protocol is created in the protocol process running in the
parent VR, if the protocol process exists. If no protocol process is running in the parent
VR, a process is started and a protocol instance corresponding to this VRF is created
within that process.
The rest of this chapter uses the following terms to identify the different types of VRs
and VRFs to which features and commands apply:
• VR—All VRs and VRFs
• VRF—VPN and non-VPN VRFs
• VPN VRF—VPN VRFs only
• Non-VPN VRF—Non-VPN VRFs only
Note
VRFs are supported only on the platforms listed for the VRF feature in
the Switch Engine Licensing Guide document. When a SummitStack
contains switches that do not support VRFs, the ports on those devices cannot
be added to a VRF.
Local-only VRs allow bidirectional monitoring of each individual path used to reach the
switch itself, where each path may traverse, for example, a different firewall. Switches
that support local-only VRs do not forward IP packets in local-only VRs in software or in
hardware; they instead use separate lookup tables, including static routes, for packets
to or from the switch's local IP addresses.
Supported Platforms
Local-only VRs are supported on 4120, 4220, and 5320-24T/24P/16P series switches and
stacks with these switches. Other ExtremeSwitching series switches support VRs in
hardware, rather than support local-only VRs.
Limitations
Note
This feature is an additional method for achieving Inter-VR routing without an
external router. You can also allow a static route's gateway to be in a different
VR by entering the configure iproute add command and specifying vlan
egress_vlan, or redistribute routes from one OSPF instance to another
OSPF instance in a different VR by entering the enable ospf export {vr}
command.
Leaked direct routes are created with origin direct-inter-vr in the leak-to-VR. These
routes have a lower route priority than direct routes and a higher route priority than any
other route type.
The route priority of direct-inter-vr can be modified using the iproute priority
command. These routes can be redistributed to the OSPF protocol in the leak-to-VR
like any other routes in the VR. OSPF’s route redistribution command is also extended
as part of this feature and includes the direct-inter-vr route type.
Note
To ping a directly attached host from the switch command line successfully,
the ping command must specify the correct VR name (or use the correct
command line VR context) containing the VLAN with that subnet. If another
VR name or VR context is used, the ping will not be successful.
A typical use case for this feature is when you have a printer IP directly attached to a
switch on a VLAN in VR1. For example, a printer IP 10.1.1.222 on a VLAN names "yellow10"
in VR1, with an IP address of 10.1.1.1/24. In this scenario, you want all users in VR1 and VR2
to access the printer using the same IP 10.1.1.222, without requireing an external router.
To accomplish this, you can configure the direct route of VLAN "yellow10" with IP
10.1.1.1/24 to be leaked to VR2. You can create a reverse routed path by configuring the
direct route of VLAN "red20" with IP 20.1.1.1/24 in VR2 to be leaked to VR1.
By configuring direct route leaking, hardware and slow path forwarding tables are
augmented to include all IP ARP entries on that interface, such as 10.1.1.222, in VR2 in
addition to VR1.
Note
In this scenario, you do not want users in VR3 to access 10.1.1.0/24, on VR1 and
VR2.
create vr VR1
create vr VR2
create vr VR3
The following example displays show command output for this feature:
# show iproute direct-inter-vr
Leak From VLAN Name VID Primary IP Addr. Leak From Virtual Router
-------------------------------- ---- ------------------ ------------------------------
red20 20 20.1.1.1 /24 VR2
Leak From VLAN Name VID Primary IP Addr. Leak From Virtual Router
-------------------------------- ---- ------------------ ------------------------------
yellow10 10 10.1.1.1 /24 VR1
The following examples display the "div" origin prefix showing Direct-Inter-VR
information.
# show iproute vr vr1
VR Configuration Context
Each VR and VRF has its own configuration domain or context, in which you can enter
commands to configure that VR. Some commands allow you to specify a VR to which
the command applies.
For other commands, you must change context to that of the target VR or VRF before
you execute the command. The current context is indicated in the command line
interface (CLI) prompt by the name of the user VR or VRF. If no name appears in the
prompt, the context is VR-Default.
For instructions on changing context, see Changing the VR Context on page 729.
Commands that apply to the current VR context include all the BGP (Border Gateway
Protocol), OSPF (Open Shortest Path First), OSPFv3 (Open Shortest Path First version
3), PIM, IS-IS, RIP (Routing Information Protocol), and RIPng (Routing Information
Protocol Next Generation) commands, and the commands listed in the following table.
Commands that apply to the current VRF context are limited to BGP commands and
the commands listed in Table 79.
Note
User VRs are supported only on the platforms listed for this feature in the
Switch Engine Licensing Guide document.
A VR name cannot be the same as a VLAN name. You cannot name a user VR
with the names VR-Mgmt, VR-Control, or VR-Default because these are the existing
default system VRs. For backward compatibility, user VRs also cannot be named
VR-0, VR-1 or VR-2 because these three names are the names for the system VRs in
ExtremeXOS releases before 11.0.
If you exceed the maximum number of VRs supported on your platform, a message
similar to the following appears:
Error: Maximum number of User VRs supported by the system is 63
Note
Before you delete a VR, you must delete all VLANs and child VRFs created in
that VR. All of the ports assigned to this VR are deleted and made available
to assign to other VRs and VRFs. Any routing protocol that is running on the
VR is shut down and deleted gracefully.
Note
VRFs are supported only on the platforms listed for this feature in the
Switch Engine Licensing Guide document. To support a Layer 3 VPN,
a VPN VRF must be created under the parent VR that will run the MPLS
protocol.
Note
Before you delete a VRF, you must delete all VLANs and stop all protocols
that are assigned to that VRF. All of the ports assigned to a deleted VRF are
deleted and made available to assign to other VRs and VRFs. Any routing
protocol instance that is assigned to the VRF is deleted gracefully.
When you add a protocol to a user VR, the software starts a process to support the
protocol, but it does not enable that protocol. After you add a protocol to a user VR, you
must specifically enable and configure that protocol before it starts.
When you add a protocol to a VRF, a protocol process is started in the parent VR (if it is
not already started) and a protocol instance is created inside that process for this VRF.
Note
You must add, configure, and enable a protocol for a VR before you start
unicast or multicast forwarding on the VR and before you configure any
features (such as VLANs) to use the VR.
Note
Local-only VRs and VRFs do not use routing protocols.
Caution
Do not create Layer 2 connections between ports assigned to different VRs in
the same switch. Because each switch supports just one MAC address, every
VR in the switch uses the same MAC address. A Layer 2 connection between
two VRs can cause external devices to direct traffic to the wrong VR.
The following example demonstrates how to remove all the ports on slot 3 from the
Default VLAN in VR-Default and add them for the exclusive use of user VR helix:
configure vlan default delete ports 3:*
configure vr vr-default delete ports 3:*
configure vr helix add ports 3:*
To add the port to a VLAN in the desired VR, use the following command:
Note
See QoS for details about how multiple VRs per port can affect DiffServ and
code replacement.
You should configure any protocols you want to use on a user VR before you
add a VLAN to the user VR. When IP multicast forwarding will be supported on
a user VR, add the PIM protocol before you enable IP multicast forwarding.
The following example demonstrates how to add port 3:5 to user VRs VR-green and
VR-blue.
The tagged VLAN bldg_200 was previously configured in VR-green, and the tagged
VLAN bldg_300 was previously configured in VR-blue.
configure vlan default delete ports 3:5
configure vr vr-default delete ports 3:5
configure vlan bldg_200 add ports 3:5 tagged
configure vlan bldg_300 add ports 3:5 tagged
VLAN names must conform to the guidelines specified in Object Names on page 31.
Note
All VLAN names and VLAN IDs on a switch must be unique, regardless of the
VR in which they are created. You cannot have two VLANs with the same
name, even if they are in different VRs.
You can also configure routing protocols by using the standard ExtremeXOS software
commands. The routing configurations of the different VRs are independent of each
other.
Configuring a VPN ID
A VPN ID is an optional configuration parameter that you can use to associate a Layer 3
VPN ID label with a VRF.
unconfigure vr vrf_name rd
Note
You must enable this command in the parent VR of VPN-VRF.
The CLI prompt is shown in this example to show how the VR context appears. At the
end of the example, the VR is ready to be configured for OSPF, using ExtremeXOS
software commands.
* BD10K.1 # create virtual-router helix
* BD10K.2 # configure vlan default delete ports 3:*
* BD10K.3 # configure vr vr-default delete ports 3:*
* BD10K.4 # configure vr helix add ports 3:*
The Fabric Attach feature allows attachment of non-SPB (Shortest Path Bridging)
stations to an SPB network through a Fabric Attach server or it can act as a Fabric
Attach server for VXLAN (Virtual Extensible LAN) overlay networks.
Note
Both terms NSI and ISID are used in this document, with NSI being the
preferred term. For ExtremeXOS, the NSI is an ISID in SPB fabrics, but the NSI
could also be used to as an identifier for other (non-SPB) fabrics where it will
not be an ISID.
Limitations
Mappings of VLANs to NSIs/ISIDs is limited to 94.
Supported Platforms
All platforms.
Supported Platforms
All platforms.
Fabric Attach standalone proxy operation supports standard Fabric Attach proxy
processing as if a Fabric Attach server has been discovered. You can enable or disable
Fabric Attach standalone proxy support (see Configuring Fabric Attach on page 747).
By default, it is disabled. Enabling the Fabric Attach Standalone Proxy mode enables
The Fabric Attach standalone proxy does not send provisioning requests upstream.
A Fabric Attach standalone proxy automatically accepts requests from Fabric Attach
clients and assumes that the upstream network has been provisioned appropriately.
Disabling Fabric Attach standalone proxy mode resets configured NSI/VLAN binding
data to its default state and enables full Fabric Attach Proxy operation (see Fabric
Attach Proxy Mode on page 736). In Fabric Attach standalone proxy mode, you
must provide the Fabric Attach server uplink information, which is typically gathered
through Fabric Attach server discovery. After you provide this information, Fabric
Attach standalone proxy mode operates as if a Fabric Attach server has been
discovered and is accepting NSI/VLAN binding requests. The binding clean-up is similar
to a Fabric Attach server timeout event, and occurs when the static uplink is deleted
and when Fabric Attach standalone proxy operation is disabled.
Supported Platforms
All platforms.
Supported Platforms
All platforms.
There are three ways to configure an NSI/ISID mapping: CLI, LLDP, or RADIUS/Policy/
NetLogin. The Fabric Attach feature only allows a one-to-one mapping of NSI/ISID to
VLAN. However, it is possible for a mapping made through the CLI to conflict with
mappings requested by a Fabric Attach client or by RADIUS. Conflicting mappings
from multiple sources are resolved in the following precedence order (highest to
lowest):
Note
When operating as a Fabric Attach server, this precedence order is not
observed, only the last request is accepted.
Conflicts between mapping requests from the same source are handled as follows: A
conflict arises when different NSI values are requested for a VLAN. When a conflict
arises between Fabric Attach client requests, the NSI with the lowest numerical value is
retained, overwriting the previous client requested value for the VLAN. This reduces
flip-flopping between competing values, since these mappings are continuously
requested by Fabric Attach clients through LLDP. The conflict is resolved when all
Fabric Attach clients have been configured to request the same mapping. After the
incorrect mapping is no longer requested by any Fabric Attach client, it times out of
the database and is replaced by the correct value from the next Fabric Attach client
request. The timeout value for the database on the FA proxy is 240 seconds and is not
configurable. When a conflict arises because of RADIUS requests, the last NSI value
received is used, overwriting any previous NSI from RADIUS for this VLAN. After the
RADIUS configuration has been corrected so that authentications return the correct
NSI value, the correct mapping is then provided by the next user authentication.
RADIUS can be configured to re-authenticate users periodically, but this is not required
and if there is no change to the data for a user, RADIUS provides no notification. Since
RADIUS does not provide periodic confirmation of the mappings it has requested,
these mappings do not time out.
LLDP
LLDP may receive mapping requests from the CLI and from attached Fabric Attach
clients. The CLI prevents you from configuring multiple static (CLI sourced) mappings
for a VLAN. When a VLAN to NSI/ISID mapping is configured through the CLI (see
Configuring Fabric Attach on page 747), the mapping is entered into the database
and is persistent across device reboots, whereas mappings requested by Fabric Attach
clients are not persistent.
RADIUS/Policy/NetLogin
RADIUS/Policy/NetLogin mappings are not persistent.
There are two ways to define the VLAN/NSI mapping using a combination of RADIUS
Standards (RFC2868 and RFC3580) Attributes and/or Vendor Specific Attributes (VSAs).
1. The presently supported RFC3580 VLAN can be associated with newly introduced
Extreme Networks VSAs.
• RFC2868 & RFC3580 RADIUS Attributes:
◦ Attribute 64: Tunnel-Type = VLAN (13)
◦ Attribute 65: Tunnel-Medium-Type = 802
◦ Attribute 81: Tunnel-Private-Group-Id=<VlanID>
• Extreme Networks VSAs:
◦ Attribute 230: Extreme-NSI-Type
◦ Attribute 231: Extreme-NSI-ID
Note
If both attributes are present in the RADIUS attributes returned, the Extreme
VSAs is used.
Starting with ExtremeXOS 22.5, policy can configure NSI mappings based on the
RADIUS-returned “policy name”. This allows the mappings to be derived from the
RADIUS configuration and avoid configuration conflicts between users. This makes it
easier for all users that match a policy profile to get the same mapping.
Note
Policy and RADIUS authentication is performed per-user, which means NSI
mappings are also specified per user. Unless a common policy profile is used,
you cannot prevent different users from mapping a VLAN to different NSI
values.
Note
The last three situations indicate that you are not connected to same Fabric
Attach server, or the same LAG on a Fabric Attach server, which are not valid
scenarios.
Note
MLAG with Fabric Attach Automatic LAG is not supported in ExtremeXOS 31.1
and later. Do not enable MLAGs on ports where automatically created LAGs will
be created.
For more information about MLAGs, see MLAG Overview on page 271.
Note
Attributes are sent only for NetLogin MAC- and Dot1x-based authentications.
Pre-shared Key (PSK) Status 183 Used to inform the RADIUS server
(FA-Client-PSK) of the Pre-shared Key status of the
client being authenticated. If sent,
it can take one of 5 binary values,
0,10,11,100,101.
• Not Sent—Pre-share Key (PSK)
used unknown.
• 0—FA PSK not enabled on
Fabric Attach Switch Port
• 10—Failed. FA PSK used is
default key
• 11—Passed. FA PSK used is
default key
Zero Touch Client can configure only one mapping per client type since there can be
only one untagged port VLAN. Zero Touch Client provides a method to configure port
priority. If no priority is provided, the statically configured dot1p priority will be used.
Base Zero Touch (ZT) auto-attach functionality allows a device to acquire management
VLAN information and use this data to facilitate device manageability and network
configuration download across the network. When you have enabled Base ZT auto-
attach operation, it extracts management VLAN data from the primary FA Server
advertisements, and potentially uses this data to update the in-use management
VLAN. This information can also be cascaded to FA Clients. An FA proxy can disable
management VLAN cascading to clients device-wide, and disable by port.
To show configured Fabric Attach Zero Touch Clients, run the following command:
VLAN/NSI bindings when a switch or link recovers from failure. Fabric Attach triggered
signaling of VLAN/NSI mappings occurs when:
• A link between the client and proxy flaps
• A client switch reboots
• A proxy switch reboots
• A link between the server and proxy flaps
• A server switch reboots
• A new VLAN/NSI mapping is added in the client
Limitations
A proxy switch sends out the maximum of 94 VLAN/NSI mapping requests to a server
based on the time the mappings are created. Only the first 94 mappings added in the
VLAN/NSI DB are sent to the server for approval.
configure [{vlan} vlan_name |vlan vlan_id] add [nsi nsi | isid isid]
Mappings created with this command are persistent across reboots, whereas
mappings by Fabric Attach clients and mappings requested by RADIUS/Policy/
NetLogin are not persistent.
Note
While it is possible to configure an NSI mapping using the command
configure virtual-network vn_name vxlan vni [ vni | none], it is not
recommended to do so when using Fabric Attach.
configure [{vlan} vlan_name |vlan vlan_id] delete [nsi nsi | isid isid]
If the VLAN/NSI mappings of type offset is present, then the offset NSI mappings are
given the least precedence to be sent to the server for approval regardless of the time
the mappings were created.
The NSI offset applied to a VLAN will be removed if an NSI of higher precedence is
applied to the VLAN.
Note
When Fabric Attach authentication is configured on ports that are part of
an , all ports on that MLAG must have the same Fabric Attach authentication
configuration.
To enable standalone proxy mode and specify the uplink port, use the following
command using the port keyword:
To disable standalone proxy mode, use the following command using the none
keyword:
Management VLAN
To specify the VLAN advertised to Fabric Attach clients for them to use as the
management VLAN, use the following command:
The specified VLAN configuration on the Fabric Attach server is restricted to only
tagged VLANs.
Note
To clear these statistics, use the clear counters command.
To display known fabric attach elements (neighbors) information, use the following
command:
To display known fabric attach assignments (mappings) information, use the following
command:
To display known fabric attach agent information, use the following command:
Port 1:1 is a member port of 1:5. Configuring all members the same is recommended.
Port 1:3 is a member port of 1:5. Configuring all members the same is recommended.
Port 1:5 is a master port. Configuring all members the same is recommended.
Port 1:53 is a member port of 1:5. Configuring all members the same is recommended.
Limitations
Trusted ports on BPEs cannot be used to connect FA clients.
FA Clients Connected to BPEs with Extended Edge Switching Ring MLAG-Connected CBs FA Server
Peers
This configuration example shows how to configure a Fabric Attach (FA) server
Controlling Bridge (CB) to receive and approve VLAN/NSI mappings from an FA client
connected to a bridge port extender (BPE).
Figure 89: FA Clients Connect to BPE with Ring MLAG-Connected FA Server Peers
FA Clients Connected to BPEs with Extended Edge Switching Ring MLAG-Connected CB FA Proxy
Peers
This configuration example shows how to configure Fabric Attach (FA) proxy controlling
bridge (CB) Extended Edge Switching Ring CB peers to receive and approve VLAN/NSI
mappings from FA clients connected to BPEs.
Figure 90: FA Clients Connect to BPE with Ring MLAG-Connected FA Proxy Peers
-----------------------------------------------------------------------------
LLDP Port 143:6 detected 1 neighbor
Neighbor: 00:04:96:98:A9:1A/17, age 20 seconds
- Chassis ID type: MAC address (4)
Chassis ID : 00:04:96:98:A9:1A
- Port ID type: ifName (5)
Port ID : "17"
- Time To Live: 120 seconds
- System Name: "FAClient-switch_model"
- System Description: "ExtremeXOS (switch_model) version 30.4.0.524 30.\
4.0.524 by release-manager on Fri Oct 25 15:01:31\
EDT 2019"
- Avaya/Extreme Fabric Attach element
Element Type : 8
State : 0
Management Vlan: 1000
SystemId : 00:04:96:98:a9:1a
Link Info : 00-01-00-11
-----------------------------------------------------------------------------
Figure 91: FA Clients Connected to BPEs with Extended Edge Switching Ring MLAG-
Connected CBs FA Standalone Peers
-----------------------------------------------------------------------------
LLDP Port 143:6 detected 1 neighbor
Neighbor: 00:04:96:98:A9:1A/17, age 19 seconds
- Chassis ID type: MAC address (4)
Chassis ID : 00:04:96:98:A9:1A
- Port ID type: ifName (5)
Port ID : "17"
- Time To Live: 120 seconds
- System Name: "FAClient-switch_model"
- System Description: "ExtremeXOS (switch_model) version 30.4.0.524 30.\
4.0.524 by release-manager on Fri Oct 25 15:01:31\
EDT 2019"
- Avaya/Extreme Fabric Attach element
Element Type : 8
State : 0
Management Vlan: 0
SystemId : 00:04:96:98:a9:1a
Link Info : 00-01-00-11
-----------------------------------------------------------------------------
LLDP Port 143:6 detected 1 neighbor
Neighbor: 00:04:96:98:A9:1A/17, age 18 seconds
- Chassis ID type: MAC address (4)
Chassis ID : 00:04:96:98:A9:1A
- Port ID type: ifName (5)
Port ID : "17"
- Time To Live: 120 seconds
- System Name: "FAClient-switch_model"
- System Description: "ExtremeXOS (switch_model) version 30.4.0.524 30.\
4.0.524 by release-manager on Fri Oct 25 15:01:31\
EDT 2019"
- Avaya/Extreme Fabric Attach element
Element Type : 8
State : 0
Management Vlan: 0
SystemId : 00:04:96:98:a9:1a
Link Info : 00-01-00-11
-----------------------------------------------------------------------------
LLDP Port 125:9 detected 1 neighbor
Neighbor: 00:04:96:9D:42:32/15, age 3 seconds
- Chassis ID type: MAC address (4)
Chassis ID : 00:04:96:9D:42:32
- Port ID type: ifName (5)
Port ID : "15"
- Time To Live: 120 seconds
- System Name: "5720"
- System Description: "Switch Engine switch version 32.4.1 by release-manager on Mon
Nov 4 22:39:20\
EST 2023"
- Avaya/Extreme Fabric Attach element
Element Type : 5
State : 0
Management Vlan: 0
SystemId : 00:04:96:9d:42:32
Link Info : 00-01-00-0f
# show sharing
Load Sharing Monitor
Config Current Agg Min Ld Share Ld Share Agg Link Link Up
Master Master Control Active Algorithm Flags Group Mbr State Transitions
================================================================================
1:25 1:25 LACP 1 L2 A 1:25 Y A 0
L2 1:26 Y A 0
1:27 1:27 LACP 1 L2 A 1:27 Y A 0
1:28 1:28 LACP 1 L2 A 1:28 Y A 0
================================================================================
Link State: A-Active, D-Disabled, R-Ready, NP-Port not present, L-Loopback
Minimum Active: (<) Group is down. # active links less than configured minimum
Load Sharing Algorithm: (L2) Layer 2 address based, (L3) Layer 3 address based
(L3_L4) Layer 3 address and Layer 4 port based
(custom) User-selected address-based configuration
Custom Algorithm Configuration: ipv4 L3-and-L4, xor
Custom Hash Seed: Switch MAC address (0x88FEF366)
Flags:
A - All: Distribute to all members,
d - Dynamically created shared port,
L - Local Slot: Distribute to members local to ingress slot,
P - Port Lists: Distribute to per-slot configurable subset of members,
R - Resilient Hashing enabled.
Number of load sharing trunks: 3
Topology: Cascade
Native cascade port 1:28
Slots: 125
-----------------------------------------------------------------------------
LLDP Port 125:5 detected 1 neighbor
Neighbor: 00:04:96:98:A9:1A/17, age 18 seconds
- Chassis ID type: MAC address (4)
Chassis ID : 00:04:96:98:A9:1A
- Port ID type: ifName (5)
Port ID : "17"
- Time To Live: 120 seconds
- System Name: "FAClient-450G2"
- System Description: "ExtremeXOS (X450G2-24t-G4) version 30.4.0.524 30.\
4.0.524 by release-manager on Fri Oct 25 15:01:31\
EDT 2019"
- Avaya/Extreme Fabric Attach element
Element Type : 8
State : 0
Management Vlan: 0
SystemId : 00:04:96:98:a9:1a
Link Info : 00-01-00-11
# show sharing
Load Sharing Monitor
Config Current Agg Min Ld Share Ld Share Agg Link Link Up
Master Master Control Active Algorithm Flags Group Mbr State Transitions
================================================================================
1:16 1:16 LACP 1 L2 A 1:16 Y A 0
L2 1:24 Y A 0
1:29 1:29 LACP 1 L2 A 1:29 Y A 0
1:47 1:47 LACP 1 L2 A 1:47 Y A 0
================================================================================
Link State: A-Active, D-Disabled, R-Ready, NP-Port not present, L-Loopback
Minimum Active: (<) Group is down. # active links less than configured minimum
Load Sharing Algorithm: (L2) Layer 2 address based, (L3) Layer 3 address based
(L3_L4) Layer 3 address and Layer 4 port based
(custom) User-selected address-based configuration
Custom Algorithm Configuration: ipv4 L3-and-L4, xor
Custom Hash Seed: Switch MAC address (0x969A8D45)
Flags:
A - All: Distribute to all members,
d - Dynamically created shared port,
L - Local Slot: Distribute to members local to ingress slot,
P - Port Lists: Distribute to per-slot configurable subset of members,
R - Resilient Hashing enabled.
Number of load sharing trunks: 3
Topology: Cascade
Native cascade port 1:29
Slots: 125
FA Server 1
# show virtual-network
Virtual Network Flags Tenant VLAN
Encap ID Encap Flags
================================================================================
SYS_VNET_02800100 --S SYS_VLAN_0100
# show fdb
MAC VLAN Name( Tag) Age Flags Port /
Virtual Port List
------------------------------------------------------------------------------------------
------------
00:04:96:98:a9:1a SYS_VLAN_0100(0100) 0005 d m S 5
00:04:96:99:9e:43 SYS_VLAN_0100(0100) 0000 s SXE VR-
Default:2.3.44.5
00:04:96:9a:8d:6c SYS_BGP_0002(4082) 0000 s m S 57
00:04:96:9a:8d:6c isc(3999) 0000 s m S 57
00:04:96:9a:8d:b8 SYS_VLAN_0100(0100) 0000 s SXE VR-
Default:2.3.44.5
00:04:96:9a:8d:b8 SYS_BGP_0003(4081) 0058 d m 49
# show iparp
VR Destination Mac Age Static VLAN VID Port
VR-Default 50.1.1.10 00:04:96:9a:8d:b8 0 YES SYS_VLAN_0100 100 VR-
Default:2.3.44.5
VR-Default 50.1.1.100 00:04:96:99:9e:43 0 YES SYS_VLAN_0100 100 VR-
Default:2.3.44.5
VR-Default 2.3.44.5 00:04:96:9a:8d:b8 20 NO SYS_BGP_0003 4081 49
VR-Default 99.1.1.100 00:04:96:9a:8d:6c 20 NO isc 3999 57
FA Server 2
# show fabric attach elements
Fabric Attach Mode: Server
Mgmt Auto
System Id Port Type VLAN Tag Provision
----------------------------- ------- ---------------- ---- --- --------------
00-04-96-9a-8d-45-00-01-00-18 15 Proxy (No Auth) None Mix Disabled
00-04-96-9a-8d-45-00-01-00-10 33 Proxy (No Auth) None Mix Disabled
* (pacman debug) FAserver2VPEX_2.11 # show fabric attach assignments
Fabric Attach Mode: Server
Port VLAN VLAN Name Type ISID/NSI Status
------- ---- -------------------------------- ------- -------- --------
15 100 SYS_VLAN_0100 Dynamic 2800100 Active
15 101 SYS_VLAN_0101 Dynamic 2800101 Active
# show virtual-network
Virtual Network Flags Tenant VLAN
Encap ID Encap Flags
================================================================================
SYS_VNET_02800100 --S SYS_VLAN_0100
VXLAN 2800100 LRX
SYS_VNET_02800101 --S SYS_VLAN_0101
VXLAN 2800101 LRX
================================================================================
Flags: (S) System Configured, (T) OTM Configured, (V) OVSDB Configured
Encap Flags: (L) Local Endpoints Configured,
(R) Remote Endpoints Associated,
(X) Exclude Tag
----------------------------------------
Total number of Virtual Networks : 2
Local Endpoints : 3.3.4.4 (VR-Default)
Network Ports [VXLAN] : 1-64
Dynamic Virtual Networks : On
# show fdb
MAC VLAN Name( Tag) Age Flags Port /
Virtual Port List
------------------------------------------------------------------------------------------
------------
00:04:96:98:a9:1a SYS_VLAN_0100(0100) 0076 d m S 15
00:04:96:99:9e:43 SYS_VLAN_0100(0100) 0000 s SXE VR-
Default:2.3.44.5
00:04:96:9a:8d:b8 SYS_VLAN_0100(0100) 0000 s SXE VR-
Default:2.3.44.5
00:04:96:9a:8d:b8 SYS_BGP_0003(4086) 0040 d m 61
00:04:96:9c:d4:5a SYS_BGP_0002(4087) 0000 s m S 53
00:04:96:9c:d4:5a isc(3999) 0000 s m S 53
# show iparp
VR Destination Mac Age Static VLAN VID Port
VR-Default 50.1.1.1 00:04:96:98:a9:1a 1 NO SYS_VLAN_0100 100 15
VSP1---VSP2
\/
And so ExtremeXOS Fabric Attach proxy creates Fabric Attach Automatic LAG bundling
on 1:57 and 1:58 ports.
# show ports 1:57 sharing
Load Sharing Monitor
Config Current Agg Min Ld Share Ld Share Agg Link Link Up
Master Master Control Active Algorithm Flags Group Mbr State Transitions
================================================================================
1:57 1:57 Static 1 L3 Ad 1:57 Y A 5
L3 d 1:58 Y A 2
================================================================================
Link State: A-Active, D-Disabled, R-Ready, NP-Port not present, L-Loopback
Minimum Active: (<) Group is down. # active links less than configured minimum
Load Sharing Algorithm: (L2) Layer 2 address based, (L3) Layer 3 address based
(L3_L4) Layer 3 address and Layer 4 port based
(custom) User-selected address-based configuration
Custom Algorithm Configuration: ipv4 L3-and-L4, xor
Custom Hash Seed: Switch MAC address (0x96ED4C00)
Flags:
A - All: Distribute to all members,
d - Dynamically created shared port,
L - Local Slot: Distribute to members local to ingress slot,
P - Port Lists: Distribute to per-slot configurable subset of members,
-----------------------------------------------------------------------------
LLDP Port 1:57 detected 1 neighbor
Neighbor: 00:04:96:B0:70:00/1/3, age 27 seconds
- Chassis ID type: MAC address (4)
Chassis ID : 00:04:96:B0:70:00
- Port ID type: ifName (5)
Port ID : "1/3"
- Time To Live: 120 seconds
- System Name: "VSP4900-CORE2"
- System Description: "VSP-4900-24XE (8.2.0.0_B028) (PRIVATE)"
- System Capabilities : "Bridge, Router"
Enabled Capabilities: "Bridge, Router"
- Management Address Subtype: IPv4 (1)
Management Address : 10.127.16.69
Interface Number Subtype : Unknown (1)
Interface Number : 0
Object ID String : "null"
- Port Description: "Extreme Networks Virtual Services Platform VSP-4900\
-24XE - 10GbCX Port 1/3"
- Avaya/Extreme Fabric Attach element
Element Type : 4
State : 8
Management Vlan: 0
SystemId : 00:01:00:00:01:cc
Link Info : 30-9b-00-9b
Connection Type: MLT
SMLT ID : 155
MLT ID : 155
EXOS Slot:Port : 1:57 (Master Port)
-----------------------------------------------------------------------------
LLDP Port 1:58 detected 1 neighbor
Neighbor: 00:04:96:B0:68:00/1/9, age 28 seconds
- Chassis ID type: MAC address (4)
Chassis ID : 00:04:96:B0:68:00
- Port ID type: ifName (5)
Port ID : "1/9"
- Time To Live: 120 seconds
- System Name: "VSP4900-CORE1"
- System Description: "VSP-4900-24XE (8.2.0.0_B028) (PRIVATE)"
- System Capabilities : "Bridge, Router"
Enabled Capabilities: "Bridge, Router"
- Management Address Subtype: IPv4 (1)
Management Address : 10.127.16.68
Interface Number Subtype : Unknown (1)
Interface Number : 0
Object ID String : "null"
- Port Description: "Extreme Networks Virtual Services Platform VSP-4900\
-24XE - 10GbCX Port 1/9"
- Avaya/Extreme Fabric Attach element
Element Type : 4
State : 8
Management Vlan: 0
SystemId : 00:01:00:00:01:cc
Link Info : 30-9b-00-9b
Connection Type: MLT
SMLT ID : 155
MLT ID : 155
EXOS Slot:Port : 1:57 (Master Port)
Policies are used by the routing protocol applications to control the advertisement,
reception, and use of routing information by the switch. Using policies, a set of routes
can be selectively permitted (or denied) based on their attributes, for advertisements in
the routing domain. The routing protocol application can also modify the attributes of
the routing information, based on the policy statements.
Policies are also used by the ACL (Access Control List) application to perform packet
filtering and forwarding decisions on packets. The ACL application will program these
policies into the packet filtering hardware on the switch. Packets can be dropped,
forwarded, moved to a different QoS (Quality of Service) profile, or counted, based on
the policy statements provided by the policy manager.
Policies are created by writing a text file on a separate machine and then downloading
it to the switch. Once on the switch, the file is then loaded into a policy database to
be used by applications on the switch. Policy text files can also be created and edited
directly on the switch.
Note
Although ExtremeXOS does not prohibit mixing ACL and routing type entries
in a policy file, it is best to use separate policy files for ACL and routing policies
instead of mixing the entries.
When you create a policy file, name the file with the policy name that you will use when
applying the policy, and use “ .pol” as the filename extension. For example, the policy
name “boundary” refers to the text file “boundary.pol”.
1. To edit a policy file on the switch by launching the editor, enter the command:
edit policy filename.pol
When a file first opens, you are in the command mode.
2. To write in the file, use the keyboard arrow keys to position your cursor within the file,
then press one of the following keys to enter input mode:
a. [i]—Inserts text ahead of the initial cursor position.
b. [a]—Appends text after the initial cursor position.
3. To escape the input mode and return to the command mode, press the [Esc] key.
Several commands can be used from the command mode. The following commands
are the most commonly used:
• [dd]—Deletes the current line.
• [yy]—Copies the current line.
• [p]—Pastes the line copied.
• [:w]—Writes (saves) the file.
• [:q]—Quits the file if no changes were made.
• [:q!]—Forcefully quits the file without saving changes.
• [:wq]—Writes and quits the file.
Checking Policies
A policy file can be checked to see if it is syntactically correct. This command can only
determine if the syntax of the policy file is correct and can be loaded into the policy
manager database. Since a policy can be used by multiple applications, a particular
application may have additional constraints on allowable policies.
Refreshing Policies
When a policy file is changed (such as adding, deleting an entry, adding/deleting/
modifying a statement), the information in the policy database does not change until
the policy is refreshed. The user must refresh the policy so that the latest copy of policy
is used. When the policy is refreshed, the new policy file is read, processed, and stored
in the server database.
Note
Performing a refresh on multiple ports requires the original and modified
policy to coexist at the same time in the intermittent state. If this is not
possible due to slice limitations, the refresh will fail with "ACL slice full" error.
• To control the behavior of the switch during an ACL refresh, enter the commands:
enable access-list refresh blackhole
disable access-list refresh blackhole
In releases previous to ExtremeXOS 11.4, when ACLs were refreshed, all the ACL
entries were removed, and new ACL entries were created to implement the newly
applied policy.
Beginning in release 11.4, the policy manager uses Smart Refresh to update the
ACLs. When a change is detected, only the ACL changes needed to modify the ACLs
are sent to the hardware, and the unchanged entries remain. This behavior avoids
having to blackhole packets because the ACLs have been momentarily cleared.
Smart Refresh works well up for up to 200 changes. If the number of changes
exceeds 200, you will see this message: Policy file has more than 200 new rules.
Smart refresh can not be carried out. Following this message, you will see a prompt
based on the current blackhole configuration. If blackhole is disabled you will see the
following prompt:
Note, the current setting for Access-list Refresh Blackhole is Disabled. WARNING: If
a full refresh is performed, it is possible packets that should be denied may be
forwarded through the switch during the time the access list is being installed.
Would you like to perform a full refresh?
Note
ACL refresh may take additional time if the ACL is applied on multiple
VLANs with several ACL slices already in the filled state. Additionally, in
SummitStack, ACL refresh happens sequentially, such that after successful
installation on one node, it will be applied to other nodes one-by-one,
causing a slight delay in refresh operation.
Applying Policies
ACL policies and routing policies are applied using different commands.
When you use the any keyword, the ACL is applied to all the interfaces and is
referred to as the wildcard ACL. This ACL is evaluated for any ports without specific
ACLs, and it is also applied to any packets that do not match the specific ACLs
applied to the interfaces.
Commands that use the keyword import-policy are used to change the attributes of
routes installed into the switch routing table by the protocol. These commands cannot
be used to determine the routes to be added to the routing table.
The following are examples for the BGP (Border Gateway Protocol) and RIP (Routing
Information Protocol) protocols:
Commands that use the keyword route-policy control the routes advertised or
received by the protocol. Following are examples for BGP and RIP:
ACLs Overview
An ACL is used to define packet filtering and forwarding rules for traffic traversing the
switch. Each packet arriving on an ingress port and/or VLAN (Virtual LAN) is compared
to the access list applied to that interface and is either permitted or denied. Packets
egressing an interface can also be filtered on the platforms listed for this feature in the
Switch Engine Licensing Guide document. However, only a subset of the filtering
conditions available for ingress filtering are available for egress filtering.
In addition to forwarding or dropping packets that match an ACL, the switch can also
perform additional operations such as incrementing counters, logging packet headers,
mirroring traffic to a monitor port, sending the packet to a QoS (Quality of Service)
profile, and metering the packets matching the ACL to control bandwidth. (Metering
is supported only on the platforms listed for this feature in the Switch Engine
Licensing Guide document.) Using ACLs has no impact on switch performance (with
the minor exception of the mirror-cpu action modifier).
ACLs are typically applied to traffic that crosses Layer 3 router boundaries, but it is
possible to use access lists within a Layer 2 virtual LAN (VLAN).
ACLs in ExtremeXOS apply to all traffic. For example, if you deny all the traffic to a
port, no traffic, including control packets, such as OSPF (Open Shortest Path First) or
RIP (Routing Information Protocol), will reach the switch and the adjacency will be
dropped.
Note
Some locally CPU-generated packets are not subject to egress ACL processing.
ACLs are created in two different ways. One method is to create an ACL policy file
and apply that ACL policy file to a list of ports, a VLAN, or to all interfaces. The second
method to create an ACL is to use the CLI to specify a single rule, called a dynamic ACL;
this is the default.
Note
ACLs applied to a VLAN are actually applied to all ports on the switch, without
regard to VLAN membership. The result is that resources are consumed per
chip.
An ACL policy file is a text file that contains one or more ACL rule entries. This first
method creates ACLs that are persistent across switch reboots, can contain a large
number of rule entries, and are all applied at the same time. See ACL Rule Syntax on
page 784 for information about creating ACL rule entries.
Policy files are also used to define routing policies. Routing policies are used to control
the advertisement or recognition of routes communicated by routing protocols. ACL
policy files and routing policy files are both handled by the policy manager, and the
syntax for both types of files is checked by the policy manager.
Note
Although ExtremeXOS does not prohibit mixing ACL and routing type entries
in a policy file, it is strongly recommended that you do not mix the entries and
do use separate policy files for ACL and routing policies.
Dynamic ACLs persist across reboots; however, you can configure non-persistent
dynamic ACLS that disappear when the switch reboots. Dynamic ACLs consist of
only a single rule. Multiple dynamic ACLs can be applied to an interface. See Layer-2
Protocol Tunneling ACLs on page 805 for information about creating dynamic ACLs.
The precedence of ACLs can be configured by defining zones and configuring the
priority of both the zones and the ACLs within a zone. See Configuring ACL Priority on
page 810 for more information.
Two-Stage ACL
The following diagram shows the three ACL processors available that can be used for
filtering the packets at various stages of processing:
Ingress Egress
VLAN stage
stage stage
Second Stage ACL / Ingress Filter Processor: is used to filter packets for ingress
processing and is the primary hardware resource used for ingress user ACLs. While
this stage follows the L2 and L3 lookups, the packet data presented to this stage is
pre-modified, except in the case of tunneling. In general, this stage is the most capable
and scalable of the 3 stages. Second stage ACL rules can additionally match the class-id
specified as an action in a first stage ACL rule. This is done by listing "class-id <class-id>"
in the match clause of the rule.
Egress ACL: is used to filter egressing packets after packet switching, queuing, and
buffering operations have been performed. It can be used to deny or modify (e.g.
802.1p, DSCP) packets but cannot be used to redirect or change QoS. In general, this
stage’s scale, actions, and match criteria are more limited than the ingress stage.
The two-stage ingress classification is supported for static user ACL policies, dynamic
CLI-driven user ACLs, and dynamic API-driven ACLs.
Platform Support
This feature is supported on all Universal platforms.
Feature Description
Rules in the first classifier are set up with an action to set class_id. Rules in the
second classifier are setup to use the class_id as the key to match on the identity
specific policies. The class_id is the common attribute between the two classifiers/
tables, uniquely identifies the role of the identity.
This feature introduces one new ACL action modifier for specifying the class-id from
the first stage that will be input into the second stage. It also introduces one new ACL
match criteria for matching the class-id within the second stage.
When a rule is installed in the first stage ACL table, it will be accounted for in the
"Stage: LOOKUP" section of show access-list usage acl-slice port port . When
a rule is installed in the second stage ACL table, it is accounted for in the "Stage:
INGRESS" section of this command. For example:
Virtual Slice : (*) Physical slice not allocated to any virtual slice.
5420F-48P-4XE.10 #
Limitations
• The second stage ACL will always override any qosprofile set in the First stage.
• A first stage ACL rule will not work for untagged traffic when "vlan-id" is used as a
matching condition or when applied to a vlan .
entry firststage_1 {
if{
ethernet-source-address 00:00:00:00:00:01;
} then {
class-id 7;
}}
entry firststage_2 {
if {
ethernet-source-address 00:00:00:00:00:02;
} then {
class-id 8;
}}entry firststage_3 {
if {
ethernet-source-address 00:00:00:00:00:03;
} then {
class-id 7;
}}
entry secondstage_1 {
if{
class-id 7;
destination-address 10.68.9.0/24;
} then {
permit;
}}
entry secondstage_2 {
if {
class-id 8;
destination-address 10.68.0.0/16;
} then {
permit;
}}entry secondstage_3 {
if {
} then
{entry permit_arp {
if {
ethernet-type 0x0806;
} then {
permit;
}
}
deny;
}}
The above example policy would have the following resulting behavior:
entry <ACLrulename>{
if {
<match-conditions>;
} then {
<action>;
<action-modifiers>;
}
}
entry udpacl {
if {
source-address 10.203.134.0/24;
destination-address 140.158.18.16/32;
protocol udp;
source-port 190;
destination-port 1200 - 1250;
} then {
permit;
}
}
entry DenyAllIngress{
if {
} then {
deny;
}
}
entry DenyAllEgress{
if {
source-address 0.0.0.0/0;
} then {
deny;
}
}
For example, the following policy, saved in the file denyping.pol, contains both a
comment and a description:
Note that the description begins with the tag @description and is a text string
enclosed in quotes.
• You can apply the policy to port 1 using the following command:
configure access-list denyping port 1
Match Conditions
You can specify multiple, single, or zero match conditions. If you do not specify a match
condition, all packets match the rule entry. Commonly used match conditions are:
• ethernet-source-address [mac-address | pre-defined-mac ] mask—Ethernet
source address
• ethernet-destination-address [mac-address | pre-defined-mac ] mask—
Ethernet destination address and mask
• ethernet-type value {mask value}—Ethernet type, accepts an optional mask.
• source-address prefix—IP source address and mask
• destination-address prefix—IP destination address and mask
• destination-port value {mask value}—IP destination port, accepts optional
mask
• source-port [value {mask value}|range]—TCP or UDP source port with
optional mask or TCP or UDP source port range
• destination-port [port {mask value} |range]—TCP or UDP destination port
with optional mask or TCP or UDP destination port range
• ttl value {mask value}—condition with optional mask that matches IPv4 Time-
To-Live and IPv6 Hop Limit.
• ip-tos value {mask value}—this condition accepts optional masks
• vlan-format—matches packets based on their VLAN format. Can be one of the
following values:
◦ untagged—all untagged packets
◦ single-tagged—all packets with only a single tag
◦ double-tagged—all packets with a double tag
◦ outer-tagged—all packets with at least one tag; for example, single tag or double
tag
• fragments—matches any fragment of fragmented packet, including the first
fragment
• first-fragments—matches only the first fragment of a fragmented packet.
• l4-match value offset offset mask mask value—generic bit-matching pattern
starting at the Layer 4 header of four separate chunks of 32-bits, each fully bit-
maskable with a unique offset. Unlike others, this match criteria can appear up to
four times in a single rule, each specified as a logical AND, to match up to four
separate chunks of 32-bits. Each chunk is fully bit-maskable with a unique offset. The
matching data must be within the first 128 bytes of the packet. This match criteria is
intended for advanced users only.
◦ value—32-bit value
◦ offset—number of bytes from the start of the Layer 4 header (for example, TCP
header)
◦ mask—32-bit mask value applied to value for matching. Mask is optional. The
default is 0xffffffff.
Actions
The actions are:
• permit—The packet is forwarded.
• deny—The packet is dropped.
The default action is permit, so if no action is specified in a rule entry, the packet is
forwarded.
Action Modifiers
Additional actions can also be specified, independent of whether the packet is dropped
or forwarded. These additional actions are called action modifiers. Not all action
modifiers are available on all switches, and not all are available for both ingress and
egress ACLs. The action modifiers are:
• class-id value 0-4095—Signifies that the rule will be installed in the LOOKUP
stage access-list resource. Class-id range varies from platform to platform.
• count countername—Increments the counter named in the action modifier.
Note
The CLEAR-Flow counters work when the ACL is applied to a VLAN, but not
if applied to a port or wildcard.
Note
On egress, count does not work in combination with deny action in some
platforms
• add-vlan-id—Adds a new outer VLAN ID. If the packet is untagged it will add a
VLAN tag to the packet. If the packet is tagged, it will add an additional VLAN tag.
Only supported in VLAN Lookup stage (VFP).
• byte-count byte counter name—Increments the byte counter named in the
action modifier
• packet-count packet counter name—Increments the packet counter named in
the action modifier.
• log—Logs the packet header.
• log-raw—Logs the packet header in hex format.
• meter metername—Takes action depending on the traffic rate. (Ingress and egress
meters are supported on the platforms listed for these features in the Switch Engine
Licensing Guide document.
• mirror—Rules that contain mirror as an action modifier will use a separate slice.
• mirror-cpu—Mirrors a copy of the packet to the CPU in order to log it. It is
supported only in ingress.
• qosprofile qosprofilename—Forwards the packet to the specified QoS profile.
◦ ingress—all platforms
◦ egress—does not forward the packets to the specified qosprofile. If the action
modifier “replace-dot1p” is present in the ACL rule, the dot1p field in the packet
is replaced with the value from associated qosprofile. All ExtremeSwitching
Universal switches.
• redirect ipv4 addr—Forwards the packet to the specified IPv4 address.
• redirect-no-replace-l2-sa IP nexthop address—Forwards the packet to the
specified IPv4 address without changing the source MAC address. Only apply to “L3
routable” traffic. Layer-2 traffic is not subject to matching.
Note
The maximum number of packets that can be counted with token packet-
count or count is 18,446,744,073,709,551,616. The maximum number of bytes
that can be counted with byte-count is also 18,446,744,073,709,551,616,
which is equivalent to 288,230,376,151,711,744 packets that are sized at 64
bytes.
Note
Each packet increments only one counter in the egress direction. When
there are multiple ACLs with action "count" applied in the port, only single
counter based on the slice priority work.
Logging Packets
Packets are logged only when they go to the CPU, so packets in the fastpath are
not automatically logged. You must use both the mirror-cpu action modifier and the
log or log-raw action modifier if you want to log both slowpath and fastpath packets
that match the ACL rule entry. Additionally, Kern.Info messages (or Kern.Card.Info on
SummitStack) are not logged by default. You must configure an EMS filter to log
these messages, for example, configure log filter DefaultFilter add event
kern.info. See the Status Monitoring and Statistics chapter for information about
configuring EMS.
Metering Packets
The meter metername action modifier applies a meter to the traffic defined by an ACL.
For more information, see Meters on page 874.
Mirroring Packets
You must enable port-mirroring on your switch. If you attempt to apply a policy that
requires port-mirroring, the mirror action will be disabled until you enable the port-
mirroring.
Starting with ExtremeXOS 30.1, a single ACL can have up to four mirror actions (each
with a different mirror instance) to accomplish mirroring the same packet to multiple
destinations (port, ERSPAN/remote-ip, RSPAN/remote-tag, etc).
Redirecting Packets
Packets are forwarded to the IPv4 address specified, without modifying the IP header
(except the TTL is decremented and the IP checksum is updated). The IPv4 address
must be in the IP ARP cache, otherwise the packet is forwarded normally. Only fast
path traffic can be redirected. This capability can be used to implement Policy-Based
Routing.
You may want to create a static ARP entry for the redirection IP address, so that
there will always be a cache entry. See Policy-Based Routing on page 839 for more
information.
entry voice_entry {
if {
source-address 2.2.2.2/32;
} then {
qosprofile qp8;
replace-dscp;
}
}
See Quality of Service on page 859 for more details about QoS profiles, and 802.1p and
DSCP replacement.
Table 82 lists general match conditions that apply to all traffic, unless otherwise noted.
Table 83 on page 803 the data types and details on using them.
1 However, packets using the Ethernet type for VMANs, 0x88a8 by default, are handled by VMAN
ACLs.
Note
When you use a configured ACL that contains a match condition with any MAC
address, IGMP snooping stops working and IGMP joins are flooded to all ports
in a VLAN. When you unconfigure the ACL, IGMP joins stop flooding.
Note
An ACL that matches the EAPS ethernet-destination-address
(00:e0:2b:00:00:04) or ethernet-source-address (00:e0:2b:00:00:01)
match condition with the permit action should not be applied to an EAPS
master node on EAPS ring ports. Doing so causes an EAPS PDU loop. For the
EAPS master node, you should use the copy-cpu-and-drop action with either
of these match conditions.
Note
Directed ARP response packets cannot be blocked with ACLs from reaching
the CPU and being learned.
Along with the data types described in Table 83, you can use the operators <, <=, >, and
>= to specify match conditions. For example, the match condition, source-port 190,
will match packets with a source port greater than 190. Be sure to use a space before
and after an operator.
if {
protocol tcp;
destination-port 120 - 150;
}
Then {
permit;
count destIp;
}
}
The fragments keyword cannot be used in a rule with L4 information. The syntax
checker will reject such policy files.
The following rules are used to evaluate fragmented packets or rules that use the
fragments or first-fragments keywords.
On all platforms, key width is configured manually (see Configuring Wide Key ACL
Modes on page 805) and applies to all ACLs on the switch. An individual switch
cannot be configured to operate in a mixed double- and single-wide mode. However,
a SummitStack can have a mixture of modules and switches with some of them
operating in a single-wide mode and some in a double-wide mode.
Double wide key ACLs allow additional condition combinations than single-wide ACLs.
The existing supported condition combinations are described in Table 86 on page 832.
The double-wide condition combinations that can be appended under the set union
operation to the single-wide condition combinations are as follows:
• OVID, DIP, SIP, IpInfo(First-Fragment,Fragments), IP-Proto, DSCP, TCP-Flag, L4SP,
L4DP
• SIPv6, IP-Proto, DSCP, TCP-Flag, L4SP, L4DP
For example, your single-wide mode supports condition combination A, B, and C, and
the double-wide mode adds condition combinations D1 and D2. Then in a single-wide
mode, the conditions of your rule should be a subset of either {A}, or {B}, or {C} and in a
double-wide mode, the conditions of your rule should be a subset of either {A U D1}, or
{A U D2}, or {B U D1}, or {B U D2}, or {C U D1}, or {C U D2}.
Limitations
Supported Platforms
When switching from single-wide key mode to double-wide key mode and rebooting,
the following conditions apply:
• Configurations that have less that one-half the number of ACL rules that the single-
wide key mode supports, reboot successfully.
• Configurations that have more than one-half the number of ACL rules that the
single-wide key mode supports, fail after the reboot.
When switching from double-wide key mode to single-wide key mode and rebooting,
the following conditions apply:
• Configurations that do not use the additional condition combinations that double-
wide key mode offers, reboot successfully.
• Configurations that use the additional condition combinations that the double-wide
key mode offers, fail after the reboot.
To display the wide key mode settings, use the following command:
The following fields within 802.3 Subnetwork Access Protocol (SNAP) and LLC
formatted packets can be matched:
• Destination service access point (SAP)
• Source SAP
The following field can be matched within Subnetwork Access Protocol (SNAP) packets
only:
• SNAP type
This action replaces the destination MAC address of any matching Layer-2 forwarded
packets on the supported platforms. This action can be used to effectively tunnel
protocol packets, such as STP (Spanning Tree Protocol), across a network by replacing
the well-known protocol MAC address with a different proprietary or otherwise unique
MAC address. After tunnel egress, the MAC destination address can be reverted back to
the well-known MAC address.
Note
The "replace-ethernet-destination-address" action applies only to Layer-2
forwarded packets.
A new ACL action token has been added to associate a byte counter with an ACL, and a
new corresponding token for a packet counter.
entry CountBytes {
if {
ethernet-source-address 00:aa:00:00:00:10;
} then {
byte-count CountBytes;
permit;
}
}
Below are two examples of ACL rules that use packet counters. The "packet-count"
token is a synonym of the existing "count" token.
entry CountPacket1 {
if {
ethernet-source-address 00:aa:00:00:00:10;
} then {
count CountPacket1;
permit;
}
}
entry CountPacket2 {
if {
ethernet-source-address 00:aa:00:00:00:10;
} then {
packet-count CountPacket2;
permit;
}
}
The output of the show access-list counter and show access-list dynamic
counter commands has been changed to include a new "Byte Count" column in
addition to the "Packet Count" column. When a rule utilizes a byte counter, the "Byte
Count" field is incremented and the "Packet Count" field stays at zero. If a rule utilizes a
packet counter, the "Packet Count" field is incremented and the "Byte Count" field stays
at zero.
Note
Byte counters and packet counters cannot be used at the same time in the
same rule.
Dynamic ACLs
Dynamic ACLs are created using the CLI. They use a similar syntax and can accomplish
the same actions as single rule entries used in ACL policy files. More than one dynamic
ACL can be applied to an interface, and the precedence among the dynamic ACLs can
be configured. By default, the priority among dynamic ACLs is established by the order
in which they are configured.
Note
Dynamic ACLs have a higher precedence than ACLs applied using a policy file.
entries, dynamic ACLs are created directly in the CLI. Use the following command to
create a dynamic ACL:
create access-list dynamic_rule conditions actions {non_permanent}
As an example of creating a dynamic ACL rule, compare an ACL policy file entry with
the CLI command that creates the equivalent dynamic ACL rule.
The following ACL policy file entry will drop all ICMP (Internet Control Message
Protocol) echo-requests:
entry icmp-echo {
if {
protocol icmp;
icmp-type echo-request;
} then {
deny;
}
}
To create the equivalent dynamic ACL rule, use the following command:
create access-list icmp-echo "protocol icmp;icmp-type echo-request"
"deny"
Notice that the conditions parameter is a quoted string that corresponds to the
match conditions in the if { ... } portion of the ACL policy file entry. The individual match
conditions are concatenated into a single string. The actions parameter corresponds
to the then { ... } portion of the ACL policy file entry.
From the command line you can get a list of match conditions and actions by using the
following command:
check policy attribute {attr}
The ACL rule shown in the example will be saved when the save command is executed,
because the optional keyword non-permanent was not configured. This allows the rule
to persist across system reboots.
Note also that the sample ACL rule does not specify an application to which the rule
belongs. The default application is CLI.
Limitations
Dynamic ACL rule names must be unique, but can be the same as used in a policy
file-based ACL. Any dynamic rule counter names must be unique. CLEAR-FLow rules
can be specified only in policy files and therefore apply only to rules created in a policy
file.
among the dynamic ACL rules. To configure the dynamic ACL rule on an interface, use
the following command:
An ACL can be created to be used when an edge port detects a loop. This ACL acts to
block looped frames while allowing the port to remain in a forwarding state rather than
shutting down. To configure a dynamic ACL for blocking looped STP BPDUs on port 6,
for example, use the following:
create access-list bpdu1 "ethernet-destination-address \
01:80:C2:00:00:00;" "deny; count bpdu1"
conf access-list add "bpdu1" first ports 6 ingress
To configure a dynamic ACL for blocking PVST frames on port 6, use the following:
create access-list bpdu2 "ethernet-destination-address \
01:00:0c:cc:cc:cd;" "deny; count bpdu2"
conf access-list add "bpdu2" first ports 6 ingress
For example, to block an ICMP echo-request on a management port, use the following:
create access-list echo "protocol icmp; icmp-type echo-request;" "deny; count echo"
conf access-list add "echo" first vlan "Mgmt" ingress
User Space zones consist of default zones and created zones. Default zones group
like functions and cannot be deleted.
The administrator has the ability to create new zones and configure the priority
of both default and created zones. See Configuring User Zones on page 811 for
discussion of created zones and applications. Applications insert ACLs into zones.
To view both System Space and User Space zones, use the show access-list zone
command.
Table 84 shows the priority of System Space zones and User Space zones together with
the default assignments and priority of applications by zone.
Note
The priority of static ACLs is determined by the order they are configured, with
the first rule configured having the highest priority.
Another way to configure ACL priority is by creating new zones. For example, you might
create a zone called MY_HIGH_ZONE, and assign that zone a priority below the DOS
zone and above the System zone. You can add applications to that zone and assign
their priority.
The example below shows the ACL zone priority that would result from adding the
MacInMac and Cli applications to MY_HIGH_ZONE:
1. SYSTEM_HIGH_ZONE
hal
2. DOS Zone
hal
DoS
3. MY_HIGH_ZONE
MacInMac
Cli
4. SYSTEM Zone
Dot1Ag
Dot1AgDefault
MacInMac
Cli
NetLogin
5. SECURITY Zone
FlowVSR
FlowVSRTS
Generic Xml
6. SYSTEM_LOW_ZONE
hal
Applications can insert an ACL into any of the zones to which the application belongs.
If an application attempts to insert an ACL into a zone where the application is not
configured, an error message appears, and the ACL is not installed. Therefore, you have
full control of ACL priorities and you can configure the switch to install ACLs from an
application at any priority level. In the example above, the application Cli can insert an
ACL into either MY_HIGH_ZONE or the SYSTEM zone. The location of the ACL within
the zone depends on the priority assigned by the application. An application can assign
priority to an ACL using:
• priority attributes (first or last)
• relative priority
• priority numbers
The priority attributes first (highest priority) and last (lowest priority) can be applied to
an ACL to establish its position within a zone.
Relative priority sets the ACL priority relative to another ACL already installed by the
application in the same zone.
Priority numbers allow an application to specify the priority of an ACL within a zone.
The priority numbers are unsigned integers from 0 to 7; a lower number represents a
higher priority. This means that if an application adds an ACL at priority 5 and later adds
another ACL at priority 3, the second ACL has higher priority.
If an application assigns the same priority number to two ACLs, the ACL added
most recently has the higher priority. It is inserted in the priority map immediately
ahead of the older ACL that has the same priority number. This effectively allows the
application to create sub-zones within a zone. The attributes first and last can be used
in combination with priority numbers to prioritize the ACLs within a sub-zone. For
example, an ACL could be configured with the first attribute, along with the same
priority number as other ACLs in the same zone, effectively assigning that ACL the
highest priority within a sub-zone.
The show configuration command shows the current configuration of the entire
switch in the form of CLI commands which can later be played back to configure the
switch.
The show configuration acl command shows the current configuration of the ACL
manager.
The new application keyword allows you to specify the application to which the ACL
will be bound. Typically, applications create and insert ACLs on the switch; however
the administrator can install ACLs "on behalf" of an application by specifying the
application keyword. (This keyword is also used with the show config acl command to
enable CLI playback). If no application is specified, the default application is CLI.
This means you have the ability to create, delete, and configure ACLs for any
application.
• To create a zone, use the following command:
A change in the zone list results in a change in the order of dynamic ACLs
that have been applied per interface. The changes in hardware are achieved by
uninstalling and then reinstalling the dynamic ACLs in the new positions. There is a
possibility, due to hardware constraints, that some ACLs will not be reinstalled. These
occurrences are logged.
• To delete an application from a zone, use the following command:
When you delete an application from a zone, any ACLs that have been inserted into
that zone for the deleted application are moved to the next higher zone in which the
application appears.
• To delete a zone, use the following command:
You must remove all applications from a zone before you can delete the zone. You
cannot delete the default zones.
This feature provides the ability to add a single attribute “source-zone,” or “destination-
zone” to an entry of a policy file. This entry is then expanded into multiple entries
depending upon the number of IP and/or MAC addresses configured in that particular
zone. If the zone is added to the policy with the keyword “source-zone,” the attributes
that are configured in that particular zone are added as either a “source-address” or an
“ethernet-source-address” in the policy. Conversely, if the network-zone is added as a
“destination-zone,” the attributes are added to the policies as a “destination-address,” or
an “ethernet-destination-address.”
After you make changes in the zones and issue a refresh of a specific zone, or all the
zones, the policies that have the corresponding zones configured as source-zone or
destination-zone in their entries are expanded and refreshed in the hardware.
If you configure the following policy to a port or VLAN, or through applications like
IdMgr or Extreme Network Virtualization (XNV),
Policy: test
entry e1 {
if match all {
source-zone zone1 ;
}
Then {
permit ;
}
}
and the network-zone “zone1” that is part of the policy is configured as below:
When you refresh the network-zone “zone1,” the policy is expanded as follows, and is
applied in the hardware:
entry Cl0:0_10.1.1.1_E1 {
if match all {
source-address 10.1.1.1 / 32 ;
} then {
permit ;
}
}
entry Cl0:0_10.1.1.1_E2 {
if match all {
source-address 10.1.1.1 / 28 ;
} then {
permit ;
}
}
entry Cl0:0_12.1.1.0_E3 {
if match all {
source-address 12.1.1.0 / 24 ;
} then {
permit ;
}
}
When the policy is configured with the network-zone, the zone may or may not
have attributes configured in it. In cases where the network-zone does not have
any attributes, the policy is created with entries that do not have the network-zone
attribute alone.
Policy: test2
entry e1 {
if match all {
source-zone zone2 ;
protocol udp ;
}
Then {
permit ;
}
}
entry e2 {
if match all {
protocol tcp ;
}
Then {
permit ;
}
}
And the network-zone “zone2” is just created, but is not configured with any attributes,
the policy appears as follows and has only the second entry “e2,” and not “e1”.
entry e2 {
protocol tcp;
}
Then {
permit;
}
}
Once the network-zone “zone2” is configured with one or more attributes, and
refreshed, the policy is updated accordingly. In this instance, the name of the entries
that have a source-zone or a destination-zone are changed. This is because each
entry in the original policy that has a source-zone/destination-zone is converted to a
maximum of eight entries in the new policy.
A single policy can have one or more network-zones configured in it. It can also have
the same network-zone in multiple entries with different combinations, as well as
support for other attributes in the policy file. Similarly, the same network-zone can be
configured to multiple policies. In cases where the policy has multiple network-zones,
and only some of those network-zones are refreshed, the entries that correspond to
those specific network-zones are alone refreshed, and not entries that correspond to
the other network-zones.
After you refresh a network-zone, all the policies that have the specified network-zone
are modified, and a refresh for each of those policies is sent to the hardware. The
command succeeds only after receiving a successful return for all the policies that
have this particular network-zone. If for some reason one of the policy’s refresh fails in
the hardware, all the policies that are supposed to refresh are reverted back to their
previous successful state, and the command is rejected.
Additionally, the configuration or refresh can fail if the attributes in the network-zone
are not compatible with the attributes in the corresponding entries of the policy. For
example, in platforms that do not support wide-key or UDF, a policy entry cannot have
Layer 2 attributes and Layer4 attributes. In such cases, if the entry has “protocol tcp”
and a network-zone that has an ethernet source address, the configuration fails in the
hardware.
In cases where the refresh fails, the content of the policy and the content of the
network-zone may go out of sync, because the policy reverts back to the last successful
state, whereas the network-zone will contain the last configured values.
Here is an example:
Once this configuration is refreshed and is successfully installed in the hardware, the
policy will look like the following:
entry Cl0:0_10.1.1.1_E1 {
if match all {
source-address 10.1.1.1 / 32 ;
} then {
permit ;
}
}
entry Cl0:0_10.1.1.1_E2 {
if match all {
source-address 10.1.1.1 / 28 ;
} then {
permit ;
}
}
If you remove 10.1.1.1/28, and adds 10.1.1.1/24 to the network-zone and perform a refresh,
and if for some reason the policy refresh fails, the policy and the network-zone will look
like this:
entry Cl0:0_10.1.1.1_E1 {
if match all {
source-address 10.1.1.1 / 32 ;
} then {
permit ;
}
}
entry Cl0:0_10.1.1.1_E2 {
if match all {
source-address 10.1.1.1 / 28 ;
} then {
permit ;
}
}
Creating a Network-Zone
To create a network-zone with the specified name, enter the command below. You can
then associate this network-zone with the policy file using either the source-zone or
destination-zone attribute.
create access-list network-zone zone_name
Here is an example:
Switch# create access-list network-zone zone1
If you try to create a network-zone that is already created, the following error message
is displayed on the console, and the command is rejected:
Switch# create access-list network-zone zone1
Error: Network Zone "zone1" already exists.
Deleting a Network-Zone
To delete a network-zone, and all the configurations that belong to the zone, enter the
following command:
delete access-list network-zone zone_name
Here is an example:
Switch# delete access-list network-zone zone1
If you try to delete a network-zone that is bound with one or more policy files, the
following error message is displayed, and the command is rejected:
Switch# delete access-list network-zone zone1
Error: Network Zone "zone1" - Unable to delete zone. Zone has one
or more policies.
To add or remove IP/MAC addresses to or from the network-zone, enter the following
command:
configure access-list network-zone zone_name [add | delete] [mac-address
macaddress {macmask} | ipaddress [ipaddress {netmask} | ipNetmask |
ipv6_address_mask]]
Here is an example:
Switch# configure access-list network-zone zone1 add ipaddress 11.1.1.1/24
If you try to add the same IP/MAC with the same or narrow mask, the configuration is
rejected, with the following error message:
Switch# configure access-list network-zone "zone1" add ipaddress 11.1.1.1/32
Error: Network Zone "zone1" - Zone already has the same entity value with same or wider
mask.
If the you try to add more than eight attributes to a network-zone, the following error
message is issued:
Switch# configure access-list network-zone "zone1" add ipaddress 11.1.1.1/24
Error: Network Zone "zone1" - Reached maximum number of attributes. Unable to add more.
Refreshing Network-Zones
Here is an example:
Switch# refresh access-list network-zone zone1
Note
When you issue the command to refresh a network-zone, or all network-zones,
it can take a long time to clear the CLI because each individual policy must be
converted before it is refreshed. The command succeeds, or fails, only after it
receives a success response for all policy refresh, or when a first refresh failure is
received from the hardware.
If the refresh fails for a specific zone, the following error message is printed on the
console.
Switch# refresh access-list network-zone zone1
Error: Refresh failed for network-zone "zone1".
Example
Switch# sh access-list network-zone
============================================================
Network Zone No. of No. of Policies
Entities Bound
============================================================
zone1 5 2
zone2 3 1
zone3 0 0
============================================================
Total Network Zones : 3
The following example displays detailed information about a specific network zone, the
attributes configured in the zone, and the policies bound to the zone:
Switch# show access-list network-zone zone1
Network-zone : zone1
Total Attributes : 3
Attributes : 10.1.1.1 / 32
10.1.1.1 / 30
10.1.1.0 / 24
No. of Policies : 1
Policies : test
Switch # sh access-list network-zone zone2
Network-zone : zone2
No. of Entities : 3
Entities : 00:00:00:00:00:22 / ff:ff:ff:ff:ff:ff
00:00:00:00:00:23 / ff:ff:ff:ff:00:00
00:00:00:00:00:24 / ff:ff:ff:ff:ff:00
No. of Policies : 0
entry one {
if {
ccos 3;
} then {
meter m1;
count c1;
}
}
Precedence
This section describes the precedence for evaluation among ACL rules for
ExtremeSwitching series switches. In many cases there will be more than one ACL rule
entry for an interface. This section describes how multiple rule entries are evaluated.
Multiple rule entries do consume hardware resources. If you find that your situation
runs up against those limits, there are steps you can take to conserve resources by
modifying the order of the ACL entries that you create. For details, see ACL Mechanisms
on page 825.
Rule Evaluation
When there are multiple rule entries applied to an interface, evaluation proceeds as
follows:
• A packet is compared to all the rule entry match conditions at the same time.
• For each rule where the packet matches all the match conditions, the action and
any action modifiers in the then statement are taken. If there are any actions
or action modifiers that conflict (deny vs. permit, etc), only the one with higher
precedence is taken.
• If a packet matches no rule entries in the ACL, it is permitted.
Often there will be a lowest-precedence rule entry that matches all packets. This entry
will match any packets not otherwise processed, so that the user can specify an action
to overwrite the default permit action. This lowest-precedence rule entry is usually the
last entry in the ACL policy file applied to the interface.
Redundant Rules
For ExtremeSwitching series switches, eliminate redundant rules (any with the EXACT
same match criteria) in the policy file. If two rules have identical match conditions, but
different actions, the second rule is rejected by the hardware.
For example, the two following ACL entries are not allowed:
entry DenyNMR {
if {
protocol 17;
destination-port 161;
} then {
deny;
count denyNMR;
}
}
entry DenyNIC {
if {
protocol 17;
destination-port 161;
} then {
deny;
count denyNIC;
}
}
If you use the any keyword, the ACL is applied to all the interfaces and is referred to as
the wildcard ACL. This ACL is evaluated for any ports without specific ACLs, and it is also
applied to any packets that do not match the specific ACLs applied to the interfaces.
To display which interfaces have ACLs configured, and which ACL is on which interface,
use the following command:
Note
If an ACL needs to be installed for traffic that is L3 routed, and the ingress/
egress ports are on different packet-processing units or different slots, and any
of the following features are enabled, we recommend that you install the policy
on a per-port basis rather than applying it as a wildcard, or VLAN-based ACL.
•
• PVLAN
• Multiport-FDB (forwarding database)
entry udpacl {
if {
source-address 10.203.134.0/24;
destination-address 140.158.18.16/32;
protocol udp;
source-port 190;
destination-port 1200 - 1250;
} then {
permit;
}
}
The following rule entry accepts TCP packets from the 10.203.134.0/24 subnet with a
source port larger than 190 and ACK & SYN bits set and also increments the counter
tcpcnt. The packets will be forwarded using QoS profile QP3.
entry tcpacl {
if {
source-address 10.203.134.0/24;
protocol TCP;
source-port > 190;
tcp-flags syn_ack;
} then {
permit;
count tcpcnt ;
qosprofile qp3;
}
}
The following example denies ICMP echo request (ping) packets originating from the
10.203.134.0/24 subnet, and increments the counter icmpcnt:
entry icmp {
if {
source-address 10.203.134.0/24;
protocol icmp;
icmp-type echo-request;
} then {
deny;
count icmpcnt;
}
}
The following example prevents TCP connections from being established from the
10.10.20.0/24 subnet, but allows established connections to continue, and allows TCP
connections to be established to that subnet. A TCP connection is established by
sending a TCP packet with the SYN flag set, so this example blocks TCP SYN packets.
entry permit-established {
if {
source-address 10.10.20.0/24;
protocol TCP;
tcp-flags syn;
} then {
deny;
}
}
The following entry denies every packet and increments the counter default:
entry default {
if {
} then {
deny;
count default;
}
}
The following entry permits only those packets with destination MAC addresses whose
first 32 bits match 00:01:02:03:
entry rule1 {
if {
ethernet-destination-address 00:01:02:03:01:01 ff:ff:ff:ff:00:00 ;
} then {
permit ;
}
}
The following entry denies IPv6 packets from source addresses in the
2001:db8:c0a8::/48 subnets and to destination addresses in the 2001:db8:c0a0:1234::/64
subnets:
entry ipv6entry {
if {
source-address 2001:DB8:C0A8:: / 48;
destination-address 2001:DB8:C0A0:1234:: / 64;
} then {
deny;
}
}
Access lists have entries to match an Ethernet type, so be careful when configuring
access lists to deny all traffic. For example, the following rule entries permit traffic only
to destination 10.200.250.2 and block any other packet.
entry test_policy_4 {
if {
source-address 0.0.0.0/0;
destination-address 10.200.250.2/32;
} then {
permit;
count test_policy_permit;
}
}
# deny everyone else
entry test_policy_99 {
if {
} then {
deny;
count test_policy_deny;
}
}
Since the deny section does not specify an Ethernet type, all traffic other than IP
packets destined to 10.200.250.2/32 are blocked, including the ARP packets. To allow
ARP packets, add an entry for the Ethernet type, 1x0806, as shown below.
entry test_policy_5 {
if {
ethernet-type 0x0806;
} then {
permit;
count test_policy_permit;
}
}
The following entries use vlan-ids to set up meters based on individual VLANs.
myServices.pol
entry voiceService {
if {
vlan-id 100;
} then {
meter voiceServiceMeter;
}
}
entry videoService {
if {
vlan-id 101;
} then {
meter videoServiceMeter;
}
}
…and so on.
To bind this ACL to a port with vlan-id match criteria use the following command:
config access-list myServices port <N>
The following entry shows how to take action based on VLAN tag priority information.
In this example, the dot1p match keyword is used to allow and count every tagged
packet with a VLAN priority tag of 3.
entry count_specific_packets {
if {
dot1p 3;
} then {
count allowed_pkts;
permit;
}
}
ACL Mechanisms
For many applications of ACLs, it is not necessary to know the details of how ACLs
work. However, if you find that your application of ACLs is constrained by hardware
limitations, you can often rearrange the ACLs to use the hardware more efficiently. The
following sections go into some detail about how the ACLs use hardware resources,
and provide some suggestions about how to reorder or rewrite ACLs to use fewer
resources.
• ACL Slices and Rules.
• ACL Counters—Shared and Dedicated.
Instead of the per port masks used in earlier switches, these platforms use slices that
can apply to any of the supported ports. An ACL applied to a port may be supported by
any of the slices.
When ACLs are applied, the system programs each slice to select parts of the packet
information to be loaded into it. For example, one possible way a slice can be
programmed allows it to hold the information about a packet’s ingress port, source and
destination IP address, IP protocol, source and destination Layer 4 ports, DSCP value,
TCP flag, and if it is a first fragment. Any rule entry that consists of match conditions
drawn from that list is compatible with that slice. This list of conditions is just one
example. A complete description of possible ways to program a slice is discussed in
Compatible and Conflicting Rules on page 829.
In the following example, the two rule entries are compatible and require only one
slice in hardware even though they are applied to different ports. The following entry is
applied to port 1:
entry ex_A {
if {
source-address 10.10.10.0/24 ;
destination-port 23 ;
protocol tcp ;
} then {
deny ;
}
}
entry ex_B {
if {
destination-address 192.168.0.0/16 ;
source-port 1000 ;
protocol tcp ;
} then {
deny ;
}
}
Both of these ACLs could be supported on the same slice, since the match conditions
are taken from the example list discussed earlier. This example is shown in the
following figure. In the example, we refer to slice A, even though the slices are
numbered. Slice A just means that one slice is used, but does not specify a particular
slice. Some rules require more than one slice, so we use letters to show that different
slices are used, but not which specific slices.
For example, consider the following 129 rule entries applied to ports 3-7:
entry one {
if {
source-address 10.66.10.0/24 ;
destination-port 23 ;
protocol tcp ;
} then {
deny ;
}
}
entry two {
if {
destination-address 192.168.0.0/16 ;
source-port 1000 ;
protocol tcp ;
} then {
deny ;
}
}
entry three {
if {
source-address 10.5.2.246/32 ;
destination-address 10.0.1.16/32 ;
protocol udp ;
source-port 100 ;
destination-port 200 ;
} then {
deny ;
}
}
....
[The 125 intervening entries are not displayed in this example]
....
entry onehundred_twentynine {
if {
protocol udp ;
destination-port 1714 ;
} then {
deny ;
}
}
The following figure shows the result of applying the 129 entries; 128 of the entries
are applied to one slice, and the final entry is applied to a different slice. If another
compatible entry is applied from another port, for example, it will use Slice B.
The slices can support a variety of different ACL match conditions, but there are some
limitations on how you combine the match conditions in a single slice. A slice is divided
up into fields, and each field uses a single selector. A selector is a combination of
match conditions or packet conditions that are used together. To show all the possible
combinations, the conditions in Table 85 are abbreviated.
Table 86 lists all the combinations of match conditions that are available. Any number
of match conditions in a single row for a particular field may be matched. For example
if Field 1 has row 1 (Port-list) selected, Field 2 has row 8 (MACDA, MACSA, Etype,
OVID) selected, and Field 3 has row 7 (Dst-Port) selected, any combination of Port-list,
MACDA, MACSA, Etype, OVID, and Dst-Port may be used as match conditions.
If an ACL requires the use of field selectors from two different rows, it must be
implemented on two different slices.
Egress ACLs
Each of the four egress slices can be configured to one of the three combinations
below. The rules that can be installed into a particular slice should be a subset of the
combination to which that slice is configured.
Use the the tables inCompatible and Conflicting Rules on page 829 to determine which
ACL entries are compatible. If the entries are compatible, they can be on the same slice.
entry ex_A {
if {
source-address 10.10.10.0/24 ;
destination-port 23 ;
protocol tcp ;
} then {
deny ;
}
}
entry ex_B {
if {
destination-address 192.168.0.0/16 ;
source-port 1000 ;
} then {
deny ;
}
}
Entry ex_A consists of the following conditions (using the abbreviations from the
following table), SIP, L4DP, and IP-Proto. Entry ex_B is DIP, L4SP. Since they are applied
to ports, the selector for Field 1 is Port-list (the first item). The selector for Field 2 would
be the first item, and Field 3 could be any item.
Our other example entries are also compatible with the entries ex_A and ex_B:
entry one {
if {
source-address 10.66.10.0/24 ;
destination-port 23 ;
protocol tcp ;
} then {
deny ;
}
}
entry two {
if {
destination-address 192.168.0.0/16 ;
source-port 1000 ;
} then {
deny ;
}
}
entry three {
if {
source-address 10.5.2.246/32 ;
destination-address 10.0.1.16/32 ;
protocol udp ;
source-port 100 ;
destination-port 200 ;
} then {
deny ;
}
}
Entry one is SIP, L4DP, and IP-Proto; entry two is DIP, and L4SP; entry three is SIP, DIP,
IP-Proto, L4SP, and L4DP. All of these examples can use the first item in Field 2 in the
tables.
entry alpha {
if {
ethernet-destination-address 00:e0:2b:11:22:33 ;
} then {
deny ;
}
}
This will not be compatible with the earlier one. Entry alpha is MACDA, and there is
no MACDA in the first item for Field 2. Any entry with MACDA will have to use selector
7 or 8 from the following table (or 6 or 7 from the following table, depending on the
platform). If an entry requires choosing a different selector from the table, it is not
compatible and must go into a different slice.
Prior to ExtremeXOS 16.1, when two user rules in two separate slices are matched by
a packet, the non-conflicting actions from both of the rules are executed. This feature
allows you to put all user rules into a single virtual group. When rules are in a single
virtual group, even when two rules in two separate virtual slices are matched, only the
actions of the highest precedence rule are executed. In effect, in this mode, multiple
slices behave as a big single virtual slice.
Normally ACL hardware works in the following way: on arrival of a packet, all N slices are
searched in parallel to find a possible match in each of these N slices. In each slice, upon
finding the first match, the search within that slice stops. In other slices the search
continues until a match is found or the end of the slice is reached. Thus, a single slice
can produce only a single match, but all N slices combined together can produce up to
N matches for a given packet.
In the case of multiple matches in multiple slices, all the actions of the rule in the
highest priority virtual slice are executed. In addition, all the actions from the lower
priority rules from the lower priority virtual slices are executed if those additional
actions do not conflict with the actions of the highest priority rule. An example of
non-conflicting with each other actions would be "permit" and "count". An example of
conflicting with each other actions would be "permit" and "deny".
However, in more recent chipsets a new mode of operation was introduced where you
can combine a few virtual slices into one big virtual group. In this mode of operation,
even if a packet gets multiple matches from multiple virtual slices within the same
virtual group, only the actions of the highest priority rule are executed, whereas the
actions from the lower priority rules are not executed at all, even if those actions do not
conflict with the actions of the highest priority rule.
This feature allows choosing between the old way of operation where every virtual slice
is in its own virtual group and multiple matches are possible, and the new way, where
all user ACL’s virtual slices are in the same virtual group and multiple matches are not
possible.
Note
Some platforms that do not support virtual groups. On those chipsets even
if single virtual group feature is enabled, ACL will operate in the old way and
multiple matches would be still possible.
Note
The user ACLs may not be compatible with the slice used by this ESRP rule.
This may result in the reduction the number of rules available to the user by
127.
Note
Additional rule is created for every active IPv6 interface and for routes with
prefix greater than 64 in following cards for Black Diamond. These rules
occupy a different slice. G48Ta,10G1xc,G48Te, G48Pe, G48Ta, G48Xa, 10G4Xa,
10G4Ca, G48Te2, G24Xc, G48Xc, G48Tc, 10G4Xc, 10G8Xc, S-G8Xc, S-10G1Xc.
To display the number of slices used by the ACLs on the slices that support a particular
port, use the following command:
show access-list usage acl-slice port port
To display the number of rules used by the ACLs on the slices that support a particular
port, use the following command:
To display the number of Layer 4 ranges used by the ACLs on the slices that support a
particular port, use the following command:
show access-list usage acl-range port port
Slice resource exceeded: This happens when all slices are allocated for a given chip
and an additional incompatible rule (see Egress ACLs on page 832) is installed which
requires allocation of another slice.
• Error: ACL install operation failed - rule hardware full for port 3:1
Rule resource exceeded: This happens when all slices are allocated for a given chip
and there is an attempt to install a compatible rule to the lowest precedence slice
which already has 128 rules. This condition can be triggered with less than the full
capacity number of rules installed. For example, if 15 of the slices each have less than
128 rules and there is an attempt to install 129 compatible rules, this error message
will be displayed.
• Error: ACL install operation failed - layer-4 port range hardware full
for port 3:1
Layer-4 port range exceeded: This happens when more than 32 Layer 4 port ranges
are installed on a single chip.
• Error: ACL install operation failed - conditions specified in rule
"r1" cannot be satisfied by hardware on port 3:1
Incompatible fields selected: This happens when the selected conditions can not be
satisfied by the available single-slice field selections described in Compatible and
Conflicting Rules on page 829.
• Error: ACL install operation failed - user-defined-field (UDF)
hardware full for port 3:1
UDF exceeded: This happens in the rare case that the two available user-defined
fields are exceeded on a given chip. UDF fields are used to qualify conditions that are
not natively supported by the hardware. Some ACL rules that use UDF are: Source
MAC address + Destination IP address combination, Destination MAC address +
Source IP address combination, ICMP Type, and ICMP Code.
In the dedicated mode, ACL rules that have counters are assigned a separate rule
space and the counter accurately shows the count of matching events. If the ACL
with counter is applied to ports 1 and 2, and 10 packets ingress via port 1 and 20
packets ingress via port 2, the ACL counter value for ports 1 and 2 is 10 and 20 packets
respectively. More space is used and the process is slower than shared. Dedicated is the
default setting.
In the shared mode, ACL space is reused even with counters. ACL counters count
packets ingressing via all ports in the whole unit. If the ACL with the counter is applied
to ports 1 and 2, and 10 packets ingress via port 1, and 20 packets ingress via port 2,
the ACL counter value is 30 each of ports 1 and 2 instead of 10 and 20. The process is
faster—as fast as applying an ACL without the counters—and saves space.
Note
Port-Counter shared mode will not work when ports are on across slots and
units.
The shared/dedicated setting is global to the switch; that is, the option does not
support setting some ACL rules with shared counters and some with dedicated
counters.
The shared or dedicated mode does not affect any ACLs that have already been
configured. Only ACLs entered after the command is entered are affected.
Note
To configure all ACLs in the shared mode, enter the command before any
ACLs are configured or have been saved in the configuration when a switch is
booted.
Policy-Based Routing
Note
Policy-Based Routing is available only on the platforms listed for this feature
in the Switch Engine Licensing Guide document. Refer to Load Sharing
Rules and Restrictions for All Switches on page 266 for information on applying
ACLs to LAG (Link Aggregation Group) ports.
With Policy-Based Routing, you can configure policies to use a different next-hop than
what the routing lookup would have chosen. The switch first compares packets to
the ACL rule entries. If there is a match, the packet is forwarded to the destination
identified by the redirect action modifier. If there is no match, the packet is forwarded
based on normal routing, in other words, by looking up a route in the IP Forwarding
Table.
When there is a match with a redirect ACL rule, the matched traffic is redirected to the
next-hop specified in the action.
Note
The IP packet itself is not modified, but only redirected to the port where the
next-hop entry resides. The original IP destination address and source address
are retained in the packet. The TTL is decremented and the IP checksum is
recalculated.
The applications for Policy-Based Routing are quite diverse, since the functionality can
be used to set policies on how flows identified by any Layer 2 to Layer 7 field (bounded
by the switch's ACL syntax) are forwarded.
When a switch finds a matching ACL rule, it forwards the packet to the redirect IP
address as specified in the rule without modifying the packet (except as noted above).
The traffic flow is redirected only after applying the ACL to the port and only when
the redirect IP address’s adjacency is resolved. When the ARP or NDP table does not
have the information to reach the redirect IP address, the packet is routed based on
the Layer 3 routing table. When the switch does not know how to reach the redirect IP
address in the rule, the rule is installed with a warning, and traffic is not redirected until
the address is resolved in the ARP or NDP table. After the address is resolved, the traffic
is redirected.
To configure Policy-Based Routing, you configure an ACL on your switch. You can apply
an ACL policy file, or use a dynamic ACL.
The following is an example ACL rule entry that redirects any TCP traffic with a
destination port of 81 to the device at IP address 3.3.3.2:
entry redirect_port_81 {
if {
protocol tcp;
destination-port 81;
} then {
redirect 3.3.3.2;
}
}
1. Issue the following command to prevent the redirect IP address from clearing from
the ARP or NDP table due to a timeout: enable iparp refresh
2. Configure the ACL, either by applying an ACL policy file similar to the example, or a
dynamic ACL.
3. Ping or send traffic so that the redirect IP adjacency is resolved.
You may want to create a static ARP or NDP entry for the redirect IP address, so that
there will always be a cache entry.
Note
An ACL can be rejected on switches that support Policy-Based Routing,
because these have different amounts of hardware resources and one switch
has exhausted its resources.
Note
The redirect-port or redirect-port-list commands will not work for L3
switched packets matching ACL, if distributed IP ARP feature is turned ON.
You must specify the port argument in the correct format for the switch platform.
On supporting switches, this argument must be in the format slot:port and this
argument must be in the format port.
The policy shown below redirects any TCP traffic with source Layer 4 port 81 to physical
port 3:2.
entry one {
if {
protocol tcp;
source-port 81;
destination-port 200 ;
} then {
count num_pkts_redirected;
redirect-port 3:2;
}
The policy shown below redirects any in-profile traffic as defined by the meter
configuration to physical port 14. The out-of-profile traffic is subject to the action
specified in the meter “out-action” configuration.
entry one {
if {
} then {
meter redirected_traffic;
count num_pkts_redirected;
redirect-port 14;
}
The policy shown below redirects all traffic with source IP matching 192.168.1.1/24; to
physical ports 2:10 and 4:7.
entry one {
if {
source-address 192.168.1.1/24;
} then {
count num_pkts_redirected;
redirect-port-list 2:10,4:7;
}
If an incorrect port format is used or if the port number specified is out of range, the
following error message is displayed:
When this feature is used on ExtremeSwitching switches, the traffic egressing the
redirect-port can be either tagged or untagged depending on the redirect-port VLAN
configuration. The following table provides the details.
The following list summarizes the behavior of redirect-port-list action modifier under
certain situations.
◦ When a Unicast packet matches the applied ACL, the packet is redirected to all
ports specified in the redirect port-list as long as these ports are part of the true
egress VLAN.
◦ When a Broadcast/Multicast packet matches the applied ACL, the packet is
redirected only to ports specified in the redirect port-list that are part of the
ingress VLAN. Matched multicast packets will get L2 switched.
◦ When a LAG port is part of redirect-port-list, then packets matching applied ACL
will be load shared between LAG member ports based on Layer 2 source and
destination MAC addresses.
The ACL overrides any load-sharing algorithm hash that is generated based on the
lookup results.
Following is an example of a configuration and ACL policy that directs traffic matching
10.66.4.10 to LAG port 3:
This example would direct inband management traffic to specific radios connected to
specific ports within a load-sharing group.
configured. A higher priority is denoted with a higher number; for example, "priority
5" has a higher precedence than "priority 1." When a high priority next-hop becomes
unreachable, another preconfigured next-hop, based on priority, replaces the first. This
is done by first creating a flow-redirect name that is used to hold next-hop information.
User-created flow-redirect names are not case-sensitive.
Note
As of ExtremeXOS 16.1, there is no limitation in creating the flow-redirects.
Number of Next hops has been increased to 4,096 next hops. If more than
4,096 next hops are attempted to be created, an error message appears.
Then information for each next-hop, including a defined priority, is added one by one to
the new flow-redirect name. Use the following command:
configure flow-redirect flow_redirect_name add nexthop ipaddress
priority number
Note
You can add IPv4 or IPv6 next-hops to a flow-redirect policy, but both types are
not supported in the same policy.
Because an ACL does not recognize the virtual routing concept, one policy-based
routing is used for multiple virtual routing entries when a VLAN-based virtual router
(VR) is used for one port. Configuring a virtual router into a flow-redirect allows policy-
based routing to work for only one specific virtual router. Use the following command:
configure flow-redirect flow_redirect_name vr vr_name
Note
Flow-redirect does not work on user-created virtual routers.
Finally, a new action modifier, redirect-name, is used to specify the flow-redirect name
in an ACL rule entry.
entry redirect_redundancy {
if match all {
source-address 1.1.1.100/24 ;
} then {
permit ;
redirect-name <name>
}
}
Note
IPv6 Policy-Based Routing is not supported for traffic with Hop-by-Hop
extension headers. Traffic will continue to be hardware forwarded, and will not
be processed in slow path.
To configure the ping interval, miss count, and success count for a next-hop, use the
following command:
Packet Forward/Drop
The default behavior for policy-based routing when all next-hops are unreachable is to
route packets based on the routing table. Policy-based routing redundancy adds an
option to drop the packets when all next-hops for the policy-based routing become
unreachable.
entry premium_15 {
if match {
source-address 211.10.15.0/24;
} then {
permit;
redirect-name premium_subscriber;
}
}
entry premium_16 {
if match {
source-address 211.10.16.0/24;
} then {
permit;
redirect-name premium_subscriber;
}
}
3. Apply the modified ACL policy file or dynamic ACL into a port, VLAN, or VLAN and
Port.
For example: user1 VLAN: 192.168.1.0/30, user2 VLAN: 192.168.1.4/30.
ACL Troubleshooting
The following commands are designed to help troubleshoot and resolve ACL
configuration issues:
• show access-list usage acl-mask port port
• show access-list usage acl-range port port
• show access-list usage acl-rule port port
• show access-list usage acl-slice port port
The acl-mask keyword is not relevant for the a-series or e-series models.
If you enter this command and specify an a-series or e-series port, the following error
message appears:
This command is not applicable to the specified port.
Use the acl-rule keyword to display the total number of ACL rules that are available
and consumed for the specified port.
If this keyword is specified on an a-series or e-series port, the first part of the command
output details the port list using this resource because the ACL hardware rules are
shared by all ports on a given ASIC (24x1G ports). If you enter the same command and
specify any of the listed ports, the command output is identical.
*switch# show access-list usage acl-rule port 4:1 Ports 4:1-4:12, 4:25-4:36
Total Rules: Used: 46 Available: 2002
The acl-slice keyword is used to display ACL resource consumption for each of the
independent TCAMs, or slices, that make up the hardware ACLs.
Each slice is a 128-entry TCAM. The command output displays the number of
consumed and available TCAM rules for each slice as follows.
*switch# show access-list usage acl-slice port 4:1
Ports 4:1-4:12, 4:25-4:36
Slices: Used: 8 Available: 8
Slice 0 Rules: Used: 1 Available: 127
Slice 1 Rules: Used: 1 Available: 127
Slice 2 Rules: Used: 1 Available: 127
Slice 3 Rules: Used: 8 Available: 120
Slice 4 Rules: Used: 8 Available: 120
Slice 5 Rules: Used: 2 Available: 126
Slice 6 Rules: Used: 1 Available: 127
Slice 7 Rules: Used: 24 Available: 104
Use the acl-range keyword to view the Layer-4 port range hardware resource on an
a-series or e-series model switch.
Each a-series and e-series ASIC has 16 Layer-4 port range checkers that are shared
among the 24 1G ports. The first part of the command output lists the ports that
utilizes this resource. The second part of the command output lists the number of
range checkers that are consumed and the number available for use.
switch # show access-list usage acl-range port 4:1
Ports 4:1-4:12, 4:25-4:36
L4 Port Ranges: Used: 0 Available: 16
If the acl-slice or acl-range keyword is specified with an e-series port, the following
error message will appear:
This command is not applicable to the specified port.
Routing policies can be used to “hide” entire networks or to trust only specific sources
for routes or ranges of routes. The capabilities of routing policies are specific to the type
of routing protocol involved, but these policies are sometimes more efficient and easier
to implement than access lists.
Routing policies can also modify and filter routing information received and advertised
by a switch.
A similar type of policy is an ACL (Access Control List) policy, used to control, at the
hardware level, the packets accessing the switch. ACL policy files and routing policy
files are both handled by the policy manager and the syntax for both types of files is
checked by the policy manager.
Note
Although ExtremeXOS does not prohibit mixing ACL and routing type entries
in a policy file, it is strongly recommended that you do not mix the entries, and
you use separate policy files for ACL and routing policies.
entry <routingrulename>{
if <match-type> {
<match-conditions>;
} then {
<action>;
}
}
entry ip_entry {
if match any {
nlri 10.203.134.0/24;
nlri 10.204.134.0/24;
} then {
next-hop 192.168.174.92;
origin egp;
}
}
Policy entries are evaluated in order, from the beginning of the file to the end, as
follows:
• If a match occurs, the action in the then statement is taken:
◦ if the action contains an explicit permit or deny, the evaluation process
terminates.
◦ if the action does not contain an explicit permit or deny, the action is an implicit
permit, and the evaluation process terminates.
• If a match does not occur, the next policy entry is evaluated.
• If no match has occurred after evaluating all policy entries, the default action is deny.
Often a policy has a rule entry at the end of the policy with no match conditions. This
entry matches anything not otherwise processed, so that the user can specify an action
to override the default deny action.
Policy match type, match conditions and action statements are discussed in the
following sections:
• Policy Match Type on page 850
• Policy Match Conditions on page 850
route-origin [direct | static | icmp | Matches the origin (different from BGP route
egp | ggp | hello | rip | isis | esis | origin) of a route.
cisco-igrp | ospf | bgp | idrp | dvmrp | A match statement "route-origin bgp" will
mospf | pim-dm | pim-sm | ospf-intra | match routes whose origin are "I-bgp" or
ospf-inter | ospf-extern1 | ospf-extern2 | "e-bgp" or "I-mbgp" or "e-mbgp". Similarly,
bootp | e-bgp | i-bgp | mbgp | i-mbgp the match statement "route-origin ospf" will
| e-mbgp | isis-level-1 | isis-level-2 | isis- match routes whose origin is "ospf-inta"
level-1-external | isis-level-2-external]; or "ospf-inter" or "ospf-as-external" or "ospf-
extern-1" or "ospf-extern-2"
Note
When entering an AS number in a policy file, you must enter a unique 2-byte
or 4-byte AS number. The transition AS number, AS 23456, is not supported in
policy files.
The following AS-Path statement matches AS paths that contain only (begin and end
with) AS number 64511:
as-path "^64511$"
The following AS-Path statement matches AS paths beginning with AS number 64500,
ending with AS number 64511, and containing no other AS paths:
as-path "^64500 64511$"
The following AS-Path statement matches AS paths beginning with AS number 64496,
followed by any AS number from 65500 - 65505, and ending with either AS number
65507, 65509, or 65511:
as-path "^64496 65500-65505 [65507 65509 65511]$"
The following AS-Path statement matches AS paths beginning with AS number 65511
and ending with any AS number from 65500 - 65505:
as-path "65511 [65500-65505]$"
The following AS-Path statement matches AS paths beginning with AS number 65511
and ending with any additional AS number, or beginning and ending with AS number
65511:
as-path "65511 .?"
Note
Multiple communities couldn’t be used in “community set” attribute in the
BGP policy file. The way to set multiple communities in BGP policy file could be
accomplished by two set of attributes as given in below example:
entry permit-anything-else {
if {
} then {
community set "2342:6788";
community add "2342:6789 2342:6790";
permit;
}
}
Commands that use the keyword import-policy are used to change the attributes of
routes installed into the switch routing table by the protocol. These commands cannot
be used to determine the routes to be added to the routing table. The following are
examples for the BGP and RIP protocols:
Commands that use the keyword route-policy control the routes advertised or
received by the protocol. For BGP and RIP, here are some examples:
Note
When exporting a route into BGP with an export policy, the AS-Path is limited
to a maximum of 15 AS numbers.
Policy Examples
entry entry-5 {
If {
nlri 22.16.0.0/14;
}
then {
permit;
}
}
entry entry-10 {
if {
nlri 192.168.0.0/18 exact;
}
then {
permit;
}
}
entry entry-15 {
if {
nlri any/8;
}
then {
deny;
}
}
entry entry-20 {
if {
nlri 10.10.0.0/18;
}
Then {
permit;
}
}
entry entry-25 {
if {
nlri 22.44.66.0/23 exact;
}
then {
deny;
}
}
The policy above can be optimized by combining some of the if statements into a
single expression.
entry permit_entry {
If match any {
nlri 22.16.0.0/14;
nlri 192.168.0.0/18 exact ;
nlri 10.10.0.0/18;
}
then {
permit;
}
}
entry deny_entry {
if match any {
nlri any/8;
nlri 22.44.66.0/23 exact;
}
then {
deny;
}
}
entry entry-10 {
If {
origin incomplete;
}
then {
permit;
}
}
entry entry-20 {
if {
community 6553800;
}
then {
deny;
}
}
entry entry-30 {
if {
med 30;
}
then {
next-hop 10.201.23.10;
as-path 64502;
as-path 64503;
as-path 64504;
as-path 64504;
permit;
}
}
entry entry-40 {
if {
}
then {
local-preference 120;
weight 2;
permit;
}
}
entry entry-50 match any {
if {
origin incomplete;
community 19661200;
}
then {
dampening half-life 20 reuse-limit 1000 suppress-limit 3000 max-suppress 40
permit;
}
}
entry entry-60 {
if {
next-hop 192.168.1.5;
}
then {
community add 949616660;
permit;
}
}
entry deny_rest {
if {
}
then {
deny;
}
}
This chapter discusses the Quality of Service (QoS) feature, and allows you to configure
a switch to provide different levels of service to different groups of traffic. In this section
you will find both overview information, as well as specific information on how to
configure and monitor the QoS feature.
QoS Overview
Quality of Service (QoS) is a feature that allows you to configure a switch to provide
different levels of service to different groups of traffic. For example, QoS allows you to
do the following:
• Give some traffic groups higher priority access to network resources.
• Reserve bandwidth for special traffic groups.
• Restrict some traffic groups to bandwidth or data rates defined in a Service Level
Agreement (SLA).
• Count frames and packets that exceed specified limits and optionally discard them
(rate limiting).
• Queue or buffer frames and packets that exceed specified limits and forward them
later (rate shaping).
• Modify QoS related fields in forwarded frames and packets (remarking).
Figure 96 shows the QoS components that provide these features on Extreme
Networks switches.
The ACL-based traffic groups provide the most control of QoS features and can be used
to apply ingress and egress rate limiting and rate shaping as follows:
• Subject ingress traffic to rate limit meters
• Specify ingress hardware queues (QoS profiles) for rate limiting and rate shaping
• Specify ingress software traffic queues for rate limiting and rate shaping (these can
be associated with egress traffic queues for additional QoS control)
• Specify egress software traffic queues for rate limiting and rate shaping
• Specify egress QoS profiles for rate limiting and rate shaping
• Change the dot1p or Differential Services (DiffServ) values in egress frames or
packets
Non-ACL-based traffic groups specify an ingress or egress QoS profile for rate limiting
and rate shaping. These groups cannot use ingress or egress software traffic queues.
However, non-ACL-based traffic groups can use the packet marking feature to change
the dot1p or DiffServ values in egress frames or packets.
The ingress rate-limiting and rate-shaping features allow you to apply QoS to incoming
traffic before it reaches the switch fabric. If some out-of-profile traffic needs to be
dropped, it is better to drop it before it consumes resources in the switch fabric.
All ingress traffic is linked to an egress traffic queue or QoS profile before it reaches
the switch fabric. This information is forwarded with the traffic to the egress interface,
where it selects the appropriate egress traffic queue or QoS profile. Egress traffic from
all traffic queues and QoS profiles is forwarded to the egress port rate-shaping feature,
which applies QoS to the entire port. When multiple QoS profiles are contending for
egress bandwidth, the scheduler determines which queues are serviced.
Note
Full-duplex links should be used when deploying policy-based QoS. Half-
duplex operation on links can make delivery of guaranteed minimum
bandwidth impossible.
Voice Applications
Voice applications, or voice over IP (VoIP), typically demand small amounts of
bandwidth. However, the bandwidth must be constant and predictable because voice
applications are typically sensitive to latency (inter-packet delay) and jitter (variation
in inter-packet delay). The most important QoS parameter to establish for voice
applications is minimum bandwidth, followed by priority.
Video Applications
Video applications are similar in needs to voice applications, with the exception
that bandwidth requirements are somewhat larger, depending on the encoding. It
is important to understand the behavior of the video application being used. For
example, in the playback of stored video streams, some applications can transmit
large amounts of data for multiple streams in one spike, with the expectation that
the end stations will buffer significant amounts of video-stream data. This can present
a problem to the network infrastructure, because the network must be capable of
buffering the transmitted spikes where there are speed differences (for example, going
from gigabit Ethernet to Fast Ethernet). Key QoS parameters for video applications
include minimum bandwidth and priority, and possibly buffering (depending upon the
behavior of the application).
Traffic Groups
A traffic group defines the ingress traffic to which you want to apply some level of QoS.
You can use the ExtremeXOS software to define traffic groups based on the following:
• Frame or packet header information such as IP address or MAC address
• CoS (Class of Service) 802.1p bits in the frame header
• DiffServ information in a packet header
• Ingress port number
• VLAN (Virtual LAN) ID
Traffic groups that are defined based on frame or packet information are usually
defined in Access Control Lists (ACLs). The exception to this rule is the CoS and DiffServ
information, which you can use to define traffic groups without ACLs.
The function of the CoS and DiffServ traffic groups is sometimes referred to as explicit
packet marking, and it uses information contained within a frame or packet to explicitly
determine a class of service. An advantage of explicit packet marking is that the
class of service information can be carried throughout the network infrastructure,
without repeating what can be complex traffic group policies at each switch location.
Another advantage is that end stations can perform their own packet marking on an
application-specific basis. Extreme Networks switch products have the capability of
observing and manipulating packet marking information with no performance penalty.
The CoS and DiffServ capabilities (on supported platforms) are not impacted by the
switching or routing configuration of the switch. For example, 802.1p information
can be preserved across a routed switch boundary and DiffServ code points can be
observed or overwritten across a Layer 2 switch boundary.
During QoS configuration, you configure the QoS level first by configuring QoS profiles,
traffic queues, and meters, and then you define a traffic group and assign the traffic
group to the QoS configuration.
Depending on the platform you are using, traffic in an ACL traffic group can be
processed as follows:
• Assigned to an ingress meter for rate limiting
• Marked for an egress QoS profile for rate shaping
• Marked for an egress traffic queue for rate shaping
• Marked for DSCP replacement on egress
• Marked for 802.1p priority replacement on egress
• Assigned to an egress meter for rate limiting
When you are deciding whether to use an ACL-based traffic group or another type of
traffic group, consider what QoS features you want to apply to the traffic group. Some
QoS features can only apply to ACL-based traffic groups.
Note
ACLs are discussed in detail in the ACLs chapter.
Typically CoS will be used in conjunction with policy, however it may also work
independently. In a policy-enabled system, policy may use any CoS index setting (0-255)
to configure ACLs to assign a qosprofile, meter, dot1p replacement and TOS-rewrite
value. By default, 802.1p priorities 0-7 are mapped to CoS indices 0-7.
On SummitStack and ExtremeSwitching series switches, the traffic groups direct traffic
to egress QoS profiles for egress rate shaping (see the following table).
You do not need to define 802.1p-based traffic groups. You can enable or disable the
use of these traffic groups by enabling or disabling the 802.1p examination feature. You
can also configure which 802.1p values map to which QoS profiles.
A related feature is the 802.1p replacement feature, which allows you to configure the
software to replace the 802.1p bits in an ingress frame with a different value in the
egress frame. For more information on 802.1p replacement, see Configuring 802.1p or
DSCP Replacement on page 881.
Note
The default DiffServ examination mappings apply on ports in more than
one virtual router. If you attempt to configure DiffServe examination or
replacement on a port that is in more than one virtual router, the system
returns the following message:
Warning: Port belongs to more than one VR. Port properties related to diff serv
and code replacement will not take effect.
You do not need to define these traffic groups. You can enable or disable the use
of these traffic groups by enabling or disabling the DiffServ examination feature as
described in Configuring a DiffServ-Based Traffic Group on page 888. You can also
configure which DSCP values map to which queues.
Note
When DiffServ examination is enabled on 1 Gigabit Ethernet ports, 802.1p
replacement is enabled and cannot be disabled. The ingress 802.1p value is
replaced with the 802.1p value assigned to the egress QoS profile.
A related feature is the DiffServ replacement feature, which allows you to configure the
software to replace the DSCP in an ingress frame with a different value in the egress
frame. For more information on DiffServ replacement, see Configuring 802.1p or DSCP
Replacement on page 881.
Note
Port-based traffic groups apply to all packets.
Note
VLAN-based traffic groups apply to all packets.
Note
Beginning in ExtremeXOS 16.1, the port, VLAN and DiffServ-based traffic groups
will only work if 802.1p examination is disabled.
Both rate limiting and rate shaping allow you to take action on traffic that exceeds
the configured limits. These actions include forwarding traffic, dropping traffic, and
marking the excess traffic for possible drops later in the communication path. Software
counters allow you to record traffic statistics such as total packets forwarded and total
packets dropped.
Single-Rate QoS
Single-rate QoS defines a single rate for traffic that is subject to QoS. Single-rate QoS is
the most basic form of rate limiting and is well suited for constant rate traffic flows such
as video or where more complex dual-rate QoS is not needed. The traffic that meets
the rate requirement is considered in-profile. Traffic that does not meet the specified
rate is considered out-of-profile. A two-color system is often used to describe or mark
the single-rate QoS result. In-profile traffic is marked green, and out-of-profile traffic is
marked red.
All traffic that arrives at or below the PR is considered in-profile and marked green. All
traffic that arrives above the PR is considered out-of-profile and marked red. When the
traffic exceeds the capacity of the rate-limiting component, all traffic that is marked red
is dropped.
Dual-rate QoS
Dual-rate QoS defines two rates for traffic that is subject to QoS. The lower of the two
rates is the CIR, which establishes a reserved traffic rate. The higher of the two rates is
the peak rate, which establishes an upper limit for traffic. Dual-rate QoS is well suited
to bursty traffic patterns which are common with typical data traffic. Dual-rate QoS is
widely used in legacy Frame Relay and ATM leased lines.
Note
You must configure the peak rate higher than the committed rate.
A three-color system is used with dual-rate QoS. As with single-rate QoS, traffic at or
below the CIR is considered in-profile, marked green, and forwarded. The traffic that
is above the CIR and below the PIR is out-of-profile and marked yellow. Traffic above
the PIR is also out-of-profile and marked red. When incoming traffic is already marked
yellow and is out of profile, it is marked red. Different switch platforms take different
actions on the traffic marked yellow or red.
QoS can be applied at different locations in the traffic path using the following rate-
limiting and rate-shaping components:
• Ingress meters
• Egress traffic queues
• Egress meters
• Egress QoS profiles
• Egress ports
Scheduling
Scheduling is the process that determines which traffic is forwarded when multiple
QoS components are competing for egress bandwidth. The ExtremeXOS software
supports the following scheduling methods:
• Strict priority: All higher priority queues are serviced before lower priority queues.
This ensures that high priority traffic receives access to available network bandwidth
immediately, but can result in lower priority traffic being starved. As long as a
queued packet remains in a higher-priority queue, any lower-priority queues are not
serviced.
• Weighted round robin: All queues are given access to a relative amount of
bandwidth based on the weight assigned to the queue. When you configure a QoS
profile with a weight of 4, that queue is serviced four times as frequently as a queue
with a weight of 1. The hardware services higher-weighted queues more frequently,
but lower-weighted queues continue to be serviced at all times. Initially, the weight
for all queues is set to 1, which gives them equal weight. If all queues are set to 4, for
example, all queues still have equal weight, but each queue is serviced for a longer
period.
• Weighted deficit round robin: All queues are given access based on the configured
priority level and a round-robin algorithm.
Scheduling takes place on the egress interface and includes consideration for the
color-marking of egress frames and packets. Green-marked traffic has the highest
priority and is forwarded based on the scheduling method. When multiple queues are
competing for bandwidth, yellow-marked traffic might be dropped or remarked red.
Red-marked traffic is dropped when no bandwidth is available. If yellow-marked traffic
is forwarded to the egress port rate-shaping component, it can be dropped there if the
egress port is congested.
Introduction to WRED
The weighted random early detection (WRED) feature is supported on some platforms
to avoid congestion in traffic queues or QoS profiles. WRED improves upon the TCP
congestion control mechanism.
The TCP congestion control mechanism on hosts detects congestion when packets are
lost and lowers the packet transmission rate in response. At the switch, packets are
dropped when a queue is full. When multiple hosts forward packets that are dropped,
multiple hosts reduce the transmission rate. This creates a global synchronization
problem as multiple hosts overwhelm a queue and then simultaneously lower their
transmission rate and under utilize the queue.
WRED extends RED by applying different discard rules for different types of traffic.
Typically, WRED is used on core routers and takes action based on the packet contents
established at edge routers. Edge routers can use the IP precedence or DSCP value
to mark packets as committed (green), conforming (yellow), or exceeded (red). The
marking process and these colors are described in Introduction to Rate Limiting, Rate
Shaping, and Scheduling on page 867.
The ExtremeXOS WRED implementation varies per platform and allows you to
configure the following:
• Minimum threshold for dropped packets.
• Maximum threshold for dropped packets.
• Maximum drop rate.
• An average weight control that determines how WRED calculates the average
queue size.
WRED does not drop packets at calculated average queue sizes below the minimum
threshold (although packets would be dropped if the queue fills).
When the calculated average queue size rises above the maximum threshold,
WRED drops packets at the maximum drop rate. When the calculated average falls
between the minimum and maximum thresholds, packets are randomly dropped at a
proportional rate between zero and the maximum drop rate. As the queue fills, more
packets are dropped.
The average weight parameter provides some control over how the average queue
size is calculated and the probability of packet drop. Increasing the avg_weight value
reduces the probability that traffic is dropped. Conversely, decreasing the avg_weight
value increases the probability that traffic is dropped.
Each QoS profile supports WRED profiles for the following colors of traffic:
• TCP green
• Non-TCP green
• TCP red
• Non-TCP red
Without support for non-TCP traffic management, non-TCP traffic could monopolize a
QoS profile in which TCP traffic is regulated, effectively giving non-TCP traffic priority
over TCP traffic. With support for both TCP and non-TCP traffic, WRED allows you to
regulate different types of traffic independently, giving you greater control over which
type of traffic is dropped first and most frequently.
The typical WRED configuration establishes the lowest probability for packet drop
for green traffic, which conforms to established limits along the transmission path.
A typical WRED configuration establishes a higher probability for packet drop for
red colored traffic, because it has already exceeded established limits earlier in the
transmission path. All traffic (green and red) is dropped when the queue is full, so the
goal is to configure the WRED settings for each color in such a way as to prevent the
queue from filling frequently.
RFC 3168 states that the two-bit ECN field comprises an ECT bit and a CE bit that are
used to implement ECN. The ECT bit and the CE bit can be combined into four possible
ECN field values 00 to 11. The first number is ECT bit and the second number is the CE
bit. Table 95 shows the possible combination.
Table 96 indicates the processing applied on incoming packets that are identified as
drop-eligible in various ECN scenarios.
configure qosprofile egress qp_num wred ecn [on | off] ports [port_list
| all]
Supported Platforms
This feature is available on all ExtremeSwitching Universal switches.
Limitations
• TCP yellow traffic color is not supported.
• ECN over VXLAN is not supported. Any tunneling protocol implemented with double
headers is not supported.
• The ECN counters showing the number of marked packets is not available yet, so
those appear as 0.
• This implementation is limited to ECN pass-through. End points having TCP/DCTCP/
RoCEv2 capabilities can use the ECN services.
Meters
Meters are used to define ingress rate-limiting and rate-shaping. Some platforms also
support meters for egress traffic. The following sections provide information on meters
for specific platforms.
On all ExtremeSwitching switches, you can also use single-rate meters to determine if
egress traffic is in-profile or out-of-profile.
When ACL meters are applied to a VLAN or to any, the rate limit is applied to each
port group. To determine which ports are contained within a port group, use any of the
following commands:
The out-of-profile actions are drop, set the drop precedence, mark the dot1p, or mark
the DSCP with configured value. Additionally, each meter has an associated out-of-
profile counter that counts the number of packets that were above the committed-rate
(and subject to the out-of-profile-action).
Prior to ExtremeXOS 21.1, when traffic exceeded the specified meter rate, the traffic
could be marked with a user-specified diffserv code point. As of ExtremeXOS 21.1,
this out-of-profile marking capability is enhanced to additionally include the option of
marking the 802.1p value. The 802.1p value that is marked will be the outer 802.1p value
in both VLAN and VMAN tagging scenarios. In the latter, the SVLAN's 802.1p value will
be modified. Like the existing dscp out-of-profile meter action, this out-of-profile action
will work on global and per-port meters.
On ExtremeSwitching series switches, the meters are a per-chip, per-slice resource (see
ACLs for complete information.)
Note
If set-drop-precedence is used as a meter out-of-profile action, you should
configure WRED on the egress port so that red packets marked by the meter
are dropped in case of egress congestion.
QoS Profiles
QoS profiles are queues that provide ingress or egress rate limiting and rate shaping.
The following sections provide more information on QoS profiles.
When you are configuring ACL-based traffic groups, you can use the qosprofile action
modifier to select an egress QoS profile. For DiffServ-, port-, and VLAN-based traffic
groups, the traffic group configuration selects the egress QoS profile. For CoS dot1p
traffic groups on all platforms, the dot1p value selects the egress QoS profile.
Egress QoS profile operation depends on the switch type and is described in the
following sections.
SummitStack and ExtremeSwitching series switches have two default egress QoS
profiles named QP1 and QP8. You can configure up to six additional QoS profiles (QP2
through QP7) on the switch. However, on a SummitStack, you cannot create QoS profile
QP7, as this profile is reserved for system control traffic. The default settings for egress
QoS profiles are summarized Table 97 on page 875.
For CoS 802.1p traffic groups, the ingress 802.1p priority value selects a specific QoS
profile as shown in Table 97. This mapping can be changed as described in Changing
the 802.1p Priority to QoS Profile Mapping on page 887. For traffic groups other
than 802.1p-based groups, the traffic group configuration selects a specific egress QoS
profile by name.
The default dual-rate QoS configuration is 0% for minimum bandwidth and 100% for
maximum bandwidth.
The QoS profile for each port receives a default buffer reservation. All unreserved buffer
space is part of a buffer pool, which can be used by QoS profiles when reserved space
runs out, provided that the configuration for that QoS profile and port allows it.
You can increase the size of the shared buffer pool by reducing the global buffer
reservation for a QoS profile on all switch ports. You can restrict buffer usage for a QoS
profile in amounts ranging from 1 to 100%, in whole integers.
You can also override the global buffer reservation to increase or decrease the buffer
space allotment for a specific QoS profile on one or more ports. Using the buffer
override feature, you can override the global setting to use from 1–10,000% of the
configured global allotment. The system does not drop any packets as long as reserved
packet buffer memory for the port and QoS profile or shared packet memory for
the port (configure port port_list shared-packet-buffer command) remains
available.
Note
In a SummitStack, the scheduling algorithm is automatically programmed
by ExtremeXOS for the stacking links only, and might be different from the
algorithm you select.
Use of all eight queues on all ports can result in insufficient buffering to sustain
zero packet loss throughput during full-mesh connectivity with large packets.
When multiple QoS profiles are contending for port bandwidth and the egress traffic
in each profile is within profile, the scheduler determines how the QoS profiles are
serviced as described in Scheduling on page 869. In strict-priority mode, the queues are
serviced based on the queue service priority value. In weighted fair-queuing mode, the
queues are serviced based on the configured weight.
When configured to do so, the priority of a QoS profile can determine the 802.1p bits
used in the priority field of a forwarded frame (see Introduction to Rate Limiting, Rate
Shaping, and Scheduling on page 867). The priority of a QoS profile can determine
the DiffServ code point value used in an IP packet when the packet is forwarded (see
Replacement of DSCP on Egress on page 882).
A QoS profile change does not alter the behavior of the switch until it is assigned to a
traffic group.
You can apply single-rate rate-limiting and control shared packet buffer space
(configure port port_list shared-packet-buffer command) for each port.
You can also configure ports to pass an unlimited flow as described in Disabling Rate
Limiting and Rate Shaping on page 869.
For example, if the frame size is 68 bytes configuring overhead-bytes of 0, the switch
calculates rate-limit and shaping techniques with 68 bytes as the frame size. If 20
is the configured overhead-bytes size, the switch calculates rate-limit and shaping
techniques with 88 bytes as the frame size. This configuration is applicable for ingress
meters, egress QoS profile, egress port rate-limiting, and rate-shaping configurations.
Port Groups
Port groups allow the user to define ports by similar functionality or role. The user can
create port groups and use them to configure QoS profiles, ingress meters and flood
rate-limiters for ports that share the same role.
When the internal CoS state is enabled, the global enable action is performed on any
new switch that is inserted into the stack.
Due to this limitation, the out-of-profile actions can only accurately be performed if
the exceeded per-port meter rate is sustained for the duration of the software polling
interval. Any change in the global out-of-profile counter for the per-port meter will
be evenly distributed between the ports that indicate an out-of-profile status at the
time of the software polling interval. This should give a rough approximation of the
out-of-profile count of the per-port meter on each port.
Configuring QoS
• These switches allow dynamic creation and deletion of QoS queues, with QP1 and
QP8 always available.
• ACL egress rate-limit meters are supported only on all platforms.
Configuration Summary
Use the following procedure to configure QoS:
1. Configure basic Layer 2 connectivity (prerequisite).
2. Configure QoS scheduling, if needed, as described in Selecting the QoS Scheduling
Method on page 880.
3. Configure ingress and egress rate-limiting as needed:
a. Create a meter as described in Creating Meters on page 889.
b. Configure the meter as described in Configuring a Meter on page 889.
c. Apply the meter to ingress traffic as described in Applying a Meter to Ingress
Traffic on page 890.
4. Configure non-ACL-based egress QoS profile selection as described in the following
sections:
• Configuring a CoS 802.1p-Based Traffic Group on page 887
• Configuring a DiffServ-Based Traffic Group on page 888
• Configuring a Port-Based Traffic Group on page 888
• Configuring a VLAN-Based Traffic Group on page 889
5. Configure 802.1p or DiffServ packet marking as described in Configuring 802.1p or
DSCP Replacement on page 881.
6. Configure egress QoS profile rate shaping as needed:
a. Create egress QoS profiles as described in Creating or Deleting an Egress QoS
Profile on page 884.
b. Configure egress QoS profile rate shaping parameters as described in Configuring
an Egress QoS Profile on page 885.
7. Configure egress port rate shaping as described in Configuring Egress Port Rate
Limits on page 885.
8. Finalize ACL traffic-based group configuration as described in Configuring an ACL-
Based Traffic Group on page 886.
9. Verify the configuration using the commands described in Displaying QoS
Configuration and Performance on page 891.
Note
In a SummitStack, the scheduling algorithm is automatically programmed
by ExtremeXOS for the stacking links only, and will likely be different than
the algorithm you select.
If you are using ACL-based traffic groups, you can use the replace-dot1p action
modifier to replace the ingress 802.1p priority value with the 802.1p priority value of
the egress QoS profile as listed in the following table. To specify a specific 802.1p priority
value on egress, use the replace-dot1p-value action modifier.
Note
If you are using ACL-based traffic groups, you must use ACL action modifiers to
replace the 802.1p priority. Traffic that meets any ACL match conditions is not
subject to non-ACL-based 802.1p priority replacement.
For non-ACL-based traffic groups, you can enable or disable 802.1p priority replacement
on specific ingress ports. When 802.1p priority replacement is enabled, the default
egress 802.1p priority value is set to the priority value of the egress QoS profile as listed
in Table 98.
Note
The port in this command is the ingress port.
Note
If only DiffServ traffic groups are enabled, then 802.1p priority enforcement for
802.1q tagged packets continues for non-IP packets using the default 802.1p
map shown in the following table.
Only QP1 and QP8 exist by default; you must create QP2 to QP7 (QP2 to QP5
in a SummitStack). If you have not created these QPs, the replacement feature
will not take effect.
When DiffServ examination is enabled on 1 Gigabit Ethernet ports, 802.1p
replacement is enabled and cannot be disabled. The ingress 802.1p value is
replaced with the 802.1p value assigned to the egress QoS profile.
If you are using ACL-based traffic groups, you can use the replace-dscp action modifier
to replace the ingress DSCP value with the DSCP value of the egress QoS profile as
listed in Table 99. This action modifier functions for both IPv4 and IPv6 traffic.
Note
If you are using ACL-based traffic groups, you must use ACL action modifiers
to replace the DSCP. Traffic that meets any ACL match conditions is not
subject to non-ACL-based DSCP priority replacement. For all platforms, we
recommend that you use ACL-based traffic groups when configuring DSCP
replacement.
For non-ACL-based traffic groups, you can enable or disable DSCP replacement on
specific ingress ports. When DSCP replacement is enabled, the DSCP value used on
egress is determined by either the QoS profile or the 802.1p priority value. Table 99
shows the default mappings of QoS profiles and 802.1p priority values to DSCPs.
Table 99: Default QoS Profile and 802.1p Priority Value Mapping to DiffServ Code
Points
QoS Profile 802.1p Priority Value DSCP
QP1 0 0
1 8
2 16
3 24
4 32
5 40
6 48
QP8 7 56
Note
The port in this command is the ingress port.
DiffServ Example
In this example, we use DiffServ to signal a class of service throughput and assign
any traffic coming from network 10.1.2.x with a specific DSCP. This allows all other
network switches to send and observe the DSCP instead of repeating the same QoS
configuration on every network switch.
1. Using ACLs, assign a traffic grouping for traffic from network 10.1.2.x to QP3:
configure access-list qp3sub any
#filename: qp3sub.pol
entry QP3-subnet {
if {
source-address 10.1.2.0/24
} then {
Qosprofile qp3;
replace-dscp;
}
2. Configure the switch so that other switches can signal calls of service that this switch
should observe.
enable diffserv examination ports all
Note
The switch only observes the DSCPs if the traffic does not match the
configured access list. Otherwise, the ACL QoS setting overrides the QoS
DiffServ configuration.
Note
You must use these commands on all platforms if you want to configure
the buffer size or weight value. Otherwise, you can use the command in the
following description.
You cannot configure the priority for the QoS profile.
• To remove the limit on egress bandwidth per QoS profile per port, re-issue this
command using the default values.
• To display the current configuration for the QoS profile, use the following command.
show qosprofile [ all | port_list | port_group]
• To view the configured egress port rate-limiting behavior, use the following
command.
show port {mgmt | port_list | tag tag} information {detail}
You must use the detail parameter to display the egress port rate configuration
and, if configured, the maximum burst size. Refer to Displaying Port Information on
page 310 for more information on the show ports information command.
You can also display this information using the following command:
show configuration vlan
The following is sample output from the show configuration vlan command for
configured egress rate limiting:
# Module vlan configuration.
#
configure vlan Default tag 1
config port 3:1 rate-limit egress 128 Kbps max-burst-size 200 Kb
config port 3:2 rate-limit egress 128 Kbps
config port 3:10 rate-limit egress 73 Kbps max-burst-size 128 Kb
configure vlan Default add ports 3:1-48 untagged
Note
Refer to FDB on page 645 for more information on limiting broadcast,
multicast, or unknown MAC traffic ingressing the port.
1. Create an ACL policy file and add rules to the file using the following guidelines:
a. Use ACL match conditions to identify the traffic for the traffic group.
b. Use ACL action modifiers to apply QoS features such as ingress meter or traffic
queue selection, egress QoS profile or traffic queue selection, and 802.1p priority
replacement to the traffic group.
2. Apply the ACL policy file to the ports where you want to define the traffic groups. You
can apply the file to specific ports, all ports, or all ports in a VLAN.
Note
ACLs are described in detail in the ACLs chapter.
Note
If you are using ACL-based traffic groups, use the qosprofile or traffic-
queue action modifier to select a forwarding queue. Traffic that meets any ACL
match conditions is not evaluated by other traffic groups.
CoS 802.1p examination is supported on all platforms and enabled by default. However,
you can only disable and enable this feature. To free ACL resources, disable this feature
whenever another QoS traffic grouping is configured. (See ACLs for information on
available ACL resources.)
Note
If you disable this feature when no other QoS traffic grouping is in effect,
802.1p priority enforcement of 802.1q tagged packets continues. If only DiffServ
traffic groups are enabled, then 802.1p priority enforcement for 802.1q tagged
packets continues for non-IP packets using the default 802.1p map shown in
the following table.
Note
802.1p examination cannot be disabled for 802.1p priority level 6 in a
SummitStack. When 802.1p examination is disabled on a SummitStack, the
precedence for the remaining examination becomes lower than that of all
other traffic groupings.
To view the current 802.1p priority to QoS profile mapping on a switch, enter the
following command:
show dot1p
Note
If you are using ACL-based traffic groups, use the qosprofile or traffic-
queue action modifier to select a forwarding queue. Traffic that meets any ACL
match conditions is not evaluated by other traffic groups.
When a packet arrives at the switch on an ingress port and Diffserv examination is
enabled, the switch uses the DSCP value to select the egress QoS profile that forwards
the packet. The QoS profile configuration defines the forwarding characteristics for all
traffic assigned to the QoS profile.
• The DiffServ examination feature is disabled by default. To enable DiffServ
examination, use the following command:
enable diffserv examination ports [port_list | all]
Note
When DiffServ examination is enabled on 1 Gigabit Ethernet ports for
ExtremeSwitching series switches, 802.1p replacement is enabled and
cannot be disabled. The ingress 802.1p value is replaced with the 802.1p
value assigned to the egress QoS profile.
• You can change the egress QoS profile assignment for each of the 64 code points. To
view the current DSCP to QoS profile mapping, use the following command:
show diffserv examination
• Use the following commands to change the DSCP to QoS profile mapping:
configure diffserv examination code-point code_point {qosprofile}
qosprofile
unconfigure diffserv examination
After a QoS profile is assigned, the rest of the switches in the network prioritize the
packet using the characteristics specified by the QoS profile.
Note
If you are using ACL-based traffic groups, use the qosprofile or traffic-
queue action modifier to select a forwarding queue. Traffic that meets any ACL
match conditions is not evaluated by other traffic groups.
Port-based traffic groups apply to all packets.
Note
If you are using ACL-based traffic groups, use the qosprofile or traffic-
queue action modifier to select a forwarding queue. Traffic that meets any ACL
match conditions is not evaluated by other traffic groups.
VLAN-based traffic groups apply to all packets.
Creating Meters
• To create a meter, use the following command:
create meter meter-name
• To display the meters already configured on the switch, use the command:
show meter meter_name
ExtremeXOS now creates 8 to 16 default ingress meters that are used for per-port
metering. These are named "ingmeter<n>" where n is 0-15.
Configuring a Meter
After you create a meter, you can configure the meter using the command for the
platform you are using. To configure a QoS meter on all platforms, use the following
command:
Note
The disable-port, log, and trap options are only allowed for per-port meters (i.e.
ingmeter0, ingmeter1,...).
Deleting a Meter
To delete a meter, use the following command:
delete meter meter-name
Note
The associated meters are not deleted when you delete any type of traffic
queue. Those meters remain and can be associated with other traffic queues.
To display the configured meters, use the show meter meter_name command.
By default, all bytes are counted for the ingressing traffic rate. After you issue this
command, the default number of bytes removed is 0; you can add or subtract from
one to four bytes from each ingressing packet on the specified ports for calculating the
ingressing traffic rate.
• To display the number of bytes added to or subtracted from the packet to calculate
the ingressing traffic rate, traffic utilization, and traffic statistics, enter the command:
show ports port_list information detail
Note
You must use the detail keyword to display this information.
• To unconfigure this setting, re-issue the command and enter the value 0.
To control ingress flooding of broadcast and multicast traffic and traffic for unknown
destination MAC addresses, enter the command:
configure ports port_list | port_group rate-limit flood [broadcast |
multicast | unknown-destmac] [no-limit | pps]
Note
To ensure that you display the QoS information, you must use the detail
keyword.
The QoS monitor allows you to display the traffic packet counts in a real-time or a
snapshot display for the specified ports.
• View QoS profile traffic statistics entering the command:.
show ports port_list qosmonitor {congestion} {no-refresh}
This chapter offers information about Network Login procedures. This section provides
an overview, specific configuration information, and specific information about Local
Database Authentication, 802.1X Authentication, Web-based Authentication, and MAC-
based Authentication.
When network login is enabled on a port, that port does not forward any packets until
authentication takes place.
When web-based network login is enabled on a switch port, that port is placed into
a non-forwarding state until authentication takes place. To authenticate, a user must
open a web browser and provide the appropriate credentials. These credentials are
either approved, in which case the port is placed in forwarding mode, or not approved,
in which case the port remains blocked. You can initiate user logout by submitting a
logout request or closing the logout window.
When NetLogin and IP Security features are enabled on a port, NetLogin performs the
first or the basic function of authenticating and authorizing the user. Further course of
Web-based network login does not require any specific client software and can work
with any HTTP-compliant web browser. By contrast, 802.1X authentication may require
additional software installed on the client workstation, making it less suitable for a user
walk-up situation, such as a cybercafé or coffee shop. A workstation running Windows 7
or Windows 8 supports 802.1X natively, and does not require additional authentication
software. Extreme Networks supports a smooth transition from web-based to 802.1X
authentication.
Note
When both HTTP and HTTPS are enabled on the switch and sending HTTP
requests from the Netlogin client, HTTPS takes preference and the switch
responds with a HTTPS response.
MAC-based authentication is used for supplicants that do not support a network login
mode, or supplicants that are not aware of the existence of such security measures, for
example an IP phone.
The credentials used for this are the supplicant’s MAC address in ASCII representation
and a locally configured password on the switch. If no password is configured, the MAC
address is also used as the password. You can also group MAC addresses together
using a mask (configure netlogin add mac-list [mac {mask} | default]
{encrypted {encrypted_password | password} {ports port_list} ).
DHCP is required for web-based network login because the underlying protocol used
to carry authentication request-response is HTTP. The client requires an IP address to
send and receive HTTP packets before the client is authenticated; however, the only
connection that exists is to the authenticator. As a result, the authenticator must be
furnished with a temporary DHCP server to distribute the IP address.
The switch responds to DHCP requests for unauthenticated clients when DHCP
parameters such as dhcp-address-range and dhcp-options are configured on
the network login VLAN. The switch can also answer DHCP requests following
authentication if DHCP is enabled on the specified VLAN. If network login clients
are required to obtain DHCP leases from an external DHCP server elsewhere on the
network, DHCP should not be enabled on the VLAN.
Also, enabling DHCP on post authentication VLANs is not be saved in the switch
configuration, since the port movement is dynamic. The following warning message
appears when enabling DHCP on post authentication VLAN and network login VLAN:
Warning: DHCP server configuration will not be saved for netlogin-enabled ports: 1
The DHCP allocation for network login has a short time duration of 10 seconds and is
intended to perform web-based network login only. The Netlogin lease timer can be
extended using the command: configure vlan vlan_name netlogin-lease-timer
seconds . As soon as the client is authenticated, it is deprived of this address. The client
must obtain an operational address from another DHCP server in the network. DHCP is
not required for 802.1X, because 802.1X uses only Layer 2 frames (EAPOL) or MAC-based
network login.
This feature makes it possible for two or more client stations to be connected to the
same port, with some being authenticated while others are not. A port's authentication
state is the logical “OR” of the individual MAC's authentication states. In other words,
a port is authenticated if any of its connected clients is authenticated. Multiple clients
can be connected to a single port of authentication server through a hub or Layer 2
switch.
Multiple supplicants are supported in ISP mode for web-based, 802.1X, and MAC-based
authentication. In addition, multiple supplicants are supported in Campus mode if
you configure and enable network login MAC-based VLANs. For more information, see
Configuring Network Login MAC-Based VLANs on page 940.
Note
With multiple supplicant support, after the first MAC is authenticated, the port
is transitioned to the authenticated state and other unauthenticated MACs can
listen to all data destined for the first MAC. Be aware of this as unauthenticated
MACs can listen to all broadcast and multicast traffic directed to a network
login-authenticated port.
Note
Precedence order does not work when MAC and web-based are enabled on
the same port. If you want to authenticate by web-based, do not use MAC and
other protocols.
When user “john” tries to authenticate with his login credentials through Dot1x-
enabled supplicant or client, it sends the EAPOL packet to the ExtremeXOS switch or
authenticator. Upon receipt of the EAPOL packet, the ExtremeXOS kernel FDB module
informs the user interface FDBMgr about the new MAC detection. The FDBMgr in
turn informs the NetLogin process about the new MAC or client. The NetLogin process
tries to authenticate the client/MAC through RADIUS. On receiving the authentication
result from AAA process, the NetLogin process checks for the protocol precedence
configured by the user for that port and also finds if this client is being authenticated
by any other authentication protocol. In this case, no other authentication protocol has
authenticated this MAC address yet and the NetLogin process applies the action (VLAN
movement, UPM security profile, etc.;) corresponding to MAC-based authentication.
The ExtremeXOS switch or authenticator then sends the credentials of user “john” to
the authentication server (RADIUS) a second time for Dot1x protocol authentication,
After the authentication result is received, the NetLogin process again checks the
protocol precedence to find that the user “john's" host/MAC is already authenticated
using MAC-based authentication. Since Dot1x is configured as the highest precedence
protocol for this port the NetLogin process remove MAC-based authentication actions
for this client and apply the Dot1x protocol action for “john” on this port. The
MAC-based authenticated client continues to exist and performs the periodic re-
authentication for the configured time. The show netlogin output shows the client’s
highest precedence protocol or action applied authentication protocol details only.
When another user “sam” tries to authenticate from the same host or MAC through
web-based authentication method (provided the NetLogin-enabled port is still
present in NetLogin VLAN) the user “sam” gets authenticated, but the web-based
authentication protocol action is not applied, since user “john” is already authenticated
from this MAC address with user-configured highest precedence Dot1x protocol on this
port.
Note
After changing the protocol precedence, the action for the current highest
precedence protocol (if client is authenticated by this protocol) takes effect
immediately.
Note
After disabling the highest precedence protocol on this port, the next
precedence protocol (if client is authenticated by this protocol) action takes
effect immediately.
The netlogin process does the following when the user or MAC is being
unauthenticated:
After performing the above actions, the netlogin process applies the highest
precedence authentication protocol action configured for this port.
Campus mode is intended for mobile users who tend to move from one port to another
and connect at various locations in the network. ISP mode is meant for users who
connect through the same port and VLAN each time (the switch functions as an ISP).
In Campus mode, the clients are placed into a permanent VLAN following
authentication with access to network resources. For wired ports, the port is moved
from the temporary to the permanent VLAN.
In ISP mode, the port and VLAN remain constant. Before the supplicant is
authenticated, the port is in an unauthenticated state. After authentication, the port
forwards packets.
You do not explicitly configure the mode of operation; rather, the presence of any
Extreme Networks Vendor Specific Attribute (VSA) that has a VLAN name or VLAN
ID (any VLAN attribute) in the RADIUS server determines the mode of operation. If a
VLAN attribute is present, it is assumed to be Campus mode. If a VLAN attribute is not
present, it is assumed to be ISP mode.
Note
When a client is authenticated in multiple VLANs using campus mode: 1) If
any of the authenticated VLANs are deleted manually from a port or globally,
the client is unauthenticated from all VLANs; and 2) If traffic is not seen on
a particular VLAN then the FDB entry ages out and is deleted; the client
itself remains authenticated and the FDB entry is reinstalled either when
traffic is detected on that VLAN or when the client reauthenticates. For
additional information on Campus and ISP mode operation on ports that
support network login and STP (Spanning Tree Protocol), see Exclusions and
Limitations.
For example, configure RSTP with autobind on VLANs V1, V2, and V3 assuming that
there are no ports associated to any of those VLANs. NetLogin moves the ports to the
VLANs as when clients get authenticated. As the ports are added to the VLAN, RSTP
inherits only tagged ports or untagged ports, depending on the default encapsulation
configured for the S1 domain. If S1 is configured with default-encapsulation PVST+
or EMISTP, and if NetLogin adds port P1 to V1 (tagged), then RSTP inherits port P1.
This occurs dynamically, and if port P1 is removed from VLAN V1, then port P1 is
automatically removed from S1.
Supported Platforms
The primary node executes the switch’s management functions, and the backup node
acts in a standby role. Hitless failover transfers switch management control from the
primary node to the backup node.
Note
Not all platforms support hitless failover in the same software release. To verify
if the software version you are running supports hitless failover, see Protocol
Support for Hitless Failover on page 89. For more information about protocol
and platform support for hitless failover, see Understanding Hitless Failover
Support on page 88.
Backup nodes do not show reauthentication timer in the output of the show netlogin
command as in master. Only the authenticated clients details appear in show netlogin
in backup.
Note
If you use 802.1X network login, authenticated clients remain authenticated
during failover; however, shortly after failover, all authenticated clients
automatically re-authenticate themselves. Re-authentication occurs without
user intervention.
Note
Before initiating failover, review the section Synchronizing Nodes on page 1972
to confirm that your switch (or SummitStack) and both (or all) nodes are
running software that supports the synchronize command.
1. Confirm that the nodes are synchronized and have identical software and switch
configurations using the show switch {detail} command.
If the primary and backup nodes, are not synchronized and both nodes are running
a version of ExtremeXOS that supports synchronization, proceed to Step 2.
If the primary and backup nodes, are synchronized, proceed to Step 3 on page 906.
The output displays the status of the primary and backup nodes, with the primary
node showing MASTER and the backup node showing BACKUP (InSync).
2. If the primary and backup nodes, are not synchronized, use the synchronize
command to replicate all saved images and configurations from the primary to the
backup.
After you confirm that the nodes are synchronized, proceed to Step 3.
3. If the nodes are synchronized, use the show ports tdm information command to
initiate failover.
For more detailed information about verifying the status of the nodes and system
redundancy, see Understanding System Redundancy on page 83. For more information
about hitless failover, see Understanding Hitless Failover Support on page 88.
All NetLogin configurations should be done on the LAG master port. For example:
member port of the sharing group. Similarly, when member ports are removed from
the sharing group, software-based learning is disabled on that member port.
Note
• When a LAG is removed, all the NetLogin configurations related to that LAG
are removed. Before deleting a sharing group, disable NetLogin on the LAG
port.
• The master port cannot be removed from the LAG.
• The maximum number of authenticated users per LAG group is 1,024.
• If OnePolicy is enabled, NetLogin global protocol configurations and
NetLogin VLAN configurations are lost, and then the LAG port is
authenticated using OnePolicy by enabling NetLogin protocols globally.
Note
ISC port must be added to the destination VLAN for all dynamic VLANs on the
switch.
Limitations
• Web-based authentication is not supported.
• Supported in policy mode only.
The CoA messages that were previously handled directly by the policy module are
now handled by the NetLogin module. With ExtremeXOS 30.4, the AAA module, on
receiving the CoA messages from the RADIUS server, passes the data to NetLogin.
Netlogin checks for the availability of the client, and the mode of authentication. If
it finds a valid client, the CoA message is passed to policy for further processing.
Additionally, NetLogin takes care of updating the MLAG peer about the dynamic
authorization changes or disconnect. The NetLogin module on the MLAG peer passes
the message to the policy module of that switch.
Limitations
• CoA support is not provided for web-based clients.
• The CoA server is aware of only the MLAG authenticator, so if the ISC link is down,
one MLAG peer might have a client in a different profile with respect to the other
MLAG node. This is resolved after the ISC link becomes active. This is a limitation of
the CoA server.
This section also describes information about Network Login's Exclusions and
Limitations on page 910.
For more detailed information about a specific mode of network login, including
configuration examples, see the following sections:
• 802.1X Authentication on page 916
• Web-Based Authentication on page 926
• MAC-Based Authentication on page 934
Note
When STP with Edge-safeguard and the Network login feature are enabled on
same port, the port moves to a disabled state when it detects a loop in the
network.
Note
When network login and STP are enabled on the same port, network login
operates only when the STP port is in the forwarding state.
To configure the behavior of network login if a VLAN move fails, use the following
command:
configure netlogin move-fail-action [authenticate | deny]
The following describes the parameters of this command if two clients want to move to
a different untagged VLAN on the same port:
• authenticate—Network login authenticates the first client that requests a move
and moves that client to the requested VLAN. Network login authenticates the
second client but does not move that client to the requested VLAN. The second
client moves to the first client’s authenticated VLAN.
• deny—Network login authenticates the first client that requests a move and moves
that client. Network login does not authenticate the second client.
The dot1x client is not informed of the VLAN move-fail because it always receives EAP-
Success or EAP-Fail directly based on the authentication result, not based on both
authentication and the VLAN move result.
Note
When STP with edge-safeguard and network login feature is enabled on the
same port, the port goes into the disabled state after detecting a loop in the
network. NetLogin campus mode and STP can be configured together on a
port with the autobind feature.
re-authentication period (session timeout) sent using RADIUS server for Netlogin
authentication.
• When in non-policy mode, NetLogin is not supported on user VRs. In non-policy
mode, it is supported only on VR-Default.
Enabling NetLogin on ports that are not part of VR-default produces the following
error
WARNING: Ports that are not part of the current Virtual Router were ignored.
• When in policy mode, system-wide, only one NetLogin base VLAN can be configured
and this VLAN can be part of any VR.
• If you want to scale to 65,000 authenticated users, use a session timeout value of at
least 300 minutes.
• NetLogin is not supported on user VRs in non-policy mode. NetLogin is supported
only on VR-Default in non-policy mode.
Authenticating Users
Network login uses two types of databases to authenticate users trying to access the
network:
• RADIUS servers
• Local database
All three network login protocols, web-based, MAC-based, and 802.1X, support RADIUS
authentication. Only web-based and MAC-based network login support local database
authentication.
Note
Beginning in ExtremeXOS 16.1, when RADIUS authentication is listed first
and sends an access-reject it is honored and the local user database is not
consulted - the bullet points listed just below indicate when the local database
is used. .
The network login authenticated entry is cleared when there is an FDB timeout. This
applies to web-based, MAC-Based, and 802.1X authentication.
802.1X network login does not support local database authentication. Local
authentication essentially mimics the functionality of the remote RADIUS server locally.
This method of authentication is useful in the following situations:
• If both the primary and secondary (if configured) RADIUS servers timeout or are
unable to respond to authentication requests.
• If no RADIUS servers are configured.
• If the RADIUS server used for network login authentication is disabled.
If any of the above conditions are met, the switch checks for a local user account and
attempts to authenticate against that local account.
For local authentication to occur, you must configure the switch’s local database with
a user name and password for network login. We recommend a maximum of 64 local
accounts. If you need more than 64 local accounts, we recommend using RADIUS for
authentication. You can also specify the destination VLAN to enter upon a successful
authentication. You can also specify a UPM profile in the local database when creating
a local user.
You can also use local database authentication in conjunction with network login MAC-
based VLANs. For more detailed information about network login MAC-based VLANs,
see Configuring Network Login MAC-Based VLANs on page 940.
User names are not case-sensitive. Passwords are case-sensitive. User names must
have a minimum of one character and a maximum of 32 characters. Passwords must
have a minimum of zero characters and a maximum of 32 characters. If you use RADIUS
for authentication, we recommend that you use the same user name and password for
both local authentication and RADIUS authentication.
• To create a local network login user name and password, use the following
command and specify the parameter: user-name
create netlogin local-user user-name {encrypted} {password} {vlan-vsa
[[{tagged | untagged} [vlan_name] | vlan_tag]]} {security-profile
security_profile}
If you attempt to create a user name with more than 32 characters, the switch
displays the following messages:
%% Invalid name detected at '^' marker.
%% Name cannot exceed 32 characters.
If you attempt to create a password with more than 32 characters, the switch
displays the following message after you re-enter the password:
Password cannot exceed 32 characters
The encrypted option is used by the switch to encrypt the password. Do not use this
option through the command line interface (CLI).
• After you enter a local network login user name, press [Enter]. The switch prompts
you twice to enter the password.
For information about specifying the destination VLAN, see the section Specifying a
Destination VLAN on page 913.
Note
If you do not specify a password or the keyword encrypted, you are prompted
for one.
You can specify the destination VLAN when you initially create the local network login
account or at a later time.
If you try modifying a local network login account that is not present on the switch, or
you incorrectly enter the name of the account, output similar to the following appears:
To confirm the names of the local network login accounts on your switch, use the
following command:
show netlogin local-users
1. Update the password of an existing local network login account with the following
command:
configure netlogin local-user user_name
where user_name specifies the name of the existing local network login account.
2. After you enter the local network login user name, press [Enter].
The switch prompts you to enter a password.
If you attempt to create a password with more than 32 characters, the switch
displays the following message after you re-enter the password:
Password cannot exceed 32 characters
The following example modifies the password for the existing local network login
account megtest.The following is a sample display from this command:
After you complete these steps, the password has been updated.
Note
You cannot mass delete all local users. You can only remove them one at a
time by specifying each name.
802.1X Authentication
802.1X authentication methods govern interactions between the supplicant (client) and
the authentication server.
The most commonly used methods are Transport Layer Security (TLS); Tunneled TLS
(TTLS), which is a Funk/Certicom standards proposal; and PEAP.
TLS is the most secure of the currently available protocols, although TTLS is advertised
to be as strong as TLS. Both TLS and TTLS are certificate-based and require a Public
Key Infrastructure (PKI) that can issue, renew, and revoke certificates. TTLS is easier to
deploy, as it requires only server certificates, by contrast with TLS, which requires client
and server certificates. With TTLS, the client can use the RSA Data Security, Inc. MD5
(Message-Digest algorithm 5) Message-Digest Algorithm mode of user name/password
authentication.
If you plan to use 802.1X authentication, refer to the documentation for your particular
RADIUS server and 802.1X client on how to set up a PKI configuration.
Note
If you do not configure the reauthentication timer in non-policy mode, or the
reauthentication or idle timer for policy mode, Dot1x clients remain active and
are not removed when switching between machine authentication and user
authentication (by logging out of a VM, and then logging back into the VM) or
when switching between two users using the same VM.
Interoperability Requirements
For network login to operate, the user (supplicant) software and the authentication
server must support common authentication methods.Not all combinations provide
the appropriate functionality.
Supplicant Side
The supported 802.1X supplicants (clients) are Windows 7 and Windows 8 native clients,
and Meetinghouse AEGIS.
Note
For information on how to use and configure your RADIUS server, refer to
Configuring the RADIUS Client on page 1159 and to the documentation that
came with your RADIUS server.
• To enable 802.1X network login on the switch, use the following command:
enable netlogin dot1x Any combination of types of authentication can be
enabled on the same switch. At least one of the authentication types must be
specified on the CLI.
• To disable 802.1X network login on the switch, use the following command:
disable netlogin dot1x
• To enable 802.1X network login on one or more ports, use the following command:
enable netlogin ports portlist dot1x
• To disable 802.1X network login on one or more ports, use the following command:
disable netlogin ports portlist dot1x
• To configure the reauthentication counter values, use the following command:
configure netlogin dot1x timers
Note
In the following sample configuration, any lines marked (Default) represent
default settings and do not need to be explicitly configured.
The following example is for the FreeRADIUS server; the configuration might be
different for your RADIUS server:
For information about how to use and configure your RADIUS server, refer to
Configuring the RADIUS Client on page 1159 and the documentation that came with
your RADIUS server.
802.1X authentication supports the concept of “guest VLANs” that allow such a
supplicant (client) limited or restricted network access. If a supplicant connected to
a port does not respond to the 802.1X authentication requests from the switch, the port
moves to the configured guest VLAN. A port always moves untagged into the guest
VLAN.
Note
The supplicant does not move to a guest VLAN if it fails authentication after an
802.1X exchange; the supplicant moves to the guest VLAN only if it does not
respond to an 802.1X authentication request.
When the authentication server sends an 802.1X request to the supplicant, there is
a specified time interval for the supplicant to respond. By default, the switch uses
the supplicant response timer to authenticate the supplicant every 30 seconds for a
maximum of three tries. If the supplicant does not respond within the specified time,
the authentication server sends another request. After the third 802.1X request without
a supplicant response, the port is placed in the guest VLAN, if the guest VLAN feature
has been configured for the port. The number of authentication attempts is not a
user-configured parameter.
If a supplicant on a port in the guest VLAN becomes 802.1X-capable, the switch starts
processing the 802.1X responses from the supplicant. If the supplicant is successfully
authenticated, the port moves from the guest VLAN to the destination VLAN specified
by the RADIUS server. If the RADIUS server does not specify a destination VLAN, the
port moves to the VLAN it belonged to before it was placed in the guest VLAN. After
a port has been authenticated and moved to a destination VLAN, it is periodically
re-authenticated. If the port fails authentication, it moves to the VLAN it belonged to
originally.
Note
A guest VLAN is not a normal network login VLAN. A guest VLAN performs
authentication only if authentication is initiated by the supplicant.
In this scenario, your employees have 802.1X enabled supplicants but your visitors
do not. By configuring a guest VLAN, when your employees log into the network,
they are granted network access (based on their user credentials and 802.1X enabled
supplicants). However, when the visitors attempt to log into the network, they are
granted limited network access because they do not have 802.1X enabled supplicant.
The visitors might be able to reach the Internet, but they are unable to access the
corporate network.
For example, in Figure 101 Host A has 802.1x capability and Host B does not. When Host
A is authenticated, it is given full access to the network. Host B does not have 802.1X
capability and therefore does not respond to 802.1X requests from the switch. If port B
is configured with the guest VLAN, port B is moved to the guest VLAN. Then Host B will
be able to access the Internet but not the corporate network. After Host B is equipped
with 802.1X capability, it can be authenticated and allowed to be part of the corporate
network.
Note
You can configure guest VLANs on a per port basis, which allows you to
configure more than one guest VLAN per VR. In ExtremeXOS 11.5 and earlier,
you can only configure guest VLANs on a per VR basis, which allows you to
configure only one guest VLAN per VR.
To modify the supplicant response timer, use the following command and specify the
supp-resp-timeout parameter:
If you specify the vlan_name, the switch displays information for only that guest VLAN.
This occurs when the switch receives an Access-Accept message from the RADIUS
server with a VSA that defines a new VLAN. The supplicant remains authenticated
during this transition. This occurs on both untagged and tagged VLANs. For example,
suppose a supplicant submits the required credentials for network access; however,
it is not running the current, approved anti-virus software or it does not have the
appropriate software updates installed. If this occurs, the supplicant is authenticated
but has limited network access until the problem is resolved. After you update the
supplicant’s anti-virus software, or install the software updates, the RADIUS server
To configure your network for NAP, the minimum required components are:
• Extreme Networks switches running ExtremeXOS 11.6 or later.
• RADIUS server that supports NAP (Microsoft Windows Vista operating system
refers to this as a network policy server (NPS), formerly known as the internet
authentication server (IAS)).
• Remediation servers that receive unhealthy supplicants. The remediation servers
contain the appropriate software updates, anti-virus software, and so on to make a
supplicant healthy.
In addition to the required hardware and software, you must configure NAP-specific
VSAs on your RADIUS server. By configuring these VSAs, you ensure supplicant
authentication and authorization to the network and the switch creates dynamic
Access Control Lists (ACLs) to move unhealthy supplicants to the quarantine VLAN for
remediation. For more information see, Using NAP-Specific VSAs to Authenticate 802.1X
Supplicants on page 924.
Figure 102 displays a sample network that uses NAP to protect the network.
1. The 802.1X supplicant initiates a connection to the 802.1X network access server
(NAS), which in this scenario is the Extreme Networks switch.
2. The supplicant passes its authentication credentials to the switch using PEAP and
an inner authentication method such as MS-CHAPv2.
3. The RADIUS server requests a statement of health (SoH) from the supplicant.
Only NAP-capable supplicants create an SoH, which contains information about
whether or not the supplicant is compliant with the system health requirements
defined by the network administrator.
4. If the SoH indicates that the supplicant is healthy, the RADIUS server sends an
Access-Accept message with a RADIUS VSA indicating which VLAN the healthy
supplicant is moved to (in this example, the Production VLAN).
5. The switch authenticates the supplicant and moves it into the Production VLAN.
6. The switch sends a trap to the NMS indicating that the supplicant has been
successfully authenticated and the VLAN into which it has been moved.
1. The 802.1X supplicant initiates a connection to the 802.1X network access server
(NAS), which in this scenario is the Extreme Networks switch.
2. The supplicant passes its authentication credentials to the switch using PEAP and
an inner authentication method such as MS-CHAPv2.
3. The RADIUS server requests a statement of health (SoH) from the supplicant.
Only NAP-capable supplicants create an SoH, which contains information about
whether or not the supplicant is compliant with the system health requirements
defined by the network administrator.
4. If the SoH indicates that the supplicant is unhealthy, the RADIUS server sends an
Access-Accept message with RADIUS VSAs indicating which:
• VLAN the unhealthy supplicant is moved to (in this example, the Quarantine
VLAN).
• the remediation server(s) from which the supplicant can get software updates,
anti-virus software and so on to remediate itself.
5. When the switch receives the VLAN and remediation server information from the
RADIUS server, the switch:
• Moves the supplicant into the Quarantine VLAN.
• Applies ACLs to ensure the supplicant in the Quarantine VLAN can access only
the remediation servers
• Drops all other traffic not originating/destined from/to the remediation servers
• .
6. The supplicant connects to the remediation server to get software updates, anti-
virus software, and so on to get healthy.
7. After the supplicant is healthy, it restarts the authentication process and is moved to
the Production VLAN, as a healthy supplicant with full network access.
Note
For more information about NAP and the VSAs supported by NAP, please
refer to the documentation that came with your Microsoft operating system
or server.
The way a quarantine is implemented on the switch is simply by moving the client/
port to a user-designated 'quarantine' VLAN whose VLANID/Name is sent in the Access-
Accept message. It is up to the user to ensure that the quarantine VLAN does indeed
have limited access to the rest of the network. Typically, this can be done by disabling
IP forwarding on that VLAN so no routed traffic can get out of that VLAN. Also, with
dynamic VLAN creation, the quarantine VLAN being supplied by RADIUS could be
dynamically created on the switch, once dynamic VLAN creation is enabled on it.
The remediation server(s) would need to be accessible via the uplink port, regardless
of whether the quarantine VLAN is pre-configured or dynamically created, since IP
forwarding is not enabled on it.
To get around this restriction, network login has been enhanced so when
a MS-Quarantine-State attribute is present in the Access-Accept message with
extremeSessionStatus being either 'Quarantined' or 'On Probation,' then a 'deny all
traffic' dynamic ACL (Access Control List) will be applied on the VLAN. If such an ACL is
already present on that VLAN, then no new ACL will be applied.
When the last authenticated client has been removed from the quarantine VLAN, then
the above ACL will be removed.
Web-Based Authentication
This section describes web-based network login.
For web-based authentication, you need to configure the switch DNS name, default
redirect page, session refresh, and logout-privilege. URL redirection requires the switch
to be assigned a DNS name. The default name is network-access.com. Any DNS query
coming to the switch to resolve switch DNS name in unauthenticated mode is resolved
by the DNS server on the switch in terms of the interface (to which the network login
port is connected).
Note
When both HTTP and HTTPS are enabled on the switch and sending HTTP
requests from the Netlogin client, HTTPS takes preference and the switch
responds with a HTTPS response.
Network Login must be disabled on a port before you can delete a VLAN that
contains that port.
• To disable web-based network login on one or more ports, use the following
command:
disable netlogin ports portlist web-based
Where url defines the redirection information for the users after they have logged
in. You must configure a complete URL starting with http:// or https://. By default, the
redirect URL value is “http://www.extremenetworks.com” and default re-direction will
take maximum of 20 seconds i.e default netlogin-lease-timer + 10 seconds. Re-direct
time can be changed by tuning netlogin-lease-timer.
You can also configure the redirect value to a specific port number, such as 8080. For
example, you can configure the network login redirect page to the URL value “http://
www.extremenetworks.com:8080”. The default port value is 80.
For more information about SSH2, see Secure Shell 2 on page 1192.
For each hijacked or proxy port, you must specify whether the port is to be used for
HTTP or HTTPS traffic. No more than five hijack or proxy ports are supported for HTTP
in addition to port 80 (for HTTP) and port 443 (for HTTPS), both of which cannot be
deleted.
Where minutes ranges from 1 - 255. The default setting is 3 minutes. The commands
enable netlogin session-refresh and configure netlogin session-refresh
make the logout window refresh itself at every configured time interval. Session refresh
is enabled by default. When you configure the network login session refresh for the
logout window, ensure that the FDB aging timer is greater than the network login
session refresh timer.
Note
If an attempt is made to authenticate the client in a non-existent VLAN, and
the move fail action setting is authenticate, then the client is successfully
authenticated in the port’s original VLAN, but subsequent session refreshes
fail and cause the client to become unauthenticated.
When web-based Network Login is configured with proxy ports and session-refresh are
also enabled, you must configure the web browser to bypass the web proxy server for
the IP address of the VLAN into which the client moves after authentication.
In general, the steps for setting up a custom login page and graphical images (if any)
are as follows:
• To display configured banners from the network login screen, use the following
command:
show netlogin banner
• To clear configured network login banners, use the following command:
unconfigure netlogin banner
While the contents of the page are left up to the customer, they must contain the
following elements:
• An HTML submit form with action="/hello" and method="post" that is used to send
the Network Login username and password to the switch. The form must contain
the following:
◦ A username input field with name="extremenetloginuser"
◦ A password input field with name="extremenetloginpassword"
• Optionally, one or more graphical images embedded using the tags
<img src="netlogin_<xxx>.jpg"> or
<img src="netlogin_<xxx>.jpeg"> or
<img src="<netlogin_<xxx>.gif">
The following is a sample custom page, where the embedded graphical image is
named netlogin_welcome.jpg:
<html lang="en">
<head>
<title>Network Login Page</title>
</head>
<body>
<form action="/hello" method="post">
<img src="netlogin_welcome.jpg">
<br/>
Please log in:
<br/>
User:
For example, assuming the page resides on a TFTP server with IP address 10.255.49.19,
the command used would be:
BD-8810.1 # tftp get 10.255.49.19 netlogin_login_page.html
General Guidelines
The following general guidelines are applicable to the login page:
• When the custom web page is not present on the switch, the system falls back to
the using the default banner. The web page may be added (or removed) from the
switch at any time, at which point the switch will stop (or start) using the banner.
• The graphical image file names referenced in the web page must not have any path
information prepended.
• Both uppercase and lowercase names (or a mixture) for the graphical image
filenames are supported, but the user and password tag names should be either
all uppercase or all lowercase, not a mixture of the two.
• More than one form may exist on the page. This can be useful when, for example,
in addition to the main username and password that is typed in by the user, an
additional special username and password needs to be auto-filled and sent. This
could be used when end users without a valid username or password need to be
given restricted access to the network.
Limitations
The following limitations apply to the login page:
• When the client is in the unauthenticated state, any embedded URLs in the custom
page are inaccessible to it.
• Only JPEG and GIF graphical images are supported.
• It is the web page writer's responsibility to write the HTML page correctly and
without errors.
• Only TFTP is supported as a method to upload the web-page and graphical images
to the switch.
When a customized login page is in effect, by default, any authentication failure results
in the following failure response being delivered to the browser:
Login Incorrect. Click here to try again.
Clicking on the indicated link will bring the user back to the initial custom login page.
You may choose to override the above default response with a custom one. This custom
failure response page must be uploaded to the switch using TFTP with the name
netlogin_login_fail_page.html. When authentication fails, the switch responds
with this page. If the page is deleted from the switch, the response reverts back to
the default.
The same graphical images that are uploaded to the switch for the custom login page
can also be embedded in the custom authentication failure page.
Note
The custom authentication failure page can be used only when authentication
is being done via the custom login page.
This image appears in the window in addition to the text that is displayed. The image
must be TFTPed to the switch in the same manner as the custom login image, and
must have the filename netlogin_logout_image.jpg or netlogin_logout_image.gif
(depending on whether the image is JPEG or GIF). If no such image is present on the
switch, then the logout popup contains only text.
VLAN corp is assumed to be a corporate subnet which has connections to DNS, WINS
servers, network routers, and so on. VLAN temp is a temporary VLAN and is created
to provide connections to unauthenticated network login clients. Unauthenticated
ports belong to the VLAN temp. This kind of configuration provides better security as
unauthenticated clients do not connect to the corporate subnet and will not be able to
send or receive any data. They have to get authenticated in order to have access to the
network.
• ISP Mode—Network login clients connected to ports 1:10–1:14, VLAN corp, will be
logged into the network in ISP mode. This is controlled by the fact that the VLAN in
which they reside in unauthenticated mode and the RADIUS server Vendor Specific
Attributes (VSA), Extreme-Netlogin-Vlan, are the same, corp. So there will be no port
movement. Also if this VSA is missing from RADIUS server, it is assumed to be ISP
Mode.
• Campus Mode—On the other hand, clients connected to ports 4:1–4:4, VLAN temp,
will be logged into the network in Campus mode since the port will move to the
VLAN corp after getting authenticated. A port moves back and forth from one VLAN
to the other as its authentication state changes.
Both ISP and Campus mode are not tied to ports but to a user profile. In other words,
if the VSA Extreme:Extreme-Netlogin-Vlan represents a VLAN different from the one in
which the user currently resides, then VLAN movement will occur after login and after
logout. In following example, it is assumed that campus users are connected to ports
4:1–4:4, while ISP users are logged in through ports 1:10–1:14.
Note
In the following sample configuration, any lines marked (Default) represent
default settings and do not need to be explicitly configured.
For this example, the following lines (for a FreeRADIUS server) should be added to the
RADIUS server users file for each user:
Extreme:Extreme-Netlogin-Only = Enabled (if no CLI authorization)
Extreme:Extreme-Netlogin-Vlan = "corp" (destination vlan for CAMPUS mode network login)
Note
For information about how to use and configure your RADIUS server, refer
to Configuring the RADIUS Client on page 1159 and the documentation that
came with your RADIUS server.
2. Plug into the port that has web-based network login enabled.
3. Log in to Windows.
4. Release any old IP settings and renew the DHCP lease.
This is done differently depending on the version of Windows the user is running:
• Windows 9x—Use the winipcfg tool. Choose the Ethernet adapter that is
connected to the port on which network login is enabled. Use the buttons to
release the IP configuration and renew the DHCP lease.
• Windows 7 or Windows 8—Use the ipconfig command line utility. Use the
command ipconfig/release to release the IP configuration and ipconfig/renew
to get the temporary IP address from the switch. If you have more than
one Ethernet adapter, specify the adapter by using a number for the adapter
following the ipconfig command. You can find the adapter number using the
command ipconfig/all. At this point, the client will have its temporary IP
address. In this example, the client should have obtained an IP address in the
range 198.162.32.20–198.162.32.80.
Note
The idea of explicit release/renew is required to bring the network login
client machine in the same subnet as the connected VLAN. When using
web-based authentication, this requirement is mandatory after every logout
and before login again as the port moves back and forth between the
temporary and permanent VLANs.
Note
URL redirection requires that the switch be configured with a DNS client.
After a successful login has been achieved, there are several ways that a port can return
to a non-authenticated, non-forwarding state:
• The user successfully logs out using the logout web browser window.
• The link from the user to the switch’s port is lost.
• There is no activity on the port for 20 minutes.
• An administrator changes the port state.
Note
Because network login is sensitive to state changes during the authentication
process, we recommend that you do not log out until the login process
is complete. The login process is complete when you receive a permanent
address.
MAC-Based Authentication
MAC-based authentication is used for supplicants that do not support a network login
mode, or supplicants that are not aware of the existence of such security measure (for
example, an IP phone).
The credentials used for this are the MAC address of the supplicant in ASCII
representation, and a locally configured password on the switch. If no password is
configured, the MAC address is used as the password. ExtremeXOS 30.3 provides an
option to send the MAC address in either uppercase or lowercase for the user name
or password to provide compatibility with the requirements of the RADIUS server (see
Configuring MAC Authentication Case Option for User Name and Password on page
937).You can also group MAC addresses together using a mask.
You can configure a MAC list or a table of MAC entries to filter and authenticate
clients based on their MAC addresses. If a match is found in the table of MAC entries,
authentication occurs. If no match is found in the table of MAC entries, and a default
entry exists, the default will be used to authenticate the client. All entries in the list
are automatically sorted in longest prefix order. All passwords are stored and showed
encrypted.
You can associate a MAC address with one or more ports. By learning a MAC
address, the port confirms the supplicant before sending an authorization request to
the RADIUS server. This additional step protects your network against unauthorized
supplicants because the port accepts only authorization requests from the MAC
address learned on that port. The port blocks all other requests that do not have a
matching entry.
Note
When ONEPolicy is enabled and authentication required mode is configured
with a static macsource rule applied, even if a MAC address fails
authentication, traffic is forwarded.
Note
With ONEPolicy enabled, admin-profile port rule configured, and
authentication required mode set, traffic is not forwarded by the admin profile
VLAN when MAC authentication fails.
Limitations
Web-based authentication is not supported on Extended Edge Switching extended
ports.
• To enable MAC-based network login on one or more ports, use the following
command:
enable netlogin ports portlist mac
• To disable MAC-based network login on one or more ports, use the following
command:
disable netlogin ports portlist mac
You must enable MAC-based network login on the switch and the specified ports.
If MAC-based network login is not enabled on the specified port(s), the switch
displays a warning message similar to the following:
WARNING: Not all specified ports have MAC-Based NetLogin enabled.
For a sample configuration, see Securing MAC Configuration Example on page 938.
When a client needs authentication the best match will be used to authenticate to the
server.
Assume we have a supplicant with MAC address 00:04:96:05:40:00, and the switch has
the following table:
The user name used to authenticate against the RADIUS server would be
“000496000000,” as this is the supplicant's MAC address with the configured mask
applied. Although this is the default, ExtremeXOS 16.1 allows for a hyphenated mac
address to be sent - configure netlogin mac username format hyphenated.
Note that the commands are VR aware, and therefore one MAC list table exists per VR.
Configuring MAC Authentication Case Option for User Name and Password
If a RADIUS server is case-sensitive and it expects the user name and password only in
lowercase, then MAC Authentication will fail due to the case mismatch, since whenever
a MAC address is used as user name and password, by default the MAC address is sent
only in uppercase.
ExtremeXOS 30.3 provides an option to send the Network Login (NetLogin) MAC
Authentication MAC address in either upper or lower case for the user name or
password.
For more information about RADIUS server attributes, see Configuring the RADIUS
Client on page 1159.
The following example is a user's file entry for a specific MAC address on a FreeRADIUS
server:
00E018A8C540 Auth-Type := Local, User-Password == "00E018A8C540"
Note
For information about how to use and configure your RADIUS server, refer
to Configuring the RADIUS Client on page 1159 and the documentation that
came with your RADIUS server.
The following example explains both the pre-ExtremeXOS 21.1 behavior and the added
MAC Authentication Delay feature:
Assume MAC, dot1X and Web-based authentication methods are enabled on a port.
When the client is connected to the port the first packet from the client triggers
ExtremeXOS to do MAC authentication, authenticates the client using RADIUS, and
applies the action. When the user “Adam” tries to do the dot1X authentication,
ExtremeXOS triggers the dot1X authentication, authenticates “Adam” using RADIUS,
and applies the high preferred authentication method’s action. If dot1x authentication
is configured as preferred over MAC authentication, then the MAC authentication
action is unapplied and the dot1X authentication action is applied. In this case the
switch authenticates the client using both MAC and dot1x authentication method. This
is the existing behavior in which the MAC authentication delay interval is 0 second.
If the customer requirement is to delay/bypass the MAC authentication then the the
MAC authentication delay period must be configured on a per port basis. In this
case, the moment ExtremeXOS detects the first packet from the client connected
port it will wait for the MAC authentication delay period for other authentication
methods to be triggered to authenticate the client. In this case the user “Adam” will
do dot1X authentication to authenticate himself. The time ExtemeXOS waits for the
dot1X authentication to trigger is termed as MAC authentication delay period and it is
user configurable.
Review the earlier sections of this chapter for general information about network login
and information about MAC-based, web-based, and 802.1X authentication methods.
Network login MAC-based VLAN utilizes VSA information from both the network login
local database and the RADIUS server. After successfully performing the Campus mode
operation, the supplicant is added untagged to the destination VLAN.
To support this feature, you must configure the network login port’s mode of operation.
If you attempt to configure the port’s mode of operation before enabling network
login, the switch displays an error message similar to the following:
ERROR: The following ports do not have NetLogin enabled; 1
Specify MAC-based operation using the following command and specifying mac-
based-vlans:
When you change the network login port’s mode of operation, the switch deletes all
currently known supplicants from the port and restores all VLANs associated with that
port to their original state. In addition, by selecting mac-based-vlans, you are unable
to manually add or delete untagged VLANs from this port. Network login now controls
these VLANs.
With network login MAC-based operation, every authenticated client has an additional
FDB flag that indicates a translation MAC address. If the supplicant’s requested VLAN
does not exist on the port, the switch adds the requested VLAN.
FDB Information
By specifying netlogin, you see only FDB entries related to network login or network
login MAC-based VLANs.
• To view the VLANs that network login adds temporarily in MAC-based mode, use the
following command:
show ports port_list information detail
By specifying information and detail, the output displays the temporarily added
VLANs in network login MAC-based mode.
This command will also show port information for ingress filtering for MAC-based
VLANs.
• To confirm this, review the following output of this command:
VLAN cfg—The term "MAC-based" appears next to the tag number.
Netlogin port mode—This output was added to display the port mode of operation.
"Mac-based" appears and the network login port mode of operation.
• To view information about the ports that are temporarily added in MAC-based mode
for network login, due to discovered MAC addresses, use the following command:
show vlan detail
By specifying detail, the output displays detailed information including the ports
associated with the VLAN.
Note
If network login is enabled together with STP, the 'a' and 'u' flags are
controlled by network login only when the STP port state is ‘Forwarding.’
Expanding upon the previous example, you can also utilize the local database for
authentication rather than the RADIUS server:
create netlogin local-user 000000000012 vlan-vsa untagged default
create netlogin local-user 000000000010 vlan-vsa untagged users12
For more information about local database authentication, see Local Database
Authentication on page 911.
The VLAN must exist on the switch for network login to authenticate the client on that
VLAN.
You can configure the switch to dynamically create a VLAN after receiving an
authentication response from a RADIUS server. A dynamically created VLAN is only
a Layer 2 bridging mechanism; this VLAN does not work with routing protocols to
forward traffic. If configured for dynamic VLAN creation, the switch automatically
creates a supplicant VLAN that contains both the supplicant’s physical port and one
or more uplink ports. After the switch unauthenticates all of the supplicants from the
dynamically created VLAN, the switch deletes that VLAN.
Note
Dynamically created VLANs do not support the session refresh feature of web-
based network login because dynamically created VLANs do not have an IP
address.
By dynamically creating and deleting VLANs, you minimize the number of active
VLANs configured on your edge switches. In addition, the dynamic VLAN name can
be stored on the RADIUS server and supplied to the switch during authentication,
simplifying switch management. A key difference between dynamically created VLANs
and other VLANs is that the switch does not save dynamically created VLANs. Even if
you use the save command, the switch does not save a dynamically created VLAN.
After you configure network login on the switch, the two steps to configure dynamic
VLANs are:
• Specifying the tagged uplink port(s) to be added to each dynamically created VLAN.
• Enabling the switch to create dynamic VLANs.
To specify one or more ports as tagged uplink ports that are added to the dynamically
created VLAN, use the following command:
If you specify an uplink port with network login enabled, the configuration fails and the
switch displays an error message similar to the following:
ERROR: The following ports have NetLogin enabled: 1, 2
To enable the switch to create dynamic VLANs, use the following command:
When enabled, the switch dynamically creates VLANs. Remember, dynamically created
VLANs are not permanent nor are user-created VLANs. The switch uses the VLAN ID
supplied by the RADIUS attributes (as described below) to create the VLAN. The switch
only creates a dynamic VLAN if the requested VLAN, indicated by the VLAN ID, does not
currently exist on the switch.
The RADIUS server uses VSAs to forward VLAN information.The forwarded information
can include only a VLAN ID (no VLAN name). The following list specifies the supported
VSAs for configuring dynamic VLANs:
• Extreme: Netlogin-VLAN-ID (VSA 209)
• Extreme: Netlogin-Extended-VLAN (VSA 211)
• IETF: Tunnel-Private-Group-ID (VSA 81)
Note
If the ASCII string contains only numbers, it is interpreted as the VLAN ID.
Dynamic VLANS support only numerical VLAN IDs; VLAN names are not
supported.
The switch automatically generates the VLAN name in the following format:
SYS_VLAN_TAG where TAG specifies the VLAN ID. For example, a dynamic VLAN with
an ID of 10 has the name SYS_VLAN_0010.
Note
Like all VLAN names, dynamic VLAN names are unique. If you create a VLAN
and use the name of an existing dynamic VLAN, the switch now sees the
dynamic VLAN as a user-created VLAN and will save this VLAN to the switch
configuration. If this occurs, the switch does not delete the VLAN after the
supplicants are authenticated and moved to the permanent VLAN.
For more information on Extreme Networks VSAs, see Extreme Networks VSAs on page
1166.
Note
Do not enable network login on uplink ports. If you specify an uplink port
with network login enabled, the configuration fails and the switch displays
an error message.
Whether you have MAC-based, web-based, or 802.1X authentication, you use the same
two commands to configure dynamic VLANs on the switch.
This feature, known as network login port restart , is available with all network login
authentication methods although is most practical with web-based network login. This
section describes how this feature behaves with web-based network login; MAC-based
and 802.1X network login do not experience any differences in behavior if you enable
network login port restart.
Currently with web-based network login, if you have an authenticated supplicant and
log out of the network, you must manually release the IP address allocated to you by
the DHCP server. The DHCP server dynamically manages and allocates IP addresses
to supplicants. When a supplicant accesses the network, the DHCP server provides an
IP address to that supplicant. DHCP cannot renegotiate their leases, which is why you
must manually release the IP address.
For example, if the idle timer expires on the switch, the switch disconnects your
network session. If this occurs, it may be unclear why you are unable to access the
network. After you manually renew the IP address, you are redirected to the network
login login page and can log back into the network. To solve this situation in a single
supplicant per port environment, port restart triggers the DHCP client on the PC to
restart the DHCP address assignment process.
If you use a hub to connect multiple supplicants, only the last unauthenticated
supplicant causes the port to restart. Although the hub does not inflict harm to your
network, in this situation, the previously unauthenticated supplicants do not get the
benefit of the port restart configuration.
Output from this command includes the enable/disable state for network login port
restart.
You can use these features to set and control the response to network login
authentication failure and instances of services unavailable.
Through either a RADIUS or local server, the other database is used to authenticate
the client depending on the authentication database order for that particular network
login method (mac, web, or dot1x). If the final result is authentication failure and if the
authentication failure VLAN is configured and enabled on that port, then the client is
moved there.
For example, if the network login MAC authentication database order is local, radius
and the authentication of a MAC client fails through local database, then the RADIUS
server is used to authenticate. If the RADIUS server also fails authentication, the client
is moved to the authentication failure VLAN. This applies for all authentication database
orders (radius,local; local,radius; radius; local).
In the above example if authentication through local fails but passes through the
RADIUS server, the client is moved to appropriate destination VLAN. If the local server
authentication fails and the RADIUS server is not available, the client is not moved to
authentication failure VLAN.
Only when Radius Access-Reject is received, the client moves to auth fail vlan in
Netlogin Mac. 802.1x Authentication: Client will move to auth fail vlan for access
rejection and for cases where Radius Access Challenge is received without reject from
the Radius Server. After the expiration of the timeout period, client will move to auth fail
vlan.
There are four different authentication orders which can be configured per
authentication method. These four orders are the following:
• RADIUS
• Local
• RADIUS, Local
• Local, RADIUS
For each authentication order, the end result is considered in deciding whether to
authenticate the client through the authentication failure VLAN or the authentication
service unavailable VLAN (if configured).
For example, if the authentication order is radius, local, with the RADIUS server
unavailable, and local authentication failed, the client is authenticated in the
authentication failure VLAN (if one is configured on the port).
For local authentication, the following cases are considered as authentication failure.
• If the user is not created in the local database.
• If the user is configured, but the password does not match.
If the user is configured, but the password does not match, it is considered an
authentication failure.
For RADIUS server authentication, if for some reason the user cannot be authenticated
due to problems with the RADIUS configuration, the RADIUS server not running, or
some other problem then it is considered as an authentication service unavailable. If
the actual authentication fails then it is considered as an authentication failure.
Starting with ExtremeXOS 30.2, you can configure multiple (10 maximum) service-
unavailable VLANs per port.
ONEPolicy provides for the configuration of role-based profiles for securing and
provisioning network resources based upon the role the user or device plays within the
enterprise. By first defining the user or device role, network resources can be granularly
tailored to a specific user, system, service, or port-based context by configuring and
assigning rules to the policy role. A policy role can be configured for any combination
of Class of Service, VLAN (Virtual LAN) assignment, or default behavior based upon L2,
L3, and L4 packet fields. Hybrid authentication allows either policy or dynamic VLAN
assignment, or both, to be applied through RADIUS (Remote Authentication Dial In
User Service) authorization.
Note
The software only allows policy to be enabled if all the devices in the stack
support policy. At the time of configuration the device will provision the
lowest common denominator of functionality. If a device attempts to join
the stack after policy is enabled, it must be able to support the existing
level of functionality or it will not be allowed to participate in policy. For
more detailed information about lowest common denominator, see Policy and
Lowest Common Denominator Stacking on page 964.
ONEPolicy Overview
The three primary benefits of using policy in your network are provisioning and control
of network resources, security, and centralized operational efficiency. Policy provides for
the provisioning and control of network resources by creating policy roles that allow
you to determine network provisioning and control at the appropriate network layer,
for a given user or device. With a role defined, rules can be created based upon up
to 15 traffic classification types for traffic drop or forwarding. A CoS (Class of Service)
can be associated with each role for purposes of setting priority, forwarding queue, rate
limiting, and rate shaping.
Security can be enhanced by allowing only intended users and devices access to
network protocols and capabilities. Some examples are:
• Ensuring that only approved stations can use SNMP (Simple Network Management
Protocol), preventing unauthorized stations from viewing, reading, and writing
network management information
• Preventing edge clients from attaching network services that are appropriately
restricted to data centers and managed by the enterprise IT organization such as
DHCP (Dynamic Host Configuration Protocol) and DNS services
• Identifying and restricting routing to legitimate routing IP addresses to prevent DoS,
spoofing, data integrity and other routing related security issues
• Ensuring that FTP/TFTP file transfers and firmware upgrades only originate from
authorized file and configuration management servers
• Preventing clients from using legacy protocols
Note
Any configurations which require the use of the first stage ACL/VLAN
processor, do not operate when OnePolicy is enabled. This includes, but is not
limited to, certain MPLS, PSTag, VXLAN, and OAM/CFM configurations.
Note
Configuration changes on existing policy mux entries (changing the policy
profile for a convergence endpoint to 0 or a different value, disabling LLDP
(Link Layer Discovery Protocol) or CDP, etc.) do not take effect until re-
authorization. As a result, existing CEP connections remain active and FDB
(forwarding database) is still learned on policy profile even though CDP/
LLDP neighbor times out and show cdp neighbor {detail} and show
lldp neighbors is empty. You can force re-authorization by clearing a
CEP connection: configure policy convergence-endpoint clear ports
[port_list | all].
Note
IDM and ONEPolicy are not supported together and it is not recommended
to enable both, since handling rule/role-based actions is not supported, except
to support Kerberos Authentication with NAC as a RADIUS server and can be
used in conjunction with IDM XML event triggers.
Note
In ONEPolicy mode, when enabling NetLogin web-based, the following
warning message appears when the port is not part of any default VLAN:
WARNING: The following netlogin enabled ports 1 are not part of any VLAN. The
port has to be part of some VLAN for Web-Based netlogin to work.
For NetLogin web to work, the port must be part of a default VLAN.
Note
Restarting the NetLogin process is not supported when policy is enabled.
Doing so results in indeterminate behavior.
Note
If Convergence End Point (CEP) (see Convergence End Point (CEP) Detection
on page 952) is configured and you have multiple authentication types
configured, failure of a higher priority authentication results in the lower
priority authentication being used.
# show netlogin session
Multiple authentication session entries
---------------------------------------
Port : 3:1 Station address : bc:f1:f2:b4:e7:5e
Auth status : failed Last attempt : Fri Nov 4 13:39:34 2016
Agent type : dot1x Session applied : false
Server type : radius VLAN-Tunnel-Attr : None
Policy index : 0 Policy name : No Policy applied
Session timeout : 0 Session duration : 0:00:00
Idle timeout : 300 Idle time : 0:00:00
Auth-Override : enabled Termination time: Not Terminated
Implementing Policy
To implement policy:
1. Identify the roles of users and devices in your organization that access the network.
2. Create a policy role for each identified user role (see Policy Roles on page 968 and
Table 112 on page 993).
3. Associate classification rules and administrative profiles with each policy role (see
Classification Rules on page 971 and Table 113 on page 995).
4. Optionally, configure a class of service and associate it directly with the policy role or
through a classification rule (see Assigning a Class of Service to Policy Role on page
970, Classification Rules on page 971, and Table 112 on page 993).
5. Optionally, enable hybrid authentication, which allows RADIUS filter-ID and tunnel
attributes to be used to dynamically assign policy roles and VLANs to authenticating
users (see Applying Policy Using Hybrid Authentication Mode on page 991).
6. Optionally, set device response to invalid policy (see Device Response to Invalid
Policy on page 956).
7. Optionally, set captive portal to use HTTP redirection to force a client’s web browser
to be redirected to a particular administrative web page for authentication purposes
(user login and password), payment (for example, at an airport hotspot), or use-
policy enforcement (installing necessary software, agreeing to terms of service (TOS),
etc.) (see Captive Portal Redirection on page 954 and Table 116 on page 999).
ONEPolicy Features
Convergence End Point (CEP) Detection
Convergence End Point (CEP) is a mechanism to detect remote IP telephony or video
devices on a port and dynamically apply a policy based on the type of CEP device
discovered. CEP is only active when ONEPolicy is enabled and configured on the
switch. When a CEP device is detected on a port, the configured policy for that device
is applied to the user on that port. The switch detects a CEP by inspecting devices
on CDP- and LLDP-configured ports. CEP interacts with LLDP, CDP, and ONEPolicy
through callbacks and/or inter-process messaging to initiate detection and apply
policy.
LLDP and CDP are required to call into CEP to add detected IP telephony devices with
the following data:
• MAC—MAC address of detected device
• Port—port origin of detection
• Type—the type of detected device (Cisco, LLDP)
• inetAddr—IP address of end point device
• inetType—IP address type of end point device (IPv4, IPv6)
• inetLen—length of inetAddr
ONEPolicy
• CEP initializes with, and exists in, the ONEPolicy process and calls directly to modify
policy muxRule entries.
• CEP leverages ONEPolicy port add/del/mod callback integration, satisfying CEP
platform port requirements.
For information about configuring CEP detection, see Table 115 on page 998.
Note
When both CEP and NetLogin are enabled on the same port, the policy profile
name is "active" for both CEP and NetLogin sessions with session applied as
"false" for CEP and "true" for NetLogin. If NetLogin authentication is successful,
the session applied is false for CEP and true for NetLogin. NetLogin takes
higher precedence than the CEP profile.
Learning of CEP entries depends on the LLDP/CDP update on active ports and
on disabling and enabling CEP. New entries are learned only after receiving new
LLDP/CDP information, and not from existing LLDP neighbors and CDP neighbors
table.
For example:
# show fd
Mac Vlan Age Flags Port / Virtual Port List
--------------------------------------------------------------------------------
# show fd
Mac Vlan Age Flags Port / Virtual Port List
--------------------------------------------------------------------------------
00:04:96:99:4f:eb SYS_VLAN_1000(1000) 0000 dhm 1:11
70:38:ee:d0:91:6e SYS_VLAN_2000(2000) 0000 ndhm v 3:1
bc:f1:f2:b4:e7:5e SYS_VLAN_1000(1000) 0041 nd m v 3:24
d8:67:d9:e7:07:36 SYS_VLAN_1000(1000) 0000 n
Note
After CEP devices are mapped to a profile, changing the index value to "0" or
to some other policy profile name, the existing CEP connections are still be
mapped to the old profile that was configured initially when the CEP devices
were detected. To force a refresh of existing detected devices, disable, and
then enable, CEP (see configure policy convergence-endpoint [enable
| disable] ) or disable, and then enable, the port(s) (see disable port
[port_list | all] and enable port [port_list | all]).
Captive Portal Redirection is an extension of the ONEPolicy feature. You can configure
policy roles that can force redirection of HTTP traffic by specifying a web redirection
class index that associates it with up to two redirection servers. The HTTP traffic to
potentially redirect is identified based on a destination captive portal server absolute
URL address containing an IPv4 address, TCP port, and path. For traffic that is placed
into one of these policy roles (through authentication or policy admin-profile rules)
actions are taken based upon the contents of the policy profile.
If the incoming traffic is on the configured L4 port and is not destined for the
configured captive portal server IP, the switch causes an HTTP redirect message (code
307) to be sent back to the client. If the incoming traffic is destined for the configured
captive portal server IP, or it is not on one of the configured listening L4 ports, the traffic
is handled according to the rest of the policy role configuration.
Configuring this feature occurs through the etsysPolicyProfileMIB and the ONEPolicy
command set. There are two tables in the MIB, one that allows configuration of the
listening ports and one that allows configuration of the captive portal servers. You
can configure up to three ports on which ONEPolicy listens for client traffic that is
(potentially) subject to HTTP redirection. A URL that explicitly identifies the server by
an IPv4 address, TCP port, and path is configured along with the ports on which
the Captive Portal feature listens for client traffic (for example: configure policy
captive-portal listening 80,8080).
You can configure up to ten web-redirect groups of two captive portal servers. They
can be used to redirect traffic in different roles to different servers. These web-redirect
groups are identified by associating a web redirection class index with the server
ID. The policy roles used for captive portal redirection each have a non-zero web
redirection class index configured (for example, configure policy profile 1 web-
redirect 5). The default captive portal web redirection class index for any given role
(profile) is 0, or unset. To enable captive portal, there must be a role defined that has a
valid captive portal web redirection class index with a value between 1–10.
In addition to the captive portal configuration, this policy role should also have rules to
handle the traffic that is not handled by the captive portal web redirection.
Note
When there are two servers configured in a web-redirect, the switch uses the
following algorithm to pick which server to use for redirection:
((Last byte of the client's source MAC address)%(numServers)) + 1
For example, (mac = 00:00:00:00:00:03) and where numServers is 2. (0x03%2) +
1 = 2 (This MAC uses server 2.)
Note
Captive portal does not work with tagged frames.
Note
HTTPS redirection is not supported in Captive Portal redirection.
Redirection to the portal does not happen if the user (guest-user or
unauthenticated user) tries to connect to an HTTPS website. This feature only
handles HTTP traffic. However, you can configure redirection to a captive portal
URL based on HTTPS.
For information about configuring Captive Portal Redirection, see Table 116 on page
999.
For an example Captive Portal Redirection configuration, see Captive Portal Redirection
Example on page 1016.
frames received at the distribution layer interface for a VLAN with an entry in the policy
maptable have the associated policy applied to the frame.
To create a policy maptable entry associating a policy to a VLAN, use the following
command specifying a single VLAN ID or range of IDs and the policy profile-index:
Starting with ExtremeXOS 22.5, you can map VXLAN (Virtual Extensible LAN)s by
applying the VXLAN identifier (VNI) to a profile using the command, where NSI = VNI:
You can then create the maptable entry, using the previous maptable command.
Use the configure policy invalid action command to specify a default action to
take when asked to apply an invalid or unknown policy.
Policy-Based Mirrors
You can apply mirrors to policy profile rules by using a "control group" mirror
referenced by a unique control index number. These control group mirrors are
etsysMirrorDestinationControlEntry entries in the ENTERASYS-MIRROR-CONFIG-MIB
(Mirror MIB) (see ENTERASYS-MIRROR-CONFIG-MIB on page 2047). A Mirror MIB
instance (designated by a control index) can be associated with up to four "physical"
mirrors, each being one destination port (or tunnel).
For information about configuring policy-based mirrors, see Table 117 on page 1000.
Limitations
By default, the Syslog and trap actions only occur when the rule is first used. However,
for the Syslog action, you can configure the system to send messages every time the
rule is used at a maximum rate of once every five seconds.
Additionally, a rule counter tracks the number of times a packet triggers a rule. By
default, the counter is enabled for all rules.You can set an interval for how often this
counter is cleared, or manually clear it at any time.
For information about configuring rule trap/Syslog, and the rule counter, see Table 118
on page 1001.
Limitations
VCAP Partitioning
ExtremeXOS allows multiple applications (Layer 7 policy, user-based dynamic ACLs)
to share a pool of VCAP slices. This area is called the “shared pool.” The TCI overwrite-
enabled case is configurable to use its own pool of VCAP slices and the “shared pool”
is allocated for the other applications. VCAP slices not allocated for policy usage are
available for general system use.
TCI overwrite-enabled profiles use their own resource pool of slices (0–4) for VLAN
assignment (translation). Allocating less TCI overwrite-enabled VCAP space means
fewer rules available for users to have their VLAN tags overwritten.
Supported Platforms
Supported Platforms
Limitations
• V6 is not supported.
• Rule creation and deletion are controlled by a time-to-live (TTL) 5 second timer.
• TTL value is configurable in terms of 1 min., 5 mins., and 10 mins.
• When VCAP space runs out, any IP rule not already installed in hardware is not
created. New attempts to install previously uninstalled rules occur after the 5 second
TTL timer interval and are dependent upon the space made available by other rules
that have timed out.
Signatures
Starting with ExtremeXOS 30.4, policy rules have an additional traffic classification
of application signature group and name. There is a fixed, defined set of signature
groups available. Each group has a subset of pre-defined/built-in signature names;
these can be enhanced with additional ones that can be created by commands or
MIB. Additionally, each application signature name is defined by one or more signature
patterns.
The signatures are arranged into two hierarchical levels, group and name.
Built-in signatures:
• Social Networking
◦ Facebook
▪ facebook.com
▪ facebook.net
• Search Engines
◦ Google
▪ google.co
▪ google.ca
▪ google.it
▪ google.fr
User-defined signatures:
• News and Information
◦ Flipboard
▪ flipboard.com
• E-commerce
◦ Warehouse
▪ bjs.com
▪ costco.com
Pattern examples:
• wireshark.org
• mysql.com
With ACL Style Policy, a mode of operation with a single ordered list per role is
maintained. Rule look-ups occur in the provided ACL order per role. A match applies
all actions specified, and the search stops. This approach can potentially double the
advertised scale of classification rules as compared to the traditional model. It also
provides a more standard approach to policy classification rules.
Default policy rule-model is hierarchical, unless you are upgrading from ExtremeXOS
30.5 with a saved configuration that is set to access list.
For information about configuring ACL Style Policy, see Table 120 on page 1004.
Limitations
SNMP for configuration of ACL Style Policy classification rules is not supported.
The following table compares the overall classification rule scale between "traditional"
and ACL Style policy:
Table 101: Traditional Versus ACL Style Policy Classification Rule Scaling
Switch Model(s) Traditional ACL Style**
4120 Default: 184 Default: 440
Less System ACL: 184 Less System ACL: N/A
4220 Default: 440 Default: 952
Less System ACL: 440 Less System ACL: N/A
5320-48T Default: 1,976 Default: 4,024
Less System ACL: 1,976 Less System ACL: N/A
5320-24T-4X-XT Default: 440 Default: 952
Less System ACL: 440 Less System ACL: N/A
5320-24T-24S-4XE-XT Default: 1,976 Default: 4,024
Less System ACL: 1,976 Less System ACL: N/A
5320-16P* Default: 1,976 Default: 4,024
Less System ACL: 1,976 Less System ACL: N/A
Default: 4,024 Default: 8,120
Less System ACL: 4.024 Less System ACL: N/A
Default: 1,976 Default: 4,024
Less System ACL: 1,976 Less System ACL: N/A
Default: 4,024 Default: 8,120
Less System ACL: 4.024 Less System ACL: N/A
5720-MW Default: 6,072 Default: 12,216
Less System ACL: 6,072 Less System ACL: N/A
5720-MXW Default: 8,120 Default: 16,312
Less System ACL: 8,120 Less System ACL: N/A
7520-48Y-8C Default: 1,976 Default: 3,512
Less System ACL: 1,976 Less System ACL: N/A
7520-48XT-6C Default: 1,976 Default: 3,512
Less System ACL: 1,976 Less System ACL: N/A
7720-32C Default: 1,976 Default: 3,512
Less System ACL: 1,976 Less System ACL: N/A
** - Applies to role-based DACLs as well as static ACLs created via the Policy CLI, which
are also associated with a profile. User-based DACLs may achieve lower ACL Style
numbers.
ACL Style Policy implements a new RESTful API for configuration of classification rules.
Note
RESTful API is not supported for Dynamically-created ACLs via RADIUS and
COA.
Note
You must configure VCAP partitioning to use dynamic ACL (see VCAP
Partitioning on page 957).
If ACL style policy is not selected, or if the specified action-set does not exist, or
if insufficient resources are available, the dynamic ACL rules are not applied and a
NAK response to the RADIUS CoA request are returned. The maximum number of
Dynamic ACL rules per user is 64. Access-Accept can include multiple adds using
the += operation (this operation is not supported as part of RADIUS CoA request).
Access-Accept usage does not support delete operation is ignored. Dynamic ACL rules
can be deleted using an explicit CoA delete or are deleted when the dynamic session
associated with the user is deleted.
Note
The maximum length of a RADIUS packet size is 4096 (both UDP and TLS),
which can prevent the Dynamic ACLs from being sent to get trimmed via VSA
232 due to the lengthier ACL lists.
Dynamic ACLs and Layer 7 policy share the slices not used by TCI overwrite-enabled as
one shared resource pool (see VCAP Partitioning on page 957). Dynamic ACLs have a
higher priority to override Layer 7 policy (DNS) entry matches.
Beginning with Release 32.1, masking IPv4 addresses, L4 ports, and IP protocol
numbers are supported. The mask is a required value and must be greater than zero
and less than or equal to the maximum number of bits in the field being masked. For
example, an IPv4 address mask value must be between 1 and 32.
To see an example of dynamic ACL VSA string, see Example Dynamic ACL VSA String
on page 1017.
Supported Platforms
Limitations
Role-based ACLs
Beginning with Release 32.1, the dynamic ACL rule(s) can be user-based or role-
based. User-based rules are treated as higher priority than any other statically
provisioned rules. Policy roles and the DACLs associated with them are dynamically
created as needed based on the incoming RADIUS Filter-Id attribute. This attribute
is automatically deleted when the last authenticated user associated with the role is
removed.
When a set of role-based rules is installed for a given role or profile, they cannot be
changed until that role is no longer in use. Role-based rules are shared by any other
user who authenticates to the same role or profile. While both user based and role-
based DACLs can be used on the device at the same time, a mix of user based and
role-based DACLs are not permitted for a given user.
A role-based operation has a type 'r' and requires a preceding add operation (a,r). Each
role requires a profile pre-configured with a unique name and access-list configuration.
A role-based with create operation has a type 'c' and also requires a preceding add
operation (a,rc). The role or profile is dynamically created if it does not already exist. If
created dynamically, the role or profile will be deleted when no longer in use.
A delete-all operation has a type of 'da' and no match, action, or index fields
are permitted. When used, the delete-all must be the first entry in the list. When
present, this operation removes all existing rules associated with the user or role.
Neither the action field nor the index field is permitted and will be ignored if present.
Supported Platforms
All ExtremeSwitching X435, X450-G2, X460-G2, X440-G2, X620, X690, X695 series
switches.
Limitations
Note
In some cases policy capacities of a device have been determined to be so low
that they are deigned non-useful for any practical policy deployment. In these
cases the ports on the device are never allowed to become policy enabled.
The following algorithm is used to determine the lowest common denominator when
stacking:
Not all stackable fixed switch platforms support policy. On some stackable and
standalone fixed switch platforms policy support requires a purchased license. See the
software release notes that come with your device for policy support.
Table 103 provides a cross-reference of standard ( ) and enhanced (X) policy capability to
traffic classification rule.
Policy Roles
The following sections provide information about policy roles.
When modifying an existing policy role the default behavior is to replace the existing
role with the new policy role configuration. Use the append option to limit the change
to the existing policy role to the options specified in the entered command.
A policy role can also be identified by a text name of between 1 and 64 characters. This
name value is used by the RADIUS filter-ID attribute to identify the policy role to be
applied by the switch with a successful authentication.
Because users, devices, and applications are all identifiable within a flow, a network
administrator has the capacity to define and control network access and usage by the
actual role the user or device plays in the network. The nature of the security challenge,
application access, or amount of network resource required by a given attached user
or device, is very much dependent upon the “role” that user or device plays in the
enterprise. Defining and applying each role assures that network access and resource
usage align with the security requirements, network capabilities, and legitimate user
needs as defined by the network administrator.
Note
ExtremeXOS supports the assignment of port VLAN IDs 1–4,094. Use of VLAN
ID 4094 is supported by stackable and standalone devices. VLAN IDs 0 and
4095 cannot be assigned as port VLAN IDs, but 0 has a special meaning within
a policy context and can be assigned to the PVID parameter. Within a policy
context 0 specifies an explicit deny of all VLANs.
If policy profiles with PVID 0 and PVID 4095 are configured and for MAC
authentication profile with PVID 0 is sent using Filter ID attribute and for
Dot1x profile with PVID 4095 is sent from RADIUS with VLAN tunnel ID as 11.
Then if both MAC and Dot1x are enabled on the same port, on successful MAC
authentication when profile with PVID 0 is applied based on the configurations
"Explicit Deny all rule" is installed and Dot1x authentication is succeeded with
PVID 4095 (no action) applied, but then traffic does not egress using Tunnel
VLAN tag 11 or any default VLAN or admin profile VLAN where the port is
bounded since the deny all rule is installed.
CoS configurations are identified by a numeric value between 0 - 255. 0 - 7 are fixed
802.1p CoS configurations. CoS configurations 8 - 255 are user configurable. Policy uses
the cos option followed by the CoS configuration ID value to associate a CoS with a
policy role.
Adding Tagged, Untagged, and Forbidden Ports to the VLAN Egress Lists
The VLAN egress list contains a list of ports that a frame for this VLAN can exit.
Specified ports are automatically assigned to the VLAN egress list for this policy role
as tagged, untagged, or forbidden. Ports are added to the VLAN egress list using the
Note
Egress policy is not supported.
Supported Platforms
All ExtremeSwitching Universal platforms.
Classification Rules
Classification rules associate specific traffic classifications or policy behaviors with the
policy role. There are two aspects of classification rule configuration:
• The association of a traffic classification with a policy role by assigning the traffic
classification to an administrative profile.
• The assignment of policy rules that define desired policy behaviors for the specified
traffic classification type.
Both the administrative profile and policy rules are associated with the policy role by
specifying the admin-pid option, in the case of an administrative profile, or a profile-
index value, in the case of the policy rule. Administrative profiles and policy rules are
configured using the configure policy rule command.
The administrative profile assigns a traffic classification to a policy role by using the
admin-profile option of the configure policy rule command.
Note
Standard policy supports the VLAN tag traffic classification for administrative
profiles. All other traffic classifications are enhanced policy in an administrative
profile context.
Note
When both admin-profile port and macsource rule are configured on the same
port, macsource rule takes precedence and the VLAN classification and rules
applicable to macsource are applied to the port.
Note
When specifying an action without an explicit "forward" or "deny" option,
this is interpreted as an implicit permit, since the rule conditions are met.
This type of action configuration does not appear in the output of the show
policy access-list { [list_dot_ruleprofile-index profile_index ]
| [ {matches [app-signature | ether | icmp6type | icmptype
| ipdestsocket | ipfrag | ipproto | ipsourcesocket | iptos
| ipttl | tcpdestportIP | tcpsourceportIP | udpdestportIP |
udpsourceportIP ] {mask mask} {data data} } {actions [ {drop
| forward } {cos cos} {-1} {mirror-destination control_index}
{syslog ] } ] } {detail} command.
When admin-profile macsource rule is configured and the port is not added to a VLAN,
then the traffic arriving on this port is mapped to the admin-pid configured profile
based on the port string. To map it to macsource, add the port to a VLAN.
Policy rules are based on traffic classifications. Table 105 provides the supported
policy rule traffic classification command options and definitions. All other traffic
classifications are supported by standard policy.
Table 105: Administrative Policy and Policy Rule Traffic Classifications (continued)
Traffic Classification Description Attribute ID Enhanced
Rule
iptos Classifies based on Type of Service 21
field in IP packet.
ipproto Classifies based on protocol field in IP 22
packet.
icmp6 Classifies based on ICMPv6 type code. 23
ether Classifies based on type field in 25
Ethernet II packet.
application Classifies based on Layer 7 DNS 29
snooping.
port Classifies based on port-string. 31
IPSourceL4Range Classifies based on source IP address 32
with post-fixed port-range.
IPDestL4Range Classifies based on destination IP 33
address with post-fixed port-range.
UDPSrcPortRange Classifies based on UDP source port- 34
range with optional post-fix IPv4
address.
UDPDestPortRange Classifies based on UDP destination 35
port-range with optional post-fix IPv4
address.
TCPSrcPortRange Classifies based on TCP source port- 36
range with optional post-fix IPv4
address.
TCPDestPortRange Classifies based on TCP destination 37
port-range with optional post-fix IPv4
address.
A data value is associated with most traffic classifications to identify the specific
network element for that classification. For data value and associated mask details, see
the “Syntax Description” table in the configure policy rule profile_index [{app-
signature group group name name} | ether ether | icmp6type icmp6type
| icmptype icmptype | ip6dest ip6dest |ipdestsocket ipdestsocket |
ipfrag | ipproto ipproto | ipsourcesocket ipsourcesocket | iptos
iptos | ipttl ipttl | macdest macdest | macsource macsource | port
port | tcpdestportIP tcpdestportIP | tcpsourceportIP tcpsourceportIP |
udpdestportIP udpdestportIP | udpsourceportIP udpsourceportIP ] {mask
mask } {port-string [ port_string | all]} {storage-type [non-volatile
| volatile]} {drop | forward} {syslog syslog} {trap trap} {cos
cos } {mirror-destination control_index} {clear-mirror} command in the
Switch Engine Command References.
See Table 105 on page 972 for a listing of supported allowed traffic classification rule-
types.
Rule Precedence
Note
When upgrading to ExtremeXOS 30.5 or later, any previously configured
(before 30.5) policy profile precedence will be reset to the default rule
precedence.
Static rules (MAC + port) have higher precedence than dynamic rules (Dot1x/Mac/Web
VLAN authorization rules).
Example
# configure policy rule admin-profile macsource 00-00-00-00-00-01 mask 48 port-string 27
admin-pid 2
configure policy profile 2 name "filter" pvid-status "enable" pvid 400 egress-vlans 200
untagged-vlans 400 tci-overwrite "enable"
In the above configuration, if a dot1x user is authenticated with Tunnel Private Group
Id as "3000" and filter id as "filter" via Radius, the static macsource rule takes higher
precedence and the client FDB learned on VLAN SYS_VLAN_0400 mentioned in the
static rule rather than the tunnel ID sent by Radius.
# show fdb
Mac Vlan Age Flags Port / Virtual Port List
--------------------------------------------------------------------------------
00:00:00:00:00:01 SYS_VLAN_0400(0400) 0010 nd m v 27
The default precedence order is 1–2, 10, 29, 12, 32, 13, 33, 14–15, 34, 16, 35, 17, 36, 18, 37, 19, 23,
20–22, 25, 31.
MACSource (1), MACDest (2), IPv6Dest (10), Application (29), IPSource (12),
IPSourceL4Range (32), IPDest (13), IPDestL4Range (33), IPFrag (14), UDPSrcPort (15),
UDPSrcPortRange (34), UDPDestPort (16), UDPDestPortRange (35), TCPSrcPort (17),
TCPSrcPortRange (36), TCPDestPort (18), TCPDestPortRange (37), ICMPType (19),
ICMP6Type (23), TTL (20), IPTOS (21), IPProto (22), Ether (25), Port (31).
Rule types 29, 12, 32, 13, 33, 14–15, 34, 16, 35, 17, 36, 18, 37, 19, 23, 20–22 come under IPv4
group.
To modify the rule precedence order, use the following command with the precedence
option:
you should consider blocking at the edge unless allowing them is part of your network
architecture.
Note: The best possible ExtremeXOS system application/system rules are driven by
removing the default system ACL rules (disable dot1p replacement ports all),
while keeping these system default ACL rules.
Note: Free ACL-slices are required (excluding the policy utilized slices) for MLAG to
function properly. configure policy resource-profile is required.
Note: The best possible ExtremeXOS system application/system rules are driven by
removing the default system ACL rules (disable dot1p replacement ports all),
while keeping these system default ACL rules.
Note: Free ACL-slices are required (excluding the policy utilized slices) for MLAG to
function properly. configure policy resource-profile is required.
For information about the maximum authenticated users per switch, see the Limits
table of the ExtremeXOS Release Notes.
In ExtremeXOS 22.4, you can use the profile modifier feature to return resources back
to ACL from the specified profile. Use the profile-modifier option in the following
command:
To see what profile modifier settings you have configured, use the following command:
The following tables show the maximum number of slices available with the resource
profile modifier enabled.
986
Profil Max No No- No- No- No-l2 No- No- no- No- no- no- no- no- no- no-
e Slices Profil mac ipv4 ipv6 mac, mac, mac- ipv4, ipv4- ipv6- mac- mac- mac- ipv4-
Nam Avail e no- no- - no- no- no-l2 no-l2 no- no- no- no-
e able Modif ipv4 ipv6 l2 ipv6 ipv4- ipv4- ipv6- ipv6-
ier no- no-l2 no-l2 no-l2
ipv6
Switch Engine™
Defa 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1
Platform Rule Allocation
ult
less- 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1
acl
more
-ipv4
User Guide
less- 4 4 3 2 4 3 1 3 2 2 1 3 1 N/A 2 1
acl-
more
-ipv4
-no-
ipv6
less- 4 4 3 2 3 4 1 2 3 1 2 3 N/A 1 2 1
acl-
more
-ipv4
- no-
l2
less- 4 4 4 1 4 3 1 4 3 1 N/A 3 1 N/A 3 N/A
acl-
more
-ipv4
-no-
mac-
no-
ipv6
ONEPolicy
Table 110: Slices Available with Resource Profile Modifier for ExtremeSwitching Universal Switches (continued)
Profil Max No No- No- No- No-l2 No- No- no- No- no- no- no- no- no- no-
e Slices Profil mac ipv4 ipv6 mac, mac, mac- ipv4, ipv4- ipv6- mac- mac- mac- ipv4-
ONEPolicy
Nam Avail e no- no- - no- no- no-l2 no-l2 no- no- no- no-
e able Modif ipv4 ipv6 l2 ipv6 ipv4- ipv4- ipv6- ipv6-
ier no- no-l2 no-l2 no-l2
ipv6
less- 4 4 4 N/A 4 4 N/A 4 4 N/A N/A 4 N/A N/A 4 N/A
acl-
more
-ipv4
- no-
mac-
no-
ipv6-
no-l2
more 4 4 3 2 4 3 1 3 2 2 1 3 1 N/A 2 1
-ipv4
-no-
ipv6
more 4 4 3 2 3 4 1 2 3 1 2 3 N/A 1 2 1
-ipv4
- no-
l2
more 4 4 4 1 4 3 1 4 3 1 N/A 3 1 N/A 3 N/A
-ipv4
Switch Engine™
-no-
mac-
no-
ipv6
more 4 4 4 N/A 4 4 N/A 4 4 N/A N/A 4 N/A N/A 4 N/A
-ipv4
- no-
User Guide
mac-
no-
ipv6-
no-l2
more 4 4 2 3 4 3 1 2 1 3 2 3 1 N/A 1 2
-mac
-no-
ipv6
987
Platform Rule Allocation
Authentication and ONEPolicy ONEPolicy
Note
The maptable response feature is only applicable if VLAN Authorization is
enabled (configure policy vlanauthorization enable).
Note
VLAN-to-policy mapping to maptable response configuration behavior is as
follows:
• If the RADIUS response is set to policy, any VLAN-to-policy maptable
configuration is ignored for all platforms.
• If the RADIUS response is set to both and both the filter-ID and
tunnel attributes are present, VLAN-to-policy mapping configuration is
ignored. See the “When Policy Maptable Response is Both” section of
the Configuring User Authentication feature guide for exceptions to this
behavior.
Use the policy option of the configure policy maptable response command to
configure the switch to dynamically assign a policy using the RADIUS filter-ID in the
RADIUS response message.
Table 111 shows the RADIUS access-accept attributes for ONEPolicy that ExtremeXOS
supports.
NetLogin Authentication
NetLogin provides the dynamic authentication of users as a frontend to policy.
Supported authentication type for ExtremeXOS includes 8021.1X, MAC Authentication,
and Web Authentication.
Note
When enabling policy, all VLAN-level commands supported in non-policy
mode are lost, including:
• configure netlogin vlan
• configure netlogin authentication failure vlan
• configure netlogin authentication service-unavailable vlan
• configure netlogin dot1x guest-vlan
• configure netlogin dynamic-vlan
• configure netlogin ports [all | port_list] mode [mac-based-
vlans | port-based-vlans]
• configure netlogin ports [all | port_list] no-restart
• configure netlogin ports [all | port_list] restart
• configure netlogin ports [port_list | all] allow egress-traffic
[none | unicast | broadcast | all_cast]
Note
If you want to scale to 65,000 authenticated users, use a session timeout value
of at least 300 minutes.
When idle timeout is configured and if the FDB is removed, the show netlogin session
and show netlogin port / mac/dot1x/web-based commands show the NetLogin
authenticated entries untill the idle timer expires. NetLogin session and NetLogin MAC/
dot1x/web table is cleared only after the idle timer expires.
vlanauthorization must be enabled or the VLAN tunnel attributes are ignored and the
default VLAN is used.
When policy maptable response is set to both and only Tunnel ID is returned from
RADIUS server, tunnel ID takes precedence and FDB is learned on Tunnel ID if policy
maptable is not configured on the switch. If policy maptable is configured, then the
policy profile assigned to that VLAN ID takes precedence and FDB is learned on policy
profile PVID and not VLAN tunnel ID if invalid action is set to default-policy/drop.
For example:
From RADIUS VLAN tunnel ID 1234 exclusively is sent. Now FDB after successful
authentication is learned on PVID 2 and not on 1234.
Hybrid Mode support eliminates the dependency of VLAN assignment based on roles.
As a result, VLANs can be assigned via the tunnel-private-group-ID, as defined per
RFC3580, while assigning roles via the filter-ID. This separation gives administrators
more flexibility to segment their networks for efficiency beyond the role limits.
Authentication Override
Authentication override allows you to override port authentication using a profile-
based attribute. If a port has an active policy and the authentication override is
enabled, all frames arriving on that port have that policy applied, and no further
authentication occurs. In addition, any pre-existing authenticated sessions on that
port are removed. However, the action is reverted once the authentication override is
disabled. Authentication override is disabled by default.
etsysPolicyClassification group
supportsProfilePortAuthOverride(24)
-- supports per profile port authentication
-- override via etsysPolicyProfilePortAuthOverride
Note
If authentication override is enabled, then static VLAN has to be configured
rather than using the dynamic VLAN for the PVID.
Configuring Policy
This section presents configuration procedures and tables including command
description and syntax in the following policy areas: profile, classification, and display.
Roles
The example defines the following roles:
• guest – Used as the default policy for all unauthenticated ports. Connects a PC to
the network providing internet only access to the network. Provides guest access
to a limited number of the edge switch ports to be used specifically for internet
only access. Policy is applied using the port level default configuration, or by
authentication, in the case of the Services Edge Switch port internet only access
PCs.
• student – Connects a dorm room PC to the network through a “Student” Fixed
Switch port. A configured CoS rate limits the PC. Configured rules deny access
to administrative and faculty servers. The PC authenticates using RADIUS. Hybrid
authentication is enabled. The student policy role is applied using the filter-ID
attribute. The base VLAN is applied using the tunnel attributes returned in the
RADIUS response message. If all rules are missed, the settings configured in the
student policy profile are applied.
• phoneFS – Connects a dorm room or faculty office VoIP phone to the network using
a stackable fixed switch port. A configured CoS rate limits the phone and applies
a high priority. The phone authenticates using RADIUS. Hybrid authentication is
enabled. Policy is applied using the filter-ID returned in the RADIUS response
message. The base VLAN is applied using the tunnel attributes returned in the
RADIUS response message. If all rules are missed, the settings configured in the
phoneFS policy profile are applied.
• faculty – Connects a faculty office PC to the network through a “Faculty” Fixed
Switch port. A configured CoS rate limits the PC. A configured rule denies
access to the administrative servers. The PC authenticates using RADIUS. Hybrid
authentication is enabled. The faculty policy role is applied using the filter-ID
attribute. The base VLAN is applied using the tunnel attributes returned in the
RADIUS response message for the authenticating user. If all rules are missed, the
settings configured in the faculty policy profile are applied.
• phoneES – Connects a services VoIP phone to the network using a Services
Edge Switch port. A configured CoS rate limits the phone for both setup and
payload, and applies a high priority. The phone authenticates using RADIUS. Tunnel
authentication is enabled. The base VLAN is applied using the tunnel attributes
returned in the RADIUS response message. Policy is applied using a maptable
configuration. If all rules are missed, the settings configured in the phoneES policy
profile are applied.
• services – Connects a services PC to the network through the Services Edge Switch
port. A configured CoS rate limits the PC. Services are denied access to both the
student and faculty servers. The PC authenticates using RADIUS. The base VLAN is
applied using the tunnel attributes returned in the RADIUS response message for
the authenticating user. The services policy role is applied using a policy maptable
setting. The policy invalid action and TCI overwrite are enabled for this role. If all rules
are missed, the settings configured in the services policy profile are applied.
• distribution – The Distribution policy role is applied at the Distribution Switch
providing rate limiting.
Policy Domains
It is useful to break up policy implementation into logical domains for ease of
understanding and configuration. For this example, it is useful to consider four
domains: basic edge, standard edge on the Fixed Switch, premium edge on the
Services Edge Switch, and premium distribution on the Distribution Switch.
Basic Edge
Protocols not appropriate to the edge should be blocked. For this example we will block
DHCP, DNS, SNMP, SSH, Telnet and FTP at the edge on the data VLAN. We will forward
destination port DHCP and DNS and source port for IP address request to facilitate
auto configuration and IP address assignment. See Blocking Non-Edge Protocols at the
Edge Network Layer on page 975 for a listing of protocols you should consider blocking
at the edge.
Standard Edge
Edge Switch platforms will be rate-limited using a configured CoS that will be applied
to the student and faculty, and phoneFS policy roles. Fixed Switch support for hybrid
authentication depends upon the platform and firmware release. The Fixed Switch in
this example supports the hybrid authentication capability. Hybrid authentication will
be enabled.
Premium Edge
The Edge Switch will be rate-limited using a configured CoS that is applied to the
services and phoneES policy role. This premium edge platform will be enabled for the
following capabilities:
• Invalid policy action set to drop
• TCI overwrite enabled
Premium Distribution
The Distribution Switch Router will be rate-limited using a configured CoS. Premium
distribution will be enabled for the following policy capabilities:
• Invalid policy action set to drop
• TCI overwrite enabled
Platform Configuration
This section provides the CLI based policy configuration on the following platforms:
• Student Fixed Switch
• Faculty Fixed Switch
• Services Edge Switch
• Distribution Switch
In CLI mode, configuration takes place on each platform. For this configuration
example, CoS related configuration will be specified as a final CoS. See the QoS
Configuration feature guide located at http://documentation.extremenetworks.com for
a complete discussion of QoS configuration.
Note
CLI command prompts used in this configuration example have the following
meaning:
• System->—Input on all platforms used in this example.
• Fixed Switch->—Input on all Fixed Switches.
• StudentFS->—Input on the student Fixed Switch.
• FacultyFS->—Input on the faculty Fixed Switch.
• Services->—Input on the services S-Series device.
• Distribution->—Input on the distribution S-Series device.
For cases where discovery must take place to assign an IP address, DNS and DHCP
traffic must be allowed. Forwarding of traffic is allowed on UDP source port 68 (IP
address request) and UDP destination ports 53 (DNS) and 67 (DHCP).
System ->configure policy rule 1 udpsourceport 68 mask 16 forward
System->configure policy rule 1 udpdestportIP 53 mask 16 forward
System ->configure policy rule 1 udpdestportIP 67 mask 16 forward
Guest policy allows internet traffic. TCP destination Ports 80, 8080, and 443 will be
allowed traffic forwarding.
System->configure policy rule 1 tcpdestportIP 80 mask 16 forward
System->configure policy rule 1 tcpdestportIP 443 mask 16 forward
System->configure policy rule 1 tcpdestport 8080 mask 16 forward
Assign the guest policy profile to all Fixed Switch and Services Edge Switch ports.
System->configure policy port 1-47 1
Create a policy role that applies a CoS 8 to data VLAN 10 and configures it to rate-limit
traffic to 1M with a moderate priority of 5.
StudentFS->configure policy profile 2 name student pvid-status
enable pvid 10 cos-status enable cos 8
Configure the RADIUS server user accounts with the appropriate tunnel information
using VLAN authorization and policy filter-ID for student role members and devices.
Enable hybrid authentication, allowing the switch to use both the filter-ID and tunnel
attributes in the RADIUS response message. Set a VLAN-to-policy mapping as backup
incase the response does not include the RADIUS filter-ID attribute. This mapping is
ignored in case RADIUS filter-ID attribute is present in the RADIUS response message.
StudentFS->configure policy maptable response both
StudentFS->configure policy maptable 10 2
Forward traffic on UDP source port for IP address request (68), and UDP destination
ports for protocols DHCP (67) and DNS (53). Drop traffic on UDP source ports for
protocols DHCP (67) and DNS (53). Drop traffic for protocols SNMP (161), SSH (22), Telnet
(23) and FTP (20 and 21) on both the data and phone VLANs.
StudentFS->configure policy rule 2 udpsourceport 68 mask 16 forward
StudentFS->configure policy rule 2 udpdestport 67 mask 16 forward
StudentFS->configure policy rule 2 udpdestport 53 mask 16 forward
StudentFS->configure policy rule 2 udpsourceportIP 67 mask 16 drop
StudentFS->configure policy rule 2 udpsourceportIP 53 mask 16 drop
StudentFS->configure policy rule 2 udpdestportIP 16 mask 16 drop
StudentFS->configure policy rule 2 tcpdestportIP 22 mask 16 drop
StudentFS->configure policy rule 2 tcpdestportIP 23 mask 16 drop
StudentFS->configure policy rule 2 tcpdestportIP 20 mask 16 drop
StudentFS->configure policy rule 2 tcpdestportIP 21 mask 16 drop
Students should only be allowed access to the services server (subnet 10.10.50.0/24) and
should be denied access to both the administrative (subnet 10.10.60.0/24) and faculty
servers (subnet 10.10.70.0/24).
StudentFS->configure policy rule 2 ipdestsocket 10.10.60.0 mask 24 drop
StudentFS->configure policy rule 2 ipdestsocket 10.10.70.0 mask 24 drop
The phoneFS role is configured on both the dorm room and faculty office Fixed
Switches with:
• A profile-index of 3
• A name of phoneFS
• A port VLAN of 11
• A CoS of 10
Because we can not apply separate rate limits to the phone setup and payload ports on
the Fixed Switch using policy rules, apply CoS 10 with the higher payload appropriate
rate limit of 100k bps and a high priority of 6 to the phoneFS role.
Fixed Switch->configure policy profile 3 name phoneFS pvid-status enable pvid 11
cos-status enable cos 10
Drop traffic for protocols SNMP (161), SSH (22), Telnet (23) and FTP (20 and 21) on
the phone VLAN. Forward traffic on UDP source port for IP address request (68) and
forward traffic on UDP destination ports for protocols DHCP (67) and DNS (53) on the
phone VLAN, to facilitate phone auto configuration and IP address assignment.
Fixed Switch->configure policy rule 3 udpdestportIP 161 mask 16 drop
Fixed Switch->configure policy rule 3 tcpdestportIP 22 mask 16 drop
Fixed Switch->configure policy rule 3 tcpdestportIP 23 mask 16 drop
Fixed Switch->configure policy rule 3 tcpdestportIP 20 mask 16 drop
Fixed Switch->configure policy rule 3 tcpdestportIP 21 mask 16 drop
Fixed Switch->configure policy rule 3 udpsourceport 68 mask 16 forward
Fixed Switch->configure policy rule 3 udpdestportIP 67 mask 16 forward
Fixed Switch->configure policy rule 3 udpdestportIP 53 mask 16 forward
Configure the RADIUS server user accounts with the appropriate tunnel information
using VLAN authorization and policy filter-ID for phoneFS role members and devices.
Enable hybrid authentication, allowing the switch to use both the filter-ID and tunnel
attributes in the RADIUS response message. Set a VLAN-to-policy mapping as backup
incase the response does not include the RADIUS filter-ID attribute. This mapping is
ignored if RADIUS filter-ID attribute is present in the RADIUS response message.
Fixed Switch->configure policy maptable response both
Fixed Switch->configure policy maptable 11 3
Create a policy role that applies a CoS 8 to data VLAN 10 and configures it to rate-limit
traffic to 1M with a moderate priority of 5.
FacultyFS->configure policy profile 4 name faculty pvid-status enable pvid 10
cos-status enable cos 8
Configure the RADIUS server user accounts with the appropriate tunnel information
using VLAN authorization and policy filter-ID for faculty role members and devices.
Enable hybrid authentication. Set a VLAN-to-policy mapping. This mapping is ignored if
the RADIUS filter-ID attribute is present in the RADIUS response message.
FacultyFS->configure policy maptable response both
FacultyFS->configure policy maptable 10 4
Forward traffic on UDP source port for IP address request (68), and UDP destination
ports for protocols DHCP (67) and DNS (53). Drop traffic on UDP source ports for
protocols DHCP (67) and DNS (53). Drop traffic for protocols SNMP (161), SSH (22), Telnet
(23) and FTP (20 and 21) on both the data and phone VLANs
FacultyFS->configure policy rule 4 udpsourceport 68 mask 16 forward
FacultyFS->configure policy rule 4 udpdestport 67 mask 16 forward
FacultyFS->configure policy rule 4 udpdestport 53 mask 16 forward
FacultyFS->configure policy rule 4 udpsourceportIP 67 mask 16 drop
FacultyFS->configure policy rule 4 udpsourceportIP 53 mask 16 drop
FacultyFS->configure policy rule 4 udpdestportIP 16 mask 16 drop
FacultyFS->configure policy rule 4 tcpdestportIP 22 mask 16 drop
FacultyFS->configure policy rule 4 tcpdestportIP 23 mask 16 drop
FacultyFS->configure policy rule 4 tcpdestportIP 20 mask 16 drop
FacultyFS->configure policy rule 4 tcpdestportIP 21 mask 16 drop
Faculty should only be allowed access to the services (subnet 10.10.50.0/24) and the
faculty servers (subnet 10.10.70.0/24) and should be denied access to the administrative
server (subnet 10.10.60.0/24).
FacultyFS->configure policy rule 4 ipdestsocket 10.10.60.0 mask 24 drop
Because VLANs can be applied to Services Edge Switch ports using the appropriate
traffic classification, the explicit deny all PVID 0 will be applied at policy creation.
Separate rate limits can be applied to the phone setup and payload ports on the
Services Edge Switch using policy rules. A default CoS of 4 will be applied at policy
role creation.
ServicesES->configure policy profile 5 name phoneES pvid-status enable pvid 0
cos-status enable cos 4
Forward traffic on UDP source port for IP address request (68) and and forward traffic
on UDP destination ports for protocols DHCP (67) and DNS (53) on the phone VLAN,
to facilitate phone auto configuration and IP address assignment. Drop traffic for
protocols SNMP (161), SSH (22), Telnet (23) and FTP (20 and 21) on the phone VLAN.
ServicesES->configure policy rule 5 udpsourceport 68 mask 16 forward
ServicesES->configure policy rule 5 udpdestportIP 67 mask 16 forward
ServicesES->configure policy rule 5 udpdestportIP 53 mask 16 forward
ServicesES->configure policy rule 5 udpdestportIP 161 mask 16 drop
ServicesES->configure policy rule 5 tcpdestportIP 22 mask 16 drop
ServicesES->configure policy rule 5 tcpdestportIP 23 mask 16 drop
ServicesES->configure policy rule 5 tcpdestportIP 20 mask 16 drop
ServicesES->configure policy rule 5 tcpdestportIP 21 mask 16 drop
Apply a CoS 9 to phone setup data on VLAN 11, rate limiting the data to 5 pps with a
high priority of 7 on port 2427.
Apply a CoS 10 to phone payload data on VLAN 11, rate limiting the data to 100k bps
with a high priority of 7 for both source and destination on port 5004.
ServicesES->configure policy rule 5 udpdestIP 2427 mask 16 vlan 11 cos 9
ServicesES->configure policy rule 5 udpsourceIP 5004 mask 16 vlan 11 cos 10
ServicesES->configure policy rule 5 udpdestIP 5004 mask 16 vlan 11 cos 10
The nature of services related devices that might connect to a switch port is not as
static as with the student or faculty roles. Services related network needs can run
the gamut from temporary multimedia events to standard office users. There may be
multiple VLAN and policy role associations that take care of services related needs,
depending upon the connected user. This may include the requirement for multiple
services related roles.
For services, the network administrator desires greater resource usage flexibility in
assigning the policy to VLAN association. Authentication in this case will return only
the tunnel attributes in the response message based upon the requirements of the
authenticating user. Setting the VLAN-to-policy association will be handled by the
maptable configuration, allowing for ease in changing the policy associated with a
VLAN on the fly using Policy Manager. Specify that the tunnel attributes returned in the
RADIUS response message will be used by the authenticating user. Associate VLAN 11
with policy role 5 using the configure policy maptable command.
ServicesES->configure policy maptable response tunnel
ServicesES->configure policy maptable 11 5
Setting the VLAN-to-policy association will be handled by the policy maptable setting,
allowing for ease in changing the policy associated with a VLAN on the fly using Policy
Manager. Specify that the tunnel attributes returned in the RADIUS response message
will be used by the authenticating user. Associate VLAN 10 with policy role 6 using the
set policy maptable command.
ServicesES->configure policy maptable response tunnel
ServicesES->configure policy maptable 10 6
Forward traffic on UDP source port for IP address request (68) and forward traffic on
UDP destination ports for protocols DHCP (67) and DNS (53) on the data VLAN, to
facilitate PC auto configuration and IP address assignment. Drop traffic for protocols
SNMP (161), SSH (22), Telnet (23) and FTP (20 and 21) on the phone VLAN.
ServicesES->configure policy rule 6 udpsourceportIP 68 mask 16 vlan 10 forward
ServicesES->configure policy rule 6 udpdestportIP 67 mask 16 vlan 10 forward
ServicesES->configure policy rule 6 udpdestportIP 53 mask 16 vlan 10 forward
ServicesES->configure policy rule 6 udpdestportIP 67 mask 16 vlan 10 drop
ServicesES->configure policy rule 6 udpdestportIP 53 mask 16 vlan 10 drop
ServicesES->configure policy rule 6 udpdestportIP 161 mask 16 drop
ServicesES->configure policy rule 6 tcpdestportIP 22 mask 16 drop
ServicesES->configure policy rule 6 tcpdestportIP 23 mask 16 drop
ServicesES->configure policy rule 6 tcpdestportIP 20 mask 16 drop
ServicesES->configure policy rule 6 tcpdestportIP 21 mask 16 drop
Apply a CoS 8 to data VLAN 10 and configure it to rate-limit traffic to 1M and moderate
priority of 5 for services IP subnet 10.10.30.0 mask 28.
ServicesES->configure policy rule 6 ipsourcesocket 10.10.30.0 mask 28 vlan 10 cos 8
Services should only be allowed access to the services server (subnet 10.10.50.0/24) and
should be denied access to the faculty servers (subnet 10.10.70.0/24) and administrative
servers (subnet 10.10.60.0/24).
ServicesES->configure policy rule 6 ipdestsocket 10.10.60.0 mask 24 drop
ServicesES->configure policy rule 6 ipdestsocket 10.10.70.0 mask 24 drop
Enable Enhanced Edge Switch Capabilities on the Services Edge Switch Platform
The Services Edge Switch platform supports invalid action set to default policy should
an invalid policy occur.
ServicesES->configure policy invalid action default-policy
Assign a CoS to distribution up and down stream link ports, rate-limiting the traffic to
25M.
Distribution->configure policy rule 7 port 1-26 cos 11
Distribution->configure policy rule 7 port 1-26 cos 11
The following enhanced policy capability is enabled: invalid action set to default policy
should an invalid policy occur.
ServicesES->configure policy invalid action default-policy
This example shows the application of dacl in multiauth, if the dot1x session needs coa,
echo:
VXLAN Overview
VXLAN is a Layer 2 overlay scheme over a Layer 3 network. Overlays are called VXLAN
segments and only VMs and physical machines (tenents) within the same segment
have Layer 2 connectivity. VXLAN segments are uniquely identified using an identifier
called the VXLAN Network Identifier (VNI). The VNI is a 24-bit identifier; therefore, an
administrative domain can support up to 16 million overlay networks.
As the scope of the MACs originated by tenants is restricted by the VNI, overlapping
MAC addresses across segments can be supported without traffic leaking between
tenant segments. When a tenant frame traverses a VXLAN overlay network, it is
encapsulated by a VXLAN header that contains the VNI. This frame is further
encapsulated in a UDP header and L2/L3 headers.
VXLAN can add up to a 54-byte header to the tenant VM’s frame. For VXLAN to work
correctly, this requires that the IP MTU be set to at least 1554 bytes on the network-side
interfaces. IP MTU of 1554 should also be set on all transit nodes which carry VXLAN
traffic. The point at which a tenant frame is encapsulated (or decapsulated) is referred
to as a VXLAN Tunnel Endpoint (or VTEP). VTEPs are typically located on hypervisors but
may also be located on physical network switches. Network switches that act as a VTEP
are referred to as VXLAN gateways.
At tunnel initiation, a gateway looks up the destination MAC address of the frame
received from the tenant VM. If the MAC address to remote VTEP IP binding is
known, the gateway adds the VXLAN header and the IP/UDP header to the frame and
forwards toward the DC network. A gateway node that terminates a tunnel removes
the encapsulation headers from the packet and determines the bridge domain of the
inner frame by examining the VXLAN network identifier (VNID) received in the VXLAN
header. The gateway then looks up the inner MAC destination address (DA) in the
tenant VLAN's/VMAN's filtering database and decides either to flood or forward the
frame to tenant ports.
The VXLAN segments with the same virtual network ID form a virtual network with one
Ethernet broadcast domain.
Note
Universal switches support Layer 3 gateways.
Supported Platforms
VXLAN is supported on ExtremeSwitching Universal switches, and stacks with Universal
slots only.
Note
4120 and 4220 Series do not support VXLAN.
Limitations
The following capabilities are not supported in ExtremeXOS:
• Ability to assign more than one VNI to a virtual network.
• IPv6 addresses for local and remote VTEPs.
• Assigning source IP for VXLAN gateway encapsulation:
◦ Per virtual router (VR)
◦ Per virtual network or VNI
• Support for adding more than one tenant VLAN/VMAN per VNI.
• A physical port being part of both a tenant VLAN/VMAN and an underlay (Network)
VLAN.
• Support for heterogeneous stack environments where at least one of the stack
nodes is not VXLAN capable.
• More than one next-hop on a (network) port.
• Multicast underlay IP network, except PIM-SSM.
• Multiple VRs.
• With VXLAN for 5320 and 5420 series switches, MACSec-enabled shared ports
cannot be used as a VXLAN tenant/network port.
Note
Overlay Routing
Tenants may have multiple overlays across a data center network where different
VLANs belonging to the same tenant are mapped to different VXLAN Network
Identifiers (VNIs). Tenants require routing between the VLANs, and VXLAN gateway
nodes would need to act as Layer 3 gateways that are capable of routing traffic
between tenant VLANs. Inter-overlay routing involves routing:
• Routing traffic from a tenant VLAN into a tunnel with the destination overlay’s VNI.
• Routing traffic from a tunnel to a tenant VLAN that is different from the tenant VLAN
associated with the VNI in the received packet’s VXLAN header.
• Routing traffic from a tunnel to the same or different tunnel.
Note
Routing between a normal VLAN and a VXLAN tenant VLAN is supported on
allExtremeSwitching Universal platforms.
Note
When MLAG and VRRP is configured on the tenant VLAN, VRRP should be
active-active mode between the MLAG peers.
In Figure 104, Layer 3 traffic is sourced from 20.20.20.1 and is destined for 10.10.10.2. The
gateway for H2 to reach 10.10.10.2 is VTEP A. When traffic ingresses VTEP A, it is routed,
and since the neighbor entry for 10.10.10.2 indicates that it is reachable through VTEP B,
VTEP A encapsulates traffic with VNI “Red” and sends it over the tunnel to VTEP B. At
VTEP B, traffic is decapsulated and is Layer 2 forwarded to H3.
Supported Platforms
Routing traffic into tunnels is supported on all ExtremeSwitching Universal switches.
Supported Platforms
Routing VXLAN network identifier (VNID) traffic from tunnels is supported on all
ExtremeSwitching Universal switches.
Supported Platforms
Routing traffic in and out of tunnels is supported on all ExtremeSwitching Universal
switches.
Head-End Replication
The default method for flooding the broadcast/unicast/multicast (BUM) traffic from
VXLAN overlay to remote VTEPs is through head-end replication over VXLAN underlay.
This means the originating VTEP sends a separate copy to each of the destination
VTEPs over VXLAN unicast tunnel to each VTEP.
Note
RED VNI does not span to VTEP 103.103.103.1.
When a VTEP discovers a remote VTEP, it learns the VNIs supported by the remote
VTEP. The discovering VTEP triggers PIM (S, G) joins to the remote VTEP, for the
multicast groups corresponding to the supported VNIs. As a result, a multicast
distribution tree (MDT) is formed for each multicast group or each VNI.
The overlay BUM traffic is VXLAN encapsulated with multicast group IP (corresponding
to the VNI) as the outer destination IP and sent over the MDT. At the very best scenario,
the originating VTEP sends only one copy out. The replication is done en route hop-by-
hop by the routers in the multicast tree present in L3 network. The routers in the L3
network must support PIM-SSM but need not be VXLAN aware.
The following figure illustrates how VTEP 100.100.100.1 VXLAN encapsulates the traffic
with destination IP as 232.1.1.1 and sends one copy out. The traffic flows across the L3
network over the MDT and reaches 101.101.101.1 and 102.102.102.1:
Using the command featured in the previous figure, it is possible to choose different
variants of MDT as shown here:
1. Each virtual network VNI can be assigned with discrete multicast group address.
Meaning, each virtual network uses a dedicated MDT. The following command auto-
assigns separate group address to each VNI:
2. Single multicast group address can be used for all virtual network VNIs. A single
MDT is used for overlay BUM traffic on all VNIs. The following command auto-assigns
232.1.1.1 to all VNIs:
In any of the previous options, a single VNI cannot use more than one multicast group
address.
Supported Platforms
All ExtremeSwitching Universal platforms.
Limitations
This feature has the following limitations:
• Supported only for overlay BUM traffic.
• Supported only with PIM-SSM.
• BUD node operation is not supported with MLAG.
• Multicast group range used for this feature must not be configured/used for regular
multicast traffic.
Note
This feature should not be used with Assisted Replication.
Unicast VXLAN uses unicast tunnels, and the BUM traffic is head-end replicated to each
of the remote endpoints
These modes determine the way the remote endpoints are created/learned, and the
way the tenant BUM traffic is handled.
For a configuration sample, see Configuration Example for Flood Mode Standard on
page 1051.
For a configuration sample, see Configuration Example for Flood Mode Explicit on page
1051.
Note
This mode requires L3 multicast support on the underlay network.
Note
The only difference from standard flood mode is the way the tenant BUM
traffic is handled.
Note
This mode should not be used with Assisted Replication.
Assisted Replication
The following sections explain the Assisted Replication feature.
Optimized Ingress Replication for EVPN is an IETF RFC (currently in draft 6, Standards
Track) that enhances the ingress replication model of broadcast, unknown, unicast,
and multicast (BUM) traffic handling without putting any further burden on the
underlay. For example, using multicast-based trees for BUM traffic required a multicast
protocol in the underlay, such as PIM. With Optimized Replication all BC/MC frames
are still unicasted through the underlay, requiring no new protocols for packet delivery,
but done so in a more efficient manner. Assisted replication is an enhancement to
BUM traffic handling within the ExtremeXOS VXLAN (Virtual Extensible LAN) gateway
feature.
Note
ExtremeXOS VTEPs should not be configured as leaf.
Note
This feature should not be used with Optimized VXLAN Replication using
Underlay Multicast.
To get a better understanding how the assisted replication works, you must first
understand what head-end replication is.
Head-End Replication
ExtremeXOS handles BUM traffic in VXLAN environments using head-end replication.
Head-end replication means that each local tunnel end-point (LTEP) must replicate the
frame and VXLAN encapsulate it for each remote tunnel end-point (RTEP) on the virtual
network (VNI). The primary benefit of head-end replication is that it imposes no new
restrictions or requirements on the underlay. All frames are unicast IP VXLAN frames,
just like the normal/learned VXLAN frames. In Figure 109, you can see for a given switch
what the head-end replication looks for this VNI. In this case, the total copies sent by
the ingress switch is N+M+3, all of which must traverse the uplinks from the ingress
switch.
Assisted Replication
Assisted replication can be thought of as moving the head-end replication from every
end-point to a small set of replicator nodes. The end result is the same, however,
as each end-point receives a unique copy of the BC/MC frame (unique because it is
unicasted directly to the end-point). Assuming the replicators are placed in the spine
or core of the network, the actual number of frames traversing any single link can be
greatly reduced.
In Figure 110, the ingress switch needs to only send one copy of the BC/MC frame to
the replicator. The replicator is then responsible for replicating the frame to all the end-
nodes in the VNI. One switch can be the replicator for all VNIs in the VXLAN network,
or multiple switches can be configured as the replicator for a specific set of respective
VNIs.
from) the replicator. However, when the replicator role per VNI is split up, the restriction
applies that a particular switch can only operate in one role: replicator or leaf.
Note
In non-EVPN environments there is no control plane learning, and there is no
way for endpoints to learn the location of the user MAC addresses. In EVPN
environments, which have a control plane learning model, leaf nodes learn
remote addresses from the EVPN control plane, and learning is disabled on the
tunnels.
Configuring Roles
The first step for using the Assisted Replication feature is to configure the switches
as replicator. After this step is complete, the Assisted Replication feature is ready to
operate.
Node Discovery
Assisted Replication depends on the discovery of tunnel end-points. There are currently
a few different methods for this to happen within ExtremeXOS, including static
configuration, or EVPN. The Assisted Replication feature is part of the OTM process and
learns of the remote tunnel end-points (RTEPs) directly from there, and does not care
how the end-points are discovered.
Frame Encapsulation
Assisted Replication feature only uses VXLAN Unicast-IPv4 encapsulation.
Leaf Operation
The leaf nodes have three general task:
• Forward frames received on a local access port to the other local access ports that
are a member of the underlying tenant VLAN.
• Forward, by VXLAN encapsulation, the frame to the selected replicator following the
VLAN-to-VNI mapping.
• Receive a VXLAN encapsulated frame from the replicator and de-cap it, and then
forward it to the local access ports that are a member of the underlying tenant
VLAN.
When a node is originally configured for VXLAN it will build BUM flood lists that include
all local access ports for the tenant VLAN as well as all remote TEPs participating in the
VNI. When the node is then configured as a leaf, the system modifiies the underlying
BC/MC flood list to still include the local access ports for the tenant VLAN, but then only
add the selected replicator as a tunnel destination.
Note
If a node is configured as a leaf, but it has no selected replicator (either it
was not configured, or no node has been configured to advertise as such),
no replication takes place, except to local access ports. This occurs to prevent
duplication of frames that can occur when combining head-end with Assisted
Replication.
Additional limitations:
• Without the control plane, a replicator must assume all other end-points are leafs.
• Stacks that do not support VXLAN are not supported.
• Only a single replicator per VNI is supported.
• The replicator can support a maximum of 250 attached leaf nodes.
The OSPFv2 VXLAN opaque LSA is only advertised if ospf vxlan-extensions is enabled
using the enable ospf vxlan-extensions command.
Note
• OSPF vxlan-extensions can only be enabled when OSPFv2 is disabled.
• The remote endpoints learned by OSPF are not saved to the configuration.
• The OSPFv2 VXLAN opaque LSA is only advertised if OSPF VXLAN extensions
is enabled.
Note
Routers in OSPF network should be capable of transmitting type 11 opaque
LSAs defined in RFC5250.
The BGP implementation for ExtremeXOS supports carrying VXLAN VNI and LTEP
combinations as MBGP routes using a proprietary afi/safi combination. Even though
supported LTEPs are IPv4, the VXLAN routes can be carried over IPv6 peering sessions.
To enable or disable IPv4 VXLAN capability on a per peer basis, use the commands:
Limitations
• The ability to carry VXLAN routes cannot be enabled on a per peer group basis.
• BGP graceful restart is not supported on the MBGP/VXLAN feature.
Note
ExtremeXOS must be version 22.3 or later. Core or Premier licensing may apply
(see Switch Engine Licensing Guide).
This can be done by allowing Virtual Tunnel End Points (VTEPs) to proxy ARP requests
and reply on behalf of the remote endpoint. VTEPs snoop ARP replies, exiting the
virtual network tunnel to learn the remote endpoint’s IP to MAC mapping. The VTEP
stores this in its ARP cache for the tenant VLAN. Snooped ARP entries are viewable with
the normal iparp commands for the tenant VLAN. VTEPS also snoop gratuitous ARPs
exiting the tunnel; these may also cause the ARP cache to be updated. ARP entries are
also learned from frames entering the tunnel from the tenant VLAN.
When a VTEP intercepts an ARP request it attempts to lookup the IP address in its
ARP cache. If an ARP cache entry is found, the VTEP does an immediate ARP reply to
the requester; this avoids flooding to both the VLAN and remote tunnel endpoints. The
source MAC in the reply is that of the remote endpoint for which the VTEP is proxying
the request. On an ARP cache miss, the VTEP floods the request on the VLAN and to
the remote tunnel endpoints. Additionally, the VTEP may answer an ARP request on
behalf of a locally attached tenant if the tenant is on a different port than the ARP
request was received on —this is proxying within the tenant VLAN.
ARP features enabled on the tenant VR (for example, gratuitous protect) may cause
provoke actions for ARPs exiting the tunnel. These features should behave the same
for local ARPs and ARPs processed from the tunnel. This includes configurable options
such as timers and refresh.
This feature may be used even if the tenant VLAN does not have an IP interface. In
that case, ARP cache entries are still learned. If an entry needs to be refreshed, the ARP
request is sent with a source protocol address of all zeros. This is functionally equivalent
to an ARP probe. This feature is disabled by default for configured virtual networks.
To configure the filter mode for ARP suppression, use the following command:
When this feature is enabled, the following occurs for a new VLAN-NSI mapping:
1. A dynamic virtual network is created. The virtual network name is generated with a
system reserved prefix.
2. VXLAN VNI is configured for the virtual network. The VNID is same as the value of
NSI.
3. The VLAN is configured as a tenant VLAN.
When a VLAN-NSI mapping is deleted, the dynamically created virtual network along
with the VNI and VLAN associations are purged.
Edge Automation
Edge Automation connects Extreme virtual tunnel endpoints (VTEPs) with other
network devices, such as switches or wireless access points (APs), by establishing a
VXLAN tunnel to them, thereby receiving VXLAN-encapsulated traffic from the devices.
Virtual networks and local tunnel endpoints (LTEPs) must already be configured on the
VTEPs, and only remote virtual tunnel endpoint (RTEP) creation is dynamic.
The information about the devices (name, IP address, MAC address, etc.) is stored in a
VNI-device database. The name of this VNI-device database is set using ExtremeXOS
commands or ExtremeCloud Connector.
Edge Automation supports stacking, and the local cache information is synced
between the primary and backup. Only the primary switch is connected to the VNI-
device database, and data synced between primary and backup switches is used
for RTEP creation on the backup switch. After failover, the backup switch becomes
the primary switch, and it becomes connected to the VNI-device database. Any
notifications being processed during failover are lost.
Supported Platforms
Edge Automation works on all platforms that support VXLAN.
Limitations
• Virtual networks and LTEPs are not configured automatically. They must be
configured using existing methods.
• The VNI-device database must be reachable using Mgmt-VR.
• You can only configure one database. If you need to create a new database, the
existing database must be deleted first before adding the new database.
• This feature works only with Extreme Campus Controller. It does not work with any
third-party applications.
• Any existing limitations on dynamic RTEPs apply to RTEPs created by Edge
Automation.
• If a database's password is changed, and if the same is configured on ExtremeXOS,
then the connection between ExtremeXOS and the database is re-established,
causing a brief loss of connectivity.
• If a network device supports multiple IP addresses, the first IPv4 address is used for
RTEP creation.
• Traffic between ExtremeXOS and the database is unencrypted.
VXLAN Learning
Filtering databases on the gateways need to be populated (either through
configuration or by dynamic learning) with remote MAC-to-VTEP bindings on the
gateways to avoid unnecessary replication of tenant traffic.
Dynamic Learning
Dynamic learning of remote MACs involves:
• VTEP discovery—When a VNI is configured on a gateway, other VTEPs in the
network would somehow have to discover the existence of the VTEP(s) this gateway
is configured with.
Note
VTEP discovery is only supported using OSPF extension. But not through
receiving an encapsulated frame.
Gateways will need to age remote VTEPs as done with MAC-to-IP bindings to ensure
that the number of remote VTEPs does not remain monotonically non-decreasing over
time.
A VM’s MAC-to-IP binding may change if it has been migrated using Vmotion. As with
FDB learning, VTEPs need to dynamically detect these moves based on received traffic
and update their filtering databases.
Load Balancing
VXLAN allows networks to leverage Layer 3 ECMP to efficiently distribute traffic loads
across the network. To enable a level of entropy for load balancing on VM to VM traffic,
ExtremeXOS derives the source UDP port in the encapsulated frame from the tenant
packets. Transit nodes need to be configured to use appropriate mechanism to exploit
the entropy.
configure sharing address-based custom ipv4 L3-and-L4
configure forwarding sharing L3_L4
Note
The Inner packet tag (tenant tag) is not used in entropy calculation.
Quality of Service
VXLAN gateway uses a DSCP value of 0 when the tenant packet is not IP. Otherwise,
it copies the tenant DSCP value to the outer IP header. In order to overwrite this, user
must configure an ACL (Access Control List) rule. This ACL is general and applied to all
virtual networks. The following is an example of this ACL rule:
entry map {
if {
protocol udp;
destination-port 4789;
}
then {
qosprofile qp3;
replace-dscp;
replace-dot1p;
}
}
Then, the following command is used to put the outer DSCP value to a fixed value of 32:
configure diffserv replacement qp3 code-point 32
As indicated in the example above, the dot1p value can also be replaced. In the
absence of the ACL, VXLAN gateway copies the tenant dot1p value to the network.
The replacement happens on the outer headers as the example above illustrates. QoS
(Quality of Service) examination (dot1p or diffserv) happens on the first header. On
the tenant port, it is examining the ethernet and IP header of tenant frames. On the
network port, it is examining the outer Ethernet and IP header. There is no change to
the existing support for treatment of packets, such as rate-limiting and queuing.
Redundant Access
Because the VXLAN gateway node can become a single point of failure, it is important
to dual-home devices or clusters to a pair of gateways. While there may be multiple
mechanisms to accomplish this, using is the best solution due to its simplicity and
because it imposes no additional constraints on the tenant devices except that they
support LAG.
VXLAN GW1
00:00:00:00:00:11 00:00:00:00:00:33
10.10.10.1 10.10.10.2
vSphere
vSphere
VTEP
VTEP
20.20.20.1 20.20.20.2
00:00:00:00:00:22 00:00:00:00:00:44
DC Network
Cluster VXLAN GW3 Cluster
00:00:00:00:00:66
30.30.30.1 00:00:00:00:00:77
30.30.30.2
vSphere
VTEP
vSphere
VTEP
20.20.20.2
00:00:00:00:00:55
Cluster VXLAN GW2
VXLAN GW4 Cluster
For a configuration example, see Configuration Example for MLAG on page 1052.
Additional considerations:
• Since the tenant VLAN/VMAN IDs can be reused, ExtremeXOS needs to allow
multiple VLANs/VMANs with the same tag to be dual homed using the same
MLAG peers. This requires tenant traffic be encapsulated over the ISC link to help
distinguish traffic from different tenant VLANs/VMANs.
• Only one copy of BUM traffic from a tenant VM should be forwarded to the network.
• MLAG peers have a mechanism in place to block BUM traffic coming from the
network to not be sent back into the network through the other peers.
• When one of the MLAG peers loses connectivity to the underlay network,
reachability can be established through the ISC. This requires you to configure an
underlay VLAN that includes the ISC ports and run a routing protocol over the ISC.
Using the correct metric values ensures that this VLAN is not preferred by the peers
to reach remote nodes during steady state and would be used only when all other
connectivity to the underlay network is down.
Note
Multi-peer MLAG is not supported.
• MLAG with alternate IP configuration, disables the local MLAG ports when the MLAG
peer is alive, but the ISC port alone goes down. This feature is used to prevent
duplication of packets if MLAG peers are part of larger L2 domain. For VXLAN, MLAG
peers connect to an L3 cloud on their upstream (northbound) interface and they
share the same LTEP IP address. Other VTEPs use L3 ECMP to send traffic to one of
the MLAG peers. With an alternate IP configured and ISC going down, traffic hashing
towards an MLAG peer, which disabled its MLAG ports, results in dropped traffic. So it
is recommended not to configure MLAG alternate IP feature on VXLAN VTEPs.
Note
In a VXLAN and MLAG environment where a node has two MLAG peers,
even when MLAG alternate IP address is not configured, traffic disruption
likely occurs when an ISC connection is lost between any of the MLAG peers.
• MLAG does not function if the Inter-Switch Connection (ISC) port is added to an
untagged tenant VMAN.
Statistics
Per virtual network and per remote endpoint counters are supported. Both byte and
packet counts are available.
Virtual network counters display the sum of all counters from all remote endpoints
associated with the virtual network. Packets that arrived encapsulated on the VXLAN
network port are counted on the virtual network as Rx bytes/packets (network side),
and also, are counted as Tx bytes/packets (access side). For example, if 10 packets
are received from remote endpoint 1.1.1.2 on virtual network vnet44, Rx Frames are 10,
since 10 frames are received on the virtual network from the network interface (VXLAN
encapsulated packets). Also, TX frames are 10, since 10 frames are transmitted on the
virtual network tenant interface (native, non-VXLAN encapsulated packets). Similarly,
on the other direction.
Remote endpoint counters display the sum of all counters from all virtual networks
associated with the remote endpoint. Currently, it is not possible to display the counters
for a given virtual network/remote endpoint pair.
Note
This support does not apply to VPEX Extended Ports.
Note
Egress filtering cannot be configured on network ports. If configured, there will
be a drop in (VXLAN/MPLS) tunneled packets.
Only a limited number of users (100 or fewer) is supported. Because the maximum
number of policy profiles supported is 63, this feature can be used with a maximum of
63 virtual networks.
Limitations
• Dynamic VLANs are not supported.
• Dynamic virtual networks are not supported.
• Non-policy mode is not supported.
• RIOT is not supported.
• The policy must have TCI overwrite enabled.
Configuring VXLAN
The following section show how to configure VXLAN.
To add ports that can terminate tunnels carrying VXLAN or NVGRE encapsulated traffic,
use the following command:
To delete ports that can terminate tunnels carrying VXLAN or NVGRE encapsulated
traffic, use the following command:
Note
A VTEP can have only one local endpoint IP.
Configuring Databases
To add a server to a database, use the following command:
To change the time interval between retries, use the following command:
To view information about database network devices, use the following command:
Description
Specifies the maximum value for exponentially increasing time interval between retries
for an Automation Edge remote VXLAN network identifier (VNI)-device database.
Syntax Description
database Makes time interval retries remote VNI-database.
max-retry-interval Specifies setting the maximum value for exponentially
increasing time interval between retries.
retry_interval Specifies the value for the maximum time interval between
retries in seconds. The default is 600. The range is 1 to 3,600.
Default
If not specified, the maximum retry interval is 600 seconds.
Usage Guidelines
N/A.
Example
The following example sets the maximum retry interval to 800 seconds:
# configure database max-retry-interval 800
History
This command was first available in ExtremeXOS 31.1 as a demonstration feature.
Platform Availability
This command is available on all Universal switches supported in this document.
Configuration Samples
Note
Only VXLAN-specific commands are shown.
Remote endpoints are learned dynamically using OSPF VXLAN extensions. These are
not saved to the configuration. Alternately, you can create a static remote endpoint
using the following commands:
create virtual-network remote-endpoint vxlan ipaddress 2.2.2.2
configure virtual-network VNET1 add remote-endpoint vxlan ipaddress 2.2.2.2
Note
Only VXLAN specific commands has been listed here.
The unknown unicast and multicast tenant traffic is controlled by using the following
command options:
create fdb unknown-unicast ….
create fdb unknown-multicast …
Switch #1 Configuration
create vlan “ospf_loop”
enable loopback-mode vlan ospf_loop
configure vlan ospf_loop ipaddress 10.10.10.141 255.255.255.255
enable ipforwarding vlan ospf_loop
config ospf routerid 10.10.10.141
create vlan “route-isc”
configure vlan route-isc ipaddress 100.0.0.141 255.255.255.0
enable ipforwarding vlan route-isc
configure ospf vlan route-isc cost 65535
create vlan “vltep”
enable loopback-mode vlan vltep
configure vlan vltep ipaddress 10.10.10.200 255.255.255.255
enable ipforwarding vlan vltep
configure virtual-network local-endpoint ipaddress 10.10.10.200 vr “VR-Default”
Switch #2 Configuration
create vlan “ospf_loop”
enable loopback-mode vlan ospf_loop
configure vlan ospf_loop ipaddress 10.10.10.142 255.255.255.255
enable ipforwarding vlan ospf_loop
config ospf routerid 10.10.10.142
create vlan “route-isc”
configure vlan route-isc ipaddress 100.0.0.142 255.255.255.0
enable ipforwarding vlan route-isc
configure ospf vlan route-isc cost 65535
create vlan “vltep”
enable loopback-mode vlan vltep
configure vlan vltep ipaddress 10.10.10.200 255.255.255.255
enable ipforwarding vlan vltep
configure virtual-network local-endpoint ipaddress 10.10.10.200 vr “VR-Default”
This chapter offers detailed information about the ExtremeXOS Identity Management
feature. It provides an overview, as well as specific information on how to configure,
manage and monitor this feature.
Note
IDM and ONEPolicy are not supported together and it is not recommended
to enable both, since handling rule/role-based actions is not supported, except
to support Kerberos Authentication with NAC as a RADIUS server and can be
used in conjunction with IDM XML event triggers.
Note
When using IDM commands, you should generally avoid the encrypted option.
Passwords provided in commands in plain text are saved in encrypted format.
a Identity manager receives these attributes only from LLDP enabled ports when the remote device is
configured to send the corresponding TLV.
The software components in Table 121 trigger identity attribute collection when a
user or device connects to the switch. All components provide the MAC address,
authentication and unauthentication time stamps, and the port to which the identity
connected. When multiple components are triggered by a user or device connection,
the triggers usually happen at different times. Identity manager responds to all identity
event triggers, adding additional information to the identity database each time it
becomes available.
To capture all the available attribute information listed in Table 121, enable the following
features:
• Network Login
• LLDP
• IP Security
By default, the identity management feature collects information from all devices
connected to identity management enabled ports which does Kerberos authentication
using Kerberos snooping. Kerberos authentication, or ticketing, is used by Microsoft's
Active Directory. The Kerberos snooping feature collects identity attributes from
Kerberos Version 5 traffic. This feature does not capture information from earlier
versions of Kerberos.
Note
We recommend that you enable CPU DoS protect in combination with
Kerberos snooping to make sure the CPU is not flooded with mirrored
Kerberos packets in the event of a DoS attack on Kerberos TCP/UDP ports. If
the rate limiting capability is leveraged on capable platforms, it is applied on
CPU mirrored packets.
Because an identity entry in the identity manager database can contain information
from various software components (listed in Table 121 on page 1054), when a
component other than a network login triggers an identity removal, only the attributes
supplied by that component are removed from the identity. When network login
triggers an identity removal, all attributes for that identity are removed from the
identity manager database.
Identity Names
After identity attributes are captured, they can be viewed with show commands on
the switch. The identity ID Name assigned to each identity depends on the identity
attributes collected. For example, if a MAC address detected by FDB (forwarding
database) is not correlated by at least one other software component, the identity is
considered an unknown identity, and identity manager creates an identity entry with
the name unknown_<MAC-Address>, where MAC-Address is replaced with the actual
MAC address.
When an FDB detected MAC address is correlated by another software component, the
identity is considered a known identity, and the identity manager names the identity
based on the identity attributes.
For example, if a user name is collected, the user name becomes the ID name. If
a username is not discovered, identity manager creates a name based on the MAC
address.
Identity manager can change the ID name when additional attributes are learned,
or when the identity status changes between known and unknown. For example, if
LLDP (Link Layer Discovery Protocol) sends an identity removal trigger to the identity
manager for an LLDP-based identity, and if a valid FDB entry exists for the removed
identity, the identity manager reestablishes the identity as an unknown identity
(unknown_<MAC-Address>).
Note
If FDB triggers the removal of the MAC address for an unknown identity, the
identity manager deletes the corresponding unknown identity after a period of
time.
With NetLogin, ONEPolicy, and IDM enabled, once the MAC address is authenticated
and IDM table is populated with the MAC user and with Kerberos correlated user,
using XML target configured in ExtremeXOS, the IDMGR events are be sent to Extreme
Management Center server using HTTP/HTTPS. Extreme Management Center after
receiving the XML event decides what to do with the profiles configured for Kerberos.
With NetLogin, ONEPolicy, and IDM enabled, once the MAC address is authenticated
using NAC as a RADIUS Server and the IDM table is populated with the MAC user and
with Kerberos correlated user, using XML target configured in ExtremeXOS switch, the
IDMGR events are sent to Extreme Management Center server (Netsight) using HTTP/
HTTPS. For ONEPolicy + IDM + Kerberos to work NAC should be the RADIUS server.
Using an external RADIUS server, and with XML events alone configured to send to
Extreme Management Center, does not work since the IDM table is not populated with
ONEPolicy enabled for NetLogin MAC/Dot1x/Web entries. IDM table is populated only
for Kerberos user with ONEPolicy enabled.
For information about how to configure Kerberos authentication type, see Configuring
Kerberos Authentication Type on page 1079.
Authenticated identities are known identities that meet the following requirements:
• Are not included in the blacklist or whitelist.
• Do not meet the match criteria for any user-defined roles.
• Cannot meet the match criteria for any user-defined role with LDAP attributes
because no LDAP server is available or because LDAP queries are disabled.
• Are detected either through network login (using any of the network login methods)
or through Kerberos snooping.
The unauthenticated role applies to all identities that do not match any other default or
user-defined role.
For example, the following identities are placed in the unauthenticated role:
• A device detected by LLDP that has not authenticated through network login and
does not match any other default or user-defined role.
• A user who does not successfully log in using Kerberos login and does not match
any other default or user-defined role.
• A device discovered through IP ARP or DHCP (Dynamic Host Configuration Protocol)
snooping that does not match any other default or user-defined role.
• Any identity classified as an unknown identity.
Note
The unauthenticated role is not applied to network login and Kerberos users
because those users are either authenticated or denied by network login.
One option for configuring the unauthenticated role policy/rule is to allow DNS, DHCP,
and Kerberos traffic, and deny all other traffic. This configuration allows identities to
attempt log in, and denies access to identities that do not successfully log in.
a discovered identity is found in the whitelist, that identity is granted complete network
access, and no further role processing occurs for that identity.
You can configure identities in a blacklist or whitelist using any one the following
identity attributes:
• MAC address
• IPv4 address
• Username (with or without a domain name)
The type of identity attribute specified in a blacklist or whitelist impacts the locations
from which an identity can access a switch. For example, if a MAC address or an IP
address is specified in a blacklist, no access is permitted from any user at devices with
the specified address. If a username is specified in a whitelist, that user is permitted
access from all locations.
When an identity accesses the switch and that identity is in a blacklist or whitelist,
the switch installs a specific deny or allow ACL on the port through which the identity
attempts access. The installed ACL is an active ACL that explicitly denies or allows traffic
from that identity. There is no passive action that takes place if the identity is not listed
in the ACL. When the identity is not listed in a blacklist or whitelist, the switch checks
for matches to other roles as described in Role Precedence and Priority on page 1064.
Greylist Roles
Greylist feature enables the network administrator to choose usernames whose identity
is not required to be maintained. When these usernames are added to greylist, the
Identity Management module does not create an identity when these users log on.
This will be useful in a scenario wherein multiple users log in from same device at
the same time. For example, actual user has logged into computer after Kerberos
authentication. Later, Anti-Virus Agent (AVAgent) software starts within the same
computer and does Kerberos authentication.
This will result in losing actual user identity and creating identity for AVAgent.
Configuring AVAgent's username in greylist will prevent the above situation and actual
user identity along with policies will be retained when AVAgent user logs in.
Greylist entries have higher precedence over blacklist and whitelist entries by default.
This means that IDM consults with greylist first, upon detection of user, and then
decides if the identity needs to be created. If there is no matching greylist entry,
IDM proceeds with role identification for the user. However, greylist precedence is
configurable. The following are three possibilities for greylist precedence configuration:
• greylist, blacklist, whitelist
• blacklist, greylist, whitelist
• blacklist, whitelist, greylist
At this time, blacklist always has precendence over whitelist. To change list precedence,
disable IDM first. Disabling IDM is required since reverting roles and revoking policies
due to greylist entries may increase processing load. When precedence configuration
is changed, each entry present in the list with lower precedence (new precedence) is
checked with each entry present in all the lists with higher precedence. If any existing
entry becomes ineffective, details of those entries are displayed at the CLI prompt.
User-Defined Roles
User-defined roles allow you to create custom roles that can restrict, count, and meter
traffic for identities you want to control. CLI commands allow you to do the following:
• Create a user defined role.
• Configure identity match criteria that determine which identities use a role.
• Add dynamic ACL rules or policies to a role so that those policies are applied to ports
to which a matching identity connects.
• Assign a priority level to each role to determine which role applies when multiple
roles are matched to an identity.
• Establish hierarchical roles that can be used to support topologies built around a
company organization structure or a geographical layout.
When specifying match criteria for a role, you can specify identity attributes collected
by identity manager (see Identity Information Capture on page 1054) and those
collected from an LDAP server. When configured for an LDAP server, identity manager
can send a query to the server with locally collected attributes and retrieve additional
attributes for the identity, such as an employee department or title. The use of an LDAP
server allows you to design roles that serve departments or localities.
An LDAP query contains one or more of the identity attributes listed in Table 121 on
page 1054.
If an LDAP server fails to respond, the next configured LDAP server is contacted. When
a server query succeeds, all further LDAP queries are sent to that LDAP server. All LDAP
Note
Identity manager supports a maximum of eight LDAP servers.
When you create a user-defined role, you must define the match criteria that
determines which identities will use the role. The match criteria is a group of identity
attributes and the attribute values that must match identities to which this role is
assigned. For example, the following command creates a role named US-Engr that
matches employees whose title is Engineer and who work in United States:
create identity-management role US-Engr match-criteria "title contains Engineer; AND
country == US;" priority 100
The match criteria are a series of attributes, operators, and attribute values, all of which
are described in the Switch Engine Command References. Each role can define
up to 16 attribute requirements, and there are additional operators such as not equal.
Beginning in ExtremeXOS 15.3, the match criteria attributes are combined using the
AND or OR operators, not a combination of both. When multiple roles are matched to
an identity, the role with the highest priority (lowest numerical value) applies.
The match criteria for a role establish the role as on of two types:
• Local user-defined role
• LDAP user-defined role
A local user-defined role uses only the following locally discovered attributes (which are
listed in the following table) in the match criteria:
• User's MAC address
• MAC OUI
• User's port
• User's identity
• IPv4-to-MAC binding
• Device capabilities
• Device model name
• Device manufacturer name
Because a local user-defined role does not require LDAP provided attributes, the role
can be matched to identities when an LDAP server is unavailable, or when LDAP
processing is disabled for network login authenticated identities. A local user-defined
role can serve as a backup role to an LDAP user-defined role.
An LDAP user-defined role uses one or more of the LDAP attributes listed in Identity
Attributes on an LDAP Server on page 1059 in the match criteria, and it can also use the
attributes listed in Identity Information Capture on page 1054. An LDAP user-defined
role gives you more flexibility in selecting attributes for the match criteria. However,
if no LDAP server is available, and the identity attributes do not match a local user-
defined role, one of the two default roles is applied to the identity.
Role Policy Order
Previously, the policy or dynamic rule associated to the role occurred in the order of
configuration. There was no way for you to change the order of the policy or dynamic
rule associated with the role. ExtremeXOS 15.2 supported the ability to change the order
of the policy or dynamic rule associated with the role. You can also change the order
of the policy or dynamic rule during the run time. Even if the role is assigned to some
identities, the policy or the dynamic rule associated to the role can be changed.
Role Hierarchy
To make it easier to manage users, the role management feature supports hierarchical
roles. Hierarchical roles can be defined to reflect different organizational and functional
structures. To create a role hierarchy, one or more roles are defined as child roles of
what becomes a parent role. Each role can have a maximum of eight child roles and
only one parent role. This feature can support up to five levels of parent and child roles.
With respect to role hierarchy and match criteria, there is no restriction across roles.
Beginning in 15.3 release, a user can have the parent role with AND, and the child role
with OR, or vice versa. The inheritance of match criteria to the child role from the parent
role uses AND as in previous releases.
Role Inheritance
Child roles inherit the policies of the parent role and all roles above the parent in the
hierarchy. When an identity is assigned to a role, the policies and rules defined by that
role and all higher roles in the hierarchy are applied.
When the parent role is deleted or when the parent-child relationship is deleted, the
child role no longer inherits the parent role's policies and the policies are immediately
removed from all identities mapped to the child role.
Because the maximum role hierarchy depth allowed is five levels, the maximum
number of policies and dynamic ACLs that can be applied to a role is 40 (five role levels
x eight policies/rules per role). Figure 115 on page 1063 shows an example of hierarchical
role management.
Match Criteria Inheritance
Beginning in release 15.2, the child role can inherit the match criteria of the parent role.
This means that the match criteria does not need to be duplicated in all levels of
hierarchy.
For example, if you have roles called Employee, India employee, and India engineer in a
hierarchy, previously the match criteria of the three roles would have been:
“company == Extreme”
“company == Extreme; AND country == India”
“company == Extreme; AND country == India; AND department = Engineering”
This can be simplified into the following since the child role automatically inherits the
parent role’s match criteria:
“company == Extreme”
“country == India”
“department = Engineering”
Once this support is enabled, user identity must satisfy not only the role’s match
criteria, but its parent and ancestors also. This support can be enabled/disabled using
CLI or XML. You no longer have to repeat the match criteria configured in the parent
role in the child roles also.
Note
• Role match criteria inheritance can only be enabled if all of the existing roles
have higher priority than their descendants. If this condition is not satisfied,
match criteria inheritance will fail.
• Once this feature is enabled, you cannot configure a child role with lesser
priority (higher priority number) than its parent.
• Enabling this feature changes the order of the roles according to the
parent-child relationship.
• Incoming identities are matched against the child role and then against the
parent irrespective of the order of creation.
For example, Role A and Role B have match criteria MC-A and MC-B, respectively. Role
B is a child role of Role A. When match criteria inheritance is disabled, an identity
matches Role B criteria, and then it is placed under Role B with no further check.
When match criteria inheritance is enabled, the same identity, after satisfying Role
B’s match criteria, is then checked against Role A’s match criteria. Once the identity
satisfies child and parent match criteria, it is placed under Role B.
Prior to release 15.3, only AND was supported in the match criteria of user roles. From
15.3, OR is now supported also, so the user can have either AND or OR in the match
criteria, but not both. For a particular role, the user can have all match criteria with
AND, or have all the match criteria with OR. There is no restriction across roles with
respect to role hierarchy and match criteria inheritance. The user can have the parent
role with AND, and the child role with OR, or vice versa. The inheritance of match
criteria to the child role from the parent uses AND as in previous releases.
Examples:
create identity-management role "EniBuildservers" match-criteria match-criteria "userName
contains
enibuild; OR ip-address == 10.120.89.0/24;
This example creates a role for enibuild servers, whose name contain enibuild or whose
ip-addresses are in the range 10.120.89.1 - 10.120.89.255.
If the parent role has the match criteria as
"company == Extreme" AND "Title == Manager;"
And the child role has the match criteria as
"country == India;" OR "country == USA"
And the grandchild has the match criteria as
"department == Engineering"
All the managers who belong to Extreme Engineering, from both India and the USA,
will be placed in the grandchild role.
Context Based Roles
Context based roles apply additional rules or policies to a port based on context
related attributes for an identity. For example, consider a campus environment where a
student logs into the network through a PC and also through a smart phone. Suppose
that a role named Student already exists and applies basic policies for a student.
Also suppose that the administrator wants to apply additional policies for students
accessing the network through smart phones.
To apply the additional policies, the administrator can create a role called
Student_smartPhone as a child role of Student. The match criteria could include
"title == Student; AND mac-oui == 00:1b:63:00:00:00/FF:FF:FF:00:00:00;", where the MAC
address is the address of the smart phone. The additional policies can be added to
the new child role. When the student logs in from the PC, the rules applicable to the
Student role apply. When the student logs in from the smart phone, the policies for the
Student_smartPhone role apply, in addition to those inherited from the Student role.
Note
A student logging on through a smart phone is placed under the
Student_smartPhone role only if that role has a higher priority (lower
numerical value) than the Student role.
Note
When unknown MACs are identified from the FDB that do not have a role
specified, they are marked "unauthenicate" in the IDM table. Whenever a port
is restarted or FDB is flushed, these unauthenicate roles (identities) do not
flush immediately and take less than a minute to flush out from the IDM table.
1. The blacklist role is searched for the identity. If the identity is in the blacklist, the
identity is denied access and role evaluation stops.
2. The whitelist role is searched for the identity. If the identity is in the whitelist, the
identity is allowed access and role evaluation stops.
3. A local user-defined role is searched for the identity. If the identity is mapped to
a local user-defined role, the identity is allowed access and role evaluation stops
for all unknown/LLDP users. For Kerberos and network login users (except those
authenticated through the local network login database), a query is sent to an LDAP
server with the user attributes. If the Kerberos and network login users (except those
authenticated through the local network login database) do not map to any local
user-defined role , the identity is placed in authenticated role.
Note
The LDAP query can be disabled for specific types of network login users,
and the LDAP query is disabled for locally authenticated network login
identities.
4. When the switch receives LDAP attributes for an identity, the software evaluates the
user-defined roles. If one or more user-defined roles match the identity attributes,
and if those roles have a higher priority (lower numerical value) than the current role
applied to the identity, the policies for the current role are removed and the policies
for the user-defined role with the highest priority are applied.
Note
To support a change from the one role to another, the role priority for the
new role must be higher than the current role.
When a dynamic ACL or policy is added to a role, it is immediately installed for all
identities mapped to that role. Effective configuration of the dynamic ACLs and policies
will ensure that intruders are avoided at the port of entry on the edge switch, thereby
reducing noise in the network.
Note
The identity management feature supports wide key ACLs, which allow you to
create many more match conditions for each ACL. For more information, see
Wide Key ACLs on page 804.
The dynamic rules or policies that are installed for an identity, as determined by
its role, are customized for that identity by inserting the MAC or IP address of the
identity as the source address in the ACL rules. In ExtremeXOS release 12.5, identity
manager inserted the IP address of the identity in all the ACL rules to be installed for
that identity. Beginning with release 12.6, identity manager can insert either the MAC
address or the IP address of the identity in all the ACL rules to be installed for that
identity. By default, the MAC address of the identity is used to install the ACLs. Every
network entity has a MAC address, but not all network devices have an IP address,
so we recommend that you use the default configuration to install ACLs for network
entities based on the source MAC address.
For additional information on creating ACLs, see ACLs on page 779. For additional
information on creating policies, see Policy Manager on page 774.
The following is a list of LDAP attributes that can be looked up in the LDAP server:
• Employee/User ID
• Title
• Department
• Company
• City
• State
• Country
• Email ID
Using CLI, various roles can be created with corresponding match criteria specified in
attributes and values.
When a policy is added to a role, the newly added policy will be applied to both existing
users mapped to that role as well as new users who get mapped to this role in the
future.
Beginning in release 15.2, a child role can inherit the match criteria of the parent role.
The match criteria now does not need to be duplicated in all levels of the hierarchy.
You can specify the group name in the role's match criteria while creating the role. For
example, the role creation command will appear as follows:
1 Create identity-management role Role1 match-criteria "memberOf==EXOSCLI-Review"
2 Create identity-management role Role2 match-criteria "title==Engineer; AND
memberOf==PI_SW"
A role's match criteria accepts all of the following operators: ==, !=, contains, AND, and
OR.
Note
A combination of AND and OR is not supported in the match criteria definition
of the role.
The following optimizations are completed with respect to the LDAP query for Group
Attributes:
• All of the group names used in every role configuration are collected and stored
in a global database. When the LDAP query returns a list of the user's groups, the
group names are cached against the user and used for role determination. The
optimization is that only the group names used for role configuration are cached.
The rest of the group names are discarded.
• The second LDAP query is not sent if the group attribute (i.e., memberOf) is not used
in any role.
With this new support, you can add a single attribute “source-zone” or “destination-
zone” to an entry of a policy file. This entry is then expanded into multiple entries
depending upon the number of IP and/or MAC addresses configured in that particular
zone. If the zone is added to the policy with the keyword “source-zone,” the attributes
that are configured in those particular zones, will be added as either source-address
or ethernet-source-address in the policy, whereas, if the network-zone is added as
destination-zone, the attributes will be added to the policies as destination-address
or ethernet-destination-address.
Once you complete the changes in the zones, and issue a refresh of a specific zone, or
all the zones, the policies that have corresponding zones configured as source-zone or
destination-zone in their entries will be exapnded, and then refreshed in the hardware.
If you configure a policy such as the following to a port or VLAN (Virtual LAN) through
applications such as IdMgr, Extreme Network Virtualization (XNV) or CLI:
Policy: test
entry e1 {
if match all {
source-zone zone1 ;
}
Then {
permit ;
}
}
Upon refreshing the network-zone zone1, the policy will be expanded as below:
entry Cl0:0_10.1.1.1_E1 {
if match all {
source-address 10.1.1.1 / 32 ;
} then {
permit ;
}
}
entry Cl0:0_10.1.1.1_E2 {
if match all {
source-address 10.1.1.1 / 28 ;
} then {
permit ;
}
}
entry Cl0:0_12.1.1.0_E3 {
if match all {
source-address 12.1.1.0 / 24 ;
} then {
permit ;
}
}
Note
When the policy is configured in the network-zone, the zone may or may not
have attributes configured with it. In cases where the network-zone does not
have any attributes, the policy will be created with entries that do not have the
network-zone attribute alone. For example, if you have a policy similar to the
following:
Policy: test2
entry e1 {
if match all {
source-zone zone2 ;
protocol udp ;
}
then {
permit ;
}
}
entry e2 {
if match all {
protocol tcp ;
}
then {
permit ;
}
}
and the network-zone “zone02” is created but not configured with any attributes, the
policy would be as follows:
entry e2 {
protocol tcp;
}
then {
permit;
}
}
Once the network-zone “zone2” is configured with one or more attributes and
refreshed, the policy will be updated accordingly. Here the name of the entries that
have source-zone or destination-zone will be changed. This is because each entry
in the original policy that has a source-zone/destination-zone will be converted to a
maximum of eight entries in the new policy.
A single policy can have one or more network-zones configured in it, and can also
have the same network-zone in multiple entries with different combinations as other
attributes are supported in the policy file. Similarly, the same network-zone can be
configured to multiple policies. In cases where the policy has multiple network-zones,
and only some of those network-zones are refreshed, the entries that correspond to
those network-zones will be refreshed alone, and not the entries that correspond to the
other network-zones.
Once a refresh of a network zone is issued, all the policies that have the specified
network-zone will be modified, and a refresh for each of those policies will be sent to
the hardware. The command will succeed only after getting a success return for all the
policies that have this particular network-zone. If one of the policy’s refresh fails in the
hardware, all of the policies that are supposed to refresh will revert to their previous
successful state and the command will be rejected.
The configuration or refresh may fail if the attributes in the network zone are not
compatible with the attributes in the corresponding entries of the policy. For example,
in platforms that do not support wide-key or UDF, a policy entry cannot have Layer
2 attributes and Layer 4 attributes. In this case, if the entry has “protocol tcp,” and a
network_zone that has an ethernet source address, the configuration will fail in the
hardware.
Note
In the refresh failed case, the content of the policy and the content of the
network-zone may go out of sync, as the policy will be reverted back to the
last successful state, whereas the network zone will contain the last configured
values.
and this is refreshed, and has been successfully installed in the hardware, the policy will
look like this:
entry Cl0:0_10.1.1.1_E1 {
if match all {
source-address 10.1.1.1 / 32 ;
} then {
permit ;
}
}
entry Cl0:0_10.1.1.1_E2 {
if match all {
source-address 10.1.1.1 / 28 ;
} then {
permit ;
}
}
Now, if the user removes 10.1.1.1/28, and adds 10.1.1.1/24 to the network zone as below:
and then does a refresh network-zone, and for some reason, the policy refresh fails, the
policy and the network-zone will look as below:
entry Cl0:0_10.1.1.1_E1 {
if match all {
source-address 10.1.1.1 / 32 ;
} then {
permit ;
}
}
entry Cl0:0_10.1.1.1_E2 {
if match all {
source-address 10.1.1.1 / 28 ;
} then {
permit ;
}
}
create access-list network-zone zone1
configure access-list network-zone zone1 add ipaddress 10.1.1.1 255.255.255.255
configure access-list network-zone zone1 add ipaddress 12.1.1.0 255.255.255.0
Role Refresh
Role refresh allows you to enter a CLI command that triggers a reevaluation of role
selection for one or all users. A role refresh can also trigger reevaluation of role selection
for all users using a specific role.
After role evaluation completes for an identity, the role remains the same as long as
the identity is present at the original location and no new high priority role matching
this identity's attributes is created. Consider a situation where a Kerberos user is
always present at a particular location. The switch detects traffic to and from the user
periodically, so the user identity is never aged out. The user's role at this location
remains the same as the role determined by identity manager when the user was
detected at this location for the first time.
A network administrator might want to refresh a role for the following reasons:
• The user's LDAP attributes have changed. For example, the user's job title is changed
from Engineer to Manager or his department is changed from Engineering to
Marketing.
• The administrator has created a new role, which is more applicable to the user than
his previous role. For example, the user was initially placed under the Engineer role
because his department was Engineering, and now a new role called Test Engineer
is a better match that considers both the user’s department and title.
For both of the above situations, a role refresh triggers a role evaluation that would
not otherwise occur as long as the user remains active at the current location. If the
role refresh finds an LDAP user-defined role that matches the identity being refreshed,
the identity manager queries the LDAP server to update the attributes provided by the
LDAP server.
Note
The Identity Manager role-based VLAN feature will not be enabled on Netlogin
enabled ports.
IP address, so we recommend that you use the default mac selection to install ACLs for
network entities based on the source MAC address.
• To change the configuration for the access-list source-address type, use the
following command:
configure identity-management access-list source-address [mac | ip]
Note
You must disable identity management to change the current access-list
source-address type configuration.
By default, the identity's MAC address is used for applying the dynamic
ACLs and policies. The dynamic ACLs or policies that are associated to roles
should not have any source MAC address specified because the identity
management feature will dynamically insert the identity's MAC address
as the source MAC address. Similarly, if the ACL source address type is
configured as ip, the dynamic ACLs or policies that are associated to roles
should not have any source IP address specified.
disable identity-management
Identity manager does not detect and create identities for FDB blackhole and static
entries.
Note
When the identity management feature is first enabled, the FDB entries
previously learned on identity-management enabled ports are flushed.
• To disable SNMP traps for identity management, use the following command:
disable snmp traps identity-management
Note
For additional information on the stale-entry aging time and how it can be
automatically adjusted by the software, see the command description for
the above command.
• To set the stale-entry aging time to the default value, use the following command:
unconfigure identity-management stale-entry aging-time
Configuring List-Precedence
• To configure or reset list-precedence, use the following commands:
configure identity-management list-precedence listname1 listname2
listname3
Note
We recommend that you enable CPU DoS protect in combination with this
feature to make sure the CPU is not flooded with mirrored Kerberos packets
in the event of a DoS attack on Kerberos TCP/UDP ports. If the rate limiting
capability is leveraged on capable platforms, it is applied on CPU mirrored
packets.
Note
Kerberos identities are not detected when both server and client ports are
added to identity management.
Note
Identity management supports configuration of up to 20 Kerberos servers.
Note
The default value for this command is none, which means that an identity
discovered through Kerberos snooping is removed immediately on the
aging out of the identity MAC address by the FDB manager.
To add or delete a rule or policy from a role, use the following commands:
In previous releases, identity manager supported up to eight LDAP servers which are
assumed to be replicas on the same domain (default base-dn). From the 15.2 release,
identity manager supports multiple Windows domains.
In 15.2, identity manager can service users under different domains. You can configure
different domains and add different LDAP servers for these different domains. When
adding an LDAP server to identity manager, you can specify the domain under which
the server is to be added.
• You can configure a base-dn and a bind user for each domain.
• Base-dn is assumed to be the same as the domain name unless explicitly configured
otherwise. (Base-dn is the LDAP directory under which the users are to be searched.)
• For users upgrading from older configurations, the base-dn configured on an older
version now becomes the default domain name. This can be changed later if
required.
• For users upgrading from older configurations, the LDAP servers configured on older
versions are now servers under the default domain.
• You can now add up to eight LDAP servers to each of the user-configured domains.
LDAP Connections
Identity manager tries to maintain LDAP connections with one of the servers in each
of the configured domains. LDAP queries for users logging on to those domains will
be sent to the respective servers or to a server on the default domain if the user does
not fall under any configured domain. The LDAP server might choose to close the
connection after a timeout.
LDAP Process
Identity manager tries to bind to one of the configured LDAP servers in each of the
user-configured domains.
When a new user is detected, the user’s domain is used to determine the LDAP server
to be contacted for the user’s details.
If there is a match, the LDAP server corresponding to that domain is chosen and the
LDAP search request for the user attributes is sent to that LDAP server.
If the domain does not match any of the configured domains, LDAP query is sent to a
server in the default domain.
clear counters
This feature now provides the administrator an option to enable/disable the detection
of the identities that are triggered through any of the above protocols. The
administrator can now control the identity detection through any of the protocol
triggers at port level. This configuration can be applied to identity management-
enabled ports only. An error is received if this configuration is applied to identity
management-disabled ports.
As part of this feature, the limitation of FDB entries getting cleared on enabling identity
management on a port is removed. The identity mangement module will retrieve the
FDB entries learned on the identity management-enabled ports and create the identity
accordingly.
Note
All types of Netlogin identity will not be detected if the netlogin detection is
disabled.
Enabling Kerberos identity detection does not create identities for previously
authenticated clients.
show identity-management
Displaying Statistics
• To display operating statistics for the identity management feature, use the
following command:
show identity-management statistics
• To clear the statistics counters for the identity management feature, enter either of
the following commands:
clear counters
clear counters identity-management
General
Security is a term that covers several different aspects of network use and operation.
One general type of security is control of the devices or users that can access the
network. Ways of doing this include authenticating the user at the point of logging
in, controlling access by defining limits on certain types of traffic, or protecting the
operation of the switch itself. Security measures in this last category include routing
policies that can limit the visibility of parts of the network or denial of service protection
that prevents the CPU from being overloaded. Another general type of security is
data integrity and confidentiality, which is provided by the MACsec protocol. Finally,
management functions for the switch can be protected from unauthorized use. This
type of protection uses various types of user authentication.
Security Modes
For information on ExtremeXOS security modes, see Security Mode Overview on page
1084.
Security Features
ExtremeXOS has enhanced security features designed to protect, rapidly detect, and
correct anomalies in your network. Extreme Networks products incorporate a number
of features designed to enhance the security of your network while resolving issues
with minimal network disruption. No one feature can ensure security, but by using
a number of features in concert, you can substantially improve the security of your
network.
The following list provides a brief overview of some of the available security features:
• ACL (Access Control List)s—ACLs are policy files used by the ACL application to
perform packet filtering and forwarding decisions on incoming traffic and packets.
Each packet arriving on an ingress port is compared to the ACL applied to that port
and is either permitted or denied.
For more information about using ACLs to control and limit network access, see
ACLs on page 779.
• CLEAR-Flow—CLEAR-Flow inspects Layer 2 and Layer 3 packets, isolates suspicious
traffic, and enforces policy-based mitigation actions. Policy-based mitigation actions
include the switch taking an immediate, predetermined action or sending a copy of
the traffic off-switch for analysis.
For more information about DoS attacks and DoS protection, see Denial of Service
Protection on page 1138.
• Network Login—Controls the admission of user packets and access rights thereby
preventing unauthorized access to the network. Network login is controlled on a per
port basis. When network login is enabled on a port in a VLAN (Virtual LAN), that
port does not forward any packets until authentication takes place. Network login is
capable of three types of authentication: web-based, MAC-based, and 802.1X.
For more information about network login, see Network Login on page 893.
• Policy Files—Text files that contain a series of rule entries describing match
conditions and actions to take. Policy files are used by both routing protocol
applications (routing policies) and the ACL application (ACLs).
For more information about policy files, see Routing Policies on page 848.
• Routing Policies—Policy files used by routing protocol applications to control the
advertisement, reception, and use of routing information by the switch. By using
policies, a set of routes can be selectively permitted or denied based on their
attributes for advertisements in the routing domain. Routing policies can be used to
“hide” entire networks or to trust only specific sources for routes or ranges of routes.
For more information about using routing policies to control and limit network
access, see .
• sFlow—A technology designed to monitor network traffic by using a statistical
sampling of packets received on each port. sFlow also uses IP headers to gather
information about the network. By gathering statistics about the network, sFlow
becomes an early warning system, notifying you when there is a spike in traffic
activity. Upon analysis, common response mechanisms include applying an ACL,
changing QoS (Quality of Service) parameters, or modifying VLAN settings.
For more information about MACsec, see MAC Security with Pre-shared Key
Authentication on page 1108.
Secure Mode
Secure mode only works in SSH. As per this mode, only strong ciphers and Message
Authentication Codes (MACs) are allowed in SSH server and SSH client connections.
After enabling secure-mode:
• For communication, SSH server uses a new secure-mode list made each for ciphers
and MACs.
• For the SSH client, EPM is notified to change the bit dedicated to SSH secure-mode,
which hides the weak ciphers and MACs from SSH client CLI commands.
Applications
Only SSH is uses this mode.
FIPS, in the context of ExtremeXOS, refers to the specific standard 140-2, System
Requirements for Cryptographic Modules. The publication series was issued to
coordinate the requirements and standards for cryptographic modules that include
both hardware and software components. Protection of a cryptographic module within
a security system is necessary to maintain the confidentiality and integrity of the
information protected by the module. This standard specifies the security requirements
that are satisfied by a cryptographic module. The standard provides four increasing,
qualitative levels of security intended to cover a wide range of potential applications
and environments. The security requirements cover areas related to the secure design
and implementation of a cryptographic module.
The US Government requirements break down FIPS 140-2 into two distinct categories:
FIPS 140-2 Certified and FIPS 140-2 Compliant. Compliant is needed when only network
management data is encrypted or decrypted, which typically includes SSH, SNMPv3,
etc. When the product encrypts and decrypts user data this changes the requirement
to FIPS 140-2 Certified. An example of a product that would require FIPS 140-2
certification is wireless, since user data is encrypted and decrypted as it flows across
the radio waves.
Note
Digital Signature Algorithm (DSA) is not supported in FIPS mode. After turning
on FIPS mode, you need to generate a new SSH host key.
Applications
SSH, SNMP, AAA, NTP, and EMS use this mode.
1. Secure mode
2. FIPS mode
3. Default mode
Example: If for SSH, FIPS mode and Secure Mode are both enabled, Secure mode takes
precedence over FIPS mode.
After you connect to the console port of the switch, or after you run unconfigure
switch {all} or run provisioning, you can change management access to your
device to enhance security.
2. You are prompted to select your network operating system: Switch Engine (default)
or Fabric Engine:
• For Switch Engine, type N.
• For Fabric Engine, type y.
3. Type y (to disable) or n (to enable ) auto-provisioning.
By default, Auto-Provisioning uses DHCP on all Ethernet ports as this switch
attempts to connect to an Extreme Networks management product.
Instead of using DHCP, do you want to 'disable auto-provision' and
configure a static IP address, default gateway and DNS server now? [y/N/q]: y
Select y to be prompted for a port to use for management, an IP address and subnet
mask length, an optional default gateway IP address, a DNS name server and DNS
domain suffix.
4. Type y (to disable) or n (to enable ) MSTP (Multiple Spanning Tree Protocol).
The switch offers an enhanced security mode. Would you like to read more,
and have the choice to enable this enhanced security mode? [y/N/q]:
If you select "yes," enhanced security mode is enabled. Go to step 10 on page 1089.
6. If you select "no," you are prompted to disable Telnet:
Telnet is enabled by default. Telnet is unencrypted and has been the target of
security exploits in the past.
SNMPv3 user ‘admin’ was created with authentication protocol SHA and privacy protocol
AES-128.
MAC Security
The switch maintains a database of all media access control (MAC) addresses received
on all of its ports.
The switch uses the information in this database to decide whether a frame should be
forwarded or filtered. MAC security (formerly known as MAC address security) allows
you to control the way the FDB (forwarding database) is learned and populated. For
more information, see FDB on page 645.
Note
You can either limit dynamic MAC FDB entries or lockdown the current MAC
FDB entries, but not both.
• Set a timer on the learned addresses that limits the length of time the learned
addresses will be maintained if the devices are disconnected or become inactive. For
more information, see MAC Address Lockdown with Timeout on page 1103.
Note
When limit-learning is configured in the port which is also associated with
some other vlan where learning is disabled, then few packets with new MAC
address beyond learning limit will get flooded. This flooding will take place
for fraction of second until new black-hole entry is created in hardware.
• Use ACLS to prioritize or stop packet flows based on the source MAC address of the
ingress virtual LAN (VLAN) or the destination MAC address of the egress VLAN. For
more information about ACL policies, see Security on page 1082.
• Enhance security, depending on your network configuration, by disabling Layer 2
flooding. For more information about enabling and disabling Layer 2 flooding, see
Managing Egress Flooding on page 653.
MAC Locking
MAC locking helps prevent unauthorized access to the network by limiting access
based on a device’s MAC address. MAC locking enables the binding of specific MAC
addresses to specific ports on a switch. MAC locking locks a port to one or more
MAC addresses, preventing connection of unauthorized devices via a port. With MAC
locking enabled, the only frames forwarded on a MAC locked port are those with the
configured or dynamically selected MAC addresses for that port.
Frames received on a port with a Source MAC address not bound to the port are
discarded or optionally allowed to dynamically bind to the port, up to a user-controlled
maximum number of MAC addresses per port.
• Static MAC locking - Locking one or more specified MAC addresses to a port.
• First Arrival MAC locking - Locking one or more MAC addresses to a port based on first
arrival of received frames after First Arrival MAC locking is enabled. The configuration
specifies the maximum number of end users that will be allowed. As each new end
user is identified, it is MAC locked up to the maximum number of users. Once the
maximum number of users has been MAC locked, all other users will be denied access
to the port until a MAC locked address is either aged, if aging is configured, or the
session for that user ends.
The MAC locking feature is disabled in the device, by default. MAC locking must be
enabled both globally and on port level. Once enabled, ports can be configured for
static and First Arrival MAC locking.
Existing limit learning and lock learning features are supported on a port-VLAN
combination. The MAC locking feature implemented in ExtremeXOS 15.7 supports MAC
locking functionality on a port basis.
Dynamic locking may be disabled by setting the maximum number of First Arrival MAC
addresses to zero.
Controls are provided per port to convert all current first arrival entries to static entries.
This converts only the first arrival MAC bindings to static bindings. This is not to be
confused with MAC locking where all dynamic FDB entries are converted to static
permanent locked FDB entries and further learning is disabled. Controls are provided
to clear current (both static and dynamic) bindings. Each port is configurable to
support the aging of dynamically locked bindings.
The device keeps a record of the number of MAC locked stations and when the
configured threshold is reached, a threshold SNMP trap/notification and/or a log
message is issued based on the per-port configuration. The Source MAC Address of
the frame causing the last invalid attempt is also recorded. In the event that the device
is so configured, a violation SNMP Trap/ Notification and/or a violation log message is
issued – these controls will be exercised per port.
To enable or disable the MAC locking feature, use the following commands:
• enable mac-locking
• disable mac-locking
To configure first arrival MAC locking on a port, use the following command:
• configure mac-locking ports port_list first-arrival limit-learning
learn_limit
When the configured limit is reached, no further entries are learnt. However, if the
learnt entries are aged out, new MAC addresses can be learned.
By default, Aging is disabled for first arrival MAC locking entries on a configured port.
When the FDB entries are aged out, they are removed from the FDB, but they are
retained in the MAC locking table. So when the first arrival limit is reached, only those
entries in the MAC locking table can be learned again if these devices start sending out
traffic. Any new MAC addresses cannot be learned.
The maximum number of dynamic MAC addresses that can be locked on a port is 600.
Note
There is no command to unconfigure first arrival or static MAC locking limit.
The value can be reset giving the default learn limit specified in the help text.
When First arrival MAC locking is configured to a value that is lower than the
number of MACs that are locked, all the MAC locking bindings on the port are
cleared.
When the configured limit is reached, no further entries are learned (either black holed
or not further learned depending on the configured action). However, if the learned
entries are cleared or deleted, new MAC addresses can be created and learned. The
maximum number of MAC addresses that will be locked on a port configured for static
MAC locking is 64. Aging is not applicable for the static MAC locking entries.
Note
There is no command to unconfigure first arrival or static MAC locking limit.
The value can be reset giving the default learn limit specified in the help text.
CLI doesn’t allow changing the static MAC locking limit value to a value lower
than the number of MACs locked in the MAC lock station table. Some or all of
the created MAC locking stations should be removed to change the limit to a
lower value.
Note
Assume that port 2:22 is enabled for MAC Locking. The maximum static entry
limit value is configured to 5 on port 2:22. If the user wants to configure the
maximum static entry limit value to 3,
Scenario A:
Legend:
Limit Action Cfg - If port should be disabled when learnt limit is exceeded
* Slot-1 DUT1.95 #
Error: Static limit-learning value cannot be reduced to 3 for port 2:22 as 5 static
stations are already created.
* Slot-1 DUT1.97 #
Scenario B:
Port MAC Trap Log FA Limit Link Max Max Last Violating
----- ---- -------- -------- ----- -------- ------ --- --- -----------------
Legend:
Limit Action Cfg - If port should be disabled when learnt limit is exceeded
Port MAC Trap Log FA Limit Link Max Max Last Violating
----- ---- -------- -------- ----- -------- ------ --- --- -----------------
Legend:
Limit Action Cfg - If port should be disabled when learned limit is exceeded
To create a static MAC locking entry (also known as MAC locking station) and enable
or disable MAC locking for the specific MAC address and port, use the following
command:
Note
A static MAC locking station is enabled by default.
To disable the static MAC locking station, use the following command.
When created and enabled, a static MAC lock configuration allows only the end station
designated by the MAC address to participate in forwarding of traffic.
The disabled entries are also counted when calculating the total number of locked
stations. Static MAC locking stations that are disabled are only shown in “show mac-
locking stations static” command. When “static” keyword is not given in “show mac-
locking stations”, the disabled entries are not shown.
To enable or disable first arrival MAC address aging, use the following command.
This is applicable only to MAC addresses locked by first-arrival locking and not to MAC
addresses locked by static locking.
When First arrival aging is disabled, MAC locking stations are retained even when the
corresponding FDB entry ages out.
When First arrival aging is enabled, MAC locking station starts aging when all the FDB
entries corresponding to the station MAC are removed. MAC lock stations do not start
aging when FDB entries are present.
Note
First arrival Aging – Age out time for First Arrival MAC locking station is same as
FDB aging time that is configured using configure fdb agingtime.
To move all current first-arrival MACs to static entries on a port, use the following
command:
This command converts dynamic MAC locked stations to static MAC locked stations.
There is no change to FDB entries.
The static MAC locked station entries are saved in configuration and so are preserved
across reboots.
Note
Ensure the static limit can accommodate the entries before moving them from
to static. Otherwise, the device may throw the following error: Error: Some
dynamic stations could not be converted to static stations for
port <port_list>.
Note
An FDB entry created from the CLI will not be removed when a static MAC
lock station is created and disabled for the corresponding MAC address. It is
necessary to delete the FDB entry from the CLI. MAC-Locking does not remove
user created FDB entries.
To manage the behavior of first arrival MAC locking on link state change, use the
following command.
When the link goes down, by default, all the first arrival MAC locking addresses will be
removed. When link-down-action is configured to “retain-macs”, the first arrival MAC
locking addresses will be retained even when the link goes down.
This command is used to configure the disabling of ports when the configured MAC
threshold is met. This is used for both “first arrival” and “static” MAC locking methods.
The port is disabled when the configured MAC threshold is met. All the FDB entries
learned on this port are flushed as the port is disabled. This configuration can be reset
using the clear mac-locking disabled-state ports port_list command. When
MAC locking is disabled on the port, the port comes back up.
This command is used to return the behavior of first arrival MAC locking with link state
change to its default value of enabled.
To delete MAC locking for all static MAC address or the specified static MAC address on
the given port, use the following command:
The following command is used to clear MAC locking station entries for the given
parameters:
Note
Clearing static MAC locking stations will remove them from the configuration.
The cleared static MAC locking stations will not be saved across reboots.
This command is used to display the status of MAC locking on one or more ports.
Note
In MLAG, the mac-locking entries shown in this command's output are only
natively learned FDB entries on the switch.
If port is not specified, MAC locking status will be displayed for all ports.
Sample output:
Port MAC Trap Log FA Limit Link Max Max Last Violating
Lock Thr|Viol Thr|Viol Aging Action Down Stc FA MAC Address
Stat Cfg|Stat Action
----- ---- -------- -------- ----- -------- ------ --- --- -----------------
1:1 dis off|off off|off dis ena|ena clear 64 600 00:00:00:00:00:00
1:2 dis off|off off|off dis ena|ena clear 64 600 00:00:00:00:00:00
1:3 dis off|off off|off dis ena|ena clear 64 600 00:00:00:00:00:00
1:4 dis off|off off|off dis ena|ena clear 64 600 00:00:00:00:00:00
1:5 dis off|off off|off dis ena|ena clear 64 600 00:00:00:00:00:00
Legend:
Stat - Status Thr|Viol - Threshold | Violation
Max Stc - Max Static Count Max FA - Max First-Arrival Count
dis - Disabled ena - Enabled
retain - Retain MACs clear - Clear MACs
Limit Action Cfg - If port should be disabled when learnt limit is exceeded
dis - Port to be disabled when learn limit is exceeded
ena - Port to remain enabled when learn limit is exceeded
Limit Action Stat - Port status on exceeding learn limit
The following command displays MAC locking stations for different parameters:
The following command lines enable port 2:1 for a maximum of 3 static MAC address
entries. This is followed by four static MAC address creation entries. The fourth entry
fails because the maximum allowed has been set to 3.
The following commands configure ports 2:2 through 2:5 for dynamic MAC locking with
a maximum of 15 users on each port. This is followed by a line enabling MAC locking
trap messaging on ports 2:1 through 5:
Port MAC Trap Log FA Limit Link Max Max Last Violating
Lock Thr|Viol Thr|Viol Aging Action Down Stc FA MAC Address
Stat Cfg|Stat Action
----- ---- -------- -------- ----- -------- ------ --- --- -----------------
2:1 ena off|off off|off dis ena|ena clear 3 600 00:00:00:00:00:00
2:2 ena off|on off|off dis ena|ena clear 64 15 00:00:00:00:00:00
2:3 ena off|on off|off dis ena|ena clear 64 15 00:00:00:00:00:00
2:4 ena off|on off|off dis ena|ena clear 64 15 00:00:00:00:00:00
2:5 ena off|on off|off dis ena|ena clear 64 15 00:00:00:00:00:00
Legend:
Stat - Status Thr|Viol - Threshold | Violation
Max Stc - Max Static Count Max FA - Max First-Arrival Count
dis - Disabled ena - Enabled
retain - Retain MACs clear - Clear MACs
Limit Action Cfg - If port should be disabled when learnt limit is exceeded
dis - Port to be disabled when learn limit is exceeded
ena - Port to remain enabled when learn limit is exceeded
Limit Action Stat - Port status on exceeding learn limit
* Slot-1 Stack.15 #
After the FDB reaches the MAC limit, all new source MAC addresses are blackholed at
both the ingress and egress points. These dynamic blackhole entries prevent the MAC
addresses from learning and responding to ICMP (Internet Control Message Protocol)
and address resolution protocol (ARP) packets.
Note
Blackhole FDB entries added due to MAC security violations are removed
after each FDB aging period regardless of whether the MAC addresses in
question are still sending traffic. If the MAC addresses are still sending traffic,
the blackhole entries will be re-added after they have been deleted.
This command specifies the number of dynamically learned MAC entries allowed for
these ports in this VLAN. The range is 0 to 500,000 addresses.
When the learned limit is reached, all new source MAC addresses are blackholed at
the ingress and egress points. This prevents these MAC addresses from learning and
responding to ICMP and ARP packets.
Dynamically learned entries still get aged and can be cleared. If entries are cleared or
aged out after the learning limit has been reached, new entries will then be able to
be learned until the limit is reached again.
Permanent static and permanent dynamic entries can still be added and deleted
using the create fdb and disable flooding ports commands. These override
any dynamically learned entries.
For ports that have a learning limit in place, the following traffic still flows to the port:
◦ Packets destined for permanent MAC addresses and other non-blackholed MAC
addresses
◦ Broadcast traffic
◦ EDP (Extreme Discovery Protocol) traffic
Traffic from the permanent MAC and any other non-blackholed MAC addresses still
flows from the virtual port.
• To remove the learning limit, use the unlimited-learning option.
configure ports port_list {tagged tag} vlan vlan_name | vlan_list
[limit-learning number {action [blackhole | stop-learning]} | lock-
learning | unlimited-learning | unlock-learning]
The MAC limit-learning feature includes a stop-learning argument that protects the
switch from exhausting FDB resources with blackhole entries. When limit-learning
is configured with stop-learning, the switch is protected from exhausting FDB
resources by not creating blackhole entries. Any additional learning and forwarding
is prevented, but packet forwarding is not impacted for existing FDB entries.
This command displays the MAC security information for the specified VLAN.
show ports {mgmt | portlist} info {detail}
This command displays detailed information, including MAC security information, for
the specified port.
If a learning limit of three is set for that port, and you connect a fourth device to the
same port, the switch does not learn the MAC address of the new device; rather, the
switch blackholes the address.
Doing so prevents ESRP protocol data units (PDUs) from being dropped due to MAC
address limit settings.
This command causes all dynamic FDB entries associated with the specified VLAN
and ports to be converted to locked static entries. It also sets the learning limit to 0,
so that no new entries can be learned. All new source MAC addresses are blackholed.
Note
Blackhole FDB entries added due to MAC security violations are removed
after each FDB aging period regardless of whether the MAC addresses in
question are still sending traffic. If the MAC addresses are still sending traffic,
the blackhole entries will be re-added after they have been deleted.
Locked entries do not get aged, but can be deleted like a regular permanent entry.
For ports that have lock-down in effect, the following traffic still flows to the port:
◦ Packets destined for the permanent MAC and other non-blackholed MAC
addresses
◦ Broadcast traffic
◦ EDP traffic
◦ Traffic from the permanent MAC still flows from the virtual port.
• Remove MAC address lockdown, use the unlock-learning option.
configure ports port_list {tagged tag} vlan vlan_name | vlan_list
[limit-learning number {action [blackhole | stop-learning]} | lock-
learning | unlimited-learning | unlock-learning]
When you remove the lockdown using the unlock-learning option, the learning-limit
is reset to unlimited, and all associated entries in the FDB are flushed.
• Display the locked entries on the switch.
show fdb
Locked MAC address entries have the “l” flag.
Note
MAC address lockdown is not supported on NetLogin Dot1x non-policy mode.
When this feature is enabled on a port, MAC addresses learned on that port remain
locked for the MAC lockdown timeout duration corresponding to the port, even when
the port goes down. As a result, when a device is directly connected to the switch and
then disconnected, the MAC address corresponding to the device will be locked up for
the MAC lockdown timeout duration corresponding to that port. If the same device
reconnects to the port before the MAC lockdown timer expires and sends traffic, the
stored MAC address becomes active and the MAC lockdown timer is restarted. If the
device is not reconnected for the MAC lockdown timeout duration, the MAC entry is
removed.
MAC lockdown timeout entries are dynamically learned by the switch, which means
these entries are not saved or restored during a switch reboot. If the switch reboots, the
local MAC entry table is empty, and the switch needs to relearn the MAC addresses.
MAC address lockdown with timeout is configured by individual ports. The lockdown
timer and address learning limits are configured separately for a port.
Note
You cannot enable the lockdown timeout feature on a port that already has
MAC address lockdown enabled. For more information about MAC address
lockdown, see MAC Address Lockdown on page 1102.
MAC address learning limits and the lockdown timer work together in the following
ways:
• When the learning limit has been reached on a port, a new device attempting to
connect to the port has its MAC address blackholed.
• As long as the timer is still running for a MAC entry, a new device cannot connect in
place of the device that entry represents. That is, if a device has disconnected from a
port, a new device cannot replace it until the lockdown timer for the first device has
expired. This condition is true if the limit on the port is set to 1 or if the limit (greater
than 1) on the port has been reached.
• If a learning limit is already configured on a port when you enable the lockdown
timeout feature, the configured limit will continue to apply. Existing blackholed
entries are therefore not affected. If you enable this feature on a port with no
configured learning limit, the default maximum learning limit (unlimited learning)
is used.
When each device starts sending traffic, the source MAC address of the device is
learned and FDB entries are created. The MAC lockdown timer is set at 100 seconds.
As long as a device continues to send traffic, the MAC entry for that device is refreshed,
and the MAC lockdown timer corresponding to the MAC entry is refreshed.
Therefore, as long as the device is active, the timer does not expire. The traffic can be
continuous or can occur in bursts within the MAC lockdown timeout duration for the
port.
In this example, Device A starts sending traffic. When the MAC address of Device A is
learned and added to the FDB, the MAC lockdown timer is started for this entry.
Device A stops sending traffic and resumes sending traffic after 50 seconds have
elapsed. At this point the MAC entry for Device A is refreshed and the MAC lockdown
timer is restarted.
When a device stops sending traffic and does not resume within the MAC lockdown
timer interval for the port, the MAC lockdown timer expires, and the MAC entry is
removed from the FDB.
In this example, Devices A, B, and C start sending traffic. As each MAC address is
learned, the MAC lockdown timer is started for each entry.
Device A stops sending traffic; Devices B and C continue sending traffic. After 100
seconds, the MAC lockdown timer for the Device A entry is removed from the FDB.
Because Devices B and C have continued to send traffic, their MAC entries continue to
be refreshed and their MAC lockdown timers continue to be restarted.
When Device A starts sending traffic, the source MAC address is learned on the port,
the FDB entry is created, and the MAC lockdown timer is started for the entry. The MAC
lockdown timer is set at 3,000 seconds.
Disconnecting a Device
In this example, Device A is disconnected from the port, triggering a port-down action.
The MAC entry for Device A is removed from the hardware FDB; however, the MAC
entry for the device is maintained in the software. The MAC lockdown timer for this
entry starts when the port goes down.
After 3,000 seconds, the MAC entry for Device A is removed from the software.
When Device A is disconnected from the port, the resulting port-down action causes
the MAC entry for Device A to be removed from the hardware FDB.
The MAC entry in software is maintained, and the MAC lockdown timer is started for
the port.
After only 1,000 seconds have elapsed, Device A is reconnected to the same port and
starts sending traffic. A MAC entry is created in the hardware FDB, and the MAC
lockdown timer is restarted for the MAC entry in the software.
If Device A is reconnected but does not send any traffic for 3,000 seconds, no MAC entry
is created in the hardware FDB, and the MAC lockdown timer will expire after reaching
3,000 seconds.
In this example, a MAC learning limit of 1 has also been configured on the ports in
addition to the MAC lockdown timer of 3000 seconds.
When Device A is disconnected, the resulting port-down action removes the MAC entry
for Device A from the hardware FDB. The MAC entry for Device A is maintained in the
software, and the MAC lockdown timer for this entry is restarted when the port goes
down.
After 1000 seconds, a different device is connected to the same port and starts sending
traffic. Because the MAC learning limit is set to 1 and the MAC lockdown timer is still
running, the MAC address of the new device is not learned. Instead, the new MAC
address is blackholed in the hardware.
When the MAC lockdown timer for Device A expires, its MAC entry is removed from
the software. If the new device is still connected to the same port and sends traffic, the
MAC address for the new device is learned and added to the FDB. The MAC lockdown
timer for the new device is started, and the blackhole entry that was created for this
device is deleted.
Port X has a MAC lockdown timer setting of 100 seconds, and port Y has a MAC
lockdown timer setting of 200 seconds.
After 50 seconds, Device A is disconnected from port X and connected to port Y where
it begins sending traffic. When Device A starts sending traffic on port Y, the existing
MAC entry for Device A is refreshed, and port X in the entry is replaced with port Y. At
the same time, the MAC lockdown timer for the entry is restarted for a duration of 200
seconds (the configured MAC lockdown timer setting for port Y).
Output from this command also lists the aging time of the port.
Overview
MACsec is configured on a per-port basis to protect point-to-point links between
switches. Mutual authentication is achieved by provisioning the same set of credentials
(pre-shared key) on each end of a link.
Prior to authentication, all port traffic is blocked. After authentication, all port traffic is
protected by the GCM-AES-128 cipher suite by default, or optionally, by GCM-AES-256.
MACsec operates at Layer 2 and is therefore protocol agnostic, encrypting everything
it passes. Because encryption takes place at the hardware level, line-rate traffic passes
with low latency, but due to additional MACsec headers, some throughput drop occurs.
MACsec operates on a hop-by-hop basis, allowing for deep packet inspection.
Note
The following table lists the switches/ports that support the optional GCM-
AES-256 cipher.
Note
When MACsec is enabled, every protected packet is prefixed with an 8-byte
(include-sci disable) or 16-byte (include-sci enable) SecTAG and suffixed with
a 16-byte Integrity Check Value (ICV). If the average packet size on a port is
small, then these 24 to 32 extra bytes per packet have a non-trivial impact
on throughput. This is a function of the protocol, and is not a factor of this
implementation.
Note
MACsec-enabled port mirroring for egress traffic is not supported on 5420
switches.
Note
MACSec between customer edges over L2VPN is supported on untagged
access ports.
• MACsec is only configurable using CLI commands. There is no SNMP access to the
two MACsec MIBs defined by IEEE: IEEE8021X-PAE-MIB and IEEE8021-SECY-MIB.
• MACsec is not supported on ports with stacking enabled.
• MACsec is not supported on Extended Edge Switching ports.
• Hot swapping LRM/MACsec Adapters is not supported. MACsec must be disabled
before hot swapping.
• The LRM/MACsec Adapters cannot be connected across slots on a stack.
• The 5320 and 5720 switches use their native MACsec. MACsec is not supported on an
LRM/MACsec Adapter when connected to this switch.
• On the 5720 switch, corresponding 5720-VIM-6YE port groups need to be configured
to 3x10G partition to support an LRM/MACsec Adapter and 10G-LRM optics.
Platform Ports
ExtremeSwitching 5320 All ports of all models, except 5320-24T-4X-XT,
and except stacking ports.
ExtremeSwitching 5420 All ports of all models except stacking ports.
ExtremeSwitching 5520 All ports, except 5520-VIM-4X and 5520-24X 10G
ports
ExtremeSwitching 5720 All ports of all models except stacking ports.
Extreme 7520-48YE-8CE All front-panel ports.
Note
The MACsec feature requires the installation of the MAC Security feature pack
license.
Note
When an LRM/MACsec adapter is connected to 5320 or 5720 switch, MACsec
will be provided by the native switch port rather than by the adapter.
Note
On 5420 and 5320 switches, when OnePolicy is enabled, the MACsec link may
fail due to the unavailability of ACL resources. The only way to overcome this
is to reduce the number of ACLs reserved by Policy by using the configure
policy resource-profile default profile-modifier command.
1. Install a MACsec license key (if one is not already installed) by using the following
command:
Note
ExtremeSwitching Universal switches natively support MACsec and do not
require an adapter.
2. Create a connectivity-association (CA) object that holds MACSec authentication data
(secure connection association key (CAK) and secure connection association key
name (CKN) pair, which makes up the PSK on each port enabled for MKA by using
the following command:
The replay protection feature provides for the dropping of out-of-order packets
received on a port. The window size is set to 0 by default, meaning any packet
received out-of-order is dropped. Setting the window size to non-zero sets the
range of sequence numbers that are tolerated, to allow receipt of packets that have
been misordered by the network. If replay protection is disabled, packet sequence
numbers are not checked and out-of-order packets are not dropped.
4. Optionally, configure a port's priority for becoming a key server by using the
following command:
Note
Universal Switches support both GCM-AES-128 and GCM-AES-256 cipher
natively on all ports except for Universal ports U1 and U2.
7. Enable MACsec authentication on the desired ports by using the following
command:
Use the ca_name set up in Step 2 on page 1110, use the enable option, and designate
the port(s).
Important
After enabling MACsec, if you change the actor priority, replay protection
window, mka life-time, or include-SCI flag, you must run the configure
macsec initialize ports port_list afterward. Otherwise, the change is
not accepted.
To reset the MACsec Key Agreement protocol state machine on one or more ports, use
the following command:
Issuing this command resets the MKA state machine, which in turn deletes any secured
channels and their secure association keys (SAKs). This command is also used to apply
MACsec configuration changes (mka actor-priority, include-sci, replay-protect, mka life-
time) to an already enabled port. All traffic is blocked until MKA renegotiates a new set
of keys and those keys are installed. For more information, see IEEE802.1X-2010 Clause
12.9.3 Initialization.
show macsec
To display a global summary of MACsec capabilities and status for all or a specified CA,
use the following command:
To display per-port MKA and MACsec data in tabular format, use the following
command:
To display configuration, status, and statistics for both MKA and MACsec, use the
following command:
To display the number of ports that have MACsec enabled and the maximum number
of ports allowed per slot, use the following command:
To display the transmitted and dropped packets for each MACsec engine, use the
following command:
show port {mgmt |port_list | tag tag} information {detail} using the detail
option.
E = Enabled.
2. Verify that the link is up before MACsec is enabled.
show ports {port_list | tag tag} {no-refresh | refresh}
A = Active.
3. Verify MACsec license is installed.
show licenses {[slot slot |all]} {detail}
# show license
Enabled License Level:
Advanced Edge
Enabled Feature Packs:
MACsec
6. Verify MACsec Key Agreement PDUs (MKPDUs) are being transmitted and received.
show macsec ports port-list usage
Note
If a warning message in the log indicates that LRM/MACsec adapter port
firmware is out-of-date:
<Warn:HAL.Port.Warning> LRM/MACsec Adapter port firmware on port 2:16 is out of
date, do 'install firmware lrm-macsec-adapter' to update.
use the following command to update the firmware:
install firmware {{force} {slot slot_number} | lrm-macsec-adapter
ports [port_list | all]}
Note
If MACsec link flap periodically occurs, try to increase "mka life-time". This
solution works best with lower-end switches.
DHCP Server
ExtremeXOS has DHCP (Dynamic Host Configuration Protocol) support.
After ExtremeXOS DHCP server assigns the IP addresses to the clients, the entry is not
removed until a DHCP release is received by the client. After the lease timer expires, the
entry appears in the expired state. If the DHCP server enabled port goes down or the
DHCP server is disabled on the port, the entries are not removed from the DHCP server
table. Also, if the client computer moved to another VLAN, the entries are not removed
until the lease timer expires.
For example:
Slot-1 Stack.32 # show dhcp-server
VLAN "v1":
DHCP Address Range : 1.1.1.100->1.1.1.200
Netlogin Lease Timer : Not configured (Default = 10 seconds)
DHCP Lease Timer : 100 seconds
Default Gateway : 1.1.1.1
Primary DNS Server : 12.1.2.1
Ports DHCP Enabled : 2:24
===========================================================================
IP MAC State Lease Time Left
===========================================================================
1.1.1.100 00:0c:29:11:e2:c1 Assigned 0000:01:14
1.1.1.101 00:0c:29:11:e2:a3 Assigned 0000:01:08
===========================================================================
IP MAC State Lease Time Left
===========================================================================
1.1.1.100 00:0c:29:11:e2:c1 Assigned 0000:01:06
1.1.1.101 00:0c:29:11:e2:a3 Assigned 0000:01:00
1.1.1.102 00:0c:29:11:e2:ad Assigned 0000:01:06
1.1.1.103 00:0c:29:11:e2:b7 Assigned 0000:01:13
Slot-1 Stack.34 # show dhcp-server
VLAN "v1":
DHCP Address Range : 1.1.1.100->1.1.1.200
Netlogin Lease Timer : Not configured (Default = 10 seconds)
DHCP Lease Timer : 100 seconds
Default Gateway : 1.1.1.1
Primary DNS Server : 12.1.2.1
Ports DHCP Enabled : 2:24
===========================================================================
IP MAC State Lease Time Left
===========================================================================
1.1.1.100 00:0c:29:11:e2:c1 Expired 0000:00:00
1.1.1.101 00:0c:29:11:e2:a3 Expired 0000:00:00
1.1.1.102 00:0c:29:11:e2:ad Expired 0000:00:00
1.1.1.103 00:0c:29:11:e2:b7 Expired 0000:00:00
The entries can be cleared by using the command: clear vlan v1 dhcp-address-
allocation all
Note
Configuring both the DHCP server and the DHCP client on the same VLAN and
the same ports is not recommended.
The parameters available to configure include the IP address range, IP address lease,
and multiple DHCP options. Until ExtremeXOS 15.1, the DHCP server had a limited set
of known DHCP options it could send out on request, i.e., Default Gateway, DNS, and
WINS server(s). General option support has been added in ExtremeXOS 15.2. This allows
you to add support for any option needed, with no ExtremeXOS code changes. The
three options mentioned above can also be overwritten to support a larger number of
servers, if needed. This feature allows the switch administrator to add an option based
on DHCP option code value, and support various was of setting the value.
1. Configure the range of IP addresses assigned by the DHCP server using the
command:
configure vlan vlan_name dhcp-address-range ipaddress1 - ipaddress2
2. Remove the address range information using the command:
unconfigure vlan vlan_name dhcp-address-range
3. Set how long the IP address lease assigned by the server exists using the command:
configure vlan vlan_name dhcp-lease-timer lease-timer
Note
The ExtremeXOS DHCP server allows the configuration of a DHCP lease
timer value greater than two seconds only. The timer value range is 3–
4294967295. If the DHCP lease timer is not configured, the ExtremeXOS
DHCP server offers an IP address with the default lease time of 7200
seconds.
Note
Maximum number of DHCP leases supported by the ExtremeXOS DHCP
server is limited by the number of VLANs and IP address range configured
on that VLAN, and there is no hardware/software limit for the DHCP leases.
Note
The maximum number of DHCP servers supported by ExtremeXOS is
limited by the number of VLANs the ExtremeXOS switch supports.
4. To set the generic DHCP option code, default gateway, Domain Name Servers (DNS)
addresses, or Windows Internet Naming Service (WINS) server, use the following
command:
configure {vlan} vlan_name dhcp-options [code option_number [16-bit
value1 {value2 {value3 {value4}}} | 32-bit value1 {value2 {value3
{value4}}} | flag [on | off] | hex string_value | ipaddress ipaddress1
{ipaddress2 {ipaddress3 {ipaddress4}}} | string string_value] |
default-gateway | dns-server {primary | secondary} | wins-server]
ipaddress
5. To remove the generic DHCP option code, default gateway, DNS server addresses,
and WINS server information for a particular VLAN, use the following command:
unconfigure {vlan} vlan_name dhcp-options {[ default-gateway | dns-
server {primary | secondary} | wins-server]}
6. Remove all the DHCP information for a particular VLAN using the command:
unconfigure vlan vlan_name dhcp
You can clear the DHCP address allocation table selected entries, or all entries.
7. Clear entries using the command:
clear vlan vlan_name dhcp-address-allocation [[all {offered | assigned
| declined | expired}] | ipaddress]
You would use this command to troubleshoot IP address allocation on the VLAN.
IP Security
This section describes a collection of IP security features implemented in ExtremeXOS
software.
If you configure any of the features described in this section, you can enhance your
network security by controlling which hosts are granted or not granted access to your
network.
Figure 121 displays the dependencies of IP security. Any feature that appears directly
above another feature depends on it. For example, to configure ARP validation, you
must configure DHCP snooping and trusted DHCP server.
Note
IP security features are supported on link aggregation ports with the exception
of DHCP snooping with the block-mac option and source IP lockdown. You
can enable IP security on pre-existing trunks, but you cannot make IP security-
enabled ports into trunks without first disabling IP security.
The DHCP bindings database contains the IP address, MAC Address, VLAN ID, and port
number of the untrusted interface or client. If the switch receives a DHCP ACK message
and the IP address does not exist in the DHCP bindings database, the switch creates an
entry in the DHCP bindings database. If the switch receives a DHCP RELEASE, NAK or
DECLINE message and the IP address exists in the DHCP bindings database, the switch
removes the entry.
You can enable DHCP snooping on a per port, per VLAN basis and trusted DHCP server
on a per-vlan basis. If configured for DHCP snooping, the switch snoops DHCP packets
on the indicated ports and builds a DHCP bindings database of IP address and MAC
address bindings from the received packets. If configured for trusted DHCP server, the
switch forwards only DHCP packets from the trusted servers. The switch drops DHCP
packets from other DHCP snooping-enabled ports.
In addition, to prevent rogue DHCP servers from farming out IP addresses, you can
optionally configure a specific port or set of ports as trusted ports. Trusted ports do
not block traffic; rather, the switch forwards any DHCP server packets that appear
on trusted ports. When configured to do so, the switch drops packets from DHCP
snooping-enabled ports and causes one of the following user-configurable actions:
disables the port temporarily, disables the port permanently, blocks the violating MAC
address temporarily, blocks the violating MAC address permanently, and so on.
Note
When IP security DHCP snooping is enabled on a VLAN, if ports are removed
from the VLAN, the IP security snooping configuration is removed. If ports are
added back to the VLAN, you must manually enable the IP security snooping
configuration again. This is true for both plain and LAG ports.
Also, if LAG is unconfigured, the IP security configuration is removed for those
ports.
Also, if a new port is added to a VLAN that has IP security snooping enabled on
it already for other ports, you must manually enable IP security snooping again
for the new added port. IP security commands are not automatically applied to
added ports to a VLAN. They must be manually configured again.
Note
Beginning with version 32.5, the functionality of the option port all in the
commands enable ip-security dhcp-snooping dynamic vlan ports all
violation-action drop-packet or enable ip-security dhcp-snooping
vlan v2 ports all violation-action drop-packet is enhanced to cover
all the _future_ member ports of a VLAN or _future_ VLANs.
If the port is dynamically removed or added by any module, for example
Netlogin or ONEPolicy, the ports all option enables IP-security snooping on
the ports corresponding to the VLAN it adds.
Note
Snooping IP fragmented DHCP packets is not supported.
The violation action setting determines what action(s) the switch takes when a
rogue DHCP server packet is seen on an untrusted port or the IP address of the
originating server is not among those of the configured trusted DHCP servers.
The DHCP server packets are DHCP OFFER, ACK and NAK. The following list
describes the violation actions:
block-mac
The switch automatically generates an ACL to block the MAC address on that
port. The switch does not blackhole that MAC address in the FDB. The switch can
either temporarily or permanently block the MAC address.
block-port
The switch blocks all traffic on that port by disabling the port either temporarily
or permanently.
none
The switch takes no action to drop the rogue DHCP packet or block the port, and
so on. In this case, DHCP snooping continues to build and manage the DHCP
bindings database and DHCP forwarding will continue in hardware as before.
This option can be used when the intent is only to monitor the IP addresses
being assigned by the DHCP server.
Note
You must enable DHCP snooping on both the DHCP server port as well
as on the client port. The latter ensures that DHCP client packets (DHCP
Request, DHCP Release etc.) are processed appropriately.
Note
DHCP snooping does not work when the client and server are in different
VRs and server reachability is established by inter-VR leaked routes on client
VR.
Note
Enabling DHCP snooping and source IP lockdown on the same port applies
ACL rules with the same match conditions, but different actions. The rule
with deny action takes precedence, so packets are dropped if the these
ACL rules are installed on different slices. Many factors influence which slice
rules are installed on. To see which slice these rules are installed on, use
the command show access-list usage acl-slice port port or show
access-list usage acl-rule port port .
Any violation that occurs causes the switch to generate an EMS log message. You
can configure to suppress the log messages by configuring EMS log filters. For more
information about EMS, see Using the Event Management System/Logging on page
549.
• To disable DHCP snooping on the switch, use the command:
disable ip-security dhcp-snooping [dynamic | {vlan} vlan_name] ports
[all | ports]
If you configure one or more trusted ports, the switch assumes that all DHCP server
packets on the trusted port are valid. You can configure a maximum of eight trusted
DHCP servers per VLAN on the switch.
For more information about configuring trusted ports, see Configuring Trusted
DHCP Ports on page 1120.
• Delete a trusted DHCP server using the command:
configure trusted-servers [dynamic vlan_id |vlan vlan_name] delete
server ip_address trust-for dhcp-server
--------------------------------------------
Vlan: dhcpVlan
--------------------------------------------
Server Client
IP Addr MAC Addr Port Port
------- -------- ------ ------
172.16.100.9 00:90:27:c6:b7:65 1:1 1:2
Note
This will also clear out any associated source IP lockdown and DHCP
secured ARP entries.
The DHCP relay agent option feature inserts a piece of information, called option 82,
into any DHCP request packet that is to be relayed by the switch. Similarly, if a DHCP
reply received by the switch contains a valid relay agent option, the option will be
stripped from the packet before it is relayed to the client. This is a Layer 2 option that
functions only when the switch is not configured as a Layer 3 BOOTP relay.
The Agent remote ID sub-option always contains the Ethernet MAC address of the
relaying switch. You can display the Ethernet MAC address of the switch by issuing the
show switch command.
To enable the DHCP relay agent option at Layer 2, use the following command:
configure ip-security dhcp-snooping information option
Note
When DHCP relay is configured in a DHCP snooping environment, the relay
agent IP address should be configured as the trusted server.
To disable the DHCP relay agent option, use the following command:
unconfigure ip-security dhcp-snooping information option
In some instances, a DHCP server may not properly handle a DHCP request packet
containing a relay agent option.
To prevent DHCP reply packets with invalid or missing relay agent options from being
forwarded to the client, use the following command:
configure ip-security dhcp-snooping information check
A DHCP relay agent may receive a client DHCP packet that has been forwarded from
another relay agent.
If this relayed packet already contains a relay agent option, then the switch will handle
this packet according to the configured DHCP relay agent option policy. The possible
actions are to replace the option information, to keep the information, or to drop
packets containing option 82 information. To configure this policy, use the following
command:
configure ip-security dhcp-snooping information policy [drop | keep |
replace]
The Layer 2 relay agent option allows you to configure the circuit ID on a VLAN or port
basis., the Circuit-ID can contain a variable length (up to 32 bytes long) ASCII string with
the following format:
<VLAN Info>-<Port Info>
If the configuration of either VLAN Info or Port Info causes the total string length of
<VLAN Info>-<Port Info> to exceed 32 bytes, then it is truncated to 32 bytes. The string is
not NULL terminated, since the total circuit ID length is being specified.
For a DHCP client packet ingressing on a VLAN with the VLAN ID equal to 200 and the
ingress port at 3:5, the following are true:
• When neither VLAN Info or Port Info is specified, circuit ID value is = 200-3005
• When VLAN Info is configured to SomeInfo and Port Info is not specified, the circuit
ID value is SomeInfo-3005
• When VLAN Info is not specified and Port Info is configured to User1, the circuit ID
value is 200-User1
• When VLAN Info is configured to SomeInfo and Port Info to User1, the circuit ID value
is SomeInfo-User1
When not explicitly configured for a VLAN, VLAN Info defaults to the ASCII string
representation of the ingress VLAN ID. To configure the circuit ID on a VLAN, use the
following command:
When not explicitly configured for a port, port info defaults to the ASCII representation
of the ingress port’s SNMP ifIndex. To configure the port information portion of the
circuit-ID, use the following command:
configure ip-security dhcp-snooping information circuit-id port-
information port_info port port
To unconfigure the port information portion of the circuit-ID, use the following
command:
unconfigure ip-security dhcp-snooping information circuit-id port-
information ports [port_list | all]
Note
When this feature is enabled, all DHCP traffic must be forwarded in slowpath
only, which means that this feature functions only in the context of IP Security
and only on interfaces where DHCP snooping is enabled in enforcement
(violation-action of ‘drop’) mode. In other words, with DHCP snooping not
configured with a violation-action of ‘none’ (which is pure monitoring mode).
You can specify the storage details of the DHCP binding database. Use the following
commands to specify the DHCP binding database location, filename, write-interval,
and write threshold limits:
You can upload the DHCP binding database periodically by enabling the DHCP binding
restoration. Binding write intervals occur in minutes, 5 to 1440 (24 hours). The default is
30 minutes.
Upload the latest DHCP binding database using the upload command:
You can also upload the DHCP binding database by the number of DHCP entries (the
write-threshold is 25 to 200).
The periodic backup of the DHCP binding database can be disabled using the
following command:
Note
There is no command to unconfigure the DHCP binding storage server
details. To disable the DHCP binding storage server details, use the preceding
command.
For information about configuring option 82 at Layer 3, see Configuring the DHCP
Relay Agent Option (Option 82) at Layer 3 on page 1587.
Note
When configuring static DHCP binding entries, DHCP binding restoration
needs to be configured.
Note: The full Circuit ID string has the form '<Vlan Info>-<Port Info>'
* switch
Source IP Lockdown
Another type of IP security prevents IP address spoofing by automatically placing
source IP address filters on specified ports. This feature, called source IP lockdown,
allows only traffic from a valid DHCP-assigned address obtained by a DHCP snooping-
enabled port to enter the network. In this way, the network is protected from attacks
that use random source addresses for their traffic. With source IP lockdown enabled,
end systems that have a DHCP address assigned by a trusted DHCP server can access
the network, but traffic from others, including those with static IP addresses, is dropped
at the switch.
Source IP lockdown is linked to the “DHCP snooping” feature. The same DHCP bindings
database created when you enable DHCP snooping is also used by source IP lockdown
to create ACLs that permit traffic from DHCP clients. All other traffic is dropped. In
addition, the DHCP snooping violation action setting determines what action(s) the
switch takes when a rogue DHCP server packet is seen on an untrusted port.
When source IP lockdown is enabled on a port, a default ACL is created to deny all IP
traffic on that port. Then an ACL is created to permit DHCP traffic on specified ports.
Each time source IP lockdown is enabled on another port, the switch creates ACLs to
allow DHCP packets and to deny all IP traffic for that particular port.
Source IP lockdown is enabled on a per-port basis; it is not available at the VLAN level. If
source IP lockdown is enabled on a port, the feature is active on the port for all VLANs
to which the port belongs.
Note
The source IP lockdown feature works only when hosts are assigned IP address
using DHCP; source IP lockdown does not function for statically configured IP
addresses.
Note
Source IP lockdown cannot be enabled on Load sharing ports.
The source IP lockdown ACLs listed in table are applied per port (in order of precedence
from highest to lowest).
The counter has the same name as that of the rule of the catch-all ACL, so the counter
is also named esSrcIpLockdown_<portIfIndex>_4.
You must enable source IP lockdown on the ports connected to the DHCP client, not
on the ports connected to the DHCP server.
Note
Enabling DHCP snooping and source IP lockdown on the same port applies
ACL rules with the same match conditions, but different actions. The rule with
deny action takes precedence, so packets are dropped if the these ACL rules
are installed on different slices. Many factors influence which slice rules are
installed on. To see which slice these rules are installed on, use the command
show access-list usage acl-slice port port or show access-list
usage acl-rule port port .
ARP Learning
The address resolution protocol (ARP) is part of the TCP/IP suite used to dynamically
associate a device’s physical address (MAC address) with its logical address (IP address).
The switch broadcasts an ARP request that contains the IP address, and the device
with that IP address sends back its MAC address so that traffic can be transmitted
across the network. The switch maintains an ARP table (also known as an ARP cache)
that displays each MAC address and its corresponding IP address.
By default, the switch builds its ARP table by tracking ARP requests and replies, which
is known as ARP learning. You can disable ARP learning so that the only entries in
the ARP table are either manually added or those created by DHCP secured ARP; the
switch does not add entries by tracking ARP requests and replies. By disabling ARP
learning and adding a permanent entry or configuring DHCP secured ARP, you can
centrally manage and allocate client IP addresses and prevent duplicate IP addresses
from interrupting network operation.
For more detailed information about this command and IP routing, see IPv4 Unicast
Routing on page 1546.
Another method available to populate the ARP table is DHCP secured ARP. DHCP
secured ARP requires that ARP entries be added to or deleted from the ARP table
only when the DHCP server assigns or re-assigns an IP address. These entries are
known as a secure ARP entry. If configured, the switch adds the MAC address and
its corresponding IP address to the ARP table as a permanent ARP entry. Regardless
of other ARP requests and replies seen by the switch, the switch does not update
secure ARP entries. DHCP secured ARP is linked to the “DHCP snooping” feature. The
same DHCP bindings database created when you enabled DHCP snooping is also used
by DHCP secured ARP to create secure ARP entries. The switch only removes secure
ARP entries when the corresponding DHCP entry is removed from the trusted DHCP
bindings database.
Note
If you enable DHCP secured ARP on the switch without disabling ARP learning,
ARP learning continues which allows insecure entries to be added to the ARP
table.
Note
You must enable DHCP secured ARP on the DHCP server, as well as on the
client ports. DHCP snooping must also be enabled on both the server and
client ports.
Port Learn-from
----------------------------------
2:1 ARP
2:2 DHCP
2:3 ARP
2:4 None
2:5 ARP
2:6 ARP
2:7 ARP
2:8 ARP
• View the ARP table, including permanent and DHCP secured ARP entries using the
command:
show iparp {ip_address | mac | vlan {vlan_name | vlan_list} |
permanent} {vr vr_name}
Note
DHCP secured ARP entries are stored as static entries in the ARP table.
In a properly configured network, there is no ARP reply for a gratuitous ARP request.
However, if another host in the network is configured with the same IP address as
the source host, then the source host receives an ARP reply.
• Announce that an IP address has moved or bonded to a new network interface card
(NIC).
If you change a system NIC, the MAC address to its IP address mapping also
changes. When you reboot the host, it sends an ARP request packet for its own
IP address. All of the hosts in the network receive and process this packet. Each host
updates their old mapping in the ARP table with this new mapping
• Notify a Layer 2 switch that a host has moved from one port to another port.
However, hosts can launch man-in-the-middle attacks by sending out gratuitous ARP
requests for the router's IP address. This results in hosts sending their router traffic to
the attacker, and the attacker forwarding that data to the router. This allows passwords,
keys, and other information to be intercepted.
To protect against this type of attack, the router sends out its own gratuitous ARP
request to override the attacker whenever a gratuitous ARP request broadcast packet
with the router's IP address as the source is received on the network.
If you enable both DHCP secured ARP and gratuitous ARP protection, the switch
protects its own IP address and those of the hosts that appear as secure entries in
the ARP table.
When enabled, the switch generates gratuitous ARP packets when it receives a
gratuitous ARP request where either of the following is true:
• The sender IP is the same as the switch VLAN IP address and the sender MAC
address is not the switch MAC address.
• The sender IP is the same as the IP of a static entry in the ARP table and the sender
MAC address is not the static entry's MAC address.
When the switch generates an ARP packet, the switch generates logs and traps.
• Enable gratuitous ARP protection using the command:
enable ip-security arp gratuitous-protection [dynamic | {vlan} all |
vlan_name]
• In addition, to protect the IP addresses of the hosts that appear as secure entries
in the ARP table, use the following commands to enable DHCP snooping, DHCP
secured ARP, and gratuitous ARP on the switch:
enable ip-security dhcp-snooping [dynamic | {vlan} vlan_name] ports
[all | ports] violation-action [drop-packet {[block-mac | block-port]
[duration duration_in_seconds | permanently] | none]}] {snmp-trap}
enable ip-security arp learning learn-from-dhcp {vlan} vlan_name ports
[all | ports]
enable ip-security arp gratuitous-protection {vlan} [all | vlan_name]
• Disable gratuitous ARP protection using the command:
disable ip-security arp gratuitous-protection [dynamic | {vlan}
vlan_name |all ]
• In ExtremeXOS 11.5 and earlier, you enable gratuitous ARP protection using the
following command:
enable iparp gratuitous protect vlan vlan-name
• In ExtremeXOS11.5 and earlier, you disable gratuitous ARP protection with the
following command:
disable iparp gratuitous protect vlan vlan-name
ARP Validation
ARP validation is also linked to the “DHCP snooping” feature. The same DHCP bindings
database created when you enabled DHCP snooping is also used to validate ARP
entries arriving on the specified ports.
Validation Option ARP Request Packet Type ARP Response Packet Type
DHCP Source IP is not present in the
DHCP snooping database OR
is present but Source Hardware
Address doesn't match the MAC
in the DHCP bindings entry.
IP Source IP == Mcast OR Source IP == Mcast OR
Target IP == Mcast OR Target IP == Mcast
Source IP is not present
in the DHCP snooping
database OR
Source IP exists in the
DHCP bindings database but
Source Hardware Address
doesn't match the MAC in
the DHCP bindings entry.
Source-MAC Ethernet source MAC does Ethernet source MAC does not
not match the Source match the Source Hardware
Hardware Address. Address.
Destination-MAC Ethernet destination MAC does
not match the Target Hardware
Address.
Depending on the options specified when enabling ARP validation, the following
validations are done. Note that the 'DHCP' option does not have to be specified
explicitly, it is always implied when ARP validation is enabled.
EMS log message. You can configure to suppress the log messages by configuring
EMS log filters. For more information about EMS, see the section Using the Event
Management System/Logging on page 549.
• Disable ARP validation using the command:
disable ip-security arp validation [dynamic | {vlan} vlan_name] [all |
ports]
----------------------------------------------------------------
Port Validation Violation-action
----------------------------------------------------------------
7 DHCP drop-packet, block-port for 120 seconds, snmp-trap
23 DHCP drop-packet, block-port for 120 seconds, snmp-trap
The RADIUS user configuration attributes for VLAN settings can specify a single VLAN
or a range of VLANs for each setting request. The RADIUS user configuration attributes,
which request the settings, include:
• Fabric-Attach-Service-Request += "DAI:<vid>[-<vid>]"
• Fabric-Attach-Service-Request += "DHCPSNOOP:<vid>[-<vid>]"
This FA-Service-Request attribute contains a DHCP Snoop and ARP Validation enable
status for VLAN. When a new user is authenticated by netlogin, the new attributes of
the DHCP Snoop and ARP Validation enable is given to netlogin. Netlogin will process
and send the attribute message to the IP Security module as "enable". If all users are
unauthenticated by netlogin, a disable message for the VLAN will be sent to IP Security.
RADIUS configuration is applicable for both static and dynamic VLANs.
disable DHCP snoop for a port or changing violation action) will be ignored, but
the configuration will be saved. Once the RADIUS configuration is disabled, CLI
configuration will be applied. The following tables summarize the various DHCP snoop
configuration actions with respect to ExtremeXOS CLI and RADIUS configurations. The
same configuration actions are also applicable for ARP Validation.
The following command equivalencies exist for RADIUS configurations received for a
VLAN:
allows IP security to share the data or state required for its features, and to exhibit
identical behavior in the MLAG topology.
Note
DHCP security for MLAG controlling bridges is also supported in VPEX and
W-MLAG topologies.
MLAG Checkpointing
After Inter-Switch Connection (ISC) connectivity between the MLAG peers is
established, IP security begins checkpointing DHCP snooping and DHCP or ARP
violation actions. As long as MLAG peers have ISC connectivity, addition and deletion of
entries/data will be checkpointed. The checkpoint is only done for MLAG ports.
Using the previous configuration example, once a DHCP ACK is received, Peer1 creates
a new DHCP snoop entry into its DHCP binding table, with the server port as 11, the
client port as 10, and checkpoints the entry to Peer2. On receiving the checkpoint entry,
Peer2 adds the entry to its DHCP binding table with the server port as 22 (ISC port) and
the client port as 20 (FDB lookup port).
(instead of 300 seconds). This ensures both Peer1 and Peer2 removes or unblocks the
violation action at the same time.
Tip
With BPE ports, the violation action is also checkpointed and applied in the
peer.
In its simplest form, a DoS attack is indistinguishable from normal heavy traffic. There
are some operations in any switch or router that are more costly than others, and
although normal traffic is not a problem, exception traffic must be handled by the
switch’s CPU in software.
Note
DoS protection is not supported for IPv6.
Some packets that the switch processes in the CPU software include:
• Traffic resulting from new MAC learning.
Note
When certain features such as Network Login are enabled, hardware
learning is disabled to let software control new MAC learning.
• Routing and control protocols including ICMP, BGP (Border Gateway Protocol), OSPF
(Open Shortest Path First), STP, EAPS (Extreme Automatic Protection Switching),
ESRP, etc.
• Switch management traffic (switch access by Telnet, SSH, HTTP, SNMP, etc.)
• Other packets directed to the switch that must be discarded by the CPU
If any one of these functions is overwhelmed, the CPU may be too busy to service other
functions and switch performance will suffer. Even with very fast CPUs, there will always
be ways to overwhelm the CPU with packets that require costly processing.
still occurring, it will be re-enabled. With the ACL in place, the CPU will have the cycles
to process legitimate traffic and continue other services.
Note
User-created ACLs take precedence over the automatically applied DoS protect
ACLs.
You can also specify some ports as trusted ports, so that DoS protection is not applied
to those ports.
This mode is useful to gather information about normal traffic levels on the switch.
This will assist in configuring denial of service protection so that legitimate traffic is
not blocked.
The following topics describe how to configure DoS protection, including alert
thresholds, notify thresholds, ACL expiration time, and so on.
After enabling DoS protection, the switch will count the packets handled by the CPU
and periodically evaluate whether to send a notification and/or create an ACL to
block offending traffic.
You can configure a number of the values used by DoS protection if the default
values are not appropriate for your situation.
The protocol checkers allow users to drop the packets based on the following
conditions, which are checked for ingress packets prior to the L2/L3 entry table:
• SIP = DIP for IPv4/IPv6 packets.
• TCP_SYN Flag = 0 for IPv4/IPv6 packets
• TCP Packets with control flags = 0 and sequence number = 0 for IPv4/IPv6 packets
• TCP Packets with FIN, URG & PSH bits set & seq. number = 0 for IPv4/IPv6 packets
• TCP Packets with SYN & FIN bits are set for IPv4/IPv6 packets
• TCP Source Port number = TCP Destination Port number for IPv4/IPv6 packets
• First TCP fragment does not have the full TCP header (less than 20 bytes) for IPv4/
IPv6 packets
• TCP header has fragment offset value as 1 for IPv4/IPv6 packets
• UDP Source Port number = UDP Destination Port number for IPv4/IPv6 packets
• ICMP ping packets payload is larger than programmed value of ICMPmax size for
IPv4/IPv6 packets
• Fragmented ICMP packets for IPv4/IPv6 packets
Note
ExtremeXOS switches implement rate limiting granularity at millisecond
intervals. The traffic bursts are monitored at millisecond intervals and the
actions are performed within sub-seconds (when applicable). When the
switch evaluates the traffic pattern for bursts against the configured value in
pps, the value is calibrated on a per-millisecond interval. For example, using
the configure port 1 rate-limit flood broadcast1000 command
would be equivalent to 1 packet per millisecond.
A TACACS+ server allows you to centralize the authentication database, so that you
do not have to maintain a separate local database on each switch. TACACS+ servers
provide the following services:
• Username and password authentication
• Command authorization (the TACACS+ server validates whether the user is
authorized to execute each command within the subset of commands, based on
login privilege level)
Note
Command usage that should be restricted for a user account by TACACS
with CLI authorization enabled may not occur when users are logged in by
Chalet or when using the XML API directly.
Note
You can use a local database on each switch as a backup authentication
service if the TACACS+ service is unavailable. When the TACACS+ service is
operating, privileges defined on the TACACS+ server take precedence over
privileges configured in the local database.
Note
• TACACS+ provides many of the same features provided by RADIUS
(Remote Authentication Dial In User Service), but enabling both RADIUS
and TACACS+ at the same time is not supported for Management User
Authentication.
• RADIUS can be used for both Switch Management User Authentication as
well as Network Login user/device authentication, while TACACS+ can be
used only for Management User Authentication.
Note
The switch allows local authentication when the client IP is excluded in
TACACS+ server by default. To disallow local authentication when the client IP
is excluded in TACACS+ server the local authentication disallow option should
be used.
Note
Version 32.6 adds support for configuration of TACACS+ IPv6 server.
For information on installing, configuring, and managing a TACACS+ server, see the
product documentation for that server.
The following describes how to configure the ExtremeXOS TACACS+ client component
in the ExtremeXOS software: Configuring the TACACS+ Client for Authentication and
Authorization on page 1143.
Note
The command disable tacacs is not required while changing TACACS+
servers.
If only a single TACACS+ server is configured, you must disable TACACS authorization
(if enabled) before reconfiguring TACACS+ server:
disable tacacs-authorization
Note
After this step, TACACS+ will failover to secondary server.
Note
Only after configuring shared-secret password for primary server, TACACS+
will fallback to primary server from secondary.
4. Unconfigure existing secondary TACACS+ server:
To detect and recover from a TACACS+ server failure when the timeout has expired,
the switch makes one authentication attempt before trying the next designated
TACACS+ server or reverting to the local database for authentication. In the event
that the switch still has IP connectivity to the TACACS+ server, but a TCP session
cannot be established, (such as a failed TACACS+ daemon on the server), fail over
happens immediately regardless of the configured timeout value.
For example, if the timeout value is set for three seconds (the default value), it will
take three seconds to fail over from the primary TACACS+ server to the secondary
TACACS+ server. If both the primary and the secondary servers fail or are unavailable,
it takes approximately six seconds to revert to the local database for authentication.
To configure the shared secret for a primary TACACS+ server, specify primary. To
configure the shared secret for a secondary TACACS+ server, specify secondary.
Do not use the encrypted keyword to set the shared secret. The encrypted keyword
prevents the display of the shared secret in the show configuration command
output.
with the TACACS+ server, so authentication must take place through the another
service such as the local database or a RADIUS server.
Note
You cannot use RADIUS and TACACS+ at the same time.
• To enable the TACACS+ client service, use the following command: enable tacacs
• To disable the TACACS+ client service, use the following command: disable tacacs
To require that the priv-lvl is set to allow authentication, use the following command:
All other client configuration features use the default settings as described Configuring
the TACACS+ Client for Authentication and Authorization on page 1143 or in the
Switch Engine Command References.
configure tacacs primary server 10.201.31.238 client-ip 10.201.31.85 vr "VR-Default"
configure tacacs primary shared-secret purple
configure tacacs secondary server 10.201.31.235 client-ip 10.201.31.85 vr "VR-Default"
configure tacacs secondary shared-secret purple
enable tacacs
To display the TACACS+ client configuration, use the show tacacs command. Below is
sample output from this command:
TACACS+: enabled
TACACS+ Authorization: disabled
TACACS+ Accounting : disabled
To detect and recover from a TACACS+ accounting server failure when the timeout
has expired, the switch makes one authentication attempt before trying the
next designated TACACS+ accounting server or reverting to the local database
for authentication. In the event that the switch still has IP connectivity to the
TACACS+ accounting server, but a TCP session cannot be established, (such as a
failed TACACS+ daemon on the accounting server), failover happens immediately
regardless of the configured timeout value. If the user does not have a local account
or the user is disabled locally, the user’s login will fail.
For example, if the timeout value is set for three seconds (the default value), it
takes three seconds to failover from the primary TACACS+ accounting server to
the secondary TACACS+ accounting server. If both the primary and the secondary
servers fail or are unavailable, it takes approximately six seconds to revert to the local
database for authentication.
Do not use the encrypted keyword to set the shared secret. The encrypted keyword
prevents the display of the shared secret in the show configuration command
output.
All other client configuration features use the default settings as described Configuring
the TACACS+ Client for Authentication and Authorization on page 1143 or in the
Switch Engine Command References.
configure tacacs-accounting primary server 10.201.31.238 client-ip 10.201.31.85 vr "VR-
Default"
configure tacacs-accounting primary shared-secret purple
configure tacacs-accounting secondary server 10.201.31.235 client-ip 10.201.31.85 vr "VR-
Default"
config tacacs-accounting secondary shared-secret purple
enable tacacs-accounting
To display the TACACS+ client accounting configuration, use the show tacacs or the
show tacacs-accounting command. The following is sample output from the show
tacacs command:
TACACS+: enabled
TACACS+ Authorization: enabled
TACACS+ Accounting : enabled
TACACS+ Server Connect Timeout sec: 3
Primary TACACS+ Server:
Server name :
IP address : 10.201.31.238
Server IP Port: 49
Client address: 10.201.31.85 (VR-Default)
Shared secret : purple
Secondary TACACS+ Server:
Server name :
IP address : 10.201.31.235
Server IP Port: 49
Client address: 10.201.31.85 (VR-Default)
Shared secret : purple
TACACS+ Acct Server Connect Timeout sec: 3
Primary TACACS+ Accounting Server:
Server name :
IP address : 10.201.31.238
Server IP Port: 49
Client address: 10.201.31.85 (VR-Default)
Shared secret : purple
Secondary TACACS+ Accounting Server:
Server name :
IP address : 10.201.31.235
Server IP Port: 49
Client address: 10.201.31.85 (VR-Default)
Shared secret : purple
Note
Command usage that should be restricted for a user account by RADIUS
with CLI authorization may not occur when users are logged in by Chalet or
when using the XML API directly.
Note
You can use a local database on each switch as a backup authentication
service if the RADIUS service is unavailable. When the RADIUS service is
operating, privileges defined on the RADIUS server take precedence over
privileges configured in the local database.
Note
RADIUS provides many of the same features provided by TACACS+. You cannot
use RADIUS and TACACS+ at the same time.
RADIUS is a communications protocol (RFC 2865) that is used between client and
server to implement the RADIUS service.
The RADIUS client component of the ExtremeXOS software should be compatible with
any RADIUS compliant server product.
Note
The switch allows local authentication when the client IP is excluded in
RADIUS server.
When a supplicant requests authentication from a switch that is configured for RADIUS
server authentication, the following events occur:
3. The RADIUS server accepts or rejects the authentication and returns a RADIUS
Access-Accept or Access-Reject message.
Note
A user rejected by the Radius/TACACS server can not be authenticated via
local database.
4. If authentication is accepted, the Access-Accept message can contain standard
RADIUS attributes and Vendor Specific Attributes (VSAs) that can be used to
configure the switch.
5. If authentication is accepted, the Access-Accept message can enable command
authorization for that user on the switch. Command authorization uses the RADIUS
server to approve or deny the execution of each command the user enters.
The ExtremeXOS switch initiates all communications with the RADIUS server. For basic
authentication, the switch sends the Access-Request message, and communications
with the RADIUS server is complete when the switch receives the Access-Accept or
Access-Reject message. For command authorization, communications starts each time
a user configured for command authorization enters a switch command. RADIUS
server communications ends when command use is allowed or denied.
A key component of RADIUS server management is the attributes and VSAs that
the RADIUS server can be configured to send in Access-Accept messages. VSAs are
custom attributes for a specific vendor, such as Extreme Networks. These attributes
store information about a particular user and the configuration options available to
the user. The RADIUS client in ExtremeXOS accepts these attributes and uses them
to configure the switch in response to authentication events. The RADIUS server does
not process attributes; it simply sends them when authentication is accepted. It is the
switch that processes attributes.
User authentication and attributes are managed on a RADIUS server by editing text
files. On the FreeRADIUS server, the user ID, password, attributes, and VSAs are stored
in the users file, and VSAs are defined in the dictionary file. The dictionary file associates
numbers with each attribute. When you edit the users file, you specify the text version
of each attribute you define. When the RADIUS server sends attributes to the switch,
it sends the attribute type numbers to reduce the network load. Some attribute values
are sent as numbers too.
RADIUS servers can be optionally configured to work with directory services such
as LDAP or Microsoft Active Directory. Because ExtremeXOS switches operate with
RADIUS servers, they can benefit from the pairing of the RADIUS server and a directory
service. Some guidelines for configuring FreeRADIUS with LDAP are provided later
in this chapter. Since the use of the directory service requires configuration of the
RADIUS server and directory service, the appropriate documentation to follow is the
documentation for those products.
A RADIUS server allows you to centralize the authentication database, so that you do
not have to maintain a separate local database on each switch. RADIUS servers provide
the following services for network login sessions:
• Username and password authentication
• Standard RADIUS attributes and Extreme Networks VSAs that the switch can use for
dynamic configuration
• Accounting service (tracks authentication and authorization events)
Note
RADIUS provides many of the same features provided by TACACS+, but the
network login feature does not work with TACACS+.
Except for the above differences, network login authentication is the same as described
in How Extreme Switches Work with RADIUS Servers on page 1149.
Authentication
The RADIUS client software sends authentication requests using standard mechanisms
for PAP, CHAP (RFC 2865 (13)) and EAP (RFC 3579 (12)).
Note
The reason for using a combination of back-off and round-robin rather than
the standard back-off algorithm where all configured transmissions occur to
server 1 before transmitting to server 2 is to allow for more than one server to
be tried prior to 802.1x timeout when EAP authentication is occurring.
Consider three RADIUS servers: 1, 2 and 3 with the configurable number of retries set to
2 and where the prior session sent its initial request to server 1:
configurable timeout period. All servers are considered the same priority when using
this transmission algorithm with each server taking its turn receiving the initial
transmission.
Accounting
Accounting Start and Stop requests are sent for user sessions in accordance with RFC
2866 (7).
the servers are attempted before another server is attempted. If the initial server can
handle the entire accounting transmission load, then all transactions will go to that
server.
Note
Although this is the list of attributes that is supported by the RADIUS software,
usage of these attributes is dependent on the features provided by the system
as a whole.
Table Legend:
• PRQ—PAP Authentication Request
• CRQ—CHAP Authentication Request
• EARQ—EAP Authentication Request
• AC—Access Challenge
• AA—Access Accept
• AR—Access Reject
Table Legend:
• ASTA—Accounting Start Request
• ASTO—Accounting Stop Request
• AR—Accounting Response
Note
It is recommended to enable loopback mode on the VLAN associated with
RADIUS if the radius connectivity is established via a front panel port on a
SummitStack.
The default port value for authentication is 1812. The client IP address is the IP
address used by the RADIUS server for communicating back to the switch.
By default, switch management and network login use the same primary and
secondary RADIUS servers for authentication. To specify one pair of RADIUS servers
for switch management and another pair for network login, use the mgmt-access
and netlogin keywords.
If the timeout expires, another authentication attempt is made. After three failed
attempts to authenticate, the alternate server is used. After six failed attempts, local
user authentication is used. If the user does not have a local account or the user is
disabled locally, the user’s login will fail.
If you do not specify the mgmt-access or netlogin keyword, the timeout interval
applies to both switch management and netlogin RADIUS servers.
To configure the shared secret for a primary RADIUS server, specify primary. To
configure the shared secret for a secondary RADIUS server, specify secondary.
If you do not specify the mgmt-access or netlogin keyword, the secret applies to
both the primary and secondary switch management and network login RADIUS
servers.
Do not use the encrypted keyword to set the shared secret. The encrypted keyword
prevents the display of the shared secret in the show configuration command
output.
Note
You cannot use RADIUS and TACACS+ at the same time.
The default port value for accounting is 1813. The client IP address is the IP address
used by the RADIUS server for communicating back to the switch.
By default, switch management and network login use the same primary and
secondary RADIUS servers for accounting. To specify one pair of RADIUS accounting
servers for switch management and another pair for network login, use the mgmt-
access and netlogin keywords.
If you do not specify the mgmt-access or netlogin keywords, the secret applies to
both the primary and secondary switch management and network login RADIUS
accounting servers.
Do not use the encrypted keyword to set the shared secret. The encrypted keyword
prevents the display of the shared secret in the show configuration command
output.
Note
When configuring RADIUS/TACACS servers with the IP address received from
a DHCP server, the IP address should be reserved for the switch in the DHCP
server to avoid conflicts after rebooting.
For Extreme Networks switches, there are three types of users file entries:
• Session management entries
• Network login user entries
• Network login MAC address entries
Note
The “users” file is case-sensitive, and punctuation is very important for
FreeRADIUS.
eric
Cleartext-Password := "eric"
Service-Type = Administrative-User,
Extreme-CLI-Authorization = Enabled
The key components of the example above are the user name, password, service-type,
and Extreme-CLI-Authorization VSA. For simple authentication, you only need to enter
the user name ("eric" in this example) and a password as described in the RADIUS
server documentation.
Enter the attributes for each user and separate them from the others with commas as
described in the RADIUS server documentation.
The key components of the example above are the user name, password, attributes,
and Extreme Networks VSAs. For simple authentication, you only need to enter the
user name (Jim in this example) and a password as described in the RADIUS server
documentation.
Enter the attributes for each user and separate them from the others with commas as
described in the RADIUS server documentation.
00040D9D12AF
Auth-Type := Local,
Cleartext-Password == "00040D9D12AF"
Session-Timeout = 60,
Termination-Action = 1,
Extreme-Security-Profile = "user-auth LOGOFF-PROFILE=avaya remove;qos=\"QP1\";",
Extreme-Netlogin-Vlan = voice-avaya
The key components of the example above are the MAC address, password (which
is set to the MAC address), attributes, and Extreme Networks VSAs. For simple
authentication, you only need to enter the MAC address (00040D9D12AF in this
example) and a password as described in the RADIUS server documentation.
Enter the attributes for each user and separate them from the others with commas as
described in the RADIUS server documentation.
The software also accepts some standard RADIUS attributes in the Access-Accept
message that the RADIUS server sends to the switch after successful authentication.
The switch ignores attributes that it is not programmed to use.
Table 130 lists the standard RADIUS attributes used by the ExtremeXOS software.
Because no command line interface (CLI) commands are available to modify the
privilege level, access rights are determined when you log in. For a RADIUS server to
identify the administrative privileges of a user, Extreme Networks switches expect a
RADIUS server to transmit the Service-Type attribute in the Access-Accept packet, after
successfully authenticating the user.
These attributes must be configured on the RADIUS server along with the Extreme
Networks Vendor ID, which is 1916.
Table 131: VSA Definitions for Web-Based, MAC-Based, and 802.1X Network Login
VSA Attribut Format Sent-in Description
e Type
Extreme-CLI- 201 Integer Access- Specifies whether command
Authorization Accept authorization is to be enabled
or disabled for the user on the
ExtremeXOS switch.
Extreme- 203 String Access- Name of destination VLAN after
Netlogin-VLAN- Accept successful authentication (must
Name already exist on switch).
Extreme- 204 String Access- Destination web page after
Netlogin-URL Accept successful authentication.
Extreme- 205 String Access- Text description of network login
Netlogin-URL- Accept URL attribute.
Desc
Extreme- 206 Integer Access- Indication of whether the user can
Netlogin-Only Accept authenticate using other means,
such as telnet, console, SSH, or Vista.
A value of “1” (enabled) indicates
that the user can only authenticate
via network login. A value of “0”
(disabled) indicates that the user
can also authenticate via other
methods.
Extreme-User- 208 String
Location
Extreme- 209 Integer Access- ID of destination VLAN after
Netlogin-VLAN-ID Accept successful authentication (except
for dynamic VLANs, must already
exist on switch).
Extreme- 211 String Access- Name or ID of the destination VLAN
Netlogin- Accept after successful authentication
Extended-VLAN (must already exist on switch).
Table 131: VSA Definitions for Web-Based, MAC-Based, and 802.1X Network Login
(continued)
VSA Attribut Format Sent-in Description
e Type
EXTREME_VM_NA 213 String Access- Specifies the name of the VM that
ME Accept is being authenticated . Example:
MyVM1
EXTREME_VM_VP 214 String Access- Specifies the VPP to which the VM is
P_NAME Accept to be mapped. Example: nvpp1
EXTREME_VM_IP_ 215 String Access- Specifies the IP address of the VM .
ADDR Accept Example: 11.1.1.254
EXTREME_VM_CT 216 Integer Access- Specifies the ID or tag of the
ag Accept destination VLAN for the VM .
Example: 101
EXTREME_VM_VR 217 String Access- Specifies the VR in which the
_Name Accept destination VLAN is to be placed.
Example : UserVR1
The examples in the following sections are formatted for use in the FreeRADIUS users
file. If you use another RADIUS server, the format might be different.
Note
For information on how to use and configure your RADIUS server, refer to the
documentation that came with your RADIUS server.
For untagged VLAN movement with 802.1X netlogin, you can use all current
Extreme Networks VLAN VSAs: VSA 203, VSA 209, and VSA 211.
If command authorization is disabled, the user has full access to all CLI commands.
If command authorization is enabled, each command the user enters is accepted or
rejected based on the contents of the profiles file on the RADIUS server.
When added to the RADIUS users file, the following example enables command
authorization for the associated user:
When added to the RADIUS users file, the following example disables command
authorization for the associated user:
Extreme: Extreme-CLI-Authorization = disabled
This attribute specifies a destination VLAN name that the RADIUS server sends to the
switch after successful authentication.
The VLAN must already exist on the switch. When the switch receives the VSA, it adds
the authenticated user to the VLAN.
Because the RADIUS server can identify a target VLAN with multiple attributes, the
switch selects the appropriate VLAN or VLANs using the order:
• Extreme-Netlogin-Extended-VLAN (VSA 211)
• Extreme-Netlogin-VLAN-Name (VSA 203)
• Extreme-Netlogin-VLAN-ID (VSA 209)
• Tunnel-Private-Group-ID, but only if Tunnel-Type == VLAN(13) and Tunnel-Medium-
Type == 802 (6) (see Standard RADIUS Attributes Used by Extreme Switches on page
1164)
If none of the previously described attributes are present ISP mode is assumed, and the
client remains in the configured VLAN.
When added to the RADIUS users file, the following example specifies the destination
VLAN name, purple, for the associated user:
Extreme: Extreme-Netlogin-VLAN-Name = purple
The Extreme-NetLogin-Url attribute specifies a web page URL that the RADIUS server
sends to the switch after successful authentication. When the switch receives the
attribute in response to a web-based network login, the switch redirects the web client
to display the specified web page. If a login method other than web-based is used, the
switch ignores this attribute.
The following example specifies the redirection URL to use after successful
authentication.
The following example specifies a redirect description to send to the switch after
successful authentication:
Extreme: Netlogin-URL-Desc = "Authentication successful. Stand by for the home page."
When this attribute is assigned to a user and authentication is successful, the RADIUS
server sends the configured value back to the switch. The configured value is either
disabled or enabled.
The Extreme switch uses the value received from the RADIUS server to determine if the
authentication is valid. If the configured value is disabled, all normal authentication
processes are supported (Telnet and SSH, for example), so the switch accepts the
authentication. If the configured value is enabled, the switch verifies whether network
login was used for authentication. If network login was used for authentication, the
switch accepts the authentication. If an authentication method other than network
login was used, the switch rejects the authentication.
Add the following line to the RADIUS server users file for users who are not restricted to
network login authentication:
Extreme:Extreme-Netlogin-Only = Disabled
Add the following line to the RADIUS server users file for users who are restricted to
network login authentication:
Extreme:Extreme-Netlogin-Only = Enabled
To reduce the quantity of information sent to the switch, the RADIUS server sends
either a 1 for the enabled configuration or a 0 for the disabled configuration.
These values must be configured in the RADIUS dictionary file as shown in Configuring
the Dictionary File on page 1174.
This attribute specifies a destination VLAN ID (or VLAN tag) that the RADIUS server
sends to the switch after successful authentication.
The VLAN must already exist on the switch. When the switch receives the VSA, it adds
the authenticated user to the VLAN.
Because the RADIUS server can identify a target VLAN with multiple attributes, the
switch selects the appropriate VLAN or VLANs using the order:
• Extreme-Netlogin-Extended-VLAN (VSA 211)
• Extreme-Netlogin-VLAN-Name (VSA 203)
• Extreme-Netlogin-VLAN-ID (VSA 209)
• Tunnel-Private-Group-ID, but only if Tunnel-Type == VLAN(13) and Tunnel-Medium-
Type == 802 (6) (see Standard RADIUS Attributes Used by Extreme Switches on page
1164)
If none of the previously described attributes are present ISP mode is assumed, and the
client remains in the configured VLAN.
When added to the RADIUS users file, the following example specifies the destination
VLAN ID, 234, for the associated user:
Extreme:Extreme-Netlogin-VLAN-ID = 234
This attribute specifies one or more destination VLANs that the RADIUS server sends to
the switch after successful authentication.
You can specify VLANS by VLAN name or ID (tag). The VLANs may either already exist
on the switch or, if you have enabled dynamic VLANs and a non-existent VLAN tag is
given, the VLAN is created.
In cases where the client is already authenticated, if a single VLAN move fails from
a list of VLANs in the VSA and the move-fail-action is authenticate, then it is left
as-is. If the client is not already authenticated (first time authentication), then it is
authenticated on learnedOnVlan if possible. If move-fail-action is deny then the client
Note
If there is one or more invalid VLAN in the VSA, the supplicant is not
authenticated on any one of them.
For example, if the VSA is Uvoice;Tdata and the VLAN data does not have a tag or the
VLAN does not exist, then the port movement fails. Even if a single VLAN in the list
is invalid the entire list is discarded and the action taken is based on move-fail-action
configuration.
When added to the RADIUS users file, the following examples specify VLANs for the
switch to assign after authentication:
Extreme-Netlogin-Extended-VLAN = Tvoice (Tagged VLAN named voice)
Extreme-Netlogin-Extended-VLAN = Udata (Untagged VLAN named data)
Extreme-Netlogin-Extended-VLAN = *orange (VLAN named orange, tagging dependent on
incoming traffic)
Extreme-Netlogin-Extended-VLAN = T229 (Tagged VLAN with ID 229)
Extreme-Netlogin-Extended-VLAN = U4091 (Untagged VLAN with ID 4091)
Extreme-Netlogin-Extended-VLAN = *145 (VLAN with ID 145, tagging dependent on incoming
traffic)
in FreeRADIUS, a tagged VLAN voice and a tagged VLAN mktg would be configured as the
following:
Extreme-Netlogin-Extended-VLAN = "Tvoice;Tmktg;"
An untagged VLAN data and a tagged VLAN mktg is configured as the following:
Extreme-Netlogin-Extended-VLAN = "Udata;Tmktg;"
A tagged VLAN with VLAN ID 229 and a tagged VLAN with VLAN ID 227 is configured in
FreeRADIUS as the following:
Extreme-Netlogin-Extended-VLAN = "T229;T227;"
An untagged VLAN with VLAN ID 4091 and a tagged VLAN with VLAN ID 2001 is
configured as the following:
Extreme-Netlogin-Extended-VLAN = "U4091;T2001;"
This attribute specifies a profile name that the RADIUS server sends to the switch after
successful authentication. The switch uses this profile name to run a special type of
script called a profile. The profile is stored on the switch and can be used to modify
the switch configuration in response to authentication. Profiles are created using the
Universal Port feature, which is described in Universal Port on page 389.
When added to the RADIUS users file, the following example provides to the switch the
profile name p1, variable QOS=QP8, and variable LOGOFF-PROFILE=P2:
EXTREME-SECURITY-PROFILE= "p1 QOS=\"QP8\";LOGOFF-PROFILE=P2;"
This VSA is used in context with the Extreme Network Virtualization (XNV) feature,
especially with the NMS authentication of VMs. Use this VSA to specify the name of the
VM that is being authenticated. An example would be: MyVM1
This VSA is used in context with the XNV feature, especially with the NMS
authentication of VMs. Use this VSA to specify the VPP to which the VM is to be
mapped. An example would be: nvpp1
This VSA is used in context with the XNV feature, especially with the NMS
authentication of VMs. Use this VSA to specify the IP address of the VM. An example
would be: 11.1.1.254
This VSA corresponds to XNV with Dynamic VLANs. Use this VSA to specify the ID or tag
of the destination VLAN for the VM. An example would be: 101
This VSA corresponds to XNV with Dynamic VLANs. Use this VSA to specify the VR in
which the destination VLAN is to be placed. An example would be: UserVR1
On the FreeRADIUS server, you define the VSAs in the dictionary file in the /etc/raddb
directory. You must define the vendor ID for Extreme Networks, each of the VSAs you
plan to use, and the values to send for the VSAs. The following example shows the
entries to add to a FreeRADIUS server dictionary file for Extreme Networks VSAs:
VENDOR Extreme 1916
ATTRIBUTE Extreme-CLI-Authorization 201 integer Extreme
ATTRIBUTE Extreme-Shell-Command 202 string Extreme
ATTRIBUTE Extreme-Netlogin-Vlan 203 string Extreme
ATTRIBUTE Extreme-Netlogin-Url 204 string Extreme
ATTRIBUTE Extreme-Netlogin-Url-Desc 205 string Extreme
ATTRIBUTE Extreme-Netlogin-Only 206 integer Extreme
ATTRIBUTE Extreme-User-Location 208 string Extreme
ATTRIBUTE Extreme-Netlogin-Vlan-Tag 209 integer Extreme
ATTRIBUTE Extreme-Netlogin-Extended-Vlan 211 string Extreme
ATTRIBUTE Extreme-Security-Profile 212 string Extreme
ATTRIBUTE Extreme-Policy-ACL 232 string Extreme
VALUE Extreme-CLI-Authorization Disabled 0
VALUE Extreme-CLI-Authorization Enabled 1
VALUE Extreme-Netlogin-Only Disabled 0
VALUE Extreme-Netlogin-Only Enabled 1
# End of Dictionary
The lines that begin with VALUE provide the integers that the RADIUS server sends
to the switch when the corresponding text is configured in the RADIUS users file. For
example, if the Extreme-CLI-Authorization attribute is set to Enabled for a particular
user, the RADIUS server sends the value 1 to the switch (which reduces total bytes
transferred). The ExtremeXOS software is designed to interpret the integer values as
shown above, so be sure to use these values.
Disconnect Request
Disconnect Requests are sent from the DA initiator to the DA controller when it is
determined that a session will be terminated. The request is sent to UDP port 3799.
The authorized request indicates which DA controller the message is for, as well as
which session should be terminated. If the DA controller indicated by the included
attributes in the packet does not match the receiver, then the request is responded to
with a Disconnect-NAK. The appropriate DA controller receiving this RADIUS extension
packet identifies the session using the attributes provided and immediately terminates
the session.
Note
In order to use CoA/Disconnect, ONEPolicy must be enabled with NetLogin.
NAS Identification
These attributes provided by the RADIUS extension packets are used to determine the
DA Controller that is to disconnect the session:
• NAS-IP-Address—This IPV4 address must match the primary IP address of the
default interface for a match to occur.
If all of these attributes do not match, the request is responded to with a Disconnect-
NAK response.
Starting with ExtremeXOS 31.3, the nas-ip option can ignore this requirement using
the ignore variable.
The following attributes are used to determine the Layer 2 sessions that are to be
terminated:
• NAS-Port—the interface index of the port that the session is connected to.
• Calling-Station-Id—The ASCII representation of the MAC address of the session to be
terminated. If no NAS-Port attribute is present, then all sessions with the specified
MAC address are terminated regardless of what port(s) the sessions are connected
to.
• Enterasys Auth-Client-Type—One or more of these vendor-specific attributes (VSA)
can be specified to indicate which authentication clients are to be affected. Valid
values are: 1-dot1x, 2-pwa, 3-macauth. If this attribute is not present, then all sessions
with the specified MAC address and/or port are affected.
All included attributes must match for the request to be processed. Additional
attributes that are not understood by the DA controller in this context cause a failure of
this disconnect request.
Disconnect Responses
Security
Using the RADIUS protocol to push both changes and terminations of existing sessions
does have some security issues.
Caution
In this implementation in ExtremeXOS of RFC5176, some level of trust is
required on the upstream portion of the local network. Network administrators
should not enable this functionality if they are not comfortable with this level
of security. See Limitations on page 1176.
Limitations
The following features of Change-of-Authorization (RFC5176) are not implemented in
ExtremeXOS:
• Reverse Path Forwarding Check—Typically this is used in a proxy scenario. This
check is used to determine if the IP address indicated by the RADIUS attributes
is a routable destination address for a request sent by the switch software.
• IPSEC encryption—End-to-end encryption of both the RADIUS requests and
responses.
• Disconnect-Request and Change-of-Authorization packets identifying sessions with
anything other than the Calling-Station-Id attribute containing a properly formatted
MAC address. In addition to the Calling-Station-ID attribute, you can also use a NAS-
Port attribute, which indicates the index of the specific port the session is connected
to.
• Acct-Session-Id attribute—This is an alternate means of session identification.
Sessions are currently uniquely identified by port and MAC address pair.
• Retransmissions of Disconnect-Request or Change-of-Authorization ACK and NAK
packets—Retransmissions of packets is the responsibility of the device initiating the
dynamic authorization transactions.
Change of Authorization
Change of Authorization requests are sent from the DA initiator to the DA controller
when it is determined that a session’s authorization parameters will be changed. The
request is sent to UDP port 3799.
The message indicates which DA controller the message is for, as well as, which session
should be terminated. If the DA controller indicated by the included attributes in the
packet does not match the receiver, then the request is responded to with a Change-
of-Authorization-NAK. The appropriate DA controller receiving this RADIUS extension
packet identifies the session(s) using the attributes provided and attempts to change
the authorization level of the user as newly defined in the request packet.
DA Controller Identification
The DA controller is identified for CoA Requests in the same way that Disconnect
Request identification occurs.
Session identification for CoA occur in the same way that Disconnect Request
identification does.
Policy authorization levels can be changed using this functionality. These attributes are
the same ones that are used to define the initial authorization level of a session when
authenticated by the DA controller. The processing of these attributes will result in the
same authorization conditions that would have occurred if they were to have been
received as the initial authorization level.
• Filter-Id —The filter ID identifies the name of the policy profile that is used for the
session.
• RFC3580 Attributes—Three attributes are used to determine the RFC3580
authorization levels: Tunnel-Type, Tunnel-Medium-Type, and Tunnel-Private-Group-
Id.
These values are used in concert with local policy settings to determine both the
correct policy profile and VLAN settings for the session.
Change-of-Authorization Responses
Retry Detection
To minimize the potential for replay attacks, the DA controller needs to support retry
detection. This involves remembering source UDP port and RADIUS packet identifier
pairs that have been received on a per DA Initiator basis. This information needs to be
remembered for a reasonable period of time so that an attacker resending an identical
frame to the DA controller does not cause undue harm to the switch. This functionality
used in conjunction with the Event-Timestamp attribute limits the validity of replay
attacks.
Note
Filter-ID and Tunnel attributes are mandatory based on the configuration used
in the switch. Filter-ID is mandatory if the map table response is policy. Tunnel
is mandatory if map table response is tunnel. Attributes shown in Table 132 on
page 1179 are optional attributes.
Limitations
Optional attributes may or may not be present in the CoA/disconnect. If all the received
values are correct, then further processing occurs; otherwise, you may get an ACK/NAK,
but the packet is not processed further.
The example presented in this section describes a RADIUS server that is a daemon
process running on a Linux server.
The following example shows how to install and test a FreeRADIUS server:
Note
RADIUS server software can be obtained from several sources. This
solution uses the FreeRADIUS software available on the following URLs:
www.freeradius.org and www.redhat.com. Another free tool, NTRadPing, can
be used to test authentication and authorization requests from Windows
clients. NTRadPing displays detailed responses such as attribute values sent
back from the RADIUS server.
modules {
ldap {
server = "ldaptest.extremenetworks.com"
basedn = "o=ldaptestdemo,dc=extremenetworks,dc=com"
filter = "(cn=%{Stripped-User-Name:-%{User-Name}})"
base_filter = "(objectclass=radiusprofile)"
start_tls = no
dictionary_mapping = ${raddbdir}/ldap.attrmap
authtype = ldap
ldap_connections_number = 5
timeout = 4
timelimit = 3
net_timeout = 1
}
}
authorize {
preprocess
chap
mschap
suffix
ldap
eap
files
}
authenticate {
Auth-Type PAP {
pap
}
Auth-Type CHAP {
chap
}
Auth-Type MS-CHAP {
mschap
}
unix
ldap
eap
An Extreme Networks edge switch serves as a network access server (NAS) for
workstations and as a RADIUS client for the RADIUS server.
RADIUS clients are configured in /etc/raddb/clients.conf. There are two ways to
configure RADIUS clients. Either group the NAS by IP subnet or list the NAS by host
name or IP address.
5. Configure the RADIUS client using the second method.
client 192.168.1.1 {
secret = extreme1
shortname = ldap-demo
}
Cistron RADIUS
Cistron Radius is a popular server, distributed under GPL. Cistron Radius can be found
at:
When you configure the Cistron server for use with Extreme switches, you must pay
close attention to the users file setup. The Cistron Radius dictionary associates the word
Administrative-User with Service-Type value 6, and expects the Service-Type entry to
appear alone on one line with a leading tab character.
RSA Ace
For users of Cistron's RSA SecureID® product, RSA offers RADIUS capability as part of
their RSA/Ace Server® server software. It is mandatory to configure a matching shared-
secret key on the switch and RSA Ace server for successful authentication.
Steel-Belted Radius
For users who have the Steel-Belted Radius (SBR) server from Juniper Networks, it
is possible to limit the number of concurrent login sessions using the same user
account. This feature allows the use of shared user accounts, but limits the number of
simultaneous logins to a defined value. Using this feature requires Steel-Belted Radius
for RADIUS authentication and accounting. To limit the maximum concurrent login
sessions under the same user account:
b. After modifying the vendor.ini file, the desired user accounts must be configured
for the Max-Concurrent connections. Using the SBR Administrator application,
enable the check box for Max-Concurrent connections and fill in the desired
number of maximum sessions.
Microsoft IAS
To use Extreme Networks VSAs with the Internet Authentication Service (IAS) in
Microsoft® Windows Server™ 2003, you must first create a Remote Access Policy and
apply it so that user authentication occurs using a specific authentication type such
as EAP-TLS, PEAP, or PAP. The following procedure assumes that the Remote Access
Policy has already been created and configured and describes how to define Extreme
Networks VSAs in Microsoft IAS:
The settings for this dialog window varies, depending on which product and
attribute you wish to use in your network.
d. In the first text-box enter the Extreme Networks VSA number for the attribute you
want to configure (see Extreme Networks VSAs on page 1166).
e. Use the pull-down menu to select the Attribute format, which is the same as the
attribute Type listed in Extreme Networks VSAs on page 1166.
Note
For values of format integer you will have to select the type Decimal from
the pull-down menu.
13. To apply the configuration changes, stop and restart the Microsoft IAS service.
After restarting the IAS service, new authentications should correctly return the
Extreme Networks VSA after successful authentication. Users who were previously
authenticated have to re-authenticate to before the new VSAs apply to them.
14. If you experience problems with the newly configured VSAs, use the following
troubleshooting guidelines:
a. If you have multiple IAS Remote Access Policies, verify that the user is being
authenticated with the correct policy.
b. Check the IAS System Log events within Microsoft Event Viewer to verify the user
is authenticated through the policy where VSA settings are configured.
c. Check whether the VSA configuration performed above is correct.
A mismatch in any of the VSA settings could cause authentication or VSA failure.
d. Verify that attributes such as "VLAN tag" or "VLAN name" correctly match the
configuration of your ExtremeXOS switch and overall network topology.
Invalid, or incorrect values returned in the VSA could prevent authenticated users
from accessing network resources.
To configure Universal Port for use in an LDAP environment, use the following
procedure:
Installing OpenLDAP
OpenLDAP software is an open source implementation of Lightweight Directory Access
Protocol. This can be obtained from the site: www.openldap.org. To install OpenLDAP
packages:
3. If you have a default Red Hat Linux installation, there is at least one OpenLDAP Red
Hat Package Manager (RPM) installed.
The LDAP RPMs can be found on the Red Hat CD or downloaded from one of the
following RPM download sources:
www.rpmfind.net and search for openldap and select the RPM based on the
distribution
Configuring OpenLDAP
Once the build is complete, the slapd and slurpd daemons are located in /usr/local/
libexec.
The config files are in /etc/openldap and ready to start the main server daemon, slapd.
cp /usr/share/doc/samba-3.0.10/LDAP/samba.schema /etc/openldap/schema
The Samba-related attributes can be populated in the LDAP server already if there is
an LDAP-enabled Samba infrastructure in place.
Note
If the Samba related entries are not present, then the values for
sambaNTPassword and sambaNMPPassword can be created by running
the mkntpwd command.
cd /usr/share/doc/samba-3.0.10/LDAP/smbldap-tools/mkntpwd
make
./mkntpwd -L <password> (provides value for sambaLMPassword attribute)
./mkntpwd -N <password> (provides value for sambaNTPassword attribute)
Use the following commands to activate the switch for 802.1X port-based
authentication:
create vlan voice
create vlan data
create vlan ldap
configure voice tag 10
configure data tag 20
configure ldap ipaddress 192.168.1.1/24
cnable ipforwarding
create vlan nvlan
en netlogin dot1x
en netlogin port 13-24 dot1x
configure radius netlogin primary server 192.168.1.2 1812 client-ip 192.168.1.1 vr VR-
Default
configure radius netlogin primary shared-secret extreme1
enable radius netlogin
enable netlogin dot1x
Configure the ports to run a script when a user is authenticated through RADIUS and
LDAP:
configure upm event user-authenticate profile a-avaya ports 1-23
LDAP UID entries:
In the LDAP phone UID entry in the users file, use the following attribute to specify a
profile to run on the switch:
Extreme-Security-Profile
To add the port as tagged in the voice VLAN, use the following attribute in the users file:
Extreme-Netlogin-Extended-Vlan = TVoice (use UData for a PC)
Note
It depends on the end-station to determine the fields required for
authentication; XP uses EAP-PEAP and must have encrypted fields for the
UID password. Avaya phones authenticate with MD-5 and must have an
unencrypted field in LDAP.
Scripts
The following a-avaya script tells the phone to configure itself in the voice VLAN, and to
send tagged frames.
The script also informs the phone of the file server and call server:
create upm profile a-avaya
create log message Starting_UPM_Script_AUTH-AVAYA
set var callServer 10.147.12.12
set var fileServer 10.147.10.3
set var voiceVlan voice
set var CleanupProfile CleanPort
set var sendTraps false
#
create log message Starting_UPM_AUTH-AVAYA_Port_$EVENT.USER_PORT
#*********************************************************
# adds the detected port to the device "unauthenticated" profile port list
#*********************************************************
create log message Updating_Unauthenticated_Port_List_Port_$EVENT.USER_PORT
#configure upm event user-unauthenticated profile CleanupProfile ports $EVENT.USER_PORT
#*********************************************************
# Configure the LLDP options that the phone needs
#*********************************************************
configure lldp port $EVENT.USER_PORT advertise vendor-specific dot1 vlan-name vlan
$voiceVlan
configure lldp port $EVENT.USER_PORT advertise vendor-specific avaya-extreme call-server
$callServer
configure lldp port $EVENT.USER_PORT advertise vendor-specific avaya-extreme file-server
$fileServer
configure lldp port $EVENT.USER_PORT advertise vendor-specific avaya-extreme dot1q-
framing tagged
configure lldp port $EVENT.USER_PORT advertise vendor-specific med capabilities
#configure lldp port $EVENT.USER_PORT advertise vendor-specific med policy application
voice vlan $voiceVlan dscp 46
# If port is PoE capable, uncomment the following lines
#***************************************************************
# Configure the POE limits for the port based on the phone requirement
#***************************************************************
configure lldp port $EVENT.USER_PORT advertise vendor-specific med power-via-mdi
#configure inline-power operator-limit $EVENT.DEVICE_POWER ports $EVENT.USER_PORT
create log message UPM_Script_A-AVAYA_Finished_Port_$EVENT.USER_PORT
Note
Parts of the scripts make use of the QP8 profile. This is NOT recommended
because the QP8 profile is used by EAPS. For voice, use QP7 for QOS.
This script uses tagging for the phone and the ports for the voice VLAN. This is
NOT necessary; use multiple supplicant and untagged for the phones.
BEGIN-VENDOR Extreme
ATTRIBUTE Extreme-Policy-ACL 232 string
END-VENDOR Extreme
Note
For enhanced security, install the FreeRADIUS server CA certificate (the CA that
signed the certificate installed in eap.conf).
1. Open the network configuration panel, select the network card, enter the properties.
2. Click the Authentication tab.
The Authentication dialog appears.
3. Enable 802.1X and disable authenticate as computer.
4. Choose EAP type of Protected EAP, then click Properties.
5. Deselect the Validate server certificate and select eap-mschapv2 as the
authentication method.
6. Click Configure.
7. Select or clear the check box depending on whether you want to use the logon
name and password, then click OK.
The web server in ExtremeXOS allows HTTP clients to access the switch on port 80 (by
default) as well as the network login page without additional encryption or security
measures. For information about secure HTTP transmission, including Secure Socket
Layer (SSL), see Secure Socket Layer on page 1224.
Starting in Switch Engine 32.7.1, HTTPS is also enabled by default under certain
conditions so that both HTTP and HTTPS are active and available for use. HTTPS is
enabled in::
• New switches with Switch Engine 32.7.1 installed.
• Old switches that are not configured and are booting with Switch Engine 32.7.1 (the
switch does not have a configuration file).
• Old switches that are upgrading to Switch Engine 32.7.1 that have a configuration file
where HTTPS is disabled and there is no switch key or certificate.
At the time that HTTPS is enabled, a new SSL key and self-signed certificate are
automatically generated. with the following parameters:
Key length: 2048
Country-code: "US"
Org name: "Extreme Networks"
Common name: "*.extremenetworks.com"
State: "NC"
Locality: "Morrisville"
Org unit: "EXOS"
Secure Shell 2
Secure Shell 2 (SSH2) is a feature of the ExtremeXOS software that allows you to encrypt
session data between a network administrator using SSH2 client software and the
switch or to send encrypted data from the switch to an SSH2 client on a remote system.
Configuration, image, public key, and policy files can be transferred to the switch using
the Secure Copy Protocol 2 (SCP2).
The ExtremeXOS SSH2 switch application works with the following clients: Putty, SSH2
(version 2.x or later) from SSH Communication Security, and OpenSSH (version 2.5 or
later).
The client’s public keys are configurable through the CLI. A maximum of 100 keys can
be created. A specific key can hold a maximum of 16 users, and a single user can be
added to a maximum of 16 keys.
For password authentication, the configuration should be done in the AAA module,
where an account must be created for the user, either as an admin or a user, and the
corresponding password should be configured. The same will be used for validating the
user, when exsshd (SSH server daemon/process) contacts AAA for authenticating the
user.
If the ACL permits the source-address of the client, the server proceeds with
authentication steps. As part of authentication, the versions are exchanged between
the client and the server. ExtremeXOS SSH server supports protocol version 2. If the
client has a protocol version 1.99 or above, the same is accepted. Otherwise, the
connection is rejected. Once the versions of both the ends are accepted, key exchange
algorithms proposal of server and client are matched. Openssh-7.5p1 supports Diffie-
Hellman group 1, 14, 16, and 18 as part of the key exchange algorithms (see Diffie-
Hellman Overview on page 1223). The minimal supported Diffie-Hellman group is 14 by
default in Default mode, since group 1 is considered weaker. After the key exchange
algorithm is agreed upon, the ciphers are exchanged and agreed upon. Openssh-7.5p1
supports the following ciphers and MACs.
• Ciphers: aes128-cbc, aes192-cbc, aes256-cbc, [email protected], aes128-ctr,
aes192-ctr, aes256-ctr, [email protected]
• MACs: [email protected], [email protected], hmac-
[email protected], [email protected], hmac-sha1-96-
[email protected], [email protected], hmac-md5; hmac-sha1,
hmac-sha2-256, hmac-sha2-512 hmac-sha1-96, hmac-md5-96
After the key exchanges, the local authentication methods that are supported (public
key and password authentication) are tried first. If there is a matching key or password,
the AAA authentication will be tried out. Else, the user will be considered to be
unknown, and the session will be terminated.
Below are the steps that are involved between the client and the server while
establishing the connection.
Client Server
SSH-protoversion-softwareversion
Identification String
Exchange SSH-protoversion-softwareversion
SSH_MSG_KEXINIT
Algorithm Negotiation
SSH_MSG_KEXINIT
Key Exchange
SSH_MSG_NEWKEYS
SSH_MSG_SERVICE_REQUEST
Service Request
In Default mode:
• Ciphers: aes128-ctr, aes192-ctr, aes256-ctr, [email protected]
• MACs: [email protected], [email protected], hmac-
[email protected], hmac-sha1, hmac-sha2-256, hmac-sha2-512
Other OpenSSH 7.5p1 supported MACs and ciphers listed in Understanding SSH Server
on page 1193 are disabled by default.
Version 32.5 adds support for two new host key algorithms: rsa-sha2-256 and rsa-
sha2-512. While the default algorithm remains ssh-rsa, this SHA-1 algorithm is weak and
not recommended. In version 32.5, you can use the CLI to select the host key algorithm
from the list of three options.
During an upgrade to version 32.5, the ssh-rsa type host key present in the switch is
used, but the following EMS log will be generated when the switch starts:
04/25/2023 08:19:25.67 <Noti:exsshd.CfgHostKeyAlgWeak> The configured host key
algorithm(s),
ssh-rsa, is/are weaker than what is recommended.
The switch will continue to generate an ssh-rsa type key until you use the configure
ssh2 key algorithm command. Once you use the command to make a selection, the
new algorithm chosen will take effect when you run disable/enable ssh2 or sshd
restart, as displayed in the following example output:
# configure ssh2 key algorithm rsa-sha2-256
New key algorithm will be usable after disable and enable SSH or 'restart process exsshd'.
Warning: Legacy clients that do not support this algorithm will not connect with the
switch's SSH server.
Use the show ssh2 command to display current and configured algorithms.
1. Generate or specify an authentication key for the SSH2 sessions (see Standard Key
Authentication on page 1196 and User Key-Based Authentication on page 1196).
2. Enable SSH2 access by specifying a TCP port to be used for communication and
specifying on which virtual router (VR) SSH2 is enabled (see Enabling SSH2 on page
1206).
3. If desired, specify a timeout period for a login attempts by using the command:
configure ssh2 login-grace-timeout seconds
For the switch to use the newly generated key, the exsshd process needs to
be restarted using the restart process [class cname | name {msm slot}]
command with "exsshd" for name.
• To use a key that has been previously created, use the following command:
configure ssh2 key {pregenerated}
The switch prompts you to enter the pregenerated key.
Note
The pregenerated key must be one that was generated by the switch. To
get such a key, you can use the command show ssh2 private-key to
display the key on the console. Copy the key to a text editor and remove the
carriage return/line feeds. Finally, copy and paste the key into the command
line. The key must be entered as one line.
The key generation process generates the SSH2 private host key. The SSH2 public host
key is derived from the private host key and is automatically transmitted to the SSH2
client at the beginning of an SSH2 session.
In ExtremeXOS, user public keys are stored in the switch’s configuration file; these keys
are then associated (or bound) to a user.
The public key can be loaded onto the switch using SCP or SFTP, where the switch is
the server. The administrator can do this by using the SCP2 or SFTP2 client software
to connect to and copy the key file to the switch. The public key file must have
the extension ssh; for example, id_dsa_2048.ssh. When the .ssh file is copied to the
switch, the key is loaded into the memory. The loaded public keys are saved to the
configuration file (*.cfg) when the save command is issued via the CLI.
The key name is derived from the file name. For example, the key name for the
file id_dsa_2048.ssh will be id_dsa_2048. The file name of the key or the keyname is
restricted to 32 characters in length.
The key is associated with a user either implicitly, by pre-pending the user name to the
file or explicitly using the CLI.
In order for a key to be bound or associated to a user, the user must be known. In
other words, that user must have an entry in the local database on the switch. Once the
user is authenticated, the user’s rights (read-only or read/write) are obtained from the
database.
The key can be associated with a user by pre-pending the user name to the file name.
For example, admin.id_dsa_2048.ssh.
If the user specified in the file name does not exist on the switch, the key is still
accepted, but is not associated to any user. Once the user is added, the key can be
associated with the user using the CLI. If the user name is not pre-pended to the
file name, the key is accepted by the switch but is not associated with any user. The
key can be then be associated with the user using the command configure sshd2
user-key key_name add user user_name .
You can also enter or paste the key using the command configure ssh2 key
{pregenerated} using the pregenerated keyword. There cannot be any carriage
returns or new lines in the key. For more information, see the configure ssh2 key
{pregenerated} command in the Switch Engine Command References
The host and user public keys can be written to a file in the config directory using the
create sshd2 key-file {host-key | user-key} key_name command. This enables
the administrator to copy the public key to an outside server.
PKI has its own advantages of added security, certificate revocation checking, avoiding
manual mapping of keys with users, etc.
For the details about configuring PKI, see Using Public-Key Infrastructure (PKI) in Your
Network on page 1228.
At Callout 2, the ExtremeXOS device verifies if the extended key usage of client
certificate contains ‘client authentication’. If not, the SSH PKI connection is not
established. Next, the ExtremeXOS device extracts the Common-Name field from the
public key certificate and validates it against the local-accounts present/configured in
the switch. If there is no matching accounts/user-name, then the SSH PKI connection
is not established. Next, it checks to ensure the certificate signature from SSH client
matches a trusted certificate authority‘s certificate present on the ExtremeXOS device.
At Callout 3, the ExtremeXOS device sends an Online Certificate Status Protocol (OCSP)
request to the OCSP responder to check the validity of the Clients X.509 certificate.
If the OCSP responder determines that the certificate has not been revoked by the
certificate authority, the server sends back a GOOD response. After the preceding steps
are completed, then the user is logged in automatically using SSH with X509, which
can be seen using the command show session {{detail} {sessID}} {history}
with the output shown as follows (the Auth field has a value of x509v3, which indicates
that this is a SSH login using PKI):
# show session
CLI
# Login Time User Type Auth Auth Location
================================================================================
*5 Tue Oct 18 12:24:12 2016 samar .. ssh2 x509v3 dis 10.127.3.143
Limitations
Example: Configuring PKI for SSH Secure Login Using X509v3 Certificates
The following is an example on how to use the ExtremeXOS PKI for SSH secure login
using X509v3 certificates.
The following steps should be followed on a Linux server with OpenSSL installed to the
generate the X509v3 certificates.
$ mkdir certs crl newcerts serial private
$ touch index.txt
$ echo "01" > serial
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj "/C=US/ST=NC/L=Raleigh/O=Extr/
OU=Exos/CN=CA-EXOS/[email protected]" -keyout exosCAkey.pem -out
exosCAcert.crt
Generating a 2048 bit RSA private key
.+++
.................................................+++
writing new private key to 'exosCAkey.pem'
-----
-----BEGIN CERTIFICATE-----
MIID8jCCAtqgAwIBAgIJAPFN/ulv47hvMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD
VQQGEwJVUzELMAkGA1UECAwCTkMxEDAOBgNVBAcMB1JhbGVpZ2gxDTALBgNVBAoM
BEV4dHIxDTALBgNVBAsMBEV4b3MxEDAOBgNVBAMMB0NBLUVYT1MxKjAoBgkqhkiG
9w0BCQEWG2NhLWV4b3NAZXh0cmVtZW5ldHdvcmtzLmNvbTAeFw0xNjEwMjAwNzEy
NDdaFw0xNzEwMjAwNzEyNDdaMIGIMQswCQYDVQQGEwJVUzELMAkGA1UECAwCTkMx
EDAOBgNVBAcMB1JhbGVpZ2gxDTALBgNVBAoMBEV4dHIxDTALBgNVBAsMBEV4b3Mx
EDAOBgNVBAMMB0NBLUVYT1MxKjAoBgkqhkiG9w0BCQEWG2NhLWV4b3NAZXh0cmVt
ZW5ldHdvcmtzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMNq
EbATraCk/udaYCbkR3xOG2ZfrhlgWDjpMQkHS12ggKb7/yEevM358Aof5OwGqx83
LWTWE3dHa+iB1doK4JYJtJy9X2rcXgRfX455qBxuuiljjNH4xlNAZtwhDPQ4xIFX
546x2cbiy8aygPT72i/gRT8VXLSSkAtsGIjERWegk9GInbtR09UeVUoxXabTP1OB
guKdJ7E0TgYuIFL9PTpdw52xYwKVN2c/+OSLMcfC/gg2qpWSeC+ICYOLlIcj9n3t
IHWHeRS3Dh2ByJPgEWzklzup9h80w2+UqOyeT20CNy40wQEkbhDKfcnJ8hJc7+Gy
0We78hWU6UtwEac1/WkCAwEAAaNdMFswHQYDVR0OBBYEFPsEvFIbkhyAjYHg1z4W
kVnQkBnYMB8GA1UdIwQYMBaAFPsEvFIbkhyAjYHg1z4WkVnQkBnYMAwGA1UdEwQF
MAMBAf8wCwYDVR0PBAQDAgLkMA0GCSqGSIb3DQEBCwUAA4IBAQA2hRqWSY+bUX2e
ws0xcgpYCLRYa4siN3HttuyWmDyPawMr+U3HgUCXEN/TJHlxhi/0IUhkpo5QCUCE
3jtVz/W8oyEAkhkI0c9/3+kBB/AuDrU9cf11v0yuvAFleDFIIa+2/Va/oPczYuIf
ZHkBsHC/m1fmdeyBT5I8cCe3Fz1ZtPTFCVWibnd1JuRvY5tgPw+gsAHP3l2Dt911
aFXAabFJFx8jFooCrq0/XO+YqfdYC3NYUf4PICTjKcfqNmax8da7ec6H5CKDnmPM
Ki9pRQEE/9Cjf0bvq9rKBq3uQBsVOfjbtkdFEYOM5FRZdX5BzlT+BINOMNtq1iNN
ZhdE3X9J
-----END CERTIFICATE-----
The next steps are to create a X509v3 certificate for a user that is signed by the above
generated CA certificate "exosCAcert.crt".
In the following command, a user certificate signing request with RSA 2048 bit key,
commonName as "exos-admin" is generated:
$ openssl req -nodes -days 365 -newkey rsa:2048 -new -subj "/C=US/ST=NC/L=Raleigh/
O=Extr/OU=Exos/CN=exos-admin/[email protected]" -keyout exos-
admin-key.pem -out exos-admin-req.csr
Generating a 2048 bit RSA private key
.............................................+++
......................................+++
writing new private key to 'exos-admin-key.pem'
EE:A8:8F:6D:00:CA:93:57:22:E6:1F:DF:43:B4:91:E9:DE:B8:9F:D3
X509v3 Authority Key Identifier:
keyid:FB:04:BC:52:1B:92:1C:80:8D:81:E0:D7:3E:16:91:59:D0:90:19:D8
DirName:/C=US/ST=NC/L=Raleigh/O=Extr/OU=Exos/CN=CA-EXOS/emailAddress=ca-
[email protected]
serial:F1:4D:FE:E9:6F:E3:B8:6F
Downloading the Trusted Certificate to the ExtremeXOS PKI and Configuring the User Accounts
The user needs to be created on the ExtremeXOS device with appropriate privileges.
The name of the account would be the value present in the “commonName” field of
the user-certificate that was generated (that is: exos-admin-cert.crt):
DUT1_switch_model.1 # create account admin exos-admin exospassword
Using OpenSSL OCSP Utility
As mentioned previously, OpenSSL’s OCSP utility is used for example purposes, and the
example uses the “Common Issuer Model”.
The following command should be entered in the Linux Server for OCSP Responder:
$openssl ocsp -port 2561 -text -index index.txt -CA exosCAcert.crt
-rkey exosCAkey.pem -rsigner exosCAcert.crt
To use the user-certificate for logging into the ExtremeXOS SSH server, you need to
concatenate the key file and certificate file as a single file, and also ensure that the file
does not have a very open permission level (that is, accessible by others).
$ cat exos-admin-key.pem exos-admin-cert.crt > exosadmincert.crt
$ chmod 0600 exosadmincert.crt
ExtremeXOS
Copyright (C) 1996-2016 Extreme Networks. All rights reserved.
This product is protected by one or more US patents listed at http://
www.extremenetworks.com/patents along with their foreign counterparts.
==============================================================================
ID :7
Start Time :Thu Oct 20 20:25:37 2016
User Name :exos-admin
Type :ssh2
Authentication :x509v3
Cli Authentication :disabled
Location :10.127.3.143
Node :local
DUT1_switch_model.3 # sh log
10/20/2016 20:25:37.17 <Info:AAA.LogSsh> Msg from Master : Did x509v3 authentication for
user exos-admin (10.127.3.143)
10/20/2016 20:25:37.17 <Info:AAA.LogSsh> Msg from Master : Login passed for user exos-
admin through ssh (10.127.3.143)
[ ca ]
# `man ca`
default_ca = CA_default
[ CA_default ]
# Directory and file locations.
dir = /root
certs = $dir/certs
crl_dir = $dir/crl
new_certs_dir = $dir/newcerts
database = $dir/index.txt
serial = $dir/serial
RANDFILE = $dir/private/.rand
unique_subject = no
name_opt = ca_default
cert_opt = ca_default
default_days = 375
preserve = no
policy = policy_strict
[ policy_strict ]
# The root CA should only sign intermediate certificates that match.
# See the POLICY FORMAT section of `man ca`.
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ policy_loose ]
# Allow the intermediate CA to sign a more diverse range of certificates.
# See the POLICY FORMAT section of the `ca` man page.
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = optional
emailAddress = optional
[ req ]
# Options for the `req` tool (`man req`).
default_bits = 2048
distinguished_name = req_distinguished_name
string_mask = utf8only
[ req_distinguished_name ]
# See <https://en.wikipedia.org/wiki/Certificate_signing_request>.
countryName = Country Name (2 letter code)
stateOrProvinceName = State or Province Name
localityName = Locality Name
0.organizationName = Organization Name
organizationalUnitName = Organizational Unit Name
commonName = Common Name
emailAddress = Email Address
emailAddress_default =
[ v3_ca ]
# Extensions for a typical CA (`man x509v3_config`).
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
[ v3_intermediate_ca ]
# Extensions for a typical intermediate CA (`man x509v3_config`).
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true, pathlen:0
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
[ usr_cert ]
# Extensions for client certificates (`man x509v3_config`).
basicConstraints = CA:FALSE
#nsCertType = client, email
#nsComment = "OpenSSL Generated Client Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth, emailProtection
authorityInfoAccess = OCSP;URI:http://ocspserver.extremenetworks.com:2561
[ server_cert ]
# Extensions for server certificates (`man x509v3_config`).
basicConstraints = CA:FALSE
nsCertType = server
nsComment = "OpenSSL Generated Server Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
[ crl_ext ]
# Extension for CRLs (`man x509v3_config`).
authorityKeyIdentifier=keyid:always
[ ocsp ]
# Extension for OCSP signing certificates (`man ocsp`).
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
keyUsage = critical, digitalSignature
extendedKeyUsage = critical, OCSPSigning
For authentication, you can use Principal Name as the user name in the client's
certificate. The ‘principalName’ (OID: 1.3.18.0.2.4.318) is displayed below the ‘otherName’
identifier in the ‘SubjectAltName’ (SAN) extension of the X509v3 key-certificate.
Overwrite
The configure ssh2 x509v3 username overwrite [on | off] command is used
to enable or disable using Principal Name as the username for authentication. If
'principalName' is not found, then Common Name in the certificate will be used as
the username. This command can only be used if radius-password-auth is enabled.
Strip Domain
The configure ssh2 x509v3 username strip-domain [on | off] command is used
to specify using the 'principalName' without its domain name. This command can only
be used if radius-password-auth and overwrite are enabled.
Use Domain
Enabling SSH2
• To enable SSH2, use the following command:
enable ssh2 {access-profile [access_profile | none]} {port
tcp_port_number} {vr [vr_name | all | default]}
You can also specify a TCP port number to be used for SSH2 communication. The
TCP port number is 22 by default. The switch accepts IPv6 connections.
Before you initiate a session from an SSH2 client, ensure that the client is configured
for any non-default access list or TCP port information that you have configured
on the switch. After these tasks are accomplished, you may establish an SSH2-
encrypted session with the switch. Clients must have a valid user name and
password on the switch in order to log in to the switch after the SSH2 session has
been established.
Up to eight active SSH2 sessions can run on the switch concurrently. If you
enable the idle timer using the enable cli idle-timeout command, the SSH2
connection times out after 20 minutes of inactivity by default. If you disable the idle
timer using the disable cli idle-timeout command, the SSH2 connection times
out after 60 minutes of inactivity by default. This timeout value can be modified
using the configure ssh2 idletimeout minutes command wherein minutes can
be from 1 to 240 ”. For more information please refer to the command help for
“configure ssh2”.
After SSH2 has enabled, TCP port 22 is available on all virtual routers by default .
Session keys are generated after negotiation between server and client using Diffie-
Hellman algorithm (see Diffie-Hellman Overview on page 1223). Cryptanalysis experts
advise that it is unsafe to use the same session key to encrypt data over long periods
of time. With enough captured data you could analyze the traffic and compromise the
key, so it is advisable to keep changing the session keys after a certain interval.
You can configure the SSHv2 session rekeying interval by specifying a time interval
and/or a data limit. After the configured time interval, the SSH server forces the client
to perform a key negotiation for a new session key. This new key is used for SSH
communication until the next rekeying. After configuring the SSH session rekeying
time interval, configured SSH idle-timeout is disabled, so the idle-timeout occurs at the
globally configured idle-timeout, instead of SSH configured idle-timeout.
Default value for data limit varies depending upon the encryption algorithm being
used. For algorithms with a block size of 128-bits, data-limit is 4GB; for algorithms
with a block size of 64-bits, the data limit is 1GB. This is the limitation by OpenSSH.
For example, if the communication is through 3-DES algorithm and the data
limit is configured at 4GB, rekeying occurs after 1GB of data is transferred. If the
communication is using AES algorithm with same configuration, rekeying occurs after
4GB data is transferred. This issue does not occur if you limit the range to 1GB, instead
of 4GB for the data limit.
show ssh2
or
show management
To enable DSA/RSA X509 public key-based algorithms, use the following command:
To disable DSA/RSA X509 public key-based algorithms, use the following command:
To view which public key-based algorithms are currently enabled, use the following
command:
show ssh2
You configure an ACL policy to permit or deny a specific list of IP addresses and subnet
masks for the SSH2 port.
For more information about creating and implementing ACLs and policies, see Security
and ACLs on page 779.
}
Then
{
permit;
}
}
In the following example, named MyAccessProfile_2.pol, the switch does not permit
connections from the subnet 10.203.133.0/24 but accepts connections from all other
addresses:
MyAccessProfile_2.pol
Entry dontAllowTheseSubnets {
if {
source-address 10.203.133.0 /24;
}
Then
{
deny;
}
}
Entry AllowTheRest {
If {
; #none specified
}
Then
{
permit;
}
}
In the following example, named MyAccessProfile_2.pol, the switch does not permit
connections from the subnets 10.203.133.0/24 or 10.203.135.0/24 but accepts connections
from all other addresses:
MyAccessProfile_2.pol
Entry dontAllowTheseSubnets {
if match any {
source-address 10.203.133.0 /24;
source-address 10.203.135.0 /24
}
Then
{
deny;
}
}
Entry AllowTheRest {
If {
; #none specified
}
Then
{
permit;
}
}
In the following examples, you are using a Linux system to move files to and from the
switch at 192.168.0.120, using the switch administrator account admin. You are logged
into your Linux system as user.
• To transfer the primary configuration file from the switch to your current Linux
directory using SCP2, use the following command:
[user@linux-server]# scp2 [email protected]:primary.cfg primary.cfg
• To copy the policy filename test.pol from your Linux system to the switch, use the
following command:
[user@linux-server]# scp2 test.pol [email protected]:test.pol
• To copy the image file test.xos from your Linux system to the switch, use the
following command:
[user@linux-server]# scp2 test.xos [email protected]:test.xos
Now you can use the command install image test.xos to install the image in the
switch.
• To copy the SSH image file test.xmod from your Linux system to the switch, use the
following command:
[user@linux-server]# scp2 test.xmod [email protected]:test.xmod
Now you can use the command install image test.xmod to install the image in the
switch.
• To load the public key id_rsa.pub from your Linux system to the switch, use the
following command:
[user@linux-server]# scp2 id_rsa.pub [email protected]:test.ssh
This command loads the key into memory, which can be viewed with the command
show sshd2 user-key.
Note
ExtremeXOS 15.7.1 upgraded from openssh-3.9p1 to openssh-6.5p1. ExtremeXOS
21.1 adds the openssl-fips-ecp-2.0.9 open source library. ExtremeXOS 22.5
upgraded from openssh-6.5p1 to openssh-7.5p1. ExtremeXOS 30.7 upgraded
from openssh-7.5p1 to openssh-8.1p1
Support for following ciphers and macs are removed in ExtremeXOS 30.7, since
these are not supported in openssh 8.1p1:
• Ciphers: blowfish-cbc, cast128-cbc, arcfour, arcfour256, arcfour128
• MACs: [email protected], hmac-ripemd160, hmac-
[email protected]
Note
When upgrading to ExtremeXOS 30.7, if unsupported ciphers/MACs are:
• Enabled in the saved configuration, the configuration is
ignored during configuration load. The dirty bit is set and
an error message appears:. <Erro:exsshd.LoadCfgCipherUnsuprt>
<Erro:exsshd.LoadCfgMACUnsuprt>.
• Disabled (by default or intentional) in the saved configuration, the
configuration is ignored silently during configuration load. The dirty bit is
set and an error messages do not appear.
You do not need to enable SSH2 or generate an authentication key to use the SSH2 and
SCP2 commands from the ExtremeXOS CLI.
Note
User-created VRs are supported only on the platforms listed for this feature in
the Switch Engine Licensing Guide document.
• To send commands to a remote system using SSH2, use the following command:
ssh2 {cipher [cipher} {mac mac} {compression [on | off]} {port port}
{user username} {vr vr_name} user@host {remote_command}
The remote commands can be any command acceptable by the remote system. You
can specify the login user name as a separate argument or as part of the user@host
specification. If the login user name for the remote system is the same as your user
name on the switch, you can omit the username parameter entirely.
For example, to obtain a directory listing from a remote Linux system with IP address
10.10.0.2 using SSH2, enter the following command:ssh2 [email protected] ls
• To initiate a file copy from a remote system to the switch using SCP2, use the
following command:
scp2 {cipher cipher} {mac mac} {compression [on | off]} {port port}
{vr vr_name} [ user@host:file local-file | local-file user@host:file ]
For example, to copy the configuration file test.cfg on host system1 to the switch,
enter the following command:
scp2 admin@system1:test.cfg localtest.cfg
• To initiate a file copy to a remote system from the switch using SCP2, use the
following command:
scp2 {cipher cipher} {mac mac} {compression [on | off]} {port port}
{vr vr_name} [ user@host:file local-file | local-file user@host:file ]
For example, to copy the configuration file engineering.cfg from the switch to host
system1, enter the following command:
scp2 engineering.cfg admin@system1:engineering.cfg
ExtremeXOS requires that SFTP transfer to the switch files named as follows:
• *.cfg—ExtremeXOS configuration files
• *.pol—ExtremeXOS policy files
• *.xos—ExtremeXOS core image file
• *.xmod—ExtremeXOS modular package file
• *.ssh—Public key files
In the following examples, you are using a Linux system to move files to and from the
switch at 192.168.0.120, using the switch administrator account admin. You are logged
into your Linux system as account user.
• To transfer the primary configuration file from the switch to your current Linux
directory using SCP2, use the following command:
user@linux-server]# sftp [email protected]
password: <Enter password>
sftp> put primary.cfg
• To copy the policy filename test.pol from your Linux system to the switch, use the
following command:
user@linux-server]# sftp [email protected]
password: <Enter password>
sftp> put test.pol
• To copy the image file image.xos from your Linux system to the switch, use the
following command:
user@linux-server]# sftp [email protected]
password: <Enter password>
sftp> put image.xos
• To load the public key id_rsa.pub from your Linux system to the switch, use the
following command:
user@linux-server]# sftp [email protected]
password: <Enter password>
sftp> put id_rsa.pub id_rsa.ssh
For image file transfers, only one image file at a time can be available for installation.
If you need to install an additonal image (xmod):
• For image file transfers using SFTP or SCP (with the switch acting as the server),
once the image is copied to the switch, validation of image is done by the switch, as
indicated by the following log message:
<Info:AAA.LogSsh> Validating Image file, this could take approximately
30 seconds..image.xos
You must receive the following log message before you can proceed with the
installation of the image:
<Info:AAA.LogSsh> Image file successfully validated
In stacking switches, you must receive the following log message from all slots
before proceeding with the installation.
For example, in a four-switch stack, the installation can be proceed only after the
following log messages are received:
04/19/2007 17:41:09.71 <Info:AAA.LogSsh> Slot-1: Sent file "image.xos" info to backup
04/19/2007 17:41:09.71 <Info:AAA.LogSsh> Slot-1: Sent file "image.xos" info to standby
slot 3
04/19/2007 17:41:09.71 <Info:AAA.LogSsh> Slot-1: Sent file "image.xos" info to standby
slot 4
ciphers. By default, all available ciphers and MACs in the modes are configured unless
otherwise indicated (see Table 133).
By default, weaker ciphers/MACs are disabled, while the remaining ciphers/MACs are
enabled (see Default mode in Table 133). This is the default mode of operation. A switch
can move from this default mode to FIPS mode. Changing from default mode to
FIPS mode requires switch reboot. Until reboot, all the SSH connections use default
mode configurations. Since the configuration is already changed by the user (here FIPS
mode), updated configuration is displayed. On reboot, only FIPS mode ciphers/MACs
are available in SSH for configuration. Again, disabling FIPS mode requires a system
reboot. Until reboot, SSH server supports only FIPS mode ciphers/MACs. Since the user
configured disabling FIPS mode, the corresponding updated configuration appears.
It is recommended to update the FIPS mode once all the operations are completed.
None of the security related configurations are supposed to be changed after updating
the FIPS mode. This is because the behavior is undefined in those scenarios.
SSH supports Secure-Mode, which is allows only highly secure ciphers/MACs. Secure-
Mode is a feature of SSH alone. This has no effect on other modules that use
cryptograph like FIPS-mode. Configuring Secure-Mode does not require a switch
reboot. The changes are immediate. Secure-mode and FIPS-mode are not mutually
exclusive. Secure-Mode supports fewer ciphers/MACs than FIPS mode, so you only have
Secure-Mode ciphers/MACs available for configuration with both Secure-Mode and
FIPS-Mode are enabled. Internally, Secure-Mode ueses FIPS library for cryptography
instead of OpenSSL library. Once Secure-Mode is disabled, the SSH server moves to
either default-mode or FIPS-mode, based on FIPS-Mode configuration. However, those
ciphers/MACs that are configured before enabling/disabling Secure-Mode are lost. So,
for each mode update, SSH server configuration of ciphers/MACs is reset. You have to
configure ciphers/MACs each time if you configured SSH server for using particular
ciphers/MACs. From the list of available ciphers/MACs, you can configure the required
ciphers/MACs, and disable the ciphers/MACs that are not required.
Disabling all the ciphers/MACs does not allow any incoming connection from the
clients. This happens because the incoming connections are not able to negotiate for a
common cipher/MAC.
• To configure the required ciphers/MACs with SSHv2, use the following command:
configure ssh2 enable [cipher [cipher |all] |mac [ mac |all]]
• To disable ciphers/Message Authentication Codes (MACs) for use with SSHv2, use the
following command:
configure ssh2 disable [cipher [cipher |all] |mac [ mac |all]]
• To display the configured SSHv2 ciphers and MACs, use the following command:
show ssh2 {ciphers | macs}
# show ssh2
SSH module configuration details:
SSH Access : Disabled
# show ssh2
SSH module configuration details:
SSH Access : Disabled
Key validity : Invalid
Key type : RSA 2048
Key algorithm :
Current : rsa-sha2-256
Configured : rsa-sha2-256
TCP port : 22
VR : all
Access profile : not set
Secure Mode : Off
Diffie-Hellman Groups : 14 (2048 bits), 16 (4096 bits), 18 (8192 bits)
Max Auth Tries : 3
Idle time : 60 minutes
Rekey Interval : 4096 MB and no time limit
Ciphers : aes128-cbc, aes192-cbc, aes256-cbc, [email protected],
aes128-ctr, aes192-ctr, aes256-ctr, [email protected]
Macs : [email protected], [email protected], hmac-
[email protected], [email protected], [email protected],
[email protected], hmac-md5, hmac-sha1, hmac-sha2-256, hmac-sha2-512, hmac-
sha1-96, hmac-md5-96
Public key algorithms : ssh-rsa, ssh-dss, x509v3-sign-rsa, x509v3-sign-dss
# show ssh2
SSH module configuration details:
SSH Access : Disabled
Key validity : Invalid
Key type : RSA 2048
TCP port : 22
VR : all
Access profile : not set
Secure Mode : Off
Diffie-Hellman Groups : 14 (2048 bits), 16 (4096 bits), 18 (8192 bits)
Max Auth Tries : 3
Idle time : 60 minutes
Rekey Interval : 4096 MB and no time limit
Ciphers : aes128-cbc, aes192-cbc, aes256-cbc, [email protected],
aes128-ctr, aes192-ctr, aes256-ctr, [email protected]
Macs : [email protected], [email protected], hmac-
[email protected], [email protected], [email protected], hmac-
md5, hmac-sha1, hmac-sha2-256, hmac-sha2-512, hmac-sha1-96, hmac-md5-96
Public key algorithms : ssh-rsa, ssh-dss, x509v3-sign-rsa, x509v3-sign-dss
Login grace timeout : 100 seconds
# show ssh2
SSH module configuration details:
SSH Access : Disabled
Key validity : Invalid
Key type : RSA 2048
TCP port : 22
VR : all
# show ssh2
SSH module configuration details:
SSH Access : Enabled
Key validity : Valid
Key type : RSA 2048
TCP port : 22
VR : all
Access profile : not set
Secure Mode : Off
Diffie-Hellman Groups : 14 (2048 bits), 16 (4096 bits), 18 (8192 bits)
Idle time : 60 minutes
Ciphers : aes192-ctr, aes256-ctr, aes128-cbc, aes192-cbc, aes256-cbc,
[email protected]
Macs : hmac-sha1, hmac-sha2-256, hmac-sha2-512
Login grace timeout : 120 seconds
# show ssh2
SSH module configuration details:
SSH Access : Enabled
Key validity : Valid
Key type : RSA 2048
TCP port : 22
VR : all
Access profile : not set
Secure Mode : Off
Diffie-Hellman Groups : 14 (2048 bits), 16 (4096 bits), 18 (8192 bits)
Idle time : 60 minutes
Ciphers : aes128-ctr, aes192-ctr, aes256-ctr, aes128-cbc, aes192-cbc,
aes256-cbc, [email protected]
Macs : hmac-sha1, hmac-sha2-256, hmac-sha2-512
Login grace timeout : 120 seconds
# show ssh2
SSH module configuration details:
SSH Access : Enabled
Key validity : Valid
Key type : RSA 2048
TCP port : 22
VR : all
Access profile : not set
Secure Mode : Off
Diffie-Hellman Groups : 14 (2048 bits), 16 (4096 bits), 18 (8192 bits)
Idle time : 60 minutes
Ciphers : aes128-ctr, aes192-ctr, aes256-ctr, aes128-cbc, aes192-cbc,
aes256-cbc, [email protected]
Macs : hmac-sha2-256, hmac-sha2-512
Login grace timeout : 120 seconds
# show ssh2
SSH module configuration details:
SSH Access : Enabled
Key validity : Valid
# show ssh2
SSH module configuration details:
SSH Access : Enabled
Key validity : Valid
Key type : RSA 2048
TCP port : 22
VR : all
Access profile : not set
Secure Mode : On
Diffie-Hellman Groups : 14 (2048 bits), 16 (4096 bits), 18 (8192 bits)
Idle time : 60 minutes
Ciphers : aes128-ctr, aes192-ctr, aes256-ctr
Macs : hmac-sha1, hmac-sha2-256, hmac-sha2-512
Login grace timeout : 120 seconds
# show ssh2
SSH module configuration details:
SSH Access : Enabled
Key validity : Valid
Key type : RSA 2048
TCP port : 22
VR : all
Access profile : not set
Secure Mode : On
Diffie-Hellman Groups : 1 (1024 bits prime), 14 (2048 bits prime)
Idle time : 60 minutes
Ciphers : aes192-ctr, aes256-ctr
Macs : hmac-sha1, hmac-sha2-256, hmac-sha2-512
Login grace timeout : 120 seconds
# show ssh2
SSH module configuration details:
SSH Access : Enabled
Key validity : Valid
# show ssh2
SSH module configuration details:
SSH Access : Enabled
Key validity : Valid
Key type : RSA 2048
TCP port : 22
VR : all
Access profile : not set
Secure Mode : On
Diffie-Hellman Groups : 14 (2048 bits), 16 (4096 bits), 18 (8192 bits)
Idle time : 60 minutes
Ciphers : aes128-ctr, aes192-ctr, aes256-ctr
Macs : hmac-sha2-256, hmac-sha2-512
Login grace timeout : 120 seconds
# show ssh2
SSH module configuration details:
SSH Access : Enabled
Key validity : Valid
Key type : RSA 2048
TCP port : 22
VR : all
Access profile : not set
Secure Mode : On
Diffie-Hellman Groups : 14 (2048 bits), 16 (4096 bits), 18 (8192 bits))
Idle time : 60 minutes
Ciphers : aes128-ctr, aes192-ctr, aes256-ctr
Macs : hmac-sha1, hmac-sha2-256, hmac-sha2-512
Login grace timeout : 120 seconds
Diffie-Hellman Overview
ExtremeXOS supports Diffie-Hellman group 1, 14, 16, and 18 as part of the key exchange
algorithms. In compliance with the Network Device collaborative Protection Profile
(NDPP) of Common Criteria, the TSF (Target Security Function) ensures that diffie-
hellman-group14-sha1 is the only minimal allowed key exchange method used for the
SSH protocol.
show ssh2
# show ssh2
SSH module configuration details:
SSH Access : Disabled
Key validity : Invalid
Key type : RSA 2048
TCP port : 22
VR : all
Access profile : not set
Secure Mode : Off
Diffie-Hellman Groups : 14 (2048 bits), 16 (4096 bits), 18 (8192 bits)
Max Auth Tries : 3
Idle time : 60 minutes
Rekey Interval : 4096 MB and no time limit
Ciphers : aes128-ctr, aes192-ctr, aes256-ctr, aes128-cbc, aes192-cbc,
aes256-cbc, [email protected]
Macs : hmac-sha1, hmac-sha2-256, hmac-sha2-512
Public key algorithms : ssh-rsa, ssh-dss, x509v3-sign-rsa, x509v3-sign-dss
# show ssh2
SSH module configuration details:
SSH Access : Disabled
Key validity : Invalid
Key type : RSA 2048
TCP port : 22
VR : all
Access profile : not set
Secure Mode : Off
Diffie-Hellman Groups : 16 (4096 bits), 18 (8192 bits)
Max Auth Tries : 3
Idle time : 60 minutes
Rekey Interval : 4096 MB and no time limit
Ciphers : aes128-ctr, aes192-ctr, aes256-ctr, aes128-cbc, aes192-cbc,
aes256-cbc, [email protected]
Macs : hmac-sha1, hmac-sha2-256, hmac-sha2-512
Public key algorithms : ssh-rsa, ssh-dss, x509v3-sign-rsa, x509v3-sign-dss
# show ssh2
SSH module configuration details:
SSH Access : Disabled
Key validity : Invalid
Key type : RSA 2048
TCP port : 22
VR : all
Access profile : not set
Secure Mode : Off
Diffie-Hellman Groups : 1 (1024 bits), 14 (2048 bits), 16 (4096 bits), 18 (8192 bits)
Max Auth Tries : 3
Idle time : 60 minutes
Rekey Interval : 4096 MB and no time limit
Ciphers : aes128-ctr, aes192-ctr, aes256-ctr, aes128-cbc, aes192-cbc,
aes256-cbc, [email protected]
Macs : hmac-sha1, hmac-sha2-256, hmac-sha2-512
Public key algorithms : ssh-rsa, ssh-dss, x509v3-sign-rsa, x509v3-sign-dss
The existing web server in ExtremeXOS allows HTTP clients to access the network login
page. By using HTTPS on the web server, clients securely access the network login
page using an HTTPS enabled web browser. Since SSL encrypts the data exchanged
between the server and the client, you protect your data, including network login
credentials, from unwanted exposure.
HTTPS access is provided through SSL and the Transport Layer Security (TLS1.2). These
protocols enable clients to verify server authenticity to prevent network intruders.
You must upload or generate a certificate for SSL server use. Before you can upload a
certificate, you must purchase and obtain an SSL certificate from an Internet security
vendor. The following security algorithms are supported:
• RSA for public key cryptography (generation of certificate and public-private key
pair, certificate signing). RSA key size between 1,024 and 4,096 bits.
• Symmetric ciphers (for data encryption): RC4.
• Message Authentication Code (MAC) algorithms: RSA Data Security, Inc. MD5
Message-Digest Algorithm and SHA.
Once the certificate is successfully generated, the HTTPS login will be granted. The
generation and validation of the certificate and key behaves in the same way as those
that are generated through the command line.
To use SSL with web-based login (secure HTTP access, HTTPS) you must specify the
HTTPS protocol when configuring the redirect URL.
• To enable SSL and allow secure HTTP (HTTPS) access on the default port (443), use
the following command:
enable web https
• To disable SSL and HTTPS, use the following command:
disable web https
certificates from next time onwards. Use the show ssl command to check the
currently configured Signature hashing algorithm.
• To create a self-signed certificate and private key that can be saved in the EEPROM,
use the following command:
configure ssl certificate privkeylen length country code organization
org_name common-name name
Make sure to specify the following:
◦ Country code (maximum size of 2 characters)
◦ Organization name (maximum size of 64 characters)
◦ Common name (maximum size of 64)
The size of the certificate depends on the RSA key length (privkeylen) and the
length of the other parameters (country, organization name, and so forth) supplied
by the user. For an RSA key length of 4,096, the certificate length is approximately 2
Kb, and the private key length is approximately 3 Kb.
Downloaded certificates and keys are not saved across switch reboots unless you save
your current switch configuration. After you use the save command, the downloaded
certificate is stored in the configuration file and the private key is stored in the
EEPROM.
• To download a certificate key from files stored in a TFTP server, use the following
command:
download ssl ipaddress certificate {ssl-cert | trusted-ca | ocsp-
signature-ca | {csr-cert {ocsp [on | off]}} file_name
Note
For security measures, you can only download a certificate key in the VR-
Mgmt VR.
• To see whether the private key matches with the public key stored in the certificate,
use the following command:
show ssl {detail}
If the operation is successful, the existing private key is overwritten. After the
download is successful, a check is performed to find out whether the private key
downloaded matches the public key stored in the certificate. If the private and
public keys do not match, the switch displays a warning message similar to the
following: Warning: The Private Key does not match with the Public Key
in the certificate. This warning acts as a reminder to also download the
corresponding certificate.
Downloaded certificates and keys are not saved across switch reboots unless you save
your current switch configuration. After you use the save command, the downloaded
certificate is stored in the configuration file and the private key is stored in the
EEPROM.
You can copy and paste the certificate into the command line followed by a blank
line to end the command.
The certificate and private key file should be in PEM format and generated using
RSA as the cryptography algorithm.
• To get the pregenerated private key from the user, use the following command:
configure ssl privkey pregenerated
You can copy and paste the key into the command line followed by a blank line to
end the command.
This command is also used when downloading or uploading the configuration. The
private key is stored in the EEPROM.
The certificate and private key file should be in PEM format and generated using
RSA as the cryptography algorithm.
Additionally, you can create certificate signing requests (CSRs)/private key pairs. The
CSR can then be taken to a Certificate Authority (CA) for signing. The CA then provides
the signed certificate, which can be downloaded to the switch using either of the
commands listed previously.
To view the CSR any time after creating it, use the following command:
Note
For enhanced security, the minimum private key length is 2,048 (previously
it was 1,024). This length is enforced in both private key/self-signed certificate
pairs and private key/CSR pairs.
more information about each command listed in this topic, see Switch Engine
Command References):
Note
All the certificates mentioned below should be in PEM format.
Note
OCSP processes intermediate CA certificates iteratively, one by one.
The OCSP Server’s address must be configured in the Authority Information Access
(AIA) of the peer certificate. Otherwise, the PKI authentication fails. The supported
OCSP responder models are: common issuer model, delegated trusted responder
model, trusted responder model.
• OCSP Signature CA—The certificates of OCSP responders must be configured as
OCSP signature CA and trusted CA. To support Trusted Responder Model (TRM)
of OCSP, the X509v3 certificate of the OCSP responder should be downloaded
using the CLI: download ssl ipaddress certificate {ssl-cert | trusted-ca
| ocsp-signature-ca | {csr-cert {ocsp [on | off]}} file_name using the
ocsp-signature-ca and trusted-ca options. For example:
download ssl 10.120.89.79 certificate trusted-ca cacert.pem
The OCSP signature CA is only required for TRM; it is not used for DTM and common
issuer. This certificate must contain a trusted use extension that permits OCSP
signing. A “trusted use extension” can be appended to a certificate using OpenSSL.
The following example appends a trusted use extension specifying an original file
and the trusted file: ocsp-sig-ca.pem is the original certificate file and the output
file trusted-ocsp-sig-ca.pem is the trusted file: % openssl x509 -in ocsp-sig-ca.pem
-addtrust OCSPSigning -out trusted-ocspsig- ca.pem
-----BEGIN CERTIFICATE-----
MIICgTCCAeqgAwIBAgIJAMng4JQ0MOeIMA0GCSqGSIb3DQEBBQUAMGAxCzAJBgNV
BAYTAlVTMRIwEAYDVQQKEwlFbnRlcmFzeXMxDDAKBgNVBAsTA0RvRDEMMAoGA1UE
CxMDUEtJMSEwHwYDVQQDExhFc3lzIEpJVEMgT0NTUCBSZXNwb25kZXIwHhcNMTIw
MjE3MTg0MzEwWhcNMjIwMjE0MTg0MzEwWjBgMQswCQYDVQQGEwJVUzESMBAGA1UE
ChMJRW50ZXJhc3lzMQwwCgYDVQQLEwNEb0QxDDAKBgNVBAsTA1BLSTEhMB8GA1UE
AxMYRXN5cyBKSVRDIE9DU1AgUmVzcG9uZGVyMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQCuyC9QHBpP/n6aOS+Cx0mbgsQTS1LAUUCwxjvJdILGVfdjFB8PKG+o
W4jm7FKuRHR7uzBvAFzD9DbVkziHl2yIsy4SeiSBTQpNvHPjvUcec3rTlw7saiTw
B+CTqEm1pxcEdRKTvawK2k1ujHML1MABP2CA3SEptO+Ude4UkXMBywIDAQABo0Mw
QTAdBgNVHQ4EFgQUYFhsLiklZh0riJ1Hg7d4HPcLlBUwCwYDVR0PBAQDAgGGMBMG
A1UdJQQMMAoGCCsGAQUFBwMJMA0GCSqGSIb3DQEBBQUAA4GBADU4aQ6f8pHWLd7z
vZ8pJ8e8UCvKok1LmdXbax5TBonyyLmb7AjLrOWjZ7LKSufJL1KOBsetd5Q49LFK
h70V2fRWpGNQszpAV60WfidkNvQ0koZczEjYRQOCtMDUqxMHxsMv2MLEVE9QuGLt
+NWjeeF03E1DT3C4mnbVsTyWPZij
-----END CERTIFICATE-----
-----BEGIN TRUSTED CERTIFICATE-----
MIICgTCCAeqgAwIBAgIJAMng4JQ0MOeIMA0GCSqGSIb3DQEBBQUAMGAxCzAJBgNV
BAYTAlVTMRIwEAYDVQQKEwlFbnRlcmFzeXMxDDAKBgNVBAsTA0RvRDEMMAoGA1UE
CxMDUEtJMSEwHwYDVQQDExhFc3lzIEpJVEMgT0NTUCBSZXNwb25kZXIwHhcNMTIw
MjE3MTg0MzEwWhcNMjIwMjE0MTg0MzEwWjBgMQswCQYDVQQGEwJVUzESMBAGA1UE
ChMJRW50ZXJhc3lzMQwwCgYDVQQLEwNEb0QxDDAKBgNVBAsTA1BLSTEhMB8GA1UE
AxMYRXN5cyBKSVRDIE9DU1AgUmVzcG9uZGVyMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQCuyC9QHBpP/n6aOS+Cx0mbgsQTS1LAUUCwxjvJdILGVfdjFB8PKG+o
W4jm7FKuRHR7uzBvAFzD9DbVkziHl2yIsy4SeiSBTQpNvHPjvUcec3rTlw7saiTw
B+CTqEm1pxcEdRKTvawK2k1ujHML1MABP2CA3SEptO+Ude4UkXMBywIDAQABo0Mw
QTAdBgNVHQ4EFgQUYFhsLiklZh0riJ1Hg7d4HPcLlBUwCwYDVR0PBAQDAgGGMBMG
A1UdJQQMMAoGCCsGAQUFBwMJMA0GCSqGSIb3DQEBBQUAA4GBADU4aQ6f8pHWLd7z
vZ8pJ8e8UCvKok1LmdXbax5TBonyyLmb7AjLrOWjZ7LKSufJL1KOBsetd5Q49LFK
h70V2fRWpGNQszpAV60WfidkNvQ0koZczEjYRQOCtMDUqxMHxsMv2MLEVE9QuGLt
+NWjeeF03E1DT3C4mnbVsTyWPZijMAwwCgYIKwYBBQUHAwk=
-----END TRUSTED CERTIFICATE-----
OCSP nonce cryptographically binds an OCSP request and an OCSP response with an
id-pkix-ocsp-nonce extension to prevent replay attacks.
OCSP override configures one HTTP Online Certificate Status Protocol (OCSP) override
URL for an SSH2 x509v3 server.
When OCSP-nocheck is done for a peer certificate, ExtremeXOS sends the OCSP
request to the OCSP server. The OCSP response is signed by the OCSP responder/
signer. The response also comes along with the certificate of the OCSP signer. When
ExtremeXOS receives the response, it only verifies that the status of the peer certificate
is not revoked.
Setting Up PKI
The following is the sequential workflow involved in the session establishment using
PKI:
PKI Limitations
• All certificates should be in PEM format files.
• Downloading CA certificate chain is not supported.
• Individual CA certificates in a certificate chain should be downloaded one-by-one
using the following command: download ssl ipaddress certificate {ssl-
cert | trusted-ca | ocsp-signature-ca | {csr-cert {ocsp [on | off]}}
file_name
• Downloading CA certificate of size greater than 7.5KB is not recommended.
• Certification Revocation Lists (CRLs)—not supported.
• OCSP stapling—not supported.
To view the status and configuration of the ExtremeXOS image integrity check feature,
use the following command:
<ERROR> INTEGRITY: File <file-path> has invalid hash; expected <expected-hash> actual
<calculate-hash>.
If all critical files have expected hash values (passed integrity check), the following
messages are logged:
If one or more critical files have unexpected hash values (failed integrity check), the
following error messages are logged:
Secure Boot
Secure Boot is a mechanism to ensure the integrity of firmware and software running
on a hardware platform by establishing a chain-of-trust relationship in the boot
process. The chain-of-trust is established by cryptographic checks at each stage of the
boot process to validate the integrity and authenticity of the next stage before it can
execute.
The first link in the chain-of-trust is called the “Hardware Root of Trust” (HWROT), which
is always trusted and protected against any alterations once programmed. For this
version of Secure Boot, the chain-of-trust is established between HWROT, bootloader(s)
(ARM systems)/BIOS (X86 systems). The HWROT comprises hardware components ASP
NOR Flash, TPM, the firmware ‘Secondary Program Loader’ (SPL), and the recovery
bootloader.
If the UBOOT image verification fails during boot-up, the switch halts and enters the
recovery bootloader.
Supported Platforms
ExtremeSwitching 5420, 5520, 5720, 7520, and 7720 series switches.
show system
CLEAR-Flow Overview
CLEAR-Flow is a broad framework for implementing security, monitoring, and anomaly
detection in ExtremeXOS software. Instead of simply looking at the source and
destination of traffic, CLEAR-Flow allows you to specify certain types of traffic that
require more attention. After certain criteria for this traffic are met, the switch can
either take an immediate, predetermined action, or send a copy of the traffic off-switch
for analysis.
CLEAR-Flow is an extension to Access Control Lists (ACLs). You create ACL policy rules
to count packets of interest. CLEAR-Flow rules are added to the policy to monitor these
ACL counter statistics. The CLEAR-Flow agent monitors the counters for the situations
of interest to you and your network. You can monitor the cumulative value of a counter,
the change to a counter over a sampling interval, the ratio of two counters, or even the
ratio of the changes of two counters over an interval. For example, you can monitor the
ratio between TCP SYN and TCP packets. An abnormally large ratio may indicate a SYN
attack.
The counters used in CLEAR-Flow are either defined by you in an ACL entry, or can be
a predefined counter. See Predefined CLEAR-Flow Counters on page 1246 for a list and
description of these counters.
If the rule conditions are met, the CLEAR-Flow actions configured in the rule are
executed. The switch can respond by modifying an ACL that will block, prioritize, or
mirror the traffic, executing a set of CLI commands, or sending a report using a SNMP
(Simple Network Management Protocol) trap or EMS log message.
Note
CLEAR-Flow is available on platforms with an Edge (or higher) or Base (or
higher) license. For more license information, see the Switch Engine
Licensing Guide document.
CLEAR-Flow is supported only on ingress. Any limitations on a given platform
for a regular ACL also hold true for CLEAR-Flow.
Configuring CLEAR-Flow
CLEAR-Flow is an extension to ACL (Access Control List)s, so you must be familiar with
configuring ACLs before you add CLEAR-Flow rules to your ACL policies. Creating ACLs
is described in detail in the ACLs chapter. The chapter describes how to create ACL
policies, the syntax of an ACL policy file, and how to apply ACL policies to the switch.
In this chapter, you will find information about the CLEAR-Flow rules that you add to
ACL policies, including the CLEAR-Flow rules' syntax and behavior.
After creating the ACLs that contain CLEAR-Flow rules, and after applying the ACLs to
the appropriate interface, you enable CLEAR-Flow on the switch. When CLEAR-Flow is
enabled, the agent on the switch evaluates the rules, and when any rules are triggered,
the CLEAR-Flow actions are executed.
• To enable CLEAR-Flow, enter the command:
enable clear-flow
• To disable CLEAR-Flow, enter the command:
disable clear-flow
When you disable the CLEAR-Flow agent on the switch, CLEAR-Flow sampling stops
and all rules are left in the current state.
Note
Any actions triggered while CLEAR-Flow is enabled will continue when
CLEAR-Flow is disabled, unless explicitly stopped.
• Display the CLEAR-Flow rules that have been triggered by entering the command:.
show clear-flow rule-triggered
• Display which ACLs have been modified by CLEAR-Flow rules.
show clear-flow acl-modified
entry <CLFrulename> {
if <match-type> { <match-conditions>;
}
Then {
<actions>;
}
}
entry <CLFrulename> {
if <match-type> { <match-conditions>;
}
Then {
<actions>;
} else {
<actions>;
}
}
In the CLEAR-Flow rule syntax, the CLFrulename is the name of the rule (maximum
of 31 characters). The match-type specifies whether the rule is triggered when any of
the expressions that make up the conditions are true (logical OR), or only when all
of the expressions are true (logical AND). The match-type is an optional element. The
match-conditions specifies the conditions that will trigger the rule, and how often to
evaluate the rule. The actions in the then clause is the list of actions to take when the
rule is triggered, and the optional else clause actions is the list of actions to take after
the rule is triggered, and when the match-conditions later become false.
Note
When you create an ACL policy file that contains CLEAR-Flow rules, the CLEAR-
Flow rules do not have any precedence, unlike the ACL entries. Each CLEAR-
Flow rule specifies how often it should be evaluated. The order of evaluation
depends on the sampling time and when the CLEAR-Flow agent receives the
counter statistics. The order of the CLEAR-Flow rules in the policy file does not
have any significance.
entry <CLFrulename> {
if <match-type> { <expression>;
<expression>;
<expression>;
<expression>;
global-rule;
period <interval>;
}
Then {
<actions>;
} else {
<actions>;
}
}
entry cflow_count_rule_example {
if { count counter1 > 1000000 ;
period 10 ;
}
Then {
<actions>;
}
}
The global-rule statement is optional and affects how the counters are treated. An ACL
that defines counters can be applied to more than one interface. You can specify the
global-rule statement so that counters are evaluated for all the applied interfaces. For
example, if a policy that defines a counter is applied to port 1:1 and 2:1, a CLEAR-Flow
rule that used the global-rule statement would sum up the counts from both ports.
Without the global-rule statement, the CLEAR-Flow rule would look at only the counts
received on one port at a time.
The period interval statement is optional and sets the sampling interval, in seconds.
This statement specifies how often the rule is evaluated by the CLEAR-Flow agent. If
not specified, the default value is 5 seconds.
The five CLEAR-Flow rule expressions are: count; delta; ratio; delta-ratio; and rule. All of
these expressions check the values of counters to evaluate if an action should be taken.
The counters are either defined in the ACL entries that are defined on the switch, or are
the predefined CLEAR-Flow counters. When you use a counter statement in an ACL,
you are defining the counter used by CLEAR-Flow to monitor your system.
Count Expression
A CLEAR-Flow count expression compares a counter with the threshold value. The
following is the syntax for a CLEAR-Flow count expression:
count <counterName> REL_OPER <countThreshold> ;
hysteresis <hysteresis> ;
The hysteresis hysteresis statement is optional and sets a hysteresis value for the
threshold. After the count statement is true, the value of the threshold is adjusted so
that a change smaller than the hysteresis value will not cause the statement to become
false. For statements using the REL_OPER > or >=, the hysteresis value is subtracted
from the threshold; for < or <=, the hysteresis value is added to the threshold.
Table 134 is an example of evaluating the CLEAR-Flow count expression above multiple
times. Notice that the rule is not triggered until evaluation 3, when the value of the
counter is greater than 1,000,000.
See Count Expression Example on page 1250 for a full example of an ACL and a CLEAR-
Flow rule using a count expression.
Delta Expression
A CLEAR-Flow delta expression computes the difference from one sample to the next
of a counter value.
This difference is compared with the threshold value. The following is the syntax for a
CLEAR-Flow delta expression:
delta <counterName> REL_OPER <countThreshold> ;
hysteresis <hysteresis> ;
The hysteresis hysteresis statement is optional and sets a hysteresis value for the
threshold. After the delta statement is true, the value of the threshold is adjusted so
that a change smaller than the hysteresis value will not cause the statement to become
false. For statements using the REL_OPER > or >=, the hysteresis value is subtracted
from the threshold; for < or <=, the hysteresis value is added to the threshold.
will only be true after the delta of the counter reaches at least 100. At the time
it becomes true, the hysteresis value is subtracted from the threshold (setting the
threshold to 90). With the threshold now at 90, the condition would stay true until the
delta of the counter becomes less than 90.
If the expression becomes false, the threshold is reset to its original value. You would
use the hysteresis value to prevent the expression from vacillating between the true
and false states if the difference between the counter values is near the threshold. If the
hysteresis value is greater than the threshold value, the hysteresis value will be set to 0.
Table 135 is an example of evaluating the CLEAR-Flow delta expression above multiple
times. Notice that the rule is not triggered until evaluation 4, when the delta value (the
change in the counter value from one evaluation to the next) is greater than or equal
to 100. After the rule is triggered, it remains triggered until the delta value is less than
90 (the original threshold minus the hysteresis), at evaluation 7. At evaluation 9, the rule
is again triggered when the delta reaches 100. The rule will remain triggered until the
delta drops below 90.
See Delta Expression Example on page 1250 for a full example of an ACL and a CLEAR-
Flow rule using a delta expression.
Ratio Expression
A CLEAR-Flow ratio expression compares the ratio of two counter values with the
threshold value.
The min-value statement is optional, and sets a minimum value for the counters. If
either counter is less than the minimum value, the expression evaluates to false. If not
specified, the minimum value is 1.
The hysteresis hysteresis statement is optional and sets a hysteresis value for the
threshold. After the ratio statement is true, the value of the threshold is adjusted so
that a change smaller than the hysteresis value will not cause the statement to become
false. For statements using the REL_OPER > or >=, the hysteresis value is subtracted
from the threshold; for < or <=, the hysteresis value is added to the threshold.
is true only after the ratio of the counters reaches at least 5 and the counter values are
at least 100. At the time it became true, the hysteresis value would be subtracted from
the threshold (setting the threshold to 4). With the threshold now at 4, the condition
would stay true until the ratio of the counters became less than 4.
If the statement becomes false, the threshold is reset to its original value. You can use
the hysteresis value to prevent the rule from vacillating between the true and false
states if the ratio between the counter values is near the threshold. If the hysteresis
value is greater than the threshold value, the hysteresis value will be set to 0.
Table 136 is an example of evaluating the CLEAR-Flow ratio expression above multiple
times. Notice that the rule is not triggered at the first evaluation because both counters
have not yet reached the min-value of 100. The rule first triggers at evaluation 3, when
ratio of the two counters exceeds 5. After the rule is triggered, it remains triggered until
the ratio value is less than 4 (the original threshold minus the hysteresis), at evaluation
5. At evaluation 7, the rule is again triggered when the ratio reaches 5. The rule will
remain triggered until the ratio drops below 4.
See Ratio Expression Example on page 1251 for a full example of an ACL and a CLEAR-
Flow rule using a ratio expression.
Delta-Ratio Expression
A CLEAR-Flow delta-ratio expression is a combination of the delta and ratio expressions.
The CLEAR-Flow agent computes the difference from one sample to the next for each
of the two counters. The ratio of the differences is then compared to the threshold
value. The following is the syntax for a CLEAR-Flow delta-ratio expression (note the
similarity to the delta expression):
delta-ratio <counterNameA> <counterNameB> REL_OPER <countThreshold> ;
min-value <min-value> ;
hysteresis <hysteresis> ;
The min-value statement is optional and sets a minimum value for the counters. If
either counter is less than the minimum value, the expression evaluates to false. If not
specified, the minimum value is 1.
The hysteresis hysteresis statement is optional, and sets a hysteresis value for the
threshold. After the ratio statement is true, the value of the threshold is adjusted so
that a change smaller than the hysteresis value will not cause the statement to become
false. For statements using the REL_OPER > or >=, the hysteresis value is subtracted
from the threshold; for < or <=, the hysteresis value is added to the threshold.
will only be true after the ratio of the deltas of the counters reached at least 5. At
the time it became true, the hysteresis value would be subtracted from the threshold
(setting the threshold to 4). With the threshold now at 4, the condition would stay true
until the ratio of the deltas of the counters became less than 4.
If the statement becomes false, the threshold is reset to its original value. You can use
the hysteresis value to prevent the rule from vacillating between the true and false
states if the ratio of the deltas of the counters is near the threshold. If the hysteresis
value is greater than the threshold value, the hysteresis value will be set to 0.
See Delta-Ratio Expression Example on page 1252 for a full example of an ACL and a
CLEAR-Flow rule using a delta-ratio expression.
Rule-True-Count Expression
A CLEAR-Flow rule-true-count expression compares how many times a CLEAR-Flow
rule is true with a threshold value.
One use is to combine multiple rules together into a complex rule. The following is the
syntax for a CLEAR-Flow rule-true-count expression:
rule-true-count <ruleName> REL_OPER <countThreshold> ;
The rule-true-count statement specifies how to compare how many times a CLEAR-
Flow rule is true with the expression threshold. The ruleName is the name of the
CLEAR-Flow rule to monitor and the countThreshold is the value compared with
the number of times the rule is true. The REL_OPER is selected from the relational
operators for greater than, greater than or equal to, less than, or less than or equal to (>,
>=, <, <=).
will only be true after the CLEAR-Flow rule cflow_count_rule_example has been true
at least five times. If the rule cflow_count_rule_example becomes true and remains
true, and the period for cflow_count_rule_example is the default five seconds, the rule
would have to be true for at least 20 seconds before the rule-true-count expression will
become true. If the period of the rule cflow_count_rule_example is 10 seconds, it will
need to be true for at least 40 seconds before the rule-true_count expression becomes
true.
Because more than one action can be taken in a single rule, the collection of actions is
referred to as an action list. The following sections describe the different rule actions:
• Permit/Deny on page 1244
• QoS Profile on page 1244
• Mirror on page 1244
• SNMP Trap on page 1244
• Syslog on page 1245
• CLI on page 1245
Additionally, the SNMP trap, syslog, and CLI rule actions can use keyword substitution
to make the rule actions more flexible. The keyword substitutions are described at the
end of the rule action descriptions. See Keyword Substitution on page 1245 for more
information.
Permit/Deny
This action modifies an existing ACL rule to permit or block traffic that matches that
rule.
• To change an ACL to permit, use the following syntax:
permit <ACLRuleName>
• To change an ACL to deny, use the following syntax:
deny <ACLRuleName>
QoS Profile
This action modifies an existing ACL rule to set the QoS (Quality of Service) profile for
traffic that matches that rule.
• To change the ACL to forward to QoS profile <QPx>, use the following syntax:
qosprofile <ACLRuleName> <QPx>
For example:
qosprofile acl_rule_1 QP3
Mirror
This action modifies an existing ACL rule to mirror traffic that matches that rule, or to
stop mirroring that traffic. The mirroring port must be enabled when mirroring on an
ACL rule is turned on. This could be configured earlier, or use the CLI action to execute
CLI commands to configure mirroring at the same time.
• To change the ACL to mirror traffic, use the following syntax:
mirror [add|delete] <ACLRuleName>
SNMP Trap
This action sends an SNMP trap message to the trap server, with a configurable ID
and message string, when the rule is triggered. The message is sent periodically with
interval period seconds. If period is 0, or if this optional parameter is not present, the
message is sent only once when the rule is triggered. The interval must be a multiple of
the rule sampling/evaluation interval, or the value will be rounded down to a multiple
of the rule sampling/evaluation interval.
• To send an SNMP trap, use the following syntax:
snmptrap <id> <message> <period>
Syslog
This action sends log messages to the ExtremeXOS EMS sever. The possible values for
message level are: DEBU, INFO, NOTI, WARN, ERRO, and CRIT.
The message is sent periodically with interval period seconds. If period is 0, or if this
optional parameter is not present, the message is sent only once when the rule is
triggered. The interval must be a multiple of the rule sampling/evaluation interval, or
the value will be rounded down to a multiple of the rule sampling/evaluation interval.
• To send a log message, use the following syntax:
syslog <message> <level> <period>
CLI
This action executes a CLI command. There is no authentication or checking the
validity of each command. If a command fails, the CLI will log a message in the EMS log.
• To execute a CLI command, use the following syntax:
cli <cliCommand>
where <cliCommand> is a quoted string.
Keyword Substitution
To make the SNMP trap, syslog, and CLI actions more flexible, keyword substitutions are
supported in the syslog and SNMP trap message strings, as well as in the CLI command
strings.
Table 138 on page 1246 lists the keywords and their substitutions.
For the $vlanName and $port keyword, the keyword all will be substituted for those
rules in the wildcard ACL Some CLI commands do not support the all keyword, so
caution must be used with CLI commands that use this feature.
A maximum of ten different counter substitutions can be used per rule, including
counters used in expressions. For example, if a rule uses four counters in its expressions,
then we can use six more different counters in keyword substitutions, for a total of ten.
To allow you to use these statistics in CLEAR-Flow expressions, these kernel counters
are now available for use with CLEAR-Flow. Most of the counter names are based
directly on well known names from common kernel structures and MIBs. The names
are modified from their familiar form by pre-pending the characters sys_ to the counter
names.
7 Most of these descriptions can be found in RFC 2011, SNMPv2 Management Information Base
for the Internet Protocol using SMIv2.
8 The length of an ICMP packet depends on the type and code field.
After it receives the counter value, it will evaluate the CLEAR-Flow rule. If the value
of counter1 is greater than 1,000,000 packets, the CLEAR-Flow agent will send a trap
message to the SNMP master, and change the ACL acl_rule1 to block traffic (acl_rule1 is
modified to a deny rule).
Since there is no period configured for the snmptrap statement, the message is sent
only once.
entry acl_rule1 {
if {
destination-address 192.168.16.0/24;
destination-port 2049;
protocol tcp;
} then {
count counter1;
}
}
entry cflow_count_rule_example {
if { count counter1 > 1000000 ;
period 10 ;
}
Then {
snmptrap 123 "Traffic on acl_rule1 exceeds threshold";
deny acl_rule1;
}
}
After it receives the counter value, it will then evaluate the rule. If the delta (change)
of the counter1 value from the last sampled value ten seconds ago is greater than or
equal to 1,000 packets, the CLEAR-Flow agent will send a trap message to the SNMP
master and change the ACL acl_rule1 to move the traffic to QP3. In addition, reduce
the peak rate to 5 Kbps on QP3. As long as the delta continues to be greater than
or equal to 1000 packets, the CLEAR-Flow agent will repeatedly send a trap message
every 120 seconds. When the delta falls below the threshold, the agent will execute the
two actions in the else portion; it will send a single SNMP trap message, return the
traffic to QP1, and reset QP3 to its original bandwidth.
entry acl_rule1 {
if {
destination-address 192.168.16.0/24;
destination-port 2049;
protocol tcp;
} then {
count counter1;
}
}
entry cflow_delta_rule_example {
if { delta counter1 >= 100000 ;
period 10 ;
} then {
snmptrap 123 "Traffic to 192.168.16.0/24 exceed rate limit" 120;
qosprofile acl_rule1 QP3;
cli "configure qosprofile qp3 peak_rate 5 K ports all" ;
} else {
snmptrap 123 "Traffic to 192.168.16.0/24 falls below rate limit";
qosprofile acl_rule1 QP1;
cli "configure qosprofile qp3 maxbw 100 ports all" ;
}
}
After it receives the two counter values, it will then check each counter value against
its minimum valid threshold, which is 1,000. If both of the counter values is greater
than 1,000, it then calculates the ratio of counter1 and counter2. If the ratio is greater
than 5, the agent will execute the actions in the then clause, which consists of
logging a message to the syslog server. Before logging the syslog string, the agent
will replace the $ruleName keyword with the string cflow_ratio_rule_example, the
$ruleValue keyword with the calculated ratio value, and the $ruleThreshold keyword
with a value of 5. If either of the counter values is below the minimum value of 1,000, or
the ratio is below the threshold of 5, the expression is false and no action is taken.
entry acl_rule1 {
if {
protocol udp;
} then {
count counter1;
}
}
entry acl_rule2 {
if {
protocol tcp;
} then {
count counter2;
}
}
entry cflow_ratio_rule_example {
if { ratio counter1 counter2 > 5 ;
period 2;
min-value 1000;
}
Then {
syslog "Rule $ruleName threshold ratio $ruleValue exceeds limit $ruleThreshold";
}
}
After it receives the two counter values, it will first calculate the delta for each of the
counters and then check each counter’s delta value for its minimum value, which is
100. If both of the counters’ delta values are greater than 100, it then calculates the
ratio of the delta of two counters. If the ratio is greater than 10, then the agent will log
a warning message and deny all SYN traffic on the interface. No period value for the
syslog message is given, so the message will be logged once when the expression first
becomes true. When the expression transitions from true to false, a different message
will be logged and the SYN traffic on the interface will be permitted again. The delta-
ratio value has to fall below a threshold of 8 for the expression to be evaluated to be
false.
entry acl_syn {
if {
protocol tcp_flags SYN;
} then {
count tcpSynCounter;
}
}
entry acl_tcp {
if {
protocol tcp;
} then {
count tcpCounter;
}
}
entry cflow_delta_ratio_rule_example {
if { delta-ratio tcpSynCounter tcpCounter > 10 ;
period 2;
min-value 100;
threshold 8;
} then {
syslog "Syn attack on port $port is detected" WARN;
deny acl_syn;
} else {
syslog "Syn attack on port $port is no longer detected" WARN;
permit acl_syn;
}
}
This chapter provides an overview and discusses various topologies of EAPS (Extreme
Automatic Protection Switching) feature. The chapter offers configuration and
monitoring details, and also provides configuration examples.
EAPS Benefits
EAPS offers the following benefits:
• Fast Recovery time for link or node failures—When a link failure or switch failure
occurs, EAPS provides fast recovery times. EAPS provides resiliency for voice, video
and data services.
• Scalable network segmentation and fault isolation—EAPS domains can protect
groups of multiple VLANs, allowing scalable growth and broadcast loop protection.
EAPS domains provide logical and physical segmentation, which means the failures
in one EAPS ring do not impact network service for other rings and VLANs.
• Resilient foundation for non-stop IP routing services—EAPS provides a resilient
foundation for upper level routing protocols such as OSPF (Open Shortest Path
First) and BGP (Border Gateway Protocol), minimizing route-flapping and dropped
neighbors within the routed IP network.
• Predictable convergence regardless of failure location—EAPS provides consistent
and predictable recovery behavior regardless of where link failures occur. The simple
blocking architecture and predictable performance of EAPS allows for enforceable
Service Level Agreements (SLAs). This allows easier network troubleshooting and
failure scenario analysis without lengthy testing or debugging on live production
networks.
EAPS protection switching is similar to what can be achieved with the STP (Spanning
Tree Protocol), but EAPS offers the advantage of converging in less than one second
when a link in the ring breaks.
An Ethernet ring built using EAPS can have resilience comparable to that provided by
SONET rings, at a lower cost and with fewer restraints (such as ring size). The EAPS
technology developed by Extreme Networks to increase the availability and robustness
of Ethernet rings is described in RFC 3619: Extreme Networks’ Ethernet Automatic
Protection Switching (EAPS) Version 1.
This section describes how this type of EAPS configuration operates. Later sections
describe more complex configurations.
An EAPS domain consists of one master node and one or more transit nodes (see
Figure 129), and includes one control VLAN (Virtual LAN) and one or more protected
VLANs.
A domain is a single instance of the EAPS protocol that defines the scope of protocol
operation. A single logical EAPS domain typically exists on a given physical ring
topology (fiber or copper).
One ring port of the master node is designated the master node’s primary port (P),
and another port is designated as the master node’s secondary port (S) to the ring. In
normal operation, the master node blocks the secondary port for all protected VLAN
traffic, thereby preventing a loop in the ring. (The spanning tree protocol, STP, provides
the same type of protection.) Traditional Ethernet bridge learning and forwarding
database mechanisms direct user data around the ring within the protected VLANs.
Note
Although primary and secondary ports are configured on transit nodes, both
port types operate identically as long as the transit node remains a transit
node. If the transit node is reconfigured as a master node, the configured
states of the primary and secondary ports apply.
The control VLAN is a dedicated 802.1q tagged VLAN that is used to transmit and
receive EAPS control frames on the ring. The control VLAN can contain only two EAPS
ring ports on each node. Each EAPS domain has a unique control VLAN, and control
traffic is not blocked by the master node at any time. The control VLAN carries the
following EAPS control messages around the ring:
• Health-check messages, which are sent from the master node primary port. Transit
nodes forward health-check messages toward the master node secondary port on
the control VLAN. When the master node receives a health check message on the
secondary port, the EAPS ring is considered intact.
• Link-down alert messages, which are sent from a transit node to the master node
when the transit node detects a local link failure.
• Flush-FDB (forwarding database) messages, which are sent by the master node to
all transit nodes when ring topology changes occur. Upon receiving this control
frame, the transit node clears its MAC address forwarding table (FDB) and relearns
the ring topology.
When the master node detects a failure, due to an absence of health-check messages
or a received link-down alert, it transitions the EAPS domain to the Failed state and
unblocks its secondary port to allow data connectivity in the protected VLANs.
Note
Minimal EAPS support is provided at all license levels. EAPS multiple ring
topologies and common link topologies are supported at higher license levels
as described in the Switch Engine Licensing Guide document.
The simplest multiple ring topology uses a single switch to join two EAPS rings.
The common link feature uses two switches, which share a common link, to provide
redundancy and link multiple EAPS rings.
In this example, there is an EAPS domain with its own control VLAN running on ring 1
and another EAPS domain with its own control VLAN running on ring 2. A data VLAN
that spans both rings is added as a protected VLAN to both EAPS domains to create an
overlapping VLAN. Switch S5 has two instances of EAPS domains running on it, one for
each ring.
Figure 131 shows an example of a multiple ring topology that uses the EAPS common
link feature to provide redundancy for the switches that connect the rings.
In the example shown earlier, switch S5 could be a single point of failure. If switch S5
were to go down, users on Ring 1 would not be able to communicate with users on
Ring 2. To make the network more resilient, you can add another switch. A second
switch, S10, connects to both rings and to S5 through a common link, which is common
to both rings.
The EAPS common link requires special configuration to prevent a loop that spans both
rings. The software entity that requires configuration is the eaps shared-port, so the
common link feature is sometimes called the shared port feature.
Note
If the shared port is not configured and the common link goes down, a
superloop between the multiple EAPS domains occurs.
The correct EAPS common link configuration requires an EAPS shared port at each
end of the common link. The role of the shared port (and switch) at each end of the
common link must be configured as either controller or partner. Each common link
requires one controller and one partner for each EAPS domain. Typically the controller
and partner nodes are distribution or core switches. A controller or partner can also
perform the role of master or transit node within its EAPS domain.
During normal operation, the master node on each ring protects the ring as described
in EAPS Single Ring Topology on page 1255. The controller and partner nodes work
together to protect the overlapping VLANs from problems caused by a common link
failure or a failed controller (see Figure 132).
To detect common-link faults, the controller and partner nodes send segment health
check messages at one-second intervals to each other through each segment. A
segment is the ring communication path between the controller and partner. The
common link completes the ring, but it is a separate entity from the segment. To
discover segments and their up or down status, segment health-check messages are
sent from controller to partner, and also from partner to controller (see Figure 133).
With one exception, when a common link fails, each master node detects the failure
and unblocks its secondary port, as shown in Figure 134.
The controller and partner nodes immediately detect the loop, and the controller does
the following:
• Selects an active-open port for protected VLAN communications. The active-open
port is the port with the smallest segment-port among all segments that are in “up”
state.
• Blocks protected VLAN communications on all segment ports except the active-
open port.
Note
When a controller goes into or out of the blocking state, the controller sends a
flush-fdb message to flush the FDB in each of the switches in its segments. In a
network with multiple EAPS ports in the blocking state, the flush-fdb message
gets propagated across the boundaries of the EAPS domains.
Note
If CFM is not used, it is recommended to have a direct Link connected between
EAPS Controller Node and EAPS Partner Node.
The exception mentioned above occurs when the partner node is also a master node,
and the shared port that fails is configured as a primary port. In this situation, the
master node waits for a link-down PDU from the controller node before opening the
secondary port. This delay prevents a loop that might otherwise develop if the master/
partner node detects the link failure before the controller node.
Note
If the common link and a ring link fail, and if the common link restores before
the ring link, traffic down time can be as long as three seconds. This extended
delay is required to prevent loops during the recovery of multiple failed links.
When a common link recovers, each master node detects that the ring is complete
and immediately blocks their secondary ports. The controller also detects the recovery
and puts its shared port to the common link into a temporary blocking state called
pre-forwarding as shown in Figure 135.
Note
If you are using the older method of enabling STP instead of EAPSv2 to block
the super loop in a shared-port environment, you can continue to do so. In all
other scenarios, we recommend that you do not use both STP and EAPS on
the same port.
Figure 138 shows a core topology with two access rings. In this topology, there are two
EAPS common links.
Right-Angle Topology
In the right-angle topology, there are still two EAPS common links, but the common
links are adjacent to each other.
Figure 142 shows a single large core ring with multiple access rings hanging off of it.
This is an extension of a basic core configuration.
Fast Convergence
The fast convergence mode allows EAPS to converge more rapidly. In EAPS fast
convergence mode, the link filters on EAPS ring ports are turned off. In this case, an
instant notification is sent to the EAPS process if a port’s state transitions from up to
down or vice-versa.
You must configure fast convergence for the entire switch, not by EAPS domain.
The primary node executes the switch’s management functions, and the backup node
acts in a standby role. Hitless failover transfers switch management control from the
primary to the backup and maintains the state of EAPS. EAPS supports hitless failover.
You do not explicitly configure hitless failover support; rather, if you are operating with
redundancy in a SummitStack, hitless failover is available.
Note
Not all platforms support hitless failover in the same software release. To verify
if the software version you are running supports hitless failover, see the table
in Protocol Support for Hitless Failover on page 89. For more information about
protocol and platform support for hitless failover, see Understanding Hitless
Failover Support on page 88.
To support hitless failover, the primary node replicates all EAPS PDUs to the backup,
which allows the backup to be aware of the EAPS domain state. Since both nodes
receive EAPS PDUs, each node maintains equivalent EAPS states.
By knowing the state of the EAPS domain, the EAPS process running on the backup
node can quickly recover after a primary node failover. Although both nodes receive
EAPS PDUs, only the primary transmits EAPS PDUs to neighboring switches and
actively participates in EAPS.
Note
For instructions on how to manually initiate hitless failover, see Relinquishing
Primary Status on page 84.
EAPS Licensing
Different EAPS features are offered at different license levels.
For complete information about software licensing, including how to obtain and
upgrade your license and what licenses are appropriate for these features, in the
Switch Engine Licensing Guide document.
Configuring EAPS
1. Create an EAPS domain and assign a name to the domain as described in Creating
and Deleting an EAPS Domain on page 1267.
2. Create and add the control VLAN to the domain as described in Adding the EAPS
Control VLAN on page 1267.
3. Create and add the protected VLAN(s) to the domain as described in Adding
Protected VLANs on page 1268.
4. Configure the EAPS mode (master or transit) for the switch in the domain as
described in Defining the Switch Mode (Master or Transit) on page 1268.
5. Configure the EAPS ring ports, including the master primary and secondary ring
ports, as described in Configuring the Ring Ports on page 1269.
Note
If you configure a VMAN on a switch running EAPS, make sure you configure
the VMAN attributes on all of the switches that participate in the EAPS domain.
For more information about VMANs, see VMAN (PBN) and PBBN.
Note
A control VLAN cannot belong to more than one EAPS domain. If the
domain is active, you cannot delete the domain or modify the configuration
of the control VLAN.
The control VLAN must NOT be configured with an IP address. In addition,
only ring ports may be added to this control VLAN. No other ports can be
members of this VLAN. Failure to observe these restrictions can result in a
loop in the network.
The ring ports of the control VLAN must be tagged.
Note
When you configure a protected VLAN, the ring ports of the protected VLAN
must be tagged (except in the case of the default VLAN).
For more information see, Disabling EAPS Loop Protection Warning Messages on page
1272.
On the master node, one ring port must be configured as the primary port, and the
other must be configured as the secondary port.
We recommend that you keep the loop protection warning messages enabled. If you
have considerable knowledge and experience with EAPS, you might find the EAPS loop
protection warning messages unnecessary.
For information on configuring a VLAN for EAPS, see the following sections:
• Adding the EAPS Control VLAN on page 1267
• Adding Protected VLANs on page 1268
For more information see, Disabling EAPS Loop Protection Warning Messages on page
1272.
In a ring that contains switches made by other companies, the polling timers provide
an alternate way to detect ring breaks. The master periodically sends hello PDUs at
intervals determined by the hello PDU timer and waits for a reply. If a hello PDU reply is
not received before the failtime timer expires, the switch detects a failure and responds
by either sending an alert or opening the secondary port. The response action is
defined by a configuration command.
• Set the polling timer values the master node uses for detecting ring failures.
configure eaps name hellotime seconds milliseconds
Note
These commands apply only to the master node. If you configure the polling
timers for a transit node, they are ignored. If you later reconfigure that
transit node as the master node, the polling timer values are used as the
current values.
Use the hellotime keyword and its associated parameters to specify the amount
of time the master node waits between transmissions of health check messages on
the control VLAN. The combined value for seconds and milliseconds must be greater
than 0. The default value is 1 second.
Use the failtime keyword and its associated parameters to specify the amount of
time the master node waits before the failtimer expires. The combined value for
seconds and milliseconds must be greater than the configured value for hellotime.
The default value is 3 seconds.
Note
Increasing the failtime value increases the time it takes to detect a ring
break using the polling timers, but it can also reduce the possibility of
incorrectly declaring a failure when the network is congested.
Use the send-alert parameter to send an alert when the failtimer expires. Instead
of going into a failed state, the master node remains in a Complete or Init state,
maintains the secondary port blocking, and writes a critical error message to syslog
warning the user that there is a fault in the ring. An SNMP (Simple Network
Management Protocol) trap is also sent.
Use the open-secondary-port parameter to open the secondary port when the
failtimer expires.
For more information see, Disabling EAPS Loop Protection Warning Messages on page
1272.
Note
Possible factors affecting EAPS fast convergence time:
• The medium type of the link being flapped (Fiber link-down events are
detected faster than copper, causing better convergence).
• Number of VLANs protected by the EAPS domain (convergence time
increases with the number of protected VLANs).
• Number of FDB entries present during the switch over (convergence time
increases with the number of FDBs learned).
• Topology change event (link down or link up) causes the master node to
send an FDB flush to all transits. In the event ofa shared port failure, FDB is
flushed twice, causing an increase in convergence time.
• Number of hops between the switch where the link flap happens and the
master node (convergence increases with the number of hops).
• To enable or disable fast convergence on the switch, use the following command:
configure eaps fast-convergence[off | on]
For more information see, Disabling EAPS Loop Protection Warning Messages on page
1272.
Note
EAPS multicast flooding must be enabled before the add-ring-ports feature
will operate. For information on enabling EAPS multicast flooding, see the
command:
configure eaps multicast temporary-flooding [on | off]
We recommend that you keep the loop protection warning messages enabled. If you
have considerable knowledge and experience with EAPS, you might find the EAPS loop
protection warning messages unnecessary.
1. To unconfigure an EAPS primary or secondary ring port for an EAPS domain, use the
following command:
unconfigure eaps eapsDomain [primary | secondary] port
To prevent loops in the network, the switch displays by default a warning message
and prompts you to unconfigure the specified EAPS primary or secondary ring port.
2. When prompted, do one of the following:
a. Enter y to unconfigure the specified port.
b. Enter n or press [Return] to cancel this action.
The following command example unconfigures this node’s EAPS primary ring
port on the domain “eaps_1”:
unconfigure eaps eaps_1 primary port
WARNING: Unconfiguring the Primary port from the EAPS domain could cause a loop in
The network! Are you sure you want to unconfigure the Primary EAPS Port? (y/n)
3. Enter y to continue and unconfigure the EAPS primary ring port. Enter n to cancel
this action.
The switch displays a similar warning message if you unconfigure the secondary
EAPS port.
For more information see, Disabling EAPS Loop Protection Warning Messages on page
1272.
We recommend keeping the loop protection warning messages enabled. If you have
considerable knowledge and experience with EAPS, you might find the EAPS loop
protection warning messages unnecessary. For example, if you use a script to configure
your EAPS settings, disabling the warning messages allows you to configure EAPS
without replying to each interactive yes/no question.
• To disable loop protection messages, use the following command:
configure eaps config-warnings off
• To re-enable loop protection messages, use the following command:
configure eaps config-warnings on
Note
When a common link fails, one of the segment ports becomes the active-
open port, and all other segment ports are blocked to prevent a loop
for the protected VLANs. For some topologies, you can improve network
performance during a common link failure by selecting the port numbers
to which segments connect. For information on how the active-open port is
selected, see Common Link Fault Detection and Response.
1. Create a shared port for the common link as described in Creating and Deleting a
Shared Port on page 1274.
2. Configure the shared port as either a controller or a partner as described in Defining
the Mode of the Shared Port on page 1274.
3. Configure the link ID on the shared port as described in Configuring the Link ID of
the Shared Port on page 1275.
4. If desired, configure the polling timers and timeout action as described in
Configuring the Shared Port Timers and Timeout Action on page 1275.
This step can be configured at any time, even after the EAPS domains are running.
5. Configure EAPS on each ring as described in Single Ring Configuration Tasks on
page 1266.
Note
A switch can have a maximum of two shared ports.
The shared port on the other end of the common link must be configured to be the
partner. This end does not participate in any form of blocking. It is responsible for only
sending and receiving health-check messages.
• To configure the mode of the shared port, use the following command:
configure eaps shared-port ports mode controller | partner
If you have multiple adjacent common links, we recommend that you configure
the link IDs in ascending order of adjacency. For example, if you have an EAPS
configuration with three adjacent common links, moving from left to right of the
topology, configure the link IDs from the lowest to the highest value.
• To configure the link ID of the shared port, use the following command:
configure eaps shared-port ports link-id id
Note
You might see a slightly different display, depending on whether you enter
the command on the master node or the transit node.
If you specify a domain with the optional eapsDomain parameter, the command
displays status information for a specific EAPS domain.
The display from the show eaps detail command shows all the information shown
in the show eaps eapsDomain command for all configured EAPS domains.
If you specify the name of an EAPS domain, the switch displays counter information
related to only that domain.
If you specify the global keyword, the switch displays a list of the counter totals for
all domains. To see the counters for a specific domain, you must specify the domain
name.
Note
If a PDU is received, processed, and consumed, only the Rx counter
increments. If a PDU is forwarded in slow path, both the Rx counter and
Fw counter increment.
If you specify a shared port, the command displays information about that specific
port.
You can use the detail keyword to display more detailed status information about
the segments and VLANs associated with each shared port.
If you specify the global keyword, the switch displays a list of counters that show
the totals for all shared ports together. To view the counters for a single shared port,
enter the command with the port number.
If you specify a particular EAPS segment port, the switch displays counter
information related to only that segment port for the specified EAPS domain.
Configuration Examples
Note
Actual implementation steps on a production network may differ based on the
physical topology, switch models, and software versions deployed.
The sample STP network is a simple two-switch topology connected with two Gigabit
Ethernet trunk links, which form a broadcast loop. Both Extreme Networks switches
are configured for 802.1D mode STP running on a single data VLAN named Data. The
sample STP network for migration to EAPS is shown in Figure 143.
After you verify that EAPS is protecting the data VLAN, you can safely remove the STP
configuration.
Now, verify whether the data VLAN is removed from the STP domain, and then disable
the STP protocol.
In the network core, EAPS is used with OSPF to provide a high-performance IP routing
backbone with zero downtime or route flaps. Using EAPS and dual-homed server farms
in the data center provides high availability for mission-critical server resources.
The collapsed core/aggregation layer and data center also make use of EAPS resilient
ring topology to ensure network availability to all critical sources.
Utilizing EAPS and redundant uplink ports on edge switches increases network
resiliency and availability. Edge switches connect their primary and secondary uplink
trunk ports to one or more switches in the aggregation network layer (as shown in
Figure 145). If the primary uplink port fails, traffic can use the alternate secondary
uplink.
By putting each edge switch and VLAN into a separate EAPS domain, you gain
resiliency and management benefits. First, any link or switch failures in one ring do
not affect the other edge switches. Also, this type of modular design allows you to add
edge switches easily without impacting other parts of the network. Troubleshooting
becomes easier as the scope of failures can be quickly isolated to a specific EAPS ring or
switch.
This section describes how to design the access edge network switches as EAPS
transit nodes to provide Ethernet L2 connectivity services. In this example, upstream
aggregation switches perform Layer 3 (L3) inter-VLAN routing functions. Although not
discussed in the scope of this section, the edge switches could also be configured with
additional routing, QoS, WLAN (Wireless Local Area Network), or security features.
• Create the EAPS domain, configure the switch as a transit node, and define the EAPS
primary and secondary ports as shown in the following example:
* Edge-Switch#1:1 # create eaps e1-domain
* Edge-Switch#1:2 # configure eaps e1-domain mode transit
* Edge-Switch#1:3 # configure eaps e1-domain primary port 49
* Edge-Switch#1:4 # configure eaps e1-domain secondary port 50
1. Create the EAPS control VLAN and configure its 802.1q tag and ring ports.
2. Configure the control VLAN as part of the EAPS domain. The control VLAN only
contains the EAPS primary and secondary ports configured earlier. The following
commands accomplish these tasks:
* Edge-Switch#1:5 # create vlan control-1
* Edge-Switch#1:6 # configure vlan control-1 tag 4000
* Edge-Switch#1:8 # configure vlan control-1 add port 49,50 tagged
* Edge-Switch#1:9 # configure eaps e1-domain add control vlan control-1
1. Create at least one EAPS protected VLAN, and configure its 802.1q tag and ports.
2. Configure the protected VLAN as part of the EAPS domain.
The Protect VLAN contains the EAPS primary and secondary ports as tagged VLAN
ports. Additional VLAN ports connected to client devices such as a PC could be
untagged or tagged. The following commands accomplish these tasks and should
be repeated for all additional protected VLANs:
* Edge-Switch#1:10 # create vlan purple-1
* Edge-Switch#1:11 # configure purple-1 tag 1
* Edge-Switch#1:12 # configure purple-1 add port 49,50 tagged
* Edge-Switch#1:13 # configure purple-1 add port 1 untagged
* Edge-Switch#1:14 # configure eaps e1-domain add protect vlan purple-1
• The command in the following example allows you to verify that the EAPS
configuration is correct and that the EAPS state is Links-Up.
Both ring ports must be plugged in to see the Links-Up state.
* Edge-Switch#1:17 # show eaps e1-domain detail
Name: "e1-domain" (instance=0) Priority: High
State: Links-Up Running: Yes
Enabled: Yes Mode: Transit
Primary port: 49 Port status: Up Tag status: Tagged
Secondary port: 50 Port status: Up Tag status: Tagged
Hello Timer interval: 1 sec 0 millisec
Fail Timer interval: 3 sec
Preforwarding Timer interval: 0 sec
Last valid EAPS update: From Master Id 00:04:96:10:51:50, at Sun Sep 5 23:20:10 2004
EAPS Domain has following Controller Vlan:
In the following example, aggregation switches are typically deployed in pairs that
protect against single switch failures. Each aggregation switch is physically connected
to all edge switches and participates in multiple EAPS domains. The aggregation
switches can serve a different role within each EAPS domain, with one switch acting
as a transit node and the other as a master node.
In this example, we have a common link with overlapping domains (and protected
VLANs), which includes an EAPS controller and partner configuration. The result is a
partial-mesh network design of EAPS from the access edge to the aggregation layer
(see Figure 146).
Using redundant aggregation switches helps protect against a single point of failure at
the switch level, while EAPS domains provide fault isolation and minimize the impact
that failures have on the network. With shared port configurations, the partial-mesh
physical design is maintained without broadcast loops, regardless of where a failure
might occur.
To configure the L2 aggregate switches, complete the tasks described in the following
sections on all aggregate switches:
• Create the EAPS domains for each ring (one domain for one edge switch) and
configure the EAPS mode.
Define the primary and secondary ports for each domain. In this example, however,
the primary port is the same as the common link. One aggregation switch has
EAPS mode configured as master and partner, while the other aggregation switch is
configured as transit and controller.
1. Create the EAPS control VLANs (one for each domain) and configure the 802.1q tag
and ring ports for each.
• Create the EAPS shared ports, which are used to connect a common-link between
the aggregate switches.
On the first switch, define the shared port mode as partner, and define the link ID.
Repeat this step on the other aggregate switch, but configure the shared port mode
as controller. The link ID matches the value configured for the partner.
The following shows an example configuration for the partner:
* AGG-SWITCH#2.37 # create eaps shared-port 2:1
* AGG-SWITCH#2.38 # configure eaps shared-port 2:1 mode partner
* AGG-SWITCH#2.39 # configure eaps shared-port 2:1 link-id 21
• Enable the EAPS protocol on the switch, and enable EAPS to run on each domain
created.
The following commands are entered on both aggregate switches.
* AGG-SWITCH.40 # enable eaps
* AGG-SWITCH.41 # enable eaps e1-domain
* AGG-SWITCH.42 # enable eaps e2-domain
* AGG-SWITCH.43 # enable eaps e3-domain
* AGG-SWITCH.44 # enable eaps e4-domain
In this example, there is one overlapping protected VLAN, purple-1, while all other
VLANs are isolated to a single EAPS domain (VLANs green-1, orange-1, and red-1).
Protected VLAN configuration, such as 802.1q tagging, must match on the edge
switch. The commands in the following example are entered on both aggregate
switches.
This procedure can also be repeated for additional protected VLANs as needed:
* AGG-SWITCH.44 # create vlan purple-1
* AGG-SWITCH.45 # create vlan green-1
* AGG-SWITCH.46 # create vlan orange-1
* AGG-SWITCH.47 # create vlan red-1
* AGG-SWITCH.48 # configure purple-1 tag 1
* AGG-SWITCH.49 # configure green-1 tag 2
* AGG-SWITCH.50 # configure orange-1 tag 3
* AGG-SWITCH.51 # configure red-1 tag 4
* AGG-SWITCH.52 # configure eaps e1-domain add protect vlan purple-1
* AGG-SWITCH.53 # configure eaps e2-domain add protect vlan purple-1
* AGG-SWITCH.54 # configure eaps e3-domain add protect vlan purple-1
* AGG-SWITCH.55 # configure eaps e4-domain add protect vlan purple-1
* AGG-SWITCH.56 # configure eaps e2-domain add protect vlan green-1
* AGG-SWITCH.57 # configure eaps e3-domain add protect vlan orange-1
* AGG-SWITCH.58 # configure eaps e4-domain add protect vlan red-1
* AGG-SWITCH.59 # configure vlan purple-1 add port 2:1,1:1,1:4,3:1,3:2 tagged
* AGG-SWITCH.60 # configure vlan green-1 add port 2:1,1:4 tagged
* AGG-SWITCH.61 # configure vlan orange-1 add port 2:1,3:1 tagged
* AGG-SWITCH.62 # configure vlan red-1 add port 2:1,3:2 tagged
1. When the configuration is complete, confirm that the EAPS domain and shared port
configuration is correct.
2. Verify whether the EAPS state is Complete and the shared port status is Ready.
Both ring ports must be plugged in to see the Links-Up state. This verification is
performed on both aggregate switches.
The EAPS master and partner node is then configured as the BDR. Similarly, the EAPS
transit and controller node is also configured as the VRRP master, which provides L3
routing to the hosts. The EAPS master and partner node is configured as the VRRP
backup router for redundancy.
Using redundant aggregation switches with VRRP protects against a single point of
failure at the switch level. Client devices receive non-stop IP routing services in the
event of link or aggregation switch failure without any reconfiguration. OSPF provides
fast convergence from any routing failures. EAPS provides the resilient L2 foundation
and minimizes the occurrence of routing interface flaps or dropped OSPF neighbor
adjacencies.
Client host stations need the IP address configuration to match their protected VLANs.
The edge switches do not require IP addresses, but this could optionally be done for
management or troubleshooting purposes.
Because OSPF broadcast networks are being used, configure the DR and BDR for each
VLAN. Configure the EAPS transit and controller as the DR by using a higher OSPF
priority value since it is not performing L2 blocking. The EAPS master and partner
switch is configured as the BDR. In this example, all edge EAPS protected VLANs are
placed in the OSPF backbone area, but another OSPF area could be created if desired.
The VRRP virtual router (VR) is configured with the virtual IP address of 172.16.x.254 for
each VLAN (example VLAN green-1 = 172.16.1.254). The VRRP virtual router IP address is
configured as the default gateway of each client machine. Since it is not performing L2
blocking, configure the EAPS transit and controller as VRRP master router by using a
higher priority value. The EAPS master and partner switch is configured as the VRRP
backup router.
1. Verify the OSPF neighbor adjacencies are established and that the DR and BDR
status is correct.
2. Verify that the VRRP VR is running and the VRRP master/backup status is correct.
OSPF and VRRP verification example:
* AGG-SWITCH#1.35 # show ospf neighbor
Neighbor ID Pri State Up/Dead Time Address Interface
172.16.1.2 100 FULL /BDR 00:18:01:08/00:00:00:03 172.16.3.2 orange-1
172.16.1.2 100 FULL /BDR 00:18:01:08/00:00:00:03 172.16.4.2 red-1
172.16.1.2 100 FULL /BDR 00:17:54:17/00:00:00:03 172.16.1.2 green-1
172.16.1.2 100 FULL /BDR 00:17:54:07/00:00:00:03 172.16.2.2 purple-1
* AGG-SWITCH#1.36 # show vrrp
VLAN Name VRID Pri Virtual IP Addr State Master Mac Address TP/TR/TV/P/T
green-1(En) 0001 110 172.16.1.254 MSTR 00:00:5e:00:01:01 0 0 0 Y 1
purple-(En) 0001 110 172.16.2.254 MSTR 00:00:5e:00:01:01 0 0 0 Y 1
orange-(En) 0001 110 172.16.3.254 MSTR 00:00:5e:00:01:01 0 0 0 Y 1
red-1(En) 0001 110 172.16.4.254 MSTR 00:00:5e:00:01:01 0 0 0 Y 1
En-Enabled, Ds-Disabled, Pri-Priority, T-Advert Timer, P-Preempt
TP-Tracked Pings, TR-Tracked Routes, TV-Tracked VLANs
* AGG-SWITCH#2.35 # show ospf neighbor
Neighbor ID Pri State Up/Dead Time Address Interface
172.16.1.1 110 FULL /DR 00:18:01:08/00:00:00:03 172.16.3.1 orange-1
172.16.1.1 110 FULL /DR 00:18:01:08/00:00:00:03 172.16.4.1 red-1
172.16.1.1 110 FULL /DR 00:17:54:17/00:00:00:03 172.16.1.1 green-1
172.16.1.1 110 FULL /DR 00:17:54:07/00:00:00:03 172.16.2.1 purple-1
* AGG-SWITCH#2.36 # show vrrp
VLAN Name VRID Pri Virtual IP Addr State Master Mac Address TP/TR/TV/P/T
green-1(En) 0001 100 172.16.1.254 BKUP 00:00:5e:00:01:01 0 0 0 Y 1
purple-(En) 0001 100 172.16.2.254 BKUP 00:00:5e:00:01:01 0 0 0 Y 1
orange-(En) 0001 100 172.16.3.254 BKUP 00:00:5e:00:01:01 0 0 0 Y 1
red-1(En) 0001 100 172.16.4.254 BKUP 00:00:5e:00:01:01 0 0 0 Y 1
En-Enabled, Ds-Disabled, Pri-Priority, T-Advert Timer, P-Preempt
TP-Tracked Pings, TR-Tracked Routes, TV-Tracked VLANs
An additional high availability backbone ring is built that combines EAPS and OSPF.
Using EAPS and OSPF together increases the stability of IP routing tables. Since EAPS
provides 50-millisecond convergence for link failures, OSPF adjacencies do not flap.
In this example, the backbone ring is formed by adding two core L2/L3 switches and
connecting them to the two existing aggregation switches. The core switches also
provide routing to the Internet using BGP (see Figure 148).
Configuring the core switches requires a new EAPS domain with a single EAPS
protected VLAN with OSPF forming the backbone IP network. Additional configuration
is needed on the aggregation switches to connect them to the backbone EAPS and
OSPF ring. Since the steps are similar to previous configuration examples, the L2
(EAPS) and L3 (OSPF) configurations are combined. Since the BGP configuration is
independent of EAPS configuration, BGP configuration is not discussed here.
1. Create the backbone EAPS domains and configure the EAPS mode.
2. Define the primary and secondary ports for each domain.
Configure on both core and aggregation switches.
1. Create the EAPS control VLAN and configure its 802.1q tag, and ring ports.
2. Configure the control VLANs as part of the backbone EAPS domain. Enable EAPS
and the backbone EAPS domain. Configure on both core and aggregation switches
(EAPS is already enabled on aggregation switches).
Core-Switch#1 control VLAN configuration:
* CORE-SWITCH#1.1 # create vlan control-5
* CORE-SWITCH#1.2 # configure vlan control-5 tag 4005
* CORE-SWITCH#1.4 # configure vlan control-5 add port 2:1,2:4 tagged
* CORE-SWITCH#1.5 # configure eaps e5-domain add control vlan control-5
* CORE-SWITCH#1.6 # enable eaps
* CORE-SWITCH#1.7 # enable eaps e5-domain
1. Verify that the backbone EAPS domain and OSPF configuration is correct.
2. Confirm that the OSPF neighbor adjacencies and DR/BDR/ODR status are correct.
Verify this status on both aggregate switches.
Core-Switch#1 EAPS and OSPF status example:
* CORE-SWITCH#1.18 # show eaps
EAPS Enabled: Yes
EAPS Fast-Convergence: On
EAPS Display Config Warnings: On
EAPS Multicast Add Ring Ports: Off
EAPS Multicast Send IGMP Query: On
EAPS Multicast Temporary Flooding: Off
EAPS Multicast Temporary Flooding Duration: 15 sec
Number of EAPS instances: 1
# EAPS domain configuration :
----------------------------------------------------------------------------
Domain State Mo En Pri Sec Control-Vlan VID Count
----------------------------------------------------------------------------
e5-domain Links-Up T Y 2:1 2:4 control-5 (4005) 1
----------------------------------------------------------------------------
* CORE-SWITCH#1.19 # show ospf neighbor
Neighbor ID Pri State Up/Dead Time Address Interface
192.168.1.3 0 2WAY /DROTHER00:05:23:17/00:00:00:07 192.168.1.3 backbone
192.168.1.4 0 2WAY /DROTHER00:05:23:17/00:00:00:07 192.168.1.4 backbone
192.168.1.2 100 FULL /BDR 00:05:23:17/00:00:00:09 192.168.1.2 backbone
The core switches provide high performance backbone routing between the data
center and the rest of the network, which includes both internal and external (Internet)
destinations. The core switch acts as the EAPS master node for each ring, while the
data center switches act as EAPS transit nodes to complete the ring. The core switch
also acts as the OSPF routing node to provide gateway routing functionality to the
server-farms. For an additional level of resiliency, each server is dual-homed (dual
attached) to both EAPS transit L2 switches. Even if a switch or link fails, the servers
are available.
The network design and configuration is similar to the edge and aggregation EAPS and
OSPF layers. The modular approach is simple and scalable, and allows additional data
center rings to be added to provide room for growth. In our example, server-farms are
isolated into separate categories such as external and internal service groups, which
yield additional security and resiliency benefits.
To configure the data center switches, you need a new EAPS domain with a single
EAPS protected VLAN to form the server-farm network. In this example, two data
center switches are configured as EAPS transit nodes (L2 switch only) and attach to
the existing core switch acting as the EAPS master. Each server in the server-farm is
dual-homed to both EAPS transit switches in the data center for additional physical
resiliency. IP routing functionality is performed by the core switch via OSPF, which
provides L3 connectivity to the rest of the network.
Create the backbone EAPS domains, configure the EAPS mode, and define the
primary and secondary ports for each domain. Do this configuration on both core and
aggregation switches.
Core-Switch#1 EAPS configuration:
* CORE-SWITCH#1.1 # create eaps e6-domain
* CORE-SWITCH#1.2 # configure eaps e6-domain mode master
* CORE-SWITCH#1.3 # configure eaps e6-domain primary port 4:1
* CORE-SWITCH#1.4 # configure eaps e6-domain secondary port 4:2
1. Create the EAPS control VLAN and configure its 802.1q tag, and ring ports.
2. Configure the control VLANs as part of the data center EAPS domain. Enable EAPS
and the data center EAPS domain. You need to do this configuration on the core and
data center L2 switches.
Core-Switch#1 control VLAN configuration:
* CORE-SWITCH#1.1 # create vlan control-6
* CORE-SWITCH#1.2 # configure vlan control-6 tag 4006
* CORE-SWITCH#1.4 # configure vlan control-6 add port 4:1,4:2 tagged
* CORE-SWITCH#1.5 # configure eaps e5-domain add control vlan control-6
* CORE-SWITCH#1.6 # enable eaps e6-domain
1. Create the EAPS protected VLAN for the data center domain.
2. Configure the 802.1q tag and ports for the protected VLANs.
Because each server is dual-homed to each data center switch, add a VLAN port on
each switch for each server.
3. Configure the protected VLAN as part of the EAPS domain. Do this configuration on
the core and data center switches.
Core-Switch#1 protected VLAN configuration:
* CORE-SWITCH#1.7 # create vlan srvfarm-1
* CORE-SWITCH#1.8 # configure vlan srvfarm-1 tag 1000
* CORE-SWITCH#1.9 # configure vlan srvfarm-1 add port 4:1,4:2 tagged
* CORE-SWITCH#1.10 # configure eaps e6-domain add protect vlan srvfarm-1
1. Verify that the data center EAPS domain and OSPF configuration is correct.
2. Verify whether the data center subnet is advertised to other routers through OSPF.
Core-Switch#2 route verification example:
* CORE-SWITCH#2.1 # show iproute 10.10.10.0/24
Ori Destination Gateway Mtr Flags VLAN Duration
#oa 10.10.10.0/24 192.168.1.1 6 UG-D---um--f backbone 0d:0h:25m:5s
Origin(Ori): (b) BlackHole, (be) EBGP, (bg) BGP, (bi) IBGP, (bo) BOOTP
(ct) CBT, (d) Direct, (df) DownIF, (dv) DVMRP, (e1) ISISL1Ext
(e2) ISISL2Ext, (h) Hardcoded, (i) ICMP, (i1) ISISL1 (i2) ISISL2
(is) ISIS, (mb) MBGP, (mbe) MBGPExt, (mbi) MBGPInter, (mp) MPLS Lsp
(mo) MOSPF (o) OSPF, (o1) OSPFExt1, (o2) OSPFExt2
(oa) OSPFIntra, (oe) OSPFAsExt, (or) OSPFInter, (pd) PIM-DM, (ps) PIM-SM
(r) RIP, (ra) RtAdvrt, (s) Static, (sv) SLB_VIP, (un) UnKnown
(*) Preferred unicast route (@) Preferred multicast route
(#) Preferred unicast and multicast route
Flags: (B) BlackHole, (D) Dynamic, (G) Gateway, (H) Host Route
(L) Matching LDP LSP, (l) Calculated LDP LSP, (m) Multicast
(P) LPM-routing, (R) Modified, (S) Static, (s) Static LSP
(T) Matching RSVP-TE LSP, (t) Calculated RSVP-TE LSP, (u) Unicast, (U) Up
(f) Provided to FIB (c) Compressed Route
Mask distribution:
1 routes at length 16 1 routes at length 24
Route Origin distribution:
1 routes from OSPFIntra 1 routes from OSPFExt1
Total number of routes = 2
Total number of compressed routes = 0
CFM reports fault connectivity failures to EAPS, and EAPS communicates with the CFM
process to set up point-to-point DOWN MEPs (Management Endpoints) to monitor
link connectivity. The CFM module notifies EAPS of any link-connectivity issues, and
triggers EAPS to take necessary action.
802.1ag CFM supports link monitoring. It does this by sending out PDUs at designated
transmit intervals. If the CFM fails to receive PDUs, it assumes the link is out of service,
and notifies its clients. In this instance, EAPS acts as a CFM client.
First, you will create a down MEP within the CFM CLI. Configure the CLI to create a
MEP group that associates this down MEP with a remote MEP (RMEP). There is a 1:1
relationship between a port and the down MEP, and as such, each MEP group is tied to
a single port. Using the EAPS CLI, you can add the MEP groups you wish to monitor. For
each MEP group added to EAPS, EAPS will receive UP/DOWN notifications from CFM
when CFM detects a MEP state change for that group. Each MEP group corresponds to
an EAPS ring port. Notifications from those MEP groups that are inadvertently added—
that do not correspond to an EAPS ring port—are ignored in EAPS.
The CFM configuration is independent of EAPS, and MEPs and MEP groups may use
different VLANs other than the EAPS control VLAN to monitor links.
When EAPS receives a CFM notification that the link failed, EAPS blocks that port on
all of the EAPS control VLANs. This prevents EAPS control PDUs from being hardware
forwarded on the link, in case the link is still up. Any EAPS PDUs that are received on
a CFM failed port are dropped in EAPS. It is generally recommended to have the CCM
interval as short as possible to detect link failures faster, which improves convergence
time.
For additional configuration details for CFM support, refer to Configuring CFM on page
479.
This command notifies CFM that EAPs is interested in notifications for this MEP
and RMEP pair. This MEP should already be bound to a physical port, so when
notification is received, EAPS associates that notification with a ring-port failure.
Each MEP must have an ID that is unique for that MEP throughout the MA.
• To configure UP and DOWN MEPs and its unique MEP ID, use the following
command:
configure cfm domain domain_name association association_name [ports
port_list add [[end-point [up|down] mepid {group group_name}] |
[intermediate-point]]
• To change the MEP ID on an existing MEP, use the following command:
configure cfm domain domain-name association association_name ports
port_list end-point [up | down] mepid mepid
• To delete UP and DOWN MEPs, use the following command:
configure cfm domain domain-name association association_name ports
port_list delete end-point [up | down] intermediate-point
• To configure a MIP, use the following command:
configure cfm domain domain_name association association_name [ports
port_list add [[end-point [up|down] mepid {group group_name}] |
[intermediate-point]]
• To delete a MIP, use the following command:
configure cfm domain domain_name association association_name [ports
port_list delete [[end-point [up|down] mepid {group group_name}] |
[intermediate-point]]
• To configure the transmission interval for the MEP to send CCMs, use the following
command:
configure cfm domain domain_name association association_name {ports
port_list end-point [up | down]} transmit-interval [3|10|100|1000|
10000|60000|600000]
• To unconfigure the transmission interval for the MEP to send CCMs and return it to
the default, use the following command:
unconfigure cfm domain domain_name association association_name {ports
port_list end-point [up | down]} transmit-interval
• To enable of disable a MEP, use the following command:
configure cfm domain domain_name association association_name ports
port_list end-point [up | down] [enable | disable]
• Display EAPS MEP group bindings with the command: show eaps cfm groups
# sh eaps cfm groups
----------------------------------------------------------------------
MEP Group Name Status Port MEP ID
----------------------------------------------------------------------
eapsCfmGrp1 Up 41 11
eapsCfmGrp2 Up 31 12
Configuration Example
Below is a sample configuration of CFM support in EAPS:
switch 1 # sh configuration cfm
#
# Module dot1ag configuration.
#
create cfm domain string "MD1" md-level 6
configure cfm domain "MD1" add association string "MD1v1" vlan "v1"
configure cfm domain "MD1" add association string "MD1v2" vlan "v2"
configure cfm domain "MD1" association "MD1v1" ports 17 add end-point down 6
configure cfm domain "MD1" association "MD1v1" ports 23 add end-point down 5
configure cfm domain "MD1" association "MD1v2" ports 31 add end-point down 13
configure cfm domain "MD1" association "MD1v1" ports 17 end-point down add group
"eapsCfmGrp1"
configure cfm domain "MD1" association "MD1v1" ports 23 end-point down add group
"eapsCfmGrp2"
configure cfm domain "MD1" association "MD1v2" ports 31 end-point down add group
"eapsCfmGrp3"
configure cfm group "eapsCfmGrp1" add rmep 2
configure cfm group "eapsCfmGrp2" add rmep 4
configure cfm group "eapsCfmGrp3" add rmep 12
switch 2 # sh configuration "eaps"s
#
# Module eaps configuration.
#
enable eaps
create eaps d1
configure eaps d1 mode transit
configure eaps d1 primary port 17
configure eaps d1 secondary port 23
enable eaps d1
create eaps d2
configure eaps d2 mode transit
configure eaps d2 primary port 31
configure eaps d2 secondary port 23
enable eaps d2
configure eaps d1 add control vlan v1
configure eaps d1 add protected vlan pv1
configure eaps d2 add control vlan v2
Limitations
CFM PDU transmit intervals are limited by the supported limits of CFM module.
Platforms that do not support CFM in hardware are limited to a minimum interval of
100 ms.
The maximum number of down MEPs is limited by the CFM module. This is as low as 32
MEPs in some platforms.
Platforms Supported
All ExtremeXOS platforms support this feature; however, not all platforms support
hardware-based CFM.
This chapter provides an overview to ERPS, and discusses various ERPS features. The
chapter also offers configuration details, provides configuration examples, and shows
you how to debug ERPS.
ERPS Overview
The basic concept of G.8032/ERPS (Ethernet Ring Protection Switching) is that traffic
may flow on all links of a ring network except on one link called the Ring Protection
Link (RPL).
The RPL owner is the node that blocks the RPL, and the other node of the RPL is called
the RPL neighbor node. All other nodes are called non-RPL nodes. When a link fails,
the RPL owner unblocks the RPL to allow connectivity to the nodes in the ring. The
G.8032/ERPS rings utilize a channel (dedicated path) for carrying their control traffic
which is the R-APS messages (Ring Automatic Protection Switching).
The ring protection architecture relies on the existence of an APS protocol to coordinate
ring protection actions around an Ethernet ring, as shown in Figure 150.
Figure 150: Simple Ring with RPL, RPL Owner, RPL Neighbor, and Non-RPL Nodes
More complex topologies include ladder ring networks which are called sub-rings
in G.8032 terminology. In these networks, there could exist one or more rings and
sub-rings which complete their connectivity through the interconnected nodes of the
ring(s). Multiple ladder networks are supported only if the following conditions are met:
• R-APS channels are not shared across Ethernet ring interconnections.
• On each ring port, each traffic channel and each R-APS channel are controlled by
the Ethernet Ring Protection (ERP) Control process of only one Ethernet ring.
• Each major ring or sub-ring must have its own RPL.
Note
One important aspect of sub-rings is that they complete their channel through
the virtual channel (when using the virtual channel mode), which can span
the network and cross the sub-ring boundaries. This entails that the virtual
channel is provisioned on all the nodes it spans across.
In Figure 151, the ring comprises nodes A, B, C, and D with links A–B, B–C, C–D, and
D–A while the control channel for this ring has its own dedicated VLAN (Virtual LAN).
The sub-ring consists of nodes D, F, E, and C with links D–F, F–E, and E–C. D and C are
interconnected nodes. The channel for the sub-ring spans the links C–E, E–F, and F–D
and their nodes while the virtual channel comprises the links D-A, A-B, B-C and D–C
and their nodes. This means that the virtual channel for the sub-ring needs to not only
exist on the interconnected nodes, but also on the nodes A and B.
Sub-ring topology changes may impact flow forwarding over the domain of the other
(interconnected) network, as such topology change events are signaled to the domain
of the other network using the Topology Change signal.
G.8032 Version 2
The concept of sub-rings is introduced to add multiple rings to the main ring. A sub-
ring is an incomplete ring that completes its path through the main ring or other sub-
rings. The control path for the sub-ring completes either through the implementation
of a virtual channel, or by changing the flow of control packets in the sub-rings.
Virtual channels are supported through the use of the sub-rings control channel being
configured as a data VLAN in the main ring.
You can configure the sub-ring in “no virtual channel” mode, where the control path
for the sub-ring is through all the nodes of the sub-ring (including the RPL owner and
neighbor). You must be careful, however, to avoid using the sub-ring’s control channel
across the main ring because that will cause a loop. ExtremeXOS supports the use of
CFM, in conjunction with Manual Switch (MS), to protect the sub-rings against multiple
failures in the main ring.
It is generally recommended to have the CCM interval as short as possible to detect link
failures faster, which improves convergence time.
Here is an example:
switch # sh cfm
Domain: "erps_6", MD Level: 6
Association: "erps_MA_100", Destination MAC Type: Multicast, VLAN "v2" with 2 cfm
ports
Transmit Interval: 1000 ms
port 27; Down End Point, mepid: 11, transmit-interval: 10000 ms (configured),
MEP State: Enabled, CCM Message: Enabled, Send SenderId TLV: Disabled
port 37; Down End Point, mepid: 21,
transmit-interval: 10000 ms (configured),
MEP State: Enabled, CCM Message: Enabled, Send SenderId TLV: Disabled
Association: "erps_MA_100", Destination MAC Type: Multicast, VLAN "v2" with 2 cfm
ports
Transmit Interval: 1000 ms
Total Number of Domain : 1
Total Number of Association : 2
Total Number of Up MEP : 0
Total Number of Down MEP : 2
Total Number of MIP : 0
Total Number of Number of CFM port : 4
Total Number of VPLS MIP(Static/Up): 0 / 0
switch # show cfm detail
Domain/ Port MP Remote End-Point Remote End-Point MEP Life Flags
Association MAC Address IP Address ID time Age
======================================================================================
erps_6
erps_MA_100 27 DE 00:04:96:34:e3:43 0.0.0.0 10 35000 4430 DM
Note
You must configure a remote MEP-ID for the local MEPs so that a specific
association can be maintained between the two ends.
Limitations
CFM PDU transmit intervals are limited by the supported limits of CFM module.
Platforms that do not support CFM in hardware are limited to a minimum interval of
100 ms. The maximum number of down MEPs is limited by the CFM module. This is as
low as 32 MEPs in some platforms.
• When the WTR timer expires, without the presence of any other higher priority
request, the RPL owner node initiates reversion by blocking its traffic channel over
the RPL, transmitting an R-APS (NR, RB) message over both ring ports, informing
the Ethernet ring that the RPL is blocked, and performing a flush FDB (forwarding
database) action. The ERPS Ring will be in the idle state.
• The acceptance of the R-APS (NR, RB) message causes all Ethernet ring nodes to
unblock any blocked non-RPL link that does not have an SF condition. If it is an
R-APS (NR, RB) message without a DNF indication, all Ethernet ring nodes perform a
necessary flush FDB action.
In non-revertive operation, the Ethernet ring does not automatically revert when all
ring links and Ethernet ring nodes have recovered and no external requests are active.
Non-revertive operation is handled in the following way:
• The RPL owner node does not generate a response on reception of an R-APS (NR)
messages.
• When other healthy Ethernet ring nodes receive the NR (node ID) message, no
action is taken in response to the message.
Force Switch
In the absence of any failure in the ring network, an operator-initiated Force Switch (FS)
results in the RPL getting unblocked, and the node on which the FS has been issued is
blocked. This condition is indicated by the transmission of R-APS FS messages, which
are continuous until this condition is unconfigured. Two or more Forced Switches are
allowed in the Ethernet ring, but this may cause the segmentation of an Ethernet ring.
It is the responsibility of the operator to prevent this effect if it is undesirable.
You can remove a Forced Switch condition by issuing a clear command to the same
Ethernet ring node where the Forced Switch is presented (configure erps ring-name
dynamic-state [force-switch | manual-switch | clear] port slot:port). The
clear command removes existing local operator commands and triggers reversion in
case the Ethernet ring is in revertive behavior. The Ethernet ring node where the
Forced Switch was cleared continuously transmits the R-APS (NR) message on both
ring ports, informing that no request is present at the Ethernet ring node.
Clear Command
The clear command is described in the ITU-T G.8032 (Standard for ERPS). This
command allows the ERPS ring to administratively return (revert) to idle state and
trigger (on the owner) the transmission of NR,RB messages that return all other nodes
back to the idle state from the pending state. If it is an R-APS (NR, RB) message
without a DNF indication, all Ethernet ring nodes perform a necessary flush FDB. In
the revertive-mode of operation, after the link failure is cleared in the ring, the traffic
channel reverts (the RPL owner node blocks its RPL port and transmits an R-APS (NR,
RB) message in both directions, repeatedly) after the expiration of a WTR timer. With
the clear command, the traffic channel can be made to revert without waiting for the
WTR to expire. When you issue a clear command for non-revertive mode at the RPL
owner node, the non-revertive operation is cleared and the traffic channel is reverted.
Upon receiving an R-APS (NR, RB) message, any blocking Ethernet ring node should
unblock its non-failed ring port.
Manual Switch
Manual Switch is similar to the Force Switch except that only one Manual Switch is
allowed for an Ethernet ring. The processing of which node retains the Manual Switch
is based on the priority table and the node state. However only one Manual Switch is
retained at the end for the ring.
Channel Blocking
The R-APS control channel is blocked, as is traffic on the blocked ports for the control
traffic entering on one ring port and getting forwarded to the other ring port. However,
locally generated or delivered control traffic on the blocked port is supported.
Traffic Blocking
Traffic is always blocked for the protected VLANs on the blocked ports of the ring/sub-
ring in a G.8032 network.
• An Ethernet ring node accepting an R-APS (SF) message stops transmission of other
R-APS messages.
• An Ethernet ring node accepting an R-APS (SF) message without a DNF indication
performs a flush FDB.
An Ethernet ring node that has one or more ring ports in an SF condition (upon
detection of clearance of the SF condition) keeps at least one of these ring ports
blocked for the traffic channel and for the R-APS channel, until the RPL is blocked
as a result of Ethernet ring protection reversion, or until there is another higher
priority request (for example, an SF condition) in the Ethernet ring. An Ethernet ring
node that has one ring port in an SF condition, and detects clearing of this SF
condition, continuously transmits the R-APS (NR) message with its own Node ID as
the priority information over both ring ports, informing that no request is present at the
Ethernet ring node and initiates a guard timer as described in sub-clause 10.1.5. Another
recovered Ethernet ring node (or Nodes) holding the link block receives the message
and compares the Node ID information with its own Node ID. If the received R-APS
(NR) message has the higher priority, the Ethernet ring node unblocks its ring ports.
Otherwise, the block remains unchanged. There is only one link with one-end block.
The Ethernet ring nodes stop transmitting R-APS (NR) messages when they accept an
R-APS (NR, RB), or when another higher priority request is received
Note that this command is only applicable on ring instances created with user-defined
ring-id.
Note that the control MAC configuration as auto is not applicable on such ring
instances.
Note
Be advised that the ITU_T standard does not have the mechanism to recognize
configuration mismatches across the nodes, especially with the ring-ID/control
MAC configuration. Therefore, you must make sure that the all of the ring
instances on all nodes within the same physical ring have the same ring ID and
control MAC.
Timers
This section discusses the various timers associated with ERPS.
Guard Timer
The guard timer is used to prevent Ethernet ring nodes from acting upon outdated
R-APS messages, and to prevent the possibility of forming a closed loop. The guard
timer is activated whenever an Ethernet ring node receives an indication that a
local switching request has cleared (i.e., local clear SF, clear). The guard timer can be
configured in 10 ms steps, between 10 ms and two seconds, with a default value of 500
ms. This timer period should be greater than the maximum expected forwarding delay
in which an R-APS message traverses the entire ring. The longer the period on the
guard timer, the longer an Ethernet ring node is unaware of new or existing relevant
requests transmitted from other Ethernet ring nodes, and is unable to react to them.
A guard timer is used in every Ethernet ring node. Once a guard timer is started, it
expires by itself. While the guard timer is running, any received R-APS Request/State
and Status information is blocked and not forwarded to the Priority Logic. When
the guard timer is not running, the R-APS Request/State and Status information is
forwarded unchanged.
Hold-off Timer
W hen a new defect, or more severe defect occurs (new SF), this event is not be
reported immediately to protection switching if the provisioned hold-off timer is a
non-zero value. Instead, the hold-off timer is started. When the hold-off timer expires,
the trail that started the timer is checked to see if a defect still exists. If one does exist,
that defect is reported to protection switching. The suggested range of the hold-off
timer is 0 to 10 seconds in steps of 100 ms with an accuracy of ±5 ms. The default value
for a hold-off timer is 0 seconds.
Delay Timers
In revertive mode, the wait-to-restore (WTR) timer is used to prevent frequent operation
of the protection switching caused by intermittent signal failure defects. The wait-to-
block (WTB) timer is used when clearing Forced Switch and Manual Switch commands.
As multiple Forced Switch commands are allowed to coexist in an Ethernet ring, the
WTB timer ensures that clearing of a single Forced Switch command does not trigger
the re-blocking of the RPL. When clearing a Manual Switch command, the WTB timer
prevents the formation of a closed loop due to a possible timing anomaly where the
RPL owner node receives an outdated remote MS request during the recovery process.
When topology changes occur in the G.8032 ring, this initiates a ring flush in the EAPS
ring. This uses the same methodology that EAPS uses today when STP requires a flush.
EAPS then flushes all the VLANs in its domains.
When a failure occur in the G.8032 ring, the protocol handles it and open up the RPL
link. A flush message is propagated to the EAPS ring if configured to do so using the
configure erps ring-name [add |delete] topology-changering-list command.
Sample Configuration
Here is a sample configuration of the ERPS feature:
create vlan cv1
config vlan cv1 tag 10
config vlan cv1 add port 5,6 tagged
Sub-ring Configuration
First, configure a main ring on the Interconnected node:
create erps main-ring1
configure erps main-ring1 add ring-ports east 5
configure erps main-ring1 add ring-ports west 6
configure erps ring1 add control “cv1”
Configuring ERPS
• To delete ring ports on the ERPS ring, use the following command:
unconfigure erps ring-name ring-ports west
• To add or delete RPL (ring protection link) owner configuration for the ERPS ring, use
the following commands:
configure erps ring-name protection-port port
disable erps
• To enable or disable an existing ERPS ring/sub-ring, , use the following command:
enable erps ring-name
Note
If the ERPS configuration of RPL owner node is modified, you need to
disable, and then enable, corresponding ERPS instance on all non-RPL
nodes.
• To configure R-APS control MAC as either auto or default, use the following
command:
configure erps ring-name control-mac [auto | default]
Sample Configuration
The following is a sample ERPS configuration:
Configurations of Switch A
#VLAN Configuration
create vlan c_vlan tag 10
create vlan c_vlan_sub tag 20
create vlan p_vlan tag 100
configure c_vlan add ports 1,2 tagged
configure c_vlan_sub add ports 1,2 tagged
configure p_vlan add ports 1,2 tagged
#CFM Down MEP configuration in ERPS main ring RPL-owner
create cfm domain string MD6 md-level 6
configure cfm domain MD6 add association string MDlevel6 vlan c_vlan
configure cfm domain MD6 association MDlevel6 ports 1 add end-point down 601
configure cfm domain MD6 association MDlevel6 ports 2 add end-point down 602
configure cfm domain MD6 association MDlevel6 ports 1 end-point down add group AB
configure cfm domain MD6 association MDlevel6 ports 2 end-point down add group AC
configure cfm group AB add rmep 603
configure cfm group AC add rmep 604
# ERPS Configuration
create erps main_ring
configure erps main_ring add control vlan c_vlan
configure erps main_ring ring-port east 1
configure erps main_ring ring-port west 2
configure erps main_ring protection-port 1
configure erps main_ring cfm port east add group AB
configure erps main_ring cfm port west add group AC
configure erps main_ring add protected vlan p_vlan
configure erps main_ring add protected vlan c_vlan_sub
enable erps
enable erps main_ring
Configurations of Switch B
# VLAN Configuration
create vlan c_vlan tag 10
create vlan c_vlan_sub tag 20
create vlan p_vlan tag 100
configure c_vlan add ports 1,3 tagged
configure c_vlan_sub add ports 1,3,2 tagged
configure p_vlan add ports 1,3,2 tagged
# CFM Down MEP configuration for ERPS main ring
create cfm domain string MD6 md-level 6
configure cfm domain MD6 add association string MDlevel6 vlan c_vlan
configure cfm domain MD6 association MDlevel6 ports 1 add end-point down 603
configure cfm domain MD6 association MDlevel6 ports 3 add end-point down 402
configure cfm domain MD6 association MDlevel6 ports 1 end-point down add group BA
configure cfm domain MD6 association MDlevel6 ports 3 end-point down add group BC
configure cfm group BA add rmep 601
configure cfm group BC add rmep 404
# CFM Down MEP Configuration for ERPS sub-ring
create cfm domain string MD3 md-level 3
configure cfm domain MD3 add association string MDlevel3 vlan c_vlan_sub
configure cfm domain MD3 association MDlevel3 ports 2 add end-point down 303
configure cfm domain MD3 association MDlevel3 ports 2 end-point down add group BD
configure cfm group BD add rmep 301
# ERPS Configuration for main ring
create erps main_ring
configure erps main_ring add control vlan c_vlan
configure erps main_ring ring-port east 1
configure erps main_ring ring-port west 3
configure erps main_ring neighbor-port 1
configure erps main_ring cfm port east add group BA
configure erps main_ring cfm port west add group BC
configure erps main_ring add protected vlan p_vlan
configure erps main_ring add protected vlan c_vlan_sub
enable erps
enable erps main_ring
# ERPS Configuration for sub-ring
create erps sub_ring
configure erps sub_ring add control vlan c_vlan_sub
configure erps sub_ring ring-port east 2
configure erps sub_ring cfm port east add group BD
configure erps sub_ring add protected vlan p_vlan
configure erps main_ring add sub-ring sub_ring
enable erps sub_ring
Configurations of Switch C
# VLAN Configuration
create vlan c_vlan tag 10
create vlan c_vlan_sub tag 20
create vlan p_vlan tag 100
configure c_vlan add ports 2,3 tagged
configure c_vlan_sub add ports 2,3,1 tagged
configure p_vlan add ports 2,3,1 tagged
# CFM Down MEP configuration for ERPS main ring
create cfm domain string MD6 md-level 6
configure cfm domain MD6 add association string MDlevel6 vlan c_vlan
configure cfm domain MD6 association MDlevel6 ports 2 add end-point down 604
configure cfm domain MD6 association MDlevel6 ports 3 add end-point down 404
configure cfm domain MD6 association MDlevel6 ports 2 end-point down add group CA
configure cfm domain MD6 association MDlevel6 ports 3 end-point down add group CB
configure cfm group CA add rmep 602
configure cfm group CB add rmep 402
# CFM Down MEP configurations for ERPS sub-ring
create cfm domain string MD3 md-level 3
configure cfm domain MD3 add association string MDlevel3 vlan c_vlan_sub
configure cfm domain MD3 association MDlevel3 ports 1 add end-point down 304
configure cfm domain MD3 association MDlevel3 ports 1 end-point down add group CD
configure cfm group CD add rmep 302
# ERPS Configuration for main ring
create erps main_ring
configure erps main_ring add control vlan c_vlan
configure erps main_ring ring-port east 2
configure erps main_ring ring-port west 3
configure erps main_ring cfm port east add group CA
configure erps main_ring cfm port west add group CB
configure erps main_ring add protected vlan p_vlan
configure erps main_ring add protected vlan c_vlan_sub
enable erps
enable erps main_ring
# ERPS Configuration for sub-ring
create erps sub_ring
configure erps sub_ring add control vlan c_vlan_sub
configure erps sub_ring ring-port east 1
configure erps sub_ring neighbor-port 1
configure erps sub_ring cfm port east add group CD
configure erps sub_ring add protected vlan p_vlan
configure erps main_ring add sub-ring sub_ring
enable erps sub_ring
Configurations of Switch D
# VLAN Configuratio
ncreate vlan c_vlan_sub tag 20
create vlan p_vlan tag 100
configure c_vlan_sub add ports 2,1 tagged
configure p_vlan add ports 2,1 tagged
# CFM Down MEP configurations for ERPS sub-ring
create cfm domain string MD3 md-level 3
configure cfm domain MD3 add association string MDlevel3 vlan c_vlan_sub
configure cfm domain MD3 association MDlevel3 ports 2 add end-point down 301
configure cfm domain MD3 association MDlevel3 ports 1 add end-point down 302
configure cfm domain MD3 association MDlevel3 ports 2 end-point down add group d5d2
configure cfm domain MD3 association MDlevel3 ports 1 end-point down add group d5d4
configure cfm group d5d2 add rmep 303
configure cfm group d5d4 add rmep 304
# ERPS Configuration for sub-ring
create erps sub_ring
configure erps sub_ring add control vlan c_vlan_sub
configure erps sub_ring ring-port east 2
configure erps sub_ring ring-port west 1
configure erps sub_ring protection-port 1
configure erps sub_ring cfm port east add group d5d2
configure erps sub_ring cfm port west add group d5d4
configure erps sub_ring add protected vlan p_vlan
enable erps
enable erps sub_ring
Note
ERPS Virtual channel is enabled in the above configuration by creating a
control vlan of the sub-ring [c_vlan_sub] and added as a protected vlan in
switch A, B and C’s main ring.
Debugging ERPS
1. Check the output of show erps ring statistics to see if any error/dropped
counters are incrementing.
a. If they are, check the state of the ring ports and trace these links to the neighbor
node to see the state of the links.
The output of show log after turning on the filters for ERPS should provide more
information on what is happening on the switch.
2. Check the output of show erps and show erps ring to see if the node state is as
expected.
In steady state, the node should be in “Idle” and the failed state ring should be in
“Protected” state.
Note
For optimum performance and convergence, it is recommended to use
fiber cables.
• Other than the basic EAPS interoperability stated above, all other EAPS related
interoperability is not supported.
• There is no interoperability with STP (Spanning Tree Protocol) in the current release.
Using the STP (Spanning Tree Protocol) functionality of the switch makes your network
more fault tolerant. This chapter explains more about STP and the STP features
supported by ExtremeXOS.
Note
STP is a part of the 802.1D bridge specification defined by the IEEE Computer
Society. To explain STP in terms used by the IEEE 802.1D specification, the
switch will be referred to as a bridge.
ExtremeXOS version 12.0 and later supports the new edition of the IEEE 802.1D
standard (known as IEEE 802.1D-2004 ) for STP, which incorporates enhancements
from the IEEE 802.1t-2001, IEEE 802.1W, and IEEE 802.1y standards. The IEEE
802.1D-2004 standard is backward compatible with the IEEE 802.1D-1998 standard. For
more information, see Compatibility Between IEEE 802.1D-1998 and IEEE 802.1D-2004
STP Bridges on page 1326.
STP allows you to implement parallel paths for network traffic and to ensure that
redundant paths are:
• Disabled when the main paths are operational.
Note
STP and ESRP (Extreme Standby Router Protocol) cannot be configured on the
same VLAN (Virtual LAN) simultaneously.
Note
If you are transitioning from EOS to ExtremeXOS, please note that ExtremeXOS
blocks on a more granular (VLAN) level, instead of at the port level as EOS does.
To ensure seamless operation of your STP network, read this section before you
configure STP on any Extreme Networks device running ExtremeXOS 11.6 or later.
A higher link speed can create a situation whereby an 802.1D-1998 compliant bridge
could become the more favorable transit path.
For example, in Figure 153, bridge A is the root bridge running the new 802.1D-2004
standard, bridges B and C are running the old 802.1D-1998 standard, and bridges D, E,
and F are running the new 802.1D-2004 standard. In addition, all ports are 100 Mbps
links. The ports on bridges B and C have a default path cost of 19, and the ports on
bridge A, D, E, and F have a default path cost of 200,000.
As a workaround and to prevent this situation, configure the port path cost to make
links with the same speed use the same path host value. In the example described
above, configure the port path cost for the 802.1D-2004 compliant bridges (bridges A,
D, E, and F) to 19.
Note
You cannot configure the port path cost on bridges B and C to 200,000
because the path cost range setting for 802.1D-1998 compliant bridges is 1 to
65,535.
Bridge Priority
By configuring the STPD (Spanning Tree Domain) bridge priority, you make the bridge
more or less likely to become the root bridge.
Unlike the 802.1D-1998 standard, the 802.1D-2004 standard restricts the bridge priority
to a 16-bit number that must be a multiple of 4,096. The new priority range is 0 to
61,440 and is subject to the multiple of 4,096 restriction. The old priority range was
0 to 65,535 and was not subject to the multiple of 4,096 restriction (except for MSTP
(Multiple Spanning Tree Protocol) configurations). The default bridge priority remains
the same at 32,768.
If you have an ExtremeXOS 11.5 or earlier configuration that contains an STP or RSTP
bridge priority that is not a multiple of 4,096, the switch rejects the entry and the
bridge priority returns to the default value while loading the structure. The MSTP
implementation in ExtremeXOS already uses multiples of 4,096 to determine the
bridge priority.
For example, to lower the numerical value of the priority (which gives the priority a
higher precedence), you subtract 4,096 from the default priority: 32,768 - 4,096 = 28,672.
If you modify the priority by a value other than 4,096, the switch automatically changes
the priority to the lower priority value. For example, if you configure a priority of 31,000,
the switch automatically changes the priority to 28,672.
This feature allows you to configure all STP modes (RSTP/MSTP) bridge priority in
increments of 1 or 4,096. Allowing this level of granularity of the priority allows a large
range of priority values for the backup root functionality.
After priority reaches 0, backup root is unable to provide for rapid recovery in a lost root
situation. In that case, priority returns to its initial configured (or default) value, and the
process starts again.
Loss of root should be a rare event, but this feature setting provides a buffer in
situations where network downtime to reset the root is not often available.
Supported Platforms
The backup root bridge becomes the root bridge when something goes wrong with
the primary root bridge: root bridge failure, root bridge malfunction, or administrative
errors, and the backup root bridge looses connectivity with the root bridge.. If the
priority of the root bridge is zero and backup root loses the connectivity to the root
bridge, then automatic assignment of the priority value for the backup root becomes
the initial configured value.
In the following example, Switch1 is the root bridge with priority 32,768. Switch2,
Switch3, and Switch4 are configured with priority as 49,152, 36,864, and 40,960,
respectively. When the physical link between Switch1 and Switch2 goes down, then
Switch2 becomes the root bridge by changing its configured bridge priority, which will
be less than Switch1's 32,768 (operational priority); in this case its priority will be 28,672
(32,768 - 4,096). When the priority value reaches 0, then automatic assignment of the
priority value returns to the configured value.
To set STP bridge priority values, use the following command with the priority-mode
set to dot1d:
Port Priority
The port priority value is always paired with the port number to make up the 16-bit port
identifier, which is used in various STP operations and the STP state machines.
Unlike the 802.1D-1998 standard, the 802.1D-2004 standard uses only the four most
significant bits for the port priority and it must be a multiple of 16. The new priority
range available is 0 to 240 and is subject to the multiple of 16 restriction. The
802.1D-1998 standard uses the eight most significant bits for the port priority. The old
priority range was 0 to 31 and was not subject to the multiple of 16 restriction.
When you save the port priority value, the switch saves it as the command configure
stpd ports port-priority with the corresponding change in value.
For example, if the switch reads the configure stpd ports priority 16 command
from an ExtremeXOS 11.5 or earlier configuration, (which is equivalent to the command
configure stpd ports priority 8 entered through CLI), the switch saves the value
as configure stpd ports port-priority 128.
The 802.1D-2004 standard has a bridge detection state machine, which introduced a
third implementation of edge port behavior. The following list describes the behaviors
of the different edge port implementations:
• Edge port (ExtremeXOS 11.5 and earlier):
◦ The port does not send bridge protocol data units (BPDUs).
◦ The port does not run a state machine.
◦ If BPDUs are received, the port discards the BPDU and enters the blocking state.
◦ If subsequent BPDUs are not received, the port remains in the forwarding state.
• Edge port with safeguard configured (ExtremeXOS 11.5 and 11.4 only):
◦ The port sends BPDUs.
◦ When configured for MSTP, the port runs a partial state machine.
◦ If BPDUs are received, the port enters the blocking state.
◦ If subsequent BPDUs are not received, the port attempts to enter the forwarding
state.
• Edge port running 802.1D-2004 with safeguard enabled:
◦ The port sends BPDUs.
◦ The port runs a state machine.
◦ If BPDUs are received, the port behaves as a normal RSTP port by entering the
forwarding state and participating in RSTP.
◦ If subsequent BPDUs are not received, the port attempts to become the edge
port again.
Restricted Role
In a large metro environment, to prevent external bridges from influencing the
spanning tree active topology, the following commands have been introduced for
Rapid Spanning Tree Protocol (RSTP) and MSTP.
• configure stpd stpd_name ports restricted-role enable port_list
◦ This command enables restricted role on a specified port in the core network to
prevent external bridges from influencing the spanning tree active topology.
◦ Restricted role should not be enabled with edge mode.
◦ stpd_name—Specifies an STPD name on the switch.
◦ port_list—Specifies one or more ports or slots and ports.
◦ Enabling restricted role causes a port to not be selected as a root port, even if it
has the best spanning tree priority vector. Such a port is selected as an alternate
port after the root port is selected. The restricted role is disabled by default. If set,
it can cause a lack of spanning tree connectivity.
◦ A network administrator enables restricted role to prevent external bridges from
influencing the spanning tree active topology.
• configure stpd stpd_name ports restricted-role disable port_list
◦ This command disables restricted role on a specified port in the core network.
◦ stpd_name—Specifies an STPD name on the switch.
◦ port_list—Specifies one or more ports or slots and ports.
◦ Restricted role is disabled by default. If set, it can cause a lack of spanning tree
connectivity. A network administrator enables restricted role to prevent external
bridges from influencing the spanning tree active topology.
Loop Protect
STP depends on continuous reception of Type 2 BPDUs (RSTP/MSTP) based on the
port role. The designated port transmits BPDUs and the non-designated port receives
BPDUs. If one of the ports in a physical redundant topology no longer receives BPDUs,
then STP assumes that the topology is loop free. This leads the blocking port from the
alternate or backup port becomes designated and moves to a forwarding State causing
a loop.
Loop Protect protects the network from loops. The Loop Protect feature is achieved
by ports receiving BPDUs (RSTP/MSTP only) on point-to-point ISLs before their states
are allowed to become forwarding. Further, if a BPDU timeout occurs on a port, its
state becomes listening until a new BPDU is received. In this way, both upstream and
downstream facing ports are protected. When a root or alternate port loses its path
to the root bridge, due to message age expiration, it takes on the role of designated
port and will not forward traffic until a BPDU is received. When a port is intended to
be the designated port in an ISL, it constantly proposes and will not forward until a
BPDU is received. It will revert to listening if it stops getting a response. Loop Protect
also overrides the port admin setting. This protects against misconfiguration (such as
disabling STP on a port) and protocol failure by the connected bridge.
Note
Loop Protect Traps are not supported in this ExtremeXOS 15.7.
In full mode, when RSTP/MSTP BPDUs is received in point-to-point link and the port is
designated, a Loop Protect timer is set to 3 times hello time, when this timer expires
then port will be moved to blocking state. Limited mode adds a further requirement
that the flags field in the BPDU indicates a root role.
Message age expiration and the expiration of the Loop Protect timer are both events
for which Loop Protect generates traps and a debug message. In addition, user can
configure Loop Protect to forcefully disable port when one or more events occur. When
the configured number of events happens within a given window of time, the port will
be forced into disable and held there until you manually unlock it.
The following example shows the loop due to the misconfiguration in STP:
Figure 155 shows that Switch 1 is elected as Root. Switch 2 and Switch 3 elect the root
port. Switch3’s port connected to Switch2 is elected as Alternate port and it is port state
is in blocking state.
• If the partner is not Loop Protect Capable (Alternate Agreement not supported),
designated port will not be allowed to forward unless receiving agreements from a
port with root role.
• Legacy Spanning Tree (802.1d) or shared media devices should be connected in a
non-redundant fashion to avoid the possibility of looping.
You can enable the port by giving the command enable port port-list.
In previous releases this processing and forwarding of STP BPDUs was based only
on ports, now this has been changed to system wide (default). Prior to ExtremeXOS
15.7, blocked ports transmission of the BPDU’s was restricted, but for the Loop Protect
feature when any proposal agreement BPDU is received in the blocked port, then
reply for the proposal agreement is to be transmitted. Due to this MAC movement is
reported and the packet was not processed. This feature prevents this issue.
You can roll back to the previous implementation (port-based) if any issues are
encountered .
Backup Root
When the root bridge of spanning tree instance is lost, its information may be retained
in the network until the aging mechanism causes it to be removed. This leads to a
delay in convergence on for the new root. This backup root feature is used to get faster
convergence when the root bridge connectivity is lost.
Backup root feature enabled bridge port should be connected to Root with point to
point link. When backup root bridge lost contact with the root bridge, automatically
backup root bridge lowers its bridge priority (an increment below the priority of the lost
root). This will cause the backup root bridge to become the new root with information
superior to any information held by any bridge in the network. While save and reboot
automatically changed priority will not be saved and restored. At the time of reboots it
will have its priority restored to the original configured value by administrator.
If the priority of the root bridge is Zero and backup root has lost the connectivity of the
root bridge then automatic assignment of the priority value for the backup root will be
the initial configured value.
This backup root feature is activated only when there is loss of connectivity with the
root bridge. Raising the priority on the root will not cause the Backup root feature to be
activated.
Configuration Recommendations:
• Enable the Backup Root feature on both the root and backup root.
• Configure all bridges except the root and backup root with the maximum bridge
priority value (61440 with 802.1t).
• Configure the root and backup root to have the next lowest priority (57344 with
802.1t).
• We also recommend having multiple links between the root and backup root. This
helps prevent the Backup Root feature from activating due to a simple link failure
rather than a bridge failure.
• Care must be taken when this feature is used as it may result in sub-optimal traffic
forwarding paths.
Consider the following topology: 10G link connected from the edge switches to
the aggregation Root while the edge switches to the Backup Root switch with
1G links to reduce the cost and acts as a backup link. In this case, when the link
between aggregation Root and Backup Root fails, the traffic will now use the 1G links
providing reduced performance of the network. The aggregation old root is still in
the network which can be used to forward the traffic. This feature has moved the
root of the stp domain.
Multisource Detection
Multisource Detection is a feature that prevents network disruption due to excessive
topology changes caused by a full duplex port transmitting multiple BPDUs with
different source MAC addresses, and different BPDU information. When a port is
point-to-point, the received priority information comes from the most recently received
BPDU. When a port is non-point-to-point, the received information reflects the best
priority information out of all the received BPDUs. Typical scenarios for multisource
detection are when a switch is connected to a device which has been improperly
configured to forward received BPDUs out on other ports or has been configured to not
run the Spanning Tree protocol and treats BPDUs as multicast packets by transmitting
them out all other forwarding ports. In these situations, the connected port is acting as
a shared media device. The way to detect shared media is the duplex setting. Since the
port is full duplex it treats the connection as point-to-point.
When Loop Protect is configured for the port, if multisource detection is triggered, the
port will go to the listening state and no longer be part of the active topology. Loop
protect does not operate on shared media ports.
Restricted TCN is disabled by default. When Restricted TCN is enabled, the port does
not propagate received TCNs and topology changes to other ports. Enable Restricted
TCN to prevent unnecessary address flushing in the core region of the network caused
by activation of bridges external to the core network.
A possible reason for not allowing TCN propagation is when bridges are not under the
full control of the administrator or because MAC operational state for the attached or
downstream LANs transitions frequently, causing disruption throughout the network.
Rapid Spanning Tree responds to TCNs by selectively flushing the filter database.
Persistent TCNs are disruptive, causing persistent address flushing, which in turn
causes increased flooding in the network.
Restricted TCN is a useful tool when it is not possible to remove the source of the TCNs.
(SRP). Currently, ExtremeXOS software cannot run STP on ports that are configured for
SRP. STP on the access switch is unaware of the alternate path and therefore cannot
prevent the loop that exists across the switches. Configuring a port as an edge mode
port alone cannot prevent the loop between the switches because edge ports never
send BPDUs. The edge safeguard feature is not able to prevent the loops because STP
does not have the information about the alternate path.
To prevent the loops across the switches, the edge safeguard feature can be configured
with the BPDU restrict function. When running in BPDU restrict mode, edge safeguard
ports send STP BPDUs at a rate of one every two seconds. The port is disabled as
soon as an STP BPDU is received on the BPDU restrict port, thereby preventing the
loop. Flexibility is provided with an option to re-enable the port after a user specified
time period. If a user enables a port while STP has disabled it, the port is operationally
enabled; STP is notified and then stops any recovery timeout that has started.
When an STPD is disabled for a BPDU restrict configured port, an STP port in 802.1D
operation mode begins forwarding immediately, but in the RSTP or MSTP operation
modes, the port remains in the disabled state.
BPDU restrict is available on all of the three operational modes of STP: 802.1D, RSTP,
and MSTP.
Although edge safeguard is not available in 802.1D operation mode, when you
configure BPDU restrict you do so in a similar way, that is, as an extension of edge
safeguard; then only BPDU restrict is available on the port and not edge safeguard.
To include BPDU restrict functionality when configuring link types or edge safeguard,
see Configuring Link Types on page 1357 and Configuring Edge Safeguard on page
1358.
The following is sample output from the show s1 ports command resulting from the
configuration:
1: e=Enable, d=Disable
2: (Port role) R=Root, D=Designated, A=Alternate, B=Backup, M=Master
3: (Config type) b=broadcast, p=point-to-point, e=edge, a=auto
4: (Oper. type) b=broadcast, p=point-to-point, e=edge
5: p=proposing, a=agree
6: (partner mode) d = 802.1d, w = 802.1w, m = mstp
7: i = edgeport inconsistency
8: S = edgeport safe guard active
s = edgeport safe guard configured but inactive
8: G = edgeport safe guard bpdu restrict active in 802.1w and mstp
g = edgeport safe guard bpdu restrict active in 802.1d
9: B = Boundary, I = Internal
10: r = Restricted Role
switch # show configuration stp
#
# Module stp configuration.
#
configure mstp region 000496265f4e
configure stpd s0 delete vlan default ports all
disable stpd s0 auto-bind vlan default
create stpd s1
configure stpd s1 mode dot1w
enable stpd s0 auto-bind vlan Default
configure stpd s1 add vlan v1 ports 9 emistp
configure stpd s1 ports mode emistp 9
configure stpd s1 ports cost auto 9
configure stpd s1 ports port-priority 128 9
configure stpd s1 ports link-type edge 9
configure stpd s1 ports edge-safeguard enable 9 recovery-timeout 400
configure stpd s1 ports bpdu-restrict enable 9 recovery-timeout 400
enable stpd s1 ports 9
configure stpd s1 tag 10
enable stpd s1
The following is sample output for STP operation mode dot1d from the show
configuration stp command:
Disable Forwarding of Spanning Tree Protocol (STP) Bridge Protocol Data Units
(BDPUs)
You can disable forwarding of STP Bridge Protocol Data Units (BPDUs) when STP
is disabled on a switch. When STP is disabled globally, BPDUs received on a port
are forwarded to other ports that are part of same VLAN causing the switch to
transparently forward STP/RSTP/MSTP BPDUs. This transparent forwarding causes one-
to-many peer in the network trouble where STP disabled. To avoid this transparent
forwarding of BPDUs, you can opt to discard the BDPUs when there is no STP
configuration enabled on the switch.
A physical port can belong to multiple STPDs. In addition, a VLAN can span multiple
STPDs.
The key points to remember when configuring VLANs and STP are:
• Each VLAN forms an independent broadcast domain.
• STP blocks paths to create a loop-free environment.
• Within any given STPD, all VLANs belonging to it use the same spanning tree.
For detailed information about configuring STP and various STP parameters on the
switch, see Configuring STP on the Switch on page 1384.
Member VLANs
When you add a VLAN to an STPD, that VLAN becomes a member of the STPD. The two
types of member VLANs in an STPD are:
• Carrier
• Protected
Carrier VLAN
A carrier VLAN defines the scope of the STPD, which includes the physical and logical
ports that belong to the STPD and if configured, the 802.1Q tag used to transport
Extreme Multiple Instance Spanning Tree Protocol (EMISTP) or Per VLAN Spanning Tree
(PVST+) encapsulated bridge protocol data units (BPDUs).
See Encapsulation Modes on page 1342 for more information about encapsulating STP
BPDUs.
Only one carrier VLAN can exist in a given STPD, although some of its ports can be
outside the control of any STPD at the same time.
If you configure EMISTP or PVST+, the STPD ID must be identical to the VLAN ID of
the carrier VLAN in that STPD. See Specifying the Carrier VLAN on page 1340 for an
example.
If you have an 802.1D configuration, we recommend that you configure the StpdID
to be identical to the VLAN ID of the carrier VLAN in that STPD. See Basic 802.1D
Configuration Example on page 1387 for an example.
Protected VLAN
Protected VLANs are all other VLANs that are members of the STPD.
These VLANs “piggyback” on the carrier VLAN. Protected VLANs do not transmit or
receive STP BPDUs, but they are affected by STP state changes and inherit the state of
the carrier VLAN. Protected VLANs can participate in multiple STPDs, but any particular
port in the VLAN can belong to only one STPD. Also known as non-carrier VLANs.
If you configure MSTP, all member VLANs in an MSTP region are protected VLANs.
These VLANs do not transmit or receive STP BPDUs, but they are affected by STP
state changes communicated by the CIST to the MSTP regions. Multiple spanning
tree instances (MSTIs) cannot share the same protected VLAN; however, any port in a
protected VLAN can belong to multiple MSTIs. For more information about MSTP, see
Multiple Spanning Tree Protocol on page 1367.
create vlan v5
Notice how the tag number for the VLAN v5 (100) is identical to the tag for STPD s8. By
using identical tags, you have selected the carrier VLAN. The carrier VLAN's ID is now
identical to the STPD's ID.
STPD Modes
An STPD has three modes of operation:
• 802.1D mode
Use this mode for backward compatibility with previous STP versions and
for compatibility with third-party switches using IEEE standard 802.1D. When
configured in this mode, all rapid configuration mechanisms are disabled.
• 802.1w mode
Use this mode for compatibility with Rapid Spanning Tree (RSTP). When configured
in this mode, all rapid configuration mechanisms are enabled. The benefit of
this mode is available on point-to-point links only and when the peer is likewise
configured in 802.1w mode. If you do not select point-to-point links and the peer is
not configured for 802.1w mode, the STPD fails back to 802.1D mode.
You can enable or disable RSTP on a per STPD basis only; you cannot enable RSTP on
a per port basis.
For more information about RSTP and RSTP features, see Rapid Spanning Tree
Protocol on page 1355.
• MSTP mode
Use this mode for compatibility with MSTP. MSTP is an extension of RSTP and offers
the benefit of better scaling with fast convergence. When configured in this mode,
all rapid configuration mechanisms are enabled. The benefit of MSTP is available
only on point-to-point links and when you configure the peer in MSTP or 802.1w
mode. If you do not select point-to-point links and the peer is not configured in
802.1w mode, the STPD fails back to 802.1D mode.
You must first configure a CIST before configuring any MSTIs in the region. You
cannot delete or disable a CIST if any of the MSTIs are active in the system.
You can create only one MSTP region on the switch, and all switches that participate
in the region must have the same regional configurations. You can enable or disable
an MSTP on a per STPD basis only; you cannot enable MSTP on a per port basis.
If configured in MSTP mode, an STPD uses the 802.1D BPDU encapsulation mode by
default. To ensure correct operation of your MSTP STPDs, do not configure EMISTP or
PVST+ encapsulation mode for MSTP STPDs.
For more information about MSTP and MSTP features, see Multiple Spanning Tree
Protocol on page 1367.
By default:
• The STPD s0 operates in MSTP CIST mode.
• The default device configuration contains a single STPD called s0.
• User-created STPDs operate in dot1d mode.
• The default VLAN is a member of STPD s0 with autobind enabled.
Note
Starting with ExtremeXOS 22.2, STP operational mode can be changed while
VLANs are associated with an STP domain. In MSTP operation mode, mode
change is allowed only for CIST domains.
Encapsulation Modes
You can configure ports within an STPD to accept specific BPDU encapsulations.
This STP port encapsulation is separate from the STP mode of operation. For example,
you can configure a port to accept the PVST+ BPDU encapsulation while running in
802.1D mode.
Use this mode for backward compatibility with previous STP versions and for
compatibility with third-party switches using IEEE standard 802.1D. BPDUs are sent
untagged in 802.1D mode. Because of this, any given physical interface can have
only one STPD running in 802.1D mode. The default port mode for user-created STP
domains for Dot1d and Dot1w operation mode is Dot1d.
This encapsulation mode supports the following STPD modes of operation: 802.1D,
802.1w, and MSTP.
• Extreme Multiple Instance Spanning Tree Protocol (EMISTP) mode
This encapsulation mode supports the following STPD modes of operation: 802.1D
and 802.1w.
This mode implements PVST+ in compatibility with third-party switches running this
version of STP. The STPDs running in this mode have a one-to-one relationship with
VLANs and send and process packets in PVST+ format.
This encapsulation mode supports the following STPD modes of operation: 802.1D
and 802.1w.
These encapsulation modes are for STP ports, not for physical ports. When a physical
port belongs to multiple STPDs, it is associated with multiple STP ports. It is possible for
the physical port to run in different modes for different domains to which it belongs.
If configured in MSTP mode, an STPD uses the 802.1D BPDU encapsulation mode by
default. To ensure correct operation of your MSTP STPDs, do not configure EMISTP or
PVST+ encapsulation mode for MSTP STPDs.
• To configure the BPDU encapsulation mode for one or more STP ports, use the
command:
◦ configure stpd stpd_name ports mode [dot1d | emistp | pvst-plus]
port_list
• To configure the default BPDU encapsulation mode on a per STPD basis, use the
command:
◦ configure stpd stpd_name default-encapsulation [dot1d | emistp |
pvst-plus]
Instead of accepting the default encapsulation modes of dot1d for the default STPD
s0 and for all other STPDs, this command allows you to specify the type of BPDU
encapsulation to use for all ports added to the STPD (if not otherwise specified).
STPD Identifier
An StpdID is used to identify each STP domain.
When assigning the StpdID when configuring the domain, ensure that the carrier
VLAN of that STPD does not belong to another STPD. Unless all ports are running in
802.1D mode, an STPD with ports running in either EMISTP mode or PVST+ mode must
be configured with an StpdID.
An StpdID must be identical to the VLAN ID of the carrier VLAN in that STP domain.
For an 802.1D STPD, the VLAN ID can be either a user-defined ID or one automatically
assigned by the switch.
Note
If an STPD contains at least one port not in 802.1D mode, you must configure
the STPD with an StpdID.
MSTP uses two different methods to identify the STPDs that are part of the MSTP
network. An instance ID of 0 identifies the CIST. The switch assigns this ID automatically
when you configure the CIST STPD. An MSTI (Multiple Spanning Tree Instances)
identifier (MSTI ID) identifies each STP domain that is part of an MSTP region. You
assign the MSTI ID when configuring the STPD that participates in the MSTP region. In
an MSTP region, MSTI IDs only have local significance. You can reuse MSTI IDs across
MSTP regions. For more information about MSTP and MSTP features, see Multiple
Spanning Tree Protocol on page 1367.
STP States
Each port that belongs to a member VLAN participating in STP exists in one of the
following states:
Blocking
A port in the blocking state does not accept ingress traffic, perform traffic
forwarding, or learn MAC source addresses. The port receives STP BPDUs. During
STP initialization, the switch always enters the blocking state.
Listening
A port in the listening state does not accept ingress traffic, perform traffic
forwarding, or learn MAC source addresses. The port receives STP BPDUs. This is
the first transitional state a port enters after being in the blocking state. The bridge
listens for BPDUs from neighboring bridge(s) to determine whether the port should
or should not be blocked.
Learning
A port in the learning state does not accept ingress traffic or perform traffic
forwarding, but it begins to learn MAC source addresses. The port also receives
and processes STP BPDUs. This is the second transitional state after listening. From
learning, the port will change to either blocking or forwarding.
Forwarding
A port in the forwarding state accepts ingress traffic, learns new MAC source
addresses, forwards traffic, and receives and processes STP BPDUs.
Disabled
A port in the disabled state does not participate in STP; however, it will forward
traffic and learn new MAC source addresses.
Binding Ports
There are two ways to bind (add) ports to an STPD: manually and automatically. By
default, ports are manually added to an STPD.
Note
The default VLAN and STPD S0 are already on the switch.
The first command adds all ports or a list of ports within the specified VLAN to an
STPD. For EMISTP and PVST+, the carrier VLAN must already exist on the same set
of ports. The second command adds all ports or a list of ports to the specified VLAN
and STPD at the same time. If the ports are added to the VLAN but not to the STPD,
the ports remain in the VLAN.
For EMISTP and PVST+, if the specified VLAN is not the carrier VLAN and the
specified ports are not bound to the carrier VLAN, the system displays an error
message. If you configure MSTP on your switch, MSTP does not need carrier VLANs.
Note
The carrier VLAN's ID must be identical to the ID of the STP domain.
If you add a protected VLAN or port, that addition inherits the carrier VLAN’s
encapsulation mode, unless you specify the encapsulation mode when you execute
the configure stpd add vlan or configure vlan add ports stpd commands.
If you specify an encapsulation mode (dot1d, emistp, or pvst-plus), the STP port
mode is changed to match; otherwise, the STP port inherits either the carrier VLANs
encapsulation mode on that port or the STPD’s default encapsulation mode.
For MSTP, you do not need carrier a VLAN. A CIST controls the connectivity of
interconnecting MSTP regions and sends BPDUs across the regions to communicate
region status. You must use the dot1d encapsulation mode in an MSTP environment.
For more information about MSTP, see the section Multiple Spanning Tree Protocol
on page 1367.
• To remove ports, use the command:
configure stpd stpd_name delete vlan vlan_name ports [all | port_list]
If you manually delete a protected VLAN or port, only that VLAN or port is removed.
If you manually delete a carrier VLAN or port, all VLANs on that port (both carrier and
protected) are deleted from that STPD.
To learn more about member VLANs, see Member VLANs on page 1339. For more
detailed information about these command line interface (CLI) commands, see the
Switch Engine Command References.
automatically removed from the STPD. This feature allows the STPD to increase or
decrease its span as ports are added to or removed from a carrier VLAN.
Note
The carrier VLAN's ID must be identical to the ID of the STP domain.
Enabling autobind on a protected VLAN does not expand the boundary of the STPD.
If the same set of ports are members of the protected VLAN and the carrier VLAN,
protected VLANs are aware of STP state changes. For example, assume you have the
following scenario:
◦ Carrier VLAN named v1
◦ v1 contains ports 3:1-3:2
◦ Protected VLAN named v2
◦ v2 contains ports 3:1-3:4
Since v1 contains ports 3:1-3:2, v2 is aware only of the STP changes for ports 3:1 and
3:2, respectively. Ports 3:3 and 3:4 are not part of the STPD, which is why v2 is not
aware of any STP changes for those ports.
For MSTP, when you issue this command, any port or list of ports that gets
automatically added to an MSTI are automatically inherited by the CIST. In addition,
any port or list of ports that you remove from an MSTI protected VLAN are
automatically removed from the CIST. For more information, see Automatically
Inheriting Ports--MSTP Only on page 1346.
• To remove ports, enter the command:
configure stpd stpd_name delete vlan vlan_name ports [all | port_list]
If you manually delete a port from the STPD on a VLAN that has been added
by autobind, ExtremeXOS records the deletion so that the port does not get
automatically added to the STPD after a system restart.
To learn more about the member VLANs, see Member VLANs on page 1339. For
more detailed information about these CLI commands, see the Switch Engine
Command References.
The CIST handles BPDU processing for itself and all of the MSTIs; therefore, the CIST
must inherit ports from the MSTIs in order to transmit and receive BPDUs. You can only
delete ports from the CIST if it is no longer a member of an MSTI.
For more information about MSTP, see Multiple Spanning Tree Protocol on page 1367.
Note
Not all platforms support hitless failover in the same software release. To
verify if the software version you are running supports hitless failover, see the
following table in Managing the Switch on page 64. For more information
about protocol and platform support for hitless failover, see Understanding
Hitless Failover Support on page 88.
To support hitless failover, the primary node replicates STP BPDUs to the backup, which
allows the nodes to run STP in parallel. Although both primary and backup node
receive STP BPDUs, only the primary transmits STP BPDUs to neighboring switches
and participates in STP.
Note
Before initiating failover, review the section Synchronizing Nodes on page 1972
to confirm that both primary and backup nodes are running software that
supports the synchronize command.
1. Confirm that the nodes are synchronized and have identical software and switch
configurations using the command:
show switch {detail}
The output displays the status of the primary and backup nodes, with the primary
node showing MASTER and the backup node showing BACKUP (InSync).
If the primary and backup nodes are not synchronized and both nodes are running a
version of ExtremeXOS that supports synchronization, proceed to 2.
If the primary and backup nodes are synchronized, proceed to 3 on page 1348.
2. If the primary and backup nodes are not synchronized, use the synchronize
command to replicate all saved images and configurations from the primary to the
backup.
After you confirm the nodes are synchronized, proceed to 3.
3. If the nodes are synchronized, use the run failover (formerly run msm-failover)
command to initiate failover.
For more detailed information about verifying the status of the primary and backup
nodes, and system redundancy, see Understanding System Redundancy on page 83.
For more information about hitless failover, see Understanding Hitless Failover Support
on page 88.
STP Configurations
When you assign VLANs to an STPD, pay careful attention to the STP configuration and
its effect on the forwarding of VLAN traffic.
In Figure 160, the connection between switch A and switch B is put into blocking state,
and the connection between switch Y and switch Z is put into blocking state. After STP
converges, all the VLANs can communicate, and all bridging loops are prevented.
The protected VLAN Marketing, which has been assigned to both STPD1 and STPD2,
communicates using all five switches. The topology has no loops, because STP has
already blocked the port connection between switch A and switch B and between
switch Y and switch Z.
Within a single STPD, you must be extra careful when configuring your VLANs. Figure
161 illustrates a network that has been incorrectly set up using a single STPD so that the
STP configuration disables the ability of the switches to forward VLAN traffic.
STP can block traffic between switch 1 and switch 3 by disabling the trunk ports for that
connection on each switch.
Switch 2 has no ports assigned to VLAN Marketing. Therefore, if the trunk for VLAN
Marketing on switches 1 and 3 is blocked, the traffic for VLAN Marketing will not be able
to traverse the switches.
Note
If an STPD contains multiple VLANs, all VLANs should be configured on all
ports in that domain, except for ports that connect to hosts (edge ports).
For example, consider the sample depicted in Figure 162 on page 1351.
To optimize the solution, you can use the Extreme Multiple Instance Spanning (EMISTP)
mode, which allows a port to belong to multiple STPDs. EMISTP adds significant
flexibility to STP network design. Referring to Figure 162, using EMISTP, you can
configure all four ports to belong to both VLANs.
Assuming that S1 and S2 still correspond to VLANs A and B respectively, you can fine-
tune STP parameters to make the left link active in S1 and blocking in S2, while the right
link is active in S2 and blocking in S1. Again, if the right link fails, the left link is elected
active by the STP algorithm for S2, without affecting normal switching of data traffic.
Using EMISTP, an STPD becomes more of an abstract concept. The STPD does not
necessarily correspond to a physical domain; it is better regarded as a vehicle to carry
VLANs that have STP instances. Because VLANs can overlap, so do STPDs. However,
even if the different STPDs share the entire topology or part of the redundant topology,
the STPDs react to topology change events in an independent fashion.
Alternatively, the same VLAN may span multiple large geographical areas (because
they belong to the same enterprise) and may traverse a great many nodes.
In this case, it is desirable to have multiple STP domains operating in a single VLAN, one
for each looped area.
Figure 163 has five domains. VLANs green, blue, brown, and yellow are local to each
domain. VLAN red spans all of the four domains. Using a VLAN that spans multiple
STPDS, you do not have to create a separate domain for VLAN red. Instead, VLAN red is
“piggybacked” onto those domains local to other VLANs.
This section describes configuration issues that, if not followed, could lead to an
improper deployment of EMISTP. This section also provides the following restrictive
principles to abide by in network design:
• Although a physical port can belong to multiple STPDs, any VLAN on that port can
be in only one domain. Put another way, a VLAN cannot belong to two STPDs on the
same physical port.
• Although a VLAN can span multiple domains, any LAN segment in that VLAN must
be in the same STPD. VLANs traverse STPDs only inside switches, not across links.
On a single switch, however, bridge ports for the same VLAN can be assigned to
different STPDs. This scenario is illustrated in Figure 164.
• The VLAN partition feature is deployed under the premise that the overall inter-
domain topology for that VLAN is loop-free. Consider the case in Figure 165, VLAN
red (the only VLAN in the figure) spans STPDs 1, 2, and 3. Inside each domain, STP
produces a loop-free topology. However, VLAN red is still looped, because the three
domains form a ring among themselves.
Note
You can use MSTP to overcome the EMISTP constraints described in this
section.
To support STP configurations that use PVST, ExtremeXOS has an operational mode
called PVST+.
Note
In this document, PVST and PVST+ are used interchangeably. PVST+ is an
enhanced version of PVST that is interoperable with 802.1Q STP. The following
discussions are in regard to PVST+, if not specifically mentioned.
This fact does not exclude other non-PVST+ protected VLANs from being grouped
into the same STPD. A protected PVST+ VLAN can be joined by multiple non-PVST+
protected VLANs to be in the same STPD.
Note
When PVST+ is used to interoperate with other networking devices, each VLAN
participating in PVST+ must be in a separate STP domain.
Native VLAN
In PVST+, the native VLAN must be peered with the default VLAN on Extreme Networks
devices, as both are the only VLANs allowed to send and receive untagged packets on
the physical port.
Third-party PVST+ devices send VLAN 1 packets in a special manner. ExtremeXOS does
not support PVST+ for VLAN 1. Therefore, when the switch receives a packet for VLAN 1,
the packet is dropped.
When a PVST+ instance is disabled, the fact that PVST+ uses a different packet format
raises an issue. If the STPD also contains ports not in PVST+ mode, the flooded packet
has an incompatible format with those ports. The packet is not recognized by the
devices connected to those ports.
RSTP takes advantage of point-to-point links in the network and actively confirms
that a port can safely transition to the forwarding state without relying on any timer
configurations. If a network topology change or failure occurs, RSTP rapidly recovers
network connectivity by confirming the change locally before propagating that change
to other devices across the network. For broadcast links, there is no difference in
convergence time between STP and RSTP.
RSTP supersedes legacy STP protocols, supports the existing STP parameters and
configurations, and allows for seamless interoperability with legacy STP.
RSTP Concepts
Port Roles
RSTP uses information from BPDUs to assign port roles for each LAN segment. Port
roles are not user-configurable. Port role assignments are determined based on the
following criteria:
• A unique bridge identifier (MAC address) associated with each bridge
• The path cost associated with each bridge port
• A port identifier associated with each bridge port
RSTP assigns one of the following port roles to bridge ports in the network, as
described in Table 140.
RSTP makes the distinction between the alternate and backup port roles to describe
the rapid transition of the alternate port to the forwarding state if the root port fails.
To prevent a port from becoming an alternate or backup port, use the command:
To revert to the default that allows a port to be elected to any STP port role, use the
command:
To view the active-role status, use the command: show stpd ports.
Link Types
With RSTP (Rapid Spanning Tree Protocol), you can configure the link type of a port in
an STPD.
RSTP tries to rapidly move designated point-to-point links into the forwarding state
when a network topology change or failure occurs. For rapid convergence to occur, the
port must be configured as a point-to-point link.
Loop prevention and detection on an edge port configured for RSTP is called edge
safeguard. You can configure edge safeguard on RSTP edge ports to prevent accidental
or deliberate misconfigurations (loops) resulting from connecting two edge ports
together or by connecting a hub or other non-STP switch to an edge port. Edge
safeguard also limits the impact of broadcast storms that might occur on edge ports.
This advanced loop prevention mechanism improves network resiliency but does not
interfere with the rapid convergence of edge ports.
An edge port configured with edge safeguard immediately enters the forwarding state
and transmits BPDUs. If a loop is detected, STP blocks the port. By default, an edge port
without edge safeguard configured immediately enters the forwarding state but does
not transmit BPDUs unless a BPDU is received by that edge port.
You can also configure edge safeguard for loop prevention and detection on an MSTP
edge port.
• To configure an edge port and enable edge safeguard on that port, use the
command:
configure stpd stpd_name ports link-type [[auto | broadcast |
point-to-point] port_list | edge port_list {edge-safeguard [enable |
disable] {bpdu-restrict} {recovery-timeout seconds}}]
• If you have already configured a port as an edge port and you want to enable edge
safeguard on the port, use the following command:
configure {stpd} stpd_name ports edge-safeguard enable port_list
{bpdu-restrict} {recovery-timeout {seconds}}
• To disable edge safeguard on an edge port, enter the command:
configure {stpd} stpd_name ports edge-safeguard disable port_list
{bpdu-restrict} {recovery-timeout {seconds}}
configure stpd stpd_name ports link-type [[auto | broadcast |
point-to-point] port_list | edge port_list {edge-safeguard [enable |
disable] {bpdu-restrict} {recovery-timeout seconds}}]
In ExtremeXOS 11.5 and earlier, ports that connect to non-STP devices are edge ports.
Edge ports do not participate in RSTP, and their role is not confirmed. Edge ports
immediately enter the forwarding state unless the port receives a BPDU. In that case,
edge ports enter the blocking state. The edge port remains in the blocking state until it
stops receiving BPDUs and the message age timer expires.
ExtremeXOS 11.6 and later support an enhanced bridge detection method, which is part
of the 802.1D-2004 standard. Ports that connect to non-STP devices are still considered
edge ports. However, if you have an 802.1D-2004 compliant edge port, the bridge
detection mechanism causes the edge port to transition to a non-edge port upon
receiving a BPDU. If the former edge port does not receive a subsequent BPDU during
a pre-determined interval, the port attempts to become an edge port.
In ExtremeXOS 12.0.3 and 12.1.4 onwards, STP edge safeguard disables a port when a
remote loop is detected. ExtremeXOS versions prior to 12.0.3 and 12.1.4 place the port
in blocking mode. The change was made because BPDUs are still processed when a
port is in a blocking state. A remote loop causes BPDUs to be exponentially duplicated
which caused high CPU utilization on the switch even though the port was transitioned
to a blocked state.
RSTP Timers
For RSTP to rapidly recover network connectivity, RSTP requires timer expiration. RSTP
derives many of the timer values from the existing configured STP timers to meet its
rapid recovery requirements rather than relying on additional timer configurations.
Table 142 describes the user-configurable timers, and Table 143 on page 1359 describes
the timers that are derived from other timers and are not user configurable.
The protocol migration timer is neither user-configurable nor derived; it has a set value
of 3 seconds. The timer starts when a port transitions from STP (802.1D) mode to RSTP
(802.1w) mode and vice-versa. This timer must expire before further mode transitions
can occur.
RSTP Operation
In an RSTP environment, a point-to-point link LAN segment has two bridges.
A switch that considers itself the unique, designated bridge for the attached LAN
segment sends a “propose” message to the other bridge to request a confirmation
of its role. The other bridge on that LAN segment replies with an “agree” message if it
agrees with the proposal. The receiving bridge immediately moves its designated port
into the forwarding state.
Before a bridge replies with an “agree” message, it reverts all of its designated ports
into the blocking state. This introduces a temporary partition into the network. The
bridge then sends another “propose” message on all of its designated ports for further
confirmation. Because all of the connections are blocked, the bridge immediately
sends an “agree” message to unblock the proposing port without having to wait for
further confirmations to come back or without the worry of temporary loops.
Beginning with the root bridge, each bridge in the network engages in the exchange
of “propose” and “agree” messages until they reach the edge ports. Edge ports connect
to non-STP devices and do not participate in RSTP. Their role does not need to be
confirmed. If you have an 802.1D-2004 compliant edge port, the bridge detection
mechanism causes the edge port to transition to a non-edge port upon receiving
a BPDU. If the former edge port does not receive a subsequent BPDU during a pre-
determined interval, the port attempts to become an edge port.
RSTP attempts to transition root ports and designated ports to the forwarding state
and alternate ports and backup ports to the blocking state as rapidly as possible.
Note
RSTP is backward-compatible with STP, so if a port does not move to the
forwarding state with any of the RSTP rapid transition rules, a forward delay
timer starts and STP behavior takes over.
• Is now a root port and no other ports have a recent role assignment that contradicts
with its root port role;
• Is a designated port and attaches to another bridge by a point-to-point link and
receives an “agree” message from the other bridge port; or
• Is an edge port. An edge port is a port connected to a non-STP device and is in the
forwarding state.
To prevent this type of loop from occurring, the recent backup timer starts. The root
port transition rule does not allow a new root port to be in the forwarding state until
the recent backup timer expires.
Another situation may arise if you have more than one bridge and you lower the port
cost for the alternate port, which makes it the new root port. The previous root port is
now an alternate port. Depending on your STP implementation, STP may set the new
root port to the forwarding state before setting the alternate port to the blocking state.
This may cause a loop.
To prevent this type of loop from occurring, the recent root timer starts when the port
leaves the root port role. The timer stops if the port enters the blocking state. RSTP
requires that the recent root timer stop on the previous root port before the new root
port can enter the forwarding state.
For an unsynced designated port to rapidly move into the forwarding state, the port
must propose a confirmation of its role on the attached LAN segment (unless the port
is an edge port). Upon receiving an “agree” message, the port immediately enters the
forwarding state.
If the receiving bridge does not agree and it has a superior STP priority, the receiving
bridge replies with its own BPDU. Otherwise, the receiving bridge keeps silent, and the
proposing port enters the forwarding state and starts the forward delay timer.
The link between the new designated port and the LAN segment must be a point-to-
point link. If there is a multi-access link, the “propose” message is sent to multiple
recipients. If only one of the recipients agrees with the proposal, the port can
erroneously enter the forwarding state after receiving a single “agree” message.
If the receiving bridge receives a proposal for a designated port, the bridge replies with
its own BPDU. If the proposal is for an alternate or backup port, the bridge keeps silent.
In an RSTP environment, only non-edge ports entering the forwarding state cause a
topology change. A loss of network connectivity is not considered a topology change;
however, a gain in network connectivity must be communicated. When an RSTP bridge
detects a topology change, that bridge starts the topology change timer, sets the
topology change flag on its BPDUs, floods all of the forwarding ports in the network
(including the root ports), and flushes the learned MAC address entries.
Rapid Reconvergence
This section describes the RSTP rapid behavior following a topology change.
In this example, the bridge priorities are assigned based on the order of their
alphabetical letters; bridge A has a higher priority than bridge F.
Suppose you have a network, as shown in Figure 167 on page 1364, with six bridges
(bridge A through bridge F) where the following is true:
• Bridge A is the root bridge.
• Bridge D contains an alternate port in the blocking state.
• All other ports in the network are in the forwarding state.
If the link between bridge A and bridge F goes down, bridge F detects the root port is
down. At this point, bridge F:
• Immediately disables that port from the STP.
• Performs a configuration update.
• Bridge E believes that bridge A is the root bridge. When bridge E receives the BPDU
on its root port from bridge F, bridge E:
◦ Determines that it received an inferior BPDU.
◦ Immediately begins the max age timer on its root port.
◦ Performs a configuration update.
Each RSTP bridge contains a port protocol migration state machine to ensure that
the ports in the STPD operate in the correct, configured mode. The state machine is
a protocol entity within each bridge configured to run in 802.1w mode. For example,
a compatibility issue occurs if you configure 802.1w mode and the bridge receives an
802.1D BPDU on a port. The receiving port starts the protocol migration timer and
remains in 802.1D mode until the bridge stops receiving 802.1D BPDUs. Each time the
bridge receives an 802.1D BPDU, the timer restarts. When the port migration timer
expires, no more 802.1D BPDUs have been received, and the bridge returns to its
configured setting, which is 802.1w mode.
This concept is not new to Extreme Networks. Like MSTP, Extreme Networks proprietary
EMISTP implementation can achieve the same capabilities of sharing a virtual network
topology among multiple VLANs; however, MSTP overcomes some of the challenges
facing EMISTP, including enhanced loop protection mechanisms and new capabilities
to achieve better scaling.
MSTP logically divides a Layer 2 network into regions. Each region has a unique
identifier and contains multiple spanning tree instances (MSTIs). An MSTI is a spanning
tree domain that operates within and is bounded by a region. MSTIs control the
topology inside the regions. The Common and Internal Spanning Tree (CIST) is a single
spanning tree domain that interconnects MSTP regions. The CIST is responsible for
creating a loop-free topology by exchanging and propagating BPDUs across regions to
form a Common Spanning Tree (CST).
MSTP uses RSTP as its converging algorithm and is interoperable with the legacy STP
protocols: STP (802.1D) and RSTP (802.1w).
MSTP has three major advantages over 802.1D, 802.1w, and other proprietary
implementations:
• To save control path bandwidth and provide improved scalability, MSTP uses regions
to localize BPDU traffic. BPDUs containing information about MSTIs contained
within an MSTP region do not cross that region’s boundary.
• A single BPDU transmitted from a port can contain information for up to 64 STPDs.
MSTP BPDU processing utilizes less resources compared to 802.1D or 802.1w where
one BPDU corresponds to one STPD.
• In a typical network, a group of VLANs usually share the same physical topology.
Dedicating a spanning tree per VLAN like PVST+ is CPU intensive and does not scale
very well. MSTP makes it possible for a single STPD to handle multiple VLANs.
MSTP Concepts
MSTP Regions
An MSTP network consists of either individual MSTP regions connected to the rest of
the network with 802.1D and 802.1w bridges or as individual MSTP regions connected to
each other.
An MSTP region defines the logical boundary of the network. With MSTP, you can
divide a large network into smaller areas similar to an OSPF (Open Shortest Path First)
area or a BGP (Border Gateway Protocol) Autonomous System, which contain a group
of switches under a single administration. Each MSTP region has a unique identifier
and is bound together by one CIST that spans the entire network. A bridge participates
in only one MSTP region at a time.
An MSTP region can hide its internal STPDs and present itself as a virtual 802.1w bridge
to other interconnected regions or 802.1w bridges because the port roles are encoded
in 802.1w and MSTP BPDUs.
By default, the switch uses the MAC address of the switch to generate an MSTP region.
Since each MAC address is unique, every switch is in its own region by default. For
multiple switches to be part of an MSTP region, you must configure each switch in the
region with the same MSTP region identifiers. See Configuring MSTP Region Identifiers
on page 1369 for information.
In Figure 175, all bridges inside MSTP regions 1 and 2 are MSTP bridges; bridges outside
of the regions are either 802.1D or 802.1w bridges.
For multiple switches to be part of an MSTP region, you must configure each switch in
the region with the same MSTP configuration attributes, also known as MSTP region
identifiers. The following list describes the MSTP region identifiers:
• Region Name—This indicates the name of the MSTP region. In the Extreme
Networks implementation, the maximum length of the name is 32 characters and
can be a combination of alphanumeric characters and underscores ( _ ).
• Format Selector—This indicates a number to identify the format of MSTP BPDUs.
The default is 0.
• Revision Level—An unsigned integer encoded within a fixed field of 2 octets that
identifies the revision of the current MST configuration. The revision number is not
incremented automatically each time that the MST configuration is committed.
The switches inside a region exchange BPDUs that contain information for MSTIs.
The switches connected outside of the region exchange CIST information. By having
devices look at the region identifiers, MSTP discovers the logical boundary of a region:
• To configure the MSTP region name, use the command:
configure mstp region regionName
The maximum length of the region name is 32 characters and can be a combination
of alphanumeric characters and underscores ( _ ). You can configure only one MSTP
region on the switch at any given time.
If you have an active MSTP region, we recommend that you disable all active STPDs
in the region before renaming the region on all of the participating switches.
• To configure the number used to identify MSTP BPDUs, use the command:
configure mstp format format_identifier
By default, the value used to identify the MSTP BPDUs is 0. The range is 0 to 255.
If you have an active MSTP region, we recommend that you disable all active
STPDs in the region before modifying the value used to identify MSTP BPDUs on
all participating switches.
• To configure the MSTP revision level, use the command:
configure mstp revision revision
Although this command is available on the CLI, this command is reserved for future
use.
Before you unconfigure an MSTP region, we recommend that you disable all active
STPDs in the region.
After you issue this command, all of the MSTP settings return to their default values.
See Configuring MSTP Region Identifiers on page 1369 for information about the
default settings.
In essence, the CIST is similar to having a large spanning tree across the entire network.
The CIST has its own root bridge that is common to all MSTP regions, and each
MSTP region elects a CIST regional root that connects that region to the CIST, thereby
forming a CST.
The switch assigns the CIST an instance ID of 0, which allows the CIST to send BPDUs
for itself in addition to all of the MSTIs within an MSTP region. Inside a region, the
BPDUs contain CIST records and piggybacked M-records. The CIST records contain
information about the CIST, and the M-records contain information about the MSTIs.
Boundary ports exchange only CIST record BPDUs.
All MSTP configurations require a CIST domain. You must first configure the CIST
domain before configuring any MSTIs. By default, all MSTI ports in the region are
inherited by the CIST. You cannot delete or disable a CIST if any of the MSTIs are active
in the system.
• Configure an STPD as the CIST, specifying the mstp cist keywords in the following
command:
configure stpd stpd_name mode [dot1d | dot1w | mstp [cist | msti
instance]]
You can enable MSTP on a per STPD basis only. By specifying the mstp cist
keywords, you can configure the mode of operation for the STPD as MSTP and
identify the STPD to be the CIST.
In a Layer 2 network, the bridge with the lowest bridge ID becomes the CIST root
bridge. The parameters (vectors) that define the root bridge include the following:
• User-defined bridge priority (by default, the bridge priority is 32,768)
• MAC address
The CIST root bridge can be either inside or outside an MSTP region. The CIST root
bridge is unique for all regions and non-MSTP bridges, regardless of its location.
For more information about configuring the bridge ID, see the configure stpd
priority command.
Within an MSTP region, the bridge with the lowest path cost to the CIST root bridge is
the CIST regional root bridge.
The path cost, also known as the CIST external path cost, is a function of the link
speed and number of hops. If there is more than one bridge with the same path cost,
the bridge with the lowest bridge ID becomes the CIST regional root. If the CIST root
is inside an MSTP region, the same bridge is the CIST regional root for that region
because it has the lowest path cost to the CIST root. If the CIST root is outside an MSTP
region, all regions connect to the CIST root via their CIST regional roots.
The total path cost to the CIST root bridge from any bridge in an MSTP region consists
of the CIST internal path cost (the path cost of the bridge to the CIST regional root
bridge) and the CIST external path cost. To build a loop-free topology within a region,
the CIST uses the external and internal path costs, and the MSTI uses only the internal
path cost.
Looking at MSTP region 1 in Figure 176, the total path cost for the bridge with ID 60
consists of an external path cost of A and an internal path cost of E.
The port on the CIST regional root bridge that connects to the CIST root bridge is the
CIST root port (also known as the master port for MSTIs).
The CIST root port is the master port for all MSTIs in that region, and it is the only port
that connects the entire region to the CIST root.
If a bridge is both the CIST root bridge and the CIST regional root bridge, there is no
CIST root port on that bridge.
To enable the CIST, use the following command and specify the CIST domain as the
stpd_name:
You must first configure a CIST before configuring any MSTIs in the region. You cannot
delete or disable a CIST if any of the MSTIs are active in the system.
You can map multiple VLANs to an MSTI; however, multiple MSTIs cannot share the
same VLAN.
MSTP uses the MSTI ID, not an Stpd ID, to identify the spanning tree contained within
the region. As previously described, the MSTI ID only has significance within its local
region, so you can re-use IDs across regions.
To configure the MSTI that is inside an MSTP region and its associated MSTI ID, use the
following command and specify the mstp [msti instance] parameters:
configure stpd stpd_name mode [dot1d | dot1w | mstp [cist | msti
instance]]
Each MSTI independently chooses its own root bridge. For example, if two MSTIs are
bounded to a region, there is a maximum of two MSTI regional roots and one CIST
regional root.
The bridge with the lowest bridge ID becomes the MSTI regional root bridge. The
parameters that define the root bridge include the following:
• User-defined bridge priority (by default, the bridge priority is 32,768)
• MAC address
Within an MSTP region, the cost from a bridge to the MSTI regional root bridge is
known as the MSTI internal path cost. Looking at MSTP region 1 in Figure 176 on page
1372, the bridge with ID 60 has a path cost of F to the MSTI regional root bridge.
The MSTI regional root bridge can be the same as or different from the CIST regional
root bridge of that region. You achieve this by assigning different priorities to the
STP instances configured as the MSTIs and the CIST. For more information about
configuring the bridge ID, see the configure stpd priority command in the
Switch Engine Command References.
The port on the bridge that has the lowest path cost to the MSTI regional root bridge is
the MSTI root port.
If a bridge has two or more ports with the same path cost, the port with the best port
identifier becomes the root port.
To enable the MSTI, use the following command and specify the MSTI domain as the
stpd_name:
Note
If two switches are configured for the same CIST and MSTI region, in order for
them to understand that they are in the same region, both must also belong to
the same VLAN which is added to the STP domain. If they belong to different
VLANs, each switch believes that each belongs to a different region. When an
MSTP BPDU is sent, it carries a VID digest created by VLAN memberships in
the CIST domain and the MSTI domain.
Boundary Ports
Boundary ports are bridge ports that are only connected to other MSTP regions or
802.1D or 802.1w bridges.
The ports that are not at a region boundary are called internal ports. The boundary
ports exchange only CIST BPDUs. A CIST BPDU originated from the CIST root enters a
region through the CIST root port and egresses through boundary ports. This behavior
simulates a region similar to an 802.1w bridge, which receives BPDUs on its root ports
and forwards updated BPDUs on designated ports.
Figure 177 shows an MSTP network that consists of two MSTP regions. Each region has
its own CIST regional root and is connected to the CIST root through master ports. The
CIST regional roots in each region are the MSTP bridges having the lowest CIST external
root path cost. The CIST root is the bridge with the lowest bridge ID and is an 802.1w
bridge outside of either MSTP region.
Region 2 can be the designated region or segment B can be the designated segment.
The CIST BPDUs egressing from the boundary ports carry the CIST regional root as the
designated bridge. This positions the entire MSTP region as one virtual bridge.
The CIST controls the port roles and the state of the boundary ports. A master port is
always forwarding for all CIST and MSTI VLANs. If the CIST sets a boundary port to the
discarding state, the CIST blocks traffic for all VLANs mapped to it and the MSTIs within
that region. Each MSTI blocks traffic for their member VLANs and puts their internal
ports into the forwarding or blocking state depending on the MSTI port roles.
In addition to these port roles, MSTP introduces a new port role: Master. A Master port is
the port that connects an MSTI to the CIST root.
In the Extreme Networks MSTP implementation, the listening state is not truly
implemented as FDB (forwarding database) learning cannot be done when the port
is not in the forwarding state. Ports in the blocking state listen but do not accept
ingress traffic, perform traffic forwarding, or learn MAC source address; however, the
port receives and processes BPDUs.
For more information about all of the STP port states, see STP States on page 1344.
In an MSTP environment, configure the same link types for the CIST and all MSTIs.
For more information about the link types, see Link Types on page 1356.
Note
In MSTP, configuring edge safeguard at CIST will be inherited in all MSTIs.
In MSTP, an edge port needs to be added to a CIST before adding it to an MSTI.
MSTP Timers
MSTP uses the same timers as STP and RSTP. For more information, see RSTP Timers
on page 1359.
The BPDUs use hop counts to age out information and to notify neighbors of a
topology change.
Note
You can configure the default STPD, S0 as the CIST.
No VLAN can be bound to the CIST and no ports can be added to the CIST.
Therefore, the VLAN should be bound to the MSTI and the “show MSTI port”
command will show the VLAN ports. The ports added to the MSTI are bound
automatically to the CIST even though they are not added to it.
For a more detailed configuration example, see MSTP Configuration Example on page
1390.
MSTP Operation
To further illustrate how MSTP operates and converges, Figure 178 on page 1377
displays a network with two MSTP regions. Each region contains three MSTP bridges
and one MSTI. The overall network topology also contains one CIST root bridge (Switch
A, which has the lowest bridge ID), one interconnecting 802.1w bridge (Switch D), and
10 full duplex, point-to-point segments. VLAN Default spans all of the bridges and
segments in the network, VLAN engineering is local to its respective region, and STPD
S0 is configured as the CIST on all bridges.
Figure 178: MSTP Topology with the CIST Root Bridge Contained within a Region
MSTP Region 1 consists of the following:
• Three bridges named Switch A, Switch B, and Switch C
• One MSTI STPD named S1 with an MSTI ID of 1
• VLAN Engineering mapped to the MSTI STPD, S1
• Switch A as the CIST root bridge (this is the CIST root bridge for all regions)
• Switch A as the CIST regional root bridge
• Switch A as the MSTI regional root bridge
• Three boundary ports that connect to MSTP Region 2 and other 802.1D or 802.1w
bridges
Note
The MSTI ID does not have any significance outside of its region so you can
reuse IDs across regions.
1. Determining the CIST root bridge, MSTP regions, and region boundaries.
Each bridge believes that it is the root bridge, so each bridge initially sends root
bridge BPDUs throughout the network. As bridges receive BPDUs and compare
vectors, the bridge with the lowest Bridge ID is elected the CIST root bridge. In our
example, Switch A has the lowest Bridge ID and is the CIST root bridge.
The bridges in the MSTP regions (Switches A, B, C, E, F, and G) advertise their region
information along with their bridge vectors.
Segments 1, 3, and 9 receive BPDUs from other regions and are identified as
boundary ports for Region 1. Similarly, segments 2, 3, and 9 are identified as
boundary ports for Region 2.
2. Controlling boundary ports.
The CIST regional root is advertised as the Bridge ID in the BPDUs exiting the region.
By sending CIST BPDUs across regional boundaries, the CIST views the MSTP regions
as virtual 802.1w bridges. The CIST takes control of the boundary ports and only CIST
BPDUs enter or exit a region boundary.
Each MSTP region has a CIST regional root bridge that communicates to the CIST
root bridge. The bridge with the lowest path cost becomes the CIST regional root
bridge. The port on the CIST regional root bridge that connects to the CIST root
bridge is the CIST root port.
For Region 1, Switch A has the lowest cost (0 in this example) and becomes the CIST
regional root. Since the bridge is both the CIST root bridge and the CIST regional
root bridge, there is no CIST root port on the bridge.
For Region 2, Switch E is the CIST regional root bridge and so a port on that bridge
becomes the CIST root port.
3. Identifying MSTI regional roots.
Each MSTI in a region has an MSTI regional root bridge. MSTI regional roots are
selected independently of the CIST root and CIST regional root. The MSTP BPDUs
have M-records for each MSTI. Bridges belonging to an MSTI compare vectors in
their M-records to elect the MSTI regional root.
4. Converging the CIST.
The CIST views every region as a virtual bridge and calculates the topology using
the 802.1w algorithm. The CIST calculates the topology both inside and outside of a
region.
5. Converging MSTIs.
After the CIST identifies the boundary ports, each MSTI in a domain converge their
own trees using 802.1w.
At this point, all CIST and MSTIs have assigned port roles (Root, Designated,
Alternate, and Backup) to their respective spanning trees. All root and designated
ports transition to the forwarding state while the remaining ports remain in the
discarding state.
For more information, see Propagating Topology Change Information on page 1363.
Note
You should be aware that an STP topology change will affect the network login
clients. See STP Rules and Restrictions on page 1383 for further information.
Figure 179 shows STP and network login enabled on ports 2 and 3 of Switch 2 and
Switch 3 for a typical aggregation scenario.
The Figure 180 shows a typical scenario for protecting loops and monitoring traffic on
the edge side.
The blocking type configuration can be verified with the command show forwarding
configuration.
In typical MLAG deployments (see Figure 181), connections can exist between access
switches, which can cause data loops. By configuring MSTP/RSTP on all the nodes,
loops can be effectively prevented.
You should configure the MSTP/RSTP domain in the MLAG peers with a higher priority
than the access switches, which blocks the redundant link between access switches.
The LAG links in blue form one set of MLAG links and the corresponding ports at MLAG
peers are associated with one MLAG index. The LAG links in red form another set of
MLAG links, and the corresponding ports at MLAG peers are associated with another
MLAG index.
For the purpose of synchronization of protocol information, a master is elected for each
MLAG index between MLAG peers, based on switch MAC address of peers and MLAG
index. By choosing MLAG index with odd or even number, it is possible to change
mastership between MLAG peers. Only the master node will transmit BPDUs and
process BPDUs. Port roles and states are computed by the master node for the given
MLAG index and applied on the local MLAG port. These details are check pointed to the
backup node and are applied on its MLAG port.
Since both MLAG peers should act like single switch, the ISC link should not be blocked,
regardless of MSTP/RSTP role. Keeping this in mind, the port cost of the ISC port is
chosen internally to be the lowest possible value (see Default Port Path Cost on page
1326). This helps in selecting the ISC link as the active link if there are any parallel links
to the ISC. MLAG links do not have special preference over redundant connections that
are in parallel to the MLAG link. The standard MST/RSTP algorithm disables both MLAG
links if it has higher root path cost than the redundant link. This allows the lower cost
link to be chosen as active link. If you configure MSTP over MLAG, both MLAG peers and
access switches should be in the same MSTP region. This makes MLAG and ISC ports
internal ports.
Note
The carrier VLAN's ID must be identical to the StpdID.
Note
You should not configure any STP parameters unless you have considerable
knowledge and experience with STP. The default STP parameters are
adequate for most networks.
• Max age (In an MSTP environment, configure this only on the CIST.)
• Max hop count (MSTP only)
• Bridge priority
• Domain description
• StpdID (STP, RSTP, EMISTP, and PVST+ only)
• MSTI ID (MSTP only)
The following parameters can be configured on each port:
• Path cost
• Port priority
• Port mode
Note
When using more than one STP domain over the same set of ports, it
is recommended to turn off the L2-fast-convergence feature (configure
forwarding L2-protocol fast-convergence off) as this feature causes
unnecessary flooding during topology changes.
Note
The device supports the RFC 1493 Bridge MIB, RSTP-03, and Extreme
Networks STP MIB. Parameters of the s0 default STPD support RFC 1493
and RSTP-03. Parameters of any other STPD support the Extreme Networks
STP MIB.
If an STPD contains at least one port not in 802.1D (dot1D) mode, the STPD
must be configured with an StpdID.
The following section provides more detailed STP configuration examples, including
802.1D, EMISTP, RSTP, and MSTP.
To display more detailed information for one or more STPDs, specify the detail
option.
If you have MSTP configured on the switch, this command displays additional
information:
◦ MSTP Region
◦ Format Identifier
◦ Revision Level
◦ Common and Internal Spanning Tree (CIST)
◦ Total number of MST Instances (MSTI)
• To display the state of a port that participates in STP, use the command:
show {stpd} stpd_name ports {[detail | port_list {detail}]}
To display more detailed information for one or more ports in the specified STPD,
including participating VLANs, specify the detail option.
This command displays the following information:
◦ STPD port configuration
◦ STPD port mode of operation
◦ STPD path cost
◦ STPD priority
◦ STPD state (root bridge, etc.)
◦ Port role (root designated, alternate, etc.)
◦ STPD port state (forwarding, blocking, etc.)
◦ Configured port link type
◦ Operational port link type
◦ Edge port settings (inconsistent behavior, edge safeguard setting)
◦ MSTP port role (internal or boundary)
If you have MSTP configured and specify the detail option, this command displays
additional information:
◦ MSTP internal path cost
◦ MSTP timers
◦ STPD VLAN Settings
• If you have a VLAN that spans multiple STPDs, use the show {vlan} vlan_name
stpd command to display the STP configuration of the ports assigned to that
specific VLAN.
The command displays the following:
◦ STPD port configuration
◦ STPD port mode of operation
◦ STPD path cost
◦ STPD priority
◦ STPD state (root bridge, etc.)
◦ Port role (root designated, alternate, etc.)
◦ STPD port state (forwarding, blocking, etc.)
◦ Configured port link type
◦ Operational port link type
Note
If you do not explicitly configure the VLAN ID in your 802.1D deployment,
use the show vlan command to see the internal VLAN ID automatically
assigned by the switch.
Note
To assign the carrier VLAN, the StpdID must be identical to the VLAN ID of the
carrier VLAN.
By default, the port encapsulation mode for user-defined STPDs is dot1d. In this
example, you set it to dot1d.
Note
By default, all ports added to a user-defined STPD or STPD s0 are in dot1d
mode, unless otherwise specified.
The following commands configure the switch located between S1 and S2:
create vlan red
configure red tag 100
configure red add ports 1:1-1:4 tagged
create vlan green
configure green tag 200
configure green add ports 1:1-1:2 tagged
create vlan yellow
configure yellow tag 300
configure yellow add ports 1:3-1:4 tagged
create stpd s1
configure stpd s1 add green ports all emistp
configure stpd s1 add red ports 1:1-1:2 emistp
configure stpd s1 tag 100
enable stpd s1
create stpd s2
configure stpd s2 add yellow ports all emistp
configure stpd s2 tag 300
configure stpd s2 add red ports 1:3-1:4 emistp
enable stpd s2
1. Create an STPD.
2. Configure the mode of operation for the STPD.
3. Create the VLANs and assign the VLAN ID and the VLAN ports.
4. Assign the carrier VLAN.
5. Add the protected VLANs to the STPD.
6. Configure the port link types.
7. Enable STP.
Use the same commands to configure each switch and STPD in the network.
create stpd stpd1
configure stpd stpd1 mode dot1w
create vlan sales
create vlan personnel
create vlan marketing
configure vlan sales tag 100
configure vlan personnel tag 200
configure vlan marketing tag 300
configure vlan sales add ports 1:1,2:1 tagged
configure vlan personnel add ports 1:1,2:1 tagged
configure vlan marketing add ports 1:1,2:1 tagged
configure stpd stpd1 add vlan sales ports all
configure stpd stpd1 add vlan personnel ports all
configure stpd stpd1 add vlan marketing ports all
configure stpd stpd1 ports link-type point-to-point 1:1,2:1
configure stpd stpd1 tag 100
enable stpd stpd1
Figure 184 is an example with multiple STPDs that can benefit from MSTP. In this
example, we have two MSTP regions that connect to each other and one external
802.1w bridge.
For MSTP to work, complete the following steps on all switches in Region 1 and Region
2:
1. Remove ports from the VLAN Default that will be added to VLAN Engineering.
2. Create the VLAN Engineering.
3. Assign a VLAN ID to the VLAN Engineering.
Note
If you do not explicitly configure the VLAN ID in your MSTP deployment,
use the show vlan command to see the internal VLAN ID automatically
assigned by the switch.
4. Add ports to the VLAN Engineering.
5. Create the MSTP region.
Note
You can configure only one MSTP region on the switch at any given time.
6. Create the STPD to be used as the CIST, and configure the mode of operation for the
STPD.
7. Specify the priority for the CIST.
8. Enable the CIST.
9. Create the STPD to be used as an MSTI and configure the mode of operation for the
STPD.
10. Specify the priority for the MSTI.
11. Assign the VLAN Engineering to the MSTI.
12. Configure the port link type.
13. Enable the MSTI.
1. Create an STPD that has the same name as the CIST, and configure the mode of
operation for the STPD.
2. Specify the priority of the STPD.
3. Enable the STPD.
Note
In the following sample configurations, any lines marked (Default) represent
default settings and do not need to be explicitly configured. STPD s0 already
exists on the switch.
In the following example, the commands configure Switch A in Region 1 for MSTP. Use
the same commands to configure each switch in Region 1:
create vlan engineering
configure vlan engineering tag 2
configure vlan engineering add port 2-3 tagged
configure mstp region region1
create stpd s0 (Default)
disable stpd s0 auto-bind vlan Default
configure stpd s0 mode mstp cist (Default)
configure stpd s0 priority 32768 (Default)
enable stpd s0 (Default)
create stpd s1
configure stpd s1 mode mstp msti 1
configure stpd s1 priority 32768 (Default)
enable stpd s1 auto-bind vlan engineering
configure stpd s0 ports link-type point-to-point 2-3
enable stpd s1
In the following example, the commands configure Switch E in Region 2 for MSTP. Use
the same commands to configure each switch in Region 2:
create vlan finance
configure vlan finance tag 2
configure vlan finance add port 2-3 tagged
configure mstp region region2
create stpd s0 (Default)
configure stpd s0 mode mstp cist (Default)
configure stpd s0 priority 32768 (Default)
disable stpd s0 auto-bind vlan Default
enable stpd s0 (Default)
create stpd s1
configure stpd s1 mode mstp msti 1
configure stpd s1 priority 32768 (Default)
enable stpd s1 auto-bind vlan finance
configure stpd s0 ports link-type point-to-point 2-3
In the following example, the commands configure switch D, the external switch.
Switch D becomes the CIST root bridge:
create stpd s0 (Default)
disable stpd s0
configure stpd s0 mode dot1w
configure stpd s0 priority 28672
enable stpd s0 auto-bind vlan Default (Default)
configure stpd s0 ports link-type point-to-point 4-5
enable stpd s0
ESRP Overview
The ESRP (Extreme Standby Router Protocol)™, like the Virtual Router Redundancy
Protocol (VRRP), allows multiple switches to provide redundant routing services to
users.
ESRP is used to eliminate the single point of failure associated with manually
configuring a default gateway address on each host in a network. Without using ESRP,
if the configured default gateway fails, you must reconfigure each host on the network
to use a different router as the default gateway. ESRP provides a redundant path for the
hosts. Using ESRP, if the default gateway fails, the backup router assumes forwarding
responsibilities.
Note
Support for ESRP operation over IPv6 networks was added in ExtremeXOS
release 12.6.
In addition to providing Layer 3 routing redundancy for IP and IPX, ESRP also provides
Layer 2 redundancy features for fast failure recovery and to provide for dual-homed
system design. In some instances, depending on network system design, ESRP can
provide better resiliency than using Spanning Tree Protocol (STP) or Virtual Router
Redundancy Protocol (VRRP (Virtual Router Redundancy Protocol)). You can use Layer
3 and Layer 2 redundancy features in combination or independently. ESRP is available
only on Extreme Networks switches. An example ESRP topology is shown in Figure 185.
Unless groups are configured, each ESRP domain supports two routers, one operating
in the master state, and one operating in the slave state. Within an ESRP domain, any
ESRP router can become the master, but only one ESRP router can be master at a time.
Only the master can actively provide Layer 3 routing and/or Layer 2 switching for each
VLAN. The master handles the forwarding, ARP requests, NDP messages, and routing
for a particular VLAN. The slave router stands by, ready to take over if the master is no
longer available.
Each switch in an ESRP topology has its own unique IP address (or IPX NetID) and
a MAC address, which are required for basic IP connectivity. For each ESRP domain,
there is a shared virtual IP address or IPX NetID and a MAC address, which are used
for network client communications. The virtual IP address or IPX NetID is configured
on all ESRP routers in a domain, and it is configured as the default gateway address
on network clients in that domain. If the master ESRP router becomes unavailable, the
backup ESRP router takes over using the same virtual IP address or IPX NetID.
The topology in Figure 185 shows that one switch serves as the master for the Corpnet1
and Corpnet2 domains, and the other switch serves as master for the Corpnet3 domain.
This topology demonstrates the load sharing capability of ESRP. If one switch served
as master for all ESRP domains, all traffic would be routed through that master,
and the slave switch would be idle. Dividing the ESRP domain mastership between
routers allows domain clients access to more bandwidth and reduces the likelihood of
exceeding the capacity of a single master router.
Deploying ESRP in this area of the network allows you to simplify your network design,
which is important in designing a stable network. ESRP also works well in meshed
networks where Layer 2 loop protection and Layer 3 redundancy are simultaneously
required.
Note
For complete information about platform support for ESRP, see the
Switch Engine Licensing Guide document.
If any of the configured tracking mechanisms fail, the master ESRP switch
relinquishes status as master, and remains in slave mode for as long as the tracking
mechanism continues to fail.
• ESRP priority—This is a user-defined field. The range of the priority value is 0 to 255;
a higher number has higher priority, except for 255. The default priority setting is 0. A
priority setting of 255 makes an ESRP switch a standby switch that remains in slave
mode until you change the priority setting. We recommend this setting for system
maintenance. A switch with a priority setting of 255 will never become the master.
• System MAC address—The switch with the higher MAC address has higher priority.
• Active port weight—The switch that has the highest port weight takes precedence.
The bandwidth of the port automatically determines the port weight (available only
in extended mode).
You can configure the precedence order of the factors used by the system to determine
the master ESRP switch. For more information about configuring the ESRP election
metrics, see ESRP Election Algorithms on page 1398.
Additionally, the switch exchanges ESRP packets with other switches that are in slave
mode.
Upon entering the pre-master state, the switch sends ESRP packets to other switches
on that same VLAN. If the switch finds itself superior to its neighbor, and successfully
executes loop detection techniques, the switch transitions to master. This temporary
state avoids the possibility of having simultaneous masters.
When a switch is in slave mode, it does not perform Layer 3 routing or Layer 2 switching
services for the VLAN. From a Layer 3 routing protocol perspective (for example, RIP
(Routing Information Protocol) or OSPF (Open Shortest Path First)), when in slave
mode for the VLAN, the switch marks the router interface associated with that VLAN
as down. From a Layer 2 switching perspective, no forwarding occurs between the
member ports of the VLAN; this prevents loops and maintains redundancy.
If you configure the switch to use the optional ESRP Host Attach configuration, the
switch continues Layer 2 forwarding to the master. For more information, see ESRP
Host Attach on page 1415.
In a neutral state, the switch waits for ESRP to initialize and run. A neutral switch does
not participate in ESRP elections. If the switch leaves the neutral state, it enters the
slave state.
If a parameter determines the master changes (for example, link loss or priority
change), the election of the new master typically occurs within one second. A
parameter change triggers a handshake between the routers. As long as both routers
agree upon the state transition, new master election is immediate.
If a switch in slave mode loses its connection with the master, a new election occurs
(using the same precedence order indicated ESRP Master Election on page 1395 or
using a configured precedence order described in ESRP Election Algorithms on page
1398). The new election typically takes place in three times the defined timer cycle (8
seconds by default).
Before the switch transitions to the master state, it enters a temporary pre-master state.
While in the pre-master state, the switch sends ESRP PDUs until the pre-master state
timeout expires. Depending upon the election algorithm, the switch may then enter
the master or slave state. Traffic is unaffected by the pre-master state because the
master continues to operate normally. The pre-master state avoids the possibility of
having simultaneous masters.
Caution
Configure the pre-master state timeout only with guidance from Extreme
Networks support. Misconfiguration can severely degrade the performance of
ESRP and your switch.
The failover time associated with the ESRP protocol depends on the timer setting and
the nature of the failure. The default hello timer setting is two seconds; the range is
2-1024 seconds. The default neighbor timer setting is eight seconds; the range is 3*hello
to 1024 seconds. The failover time depends on the type of event that caused ESRP to
failover. In most cases, a non-hardware failover is less than one second, and a hardware
failover is eight seconds.
If routing is configured, the failover of the particular routing protocol (such as RIP V1,
RIP V2, or OSPF) is added to the failover time associated with ESRP.
If you use OSPF, make your OSPF configuration passive. A passive configuration acts as
a stub area and helps decrease the time it takes for recalculating the network. A passive
configuration also maintains a stable OSPF core.
For more information about the ESRP timers and configuring the ESRP timers, see
ESRP Configuration Overview on page 1405.
To change the election algorithm, you must first disable the ESRP domain and then
configure the new election algorithm. If you attempt to change the election algorithm
without disabling the domain first, an error message appears.
• To disable the ESRP domain, use the following command:
disable esrp {esrpDomain}
• To modify the election algorithm, use the following command:
configure esrp esrpDomain add elrp-poll ports [ports | all]
If you attempt to use an election algorithm not supported by the switch, an error
message similar to the following appears:
ERROR: Specified election-policy is not supported! Supported Policies:
1. sticky > ports > weight > track > priority > mac 2. ports > track
> priority 3. sticky > ports > track > priority 4. ports > track >
priority > mac 5. sticky > ports > track > priority > mac 6. priority
> mac 7. sticky > priority > mac 8. priority > ports > track > mac 9.
sticky > priority > ports > track > mac 10. priority > track > ports
> mac 11. sticky > priority > track > ports > mac 12. track > ports
> priority 13. sticky > track > ports > priority 14. track > ports >
priority > mac 15. sticky > track > ports > priority > mac
Table 144 describes the ESRP election algorithms. Each algorithm considers the
election factors in a different order of precedence. The election algorithms that use
sticky and weight are only available in extended mode.
priority > mac Specifies that this ESRP domain should consider
election factors in the following order: ESRP priority,
MAC address.
priority > ports > track > mac Specifies that this ESRP domain should consider
election factors in the following order: ESRP priority,
active ports, tracking information, MAC address.
priority > track > ports > mac Specifies that this ESRP domain should consider
election factors in the following order: ESRP priority,
tracking information, active ports, MAC address.
sticky > ports > track > priority Specifies that this ESRP domain should consider
election factors in the following order: stickiness,
active ports, tracking information, ESRP priority.
sticky > ports > track > priority > Specifies that this ESRP domain should consider
mac election factors in the following order: stickiness,
active ports, tracking information, ESRP priority, MAC
address.
sticky > ports > weight > track > Specifies that this ESRP domain should consider
priority > mac election factors in the following order: stickiness,
active ports, port weight, tracking information, ESRP
priority, MAC address. This is the default election
algorithm for extended mode.
sticky > priority > ports > track > Specifies that this ESRP domain should consider
mac election factors in the following order: stickiness,
ESRP priority, active ports, tracking information, MAC
address.
sticky > priority > track > ports > Specifies that this ESRP domain should consider
mac election factors in the following order: stickiness,
ESRP priority, tracking information, active ports, MAC
address.
sticky > priority > mac Specifies that this ESRP domain should consider
election factors in the following order: stickiness,
ESRP priority, MAC address.
Caution
All switches in the ESRP network must use the same election algorithm;
otherwise, loss of connectivity, broadcast storms, or other unpredictable
behavior may occur.
ESRP Domains
ESRP domains allow you to configure multiple VLANs under the control of a single
instance of the ESRP protocol. By grouping multiple VLANs under one ESRP domain,
the ESRP protocol can scale to provide protection to large numbers of VLANs. All VLANs
within an ESRP domain simultaneously share the same active and standby router and
failover router, as long as one port of each member VLAN belongs to the domain
master.
Depending on the election policy used, when a port in a member VLAN belongs to the
domain master, the member VLAN ports are considered when determining the ESRP
master. You can configure a maximum of 64 ESRP domains in a network.
If you disable an ESRP domain, the switch notifies its neighbor that the ESRP domain
is going down, and the neighbor clears its neighbor table. If the master switch receives
this information, it enters the neutral state to prevent a network loop. If the slave switch
receives this information, it also enters the neutral state.
ESRP packets do not identify themselves to which domain they belong; you either
configure a domain ID or the ESRP domain uses the 802.1Q tag (VLANid) of the master
VLAN.
A domain ID in the packet clearly classifies the packet, associates a received ESRP PDU
to a specific ESRP domain, and tells the receiving port where the packet came from.
Note
Active Ports Count (ports): Total number of active physical ports of master
VLANs of the ESRP domain.
ESRP Groups
ExtremeXOS software supports running multiple instances of ESRP within the same
VLAN or broadcast domain. This functionality is called an ESRP group. Although other
uses exist, the most typical application for multiple ESRP groups is when two or more
sets of ESRP switches are providing fast-failover protection within a subnet.
A maximum of seven distinct ESRP groups can be supported on a single ESRP switch,
and a maximum of 32 ESRP groups can be defined within the same network broadcast
domain. You can configure a maximum of 32 ESRP groups in a network.
For example, two ESRP switches provide Layer 2/Layer 3 connectivity and redundancy
for the subnet, while another two ESRP switches provide Layer 2 connectivity and
redundancy for a portion of the same subnet. Figure 186 shows ESRP groups.
You can use ESRP extended mode only when all switches that participate in ESRP are
running ExtremeXOS software.
The following list describes the ESRP extended mode features that are not available in
standard mode:
• Handshaking
In standard mode, events such as link flapping cause the ESRP master switch to
generate a large number of packets and to increase processing time.
To prevent this, extended mode supports handshaking, which occurs when a switch
requests a state change, forces its neighbor to acknowledge the change, and the
neighbor sends an acknowledgement to the requesting switch. For example, if a
slave switch wants to become the master, it enters the pre-master state, notifies the
neighbor switch, and forces the neighbor to acknowledge the change. The neighbor
then sends an acknowledgement back to the slave switch. While the requesting
switch waits for the acknowledgements, future updates are suppressed to make
sure the neighbor does not act on incorrect data.
• Stickiness
In standard mode, if an event causes the ESRP master switch to fail over to the slave,
it becomes the new master. If another event occurs, the new master switch returns
to the slave and you have experienced two network interruptions.
To prevent this, extended mode supports the sticky election metric. The default
election algorithm uses the sticky metric. For example, if an event causes the ESRP
master switch to fail over to the slave, it becomes the new master and has a higher
sticky value. If another event occurs, for example adding active ports to the slave,
the new master does not fail back to the original master even if the slave has more
active ports. After sticky is set on the master, regardless of changes to its neighbor’s
election algorithm, the new master retains its position. Sticky algorithms provide
for fewer network interruptions than non-sticky algorithms. Sticky is set only on the
master switch.
• Port weight
In standard mode, the port count calculation does not take into account the
available bandwidth of the ports. For example, a switch with a one Gigabit Ethernet
uplink may be unable to become master because another switch has a load-shared
group of four fast Ethernet links. The active port count calculation considers only the
number of active ports, not the bandwidth of those ports.
In extended mode, the active port count calculation considers the number of active
ports and the port weight configuration considers the bandwidth of those ports. You
enable port weight only on the load-shared master port.
• Domain ID
In standard mode, ESRP packets do not contain domain information; therefore, the
only information about the packet comes from the receiving port.
mode, you must have a domain ID for each ESRP domain. Each switch participating
in ESRP for a particular domain must have the same domain ID configured.
In standard mode, both the master switch and slave switch send periodic ESRP hello
messages. This causes an increase in packet processing by both the master and
slave.
In extended mode, the master switch sends periodic ESRP hello messages. This
reduces the amount of packet processing, increases the amount of available link
bandwidth, and does not impact communicating state changes between switches.
• ESRP Automatic Toggle Feature
ESRP includes an automatic toggle feature, which toggles to the same mode of
operation as an ESRP neighbor. This action causes the switch to enter the neutral
state and re-elect the ESRP master.
Note
The automatic toggle feature toggles the ESRP operational mode, not the
configured mode. If the switch is configured for ESRP extended mode and
the switch toggles to standard mode, the switch enters extended mode the
next time the switch boots.
Direct links between ESRP switches are useful under the following conditions:
• A direct link can provide a more direct routed path, if the ESRP switches are routing
and supporting multiple VLANs where the master/slave configuration is split such
that one switch is master for some VLANs and a second switch is master for other
VLANs. The direct link can contain a unique router-to-router VLAN/subnet, so that
the most direct routed path between two VLANs with different master switches uses
a direct link, instead of forwarding traffic through another set of connected routers.
• A direct link can be used as a highly reliable method to exchange ESRP hello
messages, so that the possibility of having multiple masters for the same VLAN is
lessened if all downstream Layer 2 switches fail.
• A direct link is necessary for the ESRP host attach option. The direct link is used to
provide Layer 2 forwarding services through an ESRP slave switch.
Direct links may contain a router-to-router VLAN, along with other VLANs participating
in an ESRP domain. If multiple VLANs are used on the direct links, use 802.1Q tagging.
The direct links may be aggregated into a load-shared group, if desired. If multiple
ESRP domains share a host port, each VLAN must be in a different ESRP group.
ESRP-Aware Switches
Extreme Networks switches that are not actively participating in ESRP but are
connected on a network that has other Extreme Networks switches running ESRP are
ESRP-aware. When ESRP-aware switches are attached to ESRP-enabled switches, the
ESRP-aware switches reliably perform failover and failback scenarios in the prescribed
recovery times.
If Extreme Networks switches running ESRP are connected to Layer 2 switches that are
manufactured by third-party vendors, the failover times for traffic local to that segment
may appear longer, depending on the application involved and the FDB (forwarding
database) timer used by the other vendor’s Layer 2 switch. ESRP can be used with
Layer 2 switches from other vendors, but the recovery times vary.
The VLANs associated with the ports connecting an ESRP-aware switch to an ESRP-
enabled switch must be configured using an 802.1Q tag on the connecting port; or, if
only a single VLAN is involved, as untagged using the protocol filter 'any.' ESRP does
not function correctly if the ESRP-aware switch interconnection port is configured for
a protocol-sensitive VLAN using untagged traffic. You can also use port restart in this
scenario. For more information, see ESRP Port Restart on page 1414.
Configuring ESRP
Guidelines
To participate in ESRP, the following must be true:
• A VLAN can belong to only one ESRP domain.
• The IP address for the VLANs participating in an ESRP domain must be identical.
• For operation over IPv6, both an IPv6 and an IPv4 address must be present on the
master VLAN for every participating router.
• All switches in the ESRP network must use the same election algorithm, otherwise
loss of connectivity, broadcast storms, or other unpredictable behavior may occur.
• If you have an untagged master VLAN, you must specify an ESRP domain ID. The
domain ID must be identical on all switches participating in ESRP for that particular
domain.
• If you have a tagged master VLAN, ESRP uses the 802.1Q tag (VLANid) of the master
VLAN for the ESRP domain ID. If you do not use the VLANid as the domain ID, you
must specify a different domain ID. As previously described, the domain ID must be
identical on all switches participating in ESRP for that particular domain.
Note
If you configure the OSPF routing protocol and ESRP, you must manually
configure an OSPF router identifier. Be sure that you configure a unique OSPF
router ID on each switch running ESRP. For more information, see OSPF
We recommend that all switches participating in ESRP run the same version of
ExtremeXOS software.
1. Create and configure a VLAN that will become the master VLAN. (See VLANs on
page 582.)
2. As needed, create and configure the VLANs that will become the member VLANs.
(See VLANs on page 582.)
3. Create the ESRP domain as described in Creating and Deleting an ESRP Domain on
page 1405.
4. If your configuration requires an ESRP domain ID, configure it as described in .
5. Add the master VLAN to the ESRP domain as described in Adding and Deleting a
Master VLAN on page 1406.
6. If your configuration requires member VLANs, add the member VLANs to the ESRP
domain as described in Adding and Deleting a Member VLAN on page 1406.
7. Enable ESRP for the specified ESRP domain as described in Enabling and Disabling
an ESRP Domain on page 1407.
You can also configure other ESRP domain parameters, including ESRP:
• Timers as described in the Switch Engine Command References.
• Election algorithms as described in ESRP Election Algorithms on page 1398.
• Tracking as described in ESRP Tracking on page 1411.
• Port restart as described in ESRP Port Restart on page 1414.
• Host attach as described in ESRP Host Attach on page 1415.
• Groups as described in ESRP Groups on page 1401.
For more detailed information about all of the commands used to create, configure,
enable, and disable an ESRP domain, refer to the Switch Engine Command
References.
Note
If you use the same name across categories (for example, STPD (Spanning
Tree Domain) and ESRP names) we recommend that you specify the
appropriate keyword as well as the actual name. If you do not specify the
keyword, the switch may display an error message.
The number parameter specifies the number of the domain ID. The user-configured
ID range is 4096 through 65,535.
The esrpDomain parameter specifies the name of the ESRP domain, and the
vlan_name parameter specifies the name of the master VLAN.
• To delete a master VLAN, you must first disable the ESRP domain before removing
the master VLAN using the disable esrp {esrpDomain} command.
• To delete a master VLAN from an ESRP domain, use the following command:.
configure esrp esrpDomain delete master vlan_name
The esrpDomain parameter specifies the name of the ESRP domain, and the
vlan_name parameter specifies the name of the member VLAN.
• To delete a member VLAN from an ESRP domain, use the following command:
configure esrp esrpDomain delete member vlan_name
Note
Before you begin, make a note of the ESRP domain parameters on the ESRP-
enabled switch. That way you can easily refer to your notes while creating the
ESRP domain on the ESRP-aware switch.
For complete information about software licensing for this feature, see the
Switch Engine Licensing Guide document.
2. Add a master VLAN to your ESRP domain using the command:
configure esrp esrpDomain add master vlan_name
3. If configured, add the member VLANs to your ESRP domain using the command:
configure esrp esrpDomain add member vlan_name
4. If necessary, configure a domain ID for the ESRP domain using the command:
configure esrp esrpDomain domain-id number
Note
When used on a VPLS service VLAN, ELRP does not detect loops involving the
VPLS pseudowires.
For more information about standalone ELRP, see Using ELRP to Perform Loop Tests
on page 1989.
With ELRP, each switch, except for the sender, treats the ELRP protocol data unit
(PDU) as a Layer 2 multicast packet. The sender uses the source and destination
MAC addresses to identify the packet it sends and receives. When the sender receives
its original packet back, that triggers loop detection and prevention. After a loop is
detected, the loop recovery agent is notified of the event and takes the necessary
actions to recover from the loop. ELRP operates only on the sending switch; therefore,
ELRP operates transparently across the network.
How a loop recovers is dependent upon the protocol that uses the loop detection
services provided by ELRP.
If you are using ELRP in an ESRP environment, ESRP may recover by transitioning the
ESRP domain from master to slave. The following sections describe how ESRP uses
ELRP to recover from a loop and the switch behavior:
• Using ELRP with ESRP to Recover Loops on page 1409
• Configuring ELRP on page 1410
• Displaying ELRP Information on page 1411
In an ESRP environment, when the current master goes down, one of the slaves
becomes the master and continues to forward Layer 2 and Layer 3 traffic for the ESRP
domain. If a situation occurs when a slave incorrectly concludes that the master is
down, the slave incorrectly assumes the role of master. This introduces more than
one master on the ESRP domain which causes temporary loops and disruption in the
network.
A pre-master switch is an ESRP switch that is ready to transition to master but is going
through possible loop detection.
A pre-master periodically sends out ELRP loop-detect packets (ELRP PDUs) for a
specified number of times and waits to make sure that none of the sent ELRP PDUs are
received. Transition to master occurs only after this additional check is completed. If any
of the ELRP PDUs are received, the switch transitions from pre-master to slave state.
You configure pre-master ELRP loop detection on a per ESRP domain basis.
A master switch is an ESRP switch that sends ELRP PDUs on its ESRP domain ports.
If the master switch receives an ELRP PDU that it sent, the master transitions to
the slave. While in the slave state, the switch transitions to the pre-master rate and
periodically checks for loops before transitioning to the master. The pre-master process
is described in ELRP on an ESRP Pre-Master Switch on page 1409. You configure the
master ELRP loop detection on a per ESRP domain basis.
Configuring ELRP
By default, ELRP is disabled. The following sections describe the commands used to
configure ELRP for use with ESRP:
• Configuring Pre-Master Polling on page 1410
• Configuring Master Polling on page 1410
• Configuring Ports on page 1411
Note
When used on a virtual private LAN service (VPLS) VLAN, ELRP does not detect
loops involving the VPLS pseudowires.
If you enable the use of ELRP by ESRP in the pre-master state, ESRP requests ELRP
packets sent to ensure that there is no loop in the network before changing to the
master state. If no packets are received, there is no loop in the network. By default, the
use of ELRP by ESRP in the pre-master state is disabled.
• To enable the use of ELRP by ESRP in the pre-master state on a per-ESRP domain
basis, and to configure how often and how many ELRP PDUs are sent in the pre-
master state, use the following command:
configure esrp esrpDomain elrp-premaster-poll enable {count count |
interval interval}
• To disable the use of ELRP by ESRP in the pre-master state, use the following
command:
configure esrp esrpDomain elrp-premaster-poll disable
If you enable the use of ELRP by ESRP in the master state, ESRP requests that ELRP
packets are periodically sent to ensure that there is no loop in the network while ESRP
is in the master state. By default, the use of ELRP by ESRP in the master state is
disabled.
• To enable the use of ELRP by ESRP in the master state on a per-ESRP domain basis,
and to configure how often the master checks for loops in the network, use the
following command:
configure esrp esrpDomain elrp-master-poll enable {interval interval}
• To disable the use of ELRP by ESRP in the master state, use the following command:
configure esrp esrpDomain elrp-master-poll disable
Configuring Ports
You can configure one or more ports of an ESRP domain where ELRP packet
transmission is requested by ESRP. This allows the ports in your network that might
experience loops, such as ports that connect to the master, slave, or ESRP-aware
switches, to receive ELRP packets. You do not need to send ELRP packets to host ports.
By default, all ports of the ESRP domain have ELRP transmission enabled on the ports.
If you change your network configuration, and a port no longer connects to a master,
slave, or ESRP-aware switch, you can disable ELRP transmission on that port.
• To disable ELRP transmission, use the following command:
configure esrp esrpDomain delete elrp-poll ports [ports | all]
• To enable ELRP transmission on a port, use the following command:
configure esrp esrpDomain add elrp-poll ports [ports | all]
In addition to displaying the enabled/disabled state of ELRP, the command displays the
total number of:
• Clients registered with ELRP
• ELRP packets transmitted
• ELRP packets received
For more information about the output associated with the show elrp command, see
the Switch Engine Command References.
ESRP Tracking
Tracking information is used to track various forms of connectivity from the ESRP
switch to the outside world.
Note
ExtremeXOS software determines the maximum available power required
for the switch by calculating the number of power supplies and the power
required by the installed modules. Enabling environmental tracking on the
switch without enough power budget causes tracking to fail. In this case, the
tracking failure occurs by design.
Because the priority of both ESRP domains are set to the same value, ESRP will use the
active ports count to determine the master ESRP domain.
switch automatically relinquishes master status and remains in slave mode. You can
track a maximum of eight routes per route table.
Note
ESRP route tracking is not supported for IPv6 destinations..
Note
ESRP ping tracking is not supported for IPv6 destinations. The ESRP ping
tracking option cannot be configured to ping an IP address within an ESRP
VLAN subnet. It should be configured on some other normal VLAN across the
router boundary.
The frequency option specifies the number of seconds between ping requests.
The miss option specifies the number of consecutive ping failures that initiate
failover to an ESRP slave.
The success option specifies the number consecutive ping successes required for
tracking success.
• To disable ping tracking, use the following command:
configure esrp esrpDomain delete track-ping ipaddress
If a switch becomes a slave, ESRP takes down (disconnects) the physical links of
member ports that have port restart enabled. The disconnection of these ports
causes downstream devices to remove the ports from their FDB tables. This feature
allows you to use ESRP in networks that include equipment from other vendors.
After 2 seconds, the ports re-establish connection with the ESRP switch.
• To remove a port from the restart configuration, delete the port from the VLAN and
re-add it.
Normally, the Layer 2 redundancy and loop prevention capabilities of ESRP do not allow
packet forwarding from the slave ESRP switch. ESRP HA allows configured ports that
do not represent loops to the network to continue Layer 2 operation independent of
their ESRP status.
ESRP HA is designed for redundancy for dual-homed server connections. HA allows the
network to continue Layer 2 forwarding regardless of the ESRP status. Do not use ESRP
HA to interconnect devices on the slave ESRP switch instead of connecting directly to
the ESRP master switch.
The ESRP HA option is useful if you are using dual-homed network interface cards
(NICs) for server farms, as shown in the following figure. The ESRP HA option is also
useful where an unblocked Layer 2 environment is necessary to allow high-availability
security.
If you use load sharing with the ESRP HA feature, configure the load-sharing group first
and then enable HA on the group.
Note
Do not use the ESRP HA feature with the following protocols: STP or VRRP. A
broadcast storm may occur.
To configure a port to be a host port, use the following command: configure esrp
ports ports mode [host | normal]
For load-shared ports, configure the master port in the load-share group with the port
weight. A load-shared port has an aggregate weight of all of its member ports. If you
add or delete a load-shared port (or trunk), the master load-shared port weight is
updated.
If you do not want to count host ports and normal ports as active, configure the ESRP
port weight on those ports. Their weight becomes 0 and that allows the port to be part
of the VLAN, but if a link failure occurs, it will not trigger a reconvergence. With this
configuration, ESRP experiences fewer state changes due to frequent client activities
like rebooting and unplugging laptops. This port is known as a don’t-count port.
• To configure the port weight on either a host attach port or a normal port, use the
following command:
configure esrp ports ports weight [auto | port-weight]
Selective Forwarding
An ESRP-aware switch floods ESRP PDUs from all ports in an ESRP-aware VLAN. This
flooding creates unnecessary network traffic because some ports forward ESRP PDUs
to switches that are not running the same ESRP groups. You can select the ports
that are appropriate for forwarding ESRP PDUs by configuring selective forwarding
on an ESRP-aware VLAN and thus reduce this excess traffic. Configuring selective
forwarding creates a port list of only those ports that forward to the ESRP groups that
are associated with an ESRP-aware VLAN. This ESRP-aware port list is then used for
forwarding ESRP PDUs.
Note
We recommend keeping the default settings unless you have considerable
knowledge and experience with ESRP.
When an ESRP-aware switch receives an ESRP PDU on a domain, the software looks
up the group to which the PDU belongs. If the group is found, the ESRP-aware
switch processes the PDU then and forwards it according to the group’s specified
aware selective forwarding port list. If no selective forwarding port list is configured,
the switch forwards the PDU from all of the ports of the domain’s master VLAN. If
the group is not found, the PDU is forwarded on all ports.
When a user adds one or more ports to the ESRP-aware port list (for example, 5:1 and
6:2) that are not part of the master VLAN, the following message appears:
Warning: Port 5:1, 6:2 not currently a member of master vlan
The ports will still be added to the ESRP-aware port list; however, PDUs will not be
forwarded out of those ports until they are added to the master VLAN.
• To disable selective forwarding, use the following command:
configure esrp domain aware delete selective-forward-ports all|
portlist {group group number}
• To view ESRP counter information for a specific domain, use the following
command:
show esrp {name} counters
• To view ESRP-aware information for a specific domain (including the group number,
MAC address for the master, and the age of information), use the following
command:
show esrp domain aware {selective-forward-ports | statistics}
The edge switches are dual-homed two switches that are configured to support ESRP
domain esrp1. The ESRP switches perform Layer 2 switching and Layer 3 routing
between the edge switches and the outside world. Each ESRP switch has the VLAN
Sales configured using the identical IP address. The ESRP switches then connect to
the routed enterprise normally, using the desired routing protocol (for example, RIP or
OSPF).
Figure 189: Single ESRP Domain Using Layer 2 and Layer 3 Redundancy
In this example, the ESRP master performs both Layer 2 switching and Layer 3 routing
services for VLAN Sales. To prevent bridging loops in the VLAN, the ESRP slave performs
no switching or routing for VLAN Sales while the ESRP master is operating.
There are four paths between each ESRP switch and the edge switches for VLAN Sales.
All the paths are used to send ESRP packets, allowing for four redundant paths for
communication. The edge switches, being ESRP-aware, allow traffic within the VLAN
to failover quickly because these edge switches sense when a master/slave transition
occurs and flush FDB entries associated with the uplinks to the ESRP-enabled switches.
Figure 190: Multiple ESRP Domains Using Layer 2 and Layer 3 Redundancy
This example builds on the previous example. It has the following features:
In this example, the ESRP switches are configured such that VLAN Sales normally uses
the first ESRP switch and VLAN Engineering normally uses the second ESRP switch.
This is accomplished by manipulating the ESRP priority setting for each VLAN for the
particular ESRP switch.
Note
To support operation over IPv6, the master VLANs configured in this example
require both an IPv4 and an IPv6 address. ESRP route tracking and ESRP ping
tracking are not supported for IPv6 addresses.
This chapter assumes that you are already familiar with the Virtual Router Redundancy
Protocol (VRRP). If not, refer to the following publications for additional information:
• RFC 2338—Virtual Router Redundancy Protocol (VRRP)
• RFC 2787—Definitions of Managed Objects for the Virtual Router Redundancy
Protocol
• RFC 3768—Virtual Router Redundancy Protocol (VRRP) Version 2 for IPv4
www.ietf.org/rfc/rfc3768.txt
• RFC 5798—Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6
http://tools.ietf.org/html/rfc5798
• Draft IETF VRRP Specification v2.06 http://tools.ietf.org/html/draft-ietf-vrrp-spec-
v2-06
VRRP Overview
VRRP (Virtual Router Redundancy Protocol), like the ESRP (Extreme Standby Router
Protocol), allows multiple switches to provide redundant routing services to users.
VRRP is used to eliminate the single point of failure associated with manually
configuring a default gateway address on each host in a network. Without using
VRRP, if the configured default gateway fails, you must reconfigure each host on the
network to use a different router as the default gateway. VRRP provides a redundant
path for the hosts. Using VRRP, if the default gateway fails, the backup router assumes
forwarding responsibilities. An example VRRP topology is shown in Figure 191.
Each switch in a VRRP topology has its own unique IP and MAC addresses, which
are required for basic IP connectivity. For each VRRP router instance, there are shared
VRRP IP and MAC addresses, which are used for network client communications. The
VRRP router IP address is configured on all VRRP routers in a VRRP routing instance,
and it is configured as the default gateway address on network clients. If the master
VRRP router becomes unavailable, the backup VRRP router takes over using the same
VRRP router IP address.
If the VRRP router IP address matches the actual VLAN IP address of the IP address
owner has the highest priority value (255) and will always become the master when
VRRP is enabled and operating correctly. If the switch or the VRRP process on the
switch stops responding, a backup switch (Switch B in Figure 192) takes over the master
role and serves as the default gateway for network clients.
VRRP supports multiple backup routers. If the master VRRP router stops working, one
of the backup routers takes over as described in ESRP Master Election on page 1395.
VRRP also supports multiple VRRP router instances, which can be used to enable load
sharing. The following figure shows a VRRP load-sharing configuration.
Note
We recommend that you do not enable VRRP on aggregated VLANs, which are
also known as super VLANs.
VRRP Guidelines
The following guidelines apply to using VRRP:
• VRRP packets are encapsulated IP packets.
• The VRRP IPv4 multicast address is 224.0.0.18.
• The VRRP IPv6 multicast address is ff02::12.
• The maximum number of supported VRIDs per interface is 255 for V3-v2 version
mode, and 255 for v2 or v# version mode.
• An interconnect link between VRRP routers should not be used, except when VRRP
routers have hosts directly attached.
• VRRP instance scale is dependent on platform and license. Please refer to the
ExtremeXOS release notes for details.
• Up to 255 unique VRIDs can be configured on the router.
• VRRP and other L2 redundancy protocols can be simultaneously enabled on the
same switch.
• When VRRP and BOOTP/DHCP (Dynamic Host Configuration Protocol) relay are
both enabled on the switch, the relayed BOOTP agent IP address is the actual switch
IP address, not the virtual IP address.
• We do not recommend simultaneously enabling VRRP and ESRP on the same
switch.
• VRRP and ESRP cannot be configured on the same VLAN or port. This configuration
is not allowed.
• RFC 5798 describes a situation where a master VRRP router takes on a duplicate
IP address due to interaction with the duplicate address detection (DAD) feature.
To prevent such duplicate addresses, the DAD feature is disabled whenever a VRRP
router is configured for IPv6 or IPv4.
• A VRRP router instance can be configured with multiple IP addresses on the same
subnet or on different subnets, provided that all virtual IP addresses match the
subnet address of a VLAN on the switch. For example, if a host switch has VLAN
IP addresses in the 1.1.1.x and 2.2.2.x subnets, then that VRRP router instance can
contain virtual IP addresses in both those subnets as well.
• If a VRRP router instance is assigned priority 255, then the host router must own
all the IP addresses assigned to the VRRP router instance. That is, each virtual IP
address must match an IP address configured for a VLAN on the router.
• When a VRRPv2 instance spans routers using ExtremeXOS version 12.6 and earlier
and routers using ExtremeXOS version 12.7 and later, routers using ExtremeXOS
version 12.6 and earlier log packet-size warning messages.
• VRRP scaling numbers differs based on the license and hardware used; please refer
the release notes for individual scaling limits.
Note
A maximum of 511 VRRP instances are allowed without One-To-Many Mirroring.
If using OTM Mirroring, only 507 VRRP instances are allowed. You can increase
VRRP scaling limit by using VRRP grouping (see VRRP Grouping to Increase VR
Scaling on page 1440).
Note
The behavior of ExtremeXOS 30.1 has changed if locally configured IP
addresses are used to determine network reachability. For details, see the ping
command.
is no longer available. The higher number has higher priority. The default value for
backup routers is 100.
• Higher IP address—If multiple backup routers have the same configured priority, the
router with the highest IP address becomes the master.
If the master router becomes unavailable, the election process begins and the backup
router that wins the election assumes the role of master.
Note
In VRRP IPv6, master election happens based on the interface link local
address when the priorities are the same. The highest link local address switch
is selected as the VRRP master.
If VRRP is disabled on the master interface, the master router sends an advertisement
with the priority set to 0 to all backup routers. This signals the backup routers that they
do not need to wait for the master down interval to expire, and the master election
process can begin immediately.
The master down interval is set using the following formula: 3 x advertisement interval
+ skew time.
The advertisement interval is a user-configurable option, and the skew time is (256-
priority/256).
Note
The formula for VRRPv2; ((256 - priority) / 256). The VRRPv3 Skew time
calculation will be different. Please refer to RFC 5798 (http://tools.ietf.org/html/
rfc5798), Skew time. (((256 - priority) x Master_Adver_Interval) / 256)
Note
An extremely busy CPU can create a short dual master situation. To avoid this,
increase the advertisement interval.
VRRP election occurs as described in ESRP Master Election on page 1395. VRRP
preemption occurs when a VRRP backup router is added to the network or recovers,
and that backup router has a higher priority than the current backup VRRP that is
operating as the master.
Note
The VRRP router IP address owner always preempts, independent of the VRRP
preemption setting.
When a VRRP backup router preempts the master, it does so in one of the following
ways:
• If the preempt delay timer is configured for between 1 and 3600 seconds and the
lower-priority master is still operating, the router preempts the master when the
timer expires.
• If the preempt delay timer is configured for 0, the router preempts the master after
three times length of the hello interval.
• If the higher priority router stops receiving advertisements from the current master
for three times the length of the hello interval, it takes over mastership immediately.
The preempt delay timer provides time for a recovering router to complete start up
before preempting a lower-priority router. If the preempt delay timer is configured too
low, traffic is lost between the time the preempting router takes control and the time
when it has completed startup.
VRRP Tracking
Tracking information is used to track various forms of connectivity from the VRRP
router to the outside world.
When the mode is all, the master role is relinquished when one of the following events
occur:
• All of the tracked VLANs fail.
• All of the tracked routes fail.
• All of the tracked pings fail.
Note
Mastership is relinquished and the switch goes to INIT state.
When the mode is any, the master role is relinquished when any of the tracked VLANs,
routes, or pings fail.
If no active ports remain on the specified VLANs, the router automatically relinquishes
master status based on the tracking mode.
If any of the configured routes are not available within the route table, the router
automatically relinquishes master status based on the tracking mode.
Note
MPLS (Multiprotocol Label Switching) LSPs are not considered to be part of
VRRP route tracking.
The responder may represent the default route of the router, or any device meaningful
to network connectivity of the master VRRP router. If pinging the responder
consecutively fails the specified number of times, the router automatically relinquishes
master status based on the tracking mode.
The VRRP MAC address for an IPv4 VRRP router instance is an IEEE 802 MAC address in
the following hexadecimal format (in Internet-standard bit-order):
00-00-5E-00-01-<vrid>
The first three octets are derived from the IANA Organizational Unique Identifier (OUI).
The next two octets (00-01) indicate the address block assigned to the VRRP router for
the IPv4 protocol, and VRID is the VRRP instance identifier. This mapping provides for
up to 255 IPv4 VRRP routers on a network.
When a VRRP router instance becomes active, the master router issues a gratuitous
ARP response that contains the VRRP router MAC address for each VRRP router IP
address.
The master also always responds to ARP requests for VRRP router IP addresses with an
ARP response containing the VRRP MAC address. Hosts on the network use the VRRP
router MAC address when they send traffic to the default gateway.
Hosts on the LAN can use this link-local address as their default route gateway. If no
VRRP link-local address is configured, a default value is derived as follows:
FE80::5E00:02{VRID}
Note
The host portion of this address corresponds to the virtual MAC address
associated with the VRRP router.
When a backup VRRP router assumes the role of master, it must use the same
link-local address in router advertisements as the previous master. Therefore, when
configuring a backup VRRP router, you must either configure a virtual link local address
that matches the link local address on the IP address owner or allow the virtual link
local address to default to the derived value in the same manner as on the master.
Router advertisement prefixes are configured based on the VRRP IP addresses. The
mask used for the prefix will be the smallest mask used by all VRRP IP addresses on
a VLAN interface. The ExtremeXOS software supports multiple IPv6 addresses on an
interface that can overlap. For example, you can add both 200d::1/48 and 200d::2/96
to a VLAN. IPv6 VRRP routers advertise the smallest mask that applies to all VRRP IP
addresses. In this example, if VRRP IP address 200d::100 is added, the mask is 48.
The VRRP MAC address for an IPv6 VRRP router instance is an IEEE 802 MAC address in
the following hexadecimal format (in Internet-standard bit-order):
00-00-5E-00-02-<vrid>
The first three octets are derived from the IANA OUI. The next two octets (00-02)
indicate the address block assigned to the VRRP router for IPv6 protocol, and VRID
is the VRRP instance identifier. This mapping provides for up to 255 IPv6 VRRP routers
on a network.
When a VRRP router assumes the role of master, it issues an unsolicited neighbor
discovery (ND) neighbor advertisement message for each of the VRRP router IP
addresses.
On the VRRP backup node, only one socket is opened and bound to the physical IP
address alone. Once a node transitions to the VRRP master, the ExtremeXOS software
re-triggers a listen on the interface to ntpd for it to open a socket and bind to the VRRP
VIP.
A flag configuration is added for the IPv4 cases, and these are propagated to VLAN
Manager clients. NTP uses this to trigger a listen on the interface. For the master
node to process non-ping packets destined to the VIP, the software already has a
configuration command in VRRP (accept-mode on/off).
Note
If you want to configure VRRP VIP as the server address on NTP clients, enable
accept mode.
Limitations
The following limitations exist for NTP VRRP Virtual IP support:
• ExtremeSwitching switches configured as NTP clients need to have the bootrom
version: 2.0.1.7
• We do not recommend FHRP Virtual IPs for NTP configuration because they can
cause undesirable behavior when the NTP servers are not in sync, or if the delay is
asymmetric. Ensure that both servers derive their clock information from the same
source.
This problem can be more acute if a node connected to VRRP peers using and VRRP
is in active-active mode. In this case, it is possible that every other packet could
be sent to a different switch due to LAG (Link Aggregation Group) hashing at the
remote node.
This release supports configuration for the following modes of operation: VRRPv2,
VRRPv3, and VRRPv2 and VRRPv3 interoperation.
The VRRP fabric routing feature introduced in ExtremeXOS 21.1 allows the backup
router to take part in L3 routing for the packets it receives with DA=VMAC. A backup
router enabled with this feature is called a Fabric Routing Enabled Backup (FREB)
router. This feature allows load sharing of traffic between VRRP routers and saves the
bandwidth of links connecting the master and backup. This bandwidth saved can be
used to provide better connectivity between the segments of the network wherein
each segment is connected to only one VRRP router directly. This solution is applicable
for all topologies such as , EAPS (Extreme Automatic Protection Switching), or STP
(Spanning Tree Protocol).
The VRRP FREB router receives and processes VRRP advertisements from the
master, but does not generate advertisements. Broadcast ARP requests and multicast
neighbor solicitations to resolve the virtual IP are responded to by the master router.
The Fabric Routing Enabled Backup router behaves as mentioned in RFC 5798 with the
following exceptions:
• The backup router performs forwarding functionality, similar to the master.
• The backup router responds to unicast ARP/Neighbor Solicitation requests it
receives.
This configuration can be present on all VRRP routers, regardless of VRRP state of the
router. Fabric routing will be enabled only when the VRRP router is in backup state.
Only the master serves as protocol servers like NTP, telnet, SSH, etc and accepts
connections destined to the virtual IP. By doing so, hosts always connect to the same
virtual router (VR) by using the virtual IP, at any given point of time. This ensures that
the host is getting a consistent response from the protocol server. This arrangement
allows the host to reach the NTP server using the same IP i.e. virtual IP, even if VRRP
mastership moves to a different router. A network monitoring tool is another example,
which can use virtual IP to collect data about VRRP domain, by connecting to current
VRRP Master. It is not recommended to change the configurations of the switch, when
a management session is connected using virtual IP. When VRRP FREB router sits in
between the host and VRRP Master router, FREB router does hardware forwarding of
these packets from host towards VRRP Master, at Layer 3.
Hosts can generate unicast ARP to validate a ARP cache entry. Similarly, unicast
Neighbor Solicitation is generated to perform Neighbor Unreachability Detection for a
neighbor. These requests are periodic. The unicast ARP/NS requests will be responded
by FREB, if it receives the request. A downside of allowing VRRP Master to respond
these requests is that it may take considerable CPU cycles when large numbers of
hosts are present in VRRP domain.
When enabling VRRP VR after configuring fabric routing mode, assume that fabric
routing mode has already been configured for VRRP VR and VR is administratively
enabled now. Initially the VRRP state machine will start from INIT state. It will
move to backup state and wait for Master_Down_Interval duration to receive an
advertisement from current master. Based on VRRP Master election (as described
earlier in the sections), VRRP router will either become master or will assume
forwarding responsibility while in backup state (i.e., FREB). Waiting in backup state
avoids a burst of messages exchanged in software during the transition. This is useful in
scaled setups.
Note
For the duration it waits in backup state, traffic will be forwarded to the VRRP
master where it gets routed. This behavior is same as existing behavior without
fabric routing.
When configuring fabric route mode when the VR is already in backup state, if the VR
has received advertisements within the last advertisement interval, the router will take
forwarding responsibility immediately.
The hold off timer will be applied before FREB starts IP forwarding. In case of reboot or
process restart, the VR will wait for 60 seconds before taking forwarding responsibility.
This will allow the routing protocols in the restarting system to converge.
Configured fabric routing can be seen in the show command output of the show vrrp
detail or show vrrp vlan vlan CLI command:
# sh vrrp detail
VLAN: v1 VRID: 1 VRRP: Disabled State: Backup
Virtual Router: VR-Default
Priority: 100(backup) Advertisement Interval: 1 sec
Version: v2 Preempt: Yes Preempt Delay: 0 sec
Virtual IP Addresses:
Accept mode: Off
Host-Mobility: Off
Host-Mobility Exclude-Ports:
Tracking mode: ALL
Tracked Pings: -
Tracked IP Routes: -
Tracked VLANs: -
Fabric Routing: On
The primary node executes the switch’s management functions, and the backup
acts in a standby role. Hitless failover transfers switch management control from the
primary to the backup and maintains the state of VRRP. While VRRP supports hitless
failover, you do not explicitly configure hitless failover support; rather, if you have two
nodes installed, hitless failover is available.
To support hitless failover, the primary node replicates VRRP protocol data units (PDUs)
to the backup, which allows the nodes to run VRRP in parallel. Although both nodes
receive VRRP PDUs, only the primary transmits VRRP PDUs to neighboring switches
and participates in VRRP.
For more detailed information about verifying the status of the nodes and system
redundancy, see Understanding System Redundancy on page 83. For more information
about hitless failover, see Understanding Hitless Failover Support on page 88.
Note
For complete information about software licensing, including how to obtain
and upgrade your license and what licenses are appropriate for these features,
in the Switch Engine Licensing Guide document.
The host routes in the route table will be propagated via existing routing protocols such
as OSPF.
As ARP/ND entries are removed from the kernel, the host-mobility portion of the VRRP
application is notified. Normally if the interface is still up when entries are removed,
the host-mobility application sends an ARP/ND packet to the IP address of the host
associated with the ARP/ND entry to resolve the address again. The FDB attempts to
resolve ARP addresses when near the age period. Due to the FDB keeping ARPs up to
date, host-mobility does not need to try to resolve aging entries when aging. When the
entry is removed by a clear CLI command, FDB does not send an ARP. When the entry
is removed, Host-Mobility requests an ARP. After 5 seconds, if no route has been added,
the host routes are removed from the route table.
Ports are designated as host or router ports; by default the ports are host ports. ARP/ND
entries learned on router ports do not generate host route entries. Only ARP/ND entries
learned on host ports generate route entries. Host route entries are removed if the
ARP/ND entry is learned or changes to a router port.
When a host moves from one switch to another on the same layer 2 network, a new
host route is created from the new location. In this case there may be two host routes
throughout the network advertising for the same host. While not optimal, this situation
does not cause any network delivery problems. Eventually the original host route is
removed when the ARP/ND entry is removed from the switch or moves from a host
port to a router port.
Since OSPF will redistribute host-mobility routes, it is possible that a route could
be learned for a host that the local device can reach at a lesser cost. Host-mobility
monitors routes added by OSPF. If OSPF adds a route that is part of a subnet that
the device is a member of, then host-mobility triggers ARP/ND to be performed. By
performing ARP/ND, the lower cost route to host is added as an ARP/ND entry in the
proper table and is used while routing traffic. If no response is received, then the OSPF
route will continue to be used instead.
This is a typical topology for which this scaling is well suited. If the VLAN going down
event triggers VRRP state change in one VLAN, a VRRP state change occurs on other
VLANs also. This example has four hosts on different VLANs belonging to group A;
traffic from hosts may get hashed to either of the MLAG links and reach either the
VRRP master (RTR1) or the Fabric Routing-enabled backup router (RTR2). Both routers
perform routing for host traffic. Group B has a different set of 10 VRRP VRs that were
configured on a different set of VLANs and with a different set of VRIDs from that
of Group A. Routers are configured for regular master-backup states (unlike Group A
which has master-FREB states).
Note
If you want a regular master-backup operation on a particular group for some
reason, do not reuse the VRIDs configured in other groups or other individual
VRs.
Enabling Fabric Routing is only required if a VRID is reused in more than one group.
Only these groups of VRs need to be enabled for Fabric Routing in all participating
VRRP routers.
Grouping Reusing VRIDs in Different Groups (Fabric Routing Mode)
Table 145 shows an example configuration that reuses VRIDs in multiple groups. All
three groups are configured on each VRRP router. Notice that Groups A and C have
the same set of VLANs, but VRID is interchanged between the VLANs. Since all three
groups are sharing the same VRIDs, Fabric Routing needs to be enabled on VRs in all
three groups.
All VRs in Group I use VRID 1 in Table 146. All VRs in Group J use VRID 2. In this
configuration, all VR groups do not need to be enabled for Fabric Routing. Group I can
operate in master-FREB mode, and Group J can choose to operate in master-backup
mode. In this case, only VRs in Group I need to be enabled for Fabric Routing.
Grouping with Multiple VRIDs per Group with VRIDs Not Repeated
It is possible to have an individual VR when there are some groups already in the same
router. This may be useful when this router has two VRRP peer routers and it has to
operate in group mode with one peer, but has to operate in individual VR mode with
another peer at the same time. In that case, an individual VR must be configured with
a unique VRID that is not used in any of the groups or other individual VRs. This unique
VRID is required only if either a group or individual VR is operating in master-backup
mode. However, if all groups and individual VRs are operating in master-FREB mode,
then VRIDs used within a group can be assigned to individual VRs.
When VRs are grouped together you need to choose a VR from the group and
configure it as the primary VR using the CLI. Other VRs belonging to the group need
to be added as secondary VRs. When a group is operational, the following approach
maintains the same state across all VRs:
• The primary VR sends VRRP advertisements at the configured interval.
• All the VRs in the group have the same VRRP state in a given router.
• Only the primary VR registers for tracking objects (iproute tracking, ping tracking,
VLAN tracking) and processes tracked events. If any tracking configuration is present
on secondary VRs, they are not effective when the VR is part of a group.
• Secondary VRs inherit the priority of the primary VR. This is useful because when you
want to change the priority of a group, you only need to change priority of the single
primary VR.
• The pre-empt configuration of the primary VR is applied for the group. If these
configurations (pre-empt allowed, pre-empt delay) are present in secondary VRs,
they are not effective.
• The advertisement interval configuration on a secondary VR is also not effective.
The other properties of individual VRs present in a group are not altered from their
current behavior.
It may be preferable to run in individual VR mode until VR count exceeds its maximum
limit (511 instances), as it gives more flexibility with respect to topology choices and ‘per-
VLAN routing control for the same VRID’. It will allow the VRs configured in different
VLANs configured with same VRID to be in different routing states (for example, one VR
can be master and that VLAN can do routing, but the other VR can be backup and that
VLAN can do Layer 2 forwarding towards the master).
When you try to configure and enable a VR beyond 511 VRs, you are notified to
configure VRRP groups and add VRs to appropriate groups. VRs configured on VLANs
following the same topology can be grouped together. There can be multiple groups
for the same topology for administrative reasons, or for running with different VRRP
configurations (like advertisement interval, etc.), or with different Fabric Routing mode.
Alternatively, groups can be configured beforehand and kept for future use. Similarly,
VRs can be added to the group beforehand. The groups can be kept in a disabled
state (disable vrrp group group_name {configuration | members}) until you are
notified to configure VRRP groups (VR count exceeds 511). When groups are in the
disabled state, the VRs present in the group configuration run in individual VR mode.
disable vrrp
After adding VRs to group, and enabling group configuration, execute the commands:
enable vrrp
Keeping VRs in disabled state during transition, and then enabling afterwards, ensures
that the bulk transfer of VR information across the system occurs more easily.
You can switch to individual VR mode from high-scale mode by disabling all VRRP
groups. Since the limit of VRs in individual mode is 511, ensure that greater than 511 VRs
are not enabled before disabling the group configuration.
When a group is already operational (the group is enabled, and also its member VRs
are enabled), additional VR can be added to the group. It is recommended to disable
the VR before adding it to a group that is currently running and forwarding traffic.
Enable the VR after it is added to group in all participating routers. This avoids traffic
loss during the transition to group mode.
You can have few individual VRs outside of groups. If you are transitioning to high-scale
mode when an individual VR is present, disable all VRs (disable vrrp) before the
transition and enable all VRs (enable vrrp) after the transition.
For a list of all VRRP group commands, see Configuring VRRP Groups on page 1448.
Note
If a large number of VRs are added under the same group, the advertisement
interval of the primary VR of the group should be increased to multiples of
seconds. This reduces the processing load on the VRRP backup router and
avoids protocol flaps. For a large IPv6 group, chose an advertisement interval of
a greater value than the value of a similarly sized IPv4 group.
Configuring VRRP
The following procedure can be used to configure a simple VRRP topology:
a. Create a VLAN to serve as the VRRP router VLAN. This name must match the
name used for the appropriate VRRP IP address owner.
b. Add an IP address to the VRRP VLAN. This address must be different from the IP
address assigned to the intended VRRP master, but it must use the same subnet.
c. Enable IP forwarding on VRRP VLAN.
d. Create the VRRP router instance that will serve as the backup instance (see
Creating and Deleting VRRP Router Instances on page 1446).
e. Configure the priority for the backup VRRP router to a value in the range of 1–254
(see Configuring VRRP Router Priority on page 1447).
f. Add the same VRRP router IP address that was added to the intended VRRP
master instance (see Adding and Deleting VRRP Router IP Addresses on page
1446).
g. Enable VRRP on the switch (see Enabling and Disabling VRRP and VRRP Router
Instances on page 1449).
3. Configure network workstations to use the VRRP router IP address as the default
gateway address.
Note
A VRRP routing instance can support IPv4 or IPv6 addresses, but it cannot
support both.
• To delete a VRRP router IP address from a switch, use the following command:
configure vrrp vlan vlan_name vrid vridval delete ipaddress
Note
We recommend that you configure the same router advertisement interval
in all VRRP routers. VRRPv3 supports a 40 second maximum advertisement
interval.
Note
If the advertisement interval is different on the master and backup switches,
the master switch's advertisement interval is used by the backup as well.
Note
If VRRPv3 and VRRPv2 routers participate in VRRP instance, the VRRPv3
routers should be configured with a higher priority to ensure that they win
master elections over VRRPv2 routers.
Enabling the accept mode allows the switch to process non-ping packets that have a
destination IP set to the virtual IP address.
In general, the port that is not connected to host is added in exclude-ports to avoid
unnecessary host route.
For an example VRRP group configuration, see VRRP Groups Configuration Example on
page 1452.
Managing VRRP
The topology for a load sharing example is shown in Figure 192 on page 1426. Switch A
is the IP address owner for VRRP router instance 1 and the backup for VRRP instance 2.
Switch B is the IP address owner for VRRP router instance 2 and the backup for VRRP
instance 1.
VRRP Tracking
VRRP Tracking on page 1451 is an example of VRRP tracking.
• Configure VLAN tracking, as shown in Adding and Deleting Tracked VLANs on page
1448 .
configure vrrp vlan vrrp1 vrid 2 add track-vlan vlan1
Using the tracking mechanism, if VLAN1 fails, the VRRP master realizes that there is
no path to the upstream router through the master switch and implements a VRRP
failover to the backup.
• Configure route table tracking, as shown in Adding and Deleting Tracked Routes on
page 1448.
configure vrrp vlan vrrp1 vrid 2 add track-iproute 10.10.10.0/24
The route specified in this command must exist in the IP routing table. When the
route is no longer available, the switch implements a VRRP failover to the backup.
• Configure ping tracking, as shown in Adding and Deleting Tracked Pings on page
1448.
configure vrrp vlan vrrp1 vrid 2 add track-ping 10.10.10.121 frequency
2 miss 2
The specified IP address is tracked. If the fail rate is exceeded, the switch implements
a VRRP failover to the backup. A VRRP node with a priority of 255 may not recover
from a ping-tracking failure if there is a Layer 2 switch between it and another
VRRP node. In cases where a Layer 2 switch is used to connect VRRP nodes, we
recommend that those nodes have priorities of less than 255.
Or alternatively, VLAN tag range and VRID range can be specified. In this case, vlan1
has vlan-id 101, vlan2 has vlan-id 102, etc.:
configure vrrp group “groupA” add secondary-vr vlan 102-105 vrid 2-5
4. Configure fabric routing on all the member VRs in the given group:
configure vrrp group "groupA" fabric-routing on
5. Apply group configuration on member VRs. Before enabling the group, member VRs
are operating in individual VR mode:
enable vrrp group groupA
6. Enable all VRs using the global command, if there is only one group:
enable vrrp
After configuring VRRP groups, the following appears for the below show commands:
MPLS Overview
MPLS (Multiprotocol Label Switching) provides advanced IP services for switches that
contain advanced ASICs that support MPLS.
To configure MPLS, L2 VPNs, and/or L3 VPNs on your switch, you need the MPLS
enabled feature pack license .
Note
MPLS and MPLS subfeatures are supported on the platforms listed for specific
features in the Switch Engine Licensing Guide document.
Note
ExtremeXOS MPLS does not support Graceful Restart. Any restart of the MPLS
process or failover to a backup node requires re-signaling of all MPLS-related
connections and entities.
The use of MPLS labels enables routers to avoid the processing overhead of delving
deeply into each packet and performing complex route lookup operations based upon
destination IP addresses.
MPLS protocols are designed primarily for routed IP networks and work together to
establish multiple, unidirectional Label Switched Path (LSP) connections through an
MPLS network. Once established, an LSP can be used to carry IP traffic or to tunnel
other types of traffic, such as bridged MAC frames. The tunnel aspects of LSPs, which
are important in supporting virtual private networks (VPNs), result from the fact that
forwarding is based solely on labels and not on any other information carried within the
packet.
The MPLS protocols operate on Label Switch Routers (LSRs). The router where an
LSP originates is called the ingress LSR, while the router where an LSP terminates
is called the egress LSR. Ingress and egress LSRs are also referred to as Label Edge
Routers (LERs). For any particular LSP, a router is either an ingress LER, an intermediate
LSR, or an egress LER. However, a router may function as an LER for one LSP, while
simultaneously functioning as an intermediate LSR for another LSP.
An MPLS label essentially consists of a short fixed-length value carried within each
packet header that identifies a Forwarding Equivalence Class (FEC). The FEC tells the
router how to handle the packet. An FEC is defined to be a group of packets that are
forwarded in the same manner. Examples of FECs include an IP prefix, a host address,
or a VLAN (Virtual LAN) ID.
Note
The label concept in MPLS is analogous to other connection identifiers, such as
an ATM VPI/VCI or a Frame Relay DLCI.
By mapping to a specific FEC, the MPLS label efficiently provides the router with all
of the local link information needed for immediate forwarding to the next hop. MPLS
creates an LSP along which each LSR can make forwarding decisions based solely upon
the content of the labels. At each hop, the LSR simply strips off the Incoming label and
applies a new Outgoing label that tells the next LSR how to forward the packet. This
allows packets to be tunneled through an IP network.
• RSVP-TE
• LDP
• static
LDP Support
The Label Distribution Protocol (LDP) is a protocol defined by the IETF for the purpose
of establishing MPLS LSPs. Using LDP, peer LSRs exchange label binding information to
create LSPs. The LDP features supported in this release include:
• Downstream unsolicited label advertisement.
• Liberal label retention.
• Ordered control mode.
Note
To use BGP as an IGP routing protocol, issue the enable mpls ldp bgp-
routes command.
Using the basic discovery mechanism, each LSR periodically multicasts a hello message
to a well-known UDP port to which all LSRs listen. These hello messages are
transmitted to the all routers on this subnet multicast group. When a neighbor is
discovered, a hello-adjacency is formed and the LSR with the numerically greater IP
address is denoted as the active LSR.
After the hello-adjacency is formed, the active LSR initiates establishment of a TCP
connection to the peer LSR. At this point, an LDP session is initiated over the TCP
connection. The LDP session consists of an exchange of LDP messages that are used to
set up, maintain, and release the session.
Advertising Labels
You can control whether label mappings are advertised for:
• Direct routes
• RIP routes
• Static routes
In these cases, the switch is acting as the egress LER for these LSPs.
Propagating Labels
LDP propagates label mappings for FECs that exactly match a routing table entry.
In the case of label mappings received from an LDP peer, LDP checks for an exactly
matching entry with a next hop IP address that is associated with the LDP peer from
which a label mapping was received.
Using DoD mode, label bindings are only distributed in response to explicit requests. A
typical LSP establishment flow begins when the ingress LER originates a label request
message to request a label binding for a particular FEC (for a particular IP address
prefix or IP host address). The label request message follows the normal routed path to
the FEC. The egress LER responds with a label mapping message that includes a label
binding for the FEC. The label mapping message then follows the routed path back
to the ingress LSR, and a label binding is provided by each LSR along the path. LSP
establishment is complete when the ingress LER receives the label mapping message.
Conversely, using DU mode, an LSR may distribute label bindings to LSRs that have not
specifically requested them. These bindings are distributed using the label mapping
message, as in downstream-on-demand mode. From an LDP message perspective, the
primary difference using DU mode is the lack of a preceding label request message.
Both label advertisement modes can be concurrently deployed in the same network.
However, for a given adjacency, the two LSRs must agree on the discipline. Negotiation
procedures specify that DU mode be used when a conflict exists when using Ethernet
links. Label request messages can still be used when MPLS is operating in unsolicited
mode.
Using conservative label retention mode, an LSR retains only the label-to-FEC
mappings that it currently needs (mappings received from the current next hop for
the FEC).
Using liberal retention mode, LSRs keep all the mappings that have been advertised
to them. The trade-off is memory resources saved by conservative mode versus the
potential of quicker response to routing changes made possible by liberal retention (for
example, when the label binding for a new next hop is already resident in memory).
Using independent LSP control, each LSR makes independent decisions to bind labels
to FECs. By contrast, using ordered LSP control, the initial label for an LSP is always
assigned by the egress LSR for the associated FEC (either in response to a label request
message or by virtue of sending an unsolicited label mapping message).
More specifically, using ordered LSP control, an LSR only binds a label to a particular
FEC if it is the egress LSR for the FEC, or if it has already received a label binding for
the FEC from its next hop for the FEC. True to its name, the mode provides a more
controlled environment that yields benefits such as preventing loops and ensuring use
of consistent FECs throughout the network.
MPLS Routing
This section describes how MPLS and IP routing work together to forward information
on your network.
MPLS provides a great deal of flexibility for routing packets. Received IP unicast
frames can be routed normally or tunneled through LSPs. If a matching FEC exists
for a received packet, the packet may be transmitted using an LSP that is associated
with the FEC. The packet is encapsulated using an MPLS shim header before being
transmitted.
Received MPLS packets can be label switched or routed normally toward the
destination. Packets that are in the middle of an LSP are label switched. The incoming
label is swapped for a new outgoing label and the packet is transmitted to the next LSR.
For packets that have arrived at the end of an LSP (the egress end of the LSP), the label
is popped. If this label is the bottom of the stack, the shim header is stripped and the
packets are routed to the destination as normal IP packets.
Note
Multicast routing and ECMP (Equal Cost Multi Paths) on MPLS are not
supported.
The EXP field can be used to identify different traffic classes to support the DiffServ
QoS (Quality of Service) model.
• 1-bit bottom-of-stack flag
The TTL field is used for loop mitigation, similar to the TTL field carried in IP headers.
The format of an MPLS label stack containing two MPLS shim header entries is shown
in Figure 200.
Note
For more detailed information on MPLS encapsulations, see RFC 3032, MPLS
Label Stack Encoding.
Penultimate hop popping (PHP) is an LSR label stack processing optimization feature.
When enabled, the LSR can pop (or discard) the remaining label stack and forward the
packet to the last router along the LSP as a normal Ethernet packet.
By popping the label stack one hop prior to the LSP egress router, the egress router
is spared having to do two lookups. After the label stack has been popped by the
penultimate hop LSR, the LSP egress router must only perform an address lookup to
forward the packet to the destination.
PHP label advertisements using implicit NULL labels can be optionally enabled.
Support for receiving implicit NULL label advertisements by neighbor LSRs is always
enabled. For example, if an LSR advertises implicit NULL labels for IP prefixes, the
neighbor LSRs must support PHP.
Label Binding
Label binding is the process of, and the rules used to, associate labels with FECs.
LSRs construct label mappings and forwarding tables that comprise two types of
labels: labels that are locally assigned and labels that are remotely assigned.
Locally assigned labels are labels that are chosen and assigned locally by the LSR. For
example, when the LSR assigns a label for an advertised direct interface. This binding
information is communicated to neighboring LSRs. Neighbor LSRs view this binding
information as remotely assigned.
Remotely assigned labels are labels that are assigned based on binding information
received from another LSR.
The Extreme implementation partitions its label space as described in the following
illustration.
VRFs used for L3VPNs are allocated from a label range that immediately follows the
static range. The remaining label space is called the dynamic label space, and is used
by LDP and RSVP-TE. The show mpls label usage command displays the label ranges
on a given system. The outgoing (MPLS ingress) label space spans the full 20-bit label
range, and is used for all outgoing labels for both LSPs and PWs, static and signaled.
No hard limits are imposed on the maximum size of the label stack, other than the
constraint of not exceeding the maximum frame size supported by the physical links
comprising the LSP.
Jumbo frames should be enabled on all ports, and the jumbo frame size should be set
to accommodate the addition of a maximally-sized label stack. For example, a jumbo
frame size of at least 1530 bytes is needed to support a two-level label stack on a tagged
Ethernet port, and a jumbo frame size of at least 1548 bytes is needed to support a
VPLS encapsulated MPLS frame.
Using MPLS, a route table prefix can also be associated with an LSP that can be used as
the next hop. There are two types of LSP next hops that can be used to route a packet
to its destination:
• Matching LSP next hop
Matching LSP next hop entries are added to the route table when an LSP becomes
operational. They are deleted when an LSP is no longer operational.
The OSPF Shortest Path First (SPF) algorithm checks the availability of LSPs to remote
OSPF routers during a calculation. The intra-area SPF algorithm begins with the
calculating router as the root of a graph. The graph is expanded by examining the
networks connected to the root and then examining the routers connected to those
networks. Continuing in this manner, the graph is built as a series of parent and child
nodes. A check is made for a matching LSP next hop as each entry is added. A check
is also made for an LSP next hop that can be inherited from the parent node. These
inherited LSP next hops are referred to as calculated LSP next hops. Thus, for each route
table entry, the modified SPF algorithm determines whether a matching LSP next hop
is available and whether a calculated LSP next hop is available for use whenever a
matching LSP next hop is not present.
For example, in a network where all the LERs/LSRs implement this feature (such as an
all-Extreme MPLS network), labels only need to be advertised for the router IDs of the
LERs/LSRs. Yet, LSPs can still be used to route traffic destined for any OSPF route.
More specifically, LSPs can be used for all routes advertised by OSPF, with the possible
exception of LDP LSPs to routes summarized by OSPF area border routers (ABRs). The
problem with using routes summarized by OSPF ABRs is that route summarization can
prevent label mappings from being propagated for the links internal to the area being
summarized, since an LSR only propagates LDP labels for FECs that exactly match a
routing table entry.
For example, an IBGP session is established across the OSPF/MPLS backbone, and the
communicating routers run both OSPF and IBGP. When an IBGP route is installed, BGP
determines whether a matching LSP next hop exists to the destination. If not, it checks
for an LSP to the BGP next hop. If an LSP exists to the BGP next hop, that LSP is used as
an LSP next hop for the IBGP route.
The recalculation requirements for BGP are similar to those for OSPF; when an LSP to a
BGP next hop router changes state, the BGP routing table entries must be checked to
ensure their LSP next hop information is still valid.
If an LSP next hop is available, routed IP traffic may be forwarded over an LSP using the
LSP next hop. With respect to a given prefix, LSP next hops can be either matching or
calculated, and can be based on LDP, RSVP-TE, or static LSPs. Matching LSP next hops
are preferred over calculated LSP next hops. RSVP-TE LSPs are preferred over LDP LSPs,
and LDP LSPs are preferred over static LSPs. Also, RSVP-TE LSPs and static LSPs can be
individually configured to enable or disable their use as LSP next hops.
Therefore, if a more preferred LSP is established, routed IP traffic may begin to use a
new LSP next hop. Likewise, if a preferred LSP is torn down, routed traffic may begin to
use the next best LSP next hop. These changes can take place when there is an OSPF
routing topology change, an LDP label advertisement event, or a RSVP-TE signaling
action.
If your MPLS network includes equipment that does not support this type of IP
forwarding, you can use configuration commands to explicitly control the use of
calculated LSP next hops.
The following commands enable and disable all use of LSP next hops. No IP traffic is
routed over an LSP when mpls-next-hop IP routing capability is disabled.
• enable iproute mpls-next-hop
• disable iproute mpls-next-hop
These commands enable and disable the calculation of LSP next hops by OSPF:
• enable ospf mpls-next-hop {vr vrf_name}
• disable ospf mpls-next-hop {vr vrf_name}
These commands enable and disable the calculation of LSP next hops by BGP:
• enable bgp mpls-next-hop
• disable bgp mpls-next-hop
These services enable Layer 2 VPN service offerings in a simple manner that is easy
to deploy and operate. Layer-2 VPN services, based on a combination of Ethernet
and MPLS/IP technologies, are designed to enable service providers to offer Business
Ethernet private line services. These services use a simple Layer 2 interface at the
customer edge and benefit from the resilience and scalability of an MPLS/IP core.
VPLS provides a virtual LAN between multiple locations. VPWS provides a virtual
dedicated line between only two locations.
Note
The implementation does not include support for pseudowire participation in
running the Spanning Tree Protocol.
There are multiple types of service deliminators. The ExtremeXOS software currently
supports three types. The first is a VLAN service. This service transparently
interconnects two or more VLAN segments together over an MPLS network. The
configured VLAN IDs for the customer switch interfaces are not required to match, as
long as the egress LSR overwrites the VLAN tag with the locally defined VLAN ID.
The second service is a VMAN service, which interconnects two or more VMAN
segments. The service operates like the VLAN service but uses the VMAN tag instead
of the VLAN tag to identify the service. As with the VLAN service, the interconnected
VMAN segments do not need to have matching VMAN IDs.
The third service is a port service, which transparently interconnects two or more ports
together over an MPLS network. Traffic is transported unmodified between ports.
The VLAN and VMAN services are configured by adding the service VLAN or a VMAN to
a VPLS or VPWS. The port service is not explicitly configured but is emulated using a
combination of Layer 2 VPN capabilities. First a VMAN must be configured and the port
added untagged to the VMAN. The service VMAN is then added to the VPLS or VPWS.
At this point all traffic received on the port is VMAN encapsulated for transmission
across the Layer 2 VPN. To transmit the traffic across the Layer 2 VPN as it was received
on the port, the VPLS or VPWS is configured to exclude the service tag. By excluding
the service tag, the VMAN tag is stripped prior to being transmitted from the switch.
This configuration provides port mode service and allows one or multiple ports to be
associated with a Layer 2 VPN.
MPLS Pseudowires
MPLS pseudowire (PW) tunnels are logical connections between two LERs over an LSP.
LDP Pseudowires are signaled based on the configured PW identifier (pwid). The
signaled PW label is used to create a two-label-stack shim header on PW encapsulated
packets. The outer label is the transport LSP label obtained from LDP or RSVP-TE and
the inner label is the signaled PW label. LERs also signal the PW type when attempting
to establish a PW. The ExtremeXOS software supports only the PWid type FEC. The
Generalized ID FEC type is currently not supported.
Note
MPLS PWs can also be configured with statically assigned labels.
When an 802.1Q Ethernet frame is encapsulated for transport over a VC tunnel, the
entire frame is included, except for the preamble and FCS.
There is a configuration option that determines whether the 4-byte VLAN tag field is
included in the transmitted packet. By default, the tag field is not included. If the tag
field is not included, the egress LER may add one. If it is included, the tag service
identifier may be overwritten by the egress LER. The ability to add a tag field or to
overwrite the service identifier at the egress node allows two (possibly independently
administered) VLAN segments with different VLAN IDs to be treated as a single VLAN.
The following command can be used to include the VLAN tag field:
This command can also be used to control the overwriting of the 802.1Q ethertype
when the VLAN tag field is included. In this case, the ingress node prior to
transmitting the encapsulated packet overwrites the ethertype. This allows devices
with a configurable VLAN tag ethertype to interoperate.
Establishing a PW requires both an LSP and a targetted LDP session between the two
endpoints.
The local PW endpoint is the MPLS LSR ID. The remote PW endpoint is identified using
an IP address configuration parameter.
When using LDP to establish the LSPs, each endpoint needs to advertise a label
mapping for an LSP to its local endpoint address. To ensure that its LDP peers use the
label mapping, a corresponding IGP route should also be advertised for the address.
The IGP route can come from any of the supported routing protocols, such as OSPF, or
IS-IS. For example, when using OSPF, an OSPF route with prefix length 32 should be
advertised for the configured IP address.
We recommend that you configure a loopback VLAN using the IP address of the local
endpoint (the MPLS LSR ID). Use prefix length 32 for the IP address configured for the
loopback VLAN. When you configure a loopback VLAN, the IP address used to identify
the endpoint remains active, even when one or more of the LSR VLAN interfaces go
down. Should a remote peer normally use one of the down interfaces, the normal IGP
and LDP recovery procedures allow the PW to use one of the remaining up interfaces
to minimize the network outage.
You should also configure the loopback VLAN for MPLS using the configure mpls add
vlan vlan_name command. The addition of the loopback VLAN to MPLS causes LDP to
include the IP address in LDP address messages. Some implementations (including the
ExtremeXOS software) require this information to determine the correct LDP session
over which to advertise label mappings for VC FECs (see Using LDP to Signal PW Label
Mappings on page 1469).
Note
Neither MPLS nor LDP have to be enabled on the loopback VLAN.
There are two options to initiate the LDP advertisement of an LSP to the local MPLS
LSR ID when a loopback VLAN has been configured for that IP address:
• Configure MPLS LDP to advertise a direct interface whose IP address matches the
LSR ID and has prefix length 32. Use the configure mpls ldp advertise direct
lsr-id command to do this.
• Configure MPLS LDP to advertise direct interfaces using the configure mpls ldp
advertise direct all command.
Note
This causes LDP to advertise label mappings for all VLANs that have an IP
address configured and have IP forwarding enabled.
While both of the above methods initiate the advertisement of a label mapping for an
LSP to the local endpoint, the first method is the preferred method.
Just as LDP advertises label mappings for LSPs, it can also advertise label mappings for
Layer 2 VPNs.
In this case, the signaled FEC information describes a particular Layer 2 VPN. This FEC
is often called a Virtual Circuit FEC, or VC FEC. The VC FEC information includes a PWid
that is a 32-bit numeric field. Unlike LSP label advertisements that are usually sent to all
possible upstream peers, the VC FEC information is sent only to the configured remote
endpoint.
When the first Layer 2 VPN is configured to a remote peer, MPLS automatically creates
a targeted hello adjacency entity for establishing an LDP session. Once the session is
established, LDP passes the VC FEC label mapping associated with the Layer 2 VPN.
Once VC FECs for the same PW ID have been exchanged in each direction, MPLS is
ready to associate the PW with an LSP to the remote endpoint as described in Message
Types on page 1488.
To determine the correct LDP session over which to send a VC FEC, MPLS checks the
IP addresses learned from its LDP peers via LDP address messages. The ExtremeXOS
software MPLS expects to find the IP address of a remote PW peer among the
addresses received over the LDP session to that peer.
To ensure that the local endpoint IP address is included in LDP address messages,
it is highly recommended to configure MPLS on a loopback VLAN as described in
Establishing LDP LSPs to PW Endpoints on page 1468.
Use the command configure mpls add vlan vlan_name to configure MPLS on the
loopback VLAN. It is not required that LDP or MPLS be enabled on the VLAN for the
associated IP address to be advertised in LDP address messages.
LSP Selection
A PW can be configured to use any available LSP to the peer endpoint IP address, or
the PW can be configured to use one or more specific named LSPs.
In either case, the LSP has to egress (terminate at the remote endpoint. In the case of
an LDP LSP, the LSP's FEC has to be a /32 prefix length to the endpoint IP address. In
the case of an RSVP-TE LSP or static LSP, the destination address has to be that of the
remote endpoint. When configured to use any available LSP, MPLS gives preference to
RSVP-TE LSPs, then to LDP LSPs, and lastly, to static LSPs. As a single LSP is chosen to
carry the PW traffic, if multiple LSPs of the chosen type exist, the decision of which LSP
of this type to use is non-deterministic.
The configure l2vpn [vpls vpls_name | vpws vpws_name] peer ipaddress [add
| delete] mpls lsp lsp_name command forces the PW to use the specified named
LSP. If multiple named LSPs are configured, only one is used to carry the PW. The
decision of which of the multiple configured LSPs to use is non-deterministic.
RSVP-TE can be configured to allow specific types of traffic on an LSP. By default, LSPs
are used to transport all traffic. Optionally, named LSPs can be configured to allow
only IP traffic or only VPN traffic. This can be used to control the LSP selection for
specific types of packets. For example, if both LDP and RSVP-TE LSPs exist and the
RSVP-TE LSPs are configured to transport only VPN traffic, all IP traffic is forwarded
using LDP LSPs. Since RSVP-TE LSPs are preferred over LDP LSPs, VPN traffic flows over
the RSVP-TE LSPs. The following command configures this behavior for the specified
RSVP-TE LSP:
For each peer added, a PW is signaled that is used to carry traffic from the local LSR
to the remote peer LSR. Flood traffic from the local service (broadcast, multicast, and
unknown unicast packets) is replicated and forwarded across all PWs in the VPLS. Each
peer receives one copy of the packet for delivery to its locally attached service. As
MAC learning occurs on PWs, unicast packets to a known destination MAC address are
forwarded to the peer over the PW from which the MAC address was learned.
MAC Learning
Learned MAC addresses are associated with the PWs from which the packets are
received.
The learned MAC address is always inserted into the FDB (forwarding database) as
though it was learned on the local service VLAN (and not the VLAN identified in the
dot1q tag in the received PW packet). MAC addresses learned from PWs use a different
FDB aging timer than those MAC addresses learned on Ethernet interfaces. Different
FDB aging timers are maintained for Ethernet and pseudowire Layer 2 VPN FDB
entries. By default, both aging timers are set to 300 seconds. However, the aging timers
for each type of FDB entry can be configured to different values. Note that PW FDB
entries are not refreshed; they age out based on the configured aging timer setting,
unless you have disabled the aging timer. Ethernet FDB entries automatically refresh
with use, and do not age out unless they are not used for the length of time configured
for the aging timer. Any MAC address associated with a PW is automatically cleared
from the FDB when the PW label is withdrawn.
Note
MAC learning is disabled for VPWS.
The idea is that STP protocols can be used to provide redundant VPN data paths that
can be unblocked if the STP detects a spanning tree topology failure. In general, it is
believed that introducing STP to VPLS increases network complexity with very little real
benefit.
MPLS already provides a significant level of redundancy for the LSP over which a
PW is carried. For example, if a PW is using an LDP established LSP, provided there
are parallel routed paths to the PW endpoint, the PW automatically shifts from a
withdrawn or failed LSP to the next best available LSP. For transport LSPs established
using RSVP-TE, secondary LSPs can be configured that can be hot-swapped in the
event of a primary LSP failure. Fast-reroute detour LSPs can also be used to protect
RSVP-TE LSPs. Thus, even though the underlying transport LSP might have changed,
the Layer 2 VPN data plane remains unaffected.
For these reasons, VPLS and STP are not normally enabled on the same VLAN. The
exception is for local customer network redundancy such as shown in VPLS STP
Redundancy Overview on page 1481.
When STP is not enabled on a VPLS VLAN, the BPDU functional address is not
inserted into the FDB for this VLAN and all received BPDU packets are flooded across
the Layer 2 VPN. In this scenario, a single large spanning tree topology spanning
all interconnected Layer 2 VPN service sites is constructed. Note that this is not a
recommended configuration for a Layer 2 VPN service. Depending on the packet
latency within the backbone network, STP timers might need to be tuned to build
and maintain reliable topologies.
H-VPLS Overview
VPLS requires a full mesh of pseudowires between all Provider Edge (PE) peers.
As MPLS is pushed to the edge of the network, this requirement presents a number of
problems. One problem is the increased number of pseudowires required to service a
large set of VPLS peers. In a full-mesh VPLS, pseudowires must be established between
all VPLS peers across the core. Full-mesh networks do not scale well due to the number
pseudowires that are required, which is p(p-1), where p is the number of peer devices
in the network. Hierarchical VPLS (H-VPLS) networks can dramatically increase network
scalability by eliminating the p2 scaling problem.
The pseudowire hierarchy must be known because the forwarding rules for spoke
and core pseudowires are different. Flood traffic received on a core pseudowire from
another full-mesh core PE must not be transmitted over other core pseudowires to
other PEs. However, flood traffic received on a core pseudowire is transmitted on all
spoke pseudowires in the VPLS. Unlike core pseudowires in a full-mesh VPLS, flood
traffic received on a spoke pseudowire must be transmitted on all other pseudowires in
the VPLS, including pseudowires to other core PEs.
In a full-mesh configuration, until a node learns over which pseudowire a MAC address
is reachable, unknown unicast frames must be flooded on all pseudowires within
the VPLS. Packet replication is always true for broadcast and multicast traffic. As the
number of VPLS peers increase, the packet replication burden on a node increases.
MTU devices attached to a full-mesh core most likely cannot maintain wire-speed
forwarding as the number of VPLS peers increase. Hierarchical VPLS eliminates this
MTU burden by requiring only a single pseudowire connection between a spoke and its
core PE peer. Packet replication is pushed to the PEs, where it is more suitably handled.
Since each VPLS instance can require multiple tunnel LSPs, the bandwidth
requirements for each tunnel LSP must be separately accepted and individually
enforced by every PE a tunnel LSP traverses. Because the provider requirement is to
manage the provisioned bandwidth for the VPLS and not each tunnel LSP, the MTU
has the added responsibility of rate limiting the aggregate egress traffic across multiple
tunnel LSPs on the uplink. Due to packet replication issues described previously, this is
not practical.
The addition of a redundant spoke pseudowire is optional. By default, when the MPLS
Feature Pack license has been applied to the switch, the spoke pseudowire to the
primary peer is used to forward packets. In the event of a network failure over the
primary pseudowire, the spoke pseudowire to the secondary peer is used to provide
redundant VPLS connectivity. An example network is shown in Figure 206.
Since the MTU is responsible for choosing which pseudowire to the VPLS is active,
the MTU is uniquely responsible for preventing network loops. The MTU uses only
one spoke pseudowire per VPLS and only the label stack associated with the active
pseudowire is programmed into the hardware. If the active pseudowire fails, then
the label stack for the active pseudowire is removed from hardware. The secondary
pseudowire label stack is then installed in the hardware in order to use the redundant
VPLS link from the MTU into the VPLS core. Customer connectivity through the MTU
should experience minimal disruption.
IETF RFC 6870 defines the "Preferential Forwarding" status bit to designate which
pseudowire is active and can be used to forward user packets. The MTU sets this bit
to indicate that a pseudowire is standby (not active) and should not be used to forward
user packets.
Packets can be received out-of-order by the VPLS destination device during certain
pseudowire failover events. In the redundant VPLS spoke configuration, when the
primary pseudowire fails, traffic is immediately switched to the secondary pseudowire.
For a very short period of time, there may be packets that are in route via both
pseudowires. No attempt to prevent mis-ordered packets from being received is made.
The command to configure the VPLS peer from an MTU to a PE and from a PE to
an MTU is fundamentally the same. However, the optional primary and secondary
pseudowire keywords are only applicable on the MTU since the MTU is responsible for
preventing loops within the VPLS. A switch cannot be configured with a primary and a
secondary pseudowire to the same peer within a VPLS. This is an invalid configuration
since it provides no redundant protection for a failed PE node.
After certain network recovery events, MAC addresses should be unlearned. For
example, if the MTU's last usable transport LSP for the primary spoke pseudowire goes
down, the MTU decides to activate and switch to the secondary pseudowire and send
the primary and secondary core PE nodes an LDP notification message containing the
appropriate PW status codes. The core PE node of the primary pseudowire flushes its
FDB of any MAC addresses learned from the MTU, but does not send any MAC address-
withdraw messages. It is the responsibility of the MTU to initiate the sending of MAC
address-withdraw messages. If MAC address withdrawal is enabled, the MTU sends a
MAC address-withdraw message to the core PE node of the secondary pseudowire.
This node, in turn, sends its own MAC address-withdraw message to all the other core
PE nodes in the VPLS causing each of these other core PE nodes to flush their FDB of
any matching learned MAC addresses specified in the address-withdraw message. By
withdrawing MAC addresses immediately, the other core PE nodes are forced to flood
traffic destined to the MAC addresses specified in the address-withdraw message. If an
alternate VPLS path exists, the new path can be quickly learned without having to wait
for the FDB MAC entry to age out.
When a node needs to withdraw a MAC address, it can signal the MAC withdrawal for
a VPLS using an address-withdraw message in one of two ways: the MAC address is
explicitly specified in a MAC TLV; or an empty MAC TLV is sent indicating that all MAC
addresses not learned from that node should be unlearned. Because this information
may be propagated to multiple VPLS nodes, a control plane processing trade-off exists.
To reduce the processing load, ExtremeXOS sends an empty MAC TLV. Additionally,
ExtremeXOS supports the processing of multiple withdraw messages per VPLS, since
other vendors may choose not to send an empty MAC TLV.
SNMP Support
No SNMP (Simple Network Management Protocol) support is provided for H-VPLS.
This feature provides fault tolerant connectivity from the customer VLAN to the
backbone VPLS. This could be implemented by running Layer 2 protocols across
the VPLS to block switch ports, but this can lead to sub optimal spanning tree
topologies across the VPLS backbone and relatively long outages while the STP
converges. Instead, the ExtremeXOS software has been enhanced to provide the ability
to configure redundant VPLS switches using a dual-homed design that provides fast
failover for protected access points.
The first figure below shows fault-tolerant access in a full mesh core VPLS network
while the second figure shows fault-tolerant access in a hierarchical VPLS network.
ESRP is employed to ensure that only one VPLS switch is active at any instant in time
for a protected customer access point. Only the ESRP master switch forwards packets
between the access network and the backbone VPLS network. This active primary
switch retains this status based on a set of predefined tracking criteria. If the configured
criteria can be better satisfied by the inactive secondary VPLS switch, the primary
VPLS switch relinquishes control and the secondary switch assumes the active role. The
secondary switch can also autonomously assume the active role if it detects that the
primary switch has failed. This use of ESRP helps to prevent duplicate packet delivery
and to prevent broadcast loops when the customer network is a loop topology.
For a VPLS domain type, ESRP considers election factors in the following order:
standby, active ports, tracking information, stickiness, ESRP priority, and MAC. For more
information on the ESRP election priority, see ESRP on page 1393.
For fault tolerant VPLS to function correctly, the ExtremeXOS software imposes
restrictions on the configuration options on the VPLS redundancy type ESRP domain.
Table 150 lists the configuration restrictions on the control VLAN.
Table 150: ESRP Configuration Restrictions for VPLS Type Domains (continued)
No. Parameter Restrictions Remarks
14 priority No restrictions
15 timer No restrictions When the service VLAN is part of an EAPS
ring, it is strongly recommended that the
hello timer is always greater than the EAPS
master health checkup timer because an
ESRP switch before EAPS could cause traffic
loops.
The MTU nodes in the following figure signal the PE nodes about active/inactive state
using the Status TLV defined in RFC 4447, Pseudowire Setup and Maintenance Using
the Label Distribution Protocol (LDP). This operation is described in Redundant Spoke
Pseudowire Connections on page 1475.
SNMP Support
No SNMP support is provided for protected VPLS access.
This topology uses the restricted role feature on access switch ports to control path
redundancy. In Figure 210, the VPLS nodes S1 and S2 are the lowest priority STP bridges
(STP prefers lower priority for root bridge election and shortest path calculation). The S1
ports connected to the R links are configured for STP restricted role mode. To prevent
network loops, the restricted role mode in S1 blocks an STP enabled port when STP
BPDUs with better information are received from the access network. As shown, the
customer traffic uses S2 to access the VPLS network. Should one of the two restricted
ports on S1 become unblocked due to a topology change, customer traffic could use
both S1 and S2 to access the VPLS network.
The selection of primary and secondary PWs for this configuration is arbitrary. Therefore
data paths traversing the spoke nodes S1 or S2 could use either or both core nodes C1
and C2.
In the network shown in Figure 210, traffic destined to R1 from the VPLS core traverses
C2, S2, and R1.
The VPLS core nodes C3 and C4 are unaware of this change and continue to forward
any traffic destined for R1 to C2. C2 continues to forward traffic towards S2. This results
in data loss because S2 is not able to reach R1 over the customer network.
This data loss continues until one of the following events occurs:
• The FDB entry for R1 ages out in the VPLS core nodes
• R1 sends traffic into the VPLS core allowing its MAC address to be relearned by the
VPLS core nodes
Depending on the type of data traffic from R1, the latter scenario might not occur
quickly.
When S2 flushes its FDB, it also sends a flush message to its core peer C2. Upon receipt
of this flush message, C2 flushes its FDB entries learned over the PW to S2. C2 also
sends flush messages to its core peers C1, C3, and C4. These core nodes then flush their
FDB entries learned over their PWs to C2. Any traffic from the VPLS core destined for R1
is flooded until such time as traffic from R1 is forwarded into the VPLS core.
Note
In the example shown in Figure 210 on page 1482, the core nodes are unaware
that STP redundancy is configured on S1 and S2. There is no STP redundancy
configuration on C1 and C2.
The following figure shows an H-VPLS configuration where the STP network directly
connects to redundant spoke nodes. A similar configuration is possible where the STP
network directly connects to redundant VPLS core nodes. In this case, the core nodes
participating in STP are configured for STP redundancy and originate flush messages to
their core peers whenever STP causes a flush on an STP port.
During normal operation, the Dist2 node is the EAPS ring master, and it blocks the
port leading to the link at point 2. The protected VLANs on the EAPS ring do not
include the EAPS common link at point 3. The protected VLANS on the EAPS ring use
VPLS PWs between the redundant VPLS nodes to connect the two ring segments. This
difference in normal EAPS operation is established during configuration by configuring
an EAPS-protected VLAN on the core node with only one port on the ring.
To see the commands used to create the configuration shown above, see VPLS with
Redundant EAPS Configuration Example on page 1530.
• The redundant VPLS nodes use PWs to support the EAPS-protected VLANs, not the
EAPS common link.
• Works only with EAPS customer attachment ring.
• The EAPS master should not be on a VPLS node.
• EAPS state used by VPLS to control state of PWs (Active/Ready).
• EAPS monitors common link state and ring state.
• VPLS on controller node uses EAPS state to set Active/Ready PWs.
• EAPS blocks customer-facing ports as normal.
The EAPS master detects the topology change (either through a failure notification
from a node on the ring or through a hello timeout), and it unblocks the port on the
protected VLAN at point 2. The Dist 2 node now connects to the VPLS through Core 2
instead of through Core 1.
When the topology changes either on an access ring or the shared port link, the path
used to reach customer devices can change. For example, in the following figure, the
path that Dist 2 takes to reach other parts of the VPLS network changes following the
failure on the access ring at point 1. Prior to the failure, Dist 2 used Core 1 to reach the
VPLS network. Following the failure, Dist 2 accesses the VPLS network using Core 2.
When the EAPS master detects a topology change, it sends a flush FDB message to
its transit nodes. The transit nodes re-learn all the MAC addresses on the ring. However,
this flush FDB message is not propagated over the VPLS network. As a result, Core 3 in
the following figure still expects to find Dist 2 through the PW between Core 3 and Core
1. Any traffic destined for Dist 2 that is sent to Core 1 will not reach its destination.
To correct this problem, EAPS informs VPLS about any received EAPS flush FDB
messages on both the controller and the partner nodes, and VPLS performs a local
flush of any MAC addresses learned from the originating nodes. In this example, the
EAPS processes in both Core 1 and Core 2 notify VPLS because neither node knows
where the access ring is broken. The VPLS services in Core 1 and Core 2 send flush
messages to the other VPLS nodes.
The common link is configured to be an EAPS common link, and this configuration
requires that one node be designated as the EAPS controller node and the other node
be designated as the EAPS partner node. As described below, the selection of which
node is assigned which role must consider the overall customer topology.
If the shared port link fails, the EAPS master node unblocks its port, and VPLS on the
EAPS controller node takes the additional action to remove the PWs (point 4 in the
following figure) associated with the VPLS from hardware.
In this recovery mode, all traffic to and from the access ring and the rest of the
VPLS instance passes through Core 2. When the EAPS controller node detects that
the common link is repaired, it enters the preforwarding state as normal. When the
controller node exits the preforwarding state, EAPS informs VPLS so that VPLS can
reestablish the PWs.
The recovery actions for this double-failure need to be somewhat different. In this case,
even though the core link has failed, both core nodes do not receive a copy of the
ring traffic. For example, the only path to the VPLS network for Dist 1 is through the
controller core node. In this case, the controller node does not take down its PWs.
It is possible that the customer access network could have parallel EAPS rings that
attach to Core 1 and Core 2 as shown in Figure 212. In this example, the network
connections are broken at each point X and as long as any of the parallel EAPS rings are
complete, there is a path to both core VPLS nodes. Thus, the controller node must take
down its PWs as long as any of the parallel EAPS rings is complete.
Figure 212: VPLS with Parallel Redundant EAPS Rings Configuration Example
Table 151 shows how the controller node responds to multiple failures in a network with
parallel EAPS rings.
RSVP-TE Overview
RSVP is a protocol that defines procedures for signaling QoS requirements and
reserving the necessary resources for a router to provide a requested service to all
nodes along a data path. This release supports inter-area RSVP tunnels.
Note
Partial path computation for FRR over multiple OSPF areas is not supported.
RSVP is not a routing protocol. It works in conjunction with unicast and multicast
routing protocols. An RSVP process consults a local routing database to obtain routing
information. Routing protocols determine where packets get forwarded; RSVP is
concerned with the QoS of those packets that are forwarded in accordance with the
routing protocol.
Reservation requests for a flow follow the same path through the network as the data
comprising the flow. RSVP reservations are unidirectional in nature, and the source
initiates the reservation procedure by transmitting a path message containing a traffic
specification (Tspec) object. The Tspec describes the source traffic characteristics in
terms of peak data rate, average data rate, burst size, and minimum/maximum packet
sizes.
The ExtremeXOS software implementation of RSVP-TE complies with RFC 3209 and
includes support for:
• Configuration on a per VLAN interface.
• Operation as either edge or core MPLS router.
• Support for specifying explicitly routed paths.
• Support for both loose and strict route objects.
RSVP Elements
Message Types
RSVP messages are passed between RSVP-capable routers to establish, remove, and
confirm resource reservations along specified paths.
RSVP messages are sent as raw IP datagrams with protocol number 46. Each LSR along
the path must process RSVP control messages so that it can maintain RSVP session
state information. Therefore, most RSVP messages are transmitted with the IP Router
Alert Option. Including the IP Router Alert provides a convenient mechanism allowing
the IP routing hardware to intercept IP packets destined to a different IP address and
deliver them to the RSVP control plane for processing. This is needed to set up and
refresh RSVP-TE LSPs that follow an explicitly specified network path and thus may not
use the normal routed next hop IP address. RSVP has two basic message types, path
message and reserve message, as shown in the following figure.
Path Message: The RSVP path message is used to store state information about each
node in the path. Each RSVP sender transmits path messages downstream along
routed paths to set up and maintain RSVP sessions. Path messages follow the exact
same path as the data flow, creating path states in each LSR along the path. The IP
source address of the path message must be an address of the sender it describes
and the IP destination address must be the endpoint address for the session. The path
message is transmitted with the IP Router Alert option since each router along the
path must process the path message. Each LSR is responsible for refreshing its path
status by periodically transmitting a path message to the downstream LSR.
In addition to the previous hop address, the path message contains the sender Tspec
and Adspec. The reservation message carries the flowspec.
Reserve Message: Each receiver host transmits an RSVP reservation request to its
upstream neighbor. Reserve messages carry reservation requests hop-by-hop along
the reverse path. The IP destination address of a reserve message is the unicast address
of the previous-hop LSR, obtained from the session's path state. The IP source address
is the address of the node that originated the message. The reserve message creates
and maintains a reserve state in each node on the path. Each LSR is responsible
for refreshing its reserve status by periodically transmitting a reserve message to the
upstream LSR.
Reserve messages are eventually delivered to the sender, so that the sender can
configure appropriate traffic control parameters for the first hop node.
Path Tear Message: Path tear messages delete path state information reserved along
the path. The message is initiated by the path sender or by any LSR in which a path
state time-out occurs or an LSP is preempted (due to bandwidth reservations), and is
sent downstream to the session's path endpoint. Path tear messages are transmitted
with the IP Router Alert option and are routed exactly the same as path messages. The
IP destination address must be the path endpoint and the source IP address must be
the sender address obtained from the session's path state for the path that is being
torn down.
When a path state is deleted as the result of the path tear message, the related
reservation state must also be adjusted to maintain consistency in the node. The
adjustment depends on the reservation style.
Reserve Tear Message: Reserve tear messages delete reservation state information.
The message is initiated by the path endpoint or any node along the path in
which a reservation state has timed out or an LSP is preempted (due to bandwidth
reservations), and is sent upstream to the session's path sender. Reserve tear messages
are routed exactly the same as reserve messages. The IP destination address of a
reserve message is the unicast address of the previous-hop node, obtained from the
9 The routed path may be the best routed path or an explicitly specified routed path using EROs.
10 IP Router Alert option is described in RFC 2113.
session's reservation state. The IP source address is the address of the node that
originated the message.
If no reservation state matches the reserve tear message, the message is discarded.
The reserve tear message can delete any subset of the filter specification in FF-style or
SE-style reservation state. Reservation styles are described in the following table.
Path Error Message: Path error messages are used to report processing errors for
path messages. These messages are sent upstream to the sender that issued the
path message. The message is routed hop-by-hop using the path state information
maintained in each node. Path error messages are informational and do not modify the
path state within any node.
Reserve Error Message: Reserve error messages are used to report processing errors
for reserve messages. In addition, reserve error messages are used to report the
spontaneous disruption of a reservation. Reserve error messages travel downstream
to the endpoint of the session. The message is forwarded hop-by-hop using the
reservation state information maintained in each node. Reserve error messages are
informational and do not modify the reservation state within any node.
Reservation Styles
One reservation style concerns how reservations requested by different senders within
the same session are handled. This type of reservation style is handled in one of two
ways: either create a distinct reservation for each sender in the session, or use a single
reservation that is shared among all packets of the selected senders.
Another reservation style concerns how senders are selected. Again, there are two
choices: an explicit list of all selected senders, or a wildcard that implies all senders in
the session.
Table 152 describes the relationship between reservation attributes and styles.
Fixed Filter: The fixed filter (FF) reservation style uses a distinct reservation and an
explicit sender selection. This means that each resource reservation is for a specific
sender. The session resources are not shared with other senders' packets. Because each
reservation is identified with a single sender, a unique label is assigned by the endpoint
to each sender (i.e., point-to-point LSP reservation).
Shared Explicit: The shared explicit (SE) reservation style uses a shared reservation and
an explicit sender selection. This means that a single resource reservation is created
that is shared by multiple senders. The endpoint may specify which senders are to
be included for the reservation. Because different senders are explicitly listed in the
RESV message, different labels may be assigned to each sender. Thus, multiple shared-
resource LSPs to the same endpoint can be created (i.e., multipoint-to-point LSP
reservation). The Extreme MPLS implementation requests SE reservation style when
signaling RSVP-TE LSPs.
Wildcard: The wildcard (WF) reservation style uses the shared reservation and wildcard
sender options. A wildcard reservation creates a single reservation that is shared by
data flows from all upstream senders.
By coupling RSVP and MPLS, LSPs can be signaled along explicit paths with specific
resource reservations. Additional RSVP objects have been defined to provide TE
extensions. These objects include the Label Request, Label, Explicit Route, Record
Route, and Session Attribute. Extreme's RSVP-TE implementation supports all of these
TE objects.
RSVP Tunneling
An RSVP tunnel sends traffic from an ingress node through an LSP. The traffic that
flows through the LSP is opaque (or tunneled) to the intermediate nodes along the
path. Traffic flowing through the tunnel to an intermediate node along the path is
identified by the previous hop and is forwarded, based on the label value(s), to the
downstream node.
RSVP-TE can:
• Establish tunnels with or without QoS requirements.
• Dynamically reroute an established tunnel.
• Observe the actual route traversed by a tunnel.
• Identify and diagnose tunnels.
• Use administrative policy control to preempt an established tunnel.
• Perform downstream-on-demand label allocation, distribution, and binding.
Some LSRs require their neighboring LSRs to include their Router ID in the Extended
Tunnel ID field when sending RSVP-TE messages. The Extended Tunnel ID is a
globally unique identifier present in the RSVP common header Session object (see
RFC 3209). To provide maximum compatibility with other vendors’ implementations,
the ExtremeXOS MPLS implementation accepts RSVP-TE messages regardless of the
Extended Tunnel ID value and always inserts the local Router ID into the Extended
Tunnel ID field prior to transmission of an RSVP-TE message.
RSVP Objects
This section describes the RSVP objects that are used to establish RSVP-TE LSPs:
• Label
• Label request
• Explicit
• Record route
• Session attribute
Label: The label object is carried in the reserve message and is used to communicate
a next hop label for the requested tunnel endpoint IP address upstream towards the
sender.
Label Request: To create an RSVP-TE LSP, the sender on the MPLS path creates an
RSVP path message and inserts the label request object into the path message.
A label request object specifies that a label binding for the tunneled path is requested.
It also provides information about the network layer protocol that is carried by the
tunnel. The network layer protocol sent through a tunnel is not assumed to be IP
and cannot be deduced from the Layer 2 protocol header, which simply identifies the
higher layer protocol as MPLS. Therefore, the Layer 3 Protocol ID (PID) value must be set
in the Label Request Object, so that the egress node can properly handle the tunneled
data.
Note
The ExtremeXOS RSVP-TE implementation supports only Label Request
objects with no Label Range. Label Ranges are used to signal ATM VPI/VCI
or Frame Relay DLCI information for the LSP. These types of Label Requests are
not supported. In the ExtremeXOS RSVP-TE implementation, the L3 PID value,
which identifies the Layer 3 protocol of the encapsulated traffic, is always set to
0x0800 (IP).
Explicit Route: The explicit route object specifies the route of the traffic as a sequence of
nodes. Nodes may be loosely or strictly specified.
The explicit route object is used by the MPLS sender if the sender knows about a route
that:
• Has a high likelihood of meeting the QoS requirements of the tunnel.
• Uses the network resources efficiently.
• Satisfies policy criteria.
If any of the above criteria are met, the sender can decide to use the explicit route for
some or all of its sessions. To do this, the sender node adds an explicit route object to
the path message.
After the session has been established, the sender node can dynamically reroute the
session (if, for example, if discovers a better route) by changing the explicit route object.
Record Route: The record route object is used by the sender to receive information
about the actual route traversed by the RSVP-TE LSP. It is also used by the sender to
request notification if there are changes to the routing path. Intermediate or transit
nodes can optionally use the RRO to provide loop detection.
To use the object, the sender adds the record route object to the path message.
Session Attribute: The session attribute object can also be added to the path message.
It is used for identifying and diagnosing the session. The session attribute includes the
following information:
• Setup and hold priorities
• Resource affinities
• Local protection
In order to allow more flexibility when traffic engineering redundant paths for RSVP-TE
LSPs, this feature adds the “exclude” option to the “configure mpls rsvp-te path <path>
add ero” command. An “include” option is also available, but is optional. If neither
option is used, “include” will be used for backward compatibility.
A hop that is excluded is avoided when CSPF does path calculations. By adding an
“exclude” hop to a path, LSPs can be set up to avoid certain links. An example of
this is to configure a secondary RSVP-TE LSP to avoid the hops that a primary LSP
has been configured to traverse. This can allow the secondary LSP more freedom to
route through other parts of the network. Often, without the “exclude” option, the
secondary LSP must be configured more tightly than desired to ensure that its path
never overlaps with the primary LSP’s path.
The LSP endpoints attempt to detect non-RSVP capable LSRs by comparing the time-
to-live (TTL) value maintained in the RSVP common header with that of the IP TTL.
If these values are different, it is assumed that a non-RSVP capable LSR exists along
the path. By including the Label Request object in the path message, RSVP capable
routers that do not support the TE extensions can be detected. RSVP routers that do
not support TE extensions reply with the Unknown object class error.
RSVP-TE LSPs are referred to as named LSPs. These LSPs have configurable names that
are used to identify the LSP within the CLI. The command create mpls rsvp-te lsp
lsp_name destination ipaddress allocates the internal resources for the LSP. The
newly created LSP is not signaled until the LSP has been configured. The LSP can be
configured to take a specific path through the network or the administrator can let
the switch choose the best path by specifying the path any. Up to three paths may be
configured for an LSP to provide redundancy. The command configure mpls rsvp-
te lsp lsp_name add path configures an LSP. Optionally, RSVP-TE profiles may be
applied to an LSP to change its properties. An RSVP-TE profile is a specific CLI container
used to hold configuration parameters associated with timers, bandwidth reservation,
limits, and other miscellaneous properties.
Once the RSVP-TE LSP is configured, the LSP is immediately signaled. If signaled
successfully, the LSP becomes active. The commands disable mpls rsvp-te lsp
lsp_name and enable mpls rsvp-te lsp lsp_name are used to tear down and re-
signal the LSP. Disabling the LSP causes the LER to send a path tear message to
the destination, forcing the LSP down and all resources along the path to be freed.
Enabling the LSP instructs the LER to send a path message to the destination re-
establishing the LSP. The configuration of the LSP is not modified by the enable or
disable LSP commands.
RSVP-TE Implementation
The path can be strictly or loosely specified. If strictly specified, each node or group of
nodes along the path must be configured. Thus, no deviation from the specified path is
allowed.
Loosely specified paths allow for local flexibility in fulfilling the requested path to the
destination. This feature allows for significant leeway by the LSR in choosing the next
hop when incomplete information about the details of the path is generated by the
LER. Each node along the path may use other metrics to pick the next hop along the
path, such as bandwidth available, class of service, or link cost. The command configure
mpls rsvp-te path path_name add ero is used to add an Explicit Route Object to a path
container.
An explicit routed path is encoded using the explicit route object (ERO) and is
transmitted in the path message. The ERO consists of a list of subobjects, each of which
describes an abstract node. By definition, an abstract node can be an IP prefix or an
autonomous system (AS) number. The ExtremeXOS RSVP-TE implementation supports
only IPv4 abstract nodes. The ExtremeXOS RSVP-TE implementation supports both
strict and loose IPv4 abstract nodes. Received path messages with EROs that contain
any other subobject type result in the transmittal of an Unknown object class error
message. All LSRs along the specified path must support the inclusion of the ERO in
the path message for an explicitly routed path to be successfully set up.
An LSR receiving a path message containing an ERO must determine the next hop for
this path.
1. The receiving LSR evaluates the first subobject. If the subobject type is not
supported or there is no subobject, a Bad ERO error is returned. The abstract node
is evaluated to ensure that this LSR was the valid next hop for the path message.
If the subobject is a strict abstract node, the abstract node definition must match
the local interface address. If it does, then this LSR is considered to be a member of
the abstract node. Additionally, if the /32 address matches a local interface address,
the path message must have been received on the direct interface corresponding
to the /32 address. If the abstract node is an IP prefix, the subnet configured for the
interface from which the path message was received must match the abstract node
definition. In the event that this LSR is not part of the strict abstract node definition,
a Bad initial subobject error is returned. If the subobject is a loose abstract node, the
LSR determines if the abstract node definition corresponds to this LSR. If it doesn't,
the path message is transmitted along the best-routed or constrained optimized
path to the endpoint and the ERO is not modified. If it is, then processing of the ERO
continues.
2. If there is no second subobject, the ERO is removed from the path message. If this
LSR is not the end of the path, the next hop is determined by the constrained
optimized path (through Constrained Shortest Path First—CSPF) to the path
message endpoint.
3. If there is a second subobject, a check is made to determine if this LSR is a member
of the abstract node. If it is, the first subobject is deleted and the second subobject
becomes the first subobject. This process is repeated until either there is only one
subobject or this LSR is not a member of the abstract node as defined by the second
subobject. Processing of the ERO is then repeated with step 2. By repeating steps
2 and 3, any redundant subobjects that are part of this LSRs abstract node can
be removed from the ERO. If this operation were not performed, the next hop LSR
might reject the path message.
4. The LSR uses its CSPF to determine the next hop to the second subobject. If the first
object is a /32 address, the first subobject is removed, since it would not be part of
the next hop's abstract node. The path message is then sent along the explicit path
to the path message endpoint. No determination is made to verify that the abstract
node defined in the subobject is topologically adjacent to this LSR. The next hop
should verify this as part of its processing as defined in step 1.
If CSPF determines that a specific path needs to be taken through the network,
additional EROs are inserted into the path message.
Route Recording
Recording the path allows the ingress LER to know, on a hop-by-hop basis, which LSRs
the path traverses. Knowing the actual path of an LSP can be especially useful for
diagnosing various network issues.
Network path recording is configurable per LSP. This feature is configured by enabling
route recording for a specific RSVP-TE profile using the command configure mpls
rsvp-te lsp profile lsp_profile_name record enabled and associating the
profile to an LSP. The ExtremeXOS software sets the label recording desired flag in the
path message if route recording has been enabled for the LSP.
If route recording is enabled, the record route object (RRO) is inserted into the path
message using a single RRO subobject, representing the ingress LER. When a path
message that contains an RRO is received by an Extreme LSR, an RRO IPv4 subobject
representing the /32 address of the outgoing interface of the path message is pushed
onto the top of the first RRO. The updated RRO is returned in the reserve message.
The label recording flag is supported by the ExtremeXOS software and is set
automatically when route recording is enabled. The route-only option can be used
when enabling route recording in the profile to prevent the label recording flag from
being set. If an Extreme LSR receives a path message with the label recording flag set
in the RRO, the LSR encodes the LSP label into a label subobject and pushes it onto the
RRO.
If a path message is received that contains an RRO, the Extreme LSR uses the RRO to
perform loop detection. The RRO is scanned to verify that the path message has not
already traversed this LSR. If the RRO contains an IPv4 subobject that represents a local
LSR interface, the path message is dropped and a Routing Problem error message is
sent to the originating LER with an error value of Loop detected.
Session attributes are signaled for configured RSVP-TE LSPs using the session attribute
object without resource affinities (that is, LSP_TUNNEL Type).
The ExtremeXOS software uses the setup and hold priority values to preempt
established LSPs in order to satisfy bandwidth requests. Lower hold priority LSPs
are preempted in order to satisfy the bandwidth request in a path message with
a higher setup priority. LSP attributes are configured by setting the priorities for
a specific RSVP-TE profile using the command configure mpls rsvp-te lsp
profile lsp_profile_name setup-priority priority hold-priority priority
and associating the profile to the configured LSP.
Bandwidth Reservation
The ExtremeXOS software supports LSR bandwidth reservation requests per LSP.
Only the Int-Serv Controlled-Load service request is supported. Bandwidth is always
reserved on the physical ports that the LSP traverses. Depending on the platform, the
bandwidth reservation may also be policed. The network administrator can verify that
the requested bandwidth was actually reserved. In those cases when the bandwidth
reserved is less than the requested bandwidth, the LSP can be manually torn down,
re-signaled using a different path, or accepted. The LSR automatically attempts to
find a path that best satisfies the bandwidth request. Constrained path selections are
supported using OSPF-TE. Best effort LSPs are provisioned by specifying a reserved
bandwidth as best-effort. The reserved LSP bandwidth is configured by setting the bps
rate for a specific RSVP-TE profile, using the configure mpls rsvp-te lsp profile
lsp_profile_name bandwidth command and associating the profile to an LSP.
CIR bandwidth for the receive direction is not tracked by TE IGPs, such as OSPF-TE,
and configuring it is not required. Configuring CIR bandwidth for the receive direction
does not prevent an LSP from going operational due to lack of receive bandwidth;
however, it can be useful for tracking and informational purposes. An Info level log
(MPLS.RSVPTE.IfRxBwdthExcd) is generated if the setup of a TE LSP requires receive
bandwidth greater than that which is currently available for the receive direction on a
particular interface. This generally happens only when TE LSPs with different previous
hops ingress the switch on the same interface (for example, from a multi-access link)
and egress the switch on different interfaces.
Data traffic through these switches is not policed and there are no guarantees that the
packets using the LSP are not dropped.
Note
Per LSP rate limiting is not supported in this release.
The available bandwidth for each OSPF interface is continually updated within the
OSPF area. As RSVP-TE LSPs are established and torn down, the reserved bandwidth
associated with these LSPs is used to update the total bandwidth available through
each OSPF interface. RSVP-TE and CSPF can use the bandwidth information to
determine the appropriate path that each LSP should take through the network based
on the LSP's profile parameters. LSP parameters that can affect the CSPF TE path
calculation include the LSP setup priority and bandwidth configuration.
Available bandwidth is calculated for eight CoS (Class of Service) levels. Each CoS
uniquely maps to an LSP hold priority. Thus, when an LSP is set up through the switch,
the reserved bandwidth consumed is associated with a CoS based on the signaled
LSP hold priority. The available bandwidth is recalculated and is advertised to its OSPF
neighbors. Advertised bandwidth is calculated using graduated bandwidth reporting
methodology. Using this scheme, higher CoS levels advertise available bandwidth that
includes allocated bandwidth for lower CoS levels. The reasoning for doing this is that
higher priority LSPs can preempt lower priority LSP. Thus, even though the bandwidth
has been allocated to a lower priority LSP, it is still available for use by higher priority
LSPs.
In the following example, an interface is configured to reserve 250 Mbps for MPLS
traffic.
The following LSPs are established through this interface. Remember, hold priority
value of 0 is the highest priority and 7 is the lowest.
• LSP A, hold priority = 7, reserved = 50 Mbps
• LSP B, hold priority = 5, reserved = 100 Mbps
• LSP C, hold priority = 2, reserved = 25 Mbps
• LSP D, hold priority = 1, reserved = 25 Mbps
CSPF calculations only use the available bandwidth for the desired CoS, as specified by
the LSP hold priority. Thus in this example, if LSP E, with a configured setup priority of 6,
requires 150 Mbps, CSPF calculates a path to the destination that does not go through
the above interface, since only 100 Mbps worth of bandwidth is available.
Redundant LSPs
There are three methods for provisioning redundant RSVP-TE LSPs at the ingress LER,
also referred to as head-end LSP protection:
• Configured secondary (or backup) LSPs
• Fast reroute (detour) LSPs
• Multipath LSPs
Secondary RSVP-TE LSPs can be configured to provide backup LSPs in the event that
the primary LSP fails. You can create up to two secondary LSPs for each primary
LSP. The secondary LSPs are fully provisioned, pre-established RSVP-TE LSPs that are
maintained as inactive until needed. If the primary LSP is torn down, the associated
LSP next hop is removed from the route table, and a new LSP next hop representing
one of the secondary LSPs is installed as the preferred LSP. If there are multiple
secondary LSPs available, the secondary LSP is randomly selected. If the primary LSP is
re-established, the primary LSP next hop information is re-installed and the secondary
LSP returns to inactive state.
If both the primary and secondary paths for an LSP fail, and there are no other RSVP-TE
LSPs active to the destination, an LDP LSP can be used if available.
Operation with L2 VPNs is similar. If a primary path fails, and a secondary LSP is
available, VPLS uses the secondary LSP. When the primary LSP is re-established, VPLS
again uses the primary LSP.
Fast Reroute LSPs are based on the on IETF RFC 4090, Fast Reroute Extensions to
RSVP-TE for LSP Tunnels, which defines RSVP-TE extensions to establish backup LSP
tunnels for local repair of LSP tunnels. To respond to failures, these mechanisms enable
the re-direction of traffic onto backup LSP tunnels in tens of milliseconds, and this
meets the needs of real-time applications such as voice over IP (VoIP). This timing
requirement is satisfied by computing and signaling backup LSP tunnels in advance of
a failure and by re-directing traffic as close to the failure point as possible. In this way
the time for redirection includes no path computation and no signaling delays, which
include delays to propagate failure notification between label-switched routers (LSRs).
Speed of repair is the primary advantage of using fast-reroute backup methods.
There are two backup methods; the detour LSP method (which is also called the
one-to-one backup method) and the facility backup method (which is also called the
by-pass tunnel method). The software supports only the detour LSP method.
Based on the RFC-4090 there are two different methods to uniquely identify a backup
path:
1. Path-specific method
2. Sender template-specific method
The software supports only the path-specific method, which uses a new object, the
DETOUR object, to distinguish between PATH messages for a backup path and the
protected LSP.
Figure 214 illustrates the terminology used to describe fast-reroute configuration and
operation.
Routers B and C are transit LSRs for the primary LSP. With respect to a specific LSP, any
router that is not the ingress or egress LER is a transit LSR. Routers F and G are transit
LSRs for the detour LSP.
The origin of the detour LSP is called the Point of Local Repair (PLR), and the
termination of the detour LSP is called the Merge Point. A protected LSP is an explicitly-
routed LSP that is provided with protection. A detour LSP is also an explicitly-routed
LSP. If you configure a series of one or more hops (EROs), then based on the currently
set DYNAMIC_FULL option in the Constrained-based Shorted Path First (CSPF) routing
component, the CSPF will calculate and try to fill in the gaps to build a complete list of
EROs.
You can configure up to two secondary LSPs for each standard TE (non-FRR) LSP or
for each protected FRR LSP. If a standard TE LSP fails, then one of the secondary LSPs
becomes active. If that secondary LSP fails, the other secondary LSP becomes active. If
a protected FRR LSP fails, its detour LSP becomes active. If the detour LSP fails, then
one of the secondary LSPs becomes active, and if that secondary LSP fails, the other
secondary LSP becomes active. If all configured backup and secondary paths for an LSP
fail, a different active RSVP-TE LSP to the destination can be used. Otherwise, an LDP
LSP can be used if available.
The primary advantage of detour LSPs is the repair speed. The cost of detour LSPs
is resources. Each backup LSP reserves resources that cannot be used by other LSPs.
Another cost is that currently there is no automatic way to redirect traffic from a detour
LSP back to a primary LSP when the protected LSP recovers. Redirecting traffic from
the detour LSP to the primary LSP requires a series of CLI commands.
Fast reroute protection is configured primarily on the ingress LER, however, it must be
enabled on all transit LSRs and the egress LER also. After configuration is complete
and fast-reroute protection is enabled on the primary LSP, the primary and detour LSPs
are signalled. Provided that the resources are available, detour LSPs are set up at each
transit LSP along the primary LSP.
Multiple RSVP-TE LSPs can exist or be configured to the same destination. The paths
do not need to be equal cost; all that is required is that all the LSPs to the same
destination must have IP transport enabled. In this scenario, LSP next hop information
is communicated to the route table for up to eight different named RSVP-TE LSPs.
Locally originated traffic is distributed across each LSP based on standard IP address
hash algorithms. If one of the LSPs fails, the traffic is redistributed across the remaining
active named LSPs. Unlike the backup LSP mechanism, all of the redundant multipath
LSPs are unique named LSPs and in general have primary configured paths.
RSVP maintains path and reserve state by periodically sending refresh messages.
Refresh messages allow each LSR along the path to properly maintain reservation
state information and to recover from network failures. Because refresh messages are
periodically sent for each path reservation, scaling the number of RSVP-TE LSPs is an
issue. Additionally, network requirements for faster failure detection and improved LSP
recovery times further exacerbate the scaling issue.
Several techniques are described in RFC 2961 RSVP Refresh Overhead Reduction
to improve the scalability of RSVP. These techniques include the bundle message,
message ID extension, and summary refresh extension. Support for these extensions
is signaled between RSVP peers via the refresh-reduction-capable bit in the flags field
of the common RSVP header. Additionally, the hello extension, described in RFC 3209,
provides a fourth scaling mechanism for RSVP. The hello extension is designed so that
either peer can use the mechanism regardless of how the other peer is configured.
Therefore, support for the hello extension is not signaled between RSVP peers. The
ExtremeXOS software supports and is compliant with the RSVP-TE scaling features
described in RFC 2961.
Bundle Message: RSVP bundle messages aggregate multiple RSVP messages within
a single PDU. The messages are addressed directly to peer LSRs. Therefore, bundle
messages are not sent with the IP Router Alert option. Bundling multiple RSVP
messages into a single PDU reduces the per packet overhead associated with local
delivery and local origination. Each bundle message must contain at least one RSVP
message. Transmission of RSVP messages may be delayed up to the number of
seconds configured for bundle time. The size of the bundle message is limited to the
RSVP-TE interface MTU size. Bundle messaging is enabled using the enable mpls rsvp-
te bundle-message command.
Hello Extension: The RSVP hello message provides a quick and simple mechanism for
detecting the loss of a peer RSVP-TE LSR. The hello protocol is implemented using the
RSVP soft-state model. RSVP hello messages may be enabled independently of each
LSR peer. The hello protocol consists of two new objects: hello_request and hello_ACK.
If configured, an LSR sends a hello_request every hello interval. If a hello_ACK is not
received within a specified amount of time, the sending LSR assumes that its peer LSR
is no longer active. Once a peer LSR is deemed inactive, all reservation states associated
with LSPs established to or through the peer LSR must be freed and the LSPs torn
down. The hello interval is configurable using the command configure mpls rsvp-te
timers session hello-time.
You can improve LSP scaling by configuring the following RSVP-TE parameters:
• Refresh time
• Summary refresh time
• Bundle time
Refresh Time: The refresh time specifies the interval for sending refresh path
messages. RSVP refresh messages provide soft state link-level keep-alive information
for previously established paths and enable the switch to detect when an LSP is no
longer active. RSVP sessions are torn down if an RSVP refresh message is not received
from a neighbor within [(keep-multiplier + 0.5) * 1.5 * refresh-time] seconds. The valid
refresh time may be set to any value between 1 and 36000 seconds. The default setting
is 30 seconds. Configuring a longer refresh time reduces both switch and network
overhead.
Summary Refresh Time: The summary refresh time, specified in tenths of a second,
indicates the time interval for sending summary refresh RSVP messages. The summary
refresh time must be less than the configured refresh time. The default summary
refresh time is zero, indicating that no summary refresh RSVP messages are sent.
The summary refresh time value may be set to any value between zero to 100 (or 10
seconds). If configured, the bundled and summary refresh RSVP messages are only
sent to RSVP-TE peers supporting RSVP refresh reduction.
Bundle Time: The bundle time, specified in tenths of a second, indicates the maximum
amount of time a transmit buffer is held so that multiple RSVP messages can be
bundled into a single PDU. The default bundle time is zero, indicating that RSVP
message bundling is not enabled. The bundle time value can be set to any value
between zero and 30 (or 3 seconds).
MPLS supports the Differentiated Services (DiffServ) model of QoS. The DiffServ QoS
model is supported by mapping different traffic classes to different LSPs, or by using
the EXP bits in the MPLS shim header to identify traffic classes with particular
forwarding requirements.
Propagation of IP TTL
There are two modes of operation for routed IP packets: pipe TTL mode and uniform
TTL mode.
Currently, switches that run Extreme OS support only the pipe TTL mode. In pipe TTL
mode, the LSP is viewed as a point-to-point link between the ingress LSR and the
egress LSR; intermediate LSRs in the MPLS network are not viewed as router hops from
an IP TTL perspective. Thus, the IP TTL is decremented once by the ingress LSR, and
once by the egress LSR.
In this mode, the MPLS TTL is independent of the IP TTL. The MPLS TTL is set to 255 on
all packets originated by the switch and on all packets that enter a pseudowire.
Configuring MPLS
MPLS has the following configuration constraints:
• IP flow redirection—IP flow redirection commands and MPLS are mutually exclusive
functions. Both functions cannot be enabled simultaneously.
• IGMP snooping—OSPF and LDP session establishment require the switch to receive
and process IP multicast frames. Therefore, IGMP snooping must be enabled to
support MPLS.
• VPLS—VPLS requires that IGMP snooping be disabled on customer-facing VLANs.
Configuration Overview
1. If you want to use MPLS in a different VR (the default is VR-Default), move MPLS to
the appropriate VR as described in Moving MPLS From VR to VR on page 1504.
2. Create and configure the VLANs that will use MPLS.
3. Configure an MPLS LSR ID for each switch that serves as an LSR in the network. (See
Configuring the MPLS LSR ID on page 1505.)
4. Add MPLS support to the appropriate VLANs. (See Adding MPLS Support to VLANs
on page 1505.)
5. Enable MPLS on each switch that serves as an LSR. (See Enabling and Disabling
MPLS on an LSR on page 1505.)
6. Enable MPLS on the appropriate VLANs. (See Enabling and Disabling MPLS on a
VLAN on page 1506.)
7. Enable LDP on each switch that serves as an LSR. (See Enabling LDP on the Switch
on page 1506.)
8. Enable LDP on the appropriate VLANs. (See Enabling and Disabling LDP on a VLAN
on page 1506.)
9. Configure an IGP, such as OSPF or IS-IS, for the appropriate switches and VLANs.
Note
When you enter the command to delete MPLS from a VR, the software
displays a prompt to remind you that the MPLS configuration is lost
when MPLS is deleted.
After you add MPLS to a VR, you must configure and enable MPLS. MPLS commands
operate only in the VR to which MPLS is added. An error message appears if you enter
an MPLS command in a VR that does not support MPLS.
Note
The MPLS LSR ID must be configured before MPLS can be enabled. The LSR
ID should be configured on a loopback VLAN.
If you have enabled MPLS on an OSPF interface that is used to reach a particular
destination, make sure that you enable MPLS on all additional OSPF interfaces that
can reach that same destination (for example, enable MPLS on all VLANs that are
connected to the backbone network).
Note
For SummitStacks, see the Switch Engine Command References
description for the enable mpls command for special requirements for
SummitStacks.
By default, MPLS is disabled on the switch. This command starts the MPLS process,
allowing MPLS protocols to run and MPLS packets to be forwarded.
• To disable MPLS on an LSR, use the following command:
disable mpls
When you disable MPLS, LDP and RSVP-TE are effectively disabled. The MPLS
configuration remains intact.
By default, LDP is disabled on the switch. This command enables MPLS to process
LDP control packets and to advertise and receive LDP labels.
Note
Globally enabling the LDP protocol does not enable LDP on MPLS
configured VLANs. See the next section for instructions on enabling LDP
on a VLAN.
This command enables LDP on one or all VLANs for which MPLS has been
configured.
Note
If you have enabled LDP and MPLS on an IGP interface that is used to
reach a particular destination, make sure that you enable LDP and MPLS
on all additional IGP interfaces that can reach that same destination (for
example, enable LDP and MPLS on all OSPF VLANs that are connected to
the backbone network).
This command disables LDP on one or all VLANs for which MPLS has been
configured. This command terminates all LDP hello adjacencies and all established
LDP LSPs that use the specified interface(s).
Figure 215 shows two static LSPs configured between VLAN A and VLAN B. The dashed
line shows the static LSP for unidirectional communications from VLAN A to VLAN B.
The solid line shows the static LSP for communications in the reverse direction.
Static LSP configuration is different for ingress, transit, and egress LSRs. At the ingress
LER, only an egress label is defined. At transit LSRs, both ingress and egress labels
must be defined, and at the egress LER, only the ingress label is defined. During
configuration, you must ensure that the egress label number for each LSR matches
the ingress label number for the downstream LSR.
• Since the software has no knowledge of the cost or hop-count associated with each
static LSP, all static LSPs to the same destination are equally preferred by IP routing.
• We recommend that the same LSP name be used on every LSR along the path
of the static LSP. The software does not check for naming consistency across LSRs.
However the switch does report an error when the configured name is not unique to
the LSP on that LSR.
To configure a static LSP, use the following procedure at each node on the path:
This command enables or disables whether PHP is requested by the egress LER. If
vlan all is selected, PHP is enabled on all VLANs on which MPLS has been configured.
By default, PHP is disabled.
When PHP is enabled, PHP is requested on all LSPs for which the switch is the
egress LER.
These services behave like the dot1p QoS commands. When EXP examination is
enabled, the EXP value from the received frame is used to assign the packet to a QoS
profile. Once a packet is assigned to a QoS profile, the EXP value may be overwritten in
hardware before being transmitted. By default, the QoS profile EXP value is equivalent
to the QoS profile number one (QP1). To enable QoS for MPLS LSPs, use the following
command: enable mpls exp examination
This command enables EXP examination for MPLS received packets. When EXP
examination is enabled, the EXP field in the outer or top label of the label stack is
used to assign the received packet to an internal switch qosprofile. If enabled, all MPLS
packets are mapped to a qosprofile based on the configured EXP bit value. That is, a
packet with an EXP value of 0 is mapped to qosprofile QP1, a packet with an EXP value
of 1 is mapped to qosprofile QP2, and so on. By default, EXP examination is disabled and
all received MPLS packets are sent to QP1.
Each EXP value can be assigned a qosprofile. Multiple EXP values can be assigned to
the same qosprofile. The following command is used to configure the switch to route
packets with a received EXP value to a specific qosprofile:
The switch can overwrite the EXP value in the outer label of an MPLS packet.
The following command is used to enable the switch to replace the EXP value:
This command enables EXP replacement for MPLS transmitted packets. When EXP
replacement is enabled, the EXP field in the outer or top label of the label stack is
replaced with the EXP value configured for the QoS profile for which the packet was
assigned. By default, EXP replacement is disabled and packets are propagated without
modifying the EXP field value.
Each qosprofile can be assigned an EXP value used to overwrite the EXP bit field in the
outer label of the transmitted packet.
All qosprofiles can be configured to overwrite the EXP bit field using the same EXP
value. The following command is used to configure the switch to overwrite MPLS
packets transmitted from a specific qosprofile with a new EXP value:
Enabling EXP replacement instructs the switch to overwrite both the dot1p field and
the exp field in the outer most label.
This mapping can be viewed using show dot1p type. By default, MPLS exp
replacement is disabled. By enabling MPLS exp replacement, MPLS packets are
transmitted with the configured qosprofile dot1p and exp value. By default, these values
correspond to the qosprofile. Qosprofile 1 overwrites the dot1p and exp fields with 0,
qosprofile 2 overwrites the dot1p and exp fields with 1, and so on.
To configure the reverse packet flow, mpls exp examination and dot1p replacement
must be configured. Enabling MPLS exp examination instructs the switch to route
received MPLS packets to a qosprofile based on the EXP value. Enabling dot1p
replacement instructs the switch to write the dot1p value in the transmitted packet.
These commands affect the LDP loop detection behavior for all LDP enabled VLANs.
You can configure how the direct advertisement filter is applied, as follows:
◦ direct—The advertisement filter is applied to the FECs associated with direct
routes.
◦ rip—The advertisement filter is applied to the FECs associated with RIP routes.
◦ static—The advertisement filter is applied to the FECs associated with static
routes.
You can control the number of labels advertised using the configure mpls ldp
advertise command. Advertising labels for a large number of routes can increase
the required number of labels that must be allocated by LSRs. Care should be used
to insure that the number of labels advertised by LERs does not overwhelm the label
capacity of the LSRs.
This command configures the LDP peer session timers for the switch. The LDP
peer session timers are separately configurable for link and targeted LDP hello
adjacencies.
In the event that two peers have both a link and a targeted hello adjacency,
the hello-time values for the two hello adjacencies are negotiated separately. The
keep-alive-time value is established based on negotiations occurring when the LDP
session is established following the first hello adjacency to be established.
The minimum and maximum values for both the hello-time hello_hold_seconds
and keep-alive time keep_alive_hold_seconds are 6 and 65,534, respectively.
Changes to targeted timers only affect newly created targeted peers. Disabling and
then enabling all VPLS instances causes all current targeted peers to be re-created.
This command can only be executed when MPLS is disabled, and it restores all MPLS
configuration settings.
Omitting the optional vlan parameter clears counters for all LDP enabled interfaces.
The MPLS BFD client enables rapid detection of failures between MPLS neighbors on
specific VLANs. BFD detects forwarding path failures at a uniform rate, which makes
the re-convergence time consistent and predictable and makes network profiling and
planning easier for network administrators.
When BFD detects a communication failure, it informs MPLS, which treats the
indication as an interface (VLAN) failure. This allows the MPLS protocols to quickly begin
using alternate paths to affected neighbors (the methodology for selecting alternate
paths is dependent upon the MPLS protocol in use and how it reacts to interface failure
conditions). As MPLS connections (LSPs) are removed from the interface, BFD sessions
are removed as well, and the interface returns to a state without BFD protection.
The MPLS protocol might continue to attempt to reestablish LSP connections across
the interface, and if successful, also attempt to establish a BFD session with the
corresponding neighbor. MPLS does not process BFD state changes until the BFD
session is fully active in the UP state, at which point state changes are processed and
the state for LSPs which cross the interface becomes BFD protected.
Note
BFD sessions are established only when both peers select the same LSP route.
We recommend that BFD operate only on interfaces that have one peer.
Note
BFD must be enabled on the interface before sessions can be established.
To enable BFD, use the command: [enable | disable] bfd vlan
vlan_name .
This command displays the general configuration of all the MPLS components and
system wide configuration.
The output, shown below, displays the switch MPLS, RSVP-TE, and LDP configuration
status. It also shows the configuration status of SNMP trap, EXP examination, and EXP
replacement settings. The configured LSR ID are also shown.
# show mpls
Virtual Router Name : VR-Default
MPLS Admin Status : Enabled
MPLS Oper Status : Enabled
RSVP-TE Admin Status : Enabled
RSVP-TE Oper Status : Enabled
LDP Admin Status : Enabled
LDP Oper Status : Enabled
MPLS SNMP Traps : Disabled
Some settings are not configurable. These fields are identified with an asterisk
(*). The remaining fields can be modified using LDP configuration commands to
change the behavior of LDP. A list of VLANs that have LDP enabled is shown at the
bottom of the display output.
# show mpls ldp
LDP Status : Enabled
Protocol Version : v1*
Label Retention Mode : Liberal*
Label Distribution Method : Downstream Unsolicited*
LDP Loop Detection
Status : Disabled
Hop-Count Limit : 255
Path-Vector Limit : 255
LDP Targeted Timers
Hello Hold : 45 seconds
Keep Alive Hold : 60 seconds
LDP Link Timers
Hello Hold : 15 seconds
Keep Alive Hold : 40 seconds
Label Advertisement
Direct : All
Rip : None
Static : None
LDP VLANs : loopback
: blowingrock
: boone
: asheville
* Indicates parameters that cannot be modified
When the optional parameters are omitted, this command displays information for
all the configured MPLS VLAN interfaces.
When the vlan_name parameter is specified, this command displays the current
MPLS interface summary configuration and status for only the specified VLAN. If the
All the VLANs that have LDP enabled are listed. The negotiated LDP hello hold
time is displayed. This is not the configured LDP hello hold time but represents
the value that is negotiated between the local switch and the connected LDP peer.
Hello messages are transmitted every 1/3 the negotiated hello hold time. In the
following example, that would be every 5 seconds. The hello timer status information
is displayed in milliseconds. The approximate LDP uptime and status flags are also
shown.
# show mpls ldp interface
VLAN Name #Adj NegHHldTm NxtHello UpTm Flags
---------------- ---- --------- -------- ---- -----
loopback 0 15000 2230 16h MLU
blowingrock 1 15000 2200 14h MLU
boone 1 15000 2210 16h MLU
asheville 1 15000 2210 16h MLU
Flags: (M) MPLS Enabled, (L) LDP Enabled,
(U) LDP Operational
This command displays information about how to forward packets that arrive
labeled as MPLS packets. As such, it shows how labels advertised to upstream peers
are mapped to labels received from downstream peers. This mapping is sometimes
referred to as the Incoming Label Map (ILM).
As can be seen below, the output display differs for label mappings signaled by LDP
and RSVP-TE. Please see the respective sections for additional information.
# show mpls ldp lsp
Prefix Adv Label Peer Label Next Hop VLAN
192.168.0.4/32 0x80402 -- -- lpbk
192.168.0.2/32 0x00039 0x80400 11.0.2.2 vlan2
11.0.4.0/24 0x0003A 0x80401 11.0.2.2 vlan2
192.168.0.4/32 0x0003B 0x00013 11.0.2.2 vlan2
* BD-10K.6 # show mpls rsvp-te lsp
Ingress LSP Name Path Name Destination Transmit I/F UpTm
Flags
---------------- ---------------- --------------- ---------------- ----
--------
LSR1-LSR4 path1-2-4 192.168.0.4 vlan2 47m
UEP--OIV
Egress LSP Name Source IP Destination Receive I/F UpTm
---------------- --------------- --------------- ---------------- ----
LSR4-LSR1 192.168.0.4 192.168.0.1 vlan1 47m
Transit LSP Name Source IP Destination Receive I/F Transmit I/F UpTm
---------------- --------------- --------------- ------------- ------------- ----
LSR2-LSR3 192.168.0.2 192.168.0.3 vlan2 vlan1 47m
Flags: (U) Up, (E) Enabled, (P) Primary LSP, (S) Secondary LSP,
(R) Redundant Paths, (B) Bandwidth Requested, (O) ERO Specified,
(I) IP Traffic Allowed, (V) VPN Traffic Allowed,
(v) VPN Assigned Traffic Allowed
QP6 --> 05
QP7 --> 06
QP8 --> 07
EXP Replacement is disabled
* BD-10K.12 #
This command displays information about the status of LDP peer sessions.
Summary information is displayed for all known LDP peers and LDP peer sessions.
If you specify the ipaddress of an LDP peer, information for the single LDP peer is
displayed. If you specify the detail keyword, additional information is displayed in a
comprehensive detailed format.
If you specify the detail keyword, the following additional information is displayed:
◦ Discontinuity time
◦ Negotiated label distribution
◦ Next hop address
◦ Keep-Alive hold timer
◦ Hello adjacency details
Omitting the optional vlan parameter displays counters for all LDP enabled
interfaces.
This command displays the LDP LSPs established to, from, and through this switch.
By default, ingress, egress, and transit LSPs are all displayed. By optionally specifying
the LSP type, the output display is filtered to show only the type of LSPs specified.
When all LSP types are being displayed, LSPs that show only an advertised label
represent egress LSPs from the network perspective or incoming LSPs from the
switch perspective. LSPs that show only a received label represent ingress LSPs from
the network perspective or outgoing LSPs from the switch perspective. LSPs that
show both an incoming and an outgoing label represent transit LSPs. As Extreme
switches are merge-capable, all LDP transit LSPs can also be used as ingress LSPs.
The significance of the VLAN information shown depends on the LSP type. For
ingress and transit LSPs, the indicated VLAN is the MPLS interface used to reach
the next hop peer. For egress LSPs, there is no associated MPLS next hop interface.
When the prefix being advertised is associated with a local (direct) VLAN, that VLAN
name is displayed. When the advertised prefix is associated with a static or an RIP
route, the VLAN field is empty.
Advertised labels have switch-wide significance and are generally advertised out
multiple interfaces.
* BD-10K.15 # show mpls ldp lsp
Prefix Adv Label Peer Label Next Hop VLAN
192.99.1.5/32 0x80402 -- -- loopback
192.80.40.0/24 0x80403 -- -- asheville
192.100.40.0/24 0x80404 -- -- boone
192.60.40.0/24 0x8040b -- -- blowingrock
192.24.100.0/24 0x00015 0x80401 192.100.40.3 boone
192.99.1.3/32 0x00016 0x80403 192.100.40.3 boone
192.10.50.0/24 0x00018 0x80405 192.100.40.3 boone
10.20.30.0/24 0x0001c 0x00013 192.100.40.3 boone
11.136.96.0/24 0x0001d 0x00014 192.100.40.3 boone
Specifying the optional detail keyword displays each LSP in detail format.
Additionally, received packets and bytes are maintained for transit and egress (or
incoming) LSPs. Specifying the keyword prefix and a matching ipNetmask restricts
the display to a single entry.
*BD-X8.17 # show mpls ldp lsp prefix 11.108.96.0/24 detail
FEC IP/Prefix: 11.108.96.0/24:
Advertised Label: 0 (0)
Received Label : 0x18 (24)
Next Hop IP : 192.100.40.3
VLAN Name : boone
Packets received : 489
Bytes received : 46944
This command displays summary configuration and status information for RSVP-TE.
Global status of RSVP-TE and the configured standard and rapid-retry LSP timer
values are included in the display output.
This command displays the configuration and status information for MPLS RSVP-TE
paths. Information is listed in tabular format and includes the path name, number
of configured ERO objects, number of LSPs configured to use this path, the list of
EROs and their type. Optionally specifying the detail keyword displays the path
information in verbose format, including all LSPs that are configured to use the path.
By default, this command displays all configured profile parameters for the specified
profile. If the profile name is omitted, the profile parameter values for all configured
LSP profiles are displayed. Optionally specifying the keyword detail displays the
profile information is verbose format. When the detail keyword is specified, all LSPs
that are configured to use this profile are also displayed.
This command displays the LSP information associated with RSVP-TE that is used
to forward packets within the MPLS network. If no options are specified, summary
information for all RSVP-TE LSPs is displayed. This information includes the LSP
name, LSP direction relative to the MPLS network (i.e., ingress, egress, or transit),
incoming and or outgoing interface, configured destination, and uptime. If the
optional LSP name parameter is specified, only the LSP information for the specified
ingress LSP name is displayed. Optionally, the LSPs displayed can be further
qualified by the keywords ingress, egress, and transit. These keywords qualify
the LSPs displayed from the perspective of the switch.
Ingress LSPs identify LSPs that originate from the switch into the MPLS network.
Egress LSPs identify LSPs that terminate at the switch from the MPLS network.
Transit LSPs represent LSPs that traverse the switch.
The optional destination keyword limits the display to only those LSPs that
terminate at the specified IP address. The optional origin keyword limits the display
to only those LSPs that originate at the specified IP address. Optionally specifying
the detail keyword displays the LSP information in verbose format. Additional
information displayed includes the configured path and profile, transmit and/or
receive labels, failure and retry counts, packet and byte counters, and recorded
routes.
module. The switches are all interconnected via Gigabit Ethernet to form the OSPF
backbone area and the MPLS domain. In this example, two directly connected OSPF-
disabled VLANs are shown: unc and duke. Traffic between unc and duke follows routed
paths over calculated LSPs established between LSR 1 and LSR 4.
The commands used to configure LSR 1 are described below. The remaining LSRs are
configured similarly.
The following commands configure the module types for specific slots:
configure slot 2 module 8900-G48T-xl
configure slot 2 module 8900-G48T-xl
The following command sets the maximum jumbo frame size for the switch chassis to
1600:
configure jumbo-frame-size size 1600
enable jumbo-frame ports all
The following commands configure the VLAN IP address and assign ports participating
in each VLAN:
configure vlan lpbk ipaddress 192.168.0.1/32
enable ipforwarding lpbk
enable loopback-mode lpbk
configure vlan default delete ports all
configure vlan vlan1 ipaddress 11.0.1.1/24
configure vlan vlan1 add port 3:2 untagged
configure vlan vlan2 ipaddress 11.0.2.1/24
configure vlan vlan2 add port 3:3 untagged
configure vlan unc ipaddress 9.9.9.1/24
configure vlan unc add port 3:4 untagged
The MTU size is increased on the MPLS VLANs to accommodate the MPLS shim header:
enable ipforwarding vlan vlan1
configure ip-mtu 1550 vlan vlan1
enable ipforwarding vlan vlan2
configure ip-mtu 1550 vlan vlan2
enable ipforwarding vlan unc
The following commands add MPLS support to VLANs lpbk, vlan1, and vlan2:
configure mpls add vlan lpbk
configure mpls add vlan vlan1
configure mpls add vlan vlan2
The following commands enable MPLS on VLANs lpbk, vlan1, and vlan2 and LDP on
VLANs vlan1 and vlan2:
enable mpls lpbk
enable mpls vlan1
enable mpls vlan2
enable mpls ldp vlan1
enable mpls ldp vlan2
The following command allows LDP to advertise a label mapping for the LSR ID:
configure mpls ldp advertise direct lsr-id
The following commands globally enable LDP and MPLS on the switch:
enable mpls protocol ldp
enable mpls
The following commands add lpbk, vlan1, and vlan2 to the backbone area.
The 0.0.0.0 (backbone) area does not need to be created because it exists by default:
configure ospf add vlan lpbk area 0.0.0.0
configure ospf add vlan vlan2 area 0.0.0.0
configure ospf add vlan vlan1 area 0.0.0.0
The following command enables distribution of local (direct) interfaces into the OSPF
area:
enable ospf export direct cost 10 type ase-type-1
The following command configures the OSPF router ID on the switch and enables the
distribution of a route for the OSPF router ID in the router LSA.
Originating the router ID as a host route allows other routers in the same OSPF area to
establish calculated LSPs for external routes to this router:
configure ospf routerid 192.168.0.1
MPLS should be enabled using the enable mpls command and LDP should be enabled
using the enable mpls protocol ldp command.
Since the MPLS LSR ID is used as the local endpoint for PWs, it is highly desirable
to create a loopback VLAN whose associated IP address is that of the MPLS LSR ID.
The configured prefix length should be 32. As described in Establishing LDP LSPs to
PW Endpoints on page 1468, configuring this loopback VLAN for MPLS causes the
address to be included in LDP address messages. Use the configure mpls add vlan
vlan_name command for this. It is not required that LDP or MPLS be enabled on the
VLAN for the address to be advertised by LDP. Use the configure mpls ldp advertise
direct lsr-id command to initiate an LDP label mapping for an LDP LSP to the local
endpoint.
This command creates a named Layer 2 VPN instance. Multiple domains can be
created, each representing a different L2 VPN. The pwid is a number that is used to
signal and identify which Layer 2 VPN is associated with each pseudowire. All of the
pseudowires carrying traffic for a specific Layer 2 VPN are signaled with the same
pwid. No Layer 2 VPN traffic is forwarded over the Layer 2 VPN until at least one peer
is added to the Layer 2 VPN and a service is associated with the Layer 2 VPN. The
configured pwid also doubles as the Layer 2 VPN ID.
• To delete a Layer 2 VPN, use the following command:
delete l2vpn [vpls [vpls_name | all] | vpws [vpws_name | all]]
This command deletes the named Layer 2 VPN instance or all Layer 2 VPN instances,
depending on the keyword. All Layer 2 VPN peers and services associated with the
deleted Layer 2 VPN instance(s) are also deleted.
This command enables a named Layer 2 VPN instance. By default, a newly created
Layer 2 VPN is enabled.
• To disable a Layer 2 VPN, use the following command:
disable l2vpn [vpls [vpls_name | all] | vpws [vpws_name | all]]
This command disables the named Layer 2 VPN instance. When a Layer 2 VPN is
disabled, no traffic flows across the Layer 2 VPN. The pseudowires connecting this
peer to all other configured peers are also terminated, so the remote peers no longer
see this LSR as an active peer.
For each new peer added, a pseudowire is signaled to carry traffic for this Layer 2
VPN. Up to 64 peers can be added to a VPLS; and only one peer can be added to a
VPWS. For each peer added, that remote peer must also configure this local LSR as a
peer for the Layer 2 VPN. For VPLS configurations, this insures that the VPLS core is
configured as a full mesh of VPLS peers.
The Layer 2 VPN names on each peer do not have to match since the pseudowire ID
is used to define the Layer 2 VPN to which each pseudowire is associated.
• Delete a peer from the Layer 2 VPN, use the following command:
configure l2vpn [vpls vpls_name | vpws vpws_name] delete peer
[ipaddress | all]
Once the peer is deleted, that specified peer is no longer a member of the Layer 2
VPN. For VPLS configurations, the peer must also be removed from all other VPLS
peers to insure a proper full mesh and to prevent connectivity issues.
Only one service can be added to each Layer 2 VPN. Traffic associated with the
service is transported over the Layer 2 VPN. Three basic types of services are
supported: VLAN, VMAN, and port. Both the VLAN and VMAN services are specified
by adding the VLAN or VMAN name to the Layer 2 VPN. The port service is
configured by adding a VMAN name to the Layer 2 VPN, configuring the Layer 2
VPN to strip the VMAN tag, and adding the port as untagged to the VMAN. This
allows incoming service traffic to be transported across the Layer 2 VPN exactly as it
was received. See Managing Layer 2 VPN Packet Forwarding Options on page 1526
for information about configuring a Layer 2 VPN to strip the VMAN tag.
• To delete a service from a Layer 2 VPN, use the following command:
configure l2vpn [vpls vpls_name | vpws vpws_name] delete service
[{vlan} vlan_name | {vman} vman_name]
Since there is no local service that needs to be connected to the Layer 2 VPN, the
pseudowires to each of the configured peers for this Layer 2 VPN are terminated.
Note
Ports added to Layer 2 VPN service VPLS/VMAN should not be part of
PVLAN or VLAN aggregation or VLAN translation.
When the service is disabled, the service is disconnected from the Layer 2 VPN
and disabled such that no packets are sent to or received from the service. The
pseudowires to each of the configured peers for this Layer 2 VPN are terminated.
The options should be configured the same for every LSR for this Layer 2 VPN in
order to prevent connectivity issues. Specifying the dot1q ethertype forces the switch
to overwrite the dot1q ethertype value in the service packet. This can be used to
interconnect two customer segments over the Layer 2 VPN that are using different
configured ethertype values. By default, the dot1q tag in the service packet is not
included. The switch can be configured to strip or exclude the dot1q tag. This can
be used to emulate port services or for interoperability with equipment that may
require tags.
• To unconfigure Layer 2 VPN packet forwarding options, use the following command:
unconfigure l2vpn [vpls vpls_name | vpws vpws_name] dot1q ethertype
This command resets the dot1q ethertype for the specified Layer 2 VPN to the
default ethertype configured for the switch.
The frame size of the customer packet also includes the data link header and FCS field.
The Ethernet data link header includes a minimum of a destination MAC address (six
bytes), a source MAC address (six bytes), and an ethertype field (two bytes). The FCS
field is four bytes. For a 1500-byte customer payload, the minimum customer frame size
is 1518 bytes.
The Layer 2 frame, minus the FCS field, is encapsulated to form an MPLS packet to be
transmitted to a Layer 2 VPN peer. This encapsulation adds another Ethernet header,
an MPLS shim header, and a FCS field. The MPLS shim header usually includes two
four-byte MPLS labels. Therefore, this encapsulation adds a minimum of 26 bytes.
The total frame size includes the customer payload, the Ethernet header on the
customer facing interface (minimum 14 bytes), and the MPLS encapsulation (minimum
26 bytes). For a 1500-byte customer payload, the minimum Layer 2 VPN frame size is
1540 bytes.
The total frame size is restricted by the jumbo frame size. The maximum jumbo frame
size that can be configured is 9216 bytes. If the customer payload in the above example
is increased to 9176 bytes, the resulting Layer 2 VPN encapsulated frame size is 9216
bytes. Therefore, the maximum practical value of the Layer 2 VPN MTU is 9176 bytes.
There are additional considerations that can lower the maximum practical value of the
Layer 2 VPN MTU setting. If the Layer 2 VPN is configured to include the VLAN tag of
the customer interface, this increases the total frame size by four bytes. If the MPLS
interface used to transmit the encapsulated Layer 2 VPN packet is a tagged VLAN, this
also increases the total frame size by four bytes. If either of these configuration options
is present, the maximum practical Layer 2 VPN MTU size is reduced accordingly.
• To configure the Layer 2 VPN MTU size, use the mtu option in the following
command:
configure l2vpn [vpls vpls_name | vpws vpws_name] {dot1q [ethertype
hex_number | tag [include | exclude]]} {mtu number}
The Layer 2 VPN MTU value is signaled to peers as part of the VC FEC information
during PW setup. The local value must match the value received from the PW peer.
If the two values do not match, the PW is not established.
Assuming that the routed MPLS network has already been configured as in the
previous example, the commands used to create the VPLS on LSR1 and LSR4 follow.
The nc-university-vpn is a point-to-point VPLS, since only two peers are participating.
The following command creates the VPLS with VPN ID 35. This command must be
issued on both LSR1 and LSR4:
create l2vpn vpls nc-university-vpn fec-id-type pseudo-wire 35
The following command enables the VPLS instance specified by the vpls_name:
enable l2vpn [vpls [ vpls_name | all ]
On LSR1, configure the local VLAN service and the VPLS peer:
configure l2vpn vpls nc-university-vpn add service vlan unc-charlotte
configure l2vpn vpls nc-university-vpn add peer 192.168.0.4
On LSR4, configure the local VLAN service and the VPLS peer:
configure l2vpn vpls nc-university-vpn add service vlan unc-wilmington
configure l2vpn vpls nc-university-vpn add peer 192.168.0.1
LSR1
configure vpls nc-university-vpn add peer 192.168.0.2
configure vpls nc-university-vpn add peer 192.168.0.3
LSR2
create vpls nc-university-vpn fec-id-type pseudo-wire 35
configure vpls nc-university-vpn add peer 192.168.0.1
configure vpls nc-university-vpn add peer 192.168.0.3
configure vpls nc-university-vpn add peer 192.168.0.4
configure vpls nc-university-vpn add service vlan unc-asheville
LSR3
create vpls nc-university-vpn fec-id-type pseudo-wire 35
configure vpls nc-university-vpn add peer 192.168.0.1
configure vpls nc-university-vpn add peer 192.168.0.2
configure vpls nc-university-vpn add peer 192.168.0.4
configure vpls nc-university-vpn add service vlan unc-greensboro
LSR4
configure vpls nc-university-vpn add peer 192.168.0.2
configure vpls nc-university-vpn add peer 192.168.0.3
Configuring H-VPLS
H-VPLS is configured at the edge of the network. The core of the network supports
H-VPLS and is configured as described in Configuring MPLS Layer-2 VPNs (VPLS and
VPWS) on page 1523. To configure H-VPLS, you need to configure the H-VPLS spoke
nodes and the PE core nodes that peer with the spoke nodes.
Use the core primary and core secondary command options as needed. The core
primary option specifies that the spoke node peer is a core node and that the link
between the peers is the primary spoke. The core secondary option specifies that
the spoke node peer is a core node and that the link between the peers is the
secondary spoke.
• To delete an H-VPLS spoke node, use the following command:
configure l2vpn [vpls vpls_name | vpws vpws_name] delete peer
[ipaddress | all]
Use the spoke command option to specify that the peer is an H-VPLS spoke node.
When the H-VPLS spoke and core peers are configured, VPLS communications can
be established between them.
Note
To enable communications from the H-VPLS spoke across the VPLS
network, the H-VPLS core node must also be configured to peer with the
other VPLS nodes.
Configuring RSVP-TE
Note
MPLS must be globally enabled before RSVP-TE can become operational.
For more information, see Enabling and Disabling MPLS on an LSR on page
1505.
Disabling RSVP-TE on a VLAN causes all TE LSPs using that interface to be released,
and prevents TE LSPs from being established or accepted on the specified VLAN.
This command configures the RSVP-TE protocol parameters for the specified VLAN.
The RSVP-TE keyword all indicates that the configuration changes apply to all
RSVP-TE enabled VLANs.
The hello-interval time specifies the RSVP hello packet transmission interval. The
RSVP hello packet is used by the switch to detect when an RSVP-TE peer is
no longer reachable. If an RSVP hello packet is not received from a peer within
[hello-interval * keep-multiplier] seconds, the peer is declared down and all RSVP
sessions to and from that peer are torn down. The default hello-interval time is zero,
indicating that RSVP hellos are not enabled. The hello-interval can be set to any
value between zero and 60 seconds.
The refresh-time parameter specifies the interval for sending refresh path
messages. RSVP refresh messages provide soft state link-level keep-alive
information for previously established paths and enable the switch to detect when
an LSP is no longer active. RSVP sessions are torn down if an RSVP refresh message
is not received from a neighbor within [(keep-multiplier + 0.5) * 1.5 * refresh-time]
seconds. The default refresh-time is 30 seconds and the default keep-multiplier
value is three. The minimum and maximum refresh-time values are one and
36,000 seconds (or ten hours), respectively. The minimum and maximum keep-
multiplier values are one and 255, respectively.
If configured, the bundled and summary refresh RSVP messages are only sent to
RSVP-TE peers supporting RSVP refresh reduction.
The lsp_name parameter is a character string that identifies the LSP within the
switch. The lsp_name string must begin with an alphabetic character and can
contain up to 31 additional alphanumeric characters. The LSP is not signaled until
at least one path is added. See Adding a Path to an RSVP-TE LSP on page 1538.
• To delete an RSVP-TE LSP, use the following command:
delete mpls rsvp-te lsp [lsp_name | all]
Deleting an LSP name disassociates all configured paths with this LSP and all
configuration information for the LSP name is deleted. If the LSP has been specified
for use by a static route or a VPLS, that configuration information is also deleted. If
you specify the all keyword, all LSPs are deleted.
The path_name parameter is a character string that is to used to identify the path
within the switch. The path_name string must begin with an alphabetic character,
and can contain up to 31 additional alphanumeric characters. The RSVP-TE LSP is not
signaled along the path until an LSP adds the specified path name. The maximum
number of configurable paths is 1000.
• To delete an RSVP-TE path, use the following command:
delete mpls rsvp-te path [path_name | all]
This command deletes a configured MPLS RSVP-TE routed path with the specified
path_name. All associated configuration information for path_name is deleted. A path
cannot be deleted as long as the path_name is associated with an LSP. If the all
keyword is specified, all paths not associated with an LSP are deleted.
These commands add an IP address to the explicit route object (ERO) for the specified
path name. The include keyword is optional and the default behavior is to define an
ERO that must be included in the path. The exclude keyword allows a path to be
created that must avoid certain subnets. This can be useful when defining redundant
LSPs or paths that must avoid the path of other LSPs or paths.
The ipaddress keyword identifies an LSR using either a /32 address, which may
represent an LSR router ID, loopback address, or direct router interface, or an IP prefix,
which represents a directly connected subnet. Each IP address or prefix is included in
the ERO as an IPv4 subobject.
For EROs that are configured to be included in the path calculation, if the IP address is
specified as strict, the strict subobject must be topologically4 adjacent to the previous
subobject as listed in the ERO. If the IP address is specified as loose, the loose subobject
is not required to be topologically adjacent to the previous subobject as listed in the
ERO. If omitted, the default subobject attribute is loose.
For EROs that are configured to be excluded in the path calculation, a given subnet is
avoided if any address on that subnet is specified.
If the subobject matches a direct router interface or a directly attached subnet, the
switch verifies that the path message is received on the matching router interface.
The LSR path order is optionally specified using the order keyword. The order number
parameter is an integer value from 1 to 65535. IP prefixes with a lower order number are
sequenced before IP prefixes with a higher number. You can specify multiple addresses
and assign them an order number. The order number determines the path that the
LSP follows. Thus, the LSP follows the configured path of the IP prefix with the order
value from low to high. If the order keyword is not specified, the number value for the
LSR defaults to a value 100 higher than the current highest number value. For excluded
nodes, the order is not important. Any excluded ERO will be always be avoided no
matter where it is in the list of ERO objects.
If the list of IP prefixes added to the path does not reflect an actual path through the
network topology, the path message is returned with an error from a downstream LSR
and the LSP is not established.
The order of a configured subobject can not be changed. The ERO subobject must
be deleted and re-added using a different order. If a subobject is added to or deleted
from the ERO while the associated LSP is established, the path is torn down and is
resignaled using the new ERO. Duplicate ERO subobjects are not allowed. Defining
an ERO for the path is optional. If you do not configure an ERO, the path is signaled
along the best CSPF calculated path and the ERO is not included in the path message.
When the last subobject in the ERO of the path message is reached and the egress
IP node of the path has not been reached, the remaining path to the egress node is
signaled along the best CSPF calculated path. Specification of an ERO could lead to
undesirable routed paths, so care should be taken when terminating the ERO routed-
path definition prior to the configured path egress node.
This command deletes an LSR or subnet from the ERO for the specified path name. The
LSR is specified using the ipaddress, or order parameter. If an LSR is deleted from an
ERO while the associated LSP is established, the path is torn down and is resignaled
using a new ERO. Use the all keyword to delete the entire ERO from the path name.
When there is no configured ERO, the path is no longer required to take an explicit
routed path. The path is then signaled along the best CSPF calculated path and no
ERO is included in the path message.
The default reserved value is zero. Therefore, no LSPs requesting bandwidth can be
established until the bandwidth has been configured.
This command creates a configured RSVP-TE profile with the specified profile name.
The default profile cannot be deleted. If a profile is associated with a configured LSP,
the profile cannot be deleted.
• To delete a traffic engineered LSP profile, use the following command:
delete mpls rsvp-te profile [profile_name | all]
A profile is a set of attributes that are applied to the LSP when the LSP is configured
using the create mpls rsvp-te lsp command. A default profile is provided which
cannot be deleted, but can be applied to any configured LSP. The profile name for
the default profile is default. The default profile parameter values are initially set
to their respective default values. The maximum number of configurable profiles is
1000 (one of which is reserved for the default profile).
The bandwidth parameter specifies the desired reserved bandwidth for the LSP. Any
positive integer value is valid. You must append the characters k for kilobits, m for
megabits, or g for gigabits, to the bps value to specify the unit of measure. The
default bandwidth bps value is zero, which indicates that the QoS for the LSP is best
effort.
The max-burst-size and peak-rate parameters are signaled in the sender Tspec
object and add further definition of the expected traffic. The mtu parameter is also
signaled in the sender Tspec object and defines the expected maximum packet size
that is sent over the LSP.
to the LSP destination. "partial" allows the ingress node to calculate only part of the
path to the LSP destination.
Note
Inter area RSVP fast reroute (FRR) is not supported.
The record keyword is used to enable hop-by-hop path recording. The enabled
keyword causes the record route object (RRO) to be inserted into the path message.
The RRO is returned in the reserve message and contains a list of IPv4 subobjects
that describe the RSVP-TE path. Path recording by default is disabled. When
disabled, no RRO is inserted into the path message.
• To delete an RSVP-TE path profile, use the following command:
delete mpls rsvp-te profile [profile_name | all]
This command deletes a configured RSVP-TE profile with the specified profile name.
The default profile cannot be deleted. If a profile is associated with a configured
LSP, the profile cannot be deleted. If you specify the all keyword, all profiles not
associated with an LSP are deleted (except for the default profile).
This command adds a configured path to the specified RSVP-TE LSP. The LSP name
parameter is a character string that is to be used to identify the LSP within the
switch and must have been created previously. The LSP is not signaled until a path
is added to the LSP. Up to three paths can be defined for the LSP: one primary and
two secondary. All paths are signaled, but only one path is used to forward traffic
at any one time. The switch chooses the local MPLS VLAN interface from which to
signal the LSP. To force an LSP to use a specific local MPLS interface, configure the
peer’s interface IP address as the first ERO in the associated path. The profile name
is optional. If omitted, the default profile is applied to the LSP. The path name can be
specified or the LSP can be configured to take any path. For a given LSP, only one
path can be configured to take any path through the MPLS network.
The specified path defaults to primary when no primary path has been configured
for the LSP and defaults to secondary if the primary path has been previously
configured for the LSP.
All configured primary and secondary paths for the lsp_name must have the same
endpoint IP address. For example, three paths can be configured for the lsp_name,
but all paths should represent different topological paths through the network to
the same LSP endpoint.
When you issue this command, the LSP associated with the path is immediately
torn down. If the deleted path represents the in-use LSP for lsp_name and another
secondary path is configured, the LSP immediately fails over to an alternate LSP.
Because at least one path must be defined for each LSP, the last configured path
cannot be deleted from the LSP.
1. Create the LSP as described in Creating or Deleting an RSVP-TE LSP on page 1534.
2. Enable the fast-reroute feature on the LSP using the following command: configure
mpls rsvp-te lsp lsp_namefast-reroute [enable | disable]
3. Create a path for the LSP as described in Creating an RSVP-TE Path on page 1534.
4. Define the path route as described in .
5. If you want to use a custom profile instead of the default profile, create a profile for
the protected LSP as described in Creating and Deleting an RSVP-TE Profile on page
1537.
6. If you want to configure the custom profile created in the previous step, configure
the profile as described in Configuring an RSVP-TE Profile on page 1537.
7. If you want to use a custom fast-reroute profile instead of using the default fast-
reroute profile, create the profile using the following command at the ingress LER:
create mpls rsvp-te profile profile_namefast-reroute
8. If you want to configure the custom fast-reroute profile created in the previous step,
use the following command at the ingress LER:
configure mpls rsvp-te profile frr_profile_name {bandwidth
bandwidth_rate_bpsbandwidth_rate_unit} {detour {hop-limit
hop_limit_value} {bandwidth-protection [enabled | disabled]} {node-
protection [enabled | disabled]}} {hold-priority hold_priority_value}
{setup-priority setup_priority_value}
9. Add the path to the protected LSP and select the standard and fast-reroute profiles
using the following command:
configure mpls rsvp-te lsp lsp_name add path [path_name | any]
{profile profile_name} {primary {frr_profile_name} | secondary}
Configuring RSVP LSPs is a multi-step process with some optional steps, depending on
the specific requirements of the LSP. Conceptually, a number of mandatory elements
must be configured to create an RSVP-TE LSP. In addition, you can also configure
optional elements. In certain configurations, there are also order dependencies.
The profile contains constraints that you might wish to apply to the LSP. These
constraints can affect the path selected across the MPLS domain in order to meet
those constraints. Examples of profile parameters include bandwidth, setup, and hold
priority relative to other configured LSPs.
The path can be used to specify the explicit path across the MPLS domain that the LSP
should follow. This is done using EROs. An ERO is an object, sent as part of the LSP
setup request (path message) that explicitly specifies the part of the path across the
MPLS domain the setup request should follow. You can configure both loose and strict
EROs in a path.
Certain elements of configuration are order dependent. For example if you specify a
profile or path when creating an LSP, those path or profile definitions must already
exist. Similarly a path must exist before an ERO is created, as the ERO is added explicitly
to the path.
The typical steps used to configure and verify an RSVP-TE LSP are as follows:
Note
Before configuring RSVP-TE LSPs, you need to enable the protocol on the
switch, and an initial step of adding RSVP-TE to a VLAN must be carried out
for all VLANs over which the user wishes RSVP-TE LSPs to be signaled. This
is a one-time operation.
A loopback VLAN with the LSR-ID should be added to MPLS to allow RSVP-
TE LSPs to be established to the LSR-ID.
The following commands configure RSVP-TE for the switch and add RSVP signaling
capabilities to the specified VLANs:
enable mpls
enable mpls protocol rsvp-te
configure mpls add vlan loopback
configure mpls add vlan gla-lon
enable mpls rsvp-te vlan gla-lon
The following commands reserve bandwidth for RSVP-TE LSPs on these MPLS
interfaces:
configure mpls rsvp-te bandwidth committed-rate 20 Mbps gla-lon
configure mpls rsvp-te bandwidth committed-rate 20 Mbps gla-liv
The following commands create and configure an LSP profile named Glasgow-
Birmingham-pro.
LSPs that use the Glasgow-Birmingham-pro profile are signaled with a reserved
bandwidth of 10 Mbps and an LSP setup and hold priority of 5.
create mpls rsvp-te profile Glasgow-Birmingham-pro
configure mpls rsvp-te profile Glasgow-Birmingham-pro bandwidth committed-rate 10 m
configure mpls rsvp-te profile Glasgow-Birmingham-pro setup-priority 5 hold-priority 5
The following commands define the primary and secondary paths between Glasgow
and Birmingham:
create mpls rsvp-te path Glasgow-Birmingham-pri-path
create mpls rsvp-te path Glasgow-Birmingham-sec-path
The following commands pin each path to an LSR, such that each path takes a
different route to the endpoint 4.0.0.0.
The following commands create one RSVP-TE LSP with one primary and one
secondary or backup path.
Note
The secondary LSP is signaled, however it remains in a standby state unless
the primary path becomes unavailable.
Troubleshooting MPLS
The ExtremeXOS software includes multiple mechanisms for detecting and reporting
problems.
Many failures generate an SNMP trap or log an error message. To find out more
about a problem, you can enter show commands and review the flag states in the
command output. The software also includes some MPLS troubleshooting tools, which
are described in the following sections.
LSP ping is designed to catch failures where a transport LSP appears to be operational
but is actually not functioning correctly. LSP data plane corruption is far less likely to
occur than an LSP control plane failure, but the LSP ping is also useful for detecting
possible latency issues.
• To send MPLS ping packets over an LSP, enter the following command:
ping mpls lsp [lsp_name | any host | prefix ipNetmask] {reply-mode
[ip | ip-router-alert]} {continuous | count count} {interval interval}
{start-size start-size {end-size end-size}} {ttl ttl} {{from from}
{next-hop hopaddress}}
MPLS pings are sent to the well-known UDP port number 3503 with an IP in the
127.0.0.0/8 IP subnet. The source IP address is set to the sender.
The time stamp field is supported for calculating round trip times and is accurate to
1/100 of a second. When replying to a ping, the LSP ping response (MPLS echo reply)
sequence number and time-stamp fields are set to the LSP ping request (MPLS
echo request) values. One MPLS echo response is sent for each MPLS echo request
received. An MPLS echo reply is sent out-of-band as a natively IP routed IPv4 UDP
packet. The normal IP routed path might or might not use an LSP.
To reduce the possibility of fragmentation problems on the return path, MPLS echo
reply packets do not include any padding that was sent in the MPLS echo request.
Because each LSP is unidirectional, the return path is not directly relevant for
verification of the LSP's functionality. What is important is that the LSP ping results
are returned to the source of the MPLS echo request.
Health check uses the LSP ping capability to verify connectivity. When the PW is set
up, the two peers negotiate the VCCV capabilities, and if they establish a common set,
health check becomes operational. If the VCCV capabilities do not match, health check
cannot operate.
VCCV sends health check packets at regular intervals (the default interval is 5 seconds).
If health check reaches the threshold for missed responses (the default fault-multiplier
is 4), health check logs a message in EMS at the Warning level. Note that this log is
not seen with the default log settings and no SNMP traps are sent. A health check
failure does not change the state of the PW, which could remain operationally up and
continue to support traffic, depending on the actual problem.
• To enable health check, use the following commands:
enable l2vpn [vpls vpls_name | vpws vpws_name] health-check vccv
• To configure health check, use the following command:
configure l2vpn [vpls [vpls_name | all] | vpws [vpws_name |
all]] health-check vccv {interval interval_seconds} {fault-multiplier
fault_multiplier_number}
This chapter assumes that you are already familiar with IP unicast routing. If not, refer
to the following publications for additional information:
• RFC 1256—ICMP (Internet Control Message Protocol) Router Discovery Messages
• RFC 1812—Requirements for IP Version 4 Routers
Note
For more information on interior gateway protocols, see:
• RIP on page 1641
• OSPF on page 1652
• IS-IS on page 1685
document.) It exchanges routing information with other routers on the network using
one of the following routing protocols:
• RIP (Routing Information Protocol)
• OSPF (Open Shortest Path First)
• BGP (Border Gateway Protocol)
• Intermediate System-Intermediate System (ISIS)
The switch dynamically builds and maintains a set of routing tables and determines the
best path for each of its routes. Each host using the IP unicast routing functionality of
the switch must have a unique IP address assigned. In addition, the default gateway
assigned to the host must be the IP address of the router interface.
The ExtremeXOS software can provide both IPv4 and IPv6 routing at the same time.
Separate routing tables are maintained for the two versions. Most commands that
require you to specify an IP address can accept either an IPv4 or IPv6 address
and act accordingly. Additionally, many of the IP configuration, enabling, and display
commands have added tokens for IPv4 and IPv6 to clarify the version required. For
simplicity, existing commands affect IPv4 by default and require you to specify IPv6, so
configurations from an earlier release still correctly configure an IPv4 network.
Router Interfaces
The routing software and hardware routes IP traffic between router interfaces. A router
interface is simply a virtual LAN (VLAN (Virtual LAN)) that has an IP address assigned to
it.
As you create VLANs with IP addresses belonging to different IP subnets, you can also
choose to route between the VLANs. Both the VLAN switching and IP routing function
occur within the switch.
Note
Each IP address and mask assigned to a VLAN must represent a unique IP
subnet. You cannot configure the same IP address and subnet on different
VLANs.
Figure 221 shows an example switch configuration with two VLANs defined: Finance
and Personnel. All ports on slots 1 and 3 are assigned to Finance, and all ports on slots
2 and 4 are assigned to Personnel. The figure shows the subnet address and interface
address for each VLAN. Traffic within each VLAN is switched using the Ethernet MAC
addresses. Traffic between the two VLANs is routed using the IP addresses.
GRE Tunnel
ExtremeXOS 15.4 and later supports creating a Generic Routing Encapsulation (GRE)-
based IPv4 tunnel, and routing IPv4 traffic over it. This feature is supported on all
platforms that have GRE tunneling support (see Switch Engine Licensing Guide).
ExtremeXOS 31.3 and later supports GRE tunnel configuration on user VRs instead of
only on the Default VR. You can also configure the L3/IP interface of GRE tunnels on
different VRs than the VR for the endpoints (source and destination IP addresses) using
the revised create tunnel tunnel_name gre destination destination-address
source source-address {vr vr_name} {payload-vr payload_vr_name} command.
Note
Only one BGP session is recommended over a GRE tunnel that is configured in
user VRs.
Note
The tunnel can be configured on user or default VR, but cannot be configured
on VR-control and VR-mgmt.
As switch administrator, you can configure a GRE tunnel by supplying the local
source IPv4 address and the destination IPv4 address. When configured, traffic can
be redirected through the GRE tunnel. The TTL value of the outer IPv4 header is set to
255, and the DSCP value is copied from the inner IPv4 header, the same as for the IPv6
tunnels. The encapsulated packets do not include the GRE checksum option; however
if received with a checksum they are verified by the software, and then dropped if
incorrect. The GRE module is capable of dealing with RFC 1701 neighbor options, with
the exception of the router option. Packets with this option set are dropped. However,
hardware does not support any options in the GRE header. If any of these options
are set, the packet is either dropped, or sent to the CPU for processing. Since the key
option of GRE tunnel is not configured, the GRE module only accepts GRE packets with
a key value of 0, if present, and drops packets with other key values.
Note
GRE tunnels are IP tunnels, which require L3 function. L3 features are
supported with an Edge or Base license or greater. All of the supported
platforms' default license is Edge\Base or greater, which include L3 features.
All nodes in a stack need to support GRE tunnels, or else the feature cannot be
configured/enabled. When all nodes in the system are capable of running GRE, new
GRE tunnels can be created. If a new node is added to a stack that does not support
GRE, when it is powered on, a log message is generated indicating that the node
is not compatible with GRE, and should be removed. If a stack boots up with both
a GRE configuration and a GRE-incapable node, all GRE tunnels are put in a system
disabled state. This is done to prevent the node from continuously rebooting. The
show [{tunnel} {tunnel_name} | tunnel {vr [vrname | all]} {payload-vr
payload_vrname} {detail] command displays this.
Use the configure tunnel tunnel_name ip mtu mtu command to set the MTU value.
The default is 1476.
This feature is only available on ExtremeSwitching X465, X590, X690, and X695 series
switches.
When the TCP MSS adjustment is turned off, there is no interference on TCP SYN and
SYN ACK packets going to the GRE tunnel since the ACL is removed. Those packets are
fastpath forwarded.
You can turn on or off TCP MSS adjustment using the configure tunnel
tunnel_name ip tcp adjust-mss [off | on tcp_mss_value] command for
IPv4, or the configure tunnel tunnel_name ipv6 tcp adjust-mss [off | on
tcp_mss_value] command for IPv6. The tcp_mss_value must be specified when
turning the adjusment on.
Supported Platforms
Switch 1 Configuration
configure default del port all
create vlan inet
configure vlan inet add port 24
configure vlan inet ipa 1.1.1.1/24
create vlan users
configure vlan users add port 1
configure vlan users ipa 100.0.0.1/24
create tunnel mytunnel gre destination 1.1.1.2 source 1.1.1.1
configure tunnel "mytunnel" ipaddress 2.0.0.1/24
configure iproute add 200.0.0.0/24 2.0.0.2
enable ipforwarding
Switch 2 Configuration
unconfigure switch all
configure default del port all
create vlan inet
configure vlan inet add port 10:1
configure vlan inet ipa 1.1.1.2/24
create vlan users
configure vlan users add port 10:2
configure vlan users ipa 200.0.0.1/24
create tunnel mytunnel gre destination 1.1.1.1 source 1.1.1.2
configure tunnel "mytunnel" ipaddress 2.0.0.2/24
configure iproute add 100.0.0.0/24 2.0.0.1
enable ipforwarding
Dynamic Routes
Dynamic routes are typically learned by enabling the RIP, OSPF, IS-IS or BGP protocols,
and are also learned from ICMP redirects exchanged with other routers. These routes
are called dynamic routes because they are not a permanent part of the configuration.
The routes are learned when the router starts up and are dynamically updated as the
network changes. Older dynamic routes are aged out of the tables when an update for
the network is not received for a period of time, as determined by the routing protocol.
Once a routing protocol is configured, dynamic routes require no configuration and are
automatically updated as the network changes.
Static Routes
Static routes are routes that are manually entered into the routing tables and are not
advertised through the routing protocols. Static routes can be used to reach networks
that are not advertised by routing protocols and do not have dynamic route entries in
the routing tables. Static routes can also be used for security reasons, to create routes
that are not advertised by the router.
Static routes are configured in the ExtremeXOS software, remain part of the
configuration when the switch is rebooted, and are immediately available when the
switch completes startup. Static routes are never aged out of the routing table,
however, the Bidirectional Forwarding Detection (BFD) feature, can be used to bring
down static routes when the host link fails.
Without BFD, static routes always remain operationally active because there is no
dynamic routing protocol to report network changes. This can lead to a black hole
situation, where data is lost for an indefinite duration. Because upper layer protocols are
unaware that a static link is not working, they cannot switch to alternate routes and
continue to use system resources until the appropriate timers expire.
With BFD, a static route is marked operationally inactive if the BFD session goes down.
Upper layer protocols can detect that the static route is down and take the appropriate
action.
A default route is a type of static route that identifies the default router interface to
which all packets are routed when the routing table does not contain a route to the
packet destination. A default route is also called a default gateway.
devices using ECMP static routes configured with ping protection to monitor the
health of these routes. Such servers or specialized devices do not require special
software to support Bidirectional Forwarding Detection (BFD), or IP routing protocols
such as OSPF, or proprietary protocols to provide keepalive messages. ExtremeXOS
uses industry-standard and required protocols ICMP/ARP for IPv4 to accomplish the
following automatically:
• Initially verify devices and activate their static routes, without waiting for inbound
user traffic, and without requiring configuration of device MAC addresses.
• Detect silent device outages and inactivate corresponding static routes.
• Reactivate static routes after device recovery, or hardware replacement with a new
MAC address.
Multiple Routes
When there are multiple, conflicting choices of a route to a particular destination, the
router picks the route with the longest matching network mask. If these are still equal,
the router picks the route using the following default criteria (in the order specified):
• Directly attached network interfaces
• Static routes
• ICMP redirects
• Dynamic routes
• Directly attached network interfaces that are not active.
You can also configure blackhole routes—traffic to these destinations is silently
dropped.
The criteria for choosing from multiple routes with the longest matching network mask
is set by choosing the relative route priorities.
Note
You can change the order of the relative priorities, but we recommend that you
only make changes if you are aware of the possible consequences.
Without IP route sharing, each IP route entry in the routing tables lists a destination
subnet and the next-hop gateway that provides the best path to that subnet. Every
time a packet is forwarded to a particular destination, it uses the same next-hop
gateway.
With IP route sharing, an additional ECMP table lists up to 2, 4, 8, 16, 32, or 64 next-hop
gateways (depending on the platform and feature configuration) for each route in the
routing tables. When multiple next-hop gateways lead to the same destination, the
switch can use any of those gateways for packet forwarding. IP route sharing provides
route redundancy and can provide better throughput when routes are overloaded.
The gateways in the ECMP table can be defined with static routes (up to 64 way), or
they can be learned through the OSPF, BGP, or IS-IS protocols (64-way for OSPFv2,
OSPFv3 (Open Shortest Path First version 3), and BGP; and 8-way for IS-IS). For more
information on the ECMP table, see ECMP Hardware Table on page 1568.
Note
BGP does not use ECMP by default, so if you require that functionality you
must explicitly issue the command configure bgp maximum-paths max-
paths with a value greater than 1.
You can dynamically choose between the existing ECMP hash method ("default") and
the “custom” hash method. Within each of these two hash methods, several hash
algorithm options are available to vary traffic distribution among multiple equal-cost
IP gateways.
Compressed Routes
Compressed routes allow you to reduce the number of routes that are installed in
the hardware routing tables. The switch uses hardware routing tables to improve
packet forwarding performance. The switch can use both hardware and software to
forward packets, but packet forwarding without software processing is faster. The
hardware routing tables have less storage space than the software, so compressed
routes conserve resources and improve scaling
The compressed route feature allows you to install less specific routes in the table,
when overlapping routes with same next-hop exist. This route pruning technique is
implemented as part of the Route Manager (RtMgr) process.
When a route is added, deleted or updated, the pruning algorithm is applied to see if
the new route and/or its immediate children can be compressed or uncompressed as
follows:
• If the parent node (immediate less specific route) of the newly added IP prefix has
the same gateway as the new IP prefix, the newly added prefix is compressed.
• If the gateways of the newly added IP prefix and its immediate children are the
same, the child nodes are compressed.
• If the gateways of the newly added IP prefix and its immediate children are not the
same, and the child nodes had been previously compressed, the child nodes are
uncompressed.
Exceptional Scenarios
Consider the routing table shown in Table 154. When a node does not have any best
route, children are uncompressed, if they were already compressed. Also this node is
uncompressed, if it had previously been compressed.
Table 154: Route Manager’s Table When There is No Best Route for a Node
Prefix Gateway Number of best Compressed?
paths
192.0.0.0/8 10.203.174.68 1 No
192.168.0.0/16 10.203.174.68 0 No
192.168.224.0/24 10.203.174.68 1 No
192.168.225.0/24 10.203.174.68 1 No
Table 155: Route Manager’s Table When a Node Contains Only a Multicast Route
Prefix Gateway Unicast/Multicast Compressed?
192.0.0.0/8 10.203.174.68 Unicast Route No
192.168.0.0/16 10.203.174.68 Multicast Route No
192.168.224.0/24 10.203.174.68 Unicast Route No
192.168.225.0/24 10.203.174.68 Unicast Route No
The nodes that have ECMP table entries are compressed only if the following
conditions are met; otherwise, potential sub-optimal forwarding occurs:
• The number of ECMP gateways for a given node must match the number of ECMP
gateways in its parent node.
• A given node’s set of gateways must match its parent’s set of gateways.
Table 156 shows how compression is applied for the nodes with ECMP table entries
when IP route sharing is enabled. Sample routes with ECMP table entries are taken
for illustration. The Reason field in the table provides information about why the
compression is applied or not applied for the node.
Origin(Ori): (b) BlackHole, (be) EBGP, (bg) BGP, (bi) IBGP, (bo) BOOTP
(ct) CBT, (d) Direct, (df) DownIF, (dv) DVMRP, (e1) ISISL1Ext
(e2) ISISL2Ext, (h) Hardcoded, (i) ICMP, (i1) ISISL1 (i2) ISISL2
(is) ISIS, (mb) MBGP, (mbe) MBGPExt, (mbi) MBGPInter, (mp) MPLS Lsp
(mo) MOSPF (o) OSPF, (o1) OSPFExt1, (o2) OSPFExt2
(oa) OSPFIntra, (oe) OSPFAsExt, (or) OSPFInter, (pd) PIM-DM, (ps) PIM-SM
(r) RIP, (ra) RtAdvrt, (s) Static, (sv) SLB_VIP, (un) UnKnown
(*) Preferred unicast route (@) Preferred multicast route
(#) Preferred unicast and multicast route
Flags: (B) BlackHole, (D) Dynamic, (G) Gateway, (H) Host Route
(L) Matching LDP LSP, (l) Calculated LDP LSP, (m) Multicast
(P) LPM-routing, (R) Modified, (S) Static, (s) Static LSP
(T) Matching RSVP-TE LSP, (t) Calculated RSVP-TE LSP, (u) Unicast, (U) Up
(f) Provided to FIB (c) Compressed Route
Mask distribution:
2 default routes 12 routes at length 8
1 routes at length 16 9 routes at length 24
2 routes at length 32
If IP route sharing is disabled, the first best route is installed in the hardware table, if
multiple best routes are available. Hence the compression algorithm considers the first
best route for ECMP cases. As shown in the following table, when IP route sharing is
disabled, all routes are compressed, except the first one in this case.
Table 158: Route Manager’s Table When IP Route Sharing is Disabled (continued)
Prefix Gateways Compressed?
20.2.10.0/24 Gw1: 30.1.10.1, Gw2: YES
60.1.10.1
20.3.10.0/24 Gw1: 30.1.10.1, Gw2: YES
50.1.10.1
20.4.10.0/24 Gw1: 30.1.10.1, Gw2: YES
50.1.10.1 Gw3: 60.1.10.1
20.1.10.44/32 Gw1: 30.1.10.1 Gw2: 50.1.10.1 YES
Origin(Ori): (b) BlackHole, (be) EBGP, (bg) BGP, (bi) IBGP, (bo) BOOTP
(ct) CBT, (d) Direct, (df) DownIF, (dv) DVMRP, (e1) ISISL1Ext
(e2) ISISL2Ext, (h) Hardcoded, (i) ICMP, (i1) ISISL1 (i2) ISISL2
(is) ISIS, (mb) MBGP, (mbe) MBGPExt, (mbi) MBGPInter, (mp) MPLS Lsp
(mo) MOSPF (o) OSPF, (o1) OSPFExt1, (o2) OSPFExt2
(oa) OSPFIntra, (oe) OSPFAsExt, (or) OSPFInter, (pd) PIM-DM, (ps) PIM-SM
(r) RIP, (ra) RtAdvrt, (s) Static, (sv) SLB_VIP, (un) UnKnown
(*) Preferred unicast route (@) Preferred multicast route
(#) Preferred unicast and multicast route
Flags: (B) BlackHole, (D) Dynamic, (G) Gateway, (H) Host Route
(L) Matching LDP LSP, (l) Calculated LDP LSP, (m) Multicast
(P) LPM-routing, (R) Modified, (S) Static, (s) Static LSP
(T) Matching RSVP-TE LSP, (t) Calculated RSVP-TE LSP, (u) Unicast, (U) Up
(f) Provided to FIB (c) Compressed Route
Mask distribution:
2 default routes 12 routes at length 8
1 routes at length 16 9 routes at length 24
2 routes at length 32
Route Origin distribution:
8 routes from Direct 18 routes from Static
The switch hardware provides the fast path, and the ExtremeXOS software provides
the routing management capabilities, including management of the hardware routing
tables. The software collects all routing information, manages the routes according to
the switch configuration, and stores the appropriate routes in the hardware routing
tables. When an IP unicast packet arrives and the destination IP address is not found in
the hardware route tables, it is routed by software. The software processing takes more
time than the fast path, so routing based on the software tables is called slow-path
routing.
All switches support slow-path routing (using software routing tables), so adding more
entries in the hardware routing table is a performance feature, which allows more
hosts to benefit from fast-path routing. To use the extended IPv4 host cache feature
effectively, it helps to understand how the hardware tables operate on the switches
that support this feature. The hardware forwarding tables controlled by this feature
store entries for the following:
• IPv4 local and remote hosts
• IPv4 routes
• IPv6 local hosts
• IPv6 routes
• IPv4 and IPv6 multicast groups
The extended IPv4 host cache feature works by customizing the forwarding table space
allotted to these components.
The extended IPv4 host cache feature relates to the four hardware forwarding tables
shown in Figure 223.
On most platforms, the L3 Hash table is smaller than the LPM tables. Because the L3
Hash table is the only table that can store IPv4 and IPv6 multicast entries and IPv6 local
hosts, and because of the way the L3 Hash table is populated, forwarding table capacity
and forwarding performance can be improved by allocating space for storing IPv4 local
and remote host entries in the LPM tables.
The extended IPv4 host cache feature specifically allows you to define the number of
entries that are reserved in the LPM tables for IPv4 and IPv6 routes. The unreserved
entries are available for IPv4 local and remote hosts. IPv4 hosts can also occupy unused
areas of the L3 Hash table, and when necessary, unused space in the reserved section
of the LPM tables. The maximum number of hosts that can be stored in the hardware
routing tables depends on the configuration and usage of the tables, but the number
of local IPv4 hosts and gateways is ultimately limited to the size of the Next Hop table
minus three reserved entries.
The ExtremeXOS software manages the content of the hardware tables based on the
configuration specified by the following commands:
IPv6 hardware and slowpath forwarding are supported on user-created Virtual Routers,
and IPv6 tunnels are only supported on VR-Default.
The size of the internal LPM tables, and the size of the L3 Hash and Next Hop tables are
fixed for some platforms. The following tables list the hardware capacity for each of the
tables shown in Figure 223 on page 1560.
The ExtremeSwitching 5520 series switches have hardware forwarding tables that can
be partitioned in a flexible manner. The ExtremeSwitching 5520 series switches have
the following configurable internal tables.
The ExtremeSwitching 5720 series switches have hardware forwarding tables that can
be partitioned in a flexible manner. The ExtremeSwitching 5720 5G models have the
following configurable internal tables.
The ExtremeSwitching 5720 10G models have the following configurable internal tables.
The Extreme 7520 and 7720 series switches have hardware forwarding tables that can
be partitioned in a flexible manner. These switches have the following configurable
internal tables.
Table 163: Extreme 7520, 7720 Hardware Routing Table Configuration Capacities for
Platforms with Configurable L3 Internal Tables
L3 Characteristic Internal Tables Configuration
l2-and-l3 more l3- more l2 more routes more routes
and-ipmc (ALPM) w/ (ALPM) w/
mask len. 64 mask len.
128
Max IPv4 Unicast in L3 Hash 84K 132K 16K 16K 16K
Max IPv6 Unicast in L3 Hash 56K 56K 8K 8K 8K
Next Hops for Underlay/ 56K 56K 56K 56K 56K
Normal
IPv4 routes (LPM entries in 16K 16K 16K 384K 256K
HW)
IPv6 routes (LPM entries in 8K 8K 8K 256K 32K
HW)
Table 163: Extreme 7520, 7720 Hardware Routing Table Configuration Capacities for
Platforms with Configurable L3 Internal Tables (continued)
L3 Characteristic Internal Tables Configuration
l2-and-l3 more l3- more l2 more routes more routes
and-ipmc (ALPM) w/ (ALPM) w/
mask len. 64 mask len.
128
IPv4 ARP entries in 78K 119K 44K 12K 12K
hardware with minimum
LPM routes (assumes 75%
utilization of L3 hash table)
IPv4 ARP entries in 63K 99K 12K 12K 12K
hardware with maximum
LPM routes (assumes 75%
utilization of L3 hash table)
IPv4 remote hosts in 116K 88K 44K 12K 12K
hardware with zero LPM
routes (assumes 75%
utilization of L3 hash table)
IPv6 host entries in 32K 56K 6K 6K 6K
hardware (assumes 75%
utilization of L3 hash table)
IP router interfaces 4094 4094 4094 4094 4094
IP multicast groups 8K 8K 8K 8K 8K
IP-multicast (s,v,g) entries 56K 104K 8K 8K 8K
(will depend on hash
utilization)
When configuring the extended IPv4 host cache feature, consider the following
guidelines:
• The default option configures the switch to store entries for local and remote IPv4
hosts in the LPM tables.
• The maximum option reserves all space in the LPM tables for IPv4 and IPv6 routes.
This option provides the maximum storage for IPv4 and IPv6 routes when you do
not expect to store many IPv4 and IPv6 multicast and IPv6 hosts in the L3 Hash
table.
Note
If no IPv4 route is found in the LPM table and IPv4 unicast packets are slow-
path forwarded for a given remote host, an IPv4 entry is created for the remote
host in either the L3 hash table or LPM table. The hardware does not cache
entries for remote IPv6 hosts, so IPv6 routes take precedence over IPv4 routes.
The ExtremeXOS software populates the hardware tables with IPv4 host entries by
searching for available space in the following sequence:
The L3 Hash table is named for the hash function, which stores host and multicast
entries based on an algorithm applied to the host IP address or multicast tuple (Source
IP, Group IP, VLAN ID). The hash table stores entries in groups of 8 or 16 (depending
on the hardware), and these groups are called buckets. When a bucket is full, any
additional host or multicast addresses that map or hash to that bucket cannot be
added. Another benefit of the extended IPv4 host cache feature is that you can reduce
these conflicts (or “hash table collisions”), by making room for IPv4 hosts in the LPM
table and reducing demand for the L3 Hash table.
A hardware-based aging mechanism is used to remove any remote IPv4 host entries
that have not had IPv4 unicast packets forwarded to them in the previous hour. (Note
that remote IPv4 hosts only need to be cached when all IPv4 routes do not fit within
the number of routes reserved.) Aging helps to preserve resources for the hosts that
are needed most. In a SummitStack, aging is performed independently for each stack
node based on the ingress traffic for that node. Even with aging, it is still possible that
the Next Hop table, LPM table, or L3 Hash bucket do not have space to accept a new
host. In those cases, a least-recently used algorithm is used to remove the oldest host
to make space for the new host in hardware.
Local IPv4 host entries are only subject to hardware-based aging if there has been a
large amount of least-recently used replacement, indicating severe contention for HW
table resources. Otherwise, local IPv4 host entries are retained just as in ExtremeXOS
releases prior to 12.1, based on whether IP ARP refresh is enabled or disabled, and the
value for the configure iparp timeout command.
Note
Gateway entries are entries that represent routers or tunnel endpoints used to
reach remote hosts. Gateway entries are not aged and are not replaced by IPv6
hosts or multicast entries in the L3 Hash table or by any entries requiring space
in the Next Hop table. The software can move gateway entries from the LPM
table to the L3 Hash table to make room for new reserved routes.
Guidelines for calculating the number of routes to reserve are provided in the
ExtremeXOS Command Reference description for the following command:
The ECMP table contains gateway sets, and each gateway set defines the equal-cost
gateways that lead to a destination subnet. When IP route sharing is enabled, subnet
entries in the LPM table can be mapped to gateway set entries in the ECMP table,
instead of to a single gateway within the LPM table.
For improved ECMP scaling, each LPM table entry points to a gateway set entry in the
ECMP table. Each gateway set entry is unique and appears only once in the ECMP
table.
Each gateway set entry for the platforms listed above is unique and appears only once
in the ECMP table. Multiple LPM table entries can point to the same gateway set entry.
This efficient use of the ECMP table creates more room in the ECMP table for additional
gateway set entries. It also makes IP route sharing available to every entry in the LPM
table.
The following command allows you to configure the maximum number of next-hop
gateways for gateway sets in the ECMP table:
configure iproute sharing max-gateways max_gateways
Each gateway entry in a gateway set consumes ECMP table space. As the
max_gateways value decreases, the ECMP table supports more gateway sets. If you
configure the max_gateways value to 32, the switch supports route sharing through up
to 32 gateways per subnet, but supports the smallest number of gateway sets. If you do
not need to support up to 32 different gateways for any subnet, you can decrease the
max_gateways value to support more gateway sets.
To determine which gateways might be added to the ECMP table, consider how many
local gateways are connected to the switch and can be used for ECMP, and consider
the max_gateways value.
For example, suppose that you have four ECMP gateway candidates connected to the
switch (labeled A, B, C, and D for this example) and the max_gateways option is set
to 4. For platforms that allow a gateway set entry to support multiple subnets, this
configuration could result in up to 11 gateway sets in the ECMP table: ABCD, ABC, ABD,
ACD, BCD, AB, AC, AD, BC, BD, and CD.
If there are 4 gateways and you set max-gateways to 4, you can use the choose
mathematical function to calculate the total number of gateway set possibilities as
follows:
(4 choose 4) + (4 choose 3) + (4 choose 2) = 11
To calculate the number of gateway set possibilities for a given number of total
gateways and a specific max-gateways value, use the choose function in the following
formula:
(TGW choose MGW) + (TGW choose MGW-1) + ... + (TGW choose 2) = TGWsets
In the formula above, TGW represents the total local gateways, MGW represents the
max_gateways value, and TGWsets represents the total gateway sets needed to support
all possible shared paths.
To see if your platform supports the total gateway sets needed, do the following:
• Calculate the total ECMP gateway sets possible as described above.
• Compare your result to the IP route sharing (total combinations of gateway sets)
capacities listed in the ExtremeXOS Release Notes to verify that the switch can
support the desired number of gateway sets.
If the ECMP table is full, no new gateway sets can be added, and IP forwarding is still
done in hardware through one of the following:
• For platforms that allow a gateway set entry to support multiple subnets, forwarding
can be done using an existing gateway set that is a partial subset of the unavailable
gateway set. If the unavailable gateway set consists of N gateways, the subset used
could include a range of gateways from N-1 gateways down to a single gateway.
For example, if the ECMP table does not have room for a new gateway set using
gateways E, F, G, and H, a partial subset such as EFG, EF, or E will be used.
• For platforms that require one gateway set entry per subnet, forwarding is done
through a single gateway.
Note
If you define a default route and subsequently delete the VLAN on the subnet
associated with the default route, the invalid default route entry remains. You
must manually delete the configured default route.
Note
Tracert might not always work if inter-VR routing is configured in one of the
hops to the destination.
Note
When inter-vr routing is configured the gateway address should be different
from VLAN IP of the switch and it should be reachable (ARP resolved) from
the switch.
The gateway address cannot be loop back address or any local address. A static
route's next-hop (gateway) must be associated with a valid IP subnet and cannot use
the same IP address as a local VLAN. An IP subnet is associated with a single VLAN
by its IP address and subnet mask. If the VLAN is subsequently deleted, the static
route entries using that subnet must be deleted manually.
For Inter-VR routing, the egress VLAN name specified in the static route command
may be a VLAN belonging to a VR different from the VR of the static route itself.
When the VRs differ, Inter-VR routing of hardware and software forwarded packets is
performed.
This command can enable or disable BFD protection for one static route. However,
this protection is not provided until the BFD client is enabled at each end of the
route with the following command:
enable iproute bfd {gateway} ip_addr {vr vrname}
• To disable BFD protection for a static route, use the following command:
disable iproute bfd {gateway} ip_addr {vr vrname}
collisions, and reduces slowpath forwarding of IP unicast and multicast traffic. For more
information, see “Hardware Routing Table Management” on page 1262.
• To configure the number of IP routes to reserve in the LPM hardware table, use the
command:
configure iproute reserved-entries [ num_routes_needed | maximum |
default ] slot [all | slot_num]
• To display the current configuration for IP route reserved entries, use the command:.
show iproute reserved-entries {slot slot_num}
• To display the hardware table usage for IP routes, unicast and multicast, use the
command:
show iproute reserved-entries statistics {slot slot_num }
For guidelines on managing the number of gateways, see ECMP Hardware Table on
page 1568.
• To enable route sharing, use the following command:
enable iproute {ipv4} sharing {{vr}vrname
• To disable route sharing, use the following command:
disable iproute {ipv4} sharing {{vr} vrname
When you enable or disable route compression, that process is performed in chunks,
rather than as one single processing event. Because the ExtremeXOS Route Manager
processes a limited number of IP prefixes per second, route compression should not
have any significant impact on performance. Likewise, when IP route compression is
enabled, incremental route addition or deletion should not have a significant impact on
performance.
Note
You should disable iproute compression if MPLS (Multiprotocol Label
Switching) next hop is enabled on the switch.
Note
IP route compression is enabled by default.
or
or
Viewing IP Routes
Use the show iproute command to display the current configuration of IP unicast
routing for the switch and for each VLAN. The show iproute command displays the
currently configured routes and includes how each route was learned.
show iparp stats [vlan {all {vr vr_name}} | {vlan} vlan_name] {no-
refresh}
Flags: (B) BlackHole, (D) Dynamic, (G) Gateway, (H) Host Route
(m) Multicast, (P) LPM-routing, (R) Modified, (S) Static
(u) Unicast, (U) Up (c) Compressed
Mask distribution:
19 routes at length 8 9 routes at length 9
9 routes at length 10 28 routes at length 11
• Display an iproute summary using the following command: show iproute summary
Sample output:
=================ROUTE SUMMARY=================
Mask distribution:
1 routes at length 8 7 routes at length 24
1 routes at length 32
#
# Module rtmgr configuration.
#
disable iproute sharing
configure iproute priority mpls 20
.......
enable iproute compression ipv4 vr "VR-Default"
In this configuration, all IP traffic from stations connected to slots 1 and 3 have access to
the router by way of the VLAN Finance. Ports on slots 2 and 4 reach the router by way of
the VLAN Personnel. All other traffic (NetBIOS) is part of the VLAN MyCompany.
enable ipforwarding
enable rip
and maximum proxy entries are changed to a global single ARP/ND table-based
limits. For more information, see the Switch Engine Command References.
• ARP/ND entries may not be removed exactly when the timeout expires, since this
dictated by the Linux behavior. They can be removed before or after than the
configured timeout value.
• Any change in ARP timeout affects only newly learned entries. Existing entries are
still bound to old timeout value.
• Starting with ExtremeXOS 30.1, the maximum configurable limit for IP ARP and ND
maximum entries is changed to 157,696 and 49,152 respectively for all the switches.
A message appears if the configured value exceeds the theoretical hardware
maximum limit depending on the switch type.
• The output of show configuration fdb after upgrading to ExtremeXOS 30.1 is
different from the 22.5 output because of the changes in per VR-based IPARP
and ND configurations. For examples, see the Switch Engine Command
References.
Proxy ARP
Proxy Address Resolution Protocol (ARP) was first invented so that ARP-capable devices
could respond to ARP request packets on behalf of ARP-incapable devices. Proxy ARP
can also be used to achieve router redundancy and to simplify IP client configuration.
The switch supports proxy ARP for this type of network configuration.
ARP-Incapable Devices
• Configure the switch to respond to ARP requests on behalf of devices that are
incapable of doing so. Configure the IP address and MAC address of the ARP-
incapable device using the following command: .
configure iparp add proxy [ipNetmask | ip_addr {mask}] {vr vr_name}
{mac | vrrp} {always}
After it is configured, the system responds to ARP requests on behalf of the device as
long as the following conditions are satisfied:
• The valid IP ARP request is received on a router interface.
• The target IP address matches the IP address configured in the proxy ARP table.
• The proxy ARP table entry indicates that the system should answer this ARP request,
based on the ingress VLAN and whether the always parameter is set. When the
always option is set, the switch always responds to the ARP request even when the
ARP requester is on the same subnet as the requested host. If the always option is
not set, the switch only answers if the ARP request comes in from a VLAN that is not
on the same subnet as the requested host.
When all the proxy ARP conditions are met, the switch formulates an ARP response
using one of the following MAC addresses:
• A specific MAC address specified with the mac variable.
• The VRRP (Virtual Router Redundancy Protocol) virtual MAC address when the vrrp
option is specified and the request is received on a VLAN that is running VRRP.
• The switch MAC address when neither of the above options applies.
If an ARP request is received by the switch, it checks the ExtremeXOS proxy ARP table
(user adds the entries through the CLI). If it is present, an ARP reply is sent. If not
present, it searches for the entry in the kernel route table. If this IP address is reachable,
then the ARP reply is sent. The default behavior is for the switch to reply to ARP
requests on the specified VLAN(s) by proxy ARP only if proxy ARP entries have been
created.
reachable entry-required
(or command not
configured)
Entry present in proxy ARP Reply to ARP request Reply to ARP request
Table (static entry added
through command configure
iparp add ip_addr {vr
vr_name} mac )
Static entry not present in proxy Reply to ARP request if No reply to ARP request
ARP table route is reachable
No static entry, but route Reply to ARP request
reachable.
No static entry and route is not No reply to ARP request
reachable
Static entry present and route is Reply to ARP request
reachable
No static entry and route is not No reply to ARP request
reachable
Route reachable Reply to ARP request
Route not reachable No reply to ARP request
Supported Platforms
All ExtremeSwitching Universal switches.
Limitations
• No support of SNMP.
• For this feature the statistics of ARP send “Out Response” is incremented.
To configure proxy ARP support for reachable routes, use the command:
To view the status for proxy ARP reachable routes on a VLAN, use the command:
When the IP host tries to communicate with the host at address 100.101.45.67, the IP
host communicates as if the two hosts are on the same subnet, and sends out an IP
ARP request. The switch answers on behalf of the device at address 100.101.45.67, using
its own MAC address. All subsequent data packets from 100.101.102.103 are sent to the
switch, and the switch routes the packets to 100.101.45.67.
IPv4 Multinetting
IP multinetting refers to having multiple IP networks on the same bridging domain (or
VLAN). The hosts connected to the same physical segment can belong to any one of
the networks, so multiple subnets can overlap onto the same physical segment. Any
routing between the hosts in different networks is done through the router interface.
Typically, different IP networks are on different physical segments, but IP multinetting
does not require this.
Multinetting in ExtremeXOS does not require that you create a dummy multinetting
protocol, and does not require that you create VLANs for each IP network. This
implementation does not require you to explicitly enable IP multinetting. Multinetting
is automatically enabled when a secondary IP address is assigned to a VLAN.
Multinetting Topology
For an IP multinetted interface, one of the IP networks on the interface acts as the
transit network for the traffic that is routed by this interface. The transit network is
the primary subnet for the interface. The remaining multinetted subnets, called the
secondary subnets, must be stub networks. This restriction is required because it is not
possible to associate the source of the incoming routed traffic to a particular network.
IP routing happens between the different subnets of the same VLAN (one arm routing)
and also between subnets of different VLANs.
When multinetting is configured on a VLAN, the switch can be reached using any of
the subnet addresses (primary or secondary) assigned to VLAN. This means that you
can perform operations like ping, Telnet, Trivial File Transfer Protocol (TFTP), Secure
Shell 2 (SSH2), and others to the switch from a host residing in either the primary or
the secondary subnet of the VLAN. Other host functions (such as traceroute) are also
supported on the secondary interface of a VLAN.
For example, if a switch multinets the subnets 10.0.0.0/24 and 20.0.0.0/24 (with VLAN
IP addresses of 10.0.0.1 and 20.0.0.1), and generates an ARP request for the IP address
10.0.0.2, then the source IP address in the ARP packet is set to 10.0.0.1 and not to 20.0.0.1.
Route Manager
The Route Manager installs a route corresponding to each of the secondary interfaces.
The route origin is direct, is treated as a regular IP route, and can be used for IP data
traffic forwarding.
These routes can also be redistributed into the various routing protocol domains if you
configure route redistribution.
IRDP
Some functional changes are required in Internet Router Discovery Protocol (IRDP) to
support IP multinetting. When IRDP is enabled on a Layer 3 VLAN, the ExtremeXOS
software periodically sends ICMP router advertisement messages through each subnet
(primary and secondary) and responds to ICMP router solicitation messages based on
the source IP address of the soliciting host.
For example, in the case of OSPF, the system treats each network as an interface, and
hello messages are not sent out or received over the non-primary interface. In this way,
the router link state advertisement (LSA) includes information to advertise that the
primary network is a transit network and the secondary networks are stub networks,
thereby preventing any traffic from being routed from a source in the secondary
network.
Interface-based routing protocols (for example, OSPF) can be configured on per VLAN
basis. A routing protocol cannot be configured on an individual primary or secondary
interface. Configuring a protocol parameter on a VLAN automatically configures the
parameter on all its associated primary and secondary interfaces. The same logic
applies to configuring IP forwarding, for example, on a VLAN.
subnets are advertised as stub networks in router LSAs. RIP also advertises secondary
subnets to its peers residing on the primary subnet.
This section describes the behavior of the Routing Information Protocol (RIP) in an IP
multinetting environment:
• RIP does not send any routing information update on the secondary interfaces.
However, RIP does advertise networks corresponding to secondary interfaces in its
routing information packet to the primary interface.
• Any inbound RIP control packets from secondary interfaces are dropped.
• Direct routes corresponding to secondary interfaces can be exported into the RIP
domain (by enabling export of direct routes), if RIP is not enabled on the container
VLAN.
This section describes a set of recommendations for using BGP with IP multinetting:
• Be careful of creating a BGP neighbor session with a BGP speaker residing in
secondary subnet. This situation can lead to routing loops.
• All secondary subnets are like stub networks, so you must configure BGP in such a
way that the BGP next hop becomes reachable using the primary subnet of a VLAN.
• When setting the BGP next hop using an inbound or outbound policy, ensure that
the next hop is reachable from the primary interface.
• A BGP static network's reachability can also be resolved from the secondary subnet.
• Secondary interface addresses can be used as the source interface for a BGP
neighbor.
• Direct routes corresponding to secondary interfaces can be exported into the BGP
domain (by enabling export of direct routes).
IGMP accepts membership information that originates from hosts in both the primary
and secondary subnets. The following describes the changes in behavior of IGMP in an
IP multinetting environment:
• A Layer 3 VLAN always uses the primary IP address as the source address to send out
an IGMP query, and querier election is based on the primary IP address of interface.
Because the RFC dictates that there is only one querier per physical segment, the
querier may be attached to any of configured IP interfaces, including secondary
interfaces, although this is not a recommended configuration.
• For a static IGMP group, the membership report is also sent out using the primary IP
address.
• For local multicast groups such as 224.0.0.X, the membership report is sent out
using the first IP address configured on the interface, which is the primary IP
address in ExtremeXOS.
• The source IP address check is disabled for any IGMP control packets (such as IGMP
query and IGMP membership report). Source IP address checking for IGMP control
packet is disabled for all VLANs, not just the multinetted VLANs.
DHCP Server
The DHCP (Dynamic Host Configuration Protocol) server implementation in
ExtremeXOS only supports address allocation on the primary IP interface of the
configured VLAN. That is, all DHCP clients residing on a bridging domain have IP
addresses belonging to the primary subnet. To add a host on secondary subnet, you
must manually configure the IP address information on that host.
DHCP Relay
When the switch is configured as a DHCP relay agent, it forwards the DHCP request
received from a client to the DHCP server. When doing so, the system sets the GIADDR
field in the DHCP request packet to the primary IP address of the ingress VLAN. This
means that the DHCP server that resides on a remote subnet allocates an IP address
for the client in the primary subnet range.
VRRP
Virtual Router Redundancy Protocol (VRRP) protection can be provided for the primary
as well as for the secondary IP addresses of a VLAN. For multinetting, the IP address
assigned to an VRRP virtual router (VR) identifier (VRID) can be either the primary or
the secondary IP addresses of the corresponding VLAN.
To provide VRRP protection to such a VLAN, you must configure one of the following:
• Configure VRRP in VLAN v1 with two VRRP VRIDs. One VRID should have the
virtual IP address 10.0.0.1/24, and the other VRID should have the virtual IP address
20.0.0.1/24. The other VRRP router, the one configured to act as backup, should be
configured similarly.
—OR—
• Configure VRRP in VLAN v1 with two VRRP VRIDs. One VRID should have the virtual
IP address as 10.0.0.1/24, and the other VRID should have the virtual IP address as
20.0.0.1/24.
Assuming a VLAN v1 that has IP addresses 1.1.1.1/24 and 2.2.2.2/24, here are some more
examples of valid configurations:
• VRRP VR on v1 with VRID of 99 with virtual IP addresses of 1.1.1.2 and 1.1.1.3
• VRRP VR on v1 with VRID of 100 with virtual IP addresses of 2.2.2.3 and 2.2.2.4
• VRRP VR on v1 with VRID of 99 with virtual IP addresses of 1.1.1.98 and 1.1.1.99
• VRRP VR on v1 with VRID of 100 with virtual IP addresses of 2.2.2.98 and 2.2.2.99
Given the same VLAN v1 as above, here are some invalid configurations:
• VRRP VR on v1 with VRID of 99 with virtual IP addresses of 1.1.1.1 and 2.2.2.2 (the
virtual IP addresses are not on the same subnet)
• VRRP VR on v1 with VRID of 100 with virtual IP addresses of 2.2.2.2 and 1.1.1.1 (the
virtual IP addresses are not on the same subnet)
• VRRP VR on v1 with VRID of 99 with virtual IP addresses of 1.1.1.1 and 1.1.1.99 (one
virtual IP address is owned by the switch and one is not)
• VRRP VR on v1 with VRID of 100 with virtual IP addresses of 2.2.2.2 and 2.2.2.99 (one
virtual IP address is owned by the switch and one is not).
After you have added a secondary IP address, you cannot change the primary IP
address of a VLAN until you first delete all the secondary IP addresses.
• To delete secondary IP addresses, use the following command:
configure vlan vlan_name delete secondary-ipaddress [ip_address | all]
IP Multinetting Examples
The following example configures a switch to have one multinetted segment (port 5:5)
that contains three subnets (192.168.34.0/24, 192.168.35.0/24, and 192.168.37.0/24).
Note
The secondary IP address of the super VLAN cannot be used for the sub VLAN
IP address range.
The following example configures a switch to have one multinetted segment (port 5:5)
that contains three subnets (192.168.34.0, 192.168.35.0, and 192.168.37.0). It also configures
a second multinetted segment consisting of two subnets (192.168.36.0 and 172.16.45.0).
The second multinetted segment spans three ports (1:8, 2:9, and 3:10). RIP is enabled on
both multinetted segments.
configure default delete port 5:5
create vlan multinet
configure multinet ipaddress 192.168.34.1
configure multinet add secondary-ipaddress 192.168.35.1
configure multinet add secondary-ipaddress 192.168.37.1
configure multinet add port 5:5
configure default delete port 1:8, 2:9, 3:10
create vlan multinet_2
configure multinet_2 ipaddress 192.168.36.1
configure multinet_2 add secondary-ipaddress 172.16.45.1
configure multinet_2 add port 1:8, 2:9, 3:10
configure rip add vlan multinet
configure rip add vlan multinet_2
enable rip
enable ipforwarding
DHCP/BOOTP Relay
The following sections describe how to use the DHCP/BOOTP Relay feature:
• Managing DHCP/BOOTP Relay on page 1586.
• Configuring the DHCP Relay Agent Option (Option 82) at Layer 3 on page 1587.
• Viewing the DHCP/BOOTP Relay Statistics and Configuration on page 1588.
Note
This section discusses DHCP/BOOTP relay operation at Layer 3. For information
on DHCP/BOOTP relay operation at Layer 2, see DHCP Snooping and Trusted
DHCP Server on page 1118.
BOOTP Relay agent of DHCPv6 relays the DHCPv6 messages between the server/client
across subnets of a larger IPv6 network.
A relay agent relays both messages from clients and Relay-forward messages from
other relay agents. When a relay agent receives a valid message, it constructs a new
Relay-forward message and option from the DHCP message received, then forwards
it to the next hop/server. The server responds with the corresponding IP address or
configuration through a Relay-Reply message to its peer, and thus to the client.
Note
If DHCP/BOOTP Relay is enabled on a per VLAN basis, make sure it is enabled
on both the client-side and server-side VLANs.
You can enable BOOTP Relay over VRFs and VPN-VRFs in the same manner as with
normal VRs. For more information about BOOTP Relay over L3VPN, see L3VPN BOOTP
Relay on page 1776.
Note
BOOTP Relay show commands do not increment DHCP Release counters
that are received from the client since DHCP release is hardware forwarded.
Counters are incremented for other options in these commands.
The DHCP relay agent option consists of two pieces of data, called sub-options. The first
is the agent circuit ID sub-option, and the second is the agent remote ID sub-option.
When the DHCP relay agent option is enabled on switches running ExtremeXOS, the
value of these sub-options is set as follows:
Agent circuit ID sub-option
The full circuit ID string uses the format <vlan_info>-<port_info>. You can use the
default values for vlan_info and port_info, or you can configure these values as
described later in this section.
Agent remote ID sub-option
Always contains the Ethernet MAC address of the relaying switch. You can display
the Ethernet MAC address of the switch by issuing the show switch command. You
can configure string up to 32 characters as agent remote ID option.
Note
For more general information about the DHCP relay agent information option,
refer to RFC 3046.
Note
When both ipsecurity DHCP option and bootprelay DHCP agent option are
configured, the Bootprelay DHCP agent option takes higher precedence.
• To view the DHCP relay agent option (Option 82) configuration, use the following
commands:
show bootprelay dhcp-agent information circuit-id port-information
ports all
show bootprelay dhcp-agent information circuit-id vlan-information
DHCP clients can now be dynamically assigned both public and private addresses
in an effort to reduce administrative overhead. ExtremeXOS can now configure the
BOOTPRelay agent to insert both primary and secondary address(es) of the client-
facing interface as a gateway address in the DHCP packet. At any given point in time,
the DHCP client can be assigned one IP address.
You can insert different addresses in the giaddr field (gateway address) in two different
ways:
• Parallel mode: the switch simultaneously relays multiple DHCP Discover packets,
each containing a different IP address as the gateway address. The relay agent
receives a DHCP Discover request from the DHCP client. The relay agent makes
multiple copies of this DHCP DISCOVER request, inserts each IP address of the
client-facing interface in the giaddr field (gateway address) in each one of these
copies, and relays all these DHCP DISCOVER packets simultaneously to the DHCP
server.
The DHCP server has the responsibility to assign the correct IP address in the correct
subnet by choosing the DHCP DISCOVER packet to respond to. Similarly, the DHCP
client is responsible for accepting the appropriate DHCP OFFER from the DHCP
server.
Note
Only the DHCP DISCOVER request is sent in multiple copies, with different
IP addresses as the gateway address in each. All other DHCP packets are
relayed normally.
• Sequential mode: the switch relays a DHCP DISCOVER packet for each IP address
sequentially.
The relay agent receives a DHCP DISCOVER request and inserts the primary address
of the client-facing interface as the gateway address, and relays this packet to
the server. The switch counts the number of times a DHCP client sends out a
DHCP request without receiving a DHCP OFFER message. After three retries, the
relay agents sets the secondary address as the gateway address in the next DHCP
Discover request that gets relayed. If the DHCP server still does not respond after
three retries, the next secondary address is used as the gateway address, and so on
cyclically.
◦ show bootprelay
◦ show bootprelay ipv6
◦ show bootprelay configuration ipv4
◦ show bootprelay configuration ipv6
Supported Platforms
This feature is supported on all platforms.
The following rules apply to UDP broadcast packets handled by this feature:
• If the UDP profile includes BOOTP or DHCP, it is handled according to guidelines
specified in RFC 1542.
• If the UDP profile includes other types of traffic, these packets have the IP
destination address modified as configured, and changes are made to the IP and
UDP checksums and TTL field (decrements), as appropriate.
If UDP Forwarding is used for BOOTP or DHCP forwarding purposes, do not configure
or use the existing bootprelay function. However, if the previous bootprelay functions
are adequate, you may continue to use them.
Note
When using udp-profile to forward dhcp request, the behavior will be different
from bootprelay. Where bootprelay will forward the dhcp packet with the
client vlan IP as source IP, udp-profile will forward the dhcp packet with the
source IP of the egress vlan towards the destination server.
UDP Forwarding only works across a Layer 3 boundary and currently, UDP
Forwarding can be applied to IPv4 packets only, not to IPv6 packets.
Note
In ExtremeXOS 22.6 and earlier, IPv4 UDP broadcast packets are forwarded to
the destination IP address as configured in UDP policy without performing
enable ipforwarding on the action VLAN. Starting with ExtremeXOS 30.1,
IPv4 UDP broadcast packets are forwarded to destination IP address as
configured in UDP policy only if enable ipforwarding is enabled on the
action VLAN.
You can apply a UDP Forwarding policy only to an L3 VLAN (a VLAN having at least
one IP address configured on it). If no IP address is configured on the VLAN, the
command is rejected.
UDP profiles are similar to ACL (Access Control List) policy files.UDP profiles use
a subset of the match conditions allowed for ACLs. Unrecognized attributes are
ignored. A UDP forwarding policy must contain only the following attributes:
◦ Match attributes
▪ Destination UDP port number (destination-port)
▪ Source IP address (source-ipaddress)
◦ Action modified (set) attributes
▪ Destination IP address (destination-ipaddress)
▪ VLAN name (vlan)
Policy files used for UDP forwarding are processed differently from standard policy
files. Instead of terminating when an entry’s match clause becomes true, each entry
in the policy file is processed and the corresponding action is taken for each true
match clause.
For example, if the following policy file is used as a UDP forwarding profile, any
packets destined for UDP port 67 are sent to IP address 20.0.0.5 and flooded to VLAN
to7:
entry one {
if match all {
destination-port 67 ;
} then {
destination-ipaddress 20.0.0.5 ;
}
}
entry two {
if match all {
destination-port 67 ;
} then {
vlan "to7" ;
}
}
If you include more than one VLAN set attribute or more than one destination-
ipaddress set attribute in one policy entry, the last one is accepted and the rest are
ignored.
Note
Although the XOS policy manager allows you to set a range for the
destination-port, you should not specify the range for the destination-port
attribute in the match clause of the policy statement for the UDP profile. If
a destination-port range is configured, the last port in the range is accepted
and the rest are ignored.
You can have two valid set statements in each entry of a UDP forwarding policy;
one a destination-ipaddress and one a VLAN. The ExtremeXOS software currently
allows a maximum of eight entries in a UDP forwarding policy, so you can define
a maximum of 16 destinations for one inbound broadcast UDP packet: eight IP
addresses and eight VLANs.
Note
It is strongly advised to have no more than eight entries in a UDP
forwarding profile. The UDP forwarding module processes those entries
even if the entries do not contain any attributes for UDP forwarding. Having
more than eight entries drastically reduces the performance of the system.
If the inbound UDP traffic rate is very high, having more than eight entries
could cause the system to freeze or become locked.
If you rename a VLAN referred to in your UDP forwarding profile, you must
manually edit the policy to reflect the new name, and refresh the policy.
You can also validate whether the UDP profile has been successfully associated with
the VLAN by using the show policy command. UDP Forwarding is implemented as
part of the netTools process, so the command does display netTools as a user of the
policy.
• To remove a policy, use the none form of the following command:
configure vlan vlan_name udp-profile [profilename | none]
For more information about creating and editing policy files, see Chapter 17, “Policy
Manager.” For more information about ACL policy files, see Chapter 18, “ACLs.”
IP Broadcast Handling
The ExtremeXOS software supports IP subnet directed broadcast forwarding. In the
ExtremeXOS software, IP subnet directed broadcast forwarding is done in the software
by default; if you want to perform forwarding in the hardware, see the command
reference pages on IP forwarding in the Switch Engine Command References.
For the first example, a system sends an IP packet (such as the IP packet generated
by the ping command) to an IP subnet directed broadcast address which is directly
connected to that system. In this case, the IP packet goes out as a Layer 2 broadcast
with the destination media access control (DMAC) addresses all set to FF, while the
source media access control (SMAC) is set to the system MAC. This packet is sent out of
all the ports of the VLAN.
In the second example, a system sends a packet (such as the IP packet generated
by the ping command) to an IP subnet directed broadcast address which is remotely
connected through a gateway. In this case, the IP packet goes out as a Layer 2 unicast
packet with the DMAC equal to the gateway's MAC address, while the SMAC is set to
the system MAC. At the gateway router, the existing IP packet forwarding mechanism
is sufficient to send the packet out of the correct interface if the router is not the final
hop router.
When the packet reaches the final hop router, which is directly connected to the target
IP subnet, IP directed broadcast forwarding needs to be turned on.
The IP broadcast handling feature is applicable only at the final hop router directly
attached to the target subnet. At the final hop router, when IP subnet directed
broadcast forwarding is enabled on an IP VLAN via the command line, the following
happens:
• Some basic validity checks are performed (for example, a check to see if the VLAN
has IP enabled)
• A subnet broadcast route entry for the subnet is installed. For example, consider a
system with the following configuration:
If you enable IP directed broadcast forwarding on VLAN-A, you should install a route
entry for 10.1.1.255 on this system.
• A packet arriving on port 1:5 VLAN-B with destination IP (DIP) set to 10.1.1.255, the
source IP (SIP) set to 20.1.1.3, the DMAC set to the router MAC, and the SMAC set to
the originating system MAC, arrives at the installed route entry and is sent out on all
the ports of VLAN-A, with DMAC set to be all FF and the SMAC set to the router's
system MAC.
• An IP packet arriving on port 1:1 VLAN-A with the DIP set to 10.1.1.255, the SIP set
to 10.1.1.3, the DMAC set to all FF, and the SMAC set to the originator’s MAC, causes
Layer 2 flooding on all ports of VLAN-A.
Note
IP subnet directed broadcast uses fast-path forwarding.
VLAN Aggregation
VLAN aggregation is a feature aimed primarily at service providers.
Note
This feature is supported only on the platforms listed for this feature in the
license tables in the Switch Engine Licensing Guide document.
Using VLAN aggregation, a superVLAN is defined with the desired IP address. The
subVLANs use the IP address of the superVLAN as the default router address. Groups
of clients are then assigned to subVLANs that have no IP address, but are members of
the superVLAN. In addition, clients can be informally allocated any valid IP addresses
within the subnet. Optionally, you can prevent communication between subVLANs
for isolation purposes. As a result, subVLANs can be quite small, but allow for growth
without re-defining subnet boundaries.
Without using VLAN aggregation, each VLAN has a default router address, and you
need to use large subnet masks. The result of this is more unused IP address space.
Note
Also, for super VLANs/SubVLAN, to assign an IP address, any trunk port
added to a super VLAN needs to be enabled for DHCP server.
Note
The isolation option works for normal, dynamic, ARP-based client
communication.
Note
The above command has no impact on Layer 3 traffic.
Traditional NAT allows hosts within a private network to transparently access hosts in
the external network. In a traditional NAT, sessions are uni-directional. Internal network
hosts typically initiate sessions to external servers using public addresses. When hosts
in a private network initiate a session to an external server, the NAT router detects
packets as they cross realms and installs address mappings for the session. After the
session is established, the two hosts can communicate transparently with the help of
NAT. There are three variations to traditional NAT:
• Basic static source NAT
• Dynamic source Network Address Port Translation (NAPT)
• Static destination NAPT
Note
See Feature License Requirements for supported platforms.
Do not use the primary IP address of the “out” VLAN for translation. The NAT router
cannot differentiate if the traffic has to be translated and routed, or if it is destined to
the NAT router and has to be processed.
Add the translation IP as a secondary address to the “out” VLAN. This secondary IP
should never be used by any other protocols like BGP or OSPF. The translated IP
address for each rule has to be unique for source NAT.
Each VLAN can have 254 secondary IP addresses. If secondary IP addresses are used
for translation, the number of source NAT rules is limited to 254 times the number of
egress NAT VLANs.
addresses. This translation mechanism allows multiple hosts in the private network to
share a single external address.
In the example shown in Figure 227 on page 1598, there are two address domains. The
address domain 10.1.1.0/24 on the NAT router is an internal IP domain and the address
domain 20.1.1.0/24 is an external (public) domain. The NAT router has only one valid
Internet IP address for all the internal hosts to share. The NAT router maintains a NAT
table that maps {Internal IP, IP protocol, L4 port} tuple to the the {global IP, IP protocol,
modified L4 port} tuple, and vice versa.
The administrator has to configure a base NAPT rule giving the range of input IP
addresses to be translated and the external IP to which these have to be translated.
For each of the new flows that do not have a NAT rule setup in the hardware, a “NAT
miss” is generated and the packets are lifted to the CPU. The application picks up an
unused port number and programs the hardware with a dynamic NAT rule. After this,
NAT translations happen in hardware.
Figure 229 depicts the translations that happen with NAPT for two hosts with IP
addresses of 10.1.1.1 and 10.1.1.2. Host A is sending TCP packets destined to TCP port 1000
on Host X (30.1.1.1). Host B is sending UDP packets destined to UDP port 2000 on Host X
(30.1.1.1).
In Figure 227 on page 1598, if Host X (30.1.1.1) wants to access the HTTP service on Host
B (10.1.1.2), it has to send the traffic through the NAT router. A port is configured on the
NAT router to redirect the traffic towards the internal host. Remote Host X has to use
the IP address of NAT router along with this configured port number.
If the translation port is configured as 8080, the translations that happen in the packet
are shown in Figure 230.
enable ip nat
disable ip nat
Note
All modes of NAT including destination NAPT should have the public VLAN
configured as egress VLAN.
Note
The rule is programmed in hardware only when global NAT and the NAT rule
are enabled.
Note
The rule configuration can be changed only when the rule is not enabled.
show ip nat
Note
NAT can be configured on 4 VLANs.
Note
1024 NAT rules are supported.
The following configuration is used to create a rule to translate source IP address from
10.20.30.40 to 121.144.169.196. The ingress VLAN is present in VR "VR-user-in" and the
egress VLAN “internetVlan” is present in VR "VR-Internet".
# create ip nat rule ipOnlyRule type source-nat
# configure ip nat rule ipOnlyRule source 10.20.30.40/32 source-vr VR-user-in new-source
121.144.169.196
# configure ip nat rule ipOnlyRule egress vlan internetVlan
To remove the IP address configuration, you can use the following command:
# configure ip nat rule ipOnlyRule source none
The following configures a base Network Address Port Translation (NAPT) rule where
flows from the 10.0.0.0/8 subnet have the source IP address translated to 121.144.169.196.
The L4 port number is generated internally to identify the flow:
# create ip nat rule naptRule type napt
# configure ip nat rule naptRule egress vlan internetVlan
# configure ip nat rule naptRule source 10.0.0.0/8 source-vr VR-user-in new-source
121.144.169.196
If there are flows from two hosts with IP addresses, for example, 10.1.1.214 and 10.6.9.12,
two dynamic rules with names that start with SYS_NAT_RULE_XXX are created and
programmed in the hardware.
Limitations
NAT is not supported for the following: VXLAN tenant VLANs, MPLS service VLANs, MAC
based VLANs, Netlogin VLANs, VPEX switches.
This chapter assumes that you are already familiar with IPv6 unicast routing. If not, refer
to the following publications for additional information:
• RFC 2460—Internet Protocol, Version 6 (IPv6) Specification
• RFC 4291—IP Version 6 Addressing Architecture
For IPv6 PIM support, see Multicast Routing and Switching on page 1866.
Note
For more information on interior gateway protocols, see RIPng or IPv6 Unicast
Routing.
The ExtremeXOS software can provide both IPv4 and IPv6 routing at the same time.
Separate routing tables are maintained for the two protocols. Most commands that
require you to specify an IP address can now accept either an IPv4 or IPv6 address
and act accordingly. Additionally, many of the IP configurations, enabling, and display
commands have added tokens for IPv4 and IPv6 to clarify the version for which the
command applies. For simplicity, existing commands affect IPv4 by default and require
you to specify IPv6, so configurations from an earlier release will still correctly configure
an IPv4 network.
ACLs and routing policies also support IPv6. Use of an IPv6 address in a rule entry will
automatically use IPv6.
Router Interfaces
The routing software and hardware routes IPv6 traffic between router interfaces. A
router interface is either a virtual LAN (VLAN (Virtual LAN)) that has an IP address
assigned to it, or a Layer 3 tunnel.
As you create VLANs and tunnels with IP addresses, you can also choose to route
(forward traffic) between them. Both the VLAN switching and IP routing function occur
within the switch.
IPv4 and IPv6 interfaces can coexist on the same VLAN, allowing both IPv4 and IPv6
networks to coexist on the same Layer 2 broadcast domain.
Note
Each IP address and mask assigned to a VLAN must represent a unique IP
subnet. You cannot configure the same IP address and subnet on different
VLANs within the same virtual router (VR).
Tunnels
The ExtremeXOS software supports Layer 3 tunnels, which serve as a transition option
(6in4 and 6to4 tunnels only), as networks change over from IPv4 to IPv6. The software
supports these tunnels in Default-VR.
Note
IPv6 tunnels are supported only in Default-VR.
A 6in4 tunnel connects one IPv6 region to one other IPv6 region.
Multiple 6in4 tunnels can be configured on a single router to connect with multiple
IPv6 regions. Dynamic and static routing can be configured across a 6in4 tunnel. Hosts
in the IPv6 regions need not know anything about the configured tunnel, since packets
destined for remote regions are sent over the tunnel like any other type of routing
interface.
A 6to4 tunnel connects one IPv6 region with multiple IPv6 regions. Only one 6to4
tunnel can be configured on a single router.
For example, the 128 bits of the address can be represented by eight, four-digit
hexadecimal numbers separated by colons:
2000:af13:ee10:34c5:800:9192:ba89:2311
3f11:5655:2300:304:0000:0000:7899:acde
There is a special use of a double colon (::) in an address. The double colon stands for
one or more groups of 16 bits of zeros and can only be used once in an address. For
example, the following addresses:
fe80:0:0:0:af34:2345:4afe:0
fe80:0:0:111:0:0:0:fe11
3c12:0:0:0:0:89:ff:3415
fe80::af34:2345:4afe:0
fe80:0:0:111::fe11
3c12::89:ff:3415
Additionally, you can specify an address in a mixed IPv4/IPv6 mode that uses six, four-
digit hexadecimal numbers for the highest-order part of the address, and uses the IPv4
dotted decimal representation for the lowest-order remaining portion.
For example:
0:0:0:0:0:0:192.168.1.1
0:0:0:0:0:ffff:10.0.14.254
::192.168.1.1
::ffff:10.0.14.254
The IPv6 address configuration can be verified using the following commands:
Scoped Addresses
IPv6 uses a category of addresses called link-local addresses that are used solely on
a local subnet. Every IPv6 VLAN must have at least one link-local address. If a global
IP address is configured on a VLAN that has no link-local address, one is assigned
automatically by the switch. The link-local addresses start with the prefix fe80::/64. As
a result, a switch can have the same link local address assigned to different VLANs,
or different neighbors on different links can use the same link local address. Because
of this, there are cases where you need to specify an address and a VLAN/tunnel to
indicate which interface to use. For those cases, you can indicate the interface by using
a scoped address. To scope the address, append the VLAN/tunnel name to the end
of the address, separated by a percent sign (%). For example, to indicate the link local
address fe80::2 on VLAN finance, use the following form:
fe80::2%finance
In IPv4, MAC address resolution is done by ARP. For IPv6, this functionality is handled
by NDP. The router maintains a cache of IPv6 addresses and their corresponding MAC
addresses and allows the system to respond to requests from other nodes for the MAC
address of the IPv6 addresses configured on the interfaces.
Also supported is router discovery—the ability to send out router advertisements that
can be used by a host to discover the router. The advertisements sent out contain the
prefixes and configuration parameters that allow the end nodes to auto-configure their
addresses. The switch also responds to requests from nodes for router advertisements.
You can configure the following values, that are advertised by the switch:
• Managed address configuration flag
• Other stateful configuration flag
• Link MTU
• Retransmit timer
• Current hop limit
• Default lifetime
• Reachable time
Additionally, you can configure the following values for each prefix on the prefix list
associated with an interface:
• Valid lifetime of the prefix
• On-link flag
Note
ExtremeXOS software does not support host processing of neighbor router
advertisements.
The above CLI command is the IPv6 version of the command to clear IPv6
neighbor discovery entries in the IPv6 neighbor table. An enhancement added
in ExtremeXOS 15.7 adds a refresh option so that when “clear neighbor-discovery
refresh” is executed, neighbor solicitation will be sent out for each neighbor in the
IPv6 neighbor discovery table and only active neighbors will be kept in the neighbor
discovery table after the command is completed,
The Recursive DNS Server (RDNSS) option contains the addresses of recursive DNS
servers, and the DNS Search List (DNSSL) option for the Domain Search List that
maintains parity with the DHCPv6 options, and ensures the necessary functionality to
determine the search domains.
The RDNSS option contains one or more IPv6 addresses of recursive DNS servers. All
of the addresses share the same lifetime value. If you wish to have different lifetime
values, you can use multiple RDNSS options.
The DNSSL option contains one or more domain names of DNS suffixes. All of the
domain names share the same lifetime value. If you wish to have different lifetime
values, you can use multiple DNSSL options.
The existing ND message (i.e., Router Advertisement) is used to carry this information.
An IPv6 host can configure the IPv6 addresses of one or more RDNSSs through RA
messages. Using the RDNSS and DNSSL options, along with the prefix information
option based on the ND protocol, an IPv6 host can perform the network configuration
of its IPv6 address and the DNS information simultaneously without needing DHCPv6
for the DNS configuration. The RA options for RDNSS and DNSSL can be used on any
network that supports the use of ND.
You can configure the RA options for DNS using the following commands:
The IPv6 Router Advertisement Filtering feature exposes the existing “icmp-type”
match criteria to allow IPv6 packets to match RAs and other IPv6 packets that use
the ICMPv6 protocol. This functionality provides the ability to flexibly detect certain
conditions and take appropriate actions based on network design and expectations.
Limitations
This feature has the following limitations:
• Only ingress ACL (Access Control List)s support the "icmp-type" match criteria for
IPv6 packets. This match criteria cannot be used with egress ACLs.
• The IPv6 extension header parsing varies per platform - see "Platforms Supported"
section for more detail
• The IPv6 source-address and destination-address, and the ethernet-source-address
and ethernet-destination-address fields cannot be matched in the same rule
without enabling “double-wide” mode. Double wide mode is not available on all of
the supported platforms and causes a 50% reduction of ACL hardware resources.
Supported Platforms
All ExtremeSwitching platforms are supported. However, no IPv6 extension headers can
be parsed while still matching the supplied ICMP (Internet Control Message Protocol)
type:
The exact field compatibility with this match criteria depends on the platform, but all
platforms are able to match the port and protocol (ICMPv6) in single wide mode. Using
double wide mode provides access to a 128-bit source address, or source MAC address,
for example. All of the above platforms support double wide mode at the expense of
reducing ACL scale by 50%. The XGS3 platforms do not support double wide mode at
all.
On platforms that support double wide mode, if the layer-2 device is unable to identify
whether the packet is an ICMPv6 Router Advertisement message, and the IPv6 Source
Address of the packet is a link-local address or is unspecified, the packet is blocked.
You can also use the new “icmp-type” to match other protocol cases such as MLD and
MLDv2.
CLI Commands
The existing ACL match criteria icmp-type type is exposed in dynamic ACLs and static
ACL policies on the target platforms. This same match criteria is already supported for
rules that specify IPv4 criteria on the target platforms.
Example Policy
Here is a policy to detect and log a “simple” RA attack, only allow TCP/UDP/ICMP/xyz
protocol traffic that can be parsed (i.e., has up to 2 extension headers and, if
fragmented, the L4 NH is contained in the first fragment), and deny everything else
including “complex” RA attacks:
entry disallow_and_log_RA_attacks
{
if
{protocol icmpv6;icmp-type 134;}
then
{ deny; mirror-cpu; log; count RA_attack;}}
entry allow_tcp
{
if {protocol tcp; first-fragments;}
then {permit;}}
entry allow_udp
{
if {protocol udp; first-fragments;}
then {permit;}}
entry allow_icmp
{
if {protocol icmpv6; first-fragments;}
then {permit;}}
entry allow_xyz…entry denyall
{
if{first-fragments; }
then
{
deny;}}
The above policy works for newer chipsets, but leaves (at least) the following exposure
for older chipsets: a malicious user could send an RA with a single extension header
and it would be allowed to pass due to rule “allow_icmp” (newer chipsets would block
this packet through the first rule). To mitigate this exposure on older chipsets, you
could call out each “icmp-type” that is supported (ND, MLD, etc.), and then drop any
ICMPv6 with an extension header.
When you configure an active interface with an IPv6 address, the interface must send
out an advertisement containing its address.
All other interfaces on the subnet have the opportunity to respond to the newly
configured interface, and inform it that the address is a duplicate. Only after this
process occurs, can the interface use the newly configured address. If the interface
receives a message that the newly configured address is a duplicate, it cannot use the
address.
Until the Duplicate Address Detection (DAD) process completes, the new address is
considered tentative, and will be shown as such in any display output. If the address
is a duplicate, it will also be labeled as such, and must be reconfigured. On an active
interface, the DAD process should occur so quickly that you would not see the address
labeled as tentative. However, if you are configuring an interface before enabling it,
and you display the configuration, you will see that the address is currently tentative.
As soon as you enable the interface, the address should be ready to use, or labeled as
duplicate and must be reconfigured.
See RFC 2462, IPv6 Stateless Address Autoconfiguration, for more details.
DAD Overview
When administratively enabled on a VR, Duplicate Address Detection (DAD) runs when
an IPv6 address is added to a VLAN, the VLAN transitions to an operational state, or
when the first valid link-local address is added to the VLAN.
DAD works by sending a neighbor solicitation for each IPv6 address configured on
a VLAN. If another device replies to the neighbor solicitations by sending neighbor
advertisements for any of these IPv6 addresses, the referenced IPv6 addresses are
marked duplicate and are not used. If no responses are received, the IPv6 addresses
become active and available for subsequent use. Once an IPv6 address becomes active,
DAD does not run again for that address unless that address is deleted and re-added,
the VLAN goes down and comes back up, or the first valid link-local address is added to
the VLAN.
IPv6 functionality requires at least one valid link-local address. If the last valid link-local
address is marked duplicate, all non-duplicate IPv6 addresses become tentative.
Configure DAD
• Enable or disable the DAD feature and configure feature operation.
configure ipv6 dad [off | on | {on} attempts max_solicitations] {{vr}
vr_name | vr all}
Note
For IPv6 interfaces, the DAD feature is automatically enabled on all
platforms that support the Edge (or higher) or Base (or higher) licenses.
Once routes are populated using the above method, IPv6 forwarding needs to be
enabled on the VLAN using the following command:
Note
If you define a default route and subsequently delete the VLAN on the subnet
associated with the default route, the invalid default route entry remains. You
must manually delete the configured default route.
Dynamic Routes
Dynamic routes are typically learned by way of RIPng, OSPFv3, BGP, or IS-IS, and
routers that use these protocols use advertisements to exchange information in their
routing tables. Using dynamic routes, the routing table contains only networks that are
reachable.
Dynamic routes are aged out of the table when an update for the network is not
received for a period of time, as determined by the routing protocol. For details on the
configuration and behavior of IPv6 dynamic routes, please refer to the specific Chapters
on RIPng, OSPFv3, and IS-IS in this guide.
Static Routes
Static routes are manually entered into the routing table. Static routes are used to
reach networks not advertised by routers.
• Static IPv6 routes can be created using the following command:
You can configure IPv6 default and blackhole routes. Traffic to blackhole routes is
silently dropped.
If you want all static routes to be advertised, redistribute the static routes using one
of the following commands:
or
or
The default setting is disabled. Static routes are never aged out of the routing table.
• A static route’s nexthop (gateway) must be associated with a valid IP subnet. An IP
subnet is associated with a single VLAN by its IP address and subnet mask. If the
VLAN is subsequently deleted, the static route entries using that subnet must be
deleted manually.
Multiple Routes
When there are multiple, conflicting choices of a route to a particular destination, the
router picks the route with the longest matching network mask. If these are still equal,
the router picks the route using the following default criteria (in the order specified):
• Directly attached network interfaces
• Static routes
• ICMP redirects
• Dynamic routes
• Directly attached network interfaces that are not active.
Note
If you define multiple default routes, the route that has the lowest metric is
used. If multiple default routes have the same lowest metric, the system picks
one of the routes.
The criteria for choosing from multiple routes with the longest matching network mask
is set by choosing the relative route priorities.
Note
Although these priorities can be changed, do not attempt any manipulation
unless you are expertly familiar with the possible consequences.
Of the 128 bits available in IPv6 address, the last 64-bits are used as the interface ID.
First 8 bits are used to define the known prefix FC00::/7 or FD00::/7
40 bits - global ID - Generated using a random algorithm specified in the RFC 4193.
ExtremeXOS expects the operator to specify the 40-bit Global ID as ULA address
management becomes easier, especially a mult-vendor environment.
There are no new CLI commands introduced to configure ULAs in ExtremeXOS. You can
use the following existing command to configure a ULA:
configure {vlan} vlan_name ipaddress [ipaddress {ipNetmask} |
ipv6-link-local | {eui64} ipv6_address_mask]
All applications treat these addresses in a similar manner as any other type of global
IPv6 unicast addresses.
For SummitStack and ExtremeSwitching series switches that support Layer 3 routing,
the ExtremeXOS software supports route sharing across up to 2, 4, 8, 16, or 32 next-hop
gateways.
or
Default routes are used when the router has no other dynamic or static route to the
requested destination.
4. Turn on IP routing for one or all VLANs using the following command:
enable ipforwarding ipv6 {vlan vlan_name | tunnel tunnel_name | vr
vr_name}
5. Configure the routing protocol, if required. For a simple network using RIPng, default
configuration might be acceptable.
6. Turn on RIPng or OSPFv3 using one of the following commands:
enable ripng
enable ospfv3
Note
BGP does not use ECMP by default, so if you require that functionality
you must explicitly issue the configure bgp maximum-paths max-paths
command with a value greater than 1.
Managing Tunnels
IPv6-in-IPv4 and IPv6-to-IPv4 tunnels are introduced in Tunnels on page 1606.
Delete a Tunnel
To delete a tunnel, use the command: delete tunnel tunnel_name
The configure forwarding external-tables command using the ipv6 and ipv4-and-ipv6
variables supports larger IPv6 route and host scaling in external LPM tables.
When an external LPM table is configured for l3-only ipv6, no IPv6 routes or IPv6 hosts
are configured in any of the internal hardware tables. This provides the highest IPv6
scale, and avoids contention with IP Multicast in the L3 Hash hardware table.
IPv6 hardware and slowpath forwarding are supported on user-created Virtual Routers,
and IPv6 tunnels are only supported on VR-Default.
The size of the internal LPM tables, and the size of the L3 Hash and Next Hop tables
are fixed. For specific information on hardware capacity, refer to the following table, the
following table, and the following table in IPv4 Unicast Routing on page 1546.
Sharing ECMP gateway sets now applies to IPv6 as well as IPv4. Sharing ECMP gateway
sets for IPv6 means the entire IPv6 Longest-Prefix Match (LPM) hardware capacity can
use ECMP, across up to 32 gateways.
Feature Description
This feature adds IPv6 ECMP support on all platforms.
Additionally, ExtremeXOS supports 16-way and 32-way ECMP for both IPv4 and IPv6
using static routes, and up to 8-way ECMP for IPv4 and IPv6 using routing protocols.
Now, the maximum number of gateways in each IPv4 or IPv6 gateway set in the ECMP
hardware table can be configured as 16 or 32.
Enterprise number
Remote ID
Once a relay agent receives one of the following messages from the client or relay
agent, the relay agent will verify if the specific interface has only the link local address:
• DHCPV6_SOLICIT
• DHCPV6_REQUEST
• DHCPV6_CONFIRM
• DHCPV6_RENEW
• DHCPV6_REBIND
• DHCPV6_RELEASE
• DHCPV6_DECLINE
• DHCPV6_INFORMATION_REQUEST
• DHCPV6_RELAY_FORW
• DHCPV6_LEASEQUERY
If so, it verifies if the specific VLAN has a remote-id configured. If a remote-id is present,
it is added to the packet along with the VLAN and port, in the format mentioned above.
If it is not configured, the default (switch MAC address) will be added as the remote id,
along with the VLAN and port.
On the reverse path, if it receives any of the following messages from the server or any
other relay agent, and if the interface has only a link local address, it will verify for the
presence of remote-id in the packet:
• DHCPV6_ADVERTISE
• DHCPV6_REPLY
• DHCPV6_RECONFIGURE
• DHCPV6_RELAY_FORW
• DHCPV6_LEASEQUERY_REPLY
If it is not present, the agent will check for the interface-id. If one of these is present, it
will verify if the value matches the local configuration. If it matches, after removing the
remote-id and/or interface-id, the packet will be forwarded to the respective client. If
the remote-id is present in the packet, and it does not match the configured value, the
packet will be dropped. If none of them are present, the packet will be forwarded to the
client, based on the IPv6 address of the VLAN.
is attached, and the delegating router does not require other information aside from
the identity of the requesting router to choose a prefix for delegation.
For example, these options would be used by a service provider to assign a prefix to a
Customer Premise Equipment (CPE) device acting as a router between the subscriber's
internal network and the service provider's core network.
This prefix delegation mechanism is appropriate for use by an ISP to delegate a prefix
to a subscriber, where the delegated prefix would possibly be sub-netted and assigned
to the links within the subscriber's network.
The requesting router now acts as a DHCP server for the subscriber network. It subnets
the delegated prefix and assigns the longer prefixes to links in the subscriber's network.
In a typical scenario based on the network shown in Figure 1, the requesting router
subnets a single delegated /48 prefix into /64 prefixes and assigns one /64 prefix to
each of the links in the subscriber network.
RFC 3633 says “If a delegating router communicates with a requesting router through
a relay agent (sitting in between the Aggregation device (PE) and the CPE), the
delegating router may need a protocol or other out-of-band communication to add
routing information for delegated prefixes into the provider edge router.”
The requesting router acts as a DHCPv6 server behind the CPE and assigns IPv6
subnets to the customer devices. Since there is no mechanism to notify the delegating
router about the IPv6 subnets assigned by the requesting router, the core routers have
no clue about these IPv6 subnets and therefore have no dynamic route added into
the routing tables in the core. RFC 3633 leaves it to the implementations to device a
mechanism to solve this problem.
When the ExtremeXOS DHCPv6 relay agent relays the DHCP messages with IA_PD
options and detects that a successful prefix delegation operation has been completed
and a prefix or a set of prefixes have been delegated, it installs one route for each
of prefixes that has been delegated. This ensures reachability between the customer
devices and the service provider network.
When ExtremeXOS DHCPv6 relay agent detects a successful DHCP prefix delegation
transaction (Solicit-Advertise-Request-Reply), it looks into the details of the prefix(es)
that are being delegated. Each DHCP message with IA_PD option can have multiple
IAPREFIX options in it. Each IAPREFIX option represents a prefix that is being
delegated.
ExtremeXOS DHCPv6 relay agent installs one route for each of the delegated prefixes.
The route is installed on the VLAN on which the requesting router (CPE) is reachable
and with the requesting router (CPE) as the gateway for the route, if the requesting
router is directly connected to our ExtremeXOS DHCPv6 Relay agent. If the DHCPv6
messages from the requesting router have been received via another DHCPv6 Relay
agent, the route is installed with the next hop DHCPv6 Relay agent as the gateway. If
the DHCPv6 packets from the next hop DHCPv6 Relay agent have been IPv6 forwarded
via other routers in between (which did not do DHCPv6 Relay, but just IPv6 forwarding),
the next hop router to reach the next hop DHCPv6 Relay agent is used as the gateway
for the route. ExtremeXOS DHCPv6 Relay uses Route Manager (rtMgr) client library APIs
for adding and deleting these routes.
To ensure that the routes are retained across reboots (or restart process netTools),
ExtremeXOS DHCPv6 relay agent stores these routes along with their validity times
in an internal file. After a reboot, ExtremeXOS DHCPv6 relay agent reads this file and
installs the routes once again. This file will be a flat file with the following format:
vlanName ipv6Prefix ipv6GatewayAddr startTime validTime.
Only those IPv6 prefixes which are still valid after the reboot are added again. The
expired IPv6 prefixes are discarded. As the file format denotes, this file contains the
details about the VLAN, the actual delegated IPv6 prefix, the IPv6 Gateway Address,
the start time when it got delegated and the time for which the delegated prefix is
deemed to be valid (in seconds). This file is internal to ExtremeXOS DHCPv6 relay agent
and cannot/should not be edited by anyone else.
ExtremeXOS DHCPv6 relay agent checkpoints the prefix delegations that have been
detected.
5001:db8:3553:bf00::/56 v1
fe80::a440:cfd5:c05b:d324 300 secs
Origin(Ori):(b) BlackHole, (be) EBGP, (bg) BGP, (bi) IBGP, (bo) BOOTP,
(ct) CBT, (d) Direct, (df) DownIF, (dv) DVMRP, (e1) ISISL1Ext,
(e2) ISISL2Ext, (h) Hardcoded, (i) ICMP, (i1) ISISL1 (i2) ISISL2,
(is) ISIS, (mb) MBGP, (mbe) MBGPExt, (mbi) MBGPInter, (ma) MPLSIntra,
(mr) MPLSInter, (mo) MOSPF (o) OSPFv3, (o1) OSPFv3Ext1, (o2) OSPFv3Ext2,
(oa) OSPFv3Intra, (oe) OSPFv3AsExt, (or) OSPFv3Inter, (pd) PIM-DM, (ps) PIM-
SM,
(r) RIPng, (ra) RtAdvrt, (s) Static, (sv) SLB_VIP, (un) UnKnown,
(*) Preferred unicast route (@) Preferred multicast route,
(#) Preferred unicast and multicast route.
Flags: (b) BFD protection requested, (B) BlackHole, (c) Compressed Route,
(D) Dynamic, (f) Provided to FIB, (G) Gateway, (H) Host Route,
(l) Calculated LDP LSP, (L) Matching LDP LSP, (m) Multicast,
(p) BFD protection active, (P) LPM-routing, (R) Modified, (s) Static LSP,
(S) Static, (t) Calculated RSVP-TE LSP, (T) Matching RSVP-TE LSP,
(u) Unicast, (U) Up, (3) L3VPN Route.
Mask distribution:
1 routes at length 56
DHCPv6 Client
Note
With ExtremeXOS 30.3, ISC DHCPv6 client version is upgraded to dhcp-4.4.1.
ExtremeXOS DHCPv6 client supports only the stateful DHCPv6 mode of operation in
this release. This means an external DHCPv6 server is required to configure the IPv6
address and its related configurations.
Note
Stateless Auto configuration and stateless DHCPv6 modes are not supported
in this release.
The mode of operation of the DHCPv6 client is based on the autonomous (A),
managed (M) and other configuration (O) flags in the received router advertisement
(RA) messages. If the managed bit is 1 and the other configuration bit is 0, the DHCPv6
client will act as a stateful client. In stateful mode, the client receives IPv6 addresses
from the DHCPv6 server, based on the identity association for nontemporary addresses
(IA_NA) assignment.
In other words ExtremeXOS DHCPv6 client sends IA_NA option as part of the DHCPv6
message.
Note
Identity association for temporary address (IA_TA) and Identity association for
prefix delegation (IA_PD) is not supported in this release.
If the incoming RA points to act the interface in stateless DHCPv6 mode (managed
bit is 0 and the other configuration bit is 1) or DHCPv6 auto configuration mode
(autonomous bit is 1 and managed, other configuration bit is 0) ExtremeXOS will release
the assigned (if already assigned using stateful DHCPv6 client mode) DHCPv6 IP and
other parameters for this VLAN interface on which this RA is received.
To display the current status of the DHCPv6 client VLAN state use:
The DUID is not required in all the DHCP messages. It has to be unique across all DHCP
clients and servers. It has to be stable for any specific client or server - for example, a
device's DUID should not change as a result of a change in the VLAN’s port.
ExtremeXOS uses Link-layer address plus time as its default client DUID. To configure
DHCPv6 client identifier type for the client use:
1. OPTION_CLIENTID (code 1). The Client Identifier option is used to carry a DUID
identifying a client between a client and a server.
2. OPTION_SERVERID (code 2). The Server Identifier option is used to carry a DUID
identifying a server between a client and a server.
Note
OPTION_SERVERID option is included if DHCPv6 client is responding to a
particular server.
3. OPTION_IA_NA (code 3). The client uses IA_NA options to request the assignment of
non-temporary address assignment.
4. OPTION_IAADDR (code 5). The IA_ADDR is used to specify the IPv6 addresses
associated with IA_NA or IA_TA option.
Note
OPTION_IAADDR is included only if the client lease is present.
Note
IAID is the last 4 bytes of the hardware address
5. OPTION_ORO (code 6). The Option Request option is used to identify a list of options
in a message between client and server. A client includes an Option Request option
in a Solicit, Request, Renew, Rebind, Confirm or Information-request message to
inform the server about options the client is interested in.
The following are the Default requested options included by the ExtremeXOS DHCPv6
client as part of Option Request Option (OPTION_ORO) option:
Note
As in DHCPv4, when you create an IPV6 VLAN interface, the corresponding
disabledV6VlanList has an entry. The VLAN interface entry is removed
whenever the bootpRelayv6 for the respective VLAN is enabled, and vice
versa.
2. Enable the DHCP or BOOTP relay function using the following commands:
enable bootprelay {ipv4|ipv6} {vlan[vlan_name] |{vr} vr_name}|all
[{vr} vr_name]}
enable bootprelay {vlan[vlan_name] |{vr} vr_name}|all [{vr} vr_name]}
Note
Use the configure bootprelay ipv6 option interface-id
InterfaceIDName vlan {vlan_name} command to set up a unique
interface-id. It can be MAC-ID, or port-vlan combination. You can also use
this command to set up dhcpv6 server/next hop for each VLAN interface, or
across VR. A configuration applied to the VR level is populated to all VLAN
V6 interfaces.
Note
When VRRP (Virtual Router Redundancy Protocol) and BOOTP/DHCP relay
are both enabled on the switch, the relayed BOOTP agent IP address is the
actual switch IP address, not the virtual IP address.
Note
This feature is enabled by default starting from ExtremeXOS 15.6.
This support was added in ExtremeXOS Release 12.4 by using some of the slices
previously used for ACL support to create a Greater Than 64 Bit (GT64B) table. The
GT64B table stores only those routes with a mask greater than 64 bits. When IPv6
forwarding is enabled, the switch behavior is as follows:
• Fewer slices are available for ACLs.
Use show access-list usage acl-slice to check if any slice is unused. If no slice is
available, consider disabling a feature that is consuming ACL slices if that feature
is not required. Features that are enabled by default such as IGMP (Internet Group
Management Protocol) Snooping or MLD Snooping can be disabled to free up ACL
resources if not required.
• Table-full messages appear when there is no more space in the GT64B table.
• If an eligible route cannot be added to the GT64B table (because the table is full),
there is no guarantee that traffic for that route will be properly routed.
• If enabled, route compression for IPv6 can make room for additional routes by
reducing the number of entries in the GT64B table.
• When an IPv6 address with a mask greater that 64 bits is configured on a VLAN or
tunnel, that address is automatically added to the GT64B table.
All switches support hardware forwarding routes with masks greater than 64 bits. For
number of routes supported, see the limits for the particular switch in the ExtremeXOS
Release Notes.
This support was added in ExtremeXOS Release 12.4 by using a hardware table
designed for this purpose. When IPv6 forwarding is enabled, the switch behavior is
as follows:
• If no space is available in the hardware table, there is no guarantee that traffic for
that route will be properly routed.
• If enabled, route compression for IPv6 can make room for additional routes by
reducing the number of entries in the hardware table.
• When an IPv6 address with a mask greater that 64 bits is configured on a VLAN or
tunnel, that address is automatically added to the hardware table.
Note
The MTU for IPv6 Tunnels is set to 1480 bytes, and is not user-configurable.
Configuring jumbo frames has no effect on the MTU size for IPv6 tunnels.
• Finance
◦ Protocol-sensitive VLAN using IPv6 protocol
◦ All ports on slots 1 and 3 have been assigned.
◦ IP address 2001:db8:35::1/48.
• Personnel
◦ Protocol-sensitive VLAN using the IPv6 protocol.
◦ All ports on slots 2 and 4 have been assigned.
◦ IP address 2001:db8:36::1/48.
• MyCompany
◦ Port-based VLAN.
◦ All ports on slots 1 through 4 have been assigned.
In this configuration, all IPv6 traffic from stations connected to slots 1 and 3 have access
to the router by way of the VLAN Finance. Ports on slots 2 and 4 reach the router by way
of the VLAN Personnel. All other traffic (NetBIOS) is part of the VLAN MyCompany.
This example has one subnet in each IPv6 region, 2001:db8:1::/64 for Router A and
2001:db8:2::/64 for Router B. Hosts A and B are configured to use IPv6 addresses
2001:db8:1::101 and 2001:db8:2::101 respectively.
For traffic to move from one region to the other, there must be a route. In this example,
a static route is created, but you could enable RIPng or OSPFv3 on the tunnel interface.
In this example, we assume that the IPv4 network can route from Router A to Router
B (in other words, some IPv4 routing protocol is running on the public-ipv4 interfaces).
For platforms on which hardware based tunneling is supported (See the following
table), IPv4 forwarding needs to be enabled on the tunnel source VLAN. However, in
platforms on which IPv6-in-IPv4 tunnels are supported in software only, you do not
need to enable IPv4 forwarding on the public interfaces in this example unless you are
also routing IPv4 traffic on them (in this example, it is assumed you are running no IPv4
traffic inside your respective IPv6 networks, although you could).
When Host A needs to send a packet to 2001:db8:2::101 (Host B), it forwards it to Router
A. Router A receives an IPv6 packet from the IPv6 source address 2001:db8:1::101 to the
destination 2001:db8:2::101. Router A has the static route, for the route 2001:db8:2::/64
with next hop 2001:db8:a::2 (Router B) through the tunnel interface. So Router A
encapsulates the IPv6 packet inside an IPv4 header with the source address 192.168.1.1
and destination address 10.2.0.1. The encapsulated IPv6 packet passes through the IPv4
network and reaches the other end of the tunnel—Router B. Router B decapsulates the
packet and removes the IPv4 header. Router B then forwards the IPv6 packet to the
destination host—Host B.
Note
Each IPv6 packet is encapsulated inside an IPv4 header (20 bytes) before it is
forwarded via a IPv6-in-IPv4 tunnel. For example, a 66-byte packet from Host A
will be encapsulated and forwarded as a 86-byte packet by Router A.
Router A
configure vlan default delete port all
create vlan public-ipv4
configure vlan public-ipv4 add port 1 untagged
configure vlan public-ipv4 ipaddress 192.168.1.1/24
create tunnel public6in4 ipv6-in-ipv4 destination 10.2.0.1 source 192.168.1.1
configure tunnel public6in4 ipaddress 2001:db8:a::1/64
enable ipforwarding ipv6 public6in4
create vlan private-ipv6
configure vlan private-ipv6 add port 2 untagged
configure vlan private-ipv6 ipaddress 2001:db8:1::1/64
enable ipforwarding ipv6 private-ipv6
configure iproute add 2001:db8:2::/64 2001:db8:a::2
enable ipforwarding public-ipv4
Router B
configure vlan default delete port all
create vlan public-ipv4
configure vlan public-ipv4 add port 1 untagged
configure vlan public-ipv4 ipaddress 10.2.0.1/24
create tunnel public6in4 ipv6-in-ipv4 destination 192.168.1.1 source 10.2.0.1
configure tunnel public6in4 ipaddress 2001:db8:a::2/64
enable ipforwarding ipv6 public6in4
create vlan private-ipv6
configure vlan private-ipv6 add port 2 untagged
configure vlan private-ipv6 ipaddress 2001:db8:2::1/64
enable ipforwarding ipv6 private-ipv6
configure iproute add 2001:db8:1::/64 2001:db8:a::1
enable ipforwarding public-ipv4
The IPv6 endpoints of 6to4 tunnels must follow the standard 6to4 address
requirement. The address must be of the form 2002:<IPv4_source_endpoint>::/16,
where <IPv4_source_endpoint> is replaced by the IPv4 source address of the endpoint,
in hexadecimal, colon separated form. For example, for a tunnel endpoint located at
IPv4 address 10.20.30.40, the tunnel address would be 2002:0a14:1e28::/16. In hex, 10 is
0a, 20 is 14, 30 is 1e and 40 is 28.
This example shows a simple setup on the Router 1 side (one big /48 IPv6 routing
domain with no subnets), and a slightly more complex setup on the Router 2 side (two
subnets :0001: and :0002: that are /64 in length). Hosts 1, 2, and 3 will communicate
using their global 2002: addresses.
The hosts in this example configure themselves using the EUI64 interface identifier
derived from their MAC addresses. Refer to your host OS vendor’s documentation for
configuring IPv6 addresses and routes.
In this example, we assume that the IPv4 network can route from Router 1 to Router
2 (in other words, some IPv4 routing protocol is running on the public-ipv4 interfaces).
However, you do not need to enable IPv4 forwarding on the public interfaces in this
example unless you are also routing IPv4 traffic on them (in this example, it is assumed
you are running no IPv4 traffic inside your respective IPv6 networks, although you
could).
Router 1
configure vlan default delete port all
create vlan public-ipv4
configure vlan public-ipv4 add port 1 untagged
configure vlan public-ipv4 ipaddress 192.168.1.1/24
create tunnel public6to4 6to4 source 192.168.1.1
configure tunnel public6to4 ipaddress 2002:c0a8:0101::1/16
enable ipforwarding ipv6 public6to4
create vlan private-ipv6
configure vlan private-ipv6 add port 2 untagged
configure vlan private-ipv6 ipaddress 2002:c0a8:0101::2/48
enable ipforwarding ipv6 private-ipv6
Router 2
configure vlan default delete port all
create vlan public-ipv4
configure vlan public-ipv4 add port 1 untagged
configure vlan public-ipv4 ipaddress 10.0.0.1/24
create tunnel public6to4 6to4 source 10.0.0.1
configure tunnel public6to4 ipaddress 2002:0a00:0001::1/16
enable ipforwarding ipv6 public6to4
create vlan private-ipv6-sub1
configure vlan private-ipv6-sub1 add port 2 untagged
configure vlan private-ipv6-sub1 ipaddress 2002:0a00:0001:0001::1/64
enable ipforwarding ipv6 private-ipv6-sub1
create vlan private-ipv6-sub2
configure vlan private-ipv6-sub2 add port 3 untagged
configure vlan private-ipv6-sub2 ipaddress 2002:0a00:0001:0002::1/64
enable ipforwarding ipv6 private-ipv6-sub2
Host Configurations
The IPv6 addresses of these hosts are based on their MAC address-derived EUI64
interface identifiers and the address prefixes for their subnets. Each host must also
have a static route configured on it for 6to4 addresses.
Host 1:
• MAC address—00:04:96:1F:A5:2A
• IPv6 address—2002:c0a8:0101::0204:96ff:fe1f:a52a/48
• Static route—destination 2002::/16, gateway 2002:c0a8:0101::2
Host 2:
• MAC address—00:04:96:1F:A4:32
• IP address—2002:0a00:0001:0001:0204:96ff:fe1f:a432/64
• Static route—destination 2002::/16, gateway 2002:0a00:0001:0001::1
Host 3:
• MAC address—00:01:30:00:C2:00
• IP address—2002:0a00:0001:0002:0201:30ff:fe00:c200/64
• Static route—destination 2002::/16, gateway 2002:0a00:0001:0002::1
Router 2 Configuration
create vlan inet
configure vlan inet add port 10:1
configure vlan inet ipa 1.1.1.2/24
create vlan users
configure vlan users add port 10:2
configure vlan users ipa 200.0.0.1/24
create tunnel mytunnel gre destination 1.1.1.1 source 1.1.1.2
configure tunnel "mytunnel" ipaddress 2.0.0.2/24
configure iproute add 100.0.0.0/24 2.0.0.1
enable ipforwarding
Note
If a transit node is present between the tunneling sites, you should configure
static or enable IBGP between the sites for network connectivity.
This chapter assumes that you are already familiar with IP unicast routing.
Note
RIP is available on platforms with an Edge (or higher) or Base (or higher)
license. For specific information regarding RIP licensing, see the Switch Engine
Licensing Guide document.
IGPs Overview
The switch supports the use of the following interior gateway protocols (IGPs):
• RIP (Routing Information Protocol)
• OSPF (Open Shortest Path First)
• Intermediate System-Intermediate System (IS-IS)
RIP is a distance-vector protocol, based on the Bellman-Ford (or distance-vector)
algorithm. The distance-vector algorithm has been in use for many years and is widely
deployed and understood.
OSPF and IS-IS are link-state protocols, based on the Dijkstra link-state algorithm. OSPF
and IS-IS are newer IGPs and solve a number of problems associated with using RIP on
today’s complex networks.
Note
RIP can be enabled on a VLAN (Virtual LAN) with either OSPF or IS-IS. OSPF
and IS-IS cannot be enabled on the same VLAN.
RIP is described in this chapter, OSPF is described in OSPF on page 1652 and IS-IS is
described in IS-IS on page 1685.
Using a distance-vector protocol, each router creates a unique routing table from
summarized information obtained from neighboring routers. Using a link-state
protocol, every router maintains an identical routing table created from information
obtained from all routers in the autonomous system (AS). Each router builds a shortest
path tree, using itself as the root. The link-state protocol ensures that updates sent to
neighboring routers are acknowledged by the neighbors, verifying that all routers have
a consistent network map.
RIP has a number of limitations that can cause problems in large networks, including
the following:
• A limit of 15 hops between the source and destination networks
• A large amount of bandwidth taken up by periodic broadcasts of the entire routing
table
• Slow convergence
• Routing decisions based on hop count; no concept of link costs or delay
• Flat networks; no concept of areas or boundaries
OSPF and IS-IS offer many advantages over RIP, including the following:
• No limitation on hop count
• Route updates multicast only when changes occur
• Faster convergence
• Support for load balancing to multiple routers based on the actual cost of the link
• Support for hierarchical topologies where the network is divided into areas
Overview of RIP
RIP is an IGP first used in computer routing in the Advanced Research Projects Agency
Network (ARPAnet) as early as 1969. It is primarily intended for use in homogeneous
networks of moderate size.
To determine the best path to a distant network, a router using RIP always selects
the path that has the least number of hops. Each router that data must traverse is
considered to be one hop.
Routing Table
The routing table in a router using RIP contains an entry for every known destination
network.
The router exchanges an update message with each neighbor every 30 seconds
(default value), or when there is a change to the overall routed topology (also called
triggered updates). If a router does not receive an update message from its neighbor
within the route timeout period (180 seconds by default), the router assumes the
connection between it and its neighbor is no longer available.
Split Horizon
Split horizon is a scheme for avoiding problems caused by including routes in updates
sent to the router from which the route was learned.
Split horizon omits routes learned from a neighbor in updates sent to that neighbor.
Poison Reverse
Like split horizon, poison reverse is a scheme for eliminating the possibility of loops in
the routed topology.
In this case, a router advertises a route over the same interface that supplied the route,
but the route uses a hop count of 16, which defines that router as unreachable.
Triggered Updates
Triggered updates occur whenever a router changes the metric for a route.
The router is required to send an update message immediately, even if it is not yet time
for a regular update message to be sent. This generally results in faster convergence,
but may also result in more RIP-related traffic.
RIP advertises only those VLANs that are configured with an IP address, are configured
to route IP, and run RIP.
RIP version 2 packets can be multicast instead of being broadcast, reducing the load
on hosts that do not support routing protocols.
Note
If you are using RIP with supernetting/Classless Inter-Domain Routing (CIDR),
you must use RIPv2 only.
Route Redistribution
More than one routing protocol can be enabled simultaneously on the switch.
Route redistribution allows the switch to exchange routes, including static routes,
between the routing protocols. Figure 236 is an example of route redistribution
between an OSPF AS and a RIP AS.
Exporting routes from one protocol to another and from that protocol to the first one
are discrete configuration functions. For example, to run OSPF and RIP simultaneously,
you must first configure both protocols and then verify the independent operation of
each. Then you can configure the routes to export from OSPF to RIP and the routes to
export from RIP to OSPF. Likewise, for any other combinations of protocols, you must
separately configure each to export routes to the other.
These commands enable or disable the exporting of static, direct, and OSPF-learned
routes into the RIP domain.
• You can choose which types of OSPF routes are injected, or you can simply choose
ospf, which will inject all learned OSPF routes regardless of type.
The default setting is disabled.
• Finance
◦ Protocol-sensitive VLAN using the IP protocol.
◦ All ports on slots 1 and 3 have been assigned.
◦ IP address 192.207.35.1.
• Personnel
◦ Protocol-sensitive VLAN using the IP protocol.
◦ All ports on slots 2 and 4 have been assigned.
◦ IP address 192.207.36.1.
• MyCompany
◦ Port-based VLAN.
◦ All ports on slots 1 through 4 have been assigned.
This example does use protocol-sensitive VLANs that admit only IP packets. This is not
a common requirement for most networks. In most cases, VLANs will admit different
types of packets to be forwarded to the hosts and servers on the network.
In this configuration, all IP traffic from stations connected to slots 1 and 3 have access to
the router by way of the VLAN Finance. Ports on slots 2 and 4 reach the router by way of
the VLAN Personnel. All other traffic (NetBIOS) is part of the VLAN MyCompany.
More commonly, NetBIOS traffic would be allowed on the Finance and Personnel
VLANs, but this example shows how to exclude that traffic. To allow the NetBIOS
traffic (or other type of traffic) along with the IP traffic, remove the configure finance
protocol ip and configure Personnel protocol ip commands from the example.
This chapter describes the RIPng (Routing Information Protocol Next Generation)
interior gateway protocol for IPv6 networks. It provides the various protocol schemes
available, commands for configuring redistribution, and an example for configuring
multiple protocols on one switch. This chapter assumes that you are already familiar
with IP unicast routing. If not, refer to the following publication for additional
information:
• RFC 2080—RIPng for IPv6
Note
RIPng is available on platforms with an Edge (or higher) or Base (or
higher) license. For specific information regarding RIPng licensing. see the
Switch Engine Licensing Guide document.
RIPng Overview
RIPng is an interior gateway protocol (IGP) developed for IPv6 networks.
The analogous protocol used in IPv4 networks is called RIP (Routing Information
Protocol). Like RIP, RIPng is a relatively simple protocol for the communication of
routing information among routers. Many concepts and features of RIPng are directly
parallel to those same features in RIP.
Note
RIPng can be enabled on a VLAN (Virtual LAN) with either OSPFv3 or IS-IS.
OSPFv3 and ISIS cannot be enabled on the same VLAN.
Using a distance-vector protocol, each router creates a unique routing table from
summarized information obtained from neighboring routers. Using a link-state
protocol, every router maintains an identical routing table created from information
obtained from all routers in the autonomous system. Each router builds a shortest
path tree, using itself as the root. The link-state protocol ensures that updates sent to
neighboring routers are acknowledged by the neighbors, verifying that all routers have
a consistent network map.
RIPng has a number of limitations that can cause problems in large networks,
including the following:
• A limit of 15 hops between the source and destination networks
• A large amount of bandwidth taken up by periodic broadcasts of the entire routing
table
• Slow convergence
• Routing decisions based on hop count; no concept of link costs or delay
• Flat networks; no concept of areas or boundaries
OSPFv3 and IS-IS offer many advantages over RIPng, including the following:
• No limitation on hop count
• Route updates multicast only when changes occur
• Faster convergence
• Support for load balancing to multiple routers based on the actual cost of the link
• Support for hierarchical topologies where the network is divided into areas
RIPng Routing
RIPng is primarily intended for use in homogeneous networks of moderate size.
To determine the best path to a distant network, a router using RIPng always selects
the path that has the least number of hops. Each router that data must traverse is
considered to be one hop.
Routing Table
The routing table in a router using RIPng contains an entry for every known destination
network.
The router exchanges an update message with each neighbor every 30 seconds
(default value), or when there is a change to the overall routed topology (also called
triggered updates). If a router does not receive an update message from its neighbor
within the route timeout period (180 seconds by default), the router assumes the
connection between it and its neighbor is no longer available.
Split Horizon
Split horizon is a scheme for avoiding problems caused by including routes in updates
sent to the router from which the route was learned.
Split horizon omits routes learned from a neighbor in updates sent to that neighbor.
Poison Reverse
Like split horizon, poison reverse is a scheme for eliminating the possibility of loops in
the routed topology.
In this case, a router advertises a route over the same interface that supplied the route,
but the route uses a hop count of 16, which defines that router as unreachable.
Triggered Updates
Triggered updates occur whenever a router changes the metric for a route.
The router is required to send an update message immediately, even if it is not yet time
for a regular update message to be sent. This generally results in faster convergence,
but may also result in more RIPng-related traffic.
Route Redistribution
More than one routing protocol can be enabled simultaneously on the switch. Route
redistribution allows the switch to exchange routes, including static routes, between
the routing protocols. Route redistribution is also called route export.
For example, to run OSPFv3 and RIPng simultaneously, you must first configure both
protocols and then verify the independent operation of each. Then you can configure
the routes to export from OSPFv3 to RIPng and the routes to export from RIPng
to OSPFv3. Likewise, for any other combinations of protocols, you must separately
configure each to export routes to the other.
The stations connected to the system generate a combination of IPv6 traffic and
NetBIOS traffic.
In this configuration, all traffic from stations connected to slots 1 and 3 have access to
the router by way of the VLAN Finance. Ports on slots 2 and 4 reach the router by way of
the VLAN Personnel. All traffic (NetBIOS and IPv6) is part of the VLAN MyCompany.
This chapter discusses the OSPF (Open Shortest Path First) protocol for distributing
routing information between routers belonging to an autonomous system. This chapter
provides an overview of the protocol's features and example configuration commands.
This chapter assumes that you are already familiar with IP unicast routing. If not, refer
to the following publications for additional information:
• RFC 2328—OSPF Version 2
• RFC 1765—OSPF Database Overflow
• RFC 2370—The OSPF Opaque LSA Option
• RFC 3101—The OSPF Not-So-Stubby Area (NSSA) Option
• RFC 3623—Graceful OSPF Restart
• Interconnections: Bridges and Routers by Radia Perlman. Published by Addison-
Wesley Publishing Company (ISBN 0-201-56332-0).
Note
OSPF is available on platforms with an Advanced Edge (or higher) or Base
(or higher) license. For specific information regarding OSPF licensing, see the
Switch Engine Licensing Guide document.
OSPF Overview
OSPF is a link state protocol that distributes routing information between routers
belonging to a single IP domain; the IP domain is also known as an autonomous
system (AS).
From the LSDB (link state database), each router constructs a tree of shortest paths,
using itself as the root. The shortest path tree provides the route to each destination in
the AS. When several equal-cost routes to a destination exist, traffic can be distributed
among them. The cost of a route is described by a single metric.
OSPF is an IGP (interior gateway protocol), as is RIP (Routing Information Protocol), the
other common IGP. OSPF and RIP are compared in RIP on page 1641.
Note
Two types of OSPF functionality are available and each has a different licensing
requirement. One is the complete OSPF functionality and the other is OSPF
Edge Mode, a subset of OSPF that is described below. For specific information
regarding OSPF licensing, see the Switch Engine Licensing Guide
document.
If the BFD session limit is reached, the OSPF neighbor will be marked as BFD session
failed if synchronous request is used, or pending if asynchronous request is used, and
the BFD server will send an asynchronous notification when the session registration
passes later. (The asynchronous request is not available until the BFD client session
create API is enhanced.)
When BFD for OSPF is configured on broadcast interface, the default behavior is to
register only OSPF neighbors in FULL state with the BFD server. Separate BFD sessions
are created for each neighbor learned on the same interface. If multiple clients ask for
the same neighbor on the same interface, then single BFD sessions are established
between the peers.
1. The OSPF neighbor relationship will remain as FULL if the operational state of the
BFD session is "UP" and the operational state of the associated VLAN interface is UP.
In all other cases, the BFD session state is not considered as part of the reported OSPF
neighbor state, and the OSPF neighbor state reverts to the operational state of the
OSPF interface only. When the BFD session is in ADMIN_DOWN state, OSPF ignores
BFD events and OSPF neighbor adjacency is not be affected by the BFD session state
change.
Database Overflow
The OSPF database overflow feature allows you to limit the size of the LSDB and to
maintain a consistent LSDB across all the routers in the domain, which ensures that all
routers have a consistent view of the network.
Where:
◦ number—Specifies the number of external LSAs that the system supports before
it goes into overflow state. A limit value of 0 disables the functionality. When
the LSDB size limit is reached, OSPF database overflow flushes LSAs from the
LSDB. OSPF database overflow flushes the same LSAs from all the routers, which
maintains consistency.
◦ timeout—Specifies the timeout, in seconds, after which the system ceases to be
in overflow state. A timeout value of 0 leaves the system in overflow state until
OSPF is disabled and re-enabled.
Opaque LSAs
Opaque LSAs are a generic OSPF mechanism used to carry auxiliary information in
the OSPF database. Opaque LSAs are most commonly used to support OSPF traffic
engineering.
Without graceful restart, adjacent routers will assume that information previously
received from the restarting router is stale and will not be used to forward traffic to that
router. However, in many cases, two conditions exist that allow the router restarting
OSPF to continue to forward traffic correctly. The first condition is that forwarding can
continue while the control function is restarted. Most modern router system designs
separate the forwarding function from the control function so that traffic can still be
forwarded independent of the state of the OSPF function. Routes learned through
OSPF remain in the routing table and packets continue to be forwarded. The second
condition required for graceful restart is that the network remain stable during the
restart period. If the network topology is not changing, the current routing table
remains correct. Often, networks can remain stable during the time for restarting
OSPF.
Routers involved with graceful restart fill one of two roles: the restarting router or the
helper router.
With graceful restart, the router that is restarting sends out Grace-LSAs informing its
neighbors that it is in graceful restart mode, how long the helper router should assist
with the restart (the grace period), and why the restart occurred. If the neighboring
routers are configured to help with the graceful restart (helper-mode), they will
continue to advertise the restarting router as if it was fully adjacent. Traffic continues
to be routed as though the restarting router is fully functional. If the network topology
changes, the helper routers will stop advertising the restarting router. The helper router
will continue in helper mode until the restarting router indicates successful termination
of graceful restart, the Grace‑LSAs expire, or the network topology changes. A router
can be configured for graceful restart, and for helper-mode separately. A router can
be a helper when its neighbor restarts, and can in turn be helped by a neighbor if it
restarts.
A planned restart would occur if the software module for OSPF was upgraded, or if
the router operator decided to restart the OSPF control function for some reason. The
router has advance warning, and is able to inform its neighbors in advance that OSPF is
restarting.
An unplanned restart would occur if there was some kind of system failure that caused
a remote reboot or a crash of OSPF, or a failover occurs. As OSPF restarts, it informs its
neighbors that it is in the midst of an unplanned restart.
You can decide to configure a router to enter graceful restart for only planned restarts,
for only unplanned restarts, or for both. Also, you can separately decide to configure a
router to be a helper for only planned, only unplanned, or for both kinds of restarts.
Note
In SummitStacks, if OSPF graceful restart is enabled, then ensure LAG
containing ports from both master and backup nodes exist on all OSPF-
enabled VLANs, so that OSPF grace LSA can be transmitted successfully to
helper routers during stack failover.
Since a router can act as a restart helper router to multiple neighbors, you will
specify which neighbors to help.
• Configure a router to act as a graceful OSPF restart helper:
configure ospf [vlan [all | vlan-name] | area area-identifier |
virtual-link router-identifier area-identifier] restart-helper [none |
planned | unplanned | both]
• The graceful restart period sent out to helper routers can be configured with the
following command:
configure ospf restart grace-period seconds
By default, a helper router will terminate graceful restart if received LSAs would
affect the restarting router.
This will occur when the restart-helper receives an LSA that will be flooded to
the restarting router or when there is a changed LSA on the restarting router's
retransmission list when graceful restart is initiated.
• Disable this behavior:
disable ospf [vlan [all {vr vrf_name}| vlan-name] | area area-
identifier | virtual-link router-identifier area-identifier] restart-
helper-lsa-check
Areas
OSPF allows parts of a network to be grouped together into areas.
The topology within an area is hidden from the rest of the AS. Hiding this information
enables a significant reduction in LSA traffic and reduces the computations needed to
maintain the LSDB. Routing within the area is determined only by the topology of the
area.
Note
Area 0.0.0.0 exists by default and cannot be deleted or changed.
When a VLAN is configured to run OSPF, you must configure the area for the VLAN.
• If you want to configure the VLAN to be part of a different OSPF area, use the
following command:
configure ospf vlan vlan-name area area-identifier
• If this is the first instance of the OSPF area being used, you must create the area first
using the following command:
create ospf area area-identifier
Stub Areas
OSPF allows certain areas to be configured as stub areas. A stub area is connected to
only one other area. The area that connects to a stub area can be the backbone area.
External route information is not distributed into stub areas. Stub areas are used to
reduce memory consumption and computational requirements on OSPF routers.
Not-So-Stubby-Areas
Not-so-stubby-areas (NSSAs) are similar to the existing OSPF stub area configuration
option but have the following two additional capabilities:
• External routes originating from an ASBR connected to the NSSA can be advertised
within the NSSA.
• External routes originating from the NSSA can be propagated to other areas,
including the backbone area.
The CLI command to control the NSSA function is similar to the command used for
configuring a stub area, as follows:
The translate option determines whether type 7 LSAs are translated into type 5 LSAs.
When configuring an OSPF area as an NSSA, translate should only be used on NSSA
border routers, where translation is to be enforced. If translate is not used on any
NSSA border router in a NSSA, one of the ABRs for that NSSA is elected to perform
translation (as indicated in the NSSA specification). The option should not be used on
NSSA internal routers. Doing so inhibits correct operation of the election algorithm.
Normal Area
A normal area is an area that is not:
• Area 0
• Stub area
• NSSA
Virtual links can be configured through normal areas. External routes can be
distributed into normal areas.
Virtual Links
In the situation when a new area is introduced that does not have a direct physical
attachment to the backbone, a virtual link is used.
A virtual link provides a logical path between the ABR of the disconnected area and
the ABR of the normal area that connects to the backbone. A virtual link must be
established between two ABRs that have a common area, with one ABR connected to
the backbone. Figure 240 illustrates a virtual link.
Note
Virtual links cannot be configured through a stub or NSSA area.
Virtual links are also used to repair a discontiguous backbone area. For example, in
Figure 241, if the connection between ABR 1 and the backbone fails, the connection
using ABR 2 provides redundancy so that the discontiguous area can continue to
communicate with the backbone using the virtual link.
Point-to-Point Support
You can manually configure the OSPF link type for a VLAN. Table 167 describes the link
types.
Note
The number of routers in an OSPF point-to-point link is determined per VLAN,
not per link.
All routers in the VLAN must have the same OSPF link type. If there is a
mismatch, OSPF attempts to operate, but it may not be reliable.
Route Redistribution
More than one routing protocol can be enabled simultaneously on the switch.
Route redistribution allows the switch to exchange routes, including static routes,
between the routing protocols. Figure 242 is an example of route redistribution
between an OSPF AS and a RIP AS.
Import Policy
Prior to ExtremeXOS 15.7, routing protocol OSPFv2 applied routing policies with
keyword “import-policy”, which can only be used to change the attributes of routes
installed into the switch routing table. ExtremeXOS 15.7 provides the flexibility of using
import policy to determine the routes to be added to or removed from the routing
table.
To prevent a route being added to the routing table, the policy file must contain a
matching rule with action “deny”. If there is no matching rule for a particular route, or
the keyword “deny” is missing in the rule, the default action is “permit”, which means
that route will be installed into the routing table. Refer to the following policy file
example:
entry entry-one {
if {
nlri 11.22.0.0/16;
}
then {
cost 100;
}
}
entry entry-two {
if {
nlri 22.33.0.0/16;
}
then {
deny;
}
}
In the above policy example, entry-one is used to change the cost of any matching
routes, and entry-two is used to remove those matching routes from the routing table.
Note
Only “Network Layer Reachability Information” (NLRI) and "route origin" can
be used as matching criteria in policy rules; using "next_hop" as a matching
criteria is not supported. Any other policy attribute is not recognized and is
ignored.
For example, to run OSPF and RIP simultaneously, you must first configure both
protocols and then verify the independent operation of each. Then you can configure
the routes to export from OSPF to RIP and the routes to export from RIP to OSPF.
Likewise, for any other combinations of protocols, you must separately configure each
to export routes to the other.
These commands enable or disable the exporting of RIP, static, and direct routes by
way of LSA to other OSPF routers as AS-external type 1 or type 2 routes. The default
setting is disabled.
The cost metric is inserted for all Border Gateway Protocol (BGP), RIP, static, and direct
routes injected into OSPF. If the cost metric is set to 0, the cost is inserted from
the route. For example, in the case of BGP export, the cost equals the multiple exit
discriminator (MED) or the path length. The tag value is used only by special routing
applications. Use 0 if you do not have specific requirements for using a tag. (The tag
value in this instance has no relationship with IEEE 802.1Q VLAN tagging.)
The same cost, type, and tag values can be inserted for all the export routes, or
policies can be used for selective insertion. When a policy is associated with the export
command, the policy is applied on every exported route.
Note
For routes exported to OSPF via a policy file, any refresh applied on that policy
may result in temporary withdrawal and then immediate readvertising of those
routes.
Supported Platforms
All platforms.
CLI Commands
The following commands support this feature:
To disable an OSPF export, use disable ospf export {vr} vr-name route-type.
To enable an OSPF export, use enable ospf export {vr} vr-name route-type
[policy-map | cost cost type ase-type-1 | ase-type-2] {tag number}]
{exclude-private}.
To display detailed OSPF Inter-VR export information, use show ospf inter-vr-
export {detail}.
Configuring OSPF
Each switch that is configured to run OSPF must have a unique router ID.
We recommend that you manually set the router ID of the switches participating
in OSPF, instead of having the switch automatically choose its router ID based on
the highest interface IP address. Not performing this configuration in larger, dynamic
environments could result in an older LSDB remaining in use.
Caution
Do not configure OSPF timers unless you are comfortable exceeding
OSPF specifications. Non-standard settings may not be reliable under all
circumstances.
very quickly but might not elect the correct DR or BDR. The default value is equal to
the dead router wait interval.
Note
The OSPF standard specifies that wait times are equal to the dead router
wait interval.
Area 5 is connected to the backbone area by way of ABR 1 and ABR 2. It is located in
Chicago and has the following characteristics:
• Network number 160.26.x.x
• One identified VLAN (Chi_160_26_26)
• Two internal routers
Area 6 is a stub area connected to the backbone by way of ABR 1. It is located in Los
Angeles and has the following characteristics:
• Network number 161.48.x.x
• One identified VLAN (LA_161_48_2)
• Three internal routers
• Uses default routes for inter-area routing
Configuration for ABR 1 on page 1668 and Configuration for IR 1 on page 1668 provide
two router configurations for the example in Figure 243 on page 1667.
Configuration for IR 1
The router labeled IR 1 has the following configuration:
configure vlan HQ_10_0_1 ipaddress 10.0.1.2 255.255.255.0
configure vlan HQ_10_0_2 ipaddress 10.0.2.2 255.255.255.0
enable ipforwarding
configure ospf add vlan all area 0.0.0.0
Note
In OSPF edge mode, the VLAN priority is “0” and cannot be set. (Refer to OSPF
Edge Mode on page 1653.) When the license is upgraded to a Core or Premier
license, the VLAN priority of "0" needs to be reset in order to participate in
DR/BDR election.
The detail option displays information about all OSPF areas in a detail format.
• To display information about OSPF interfaces for an area, a VLAN, or for all interfaces
enter:
show ospf interfaces {vlan vlan-name | area area-identifier | enabled}
The detail option displays information about all OSPF interfaces in a detail format.
ExtremeXOS provides several filtering criteria for the show ospf lsdb command.
You can specify multiple search criteria, and only those results matching all of the
criteria are displayed. This allows you to control the displayed entries in large routing
tables.
• To display the current link-state database, enter:
show ospf lsdb {detail | stats} {area [area-identifier | all]}
{{lstype} [lstype | all]} {lsid lsid-address{lsid-mask}} {routerid
routerid-address {routerid-mask}} {interface[[ip-address{ip-mask} |
ipNetmask] | vlan vlan-name]}
The detail option displays all fields of matching LSAs in a multiline format. The
summary option displays several important fields of matching LSAs, one line per
LSA. The stats option displays the number of matching LSAs but not any of their
contents. If not specified, the default is to display in the summary format.
A common use of this command is to omit all optional parameters, resulting in the
following shortened form:
The shortened form displays LSAs from all areas and all types in a summary format.
This chapter discusses the OSPFv3 (Open Shortest Path First version 3) protocol for
distributing routing information between routers belonging to an autonomous system.
This chapter provides an overview of the protocol's features and example configuration
commands.
Note
OSPFv3 is available on platforms with an Advanced Edge (or higher) or Base (or
higher) license. For information about OSPFv3 licensing, see the Switch Engine
Licensing Guide document.
OSPFv3 Overview
OSPF (Open Shortest Path First) is a link state protocol that distributes routing
information between routers belonging to a single IP domain; the IP domain is also
known as an Autonomous System (AS).
From the LSDB (Link State Database), each router constructs a tree of shortest paths,
using itself as the root. The shortest path tree provides the route to each destination in
the AS. When several equal-cost routes to a destination exist, traffic can be distributed
among them. The cost of a route is described by a single metric.
OSPFv3 supports IPv6, and uses commands only slightly modified from that used to
support IPv4. OSPFv3 has retained the use of the 4-byte, dotted decimal numbers for
router IDs, LSA IDs, and area IDs.
OSPFv3 is an IGP (Interior Gateway Protocol), as is the other common IGP for
IPv6, RIPng (Routing Information Protocol Next Generation). OSPFv3 and RIPng are
compared in RIPng.
Note
Two types of OSPFv3 functionality are available and each has a different
licensing requirement. One is the complete OSPFv3 functionality and the
other is OSPFv3 Edge Mode, a subset of OSPFv3 that is described below. For
specific information regarding OSPFv3 licensing, see the Switch Engine
Licensing Guide document.
If the BFD session limit is reached, the OSPFv3 neighbor will be marked as BFD session
failed if synchronous request is used, or pending if asynchronous request is used, and
the BFD server will send an asynchronous notification when the session registration
passes later. (The asynchronous request is not available until the BFD client session
create API is enhanced.)
3. Before actually deleting any sessions, BFD server on Router A will first notify Router
B to mark those session status as "Admin Down," which will cause Router B to stop
using BFD protection for those OSPFv3 neighbors.
4. When BFD protection is removed from OSPFv3 interface on Router B, BFD sessions
can be deleted immediately since they are already in "Admin Down" state.
When BFD for OSPFv3 is configured on broadcast interface, the default behavior is
to register only OSPFv3 neighbors in FULL state with the BFD server. Separate BFD
sessions are created for each neighbor learned on the same interface. If multiple
clients ask for the same neighbor on the same interface, then single BFD sessions are
established between the peers.
1. The OSPFv3 neighbor relationship will remain as FULL if the operational state of the
BFD session is "UP" and the operational state of the associated VLAN interface is UP.
2. The OSPFv3 neighbor relationship will be considered as DOWN if the operational
state of the BFD session is DOWN or the operational state of the associated VLAN
interface is DOWN.
In all other cases, the BFD session state is not considered as part of the reported
OSPFv3 neighbor state, and the OSPFv3 neighbor state reverts to the operational state
of the OSPFv3 interface only. When the BFD session is in ADMIN_DOWN state, OSPFv3
ignores BFD events and OSPFv3 neighbor adjacency is not be affected by the BFD
session state change.
Any change in routing information is sent to all of the routers in the network. All routers
within an area have the exact same LSDB.
Without graceful restart, adjacent routers will assume that information previously
received from the restarting router is stale and will not be used to forward traffic to that
router. However, in many cases, two conditions exist that allow the router restarting
OSPFv3 to continue to forward traffic correctly. The first condition is that forwarding
can continue while the control function is restarted. Most modern router system
designs separate the forwarding function from the control function so that traffic can
still be forwarded independent of the state of the OSPFv3 function. Routes learned
through OSPFv3 remain in the routing table and packets continue to be forwarded.
The second condition required for graceful restart is that the network remain stable
during the restart period. If the network topology is not changing, the current routing
table remains correct. Often, networks can remain stable during the time for restarting
OSPFv3.
With graceful restart, the router that is restarting sends out Grace-LSAs informing its
neighbors that it is in graceful restart mode, how long the helper router should assist
with the restart (the grace period), and why the restart occurred. If the neighboring
routers are configured to help with the graceful restart (helper-mode), they will
continue to advertise the restarting router as if it was fully adjacent. Traffic continues
to be routed as though the restarting router is fully functional. If the network topology
changes, the helper routers will stop advertising the restarting router. The helper router
will continue in helper mode until the restarting router indicates successful termination
of graceful restart, the Grace‑LSAs expire, or the network topology changes. A router
can be configured for graceful restart, and for helper-mode separately. A router can
be a helper when its neighbor restarts, and can in turn be helped by a neighbor if it
restarts.
A planned restart would occur if the software module for OSPFv3 was upgraded, or if
the router operator decided to restart the OSPFv3 control function for some reason. The
router has advance warning, and is able to inform its neighbors in advance that OSPFv3
is restarting.
An unplanned restart would occur if there was some kind of system failure that caused
a remote reboot or a crash of OSPFv3, or a failover occurs. As OSPFv3 restarts, it informs
its neighbors that it is in the midst of an unplanned restart.
You can decide to configure a router to enter graceful restart for only planned restarts,
for only unplanned restarts, or for both. Also, you can separately decide to configure a
router to be a helper for only planned, only unplanned, or for both kinds of restarts.
Since a router can act as a restart helper router to multiple neighbors, you will
specify which neighbors to help.
• Configure a router interface to act as a graceful OSPFv3 restart helper:
configure ospfv3 [[vlan | tunnel] all | {vlan} vlan-name | {tunnel}
tunnel-name | area area-identifier] restart-helper [none | planned |
unplanned | both]
configure ospfv3 virtual-link {routerid} router_identifier {area}
area_identifier timer {retransmit-interval} retransmit_interval
{transit-delay} transit_delay {hello-interval} hello_interval {dead-
interval} dead_interval
• The graceful restart period sent out to helper routers can be configured with the
following command:
configure ospfv3 restart grace-period seconds
By default, a helper router will terminate graceful restart if received LSAs would
affect the restarting router.
This will occur when the restart-helper receives an LSA that will be flooded to
the restarting router or when there is a changed LSA on the restarting router's
retransmission list when graceful restart is initiated.
• Disable or enable helper router LSA check:
Areas
OSPFv3 allows parts of a network to be grouped together into areas.
The topology within an area is hidden from the rest of the AS. Hiding this information
enables a significant reduction in LSA traffic and reduces the computations needed to
maintain the LSDB. Routing within the area is determined only by the topology of the
area.
Note
Configuring inter-area and external filters causes all of the neighbors in the
area to be reset.
All areas in an AS must be connected to the backbone. When designing networks, you
should start with area 0.0.0.0 and then expand into other areas.
Note
Area 0.0.0.0 exists by default and cannot be deleted or changed.
When a VLAN is configured to run OSPFv3, you must configure the area for the VLAN.
If you want to configure the VLAN to be part of a different OSPFv3 area, use the
following command:
If this is the first instance of the OSPFv3 area being used, you must create the area first
using the following command:
Stub Areas
OSPFv3 allows non-Backbone areas to be configured as stub areas.
A stub area is connected to only one other area. The area that connects to a stub area
can be the backbone area. External route information is not distributed into stub areas.
Stub areas are used to reduce memory consumption and computational requirements
on OSPFv3 routers. To configure an OSPFv3 area as a stub area, use the following
command:
Not-So-Stubby-Areas
Not-so-stubby-areas (NSSAs) are similar to the existing OSPFv3 stub area configuration
option but have the following two additional capabilities:
• External routes originating from an ASBR connected to the NSSA can be advertised
within the NSSA.
• External routes originating from the NSSA can be propagated to other areas,
including the backbone area.
The CLI command to control the NSSA function is similar to the command used for
configuring a stub area, as follows:
The translate option in ABR determines whether it is always translating type 7 LSAs
to type 5 LSAs or a candidate for election. When configuring an OSPFv3 area as an
NSSA, translate should only be used on NSSA border routers, where translation
is to be enforced. If translate is not used on any NSSA border router in a NSSA,
one of the ABRs for that NSSA is elected to perform translation (as indicated in the
NSSA specification). The option should not be used on NSSA internal routers. Doing so
inhibits correct operation of the election algorithm.
Normal Area
A normal area is an area that is not:
• Area 0
• Stub area
• NSSA
Virtual links can be configured through normal areas. External routes can be
distributed into normal areas.
Virtual Links
In a situation where a new area is introduced that does not have a direct physical
attachment to the backbone, a virtual link is used.
A virtual link provides a logical path between the ABR of the disconnected area and
the ABR of the normal area that connects to the backbone. A virtual link must be
established between two ABRs that have a common area, with one ABR connected to
the backbone. Figure 246 illustrates a virtual link.
Note
Virtual links cannot be configured through a stub or NSSA area.
Virtual links are also used to repair a discontiguous backbone area. For example, in
Figure 247, if the connection between ABR1 and the backbone fails, the connection
using ABR2 provides redundancy so that the discontiguous area can continue to
communicate with the backbone using the virtual link.
Link-Type Support
You can manually configure the OSPFv3 link type for a VLAN. The following table
describes the link types.
Note
The number of routers in an OSPFv3 point-to-point link is determined per
VLAN, not per link.
All routers in the VLAN must have the same OSPFv3 link type. If there is a
mismatch, OSPFv3 attempts to operate, but it may not be reliable.
Import Policy
Prior to ExtremeXOS 15.7, routing protocol OSPFv3 applied routing policies with
keyword “import-policy”, which can only be used to change the attributes of routes
installed into the switch routing table. ExtremeXOS 15.7 provides the flexibility of using
import policy to determine the routes to be added to or removed from the routing
table.
To prevent a route being added to the routing table, the policy file must contain a
matching rule with action “deny”. If there is no matching rule for a particular route, or
the keyword “deny” is missing in the rule, the default action is “permit”, which means
that route will be installed into the routing table. Refer to the following policy file
example:
entry entry-one {
if {
nlri 1001:0:0:1:0:0:0:0/64 exact;
}
then {
cost 100;
}
}
entry entry-two {
if {
nlri 2001:0:0:1:0:0:0:0/64 exact;
}
then {
deny;
}
}
In the above policy example, entry-one is used to change the cost of any matching
routes, and entry-two is used to remove those matching routes from the routing table.
Note
Only “Network Layer Reachability Information” (NLRI) and "route origin" can
be used as matching criteria in policy rules; using "next_hop" as a matching
criteria is not supported. Any other policy attribute is not recognized and is
ignored.
Route Redistribution
More than one routing protocol can be enabled simultaneously on the switch.
Route redistribution allows the switch to exchange routes, including static routes,
between the routing protocols. Figure 248 is an example of route redistribution
between an OSPFv3 AS and a RIPng AS.
For example, to run OSPFv3 and RIPng simultaneously, you must first configure both
protocols and then verify the independent operation of each. Then you can configure
the routes to export from OSPFv3 to RIPng and the routes to export from RIPng
to OSPFv3. Likewise, for any other combinations of protocols, you must separately
configure each to export routes to the other.
To enable or disable the exporting of RIPng, static, and direct (interface) routes to
OSPFv3, use the following command:
These commands enable or disable the exporting of RIPng, static, and direct routes by
way of LSA to other OSPFv3 routers as AS-external type 1 or type 2 routes. The default
setting is disabled.
The cost metric is inserted for all RIPng, static, and direct routes injected into OSPFv3.
If the cost metric is set to 0, the cost is inserted from the route. The tag value is used
only by special routing applications. Use 0 if you do not have specific requirements for
using a tag. (The tag value in this instance has no relationship with IEEE 802.1Q VLAN
tagging.)
The same cost, type, and tag values can be inserted for all the export routes, or
policies can be used for selective insertion. When a policy is associated with the export
command, the policy is applied on every exported route. The exported routes can also
be filtered using policies.
Note
For routes exported to OSPFv3 via a policy file, any refresh applied on that
policy may result in temporary withdrawal and then immediate readvertising
of those routes.
show ospfv3
OSPFv3 Timers
Configuring OSPFv3 timers on a per area basis is a shortcut to applying the timers to
each VLAN in the area at the time of configuration.
If you add more VLANs to the area, you must configure the timers for the new VLANs
explicitly. Use the command:
Limitations
• Only non-VPN VRFs are supported. OSPFv3 is blocked on VPN VRFs.
• BGP (Border Gateway Protocol) does not support VPN-IPv6 routes, so PE-CE support
is not available.
OSPFv3 Authentication
There are two ways to perform authentication for OSPFv3: using IPsec and using
Authentication Trailer. See the following for more information:
• IPsec Authentication on page 1682
• Authentication Trailer on page 1683
IPsec Authentication
IPsec is a framework for ensuring secure private communication over IP networks
and is based on standards developed by the International Engineering Task Force
(IETF). IPsec provides security services at the network layer of the Open Systems
Interconnection (OSI) model by enabling a system to select required security protocols,
determine the algorithms to use for the security services, and implement any
cryptographic keys required to provide the requested services. IPsec can be used to
protect one or more paths between a pair of hosts, between a pair of security gateways
(such as switches), or between a security gateway and a host.
OSPFv3 exchanges both multicast and unicast packets. While running OSPFv3 over a
broadcast interface, the authentication required is "one to many." Since IKE is based
on the Diffie-Hellman key agreement protocol and works only for two communicating
parties, it is not possible to use IKE for providing the required "one to many"
authentication. RFC4552 mandates the usage of Manual Keying with current IPsec
implementation. In manual keying, SAs are statically installed on the routers and these
static SAs are used to authenticate packets. it is not scalable and is practically infeasible
to use different security associations for inbound and outbound traffic to provide the
required "one to many" security. Therefore, RFC4552 requires the implementations to
use manually configured keys with the same SA parameters (for example, Security
Parameter Index (SPI), keys, and so forth) for both inbound and outbound SAs.
To configure IPsec with a manual key to provide authentication for OSPFv3 interfaces,
run the following command:
Authentication Trailer
Authentication Trailer for OSPFv3 (as described in RFC 7166) provides an alternative way
to authenticate packets, as IPsec may not be suitable in some environments.
Authentication Trailer uses Keychain Manager to manage keys (see Keychain Manager
Overview on page 1940). Keychain Manager provides OSPFv3 the key string and
algorithm to use for authentication when a key becomes active, and it will notify
OSPFv3 when a key expires. The authentication configuration is per interface or
virtual interface, and the corresponding peers need to be configured with the
same authentication keys. The maximum length of a key string that OSPFv3 can
accommodate is 127 characters, which is the same as the maximum length of a key
string currently allowed by Keychain Manager.
Note
OSPFv3 Authentication Trailer does not support the accept tolerance feature of
Keychain Manager.
Note
The IS-IS feature is supported only at and above the license level listed for
this feature in the license tables in the Switch Engine Licensing Guide
document.
This chapter introduces IS-IS, a link state protocol that distributes routing information
between routers belonging to an autonomous system. It provides configuration
commands and examples and information about configuring, displaying, and
managing IS-IS on a network. This chapter assumes that you are already familiar with
Intermediate System-Intermediate System (IS‑IS) and IP routing.
IS-IS Overview
IS-IS is a link state protocol that distributes routing information between routers
belonging to a single IP domain; the IP domain is also known as an autonomous
system (AS). In a link-state routing protocol, each router maintains a database
describing the topology of the AS. Each participating router has an identical database
maintained from the perspective of that router.
From the link state database (LSDB), each router constructs a tree of shortest paths,
using itself as the root. The shortest path tree provides the route to each destination in
the AS. When several equal-cost routes to a destination exist, traffic can be distributed
among them. The cost of a route is described by a single metric.
IS-IS is an interior gateway protocol (IGP), as are RIP (Routing Information Protocol)
and OSPF (Open Shortest Path First). Unlike RIP and OSPF, IS-IS was not initially
designed for IP. RFC 1195 specifies how IS-IS can run in an IP environment. The Extreme
Networks implementation supports IS-IS only in IP environments. RIP, OSPF, and IS-IS
are compared in RIP. The IPv6 versions of these protocols are compared in RIPng.
Establishing Adjacencies
An adjacency is an acknowledged relationship between two IS-IS routers. An adjacency
must be established before two IS-IS routers can exchange routing information.
IS-IS routers establish adjacencies by exchanging hello PDUs, which are also called
Intermediate System to Intermediate System Hellos (IIHs). Hello PDUs contain some
interface configuration and capability information. Once a pair of neighbors exchanges
hello PDUs with acceptably matching configuration and capabilities, an adjacency is
formed. Hello PDUs are sent periodically by each party to maintain the adjacency.
After an adjacency is formed, information about the adjacency is stored in a link state
PDU (LSP), which is stored in the router link state database (LSDB). Routers periodically
flood all of their LSPs to all other network nodes. When a router receives LSPs, it
adds the LSPs to its LSDB, and uses the LSDB to calculate routes to other routers.
These database maintenance operations are performed a little differently for the two
adjacency types, point-to-point, and broadcast.
Point-to-Point Adjacency
Point-to-point adjacencies can include no more than two routers in the same VLAN
(Virtual LAN). Figure 249 shows a point-to-point adjacency.
A disadvantage to point-to-point adjacencies is that they do not scale well. Figure 250
shows a four-router network with point-to-point adjacencies.
Broadcast Adjacency
Broadcast adjacencies can include two or more routers in a single adjacency. Figure 251
depicts a broadcast adjacency.
The DIS acts on behalf of the pseudonode by advertising an LSP listing all routers in the
adjacency with zero-cost metric. The DIS also periodically sends a complete sequence
number PDU (CSNP), which lists all LSPs in the link-state database. If a router sees
that it is missing one or more of the entries, it multicasts a request for them using a
PSNP. Only the DIS responds to this request by sending the requested LSPs. All routers
multicast their originated LSPs as they are refreshed, and multicast periodic hellos to
the network.
IS-IS Hierarchy
IS-IS has a two-level hierarchy. IS-IS routers may participate in either level or both.
Figure 252 shows a basic IS-IS AS.
In an AS, there is only one L2 area, and it serves as a backbone area between L1 areas.
This L2 area is also called a domain (not to be confused with the entire AS routing
domain). L2 routers communicate with one another irrespective of L1 area membership
or L2 area address.
Note
On any switch, the maximum number of L1/L2 adjacencies is one half the
maximum number of L1 or L2 adjacencies because an L1/L2 adjacency defines
both an L1 adjacency and an L2 adjacency. The supported adjacency limits are
defined in the ExtremeXOS Release Notes.
For information on creating and managing IS-IS areas, see Managing an IS-IS Area
Address on page 1702.
The ExtremeXOS software implementation of IS-IS requires that at least one IPv4 or
IPv6 address be assigned to an interface.
IP addresses and subnets can be assigned independent of area structure provided that
neighboring interfaces are on the same subnet. L1 routers exchange directly reachable
IP address/mask/metric tuples. When routing in an L1 area, packets are routed via L1 if
the destination address is reachable within the area. Otherwise packets are forwarded
to the nearest L2 router. L2 routers advertise all IP addresses reachable in their L1 area (if
they are a member of one), as well as directly reachable addresses.
Summary Addresses
Routers can be manually configured to advertise abbreviated versions of reachable
addresses, which are called summary addresses. By aggregating many routes into
one summary address, route computation and lookup can be made more efficient.
If packets arrive at the router as a result of the summary address but have no actual
route (as a result of the summary address covering more address space than is actually
used), the packets are discarded.
External Connectivity
Externally reachable IP addresses are those learned or exported from other routing
protocols like RIP, BGP (Border Gateway Protocol), and OSPF. When using narrow
metrics, external routes may use internal or external metrics. When calculating SPF,
routes with internal metrics are preferred over routes with external metrics. When
external metrics are used to compare routes, the internal cost is not considered unless
the external metrics are equal.
Authentication
Entire packets (as opposed to individual TLVs in a packet) can be authenticated. If
authentication fails on a packet, the entire packet is discarded. Multi-part packets
are authenticated separately. Routers are not required to support authentication. The
ExtremeXOS software provides optional support for plain-text authentication.
Dynamic Hostname
The dynamic hostname exchange extension helps address the usability issues of
maintaining IS-IS routers. IS-IS system IDs (which default to the switch MAC address)
are not very readable. When the dynamic hostname feature is enabled, learned IS-IS
hostnames are used in place of system IDs in log entries where possible. In addition,
hostname TLVs appear in the show isis lsdb detail command display.
For instructions on managing the dynamic hostname feature, see Configuring the
Dynamic Hostname Feature on page 1698.
Route Leaking
Route leaking allows L2 LSPs to be sent into L1 areas. Route leaking is configured with
the command:
Caution
Route leaking can reduce scalability and performance.
Note
Tracert does not work if the VRF leaked route is one of the hop(s) to
destination.
Metric Types
Interface metrics are available in two sizes: a 6-bit narrow metric and a 24-bit wide
metric. By default only narrow metrics are used. Wide metrics allow for greater
flexibility, however, and are required in order to use some extensions of IS-IS, such as
IPv6. All routers in an IS-IS area must use the same metric style.
For instructions on configuring interface metric style and values, see Configuring VLAN
Interface Metrics on page 1703. Refer to RFC 3787, Section 5.1, for migration details. Note
that the ExtremeXOS software does not support section 5.2.
IS-IS Restart
When an IS-IS router restarts, neighbors time out adjacencies and the network
converges around it. IS-IS restart support, with the help of restart helper neighbors, can
prevent this. A restarting router can send a restart request to indicate to its neighbors
that it is restarting. Neighbors—provided they are helpers—send the restarting router
a CSNP so that it can reconstruct its LSDB by tracking which LSPs it has and has
not received. Neighbors can still time out the adjacency, so this might not work in
environments with low hold timers.
IS-IS restart can be configured for planned and unplanned events. Planned events
are user-initiated process restarts and user-initiated failovers. Unplanned events are
process restarts or failovers that are not administratively initiated.
For information on configuring IS-IS restart, see Configuring the Graceful Restart
Feature on page 1697.
In a single topology, all interfaces in an area must be configured for IPv4, IPv6, or
both IPv4 and IPv6. Adjacencies are denied if the topology configuration between two
routers does not match. A single SPF calculation is performed for each route in a single
topology area.
In a multiple topology area, each interface can be configured for IPv4, IPv6, or both
IPv4 and IPv6. The router creates separate topologies for IPv4 and IPv6. Adjacencies
are permitted between interfaces with different configurations, provided that the
neighbors support at least one common protocol. Separate SPF calculations are
computed for IPv4 and IPv6 routes.
Note
Although the IPv4 and IPv6 topologies can be different when multiple
topologies are enabled, the topologies must be convex. That is, no IPv4
interface can be reachable only through traversal of IPv6 interfaces, and vice
versa. All routers in an area must use the same topology mode.
When the transition topology mode is configured, the router allows adjacencies
between any two interfaces, and distributes both single topology and multiple
topology TLVs. Transition mode permits both single and multiple topologies to coexist,
but it generates more traffic. Transition mode should be used only for transitioning
between modes and should be disabled after the transition is complete.
By default, a single topology is used for both IPv4 and IPv6. As a result, all interfaces
must be homogeneously ISIS-enabled for IPv4, IPv6, or both.
To change the configured topology mode, see Configure the Multi-Topology Feature on
page 1699.
Route Redistribution
More than one routing protocol can be enabled simultaneously on a network. Route
redistribution allows the switch to exchange routes, including static routes, between
the active routing protocols. Figure 253 shows a network that is running two routing
protocols, IS-IS and RIP.
If it does redistribute the RIP routes into IS-IS, all L2 IS-IS routers learn the RIP routes
as type IS-IS level 2 external. The L2 IS-IS routers do not know that the routes actually
originated from RIP. Also, if configured to do so, L1/L2 routers can leak these routes
into the L1 areas and all IS-IS routers learn the RIP routes (without knowing that they
actually came from RIP and without having to actually participate in RIP).
Route redistribution is configurable on both L2 and L1 using the enable isis area
export commands. Redistributing routes into L1 generates L1 external routes. The
export policy can choose to redistribute external routes with internal metrics into IS-IS.
This section describes how to inject routing information learned from other IP routing
protocols into an IS-IS domain, thereby advertising their reachability in the IS-IS
domain. These routes are included in the locally originated LSPs. For information on
exporting routes learned in IS-IS to another routing protocol, see the chapter that
describes the destination routing protocol.
When you export routes from another protocol to IS-IS, the metric and the type of
metric are configured. You can also configure a policy to filter out unwanted external
routes.
• To enable or disable the exporting of BGP, OSPF, RIP, static, and direct (interface)
IPv4 routes to IS-IS, use the following commands:
enable isis area area_name export {ipv4} route-type [policy | metric
mvalue {metric-type [internal | external]}] {level[1| 2 | both-1-
and-2]}
disable isis area area_name export {ipv4} route-type
• To enable or disable the exporting of OSPFv3 (Open Shortest Path First version 3),
RIPng (Routing Information Protocol Next Generation), static, and direct (interface)
IPv6 routes to IS-IS, use the following commands:
enable isis area area_name export ipv6 route-type [policy | metric
mvalue] {level[1| 2 | both-1-and-2]}
disable isis area area_name export ipv6 route-type
The cost metric is inserted for all OSPF, RIP, static, and direct routes injected into
IS-IS.
The same cost and type values can be inserted for all the export routes, or policies
can be used for selective insertion. When a policy is associated with the export
command, the policy is applied on every exported route. The exported routes can
also be filtered using policies.
Configuring IS-IS
Configuring L1 Routers
To configure a switch to operate as a level 1 IS-IS router, do the following:
1. Prepare the IP interfaces that will support level 1 IS-IS routing as follows:
a. Add an IPv4 or IPv6 address.
b. Enable IP or IPv6 forwarding.
2. Create the IS-IS routing process, which is also called an area, using the following
command:
create isis area area_name
3. Configure the routing process to serve as a L1-only router using the following
command:
configure isis area area_name is-type level [1 | 2 | both-1-and-2]
1. Prepare the IP interfaces that will support level 1 IS-IS routing as follows:
a. Add an IPv4 or IPv6 address.
b. Enable IP or IPv6 forwarding.
2. Create the IS-IS routing process, which is also called an area, using the following
command:
create isis area area_name
3. Configure the routing process to serve as an L1/L2 router using the following
command:
configure isis area area_name is-type level [1 | 2 | both-1-and-2]
Specify both-1-and-2 for the level option using the following command:
Note
When no other L2 processes are defined on the router, the default IS type
level is L1/L2, and this command can be omitted.
4. Add an IS-IS area level-1 address to the router using the following command:
configure isis area area_name add area-address area_address
5. Add an IS-IS area level-2 address to the router using the following command:
configure isis area area_name add area-address area_address
6. Add IS-IS-eligible interfaces to the area using the following command:
configure isis add [vlan all | {vlan} vlan_name] area area_name {ipv4
| ipv6}
An IS-IS-eligible interface is one that already has the appropriate IP address type
(IPv4 or IPv6) address assigned to it.
7. If your topology requires interfaces to operate at a specific topology level, configure
the appropriate interfaces with the following command:
configure isis [vlan all | {vlan} vlan_name] circuit-type level [1 | 2
| both-1-and-2]
8. The default IS-IS system ID is the switch MAC address. If you want to change the
default IS-IS system ID, use the following command:
configure isis area area_name system-id [automatic | system_id]
Note
Although the IS-IS protocols manage IP routing, they use the
Connectionless Network Protocol (CLNP) for IS-IS communications between
routers. The IS-IS system ID is required to identify the router in the AS.
Configuring L2 Routers
To configure a switch to operate as a level 2 IS-IS router, do the following:
1. Prepare the IP interfaces that will support level 2 IS-IS routing as follows:
a. Add an IPv4 or IPv6 address.
b. Enable IP or IPv6 forwarding.
2. Create the IS-IS routing process, which is also called an area, using the following
command:
create isis area area_name
3. Configure the routing process to serve as a L2-only router using the following
command:
configure isis area area_name is-type level [1 | 2 | both-1-and-2]
Note
The import policy cannot be used to select which routes are added to the
routing table. The import policy can only modify the route attributes as
routes are added to the routing table.
Managing IS-IS
Note
The password configuration commands in this section provide an encrypted
option, which controls how the passwords are saved and displayed on the
switch. The encrypted option does not encrypt messages that are transmitted
on the network. All passwords are transmitted in clear text.
• To configure password security for a level 2 domain, use the following command:
configure isis area area_name domain-password [none | {encrypted}
simple password {authenticate-snp {tx-only}}]
• To configure password security for a level 1 area, use the following command:
configure isis area area_name area-password [none | {encrypted} simple
password {authenticate-snp {tx-only}}]
Note
Enabling or disabling the overload bit feature does not modify the
configuration of the command:
configure isis area area_name overload-bit on-startup [ off |
{suppress [external | interlevel | all]} seconds]
• To clear the IS-IS counters only for one or all VLANs, use the following command:
clear isis counters [vlan all | {vlan} vlan_name]
• To delete an IS-IS area address from a router, use the following command:
configure isis area area_name delete area-address area_address
Note
The ExtremeXOS software implementation of IS-IS supports no more than
three area addresses.
Note
The interface is not enabled separately from the area. If the area is enabled,
the interface will begin transmitting hellos as soon as this command is
executed, provided the interface is in forwarding mode and has active links.
To overcome these restrictions, a second pair of TLVs is available, one for IP prefixes (TLV
135) and the second for IS-IS adjacency (TLV 22). With these TLVs, IS-IS metrics can have
values up 16,777,215 and the maximum path metric allowed is 4,261,412,864. This allows
more flexibility while designing a domain. These metrics are wide metrics.
• To configure the metric style used on the router, use the following command:
configure isis area area_name metric-style [[narrow | wide]
{transition}] | transition] {level [1 | 2]}
• To configure the narrow metric used on one or all interfaces, use the following
command:
configure isis [vlan all | {vlan} vlan_name] metric metric {level[1|
2]}
• To configure the wide metric used on one or all interfaces, use the following
command:
configure isis [vlan all | {vlan} vlan_name] wide-metric metric
{level[1 | 2]}
Note
Configured narrow and wide metrics for a particular interface must be
identical in value while migrating from metric style narrow to metric style
wide. Only if the metric style is “narrow” or “wide” (that is, no “transition”) is it
okay to have different values (because one of the values is not used).
Note
DIS priority 0 is the lowest priority value. Unlike an OSPF DR election, a DIS
priority of 0 does not make a router ineligible for DIS election.
a. To block the flooding of received LSPs altogether, use the mesh block-all
option.
b. To block the flooding of LSPs received on a specific group of interfaces (which
are those with the same mesh group ID), use the mesh block-group group_id
option.
c. To remove blocking for an interface, use the mesh block-none option.
Configuration Example
The following example shows the commands that configure an IS-IS router. Some
commands apply to IPv4 or IPv6 and are labeled accordingly. Comments in
parentheses identify commands that apply to specific applications.
create vlan v1
configure default delete ports 1
configure v1 add ports 1
IPv4:
configure v1 ipaddress 10.0.0.1/24
enable ipforwarding v1
IPv6:
configure v1 ipaddress fe80::204:96ff:fe20:b40a/128
enable ipforwarding ipv6 v1
create isis area a1
configure isis area a1 add area-address 01.0101.0202.0303.0404.0505.0606
configure isis area a1 system-id 11aa.22bb.33cc
configure isis area a1 is-type level 1 (For Level 1 Router)
configure isis area a1 is-type level 2 (For Level 2 Router)
configure isis area a1 is-type level both-1-and-2 (For Level 1/2 Router)
configure isis area a1 metric-style wide
IPv4 Mapping:
configure isis add vlan v1 area a1
IPv6 Mapping:
configure isis add vlan v1 area a1 ipv6
BGP Overview
BGP is an exterior routing protocol that was developed for use in TCP/IP networks.
The primary function of BGP is to allow different ASs to exchange network reachability
information.
An AS is a set of routers that are under a single technical administration. This set of
routers uses a different routing protocol, for example OSPF (Open Shortest Path First),
for intra-AS routing. One or more routers in the AS are configured to be border routers,
exchanging information with other border routers (in different ASs) on behalf of all of
the intra-routers.
BGP can be used as an exterior border gateway protocol (referred to as EBGP), or it can
be used within an AS as an interior border gateway protocol (referred to as IBGP).
Note
ExtremeXOS supports BGP version 4 only, and does not support connections
to peers running older versions of BGP.
For complete information about software licensing, including how to obtain
and upgrade your license and what licenses are appropriate for these features,
see the Switch Engine Licensing Guide document..
Note
When entering an AS number in a policy file, you must enter a unique 2-byte
or 4-byte AS number. The transition AS number, AS 23456, is not supported in
policy files.
BGP Attributes
The following BGP attributes are supported by the switch:
• Origin—Defines the origin of the route. Possible values are Interior Gateway Protocol
(IGP), Exterior Gateway Protocol (EGP), and incomplete.
• AS_Path—The list of ASs that are traversed for this route. The local AS-path is added
to the BGP update packet after the policy is applied.
• AS4_Path—This attribute is used by 4-byte peers when sending updates to 2-byte
peers. This attribute carries AS-number information that can be represented only in
4-bytes.
• Next_hop—The IP address of the next hop BGP router to reach the destination listed
in the NLRI field.
• Multi_Exit_Discriminator—Used to select a particular border router in another AS
when multiple border routers exist.
Although these two community types are generally used in L3 VPN network setup, you
can also use them in a non-L3 VPN network to control the distribution of BGP routes.
BGP does not send either the extended or standard community attributes to their
neighbors by default; you must use the configuration command configure bgp
neighbor send-community.
The extended-community keyword has been added in the Policy Manager, and can be
used in the match as well as in the set block of a policy file.
entry one {
if {
extended-community "rt:64500:20000 rt:10.203.134.5:40 soo:64505:50000
soo:192.168.34.1:600";
} then {
permit;
}
}
The above community statement will match with all BGP routes that have at least one
of the following extended communities in their extended community attribute:
• rt:64500:20000
• rt:10.203.134.5:40
• soo:64505:50000
• soo:192.168.34.1:600
entry two {
if {
nlri 192.168.34.0/24;
} then {
extended-community set "rt:10.45.92.168:300";
extended-community add "rt:10.203.100.200:40 soo:64500:60000";
When the above policy entry is applied to the route's extended community attribute,
the following is true:
• After applying the 1st set (community set "rt:10.45.92.168:300"), the route's
community becomes rt:10.45.92.168:300.
• After applying the 2nd set (community add "rt:10.203.100.200:40 soo:64500:60000"),
the community becomes rt:10.45.92.168:300 rt:10.203.100.200:40 soo:64500:60000.
• After applying the 3rd set (community delete "rt:64505:10000 soo:72.192.34.10:70"),
the community becomes rt:10.45.92.168:300 rt:10.203.100.200:40 soo:64500:60000.
Please note that this delete statement has no effect as none of the communities
in the delete statement are present in the community attribute.
Aggregation of several extended community attributes is simply the set union of all the
extended communities from all of the aggregated routes.
Multiprotocol BGP
Multiprotocol BGP (MBGP), which is also known as BGP4+, is an enhanced BGP that
supports more than just IPv4 unicast routes. In this release, MBGP supports:
• IPv4 unicast routing and IPv4 multicast routing on the platforms listed for this
feature in the Switch Engine Licensing Guide document.
• IPv6 unicast routing and IPv6 multicast routing on the platforms listed for this
feature in the Switch Engine Licensing Guide document.
• Layer 3 VPN routing on the platforms listed for this feature in the Switch Engine
Licensing Guide document..
MBGP support for separate unicast and multicast routing tables allows BGP to have
non-congruent topologies for unicast and multicast networks. The BGP multicast
address-family routes are used by multicast protocols such as Protocol Independent
Multicast (PIM) to build data distribution trees.
Route Reflectors
One way to overcome the difficulties of creating a fully meshed AS is to use route
reflectors. Route reflectors allow a single router to serve as a central routing point for
the AS. All BGP speakers in the AS will peer with the route reflector to learn routes.
A cluster is formed by the route reflector and its client routers. Peer routers that are not
part of the cluster must be fully meshed according to the rules of BGP.
A BGP cluster, including the route reflector and its clients, is shown in Figure 254.
In this example, although the BGP speakers 3.3.3.3 and 4.4.4.4 do not have a direct
BGP peering session between them, these speakers still receive routes from each other
indirectly through 2.2.2.2. The router 2.2.2.2 is called a route reflector and is responsible
for reflecting routes between its clients. Routes received from the client 3.3.3.3 by the
router 2.2.2.2 are reflected to 4.4.4.4 and vice-versa. Routes received from 1.1.1.1 are
reflected to all clients.
Route Confederations
BGP requires networks to use a fully meshed router configuration. This requirement
does not scale well, especially when BGP is used as an IGP. One way to reduce the
size of a fully meshed AS is to divide the AS into multiple sub-ASs and to group these
sub-ASs into a routing confederation. Within the confederation, each sub-AS must be
fully meshed. The confederation is advertised to other networks as a single AS.
The default configuration (no BGP inactive route advertisement) is more consistent
with data traffic forwarding. However, when advertisement of inactive BGP routes is
enabled, BGP need not depend upon the route manager module to know whether a
BGP route is active or not. This actually improves the performance of BGP processing
and advertisement.
When BGP inactive route advertising is enabled, inactive BGP routes are considered for
BGP route aggregation. When this feature is disabled, inactive BGP routes are ignored
while aggregating routes.
When default route origination becomes active, the default route is advertised to the
specified BGP neighbors, overriding any previously sent default route. If a default route
is added to the local IP routing table while default route origination is active, the
default route defined by this feature takes precedence over the new regular default
route. If default route origination becomes inactive, and a regular default route exists,
the regular default route is advertised to BGP neighbors.
When you use a policy with default route origination, the default route is originated
only if the local BGP RIB contains a route that matches the policy match conditions.
You can use the following match conditions:
• NLRI
• AS-path
• Community
• Origin
You can also use the following policy actions in the policy to set the route attributes:
• AS-path
• Community
• Origin
After a policy is configured for default route origination, BGP must periodically scan the
local BGP RIB to make sure that the policy rules evaluate to true for at least one route
in local BGP RIB. If the rules evaluate to true, default origination remains active. If the
rules evaluate to false, then default origination becomes inactive and the default routes
must be withdrawn.
For more information on policy match conditions, actions, and configuration, see
Routing Policies.
There are certain cases (such as in a spoke and hub topology) where it becomes
necessary to accept and process EBGP routes with a looped AS_Path attribute.
This feature enables you to control the processing of EBGP routes with a looped
AS_Path attribute. You can do the following:
• Allow the route with a looped AS_Path to be accepted
• Allow the route with a looped AS_Path to be accepted only if the number of
occurrences of its own AS-Number is less than or equal to N, where N is an user-
configurable unsigned integer configured
• Silently discard the route with looped AS_Path
Note
A looped AS path is always allowed for IBGP, irrespective of the BGP
configuration.
Each BGP peer group is assigned a unique name when it is created, and each peer
supports either IPv4 or IPv6 address families (but not both).
When the first peer is added to a BGP peer group, the peer group adopts the IPv4 or
IPv6 address family of the assigned peer. After the first peer is assigned, the peer group
does not support any configuration options or capabilities for the IP address family not
selected. For example, if an IPv6 peer is the first peer added to a peer group, the peer
group no longer supports IPv4 configuration options or capabilities.
Changes made to the parameters of a peer group are applied to all neighbors in the
peer group.
Modifying the following parameters will automatically disable and enable the
neighbors before changes take effect:
• remote-as
• timer
• source-interface
• soft-in-reset
• password
This feature applies to both IPv4 and IPv6 peering sessions. Both IPv6 global and link
local peering sessions are supported.
Limitations
• The BFD setting can be applied on a per-peer basis, but the ability to set BFD on a
peer-group or address-family basis is not currently supported.
• The BGP peer must be in the disabled admin state to modify its BFD setting.
• While BFD can be enabled on any BGP peering session, protection is only provided
for directly connected EBGP peering sessions.
The route flap dampening feature minimizes the flapping problem by halting route
advertising and withdrawal messages for the affected route for a period of time. To
support route flap dampening, the ExtremeXOS software employs a combination of
two techniques. The first technique uses fixed timers to reduce the frequency of route
advertisement as specified in RFC 4271. The other technique uses route flap damping
algorithms. The software uses a combination of both techniques as specified in RFC
2439.
The fixed timers technique blocks all updates for the flapping route for a period
defined by the internal MinRouteAdvertisementInterval (MRAI) timer (which is not
configurable). For IBGP routes, this timer is set for 5 seconds. For EBGP routes, this
timer is set to 30 seconds. The MRAI timer check is independent of the dampening
configuration and is used to limit the frequency of route advertisements.
The route flap dampening algorithm uses configurable timers to manage route flap
dampening. Suppose that the route to network 172.25.0.0 flaps. The router (in which
route dampening is enabled) responds by doing the following:
• Assigns route 172.25.0.0 a penalty of 1000 and moves it to a history state in which the
penalty value is monitored.
• Increments the penalty value by 1000 for each additional route flap.
• Accumulates penalties and compares them to the suppression limit, which is set to
2000 by default.
If the suppression limit is exceeded when the MRAI timer expires, the route is not
advertised to neighbors.
A route remains suppressed or dampened until one of the following events occurs:
• The suppression limit is not met when the MRAI timer expires.
• The penalty placed on network 172.25.0.0 is decayed below the reuse limit.
• The maximum suppression timer expires.
The penalty is decayed by reducing the penalty value by one-half at the end of a
configurable time period, called the half-life. Routes that flap many times may reach
a maximum penalty level, or ceiling, after which no additional penalty is added. The
ceiling value is not directly configurable, but the configuration parameter used in
practice is the maximum route suppression time. No matter how often a route has
flapped, after it stops flapping, it is advertised after the maximum route suppression
time.
• You want to conserve AS numbers if you are multihomed to the local AS.
Route Redistribution
Multiple protocols, such as BGP, OSPF, and RIP (Routing Information Protocol), can
be enabled simultaneously on the switch. Route redistribution allows the switch to
exchange routes, including static and direct routes, between any two routing protocols.
Exporting routes from another protocol to BGP and from BGP to another protocol are
discrete configuration functions. For example, to run OSPFv3 (Open Shortest Path First
version 3) and BGP simultaneously, you must first configure both protocols and then
verify the independent operation of each. Then you can configure the routes to export
from OSPFv3 to BGP and the routes to export from BGP to OSPFv3.
BGP ECMP
The BGP ECMP (Equal Cost Multi Paths) feature supports load sharing by creating a
multipath to a destination. This multipath contains multiple routes that are determined
to have an equal cost because the following parameters are the same for each route:
• Weight
• Local preference (for IBGP multipaths)
• AS path (entire attribute, not just the length)
• Origin code
• Multi Exit Discriminator (MED)
• IGP distance to the next hop
• Source session (EBGP or IBGP)
Note
ECMP does not install an additional path if the next hop is the same as that of
the best path. All paths within a multipath must have a unique next hop value.
BGP ECMP does not affect the best path selection. For example, the router continues
to designate one of the paths as the best path and advertise this best path to its
neighbors. EBGP paths are preferred to IBGP paths.
The BGP ECMP feature allows you to define the maximum number of equal cost
paths (up to 64) in a multipath. A multipath for an IBGP destination is called an IBGP
multipath, and the multipath for an EBGP destination is called an EBGP multipath.
If there are more equal cost paths for a destination than the configured maximum,
the BGP identifier for the advertising BGP speaker is used to establish a path priority.
The lower BGP identifier values have priority over the higher values. For example, if the
configuration supports 4 paths in a multipath, only the four paths with the lowest BGP
identifier values become part of the multipath.
BGP Mulitipath-Relax
This feature overrides the default protocol behavior specified in RFC-4271 related to
route selection tie breakers and the definition of equal cost. In particular, routes with
the same AS-path length, but differing AS numbers in the path are not considered
equal cost by default. However, with multipath-relax enabled, routes with the same AS-
path length can have differing AS number values in the AS-path and still be considered
equal cost.
By default, BGP considers two routes as equal cost if the costs are equal through step
(e) of the tie breaker procedure specified in Section 9.1.2.2 of RFC-4271. Step (a) of this
procedure specifies that the AS-path length must be the same and the AS values
within the path must also be the same. When the multipath-relax feature is enabled,
the restriction that the AS values themselves must be the same is “relaxed”. So two
routes with a different AS values in the path can be consider equal cost provided that
the AS-path length is equal and the remaining criteria specified in the tie-breaker
procedure [through step (e)] are the also equal. Note that multipath support must be
also be enabled on the device both in BGP and RTMGR for this feature to have any
effect.
In the restarting router, a graceful BGP restart preserves the BGP routes in the routing
table, which allows the router to continue to use those routes until one of the following
events occurs:
• The BGP restart is complete.
• The restart update delay timer expires.
During the restart, all pre-existing routes are marked stale. BGP receives new routes
during the restart, but the Routing Information Base (RIB) is not updated and
advertised until the restart is complete. An End of RIB message is sent when the restart
is complete if the graceful restart feature is enabled.
An update-delay timer value determines how long the restarting switch will wait before
updating the stale routes. If this timer expires before the restarting switch receives
updates from the receiving routers, all stale routes are deleted. If the receiving routers
provide updates before this timer expires, the time-stamps for any matching entries in
the local RIB are preserved.
After the new BGP session is established, the new session uses the capabilities
established with that session, which includes any updates to the graceful restart
capability or timers.
If the receiving router receives RIB updates and the EOR marker before the timers
expire, it updates the local RIB and deletes any stale entries. If either of the timers on
the receiving router expires before the receiving switch receives the EOR marker from
the restarting switch, all stale routes are deleted.
Cease Subcodes
BGP uses the cease subcode in notification message to convey the reason for
terminating the session. The cease subcodes currently supported are given in Table
172.
Administrative Shutdown
This cease notification subcode is sent to a BGP neighbor in following two situations:
• BGP neighbor is disabled
• BGP protocol is globally disabled. All BGP neighbors that were in the established
state send cease notifications with this subcode
Peer De-configured
This cease notification subcode is sent when BGP neighbor is deleted.
When BGP fast external fallover is enabled, the directly-connected EBGP neighbor
session is immediately reset when the connecting link goes down and routes are
learned over the BGP session. Failover is not initiated if routes are not learned over
the BGP session.
If BGP fast external fallover is disabled, BGP waits until the default hold timer expires
(3 keepalives) to reset the neighboring session. In addition, BGP may tear down the
session somewhat earlier than hold timer expiry if BGP detects that the TCP session
and it's directly connected link is broken (BGP detects this while sending or receiving
data from the TCP socket).
Capability Negotiation
BGP supports the negotiation of the following capabilities between BGP peers:
• IPv4 unicast address family
• IPv4 multicast address family
• IPv6 unicast address family
• IPv6 multicast address family
• Route-refresh (code = 64 and Cisco-style code = 128)
• 4-byte-AS (code = 65)
BGP brings up peering with the minimal common capability for the both sides. For
example, if a local router with both unicast and multicast capabilities peers with a
remote router with unicast capability, the local router establishes the connection with
unicast-only capability.
When there are no common capabilities, BGP sends an Unsupported Capability error
and resets the connection. A manual intervention and configuration change might be
required in order to establish a BGP peering session in this particular case.
Note
ExtremeXOS version 12.0 and earlier does not negotiate address families. By
default, ExtremeXOS version 12.1 advertises MBGP options and is rejected by
switches running previous versions, which can delay the establishment of a
BGP session. We recommend that you disable the capability advertisement
feature of MBGP while peering with switches running previous versions of
ExtremeXOS for faster neighbor session establishment.
By default, BGP sends those capabilities in its OPEN message. In addition, BGP
supports graceful restart.
If the peer speaker sends no capabilities, but the local speaker is configured for the IPv4
unicast capability, the assumption is that the peer speaker is operating in legacy mode,
and the session defaults to the exchange of IPv4 unicast NLRIs (a non MBGP session).
If the local speaker is configured explicitly with the IPv4 unicast family disabled, it
cannot peer with legacy peers, and it will send the Optional Attribute Error whenever it
receives an update packet. Because the IPv4 address family is enabled for Extreme
Networks switches by default, it is recommended that you explicitly disable this
address family when you desire non-standard behavior.
Route Refresh
Route Refresh helps minimize the memory footprint of BGP by not storing the original
BGP route path attributes from a neighbor that advertises route refresh capability in
an OPEN message. Whenever you execute the command configure bgp neighbor
[remoteAddr | all] {addressfamily [ipv4-unicast | ipv4-multicast]} soft-
reset in, BGP sends a route refresh message to its peer if that peer had advertised
route refresh capability in its OPEN message. In response to the route refresh message,
the neighbor sends its entire RIB-OUT database for the requested address family. This
helps reapply the inbound neighbor policy, if there are any changes.
Configuring BGP
Configuration Overview
The following procedure configures a basic BGP topology:
1. Configure the interfaces that will connect to BGP neighbors. For each interface, do
the following:
a. Create a VLAN (Virtual LAN).
b. Assign one or more ports to the VLAN.
c. Configure a VLAN IP address.
d. Enable IP forwarding on the VLAN.
For more information on configuring VLANs, see VLANs on page 582
2. Configure the BGP router ID using the following command:
configure bgp routerid router identifier
3. Configure the AS number to which the router should belong using the following
command:
configure bgp AS-number number
4. Configure the BGP neighbor retry timer using the following command:
configure bgp neighbor [all | remoteaddr] connect-retry seconds
5. To configure the BGP retry timer to a specified peer group, use the following
command:
configure bgp peer-group peer-group-name connect-retry seconds
6. To add one or more IBGP neighbors, use the following command and specify the AS
number to which the router belongs:
create bgp neighbor remoteaddr remote-AS-number as-number {multi-hop}
7. To add one or more EBGP neighbors, use the following command and specify the
AS number of the remote AS (which is different from the AS to which the router
belongs):
create bgp neighbor remoteaddr remote-AS-number as-number {multi-hop}
8. If you want to simultaneously configure BGP options for multiple neighbors, create
and configure peer groups as described in Configuring BGP Peer Groups.
9. If the BGP network will support IPv4 traffic, you can skip this step. You can also
skip this step, if for an IPv6 BGP neighbor, you only want ipv6-unicast, which is
automatically enabled when you create the peer. If the BGP network will support
any other address family, you must enable support for that address family on BGP
neighbors with either of the following commands:
enable bgp neighbor [all |remoteaddr] capability [ipv4-unicast | ipv4-
multicast | ipv6-unicast | ipv6-multicast | vpnv4 | route-refresh |
ipv4-vxlan | l2vpn-evpn]
enable bgp peer-group peer-group-name capability [ipv4-unicast | ipv4-
multicast | ipv6-unicast | ipv6-multicast | vpnv4 | route-refresh]
10. To configure additional BGP neighbor options, see Configuring BGP Neighbors.
11. For instructions on configuring additional BGP features, see the list under
Configuring BGP.
The max-paths setting applies to BGP on the current VR. Specify more than 1 path
to enable BGP ECMP and define the maximum number of paths for IBGP and EBGP
multipaths. Specify 1 path to disable ECMP. To display BGP ECMP configuration
information, use the show bgp command.
show bgp
Note
ExtremeXOS allows the sending and receiving of IPV6 routes over IPV4
peering sessions, and IPV4 routes over IPV6 peering sessions.
• To configure the weight value that applies to routes learned from a neighbor, use the
following command:
configure bgp neighbor [remoteaddr | all] weight weight
• To configure the weight value that applies to routes learned from the neighbors in a
peer group, use the following command:
configure bgp peer-group peer-group-name weight weight
• To configure the maximum number of prefixes to accept from a BGP neighbor, use
the following command:
configure bgp neighbor [remoteaddr | all] {address-family [ipv4-
unicast | ipv4-multicast | ipv6-unicast | ipv6-multicast | vpnv4]}
maximum-prefix number {{threshold percent} {teardown {holddown-
interval seconds}} {send-traps}
• To configure the maximum number of prefixes to accept from the neighbors in a
peer group, use the following command:
configure bgp peer-group peer-group-name {address-family [ipv4-unicast
| ipv4-multicast | ipv6-unicast | ipv6-multicast | vpnv4]} maximum-
prefix number {{threshold percent} {teardown {holddown-interval
seconds}} {send-traps}
• To enable and disable the acceptance of looped routes from one or all neighbors,
use the following commands:
configure bgp neighbor [all | remoteaddr] {address-family [ipv4-
unicast | ipv4-multicast | ipv6-unicast | ipv6-multicast | vpnv4]}
allowas-in {max-as-occurrence as-count}
configure bgp neighbor [all | remoteaddr] {address-family [ipv4-
unicast | ipv4-multicast | ipv6-unicast | ipv6-multicast | vpnv4]}
dont-allowas-in
• To enable and disable the acceptance of looped routes from the neighbors in a peer
group, use the following commands:
configure bgp peer-group peer-group-name {address-family [ipv4-unicast
| ipv4-multicast | ipv6-unicast | ipv6-multicast | vpnv4]} allowas-in
{max-as-occurrence as-count}
• To enable or disable BGP default route origination and advertisement for BGP
neighbors, use the following commands:
enable bgp [{neighbor} remoteaddr | neighbor all] {address-family
[ipv4-unicast | ipv4-multicast | ipv6-unicast | ipv6-multicast]}
originate-default {policy policy-name}
disable bgp [{neighbor} remoteaddr | neighbor all] {address-family
[ipv4-unicast | ipv4-multicast | ipv6-unicast | ipv6-multicast]}
originate-default
• To enable or disable BGP default route origination and advertisement for a peer
group, use the following commands:
enable bgp {peer-group} peer-group-name {address-family [ipv4-unicast
| ipv4-multicast | ipv6-unicast | ipv6-multicast]} originate-default
{policy policy-name}
This command applies to the specified address family for all neighbors.
• To enable or disable BGP inactive route advertising, use the following commands:
enable bgp {address-family [ipv4-unicast | ipv4-multicast | ipv6-
unicast | ipv6-multicast]} advertise-inactive-route
disable bgp {address-family [ipv4-unicast | ipv4-multicast | ipv6-
unicast | ipv6-multicast]} advertise-inactive-route
Enable and Disable the Soft Input Reset Feature for a Neighbor
• To enable or disable the soft input reset feature for a neighbor, use the following
commands:
enable bgp neighbor [all |remoteaddr] capability [ipv4-unicast | ipv4-
multicast | ipv6-unicast | ipv6-multicast | vpnv4 | route-refresh |
ipv4-vxlan | l2vpn-evpn]
disable bgp neighbor [all | remoteaddr] capability [ipv4-unicast |
ipv4-multicast | ipv6-unicast | ipv6-multicast | vpnv4 | route-refresh
| ipv4-vxlan | l2vpn-evpn]
• Enable or disable the soft input reset feature for a peer group.
enable bgp peer-group peer-group-name {address-family [ipv4-unicast |
ipv4-multicast |ipv6-unicast |ipv6-multicast |vpnv4]}soft-in-reset
disable bgp peer-group peer-group-name {address-family [ipv4-unicast |
ipv4-multicast |ipv6-unicast | ipv6-multicast]} soft-in-reset
• To disable route flap dampening for a BGP neighbor or peer group, use the following
commands:
configure bgp neighbor [remoteaddr | all] {address-family [ipv4-
unicast | ipv4-multicast | ipv6-unicast | ipv6-multicast | vpnv4]} no-
dampening
configure bgp peer-group peer-group-name {address-family [ipv4-unicast
| ipv4-multicast | ipv6-unicast | ipv6-multicast | vpnv4]} no-
dampening
Note
When you disable dampening, all the configured dampening parameters
are deleted.
Note
This configuration is independent of peers, and it is applied to entire BGP.
Note
No capabilities are enabled at time of peer-group creation. If an IPv4 peer is
the first peer added to the peer-group, the IPv4-unicast and IPv4-multicast
capabilities are enabled by default. If the first peer assigned to a peer-group is
an IPv6 peer, no capabilities are enabled.
Note
This command adds the route to BGP only if the route is present in the
routing table.
You can use route maps to associate BGP attributes including Community, NextHop,
MED, Origin, and Local Preference with the routes. Route maps can also be used to
filter out exported routes.
For instructions on importing routes from another protocol to BGP, refer to the chapter
for the protocol from which you want to import routes.
• To configure an import policy to apply to imported routes, use the following
command:
configure bgp import-policy [policy-name | none]
For Layer 3 VPNs, a local PE stores the routes received from a remote PE in the
VPN-VRF RIB.
• To enable or disable export of these routes as IPv4 unicast routes to the CE, use the
following command:
enable bgp export remote-vpn {export-policy} policy-name} {address-
family [ipv4-unicast | vpnv4]}
disable bgp export remote-vpn {address-family [ipv4-unicast | vpnv4]}
You can use route maps to associate BGP attributes including Community, NextHop,
MED, Origin, and Local Preference with the routes. Route maps can also be used to
filter out exported routes.
• To enable or disable the export of routes into BGP from other routing sources like
ospf and rip, use the following commands:
enable bgp export [blackhole | direct | isis | isis-level-1 | isis-
level-1-external | isis-level-2 | isis-level-2-external | ospf | ospf-
extern1 | ospf-extern2 | ospf-inter | ospf-intra | ospfv3 | ospfv3-
extern1 | ospfv3-extern2 | ospfv3-inter | ospfv3-intra | rip | ripng |
static {address-family [{ipv4-unicast |ipv4-multicast | ipv6-unicast |
ipv6-multicast]} {export-policy policy-name}
disable bgp export [blackhole | direct | isis | isis-level-1 | isis-
level-1-external | isis-level-2 | isis-level-2-external | ospf | ospf-
extern1 | ospf-extern2 | ospf-inter | ospf-intra | ospfv3 | ospfv3-
extern1 | ospfv3-extern2 | ospfv3-inter | ospfv3-intra | rip | ripng |
static {address-family [{ipv4-unicast |ipv4-multicast | ipv6-unicast |
ipv6-multicast]}
Note
When exporting BGP routes, static routes, configured with the configure
bgp add network command, take precedence over BGP discovered routes.
For Layer 3 VPNs, a local PE advertises the local customer routes to the remote PE by
exporting the BGP routes in the VPN-VRF associated with that customer as VPNv4
routes.
• To enable or disable the export to the remote PE of BGP routes from the CE or static/
direct routes in the CE VPN-VRF, use the following commands:
enable bgp export [bgp | direct | static] {export-policy} policy-name}
{address-family [ipv4-unicast | vpnv4]}
disable bgp export [bgp | direct | static] {address-family [ipv4-
unicast | vpnv4]}
Managing BGP
Note
The BFD setting can be applied on a per peer basis, the ability to set BFD
on a peer-group or address-family basis is not currently supported. The BGP
peer must be in the disabled admin state to modify its BFD setting. While BFD
can be enabled on any BGP peering session, protection is only be provided for
directly connected EBGP/IBGP peering sessions.
Note
Configuring both BFD and graceful restart for BGP on the same switch is
counterproductive. When an interface goes down, BFD detects this instantly,
stops traffic forwarding and the BGP session goes down, whereas graceful
restart forwards traffic despite the interface failure. This behavior might cause
traffic loss. Therefore we do not recommend configuring both BFD and
graceful restart on the same switch.
Reapply a Policy
• To reapply the route policy associated with the network command, aggregation,
import, and redistribution, use the following command:
configure bgp soft-reconfiguration
Configuration Examples
Switch1 Configuration
create vlan v1
configure v1 ipaddress 2001:db8:1::1/48
configure v1 add ports 1
create vlan net
configure net add ports 3
configure net ipaddress 2001:db8:22::1/48
enable ipforwarding ipv6
configure bgp AS-number 100
configure bgp routerid 1.1.1.1
create bgp neighbor 2001:db8:2131::2 remote-AS-number 100
enable bgp neighbor all capability ipv6-unicast
enable bgp neighbor all
enable bgp
configure bgp add network address-family ipv6-unicast 2001:db8:22::/48
configure iproute add 2001:db8:2131::/48 2001:db8:1::2
configure ospfv3 routerid 1.1.1.1
configure ospfv3 add vlan v1 area 0.0.0.0
enable ospfv3
Switch2 Configuration
create vlan v1
create vlan v2
create vlan lpback
enable loopback lpback
configure v1 ipaddress 2001:db8:1::2/48
configure v2 ipaddress 2001:db8:2::1/48
configure lpback ipaddress 2001:db8:2131::2/48
enable ipforwarding ipv6
configure v1 add ports 1:9
configure v2 add ports 1:11
configure bgp AS-number 100
configure bgp routerid 1.1.1.2
create bgp neighbor 2001:db8:1::1 remote-AS-number 100
create bgp neighbor 2001:db8:2::2 remote-AS-number 200
configure bgp neighbor 2001:db8:1::1 source-interface ipaddress 2001:db8:2131::2
enable bgp neighbor all capability ipv6-unicast
enable bgp neighbor all
enable bgp
configure ospfv3 routerid 1.1.1.2
configure ospfv3 add vlan all area 0.0.0.0
enable ospfv3
Switch3 Configuration
create vlan v1
create vlan net
configure v1 add ports 2:11
configure net add ports 1:23
configure v1 ipaddress 2001:db8:2::2/48
configure net ipaddress 2001:db8:55::1/48
enable ipforwarding ipv6
configure bgp AS-number 200
configure bgp routerid 2.1.1.2
create bgp neighbor 2001:db8:2::1 remote-AS-number 100
enable bgp neighbor all capability ipv6-unicast
enable bgp neighbor all
enable bgp
enable bgp export static address-family ipv6-unicast
enable bgp export direct address-family ipv6-unicast
configure iproute add 2001:db8:66::/48 2001:db8:55::100
As-PATH: 200
To configure router 1.1.1.1 to connect to the route reflector as a regular BGP peer, use the
following commands:
create vlan to_rr
configure vlan to_rr add port 1:1
configure vlan to_rr ipaddress 10.0.0.1/24
enable ipforwarding vlan to_rr
To configure router 2.2.2.2, the route reflector, use the following commands:
create vlan to_nc
configure vlan to_nc add port 1:1
configure vlan to_nc ipaddress 10.0.0.1/24
enable ipforwarding vlan to_nc
create vlan to_c1
configure vlan to_c1 add port 1:2
configure vlan to_c1 ipaddress 10.0.2.2/24
enable ipforwarding vlan to_c1
Switch4 Configuration
Switch4 is not a route reflector client. To configure this switch, enter the following
commands:
create vlan "net"
enable loopback-mode vlan net
create vlan "v1"
configure vlan v1 add ports 9
configure v1 ipaddress 2001:db8:5::2/48
configure net ipaddress 2001:db8:2555::1/48
enable ipforwarding ipv6
configure bgp AS-number 100
configure bgp routerid 5.1.1.2
configure bgp add network address-family ipv6-unicast 2001:db8:2555::/48
create bgp neighbor 2001:db8:5::1 remote-AS-number 100
enable bgp neighbor 2001:db8:5::1 capability ipv6-unicast
enable bgp neighbor 2001:db8:5::1
enable bgp
configure ospfv3 routerid 5.1.1.2
configure ospfv3 add vlan v1 area 0.0.0.0
enable ospfv3
create vlan ac
configure vlan ac add port 2
configure vlan ac ipaddress 10.1.1.17/30
enable ipforwarding vlan ac
configure ospf add vlan ac area 0.0.0.0
enable ospf
create vlan bc
configure vlan bc add port 2
configure vlan bc ipaddress 10.1.1.22/30
enable ipforwarding vlan bc
configure ospf add vlan bc area 0.0.0.0
create vlan bd
configure vlan bd add port 3
configure vlan bd ipaddress 10.1.1.9/30
enable ipforwarding vlan bd
configure ospf add vlan bd area 0.0.0.0
enable ospf
create vlan cb
configure vlan cb add port 2
configure vlan cb ipaddress 10.1.1.21/30
enable ipforwarding vlan cb
configure ospf add vlan cb area 0.0.0.0
enable ospf
create vlan de
configure vlan de add port 2
configure vlan de ipaddress 10.1.1.14/30
enable ipforwarding vlan de
configure ospf add vlan de area 0.0.0.0
enable ospf
With this configuration, a default route is originated and sent to neighbor 10.203.134.5
only if there is a BGP route in the local RIB which matches the statement nlri
192.168.3.0/24. If a matching route exists, the default route is sent to neighbor
10.203.134.5 with the 64505 as-path prepended. If this is an EBGP neighbor, then the
local AS-Number is prepended after 64505.
If the route for the match statement nlri 192.168.3.0/24 goes away and there is no
other matching route in the BGP RIB, the default route origination feature becomes
inactive and BGP withdraws the 0.0.0.0/0 default route from neighbor 10.203.134.5.
When a matching route becomes available again in the local BGP RIB, the default route
origination feature becomes active again and the default route 0.0.0.0/0 is advertised to
neighbor 10.203.134.5.
def_originate.pol
entry prefix_matching {
if match any {
nlri 2001:db8:2::/48;
} then {
as-path "65001";
permit;
}
}
enable bgp neighbor 2001:db8:1::2 address-family ipv6-unicast originate-default policy
def_originate
With this configuration, a default route is originated and sent to neighbor 2001:db8:1::2
only if there is a BGP route in the local RIB which matches the statement nlri
2001:db8:2::/48. If a matching route exists, the default route is sent to neighbor
2001:db8:1::2 with the 65001 as-path prepended. If this is an EBGP neighbor, then the
local AS-Number is prepended after 65001.
If the route for the match statement 2001:db8:2::/48 goes away and there is no other
matching route in the BGP RIB, the default route origination feature becomes inactive
and BGP withdraws the default route ::/0 from neighbor 2001:db8:1::2. When a matching
route becomes available again in the local BGP RIB, the default route origination
feature becomes active again and the default route ::/0 is advertised to neighbor
2001:db8:1::2.
Since the attack traffic may enter the service provider network from any of its edge
routers, it is not feasible to manually configure a static black hole route entry on each
edge router. The problem is further complicated by the fact that the target network,
and the need to block traffic to it, is dynamic. Also, the service provider may serve
multiple customers and you don’t want to drop traffic to a customer network until it is
identified as a target for an ongoing attack.
Instead, a service provider can use BGP to distribute a black hole route (route entry for
the target network with a black hole next-hop) from a single router to all its edge BGP
speakers that will then drop traffic destined to the victim’s network right at the provider
edge. Figure 258 shows an example topology to achieve this.
Step 1
Prior to the attack, select an address for the intended black hole next-hop. Configure
the forwarding plane of each edge router so that packets forwarded to this next-hop
are dropped:
1. Create a black hole VLAN with an IP address that is in the same subnet as the
chosen black hole next-hop.
2. Add an active port to the black hole VLAN (usually an unused port in the switch).
3. Create a static FDB entry that maps a well-chosen, unused MAC address to the black
hole VLAN and the active port added to that VLAN.
4. Create a static ARP entry that maps the black hole next-hop to the above MAC
address.
5. Create an filter to deny packets that exit the blackhole VLAN.
In the following example configuration, 192.168.2.0/24 is the subnet of the black hole
VLAN, “BH_VLAN,” and 192.168.2.66 is the chosen black hole next-hop. The active port
6:9 is added as the egress port for “BH_VLAN.”
create vlan BH_VLAN
configure vlan BH_VLAN tag 666
enable loopback-mode vlan BH_VLAN
configure vlan BH_VLAN ipaddress 192.168.2.1 255.255.255.0
enable ipforwarding vlan BH_VLAN
disable igmp snooping vlan BH_VLAN
disable igmp vlan BH_VLAN
create fdb 00:02:03:04:05:06 vlan BH_VLAN port 6:9
configure iparp add 192.168.2.66 vr VR-Default 00:02:03:04:05:06
configure access-list BH_ACL vlan BH_VLAN egress
When a packet arrives in the forwarding plane and looks up a route that has the
above black hole next-hop as its next-hop, a subsequent ARP and FDB (forwarding
database) look-up occurs that forwards the packet to exit the switch using the above
black hole VLAN, “BH_VLAN,” and port “6:9.” The packet is dropped due to the deny
action in the egress ACL filter.
The following policy file discards any traffic that exits the black hole VLAN,
“BH_VLAN.” Note that the match on “source-address 0.0.0.0/0” matches any egress
packet ensuring that all packets exiting via the black hole VLAN are dropped:
edit policy BH_ACL
entry bh-acl {
if {
source-address 0.0.0.0/0;
} then {
deny ;
}
}
Step 2
• Prior to the attack, configure inbound route-maps on all edge BGP speakers (R2
through R4 in Figure 258 on page 1755).
These inbound policies modify the next-hop of specifically marked BGP network
layer reach-ability information (NLRIs) to point to the chosen black hole next-hop.
We use BGP community or extended-community attributes to identify NLRIs that
need to be black holed (ones whose next-hops have to be modified). The community
values that are chosen should be reserved for this purpose within the provider
network.
In the following example, a community of 666:0 is chosen for identifying blackhole
routes. The next-hop of BGP NLRIs with that community attribute is modified to use
the blackhole next-hop.
Step 3
Once the target network has been identified during a DDoS attack, apply an outbound
policy or export policy to one router (in our example, R1) within the provider network so
that the route to the target network is advertised to the other edge routers within the
community 666:0.
The following example creates a static route on R1 to the target network 203.0.113.1/32
with a static export policy that applies to the community. When the attack targets
change, you only need to create or delete static routes to the target networks. The
policy exports them to the edge BGP speakers with the selected community attribute
values attached.
Output
R4.67 # show bgp route all
Routes:
Flags: (*) Preferred BGP route, (>) Active, (d) Suppressed, (h) History
(s) Stale, (m) Multipath, (u) Unfeasible
Origin: (?) Incomplete, (e) EGP, (i) IGP
BGP Route Statistics
Total Rxed Routes : 6
Feasible Routes : 6
Active Routes : 6
Rejected Routes : 0
Unfeasible Routes : 0
Route Statistics on Session Type
Routes from Int Peer: 0
Routes from Ext Peer: 6
Switch.68 # rtlookup 203.0.113.1
Ori Destination Gateway Mtr Flags VLAN Duration
#be 203.0.113.1/32 192.168.2.66 1 UG-D---um--f BH_VLAN 0d:1h:5m:5s
Note
For the above solution, the edge routers, R1 through R4, may still export the
route to the target network to external AS(s), but the traffic is dropped at the
edge of the provider network.
Router A Configuration
Router B Configuration
Description
The following example shows the routes in the BGP routing table at Router A after
completing the configuration described in the previous two sections:
Description
The policy described in this section is applied to Router A and does the following:
entry et1 {
if match all {
nlri 172.16.1.0/24;
} then {
deny;
}
}
entry et2 {
if match any {
nlri 10.1.0.0/16;
as-path 64499;
} then {
med set 100;
community set "2342:6788";
permit;
}
}
Route 172.16.1.0/24 is not present in the BGP routing table shown above.
The next example shows that the MED and community values are set as defined in the
policy.
The next command example shows the denied route as an inactive route.
The routes were updated because soft-reset is configured for this neighbor.
Rejected Routes : 1
Unfeasible Routes : 0
The following command examples show that the denied routes are not transmitted to
the neighbors:
Router A Configuration
Router B Configuration
Unfeasible Routes : 0
Route Statistics on Session Type
Routes from Int Peer: 0
Routes from Ext Peer: 6
entry et1 {
if match all {
nlri 2001:db8:a004::/48;
} then {
deny;
}
}
entry et2 {
if match any {
nlri 2001:db8:4000::/44;
as-path 4977;
} then {
med set 100;
community set "2342:6788";
permit;
}
}
2001:db8:2000::2 2001:db8:2000::2
1100 4977
*>i 2001:db8:5031::/48 100 1 100
2001:db8:2000::2 2001:db8:2000::2
1100 4977
Flags: (*) Preferred BGP route, (>) Active, (d) Suppressed, (h) History
(s) Stale, (m) Multipath, (u) Unfeasible
Origin: (?) Incomplete, (e) EGP, (i) IGP
BGP Route Statistics
Total Rxed Routes : 6
Feasible Routes : 5
Active Routes : 5
Rejected Routes : 1
Unfeasible Routes : 0
Route Statistics on Session Type
Routes from Int Peer: 0
Routes from Ext Peer: 5
Route 2001:db8:a004::/48 is not present in the BGP routing table shown above.
The routes were updated because soft-reset is configured for this neighbor.
The following command examples show that the denied routes are not transmitted to
the neighbors:
The next example shows another way to see that the MED values are set as defined in
the policy.
• Configure router A.
Configure router A.
create vlan "v3"
create vlan "v1"
create vlan "v2"
configure vlan v3 add ports 1
configure vlan v1 add ports 23
configure vlan v2 add ports 16
configure v1 ipaddress 10.1.1.1/24
configure v2 ipaddress 10.1.2.1/24
configure v3 ipaddress 10.1.4.1/24
enable ipforwarding
configure bgp AS-number 100
configure bgp routerid 1.1.1.1
create bgp neighbor 10.1.1.2 remote-AS-number 64500
create bgp neighbor 10.1.2.2 remote-AS-number 64505
create bgp neighbor 10.1.4.2 remote-AS-number 64510
enable bgp neighbor all
enable bgp
enable bgp aggregation
configure bgp add aggregate-address 172.16.0.0/16 as-set summary-only
• Configure router B.
Configure router B.
create vlan "v1"
create vlan "net"
configure vlan v1 add ports 5:33
• Configure router C.
Configure router C.
create vlan "v1"
create vlan "net"
configure vlan net add ports 2:15
configure vlan v1 add ports 2:16
configure v1 ipaddress 10.1.2.2/24
configure net ipaddress 172.16.2.1/24
enable ipforwarding
configure bgp AS-number 64505
configure bgp routerid 2.1.1.2
configure bgp add network 172.16.2.0/24
create bgp neighbor 10.1.2.1 remote-AS-number 100
enable bgp neighbor 10.1.2.1
enable bgp
• Configure router D.
Configure router D.
create vlan "v1"
configure vlan v1 add ports 24
configure v1 ipaddress 10.1.4.2/24
enable ipforwarding
configure bgp AS-number 64510
configure bgp routerid 5.1.1.2
create bgp neighbor 10.1.4.1 remote-AS-number 100
enable bgp neighbor 10.1.4.1
enable bgp
• Configure router B.
create vlan "v1"
create vlan "net"
configure vlan v1 add ports 5:33
configure vlan net add ports 5:20
configure v1 ipaddress 2001:db8:1::2/48
configure net ipaddress 2001:db8:2222::1/48
enable ipforwarding ipv6
configure bgp AS-number 200
configure bgp routerid 1.1.1.2
configure bgp add network address-family ipv6-unicast 2001:db8:2222::/48
create bgp neighbor 2001:db8:1::1 remote-AS-number 100
enable bgp neighbor 2001:db8:1::1 capability ipv6-unicast
enable bgp neighbor 2001:db8:1::1
enable bgp
• Configure router C.
create vlan "v1"
create vlan "net"
configure vlan net add ports 2:15
configure vlan v1 add ports 2:16
configure v1 ipaddress 2001:db8:3::2/48
configure net ipaddress 2001:db8:2333::2/48
enable ipforwarding ipv6
configure bgp AS-number 300
configure bgp routerid 2.1.1.2
configure bgp add network address-family ipv6-unicast 2001:db8:2333::/48
create bgp neighbor 2001:db8:3::1 remote-AS-number 100
enable bgp neighbor 2001:db8:3::1 capability ipv6-unicast
enable bgp neighbor 2001:db8:3::1
enable bgp
• Configure router D.
create vlan "v1"
configure vlan v1 add ports 24
configure v1 ipaddress 2001:db8:5::2/48
enable ipforwarding ipv6
configure bgp AS-number 400
This chapter introduces Layer 3 VPN, a way to create a tunnel between customer sites
through a Provider Backbone, and its features and options in a BGP (Border Gateway
Protocol)/MPLS (Multiprotocol Label Switching) VPN environment. This chapter also
provides an example showing L3VPN configuration on a BGP/MPLS setup.
Within a Layer 3 VPN, the customer advertises IP routing knowledge to the provider
network. The ISP then advertises this routing information across its network to the
other customer locations. This simple concept requires some coordination between the
provider and the customer. Also, the provider must configure its network to support
the advertisement of these routes and have a way to segregate the customer routes.
This is accomplished with the help of a specially designed Network Layer Reachability
Information (NLRI).
Within a L3VPN, several routers will play a different role. On the customer site, there is a
CE router (Customer Edge). This router is the property of the customer and is managed
by them. This router is outside of the Autonomous System (AS) of the Provider. On the
Provider side there are some PE routers (Provider Edge) and P routers (Provider). The
PE routers are facing the CE routers. They have all the customer's IP routing knowledge.
The P routers do not have that knowledge; they are not facing any CE routers, and they
serve only to transport the data from PE routers to other PE routers. Their knowledge
is very limited, and they usually are intended only for swapping MPLS labels. In other
words the Provider’s core is pure MPLS and has no knowledge of L3VPN, while the edge
is L3VPN aware.
Since a PE router can support multiple VPNs that may have overlapping address
spaces, each PE router must maintain multiple Virtual Routing and Forwarding tables
(VRFs). In the example, each site is a member of one VPN, and the PE router is
configured to associate a particular VPN with each physical interface to a CE router.
The PE router maintains one VRF for each VPN, and packets received from a particular
physical interface are forwarded using the VRF for the VPN associated with that
interface.
VRFs for a specific VPN are populated in two ways: (1) when the PE router learns routes
from a directly-attached CE router that is a member of the VPN, and (2) when the
PE router receives routes for the VPN through MBGP from another PE router. The PE
router can learn the routes that are reachable at a particular CE router’s site through
configuration (static routes), or by routing protocol exchanges with the CE router.
VPN route distribution uses BGP-4 Multiprotocol Extensions that enable BGP to carry
routes from multiple address families. The VPN-IPv4 address family supports BGP/
MPLS VPNs. A VPN-IPv4 address is a 12-byte entity, beginning with an 8-byte (RD) and
ending with a 4-byte IPv4 address. The RD makes it possible to create distinct routes to
a common IPv4 address prefix, which is necessary when the same IPv4 address prefix is
used in two different VPNs.
The purpose of the RD is solely to allow one to create distinct routes to a common IPv4
address prefix. The Route target attribute is used to identify a set of VRFs. Every VRF is
associated with one or more route targets. Export route targets identify the set of route
targets that a PE router attaches to a route learned from a particular CE site. Import
route targets identify the set of route targets that determine whether a route received
from another PE router can be inserted in a particular VRF. A VPN-IPv4 route can only
be installed in a particular VRF if there is a route target that is both one of the route’s
targets, and one of the VRF’s import route targets. Route targets allow a PE router
to only maintain routing information for the VPNs it is supporting. Using import and
export route targets offers flexibility in constructing a variety of VPN topologies (such as
a fully-meshed closed user group, or a hub-and-spoke architecture). Route Targets are
encoded as BGP Extended Communities attributes.
When distributing a VPN route through BGP, a PE router includes its own IP address as
the BGP next hop (next-hop-self). The PE router always assigns and distributes an MPLS
label for each customer VPN VRF that it receives from directly connected sites (CEs).
BGP-distributed MPLS labels require that there be a label switched path between the
PE router that installs the BGP-distributed route and the PE router that is the BGP next
hop of that route. This is necessary because a multi-label stack is used to forward VPN
packets across the MPLS backbone.
The outer MPLS label gets the packet across the backbone. This label is obtained from
the MPLS signaling protocols, and is associated with the best LSP to the BGP next
hop address of the PE Router that advertised the VPN route. The inner MPLS label
is obtained from BGP, and is associated with the best route to the VPN destination
address. This label identifies the VRF that the egress PE Router uses to forward the
packet to a CE device, and may indicate the outgoing interface that the packet should
be forwarded over (along with the appropriate link layer header for that interface).
The use of a two-level MPLS label stack is an important scalability attribute of the
model, because it is the two-level label stack that enables the P routers to operate
without containing routes for any of the VPNs.
VPNV4 NLRI
One of the core principles of operating a VPN is maintaining separation between the
customer networks. L3VPN uses a special format to represent customer routes within
the provider’s network. This format allows each provider router to uniquely view routes
from different customers as separate, even when they advertise the same IPv4 prefix.
The format consists of these fields: Mask, MPLS label, route distinguisher, and IPv4
prefix.
Limitations
The following list identifies the limitations of the L3VPN feature:
• RIP (Routing Information Protocol) is not supported for PE – CE peering routing
protocol.
• IP Multicast BGP/MPLS VPN is not supported
• OSPFv2 and ISIS is not supported for PE-CE peering routing protocol.
• IPv6 VPN is not supported.
• Graceful restart mechanism for BGP with MPLS (RFC-4781) is not supported.
• Constraint Route distribution for BGP/MPLS VPN (RFC-4684) is not supported.
• Carrier of carriers BGP/MPLS VPN configuration is not supported.
• XML support to configure BGP/MPLS VPN parameters.
• Carrier's carrier (RFC 4364, Section 9).
• Inter-AS / inter-provider VPNs (RFC 4364, Section 10).
• No other BGP related MIB other than RFC 1657 is supported.
Most commonly, the Admin field holds a 2-byte non-private AS number and the
Assigned number field holds a 4-byte number assigned by the VPN service provider.
Another common format for the RD is the Admin field holds a global 4-byte IPv4
address, and the Assigned number field holds 2 byte number assigned by the VPN
service provider.
A VRF is not the same as a VR. A VRF always requires that you have a Parent VR,
and this can either be the default VR or User VR. Protocols running in a VRF run as a
separate logical instance within the context of the protocol process that is running in
the Parent VR. ExtremeXOS VRFs come in two types:
• Non-VPN VRFs - Non-VPN VRFs are used for L3 Routing and Forwarding just like
VRs. These provide the ability to scale protocol deployments. BGP and static routing
are supported in the Non-VPN VRF.
Note
MPLS and BGP must be configured in the parent VR (PE-facing).
Again, a VRF always requires that you have a Parent VR, and this can either be the
default VR or User VR. Protocols running in a VRF run as a separate logical instance
within the context of the protocol process that is running in the Parent VR. For
example, the BGP process for a VR running MPLS will handle all PE to CE instances
of BGP by virtualizing the data structures. This approach of allowing VRFs in a VR is
more scalable than having a process for every instance of PE-to-CE routing protocol.
You can enable BOOTP Relay over VRFs and VPN-VRFs in the same manner as with
normal VRs. Normally, you must enable BOOTP Relay on both ingress and egress
VLANs. However, with BOOTP Relay over L3VPN, you do not need to enable BOOTP
Relay on egress VLANs, since ingress and egress VLANs are present in different VRs/
VRFs.
Limitations
The following are limitations of the BOOTP Relay L3VPN feature:
• VPN-ID is not supported on DHCP-Relay Option 82, which services clients across
VPNs.
• IPv6 BOOTP Relay not supported, since there is no IPv6 support for L3VPN.
In this example, you should be able to ping CE2 "foo1’s" IP address from CE1.
PE1:
configure snmp sysName "PE1"
create vr "vpn-a" type vpn-vrf vr "VR-Default"
configure vr VR-Default delete ports 1
configure vr vpn-a add ports 1
create vlan vl100 vr vpn-a tag 100
configure vl100 add ports 1 tagged
create vlan "vl101"
configure vlan vl101 tag 101
enable jumbo-frame ports 1
enable jumbo-frame ports 2
configure vlan vl100 add ports 1 tagged
configure vlan vl101 add ports 2 tagged
configure vlan Mgmt ipaddress 192.168.56.102 255.255.255.0
configure vlan lo0 ipaddress 172.16.0.2 255.255.255.255
enable ipforwarding vlan lo0
configure vlan vl101 ipaddress 10.1.1.5 255.255.255.252
enable ipforwarding vlan vl101
configure vlan vl100 ipaddress 10.1.1.2 255.255.255.252
enable ipforwarding vlan vl100
virtual-router vpn-a
configure bgp AS-number 65000
configure bgp routerid 172.16.0.2
create bgp neighbor 10.1.1.1 remote-AS-number 65100
enable bgp neighbor 10.1.1.1
disable bgp neighbor 10.1.1.1 capability ipv4-multicast
enable bgp export remote-vpn address-family ipv4-unicast
enable bgp
virtual-router VR-Default
P1:
configure snmp sysName "P1"
PE2:
virtual-router vpn-a
configure bgp AS-number 65000
configure bgp routerid 172.16.0.4
create bgp neighbor 10.1.1.14 remote-AS-number 65101
enable bgp neighbor 10.1.1.14
disable bgp neighbor 10.1.1.14 capability ipv4-multicast
enable bgp export remote-vpn address-family ipv4-unicast
enable bgp
virtual-router VR-Default
CE2:
EVPN Overview
BGP was standardized in RFC 7432 and RFC 8365 to carry Layer-2 information for
virtualized networks. Ethernet virtual private network (EVPN) was initially targeted for
MPLS (Multiprotocol Label Switching) and WAN, but later adopted as a VXLAN (Virtual
Extensible LAN) control plane protocol. ExtremeXOS supports EVPN control plane for
VXLAN. At a high level, BGP supports the following constructs to distribute information
for any virtualized network:
• Identify the network address family with AFI/SAFI—For VXLAN, AFI of 25 (L2VPN) and
a SAFI (EVPN) of 70 is used.
• Within the address family, identify the type of route being advertised—Different
route types are defined. For supported route types in ExtremeXOS, see Table 173 on
page 1783.
• Identify which device originated the route and virtual-network the route belongs
to—This is the role of the route distinguisher (RD) and route target (RT).
Note
RTs are derived automatically under the following conditions:
• When iBGP is used and the AS number is less than 65,535 (2 byte ASNUM).
• BGP Auto-peering is used.
EVPN devices perform dynamic learning on the access side of a VXLAN network.
The learned MAC and ARP entries are exported to BGP as EVPN Type 2 routes. BGP
advertises the Type 2 routes to all neighbors with L2VPN-EVPN capability. A VTEP with
matching RT configured or auto-derived processes these Type 2 routes and creates
static non-permanent FDB, ARP tunnel entries. Traffic to the tunnel entries are VXLAN
encapsulated and forwarded.
EVPN requires the Core or Premier License. For more information about licensing, see
Switch Engine Licensing Guide.
EVPN Limitations
The following are limitations for EVPN:
• EVPN functionality is not supported between switches running ExtremeXOS 30.2
and switches running earlier ExtremeXOS versions. The earlier versions rely on auto-
creation of IBGP peers, which is disabled functionality in ExtremeXOS 30.2. However,
the proprietary AFI are supported and can be used to establish tunnels to RTEPs so
that native VXLAN functionality using data plane learning functions is supported.
• A maximum of 4,000 EVI instances are supported.
• IPv6 Type 2 routes are not supported.
• Stacking is not supported.
• Configuring VMANs as VXLAN tenant VLANs is not supported.
• Multi-hop BFD is not supported.
• Peer-group configuration for L2VPN-EVPN address family is not supported.
• If silent hosts are expected, static ARP/FDB should be created on tenant VLANs for
these hosts. To configure static ARP entries it is necessary to configure IP address on
tenant VLANs.
• For Type 5 routes, the following are not supported:
◦ Switching through a VXLAN tunnel to a remote L3 Anycast gateway.
◦ Default VRs.
Recommended Configuration
The following is a recommended configuration for EVPN:
• ARP suppression should be enabled on tenant VLANs.
• Configure and apply IP Anycast on leafs (see IP and MAC Anycast on page 597, and
configure IP address on tenant VLAN and enable IP forwarding.
• IP route sharing should be enabled.
• BGP multipath should be enabled.
Configuring EVPN
To configure EVPN:
1. Configure underlay L3 network (see BGP on page 1707 and OSPF on page 1652).
2. Configure tenant VLANs and virtual-networks (see VXLAN on page 1018).
3. Enable L2VPN-EVPN capability (see Sending/Receiving Routes on page 1785).
4. If manual route targets (RTs) are required (see Applying Manual Route Targets to
EVPN Instances on page 1784):
Note
BGP Auto-peering (see BGP Auto-peering on page 369) automates most of the
above steps. If you are using BGP Auto-peering, only Step 2 and configuring
LTEP IP are required
For example:
In an external BGP (EBGP) peering session, since the routers reside in different ASs,
the auto-generated RTs do not match, and routes are not imported. Currently, you
can manually configure RTs on an EVPN instance to allow matching. For Auto-peering
BGP sessions, as well as Type 5 EVPN routes, a common AS number in the private AS
range is used in the auto-calculation to ensure matching. This feature provides support
for “ignore-as” or also called “partial RT matching” functionality, which when enabled
ignores the AS number portion of the RT when attempting to find a matching value.
This reduces user configuration, since you do not have to use the CLI to create an EVPN
instance with RTs, and also allows for easier interoperability with third-party devices in
cases where ExtremeXOS auto-generates using the private AS.
EVPN Commands
Sending/Receiving Routes
To enable the capability to send and receive EVPN routes, use the following command
and select the l2vpn-evpn option:
To disable the capability to send and receive EVPN routes, use the following command
and select the l2vpn-evpn:
The EVPN instance becomes active if the configured VNI matches the configured VNI
of a virtual-network.
To configure route targets for an EVPN instance, use the following command:
To configure route distinguishers for an EVPN instance, use the following command:
To disable overriding the specification behavior with respect to the next-hop of routes
advertised to EBGP peers, use the following command:
To export direct, static, and BGP routes from a VRF into BGP, running on the specified
VR, as EVPN routes to be advertised by BGP as Type 5 routes, use the following
command:
To stop exporting direct, static, and BGP routes from a VRF into BGP, running on
the specified VR, as EVPN routes to be advertised by BGP as Type 5 routes, use the
following command:
To see BGP route information, use the following command using the l2vpn-evpn
option:
To show information about the EVPN instance table, use the following command:
To show the current set of MAC addresses configured in EVPN, use the following
command:
To show the IPv4 entries from the EVPN MAC/IP table, use the following command:
To show the IPv6 entries from the EVPN MAC/IP table, use the following command:
To show the L3 VNI entries from the EVPN MAC/IP table, use the following command:
Configuration Notes
iBGP auto-RT capability is used.
Note
If 4 byte AS numbers are used, RTs should be manually created.
• MLAG peers share the same LTEP IP, but use different BGP router IDs.
• OSPF adjacency between Leafs and Spines, between MLAG peers. PTP link type is
used.
• OSPF routes are exported to BGP on Spine 1.
• On MLAG peers OSPF router IDs should be different (manually configured).
• Static LACP MAC is configured on MLAG peers.
• BGP maximum paths is set to 2 for this topology and IP route sharing is enabled.
• ARP suppression is enabled on tenant VLANs.
• Spines are configured as RR.
Note
• On SLX and other platforms “retain route-targets” should be enabled on
spine/transit L3 nodes.ExtremeXOS by default retains all RTs and does not
have a command to tun it off.
• ExtremeXOS does not support multi-hop BFD currently—under certain
conditions convergence might take longer time.
Leaf 1 Configuration
#
# Module vlan configuration.
#
configure vlan default delete ports all
configure vr VR-Default delete ports 1-36
configure vr VR-Default add ports 1-36
configure vlan default delete ports 1,4-5,7,16,19,21
enable jumbo-frame ports all
create vlan "isc"
configure vlan isc tag 4000
create vlan "loop"
enable loopback-mode vlan loop
create vlan "mlagvtep"
enable loopback-mode vlan mlagvtep
create vlan "tenant"
configure vlan tenant tag 10
configure vlan tenant suppress arp-only
create vlan "trunk1_2"
configure vlan trunk1_2 tag 4001
create vlan "trunk1_3"
create vlan "trunk1_4"
create vlan "untagtenant"
configure vlan untagtenant suppress arp-only
configure ports 1 auto off speed 10000 duplex full
configure ports 2 auto off speed 10000 duplex full
configure ports 3 auto off speed 10000 duplex full
configure ports 4 auto off speed 10000 duplex full
configure ports 5 auto off speed 10000 duplex full
configure ports 6 auto off speed 10000 duplex full
configure ports 7 auto off speed 10000 duplex full
configure ports 8 auto off speed 10000 duplex full
configure ports 9 auto off speed 10000 duplex full
configure ports 10 auto off speed 10000 duplex full
configure ports 11 auto off speed 10000 duplex full
configure ports 12 auto off speed 10000 duplex full
configure ports 13 auto off speed 10000 duplex full
configure ports 14 auto off speed 10000 duplex full
configure ports 15 auto off speed 10000 duplex full
configure ports 16 auto off speed 10000 duplex full
configure ports 17 auto off speed 10000 duplex full
configure ports 18 auto off speed 10000 duplex full
configure ports 19 auto off speed 10000 duplex full
configure ports 20 auto off speed 10000 duplex full
configure ports 21 auto off speed 10000 duplex full
configure ports 22 auto off speed 10000 duplex full
configure ports 23 auto off speed 10000 duplex full
configure ports 24 auto off speed 10000 duplex full
configure ports 26 auto off speed 10000 duplex full
configure ports 27 auto off speed 10000 duplex full
configure ports 28 auto off speed 10000 duplex full
enable sharing 1 grouping 1 algorithm address-based L2 lacp
configure vlan Default add ports 2-3,6,8-15,17-18,20,22-36 untagged
configure vlan isc add ports 21 tagged
configure vlan tenant add ports 1,16,21 tagged
configure vlan trunk1_2 add ports 21 tagged
configure vlan trunk1_3 add ports 5 untagged
configure vlan trunk1_4 add ports 7 untagged
configure vlan untagtenant add ports 1,16,21 untagged
configure vlan isc ipaddress 172.16.1.0 255.255.255.254
configure vlan loop ipaddress 1.1.1.1 255.255.255.255
enable ipforwarding vlan loop
configure vlan Mgmt ipaddress 10.127.16.27 255.255.255.0
#
# Module mcmgr configuration.
#
disable igmp snooping vlan "tenant"
disable igmp snooping vlan "untagtenant"
#
# Module vsm configuration.
#
create mlag peer "leaf2"
configure mlag peer "leaf2" ipaddress 172.16.1.1 vr VR-Default
configure mlag peer "leaf2" lacp-mac 00:00:de:ad:be:ef
enable mlag port 1 peer "leaf2" id 1
#
# Module ospf configuration.
#
configure ospf routerid 1.1.1.1
enable ospf
configure ospf add vlan loop area 0.0.0.0
configure ospf vlan loop priority 0
configure ospf add vlan mlagvtep area 0.0.0.0
configure ospf add vlan trunk1_2 area 0.0.0.0 link-type point-to-point
configure ospf add vlan trunk1_3 area 0.0.0.0 link-type point-to-point
configure ospf add vlan trunk1_4 area 0.0.0.0 link-type point-to-point
#
# Module bgp configuration.
#
configure bgp AS-number 10000
configure bgp routerid 1.1.1.1
configure bgp maximum-paths 2
configure bgp add network 1.1.1.1/32
configure bgp add network 1.1.1.200/32
create bgp neighbor 2.2.2.2 remote-AS-number 10000
configure bgp neighbor 2.2.2.2 source-interface ipaddress 1.1.1.1
enable bgp neighbor 2.2.2.2
create bgp neighbor 3.3.3.100 remote-AS-number 10000
configure bgp neighbor 3.3.3.100 source-interface ipaddress 1.1.1.1
enable bgp neighbor 3.3.3.100
create bgp neighbor 4.4.4.4 remote-AS-number 10000
configure bgp neighbor 4.4.4.4 source-interface ipaddress 1.1.1.1
enable bgp neighbor 4.4.4.4
enable bgp neighbor 2.2.2.2 capability l2vpn-EVPN
enable bgp neighbor 3.3.3.100 capability l2vpn-EVPN
enable bgp neighbor 4.4.4.4 capability l2vpn-EVPN
enable bgp export direct address-family ipv4-unicast
enable bgp
#
# Module otm configuration.
#
configure virtual-network local-endpoint ipaddress 1.1.1.200 vr "VR-Default"
create virtual-network "vni1" flooding standard
configure virtual-network "vni1" VXLAN vni 100
configure virtual-network "vni1" add vlan tenant
create virtual-network "vni2" flooding standard
configure virtual-network "vni2" VXLAN vni 200
configure virtual-network "vni2" add vlan untagtenant
Leaf 2 Configuration
#
# Module vlan configuration.
#
configure vlan default delete ports all
configure vr VR-Default delete ports 1-72
configure vr VR-Default add ports 1-72
configure vlan default delete ports 1-72
enable jumbo-frame ports all
create vlan "isc"
configure vlan isc tag 4000
create vlan "loop"
enable loopback-mode vlan loop
create vlan "loop2"
enable loopback-mode vlan loop2
create vlan "mlagvtep"
enable loopback-mode vlan mlagvtep
create vlan "tenant"
configure vlan tenant tag 10
configure vlan tenant suppress arp-only
create vlan "trunk1_2"
configure vlan trunk1_2 tag 4001
create vlan "trunk2_3"
create vlan "trunk2_4"
create vlan "untagtenant"
configure vlan untagtenant suppress arp-only
configure ports 50 auto off speed 10000 duplex full
configure ports 51 auto off speed 10000 duplex full
configure ports 52 auto off speed 10000 duplex full
enable sharing 53 grouping 53-56 algorithm address-based L2 lacp
configure vlan isc add ports 66 tagged
configure vlan tenant add ports 4-5,53,66 tagged
configure vlan trunk1_2 add ports 66 tagged
configure vlan trunk2_3 add ports 57 untagged
configure vlan trunk2_4 add ports 49 untagged
configure vlan untagtenant add ports 4-5,53,66 untagged
configure vlan isc ipaddress 172.16.1.1 255.255.255.254
configure vlan loop ipaddress 2.2.2.2 255.255.255.255
enable ipforwarding vlan loop
configure vlan loop2 ipaddress 2.2.2.100 255.255.255.255
enable ipforwarding vlan loop2
configure vlan Mgmt ipaddress 10.127.16.19 255.255.255.0
configure vlan mlagvtep ipaddress 1.1.1.200 255.0.0.0
enable ipforwarding vlan mlagvtep
configure vlan tenant ipaddress 10.1.100.100 255.255.255.0
enable ipforwarding vlan tenant
configure vlan trunk1_2 ipaddress 192.168.5.1 255.255.255.254
enable ipforwarding vlan trunk1_2
configure vlan trunk2_3 ipaddress 192.168.3.0 255.255.255.254
enable ipforwarding vlan trunk2_3
configure vlan trunk2_4 ipaddress 192.168.4.0 255.255.255.254
enable ipforwarding vlan trunk2_4
configure vlan untagtenant ipaddress 20.1.100.100 255.255.255.0
enable ipforwarding vlan untagtenant
#
# Module mcmgr configuration.
#
disable igmp snooping vlan "tenant"
disable igmp snooping vlan "untagtenant"
#
# Module otm configuration.
#
configure virtual-network local-endpoint ipaddress 1.1.1.200 vr "VR-Default"
create virtual-network "vni1" flooding standard
configure virtual-network "vni1" VXLAN vni 100
configure virtual-network "vni1" add vlan tenant
create virtual-network "vni2" flooding standard
configure virtual-network "vni2" VXLAN vni 200
configure virtual-network "vni2" add vlan untagtenant
#
# Module bgp configuration.
#
configure bgp AS-number 10000
configure bgp routerid 2.2.2.2
configure bgp maximum-paths 2
configure bgp add network 1.1.1.200/32
configure bgp add network 2.2.2.2/32
create bgp neighbor 1.1.1.1 remote-AS-number 10000
configure bgp neighbor 1.1.1.1 source-interface ipaddress 2.2.2.2
enable bgp neighbor 1.1.1.1
create bgp neighbor 3.3.3.100 remote-AS-number 10000
configure bgp neighbor 3.3.3.100 source-interface ipaddress 2.2.2.2
enable bgp neighbor 3.3.3.100
create bgp neighbor 4.4.4.4 remote-AS-number 10000
configure bgp neighbor 4.4.4.4 source-interface ipaddress 2.2.2.2
enable bgp neighbor 4.4.4.4
enable bgp neighbor 1.1.1.1 capability l2vpn-EVPN
enable bgp neighbor 3.3.3.100 capability l2vpn-EVPN
enable bgp neighbor 4.4.4.4 capability l2vpn-EVPN
enable bgp export direct address-family ipv4-unicast
enable bgp
#
# Module ospf configuration.
#
configure ospf routerid 2.2.2.2
enable ospf
configure ospf add vlan loop area 0.0.0.0
configure ospf add vlan mlagvtep area 0.0.0.0
configure ospf add vlan trunk1_2 area 0.0.0.0 link-type point-to-point
configure ospf add vlan trunk2_3 area 0.0.0.0 link-type point-to-point
configure ospf add vlan trunk2_4 area 0.0.0.0 link-type point-to-point
#
# Module vrrp configuration.
#
create vrrp vlan tenant vrid 1
configure vrrp vlan tenant vrid 1 priority 255
create vrrp vlan untagtenant vrid 1
configure vrrp vlan untagtenant vrid 1 priority 255
configure vrrp vlan tenant vrid 1 add 10.1.100.100
configure vrrp vlan untagtenant vrid 1 add 20.1.100.100
enable vrrp vlan tenant vrid 1
enable vrrp vlan untagtenant vrid 1
#
# Module vsm configuration.
#
create mlag peer "leaf1"
configure mlag peer "leaf1" ipaddress 172.16.1.0 vr VR-Default
configure mlag peer "leaf1" lacp-mac 00:00:de:ad:be:ef
enable mlag port 53 peer "leaf1" id 1
Leaf 3
#
# Module vlan configuration.
#
configure vlan default delete ports all
configure vr VR-Default delete ports 1-56
configure vr VR-Default add ports 1-56
configure vlan default delete ports 1,50-51
enable jumbo-frame ports all
create vlan "leaf3_trunk1"
create vlan "leaf3_trunk2"
create vlan "loop"
enable loopback-mode vlan loop
create vlan "tenant"
configure vlan tenant tag 10
configure vlan tenant suppress arp-only
create vlan "untagtenant"
configure vlan untagtenant suppress arp-only
configure ports 49 auto off speed 10000 duplex full
configure ports 50 auto off speed 10000 duplex full
configure ports 51 auto off speed 10000 duplex full
configure ports 52 auto off speed 10000 duplex full
configure ports 54 auto off speed 10000 duplex full
configure ports 55 auto off speed 10000 duplex full
configure ports 56 auto off speed 10000 duplex full
configure vlan Default add ports 2-49,52-56 untagged
configure vlan leaf3_trunk1 add ports 51 untagged
configure vlan leaf3_trunk2 add ports 50 untagged
configure vlan tenant add ports 1 tagged
configure vlan untagtenant add ports 1 untagged
configure vlan leaf3_trunk1 ipaddress 192.168.6.0 255.255.255.254
enable ipforwarding vlan leaf3_trunk1
configure vlan leaf3_trunk2 ipaddress 192.168.7.0 255.255.255.254
enable ipforwarding vlan leaf3_trunk2
configure vlan loop ipaddress 5.5.5.5 255.255.255.255
enable ipforwarding vlan loop
configure vlan Mgmt ipaddress 10.127.16.17 255.255.255.0
configure vlan tenant ipaddress 10.1.100.100 255.255.255.0
enable ipforwarding vlan tenant
configure vlan untagtenant ipaddress
#
# Module otm configuration.
#
configure virtual-network local-endpoint ipaddress 5.5.5.5 vr "VR-Default"
create virtual-network "vni1" flooding standard
configure virtual-network "vni1" VXLAN vni 100
configure virtual-network "vni1" add vlan tenant
create virtual-network "vni2" flooding standard
configure virtual-network "vni2" VXLAN vni 200
#
# Module bgp configuration.
#
configure bgp AS-number 10000
configure bgp routerid 5.5.5.5
configure bgp maximum-paths 2
configure bgp restart both
configure bgp add network 5.5.5.5/32
create bgp neighbor 3.3.3.100 remote-AS-number 10000
configure bgp neighbor 3.3.3.100 source-interface ipaddress 5.5.5.5
enable bgp neighbor 3.3.3.100
create bgp neighbor 4.4.4.4 remote-AS-number 10000
configure bgp neighbor 4.4.4.4 source-interface ipaddress 5.5.5.5
enable bgp neighbor 4.4.4.4
enable bgp neighbor 3.3.3.100 capability l2vpn-EVPN
enable bgp neighbor 4.4.4.4 capability l2vpn-EVPN
enable bgp
#
# Module ospf configuration.
#
enable ospf
configure ospf add vlan leaf1_trunk2 area 0.0.0.0 link-type point-to-point
configure ospf add vlan leaf3_trunk2 area 0.0.0.0 link-type point-to-point
configure ospf add vlan loop area 0.0.0.0 link-type point-to-point
#
# Module vrrp configuration.
#
create vrrp vlan tenant vrid 1
configure vrrp vlan tenant vrid 1 priority 255
create vrrp vlan untagtenant vrid 1
configure vrrp vlan untagtenant vrid 1 priority 255
configure vrrp vlan tenant vrid 1 add 10.1.100.100
configure vrrp vlan untagtenant vrid 1 add 20.1.100.100
enable vrrp vlan tenant vrid 1
enable vrrp vlan untagtenant vrid 1
Spine 1
#
# Module vlan configuration.
#
configure vlan default delete ports all
configure vr VR-Default delete ports 1-128
configure vr VR-Default add ports 1-128
configure vlan default delete ports 33,57,89,105
enable jumbo-frame ports all
create vlan "leaf3_trunk1"
create vlan "loop"
enable loopback-mode vlan loop
create vlan "routed"
configure vlan routed tag 4030
create vlan "trunk1_3"
create vlan "trunk2_3"
configure vlan Default add ports 1-32,34-56,58-88,90-104,106-128 untagged
configure vlan leaf3_trunk1 add ports 89 untagged
configure vlan routed add ports 33 tagged
configure vlan trunk1_3 add ports 57 untagged
configure vlan trunk2_3 add ports 105 untagged
configure vlan leaf3_trunk1 ipaddress 192.168.6.1 255.255.255.254
enable ipforwarding vlan leaf3_trunk1
#
# Module ospf configuration.
#
enable ospf
configure ospf add vlan leaf3_trunk1 area 0.0.0.0 link-type point-to-point
configure ospf add vlan loop area 0.0.0.0 link-type point-to-point
configure ospf add vlan routed area 0.0.0.0
configure ospf add vlan trunk1_3 area 0.0.0.0 link-type point-to-point
configure ospf add vlan trunk2_3 area 0.0.0.0 link-type point-to-point
#
# Module bgp configuration.
#
configure bgp AS-number 10000
configure bgp routerid 3.3.3.3
configure bgp maximum-paths 2
configure bgp add network 3.3.3.100/32
create bgp neighbor 1.1.1.1 remote-AS-number 10000
configure bgp neighbor 1.1.1.1 route-reflector-client
configure bgp neighbor 1.1.1.1 source-interface ipaddress 3.3.3.100
enable bgp neighbor 1.1.1.1
create bgp neighbor 2.2.2.2 remote-AS-number 10000
configure bgp neighbor 2.2.2.2 route-reflector-client
configure bgp neighbor 2.2.2.2 source-interface ipaddress 3.3.3.100
enable bgp neighbor 2.2.2.2
create bgp neighbor 5.5.5.5 remote-AS-number 10000
configure bgp neighbor 5.5.5.5 route-reflector-client
configure bgp neighbor 5.5.5.5 source-interface ipaddress 3.3.3.100
enable bgp neighbor 5.5.5.5
enable bgp neighbor 1.1.1.1 capability l2vpn-EVPN
enable bgp neighbor 2.2.2.2 capability l2vpn-EVPN
enable bgp neighbor 5.5.5.5 capability l2vpn-EVPN
enable bgp export ospf-extern1 address-family ipv4-unicast
enable bgp export ospf-extern2 address-family ipv4-unicast
enable bgp export ospf-inter address-family ipv4-unicast
enable bgp export ospf-intra address-family ipv4-unicast
enable bgp
Spine 2
#
# Module vlan configuration.
#
configure vlan default delete ports all
configure vr VR-Default delete ports 1-64
configure vr VR-Default add ports 1-64
configure vlan default delete ports 25,27,49
create vlan "leaf3_trunk2"
create vlan "loop"
enable loopback-mode vlan loop
create vlan "trunk1_4"
create vlan "trunk2_4"
configure ports 1 auto off speed 10000 duplex full
#
# Module bgp configuration.
#
Verification
Leaf1.1 # show ospf neighbor
Neighbor ID Pri State Up/Dead Time Address Interface
BFD Session State
==========================================================================================
2.2.2.2 1 FULL /DROTHER 00:00:59:02/00:00:00:08 192.168.5.1 trunk1_2
None
Flags: (d) disabled, (e) enabled, (E) external peer, (I) internal peer
(m) EBGP multihop, (r) route reflector client
OutMsgs(InQ) Up/Down
------------------------------------------------------------------------------------------
------------------
Ie-- 1.1.1.1 10000 1 ESTABLISHED 271 288
(0 ) 0:1:59:59
Ie-- 3.3.3.100 10000 1 ESTABLISHED 556 415
(0 ) 0:2:52:09
Ie-- 4.4.4.4 10000 1 ESTABLISHED 1585 1509
(0 ) 0:20:58:35
Flags: (d) disabled, (e) enabled, (E) external peer, (I) internal peer
(m) EBGP multihop, (r) route reflector client
Flags: (d) disabled, (e) enabled, (E) external peer, (I) internal peer
(m) EBGP multihop, (r) route reflector client
Flags: (d) disabled, (e) enabled, (E) external peer, (I) internal peer
(m) EBGP multihop, (r) route reflector client
OutMsgs(InQ) Up/Down
------------------------------------------------------------------------------------------
------------------
Ier- 1.1.1.1 10000 1 ESTABLISHED 276 390
(0 ) 0:0:19:14
Ier- 2.2.2.2 10000 1 ESTABLISHED 1501 1606
(0 ) 0:20:59:40
Ier- 5.5.5.5 10000 1 ESTABLISHED 1465 1595
(0 ) 0:1:56:20
Flags: (d) disabled, (e) enabled, (E) external peer, (I) internal peer
(m) EBGP multihop, (r) route reflector client
Some static entries may have multiple Route Target sets. These are listed in rows
immediately following the initial row
for the EVI-Idx.
*
10000:4088 10000:4088
*
10000:268435656 10000:268435656
*
10000:1073745912 10000:1073745912
Some static entries may have multiple Route Target sets. These are listed in rows
immediately following the initial row
for the EVI-Idx.
Some static entries may have multiple Route Target sets. These are listed in rows
immediately following the initial row
for the EVI-Idx.
*
10000:1073745915 10000:1073745915
Some static entries may have multiple Route Target sets. These are listed in rows
immediately following the initial row
for the EVI-Idx.
Verify IMR
Leaf1.4 # show bgp routes l2vpn-EVPN inclusive-multicast all
Routes:
Originating IP Tunnel ID VNI
Peer Next-Hop AS-Path
------------------------------------------------------------------------------------------
------------------------------------
? RD: 1.1.1.200:10 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 100
2.2.2.2 1.1.1.200
? RD: 1.1.1.200:4088 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
2.2.2.2 1.1.1.200
? RD: 1.1.1.200:4088 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
3.3.3.100 1.1.1.200
? RD: 1.1.1.200:4088 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
4.4.4.4 1.1.1.200
? RD: 3.3.3.100:10 Ethernet Tag: 0 Tunnel Type: 6
3.3.3.100 3.3.3.100 100
3.3.3.100 3.3.3.100
? RD: 3.3.3.100:4091 Ethernet Tag: 0 Tunnel Type: 6
3.3.3.100 3.3.3.100 200
3.3.3.100 3.3.3.100
? RD: 5.5.5.5:10 Ethernet Tag: 0 Tunnel Type: 6
5.5.5.5 5.5.5.5 100
3.3.3.100 5.5.5.5
? RD: 5.5.5.5:10 Ethernet Tag: 0 Tunnel Type: 6
5.5.5.5 5.5.5.5 100
4.4.4.4 5.5.5.5
? RD: 5.5.5.5:4090 Ethernet Tag: 0 Tunnel Type: 6
5.5.5.5 5.5.5.5 200
3.3.3.100 5.5.5.5
? RD: 5.5.5.5:4090 Ethernet Tag: 0 Tunnel Type: 6
5.5.5.5 5.5.5.5 200
4.4.4.4 5.5.5.5
Flags: (*) Preferred BGP route, (>) Active, (d) Suppressed, (h) History
(s) Stale, (m) Multipath, (u) Unfeasible
Routes:
Originating IP Tunnel ID VNI
Peer Next-Hop AS-Path
------------------------------------------------------------------------------------------
------------------------------------
? RD: 1.1.1.200:10 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 100
1.1.1.1 1.1.1.200
? RD: 1.1.1.200:10 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 100
3.3.3.100 1.1.1.200
? RD: 1.1.1.200:10 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 100
4.4.4.4 1.1.1.200
? RD: 1.1.1.200:4087 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
1.1.1.1 1.1.1.200
? RD: 1.1.1.200:4087 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
3.3.3.100 1.1.1.200
? RD: 1.1.1.200:4087 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
4.4.4.4 1.1.1.200
? RD: 3.3.3.100:10 Ethernet Tag: 0 Tunnel Type: 6
3.3.3.100 3.3.3.100 100
3.3.3.100 3.3.3.100
? RD: 3.3.3.100:4091 Ethernet Tag: 0 Tunnel Type: 6
3.3.3.100 3.3.3.100 200
3.3.3.100 3.3.3.100
? RD: 5.5.5.5:10 Ethernet Tag: 0 Tunnel Type: 6
5.5.5.5 5.5.5.5 100
3.3.3.100 5.5.5.5
? RD: 5.5.5.5:10 Ethernet Tag: 0 Tunnel Type: 6
5.5.5.5 5.5.5.5 100
4.4.4.4 5.5.5.5
? RD: 5.5.5.5:4090 Ethernet Tag: 0 Tunnel Type: 6
5.5.5.5 5.5.5.5 200
3.3.3.100 5.5.5.5
? RD: 5.5.5.5:4090 Ethernet Tag: 0 Tunnel Type: 6
5.5.5.5 5.5.5.5 200
4.4.4.4 5.5.5.5
Flags: (*) Preferred BGP route, (>) Active, (d) Suppressed, (h) History
(s) Stale, (m) Multipath, (u) Unfeasible
Routes:
Originating IP Tunnel ID VNI
Peer Next-Hop AS-Path
------------------------------------------------------------------------------------------
------------------------------------
? RD: 1.1.1.200:10 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 100
3.3.3.100 1.1.1.200
? RD: 1.1.1.200:10 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 100
4.4.4.4 1.1.1.200
? RD: 1.1.1.200:4087 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
3.3.3.100 1.1.1.200
? RD: 1.1.1.200:4087 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
4.4.4.4 1.1.1.200
? RD: 1.1.1.200:4088 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
3.3.3.100 1.1.1.200
? RD: 1.1.1.200:4088 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
4.4.4.4 1.1.1.200
? RD: 3.3.3.100:10 Ethernet Tag: 0 Tunnel Type: 6
3.3.3.100 3.3.3.100 100
3.3.3.100 3.3.3.100
? RD: 3.3.3.100:4091 Ethernet Tag: 0 Tunnel Type: 6
3.3.3.100 3.3.3.100 200
3.3.3.100 3.3.3.100
Flags: (*) Preferred BGP route, (>) Active, (d) Suppressed, (h) History
(s) Stale, (m) Multipath, (u) Unfeasible
Routes:
Originating IP Tunnel ID VNI
Peer Next-Hop AS-Path
------------------------------------------------------------------------------------------
------------------------------------
? RD: 1.1.1.200:10 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 100
1.1.1.1 1.1.1.200
? RD: 1.1.1.200:10 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 100
2.2.2.2 1.1.1.200
? RD: 1.1.1.200:4087 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
1.1.1.1 1.1.1.200
? RD: 1.1.1.200:4088 Ethernet Tag: 0 Tunnel Type: 6
1.1.1.200 1.1.1.200 200
2.2.2.2 1.1.1.200
? RD: 5.5.5.5:10 Ethernet Tag: 0 Tunnel Type: 6
5.5.5.5 5.5.5.5 100
5.5.5.5 5.5.5.5
? RD: 5.5.5.5:4090 Ethernet Tag: 0 Tunnel Type: 6
5.5.5.5 5.5.5.5 200
5.5.5.5 5.5.5.5
Flags: (*) Preferred BGP route, (>) Active, (d) Suppressed, (h) History
(s) Stale, (m) Multipath, (u) Unfeasible
200 Yes
R 4091 00:11:88:ff:04:74 5.5.5.5
200 Yes
200 Yes
R 4088 20.1.100.100 00:11:88:ff:04:74 5.5.5.5
200 Yes
# show fdb
MAC VLAN Name( Tag) Age Flags Port /
Virtual Port List
------------------------------------------------------------------------------------------
------------
00:00:00:1c:7e:5f untagtenant(4091) 0000 s m XE VR-
Default:1.1.1.200
00:00:00:1c:7e:60 tenant(0010) 0006 d m 33
00:00:00:1c:7e:61 untagtenant(4091) 0006 d m 33
00:00:00:47:ce:72 tenant(0010) 0000 s m XE VR-
Default:5.5.5.5
00:00:00:47:ce:73 untagtenant(4091) 0000 s m XE VR-
Default:5.5.5.5
00:00:01:23:c7:5f routed(4030) 0000 d mi 33
00:00:04:d6:4d:6e untagtenant(4091) 0000 s m XE VR-
Default:1.1.1.200
00:00:04:d6:4d:6f untagtenant(4091) 0000 s m XE VR-
Default:1.1.1.200
00:00:0b:cb:21:a4 tenant(0010) 0000 s m XE VR-
Default:1.1.1.200
00:00:0c:14:88:4b tenant(0010) 0000 s m XE VR-
Default:1.1.1.200
00:00:0c:34:c1:ed tenant(0010) 0000 s m XE VR-
Default:1.1.1.200
00:00:5e:00:01:01 tenant(0010) 0000 d m X VR-
Default:1.1.1.200
00:00:5e:00:01:01 untagtenant(4091) 0000 d m X VR-
Default:1.1.1.200
00:04:96:9d:42:32 trunk2_3(4093) 0000 d mi 105
00:04:96:9d:42:32 tenant(0010) 0000 s m XE VR-
Default:1.1.1.200
00:04:96:9d:42:32 untagtenant(4091) 0000 s m XE VR-
Default:1.1.1.200
00:04:96:a3:fb:b0 trunk1_3(4094) 0000 d mi 57
00:04:96:a3:fb:b0 tenant(0010) 0000 s m XE VR-
Default:1.1.1.200
00:04:96:a3:fb:b0 untagtenant(4091) 0000 s m XE VR-
Default:1.1.1.200
00:11:88:ff:04:74 tenant(0010) 0000 s m XE VR-
Default:5.5.5.5
00:11:88:ff:04:74 untagtenant(4091) 0000 s m XE VR-
Default:5.5.5.5
00:11:88:ff:04:74 leaf3_trunk1(4088) 0000 d mi 89
Apply IP Anycast
Configure and apply IP Anycast on Leaf1, Leaf2, and Leaf3:
Configuration Notes
• Configure and apply IP Anycast on leafs (see IP and MAC Anycast on page 597, and
configure IP address on tenant VLAN and enable IP forwarding.
• EVI with manual RT is configured. Here is an example:
• MLAG peers share the same LTEP IP, but use different BGP router IDs.
• BGP adjacency between MLAG peers is recommended for alternate path (additional
L3 VLAN between MLAG peers).
• OSPF routes are exported to BGP on spine1.
• Single-hop eBGP is used for underlay and overlay.
• On spines, the “Next-Hop-Unchnaged” option is used for l2vpn-EVPN address family.
• BGP fast-external-fallover is enabled on all nodes.
• Static LACP MAC is configured on MLAG peers.
• BGP maximum paths is set to 2 for this topology and IP route sharing is enabled.
• ARP suppression is enabled on tenant VLANs.
Note
On SLX and other platforms “retain route-targets” should be enabled on spine/
transit L3 nodes. ExtremeXOSby default retains all RTs and does not have a
command to tun it off.
Note
Using auto-peering negates the need for manual BGP and EVI configuration.
BGP Auto-peering can be created with the command create auto-peering
bgp vlans 4010-4020 routerid 1.1.1.100 AS-number 10000:
• 4010-4020 VLANs are automatically created by BGP Auto-peering. Ports are
added to these VLANs as untagged.
• BGP Auto-peering uses eBGP—all nodes in auto-peering domain need to
use different AS numbers.
• On the MLAG peers—ISC ports should be tagged on all user-created VLANs.
Leaf 1
#
# Module vlan configuration.
#
configure vlan default delete ports all
configure vr VR-Default delete ports 1-36
configure vr VR-Default add ports 1-36
configure vlan default delete ports 1,4-5,7,16,19,21
enable jumbo-frame ports all
create vlan "isc"
configure vlan isc tag 4000
create vlan "loop"
enable loopback-mode vlan loop
create vlan "mlagvtep"
enable loopback-mode vlan mlagvtep
create vlan "tenant"
configure vlan tenant tag 10
configure vlan tenant suppress arp-only
create vlan "trunk1_2"
configure vlan trunk1_2 tag 4001
create vlan "trunk1_3"
create vlan "trunk1_4"
create vlan "untagtenant"
configure vlan untagtenant suppress arp-only
configure ports 1 auto off speed 10000 duplex full
configure ports 2 auto off speed 10000 duplex full
configure ports 3 auto off speed 10000 duplex full
configure ports 4 auto off speed 10000 duplex full
configure ports 5 auto off speed 10000 duplex full
configure ports 6 auto off speed 10000 duplex full
configure ports 7 auto off speed 10000 duplex full
configure ports 8 auto off speed 10000 duplex full
configure ports 9 auto off speed 10000 duplex full
configure ports 10 auto off speed 10000 duplex full
configure ports 11 auto off speed 10000 duplex full
configure ports 12 auto off speed 10000 duplex full
configure ports 13 auto off speed 10000 duplex full
configure ports 14 auto off speed 10000 duplex full
configure ports 15 auto off speed 10000 duplex full
configure ports 16 auto off speed 10000 duplex full
configure ports 17 auto off speed 10000 duplex full
configure ports 18 auto off speed 10000 duplex full
configure ports 19 auto off speed 10000 duplex full
configure ports 20 auto off speed 10000 duplex full
configure ports 21 auto off speed 10000 duplex full
configure ports 22 auto off speed 10000 duplex full
configure ports 23 auto off speed 10000 duplex full
configure ports 24 auto off speed 10000 duplex full
#
# Module mcmgr configuration.
#
disable igmp snooping vlan "tenant"
disable igmp snooping vlan "untagtenant"
#
# Module vsm configuration.
#
create mlag peer "leaf2"
configure mlag peer "leaf2" ipaddress 172.16.1.1 vr VR-Default
configure mlag peer "leaf2" lacp-mac 00:00:de:ad:be:ef
enable mlag port 1 peer "leaf2" id 1
#
# Module bgp configuration.
#
configure bgp AS-number 10000
configure bgp routerid 1.1.1.1
configure bgp maximum-paths 2
enable bgp fast-external-fallover
configure bgp add network 1.1.1.1/32
configure bgp add network 1.1.1.200/32
create bgp neighbor 192.168.1.1 remote-AS-number 30000
enable bgp neighbor 192.168.1.1
create bgp neighbor 192.168.2.1 remote-AS-number 40000
enable bgp neighbor 192.168.2.1
create bgp neighbor 192.168.5.1 remote-AS-number 20000
enable bgp neighbor 192.168.5.1
enable bgp neighbor 192.168.5.1 address-family l2vpn-evpn next-hop-unchanged
enable bgp neighbor 192.168.1.1 capability l2vpn-EVPN
enable bgp neighbor 192.168.2.1 capability l2vpn-EVPN
enable bgp neighbor 192.168.5.1 capability l2vpn-EVPN
enable bgp export direct address-family ipv4-unicast
enable bgp
create bgp EVPN instance evi_1
Leaf 2
#
# Module vlan configuration.
#
configure vlan default delete ports all
configure vr VR-Default delete ports 1-72
configure vr VR-Default add ports 1-72
configure vlan default delete ports 1-72
enable jumbo-frame ports all
create vlan "isc"
configure vlan isc tag 4000
create vlan "loop"
enable loopback-mode vlan loop
create vlan "loop2"
enable loopback-mode vlan loop2
create vlan "mlagvtep"
enable loopback-mode vlan mlagvtep
create vlan "tenant"
configure vlan tenant tag 10
configure vlan tenant suppress arp-only
create vlan "trunk1_2"
configure vlan trunk1_2 tag 4001
create vlan "trunk2_3"
create vlan "trunk2_4"
create vlan "untagtenant"
configure vlan untagtenant suppress arp-only
configure ports 50 auto off speed 10000 duplex full
configure ports 51 auto off speed 10000 duplex full
configure ports 52 auto off speed 10000 duplex full
enable sharing 53 grouping 53-56 algorithm address-based L2 lacp
configure vlan isc add ports 66 tagged
configure vlan tenant add ports 4-5,53,66 tagged
configure vlan trunk1_2 add ports 66 tagged
configure vlan trunk2_3 add ports 57 untagged
configure vlan trunk2_4 add ports 49 untagged
configure vlan untagtenant add ports 4-5,53,66 untagged
configure vlan isc ipaddress 172.16.1.1 255.255.255.254
configure vlan loop ipaddress 2.2.2.2 255.255.255.255
enable ipforwarding vlan loop
configure vlan loop2 ipaddress 2.2.2.100 255.255.255.255
enable ipforwarding vlan loop2
configure vlan Mgmt ipaddress 10.127.16.19 255.255.255.0
configure vlan mlagvtep ipaddress 1.1.1.200 255.0.0.0
enable ipforwarding vlan mlagvtep
configure vlan tenant ipaddress 10.1.100.100 255.255.255.0
enable ipforwarding vlan tenant
#
# Module otm configuration.
#
configure virtual-network local-endpoint ipaddress 1.1.1.200 vr "VR-Default"
create virtual-network "vni1" flooding standard
configure virtual-network "vni1" VXLAN vni 100
configure virtual-network "vni1" add vlan tenant
create virtual-network "vni2" flooding standard
configure virtual-network "vni2" VXLAN vni 200
configure virtual-network "vni2" add vlan untagtenant
#
# Module bgp configuration.
#
configure bgp AS-number 20000
configure bgp routerid 2.2.2.2
configure bgp maximum-paths 2
enable bgp fast-external-fallover
configure bgp add network 1.1.1.200/32
configure bgp add network 2.2.2.2/32
create bgp neighbor 192.168.3.1 remote-AS-number 30000
enable bgp neighbor 192.168.3.1
create bgp neighbor 192.168.4.1 remote-AS-number 40000
enable bgp neighbor 192.168.4.1
create bgp neighbor 192.168.5.0 remote-AS-number 10000
enable bgp neighbor 192.168.5.0
enable bgp neighbor 192.168.5.0 address-family l2vpn-evpn next-hop-unchanged
enable bgp neighbor 192.168.3.1 capability l2vpn-EVPN
enable bgp neighbor 192.168.4.1 capability l2vpn-EVPN
enable bgp neighbor 192.168.5.0 capability l2vpn-EVPN
enable bgp export direct address-family ipv4-unicast
enable bgp
create bgp EVPN instance evi_1
configure bgp EVPN instance evi_1 VXLAN vni 100
create bgp EVPN instance evi_2
configure bgp EVPN instance evi_2 VXLAN vni 200
configure bgp EVPN instance evi_1 route-target both add 100:100
configure bgp EVPN instance evi_2 route-target both add 200:200
#
# Module vrrp configuration.
#
create vrrp vlan tenant vrid 1
configure vrrp vlan tenant vrid 1 priority 255
create vrrp vlan untagtenant vrid 1
configure vrrp vlan untagtenant vrid 1 priority 255
configure vrrp vlan tenant vrid 1 add 10.1.100.100
configure vrrp vlan untagtenant vrid 1 add 20.1.100.100
enable vrrp vlan tenant vrid 1
enable vrrp vlan untagtenant vrid 1
#
# Module vsm configuration.
#
create mlag peer "leaf1"
configure mlag peer "leaf1" ipaddress 172.16.1.0 vr VR-Default
configure mlag peer "leaf1" lacp-mac 00:00:de:ad:be:ef
enable mlag port 53 peer "leaf1" id 1
Leaf 3
#
# Module vlan configuration.
#
configure vlan default delete ports all
configure vr VR-Default delete ports 1-56
configure vr VR-Default add ports 1-56
configure vlan default delete ports 1,50-51
enable jumbo-frame ports all
create vlan "leaf3_trunk1"
create vlan "leaf3_trunk2"
create vlan "loop"
enable loopback-mode vlan loop
create vlan "tenant"
configure vlan tenant tag 10
configure vlan tenant suppress arp-only
create vlan "untagtenant"
configure vlan untagtenant suppress arp-only
configure ports 49 auto off speed 10000 duplex full
configure ports 50 auto off speed 10000 duplex full
configure ports 51 auto off speed 10000 duplex full
configure ports 52 auto off speed 10000 duplex full
configure ports 54 auto off speed 10000 duplex full
configure ports 55 auto off speed 10000 duplex full
configure ports 56 auto off speed 10000 duplex full
configure vlan Default add ports 2-49,52-56 untagged
configure vlan leaf3_trunk1 add ports 51 untagged
configure vlan leaf3_trunk2 add ports 50 untagged
configure vlan tenant add ports 1 tagged
configure vlan untagtenant add ports 1 untagged
configure vlan leaf3_trunk1 ipaddress 192.168.6.0 255.255.255.254
enable ipforwarding vlan leaf3_trunk1
configure vlan leaf3_trunk2 ipaddress 192.168.7.0 255.255.255.254
enable ipforwarding vlan leaf3_trunk2
configure vlan loop ipaddress 5.5.5.5 255.255.255.255
enable ipforwarding vlan loop
configure vlan Mgmt ipaddress 10.127.16.17 255.255.255.0
configure vlan tenant ipaddress 10.1.100.100 255.255.255.0
enable ipforwarding vlan tenant
configure vlan untagtenant ipaddress
#
# Module otm configuration.
#
configure virtual-network local-endpoint ipaddress 5.5.5.5 vr "VR-Default"
create virtual-network "vni1" flooding standard
configure virtual-network "vni1" VXLAN vni 100
configure virtual-network "vni1" add vlan tenant
create virtual-network "vni2" flooding standard
#
# Module bgp configuration.
#
configure bgp AS-number 50000
configure bgp routerid 5.5.5.5
configure bgp maximum-paths 2
enable bgp fast-external-fallover
configure bgp restart both
configure bgp add network 5.5.5.5/32
create bgp neighbor 192.168.6.1 remote-AS-number 30000
enable bgp neighbor 192.168.6.1
create bgp neighbor 192.168.7.1 remote-AS-number 40000
enable bgp neighbor 192.168.7.1
enable bgp neighbor 192.168.6.1 capability l2vpn-EVPN
enable bgp neighbor 192.168.7.1 capability l2vpn-EVPN
enable bgp
create bgp EVPN instance evi_1
configure bgp EVPN instance evi_1 VXLAN vni 100
create bgp EVPN instance evi_2
configure bgp EVPN instance evi_2 VXLAN vni 200
configure bgp EVPN instance evi_1 route-target both add 100:100
configure bgp EVPN instance evi_2 route-target both add 200:200
#
# Module vrrp configuration.
#
create vrrp vlan tenant vrid 1
configure vrrp vlan tenant vrid 1 priority 255
create vrrp vlan untagtenant vrid 1
configure vrrp vlan untagtenant vrid 1 priority 255
configure vrrp vlan tenant vrid 1 add 10.1.100.100
configure vrrp vlan untagtenant vrid 1 add 20.1.100.100
enable vrrp vlan tenant vrid 1
enable vrrp vlan untagtenant vrid 1
Spine 1
configure vlan default delete ports all
configure vr VR-Default delete ports 1-128
configure vr VR-Default add ports 1-128
configure vlan default delete ports 33,57,89,105
enable jumbo-frame ports all
create vlan "leaf3_trunk1"
create vlan "loop"
enable loopback-mode vlan loop
create vlan "routed"
configure vlan routed tag 4030
create vlan "trunk1_3"
create vlan "trunk2_3"
configure vlan Default add ports 1-32,34-56,58-88,90-104,106-128 untagged
configure vlan leaf3_trunk1 add ports 89 untagged
configure vlan routed add ports 33 tagged
configure vlan trunk1_3 add ports 57 untagged
configure vlan trunk2_3 add ports 105 untagged
configure vlan leaf3_trunk1 ipaddress 192.168.6.1 255.255.255.254
enable ipforwarding vlan leaf3_trunk1
configure vlan loop ipaddress 3.3.3.100 255.0.0.0
enable ipforwarding vlan loop
configure vlan Mgmt ipaddress 10.127.16.24 255.255.255.0
configure vlan routed ipaddress 172.16.1.1 255.255.255.0
enable ipforwarding vlan routed
#
# Module bgp configuration.
#
configure bgp AS-number 30000
configure bgp routerid 3.3.3.3
configure bgp maximum-paths 2
enable bgp fast-external-fallover
configure bgp add network 3.3.3.100/32
create bgp neighbor 192.168.1.0 remote-AS-number 10000
enable bgp neighbor 192.168.1.0
create bgp neighbor 192.168.3.0 remote-AS-number 20000
enable bgp neighbor 192.168.3.0
create bgp neighbor 192.168.6.0 remote-AS-number 50000
enable bgp neighbor 192.168.6.0
enable bgp neighbor 192.168.1.0 capability l2vpn-EVPN
enable bgp neighbor 192.168.1.0 address-family l2vpn-EVPN next-hop-unchanged
enable bgp neighbor 192.168.3.0 capability l2vpn-EVPN
enable bgp neighbor 192.168.3.0 address-family l2vpn-EVPN next-hop-unchanged
enable bgp neighbor 192.168.6.0 capability l2vpn-EVPN
enable bgp neighbor 192.168.6.0 address-family l2vpn-EVPN next-hop-unchanged
enable bgp export ospf-extern1 address-family ipv4-unicast
enable bgp export ospf-extern2 address-family ipv4-unicast
enable bgp export ospf-inter address-family ipv4-unicast
enable bgp export ospf-intra address-family ipv4-unicast
enable bgp
create bgp EVPN instance evi_1
configure bgp EVPN instance evi_1 VXLAN vni 100
create bgp EVPN instance evi_2
configure bgp EVPN instance evi_2 VXLAN vni 200
configure bgp EVPN instance evi_1 route-target both add 100:100
configure bgp EVPN instance evi_2 route-target both add 200:200
#
# Module ospf configuration.
#
enable ospf
configure ospf add vlan routed area 0.0.0.0
Spine 2
#
# Module vlan configuration.
#
configure vlan default delete ports all
configure vr VR-Default delete ports 1-64
configure vr VR-Default add ports 1-64
configure vlan default delete ports 25,27,49
create vlan "leaf3_trunk2"
create vlan "loop"
enable loopback-mode vlan loop
create vlan "trunk1_4"
create vlan "trunk2_4"
configure ports 1 auto off speed 10000 duplex full
configure ports 2 auto off speed 10000 duplex full
configure ports 3 auto off speed 10000 duplex full
configure ports 4 auto off speed 10000 duplex full
configure ports 5 auto off speed 10000 duplex full
configure ports 6 auto off speed 10000 duplex full
configure ports 7 auto off speed 10000 duplex full
configure ports 8 auto off speed 10000 duplex full
Verification
Verify BGP Adjacency
Flags: (d) disabled, (e) enabled, (E) external peer, (I) internal peer
(m) EBGP multihop, (r) route reflector client
------------------------------------------------------------------------------------------
------------------
Ee-- 192.168.1.0 10000 1 ESTABLISHED 74 75
(0 ) 0:0:17:03
Ee-- 192.168.3.0 20000 1 ESTABLISHED 81 59
(0 ) 0:0:17:03
Ee-- 192.168.6.0 50000 1 ESTABLISHED 83 77
(0 ) 0:0:17:03
Flags: (d) disabled, (e) enabled, (E) external peer, (I) internal peer
(m) EBGP multihop, (r) route reflector client
Flags: (d) disabled, (e) enabled, (E) external peer, (I) internal peer
(m) EBGP multihop, (r) route reflector client
Verify EVI
10000:1073745911 10000:1073745911
Some static entries may have multiple Route Target sets. These are listed in rows
immediately following the initial row
for the EVI-Idx.
Some static entries may have multiple Route Target sets. These are listed in rows
immediately following the initial row
for the EVI-Idx.
*
50000:268435656 50000:268435656
*
50000:1073745914 50000:1073745914
Some static entries may have multiple Route Target sets. These are listed in rows
immediately following the initial row
for the EVI-Idx.
Some static entries may have multiple Route Target sets. These are listed in rows
immediately following the initial row
for the EVI-Idx.
Verify IMR
Routes:
RD: 1.1.1.200:10 Ethernet Tag: 0 Tunnel Type: 6 VNI: 100
Originating IP: 1.1.1.200 Tunnel ID: 1.1.1.200 Peer 192.168.5.1
Origin Incomplete, Next-Hop 1.1.1.200, LPref 100, MED 0
Weight 0,
As-PATH: 20000
Ext Community: rt:100:100 rt:20000:10 rt:20000:1073741834 encap:8 rt:20000:268435556
Routes:
RD: 1.1.1.200:10 Ethernet Tag: 0 Tunnel Type: 6 VNI: 100
Originating IP: 1.1.1.200 Tunnel ID: 1.1.1.200 Peer 192.168.6.1
Origin Incomplete, Next-Hop 1.1.1.200, LPref 100, MED 0
Weight 0,
As-PATH: 30000 10000
Ext Community: rt:100:100 rt:10000:10 rt:10000:1073741834 encap:8 rt:10000:268435556
Routes:
RD: 1.1.1.200:10 Ethernet Tag: 0 Tunnel Type: 6 VNI: 100
Originating IP: 1.1.1.200 Tunnel ID: 1.1.1.200 Peer 192.168.1.0
Origin Incomplete, Next-Hop 1.1.1.200, LPref 100, MED 0
Weight 0,
As-PATH: 10000
Ext Community: rt:100:100 rt:10000:10 rt:10000:1073741834 encap:8 rt:10000:268435556
200 Yes
R 10 00:04:96:9d:42:32 1.1.1.200
100 Yes
R 10 00:04:96:a3:fb:b0 1.1.1.200
100 Yes
L 10 00:11:88:ff:04:74
100 Yes
R 4090 00:00:00:1c:7e:5f 1.1.1.200
200 Yes
R 4090 00:00:00:1c:7e:5f 1.1.1.200
200 Yes
R 4090 00:00:00:1c:7e:61 3.3.3.100
200 Yes
L 4090 00:00:00:47:ce:73
200 Yes
R 4090 00:00:04:d6:4d:6e 1.1.1.200
200 Yes
R 4090 00:00:04:d6:4d:6e 1.1.1.200
200 Yes
R 4090 00:00:04:d6:4d:6f 1.1.1.200
200 Yes
R 4090 00:00:04:d6:4d:6f 1.1.1.200
200 Yes
R 4090 00:04:96:9d:42:32 1.1.1.200
200 Yes
R 4090 00:04:96:9d:42:32 1.1.1.200
200 Yes
R 4090 00:04:96:a3:fb:b0 1.1.1.200
200 Yes
R 4090 00:04:96:a3:fb:b0 1.1.1.200
200 Yes
L 4090 00:11:88:ff:04:74
200 Yes
200 Yes
R 4091 00:00:00:47:ce:73 5.5.5.5
200 Yes
R 4091 00:00:04:d6:4d:6e 1.1.1.200
200 Yes
R 4091 00:00:04:d6:4d:6e 1.1.1.200
200 Yes
R 4091 00:00:04:d6:4d:6f 1.1.1.200
200 Yes
R 4091 00:00:04:d6:4d:6f 1.1.1.200
200 Yes
R 4091 00:04:96:9d:42:32 1.1.1.200
200 Yes
R 4091 00:04:96:9d:42:32 1.1.1.200
200 Yes
R 4091 00:04:96:a3:fb:b0 1.1.1.200
200 Yes
R 4091 00:04:96:a3:fb:b0 1.1.1.200
200 Yes
R 4091 00:11:88:ff:04:74 5.5.5.5
200 Yes