Asa General Cli
Asa General Cli
Configuration Guide
Software Version 9.3
For the ASA 5506-X, ASA 5512-X, ASA 5515-X, ASA 5525-X, ASA 5545-X, ASA
5555-X, ASA 5585-X, ASA Services Module, and the
Adaptive Security Virtual Appliance
THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT
SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE
OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY.
The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of UCB’s public
domain version of the UNIX operating system. All rights reserved. Copyright © 1981, Regents of the University of California.
NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED “AS IS” WITH
ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF
DEALING, USAGE, OR TRADE PRACTICE.
IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING,
WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO
OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Cisco and the Cisco logo are trademarks or registered trademarks of Cisco and/or its affiliates in the U.S. and other countries. To view a list of Cisco trademarks, go to this
URL: www.cisco.com/go/trademarks. Third-party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership
relationship between Cisco and any other company. (1110R)
Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display
output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in
illustrative content is unintentional and coincidental.
Document Objectives
The purpose of this guide is to help you configure general operations for the Cisco ASA series using the
command-line interface. This guide does not cover every feature, but describes only the most common
configuration scenarios.
You can also configure and monitor the ASA by using the Adaptive Security Device Manager (ASDM),
a web-based GUI application. ASDM includes configuration wizards to guide you through some
common configuration scenarios, and online help for less common scenarios.
Throughout this guide, the term “ASA” applies generically to supported models, unless specified
otherwise.
Related Documentation
For more information, see Navigating the Cisco ASA Series Documentation at
http://www.cisco.com/go/asadocs.
Conventions
This document uses the following conventions:
Convention Indication
bold font Commands and keywords and user-entered text appear in bold font.
italic font Document titles, new or emphasized terms, and arguments for which you supply
values are in italic font.
[ ] Elements in square brackets are optional.
Tip Means the following information will help you solve a problem.
Caution Means reader be careful. In this situation, you might perform an action that could result in equipment
damage or loss of data.
The Cisco ASA provides advanced stateful firewall and VPN concentrator functionality in one device,
and for some models, integrated services modules such as IPS. The ASA includes many advanced
features, such as multiple security contexts (similar to virtualized firewalls), clustering (combining
multiple firewalls into a single firewall), transparent (Layer 2) firewall or routed (Layer 3) firewall
operation, advanced inspection engines, IPsec VPN, SSL VPN, and clientless SSL VPN support, and
many more features.
• Hardware and Software Compatibility, page 1-1
• VPN Compatibility, page 1-1
• New Features, page 1-2
• Firewall Functional Overview, page 1-10
• VPN Functional Overview, page 1-14
• Security Context Overview, page 1-14
• ASA Clustering Overview, page 1-15
• Special and Legacy Services, page 1-15
VPN Compatibility
See Supported VPN Platforms, Cisco ASA Series:
http://www.cisco.com/en/US/docs/security/asa/compatibility/asa-vpn-compatibility.html
New Features
• New Features in ASA 9.3(3), page 1-2
• New Features in ASA 9.3(2.200), page 1-2
• New Features in ASA 9.3(2.200), page 1-2
• New Features in ASA 9.3(1), page 1-6
Note New, changed, and deprecated syslog messages are listed in syslog messages guide.
Feature Description
Platform Features
Show invalid usernames in You can now show invalid usernames in syslog messages for unsuccessful
syslog messages login attempts. The default setting is to hide usernames when the username is
invalid or if the validity is unknown. If a user accidentally types a password
instead of a username, for example, then it is more secure to hide the
“username” in the resultant syslog message. You might want to show invalid
usernames to help with troubleshooting login issues.
We introduced the following command: no logging hide username
This feature is not available in 9.4(1).
Feature Description
Platform Features
ASAv with KVM and Virtio You can deploy the ASAv using the Kernel-based Virtual Machine (KVM) and
the Virtio virtual interface driver.
Feature Description
Platform Features
ASA 5506-X We introduced the ASA 5506-X.
We introduced or modified the following commands: service sw-reset-button,
upgrade rommon, show environment temperature accelerator
ASA FirePOWER software You can configure ASA FirePOWER on the ASA 5506-X using ASDM; a
module for the ASA 5506-X separate FireSIGHT Management Center is not required, although you can use
one instead of ASDM. Note: This feature requires ASA 7.3(3).
ASA FirePOWER passive You can now configure a traffic forwarding interface to send traffic to the
monitor-only mode using traffic module instead of using a service policy. In this mode, neither the module nor
redirection interfaces the ASA affects the traffic.
We fully supported the following command: traffic-forward sfr
monitor-only. You can configure this in CLI only.
Mixed level SSPs in the ASA You can now use the following mixed level SSPs in the ASA 5585-X:
5585-X
• ASA SSP-10/ASA FirePOWER SSP-40
• ASA SSP-20/ASA FirePOWER SSP-60
Requirements: ASA SSP in slot 0, ASA FirePOWER SSP in slot 1
ASA REST API 1.0.1 A REST API was added to support configuring and managing major functions
of the ASA.
We introduced or modified the following commands: rest-api image, rest-api
agent, show rest-api agent, debug rest-api, show version
Support for ASA image signing ASA images are now signed using a digital signature. The digital signature is
and verification verified after the ASA is booted.
We introduced the following commands: copy /noverify, verify
/image-signature, show software authenticity keys, show software
authenticity file, show software authenticity running, show software
authenticity development, software authenticity development, software
authenticity key add special, software authenticity key revoke special
Accelerated security path load The accelerated security path (ASP) load balancing mechanism reduces packet
balancing drop and improves throughput by allowing multiple cores of the CPU to
receive packets from an interface receive ring and work on them independently.
We introduced the following command: asp load-balance per-packet-auto
Firewall Features
Feature Description
Configuration session for You can now edit ACLs and objects in an isolated configuration session. You
editing ACLs and objects. can also forward reference objects and ACLs, that is, configure rules and
access groups for objects or ACLs that do not yet exist.
Forward referencing of objects
and ACLs in access rules. We introduced the following commands: clear configuration session, clear
session, configure session, forward-reference, show configuration session
SIP support for Trust You can now configure Trust Verification Services servers in SIP inspection.
Verification Services, NAT66, You can also use NAT66. SIP inspection has been tested with CUCM 10.5.
CUCM 10.5, and model 8831 We introduced the following command: trust-verification-server.
phones.
Unified Communications SIP and SCCP inspections were tested and verified with Cisco Unified
support for CUCM 10.5 Communications Manager 10.5.
Remote Access Features
Browser support for Citrix VDI We now support an HTML 5-based browser solution for accessing the Citrix
VDI, without requiring the Citrix Receiver client on the desktop.
Clientless SSL VPN for Mac We now support Clientless SSL VPN features such as the rewriter, smart
OSX 10.9 tunnels, and plugins on all browsers that are supported on Mac OSX 10.9.
Interoperability with We now support VPN connectivity via standards-based, third-party, IKEv2
standards-based, third-party, remote-access clients (in addition to AnyConnect). Authentication support
IKEv2 remote access clients includes preshared keys, certificates, and user authentication via the Extensible
Authentication Protocol (EAP).
We introduced or modified the following commands: ikev2
remote-authentication, ikev2 local-authentication, clear vpn-sessiondb,
show vpn-sessiondb, vpn-sessiondb logoff
Transport Layer Security (TLS) We now support TLS version 1.2 for secure message transmission for ASDM,
version 1.2 support Clientless SSVPN, and AnyConnect VPN.
We introduced or modified the following commands: ssl client-version, ssl
server-version, ssl cipher, ssl trust-point, ssl dh-group, show ssl, show ssl
cipher, show vpn-sessiondb
We deprecated the following command: ssl encryption
AnyConnect 4.0 support for AnyConnect 4.0 now supports TLS version 1.2 with the following four
TLS version 1.2 additional cipher suites: DHE-RSA-AES256-SHA256,
DHE-RSA-AES128-SHA256, AES256-SHA256, and AES128-SHA256.
Licensing Features
Feature Description
Cisco Smart Software Smart Software Licensing lets you purchase and manage a pool of licenses.
Licensing for the ASAv Unlike PAK licenses, smart licenses are not tied to a specific serial number.
You can easily deploy or retire ASAvs without having to manage each unit’s
license key. Smart Software Licensing also lets you see your license usage and
needs at a glance.
We introduced the following commands: clear configure license, debug
license agent, feature tier, http-proxy, license smart, license smart
deregister, license smart register, license smart renew, show license, show
running-config license, throughput level
ASA clustering inter-site You can now deploy a cluster in transparent mode between inside networks and
deployment in transparent the gateway router at each site (AKA East-West insertion), and extend the
mode with the ASA cluster inside VLANs between sites. We recommend using Overlay Transport
firewalling between inside Virtualization (OTV), but you can use any method that ensures that the
networks overlapping MAC Addresses and IP addresses of the gateway router do not
leak between sites. Use a First Hop Redundancy Protocol (FHRP) such as
HSRP to provide the same virtual MAC and IP addresses to the gateway
routers.
Interface Features
Traffic Zones You can group interfaces together into a traffic zone to accomplish traffic load
balancing (using Equal Cost Multi-Path (ECMP) routing), route redundancy,
and asymmetric routing across multiple interfaces.
Note You cannot apply a security policy to a named zone; the security policy
is interface-based. When interfaces in a zone are configured with the
same access rule, NAT, and service policy, then load-balancing and
asymmetric routing operate correctly.
Routing Features
Feature Description
BGP support for IPv6 We added support for IPv6.
We introduced or modified the following commands: address-family ipv6,
bgp router-id, ipv6 prefix-list, ipv6 prefix-list description, ipv6 prefix-list
sequence-number, match ipv6 next-hop, match ipv6 route-source, match
ipv6- address prefix-list, set ipv6-address prefix -list, set ipv6 next-hop, set
ipv6 next-hop peer-address
Monitoring Features
SNMP MIBs and traps The CISCO-PRODUCTS-MIB and
CISCO-ENTITY-VENDORTYPE-OID-MIB have been updated to support the
new ASA 5506-X.
The ASA 5506-X have been added as new products to the SNMP sysObjectID
OID and entPhysicalVendorType OID.
The ASA now supports the CISCO-CONFIG-MAN-MIB, which enables you
to do the following:
• Know which commands have been entered for a specific configuration.
• Notify the NMS when a change has occurred in the running configuration.
• Track the time stamps associated with the last time that the running
configuration was changed or saved.
• Track other changes to commands, such as terminal details and command
sources.
We modified the following command: snmp-server enable traps
Showing route summary The show route-summary command output has been added to the show
information for troubleshooting tech-support detail command.
Management Features
System backup and restore We now support complete system backup and restoration using the CLI.
We introduced the following commands: backup, restore
Note The ASA 5505 is not supported in this release or later. ASA Version 9.2 was the final release for the
ASA 5505.
Feature Description
Firewall Features
SIP, SCCP, and TLS Proxy support for IPv6 You can now inspect IPv6 traffic when using SIP, SCCP, and TLS Proxy (using
SIP or SCCP).
We did not modify any commands.
Support for Cisco Unified Communications The ASA now interoperates with Cisco Unified Communications Manager
Manager 8.6 Version 8.6 (including SCCPv21 support).
We did not modify any commands.
Transactional Commit Model on rule engine When enabled, a rule update is applied after the rule compilation is completed;
for access groups and NAT without affecting the rule matching performance.
We introduced the following commands: asp rule-engine
transactional-commit, show running-config asp rule-engine
transactional-commit, clear configure asp rule-engine
transactional-commit
AnyConnect Custom Attribute Custom attributes define and configure AnyConnect features that have not
Enhancements been incorporated into the ASA, such as Deferred Upgrade. Custom attribute
configuration has been enhanced to allow multiple values and longer values,
and now requires a specification of their type, name and value. They can now
be added to Dynamic Access Policies as well as Group Policies. Previously
defined custom attributes will be updated to this enhanced configuration
format upon upgrade to 9.3.x.
We introduced or modified the following commands:
anyconnect-custom-attr, anyconnect-custom-data, and
anyconnect-custom
Feature Description
AnyConnect Identity Extensions (ACIDex) ACIDex, also known as AnyConnect Endpoint Attributes or Mobile Posture, is
for Desktop Platforms the method used by the AnyConnect VPN client to communicate posture
information to the ASA. Dynamic Access Polices use these endpoint attributes
to authorize users.
The AnyConnect VPN client now provides Platform identification for the
desktop operating systems (Windows, Mac OS X, and Linux) and a pool of
MAC Addresses which can be used by DAPs.
We did not modify any commands.
TrustSec SGT Assignment for VPN TrustSec Security Group Tags (SGT) can now be added to the SGT-IP table on
the ASA when a remote user connects.
We introduced the following new command: security-group-tag value
Disable health monitoring of a hardware By default, the ASA monitors the health of an installed hardware module such
module as the ASA FirePOWER module. If you do not want a hardware module failure
to trigger failover, you can disable module monitoring.
We modified the following command: monitor-interface service-module
Platform Features
ASP Load Balancing The new auto option in the asp load-balance per-packet command enables
the ASA to adaptively switch ASP load balancing per-packet on and off on
each interface receive ring. This automatic mechanism detects whether or not
asymmetric traffic has been introduced and helps avoid the following issues:
• Overruns caused by sporadic traffic spikes on flows
• Overruns caused by bulk flows oversubscribing specific interface receive
rings
• Overruns caused by relatively heavily overloaded interface receive rings,
in which a single core cannot sustain the load
We introduced or modified the following commands: asp load-balance
per-packet auto, show asp load-balance per-packet, show asp load-balance
per-packet history, and clear asp load-balance history
Feature Description
Transparent mode bridge group maximum The bridge group maximum was increased from 8 to 250 bridge groups. You
increased to 250 can configure up to 250 bridge groups in single mode or per context in multiple
mode, with 4 interfaces maximum per bridge group.
We modified the following commands: interface bvi, bridge-group
Routing Features
BGP support for ASA clustering We added support for BGP with ASA clustering.
We introduced the following new command: bgp router-id clusterpool
BGP support for nonstop forwarding We added support for BGP Nonstop Forwarding.
We introduced the following new commands: bgp graceful-restart, neighbor
ha-mode graceful-restart
BGP support for advertised maps We added support for BGPv4 advertised map.
We introduced the following new command: neighbor advertise-map
OSPF Support for Non-Stop Forwarding OSPFv2 and OSPFv3 support for NSF was added.
(NSF) We added the following commands: capability, nsf cisco, nsf cisco helper, nsf
ietf, nsf ietf helper, nsf ietf helper strict-lsa-checking, graceful-restart,
graceful-restart helper, graceful-restart helper strict-lsa-checking
AAA Features
Layer 2 Security Group Tag Imposition You can now use security group tagging combined with Ethernet tagging to
enforce policies. SGT plus Ethernet Tagging, also called Layer 2 SGT
Imposition, enables the ASA to send and receive security group tags on
Gigabit Ethernet interfaces using Cisco proprietary Ethernet framing (Ether
Type 0x8909), which allows the insertion of source security group tags into
plain-text Ethernet frames.
We introduced or modified the following commands: cts manual, policy static
sgt, propagate sgt, cts role-based sgt-map, show cts sgt-map,
packet-tracer, capture, show capture, show asp drop, show asp table
classify, show running-config all, clear configure all, and write memory
Removal of AAA Windows NT domain We removed NTLM support for remote access VPN users.
authentication
We deprecated the following command: aaa-server protocol nt
Feature Description
Monitoring Features
Monitoring Aggregated Traffic for Physical The show traffic command output has been updated to include aggregated
Interfaces traffic for physical interfaces information. To enable this feature, you must first
enter the sysopt traffic detailed-statistics command.
Applying NAT
Some of the benefits of NAT include the following:
• You can use private addresses on your inside networks. Private addresses are not routable on the
Internet.
• NAT hides the local addresses from other networks, so attackers cannot learn the real address of a
host.
• NAT can resolve IP routing problems by supporting overlapping IP addresses.
Note The TCP state bypass feature allows you to customize the packet flow.
A stateful firewall like the ASA, however, takes into consideration the state of a packet:
• Is this a new connection?
If it is a new connection, the ASA has to check the packet against access lists and perform other
tasks to determine if the packet is allowed or denied. To perform this check, the first packet of the
session goes through the “session management path,” and depending on the type of traffic, it might
also pass through the “control plane path.”
The session management path is responsible for the following tasks:
– Performing the access list checks
– Performing route lookups
– Allocating NAT translations (xlates)
– Establishing sessions in the “fast path”
The ASA creates forward and reverse flows in the fast path for TCP traffic; the ASA also creates
connection state information for connectionless protocols like UDP, ICMP (when you enable ICMP
inspection), so that they can also use the fast path.
Note For other IP protocols, like SCTP, the ASA does not create reverse path flows. As a result,
ICMP error packets that refer to these connections are dropped.
Some packets that require Layer 7 inspection (the packet payload must be inspected or altered) are
passed on to the control plane path. Layer 7 inspection engines are required for protocols that have
two or more channels: a data channel, which uses well-known port numbers, and a control channel,
which uses different port numbers for each session. These protocols include FTP, H.323, and SNMP.
• Is this an established connection?
If the connection is already established, the ASA does not need to re-check packets; most matching
packets can go through the “fast” path in both directions. The fast path is responsible for the
following tasks:
– IP checksum verification
– Session lookup
– TCP sequence number check
– NAT translations based on existing sessions
– Layer 3 and Layer 4 header adjustments
Data packets for protocols that require Layer 7 inspection can also go through the fast path.
Some established session packets must continue to go through the session management path or the
control plane path. Packets that go through the session management path include HTTP packets that
require inspection or content filtering. Packets that go through the control plane path include the
control packets for protocols that require Layer 7 inspection.
This chapter describes how to get started with your Cisco ASA.
• Access the Console for Command-Line Interface, page 2-1
• Configure ASDM Access, page 2-6
• Start ASDM, page 2-11
• Factory Default Configurations, page 2-13
• Work with the Configuration, page 2-17
• Apply Configuration Changes to Connections, page 2-21
• Reload the ASA, page 2-22
Note For ASAv console access, see the ASAv quick start guide.
Procedure
Step 1 Connect a computer to the console port using the provided console cable, and connect to the console
using a terminal emulator set for 9600 baud, 8 data bits, no parity, 1 stop bit, no flow control.
See the hardware guide for your ASA for more information about the console cable.
Step 2 Press the Enter key to see the following prompt:
ciscoasa>
This prompt indicates that you are in user EXEC mode. Only basic commands are available from user
EXEC mode.
Step 3 To access privileged EXEC mode, enter the following command:
ciscoasa> enable
All non-configuration commands are available in privileged EXEC mode. You can also enter
configuration mode from privileged EXEC mode.
Step 4 Enter the enable password at the prompt.
By default, the password is blank, and you can press the Enter key to continue. See Set the Hostname,
Domain Name, and the Enable and Telnet Passwords, page 14-1 to change the enable password.
The prompt changes to:
ciscoasa#
You can begin to configure the ASA from global configuration mode. To exit global configuration mode,
enter the exit, quit, or end command.
Benefits include:
– The connection is persistent across reloads and does not time out.
– You can stay connected through ASASM reloads and view startup messages.
– You can access ROMMON if the ASASM cannot load the image.
– No initial password configuration is required.
Limitations include:
– The connection is slow (9600 baud).
– You can only have one console connection active at a time.
– You cannot use this command in conjunction with a terminal server where Ctrl-Shift-6, x is the
escape sequence to return to the terminal server prompt. Ctrl-Shift-6, x is also the sequence to
escape the ASASM console and return to the switch prompt. Therefore, if you try to exit the
ASASM console in this situation, you instead exit all the way to the terminal server prompt. If
you reconnect the terminal server to the switch, the ASASM console session is still active; you
can never exit to the switch prompt. You must use a direct serial connection to return the console
to the switch prompt. In this case, either change the terminal server or switch escape character
in Cisco IOS software, or use the Telnet session command instead.
Note Because of the persistence of the console connection, if you do not properly log out of
the ASASM, the connection may exist longer than intended. If someone else wants to
log in, they will need to kill the existing connection.
• Telnet connection—Using the session command, you create a Telnet connection to the ASASM.
Note You cannot connect using this method for a new ASASM; this method requires you to
configure a Telnet login password on the ASASM (there is no default password). After you
set a password using the passwd command, you can use this method.
Benefits include:
– You can have multiple sessions to the ASASM at the same time.
– The Telnet session is a fast connection.
Limitations include:
– The Telnet session is terminated when the ASASM reloads, and can time out.
– You cannot access the ASASM until it completely loads; you cannot access ROMMON.
– You must first set a Telnet login password; there is no default password.
Procedure
Example:
Router# service-module session slot 3
ciscoasa>
Example:
Router# session slot 3 processor 1
ciscoasa passwd: cisco
ciscoasa>
Example:
ciscoasa> enable
Password:
ciscoasa#
Enter the enable password at the prompt. By default, the password is blank.
To exit privileged EXEC mode, enter the disable, exit, or quit command.
Step 3 Access global configuration mode:
configure terminal
To exit global configuration mode, enter the disable, exit, or quit command.
Related Topics
• Guidelines for Management Access, page 35-1.
• Set the Hostname, Domain Name, and the Enable and Telnet Passwords, page 14-1
Procedure
Note Shift-6 on US and UK keyboards issues the caret (^) character. If you have a different keyboard
and cannot issue the caret (^) character as a standalone character, you can temporarily or
permanently change the escape character to a different character. Use the terminal
escape-character ascii_number command (to change for this session) or the default
escape-character ascii_number command (to change permanently). For example, to change the
sequence for the current session to Ctrl-w, x, enter terminal escape-character 23.
Procedure
Step 1 From the switch CLI, show the connected users using the show users command. A console user is called
“con”. The Host address shown is 127.0.0.slot0, where slot is the slot number of the module.
Router# show users
For example, the following command output shows a user “con” on line 0 on a module in slot 2:
Router# show users
Line User Host(s) Idle Location
Step 2 To clear the line with the console connection, enter the following command:
Router# clear line number
For example:
Router# clear line 0
Procedure
Step 1 To return to the switch CLI, type exit from the ASASM privileged or user EXEC mode. If you are in a
configuration mode, enter exit repeatedly until you exit the Telnet session.
You return to the switch prompt:
asasm# exit
Router#
Note You can alternatively escape the Telnet session using the escape sequence Ctrl-Shift-6, x; this
escape sequence lets you resume the Telnet session by pressing the Enter key at the switch
prompt. To disconnect your Telnet session from the switch, enter disconnect at the switch CLI.
If you do not disconnect the session, it will eventually time out according to the ASASM
configuration.
Use the Factory Default Configuration for ASDM Access (Appliances, ASAv)
With a factory default configuration, ASDM connectivity is pre-configured with default network
settings.
Procedure
Step 1 Connect to ASDM using the following interface and network settings:
• The management interface depends on your model:
– ASA 5506-X—The interface to which you connect to ASDM is Management 1/1.
– ASA 5512-X and higher—The interface to which you connect to ASDM is Management 0/0.
– ASAv—The interface to which you connect to ASDM is Management 0/0.
• The default management address is:
– ASA appliances—192.168.1.1.
– ASAv—You set the management interface IP address during deployment.
• The clients allowed to access ASDM:
– ASA appliances—Clients must be on the 192.168.1.0/24 network. The default configuration
enables DHCP so that your management station can be assigned an IP address in this range.
– ASAv—You set the management client IP address during deployment. The ASAv does not act
as the DHCP server for connected clients.
Note If you change to multiple context mode, you can access ASDM from the admin context using the network
settings above.
Related Topics
• Factory Default Configurations, page 2-13
• Enable or Disable Multiple Context Mode, page 6-15
• Start ASDM, page 2-11
Note For the ASAv, you can configure transparent mode when you deploy (in 9.3(2) and later), so this
procedure is primarily useful after you deploy if you need to clear your configuration, for example.
Procedure
Example:
ciscoasa(config)# interface management 0/0
ciscoasa(config-if)# nameif management
ciscoasa(config-if)# security-level 100
ciscoasa(config-if)# no shutdown
ciscoasa(config-if)# ip address 192.168.1.1 255.255.255.0
The security-level is a number between 1 and 100, where 100 is the most secure.
Step 4 (For directly-connected management hosts) Set the DHCP pool for the management network:
dhcpd address ip_address-ip_address
interface_name
dhcpd enable interface_name
Example:
ciscoasa(config)# dhcpd address 192.168.1.2-192.168.1.254 management
ciscoasa(config)# dhcpd enable management
Make sure you do not include the Management address in the range.
Step 5 (For remote management hosts) Configure a route to the management hosts:
route management_ifc management_host_ip mask gateway_ip 1
Example:
ciscoasa(config)# route management 10.1.1.0 255.255.255.0 192.168.1.50 1
Example:
ciscoasa(config)# http 192.168.1.0 255.255.255.0 management
mode multiple
When prompted, confirm that you want to convert the existing configuration to be the admin context.
You are then prompted to reload the ASA.
Examples
The following configuration converts the firewall mode to transparent mode, configures the
Management 0/0 interface, and enables ASDM for a management host:
firewall transparent
interface management 0/0
ip address 192.168.1.1 255.255.255.0
nameif management
security-level 100
no shutdown
dhcpd address 192.168.1.2-192.168.1.254 management
dhcpd enable management
http server enable
http 192.168.1.0 255.255.255.0 management
Related Topics
• Restore the Factory Default Configuration, page 2-13
• Set the Firewall Mode, page 5-9
• Access the Appliance Console, page 2-1
• Start ASDM, page 2-11
• Chapter 6, “Multiple Context Mode.”
Procedure
nameif name
security-level level
Example:
ciscoasa(config)# interface vlan 1
ciscoasa(config-if)# ip address 192.168.1.1 255.255.255.0
ciscoasa(config-if)# nameif inside
ciscoasa(config-if)# security-level 100
The security-level is a number between 1 and 100, where 100 is the most secure.
• Transparent mode—Configure a bridge virtual interface and assigns a management VLAN to the
bridge group:
interface bvi number
ip address ip_address [mask]
Example:
ciscoasa(config)# interface bvi 1
ciscoasa(config-if)# ip address 192.168.1.1 255.255.255.0
The security-level is a number between 1 and 100, where 100 is the most secure.
Step 4 (For directly-connected management hosts) Enable DHCP for the management host on the management
interface network:
dhcpd address ip_address-ip_address
interface_name
dhcpd enable interface_name
Example:
ciscoasa(config)# dhcpd address 192.168.1.2-192.168.1.254 inside
ciscoasa(config)# dhcpd enable inside
Make sure you do not include the management address in the range.
Step 5 (For remote management hosts) Configure a route to the management hosts:
route management_ifc management_host_ip mask gateway_ip 1
Example:
ciscoasa(config)# route management 10.1.1.0 255.255.255.0 192.168.1.50
Example:
When prompted, confirm that you want to convert the existing configuration to be the admin context.
You are then prompted to reload the ASASM.
Examples
The following routed mode configuration configures the VLAN 1 interface and enables ASDM for a
management host:
interface vlan 1
nameif inside
ip address 192.168.1.1 255.255.255.0
security-level 100
dhcpd address 192.168.1.3-192.168.1.254 inside
dhcpd enable inside
http server enable
http 192.168.1.0 255.255.255.0 inside
The following configuration converts the firewall mode to transparent mode, configures the VLAN 1
interface and assigns it to BVI 1, and enables ASDM for a management host:
firewall transparent
interface bvi 1
ip address 192.168.1.1 255.255.255.0
interface vlan 1
bridge-group 1
nameif inside
security-level 100
dhcpd address 192.168.1.3-192.168.1.254 inside
dhcpd enable inside
http server enable
http 192.168.1.0 255.255.255.0 inside
Related Topics
• Access the ASA Services Module Console, page 2-2
• Chapter 6, “Multiple Context Mode.”
• Set the Firewall Mode, page 5-9
Start ASDM
You can start ASDM using two methods:
• ASDM-IDM Launcher—The Launcher is an application downloaded from the ASA using a web
browser that you can use to connect to any ASA IP address. You do not need to re-download the
launcher if you want to connect to other ASAs. The Launcher also lets you run a virtual ASDM in
Demo mode using files downloaded locally.
• Java Web Start—For each ASA that you manage, you need to connect with a web browser and then
save or launch the Java Web Start application. You can optionally save the shortcut to your
computer; however you need separate shortcuts for each ASA IP address.
Within ASDM, you can choose a different ASA IP address to manage; the difference between the
Launcher and Java Web Start functionality rests primarily in how you initially connect to the ASA and
launch ASDM.
This section describes how to connect to ASDM initially, and then launch ASDM using the Launcher or
the Java Web Start.
Procedure
Step 1 On the computer that you specified as the ASDM client, enter the following URL:
https://asa_ip_address/admin
Note In addition to the image files and the (hidden) default configuration, the following folders and files are
standard in flash memory: log/, crypto_archive/, and coredumpinfo/coredump.cfg. The date on these
files may not match the date of the image files in flash memory. These files aid in potential
troubleshooting; they do not indicate that a failure has occurred.
Note On the ASASM, restoring the factory default configuration simply erases the configuration; there is no
factory default configuration.
Procedure
Example:
If you specify the ip_address, then you set the inside or management interface IP address, depending on
your model, instead of using the default IP address of 192.168.1.1. The http command uses the subnet
you specify. Similarly, the dhcpd address command range consists of addresses within the subnet that
you specify.
This command also clears the boot system command, if present, along with the rest of the configuration.
The boot system command lets you boot from a specific image, including an image on the external flash
memory card. The next time you reload the ASA after restoring the factory configuration, it boots from
the first image in internal flash memory; if you do not have an image in internal flash memory, the ASA
does not boot.
Step 2 Save the default configuration to flash memory:
write memory
This command saves the running configuration to the default location for the startup configuration, even
if you previously configured the boot config command to set a different location; when the configuration
was cleared, this path was also cleared.
Procedure
Note The ASAv boots the current running image, so you are not reverted to the original boot image. To use
the original boot image, see the boot image command.
• (9.3(2) and later; Optional) Smart Call Home HTTP Proxy URL and port
• (9.3(2) and later; Optional) SSH management settings:
– Client IP addresses
– Local username and password
– Authentication required for SSH using the LOCAL database
• (9.3(2) and later; Optional) REST API enabled or disabled
Note To successfully register the ASAv with the Cisco Licensing Authority, the ASAv requires Internet
access. You might need to perform additional configuration after deployment to achieve Internet access
and successful license registration.
failover
failover lan unit primary
failover lan interface fover gigabitethernet0/8
failover link fover gigabitethernet0/8
failover interface ip fover primary_ip mask standby standby_ip
Procedure
Note The copy running-config startup-config command is equivalent to the write memory command.
Procedure
Step 1 From within the context or the system, save the running configuration to the startup configuration:
write memory
For multiple context mode, context startup configurations can reside on external servers. In this case, the
ASA saves the configuration back to the server you identified in the context URL, except for an HTTP
or HTTPS URL, which do not let you save the configuration to the server.
Note The copy running-config startup-config command is equivalent to the write memory command.
Use the following procedure to save all context configurations at the same time, as well as the system
configuration.
Procedure
Step 1 From the system execution space, save the running configuration to the startup configuration for all
contexts and the system configuration:
write memory all [/noconfirm]
If you do not enter the /noconfirm keyword, you see the following prompt:
Are you sure [Y/N]:
After you enter Y, the ASA saves the system configuration and each context. Context startup
configurations can reside on external servers. In this case, the ASA saves the configuration back to the
server you identified in the context URL, except for an HTTP or HTTPS URL, which do not let you save
the configuration to the server.
After the ASA saves each context, the following message appears:
‘Saving context ‘b’ ... ( 1/3 contexts saved ) ’
Sometimes, a context is not saved because of an error. See the following information for errors:
• For contexts that are not saved because of low memory, the following message appears:
The context 'context a' could not be saved due to Unavailability of resources
• For contexts that are not saved because the remote destination is unreachable, the following message
appears:
The context 'context a' could not be saved due to non-reachability of destination
• For contexts that are not saved because the context is locked, the following message appears:
Unable to save the configuration for the following contexts as these contexts are
locked.
context ‘a’ , context ‘x’ , context ‘z’ .
A context is only locked if another user is already saving the configuration or in the process of
deleting the context.
• For contexts that are not saved because the startup configuration is read-only (for example, on an
HTTP server), the following message report is printed at the end of all other messages:
Unable to save the configuration for the following contexts as these contexts have
read-only config-urls:
context ‘a’ , context ‘b’ , context ‘c’ .
• For contexts that are not saved because of bad sectors in the flash memory, the following message
appears:
The context 'context a' could not be saved due to Unknown errors
To clear the configuration for only aaa authentication commands, enter the following command:
ciscoasa(config)# clear configure aaa authentication
• write erase
Erases the startup configuration.
Note For the ASAv, this command restores the deployment configuration after a reload. To erase the
configuration completely, use the clear configure all command.
Note In multiple context mode, if you enter clear configure all from the system configuration, you
also remove all contexts and stop them from running. The context configuration files are not
erased, and remain in their original location.
This command also clears the boot system command, if present, along with the rest of the
configuration. The boot system command lets you boot from a specific image, including an
image on the external flash memory card. The next time you reload the ASA, it boots from the
first image in internal flash memory; if you do not have an image in internal flash memory, the
ASA does not boot.
In the text configuration file you are not prompted to enter commands, so the prompt is omitted as
follows:
context a
For additional information about formatting the file, see Appendix 42, “Using the Command-Line
Interface.”
Procedure
Note In multiple context mode, you can only reload from the system execution space.
A license specifies the options that are enabled on a given Cisco ASA. This document describes product
authorization key (PAK) licenses for all physical ASAs and the ASAv in Version 9.3(1). For the ASAv
in Version 9.3(2), see Chapter 4, “Smart Software Licensing for the ASAv.”
• Supported Feature Licenses Per Model, page 3-1
• About PAK Licenses, page 3-20
• Guidelines for PAK Licenses, page 3-28
• Configure PAK Licenses, page 3-29
• Configure a Shared License, page 3-31
• Monitoring PAK Licenses, page 3-38
• History for PAK Licenses, page 3-50
Note Some features are incompatible with each other. See the individual feature chapters for compatibility
information.
If you have a No Payload Encryption model, then some of the features below are not supported. See No
Payload Encryption Models, page 3-27 for a list of unsupported features.
For detailed information about licenses, see License Notes, page 3-15.
ASA 5506-X
ASA 5512-X
ASA 5515-X
ASA 5525-X
ASA 5545-X
ASA 5555-X
Table 3-9 ASA 5585-X with SSP-40 and -60 License Features
Table 3-9 ASA 5585-X with SSP-40 and -60 License Features (continued)
ASAv10 (9.3(1))
ASAv30 (9.3(1))
License Notes
The following table includes additional information about licenses.
License Notes
AnyConnect Essentials AnyConnect Essentials sessions include the following VPN types:
• SSL VPN
• IPsec remote access VPN using IKEv2
This license does not support browser-based (clientless) SSL VPN access or Cisco Secure
Desktop. For these features, activate an AnyConnect Premium license instead of the AnyConnect
Essentials license.
Note With the AnyConnect Essentials license, VPN users can use a web browser to log in, and
download and start (WebLaunch) the AnyConnect client.
The AnyConnect client software offers the same set of client features, whether it is enabled by
this license or an AnyConnect Premium license.
The AnyConnect Essentials license cannot be active at the same time as the following licenses on
a given ASA: AnyConnect Premium license (all types) or the Advanced Endpoint Assessment
license. You can, however, run AnyConnect Essentials and AnyConnect Premium licenses on
different ASAs in the same network.
By default, the ASA uses the AnyConnect Essentials license, but you can disable it to use other
licenses by using the webvpn, and then the no anyconnect-essentials command or in ASDM,
using the Configuration > Remote Access VPN > Network (Client) Access > Advanced >
AnyConnect Essentials pane.
AnyConnect for Cisco In conjunction with an AnyConnect Premium license, this license enables access from hardware
VPN Phone IP phones that have built in AnyConnect compatibility.
License Notes
AnyConnect for Mobile This license provides access to the AnyConnect Client for touch-screen mobile devices running
Windows Mobile 5.0, 6.0, and 6.1. We recommend using this license if you want to support
mobile access to AnyConnect 2.3 and later versions. This license requires activation of one of the
following licenses to specify the total number of SSL VPN sessions permitted: AnyConnect
Essentials or AnyConnect Premium.
License Notes
Intercompany Media When you enable the Intercompany Media Engine (IME) license, you can use TLS proxy sessions
Engine up to the configured TLS proxy limit. If you also have a Unified Communications (UC) license
installed that is higher than the default TLS proxy limit, then the ASA sets the limit to be the UC
license limit plus an additional number of sessions depending on your model. You can manually
configure the TLS proxy limit using the tls-proxy maximum-sessions command or in ASDM,
using the Configuration > Firewall > Unified Communications > TLS Proxy pane. To view the
limits of your model, enter the tls-proxy maximum-sessions ? command. If you also install the
UC license, then the TLS proxy sessions available for UC are also available for IME sessions. For
example, if the configured limit is 1000 TLS proxy sessions, and you purchase a 750-session UC
license, then the first 250 IME sessions do not affect the sessions available for UC. If you need
more than 250 sessions for IME, then the remaining 750 sessions of the platform limit are used
on a first-come, first-served basis by UC and IME.
• For a license part number ending in “K8”, TLS proxy sessions are limited to 1000.
• For a license part number ending in “K9”, the TLS proxy limit depends on your configuration
and the platform model.
Note K8 and K9 refer to whether the license is restricted for export: K8 is unrestricted, and K9
is restricted.
You might also use SRTP encryption sessions for your connections:
• For a K8 license, SRTP sessions are limited to 250.
• For a K9 license, there is no limit.
Note Only calls that require encryption/decryption for media are counted toward the SRTP
limit; if passthrough is set for the call, even if both legs are SRTP, they do not count toward
the limit.
Interfaces of all types, The maximum number of combined interfaces; for example, VLANs, physical, redundant, bridge
Max. group, and EtherChannel interfaces. Every interface command defined in the configuration
counts against this limit. For example, both of the following interfaces count even if the
GigabitEthernet 0/0 interface is defined as part of port-channel 1:
interface gigabitethernet 0/0
and
interface port-channel 1
License Notes
IPS module The IPS module license lets you run the IPS software module on the ASA. You also need the IPS
signature subscription on the IPS side.
See the following guidelines:
• To buy the IPS signature subscription you need to have the ASA with IPS pre-installed (the
part number must include “IPS”, for example ASA5515-IPS-K9); you cannot buy the IPS
signature subscription for a non-IPS part number ASA.
• For failover, you need the IPS signature subscription on both units; this subscription is not
shared in failover, because it is not an ASA license.
• For failover, the IPS signature subscription requires a unique IPS module license per unit.
Like other ASA licenses, the IPS module license is technically shared in the failover cluster
license. However, because of the IPS signature subscription requirements, you must buy a
separate IPS module license for each unit in failover.
Other VPN Other VPN sessions include the following VPN types:
• IPsec remote access VPN using IKEv1
• IPsec site-to-site VPN using IKEv1
• IPsec site-to-site VPN using IKEv2
This license is included in the Base license.
Total VPN (sessions), • Although the maximum VPN sessions add up to more than the maximum VPN AnyConnect
combined all types and Other VPN sessions, the combined sessions should not exceed the VPN session limit. If
you exceed the maximum VPN sessions, you can overload the ASA, so be sure to size your
network appropriately.
• If you start a clientless SSL VPN session and then start an AnyConnect client session from
the portal, 1 session is used in total. However, if you start the AnyConnect client first (from
a standalone client, for example) and then log into the clientless SSL VPN portal, then
2 sessions are used.
License Notes
UC Phone Proxy sessions, The following applications use TLS proxy sessions for their connections. Each TLS proxy session
Total UC Proxy Sessions used by these applications (and only these applications) is counted against the UC license limit:
• Phone Proxy
• Presence Federation Proxy
• Encrypted Voice Inspection
Other applications that use TLS proxy sessions do not count toward the UC limit, for example,
Mobility Advantage Proxy (which does not require a license) and IME (which requires a separate
IME license).
Some UC applications might use multiple sessions for a connection. For example, if you
configure a phone with a primary and backup Cisco Unified Communications Manager, there are
2 TLS proxy connections, so 2 UC Proxy sessions are used.
You independently set the TLS proxy limit using the tls-proxy maximum-sessions command or
in ASDM, using the Configuration > Firewall > Unified Communications > TLS Proxy pane.
To view the limits of your model, enter the tls-proxy maximum-sessions ? command. When you
apply a UC license that is higher than the default TLS proxy limit, the ASA automatically sets the
TLS proxy limit to match the UC limit. The TLS proxy limit takes precedence over the UC license
limit; if you set the TLS proxy limit to be less than the UC license, then you cannot use all of the
sessions in your UC license.
Note For license part numbers ending in “K8” (for example, licenses under 250 users), TLS
proxy sessions are limited to 1000. For license part numbers ending in “K9” (for example,
licenses 250 users or larger), the TLS proxy limit depends on the configuration, up to the
model limit. K8 and K9 refer to whether the license is restricted for export: K8 is
unrestricted, and K9 is restricted.
If you clear the configuration (using the clear configure all command, for example), then
the TLS proxy limit is set to the default for your model; if this default is lower than the
UC license limit, then you see an error message to use the tls-proxy maximum-sessions
command to raise the limit again (in ASDM, use the TLS Proxy pane). If you use failover
and enter the write standby command or in ASDM, use File > Save Running
Configuration to Standby Unit on the primary unit to force a configuration
synchronization, the clear configure all command is generated on the secondary unit
automatically, so you may see the warning message on the secondary unit. Because the
configuration synchronization restores the TLS proxy limit set on the primary unit, you
can ignore the warning.
You might also use SRTP encryption sessions for your connections:
• For K8 licenses, SRTP sessions are limited to 250.
• For K9 licenses, there is not limit.
Note Only calls that require encryption/decryption for media are counted toward the SRTP
limit; if passthrough is set for the call, even if both legs are SRTP, they do not count toward
the limit.
Virtual CPU You must install a model license on the ASAv that sets the appropriate number of vCPUs. Until
you install a license, throughput is limited to 100 Kbps so that you can perform preliminary
connectivity tests. A model license is required for regular operation.
License Notes
VLANs, Maximum For an interface to count against the VLAN limit, you must assign a VLAN to it. For example:
interface gigabitethernet 0/0.100
vlan 100
VPN Load Balancing VPN load balancing requires a Strong Encryption (3DES/AES) License.
Preinstalled License
By default, your ASA ships with a license already installed. This license might be the Base License, to
which you want to add more licenses, or it might already have all of your licenses installed, depending
on what you ordered and what your vendor installed for you.
Related Topics
Monitoring PAK Licenses, page 3-38
Permanent License
You can have one permanent activation key installed. The permanent activation key includes all licensed
features in a single key. If you also install time-based licenses, the ASA combines the permanent and
time-based licenses into a running license.
Related Topics
How Permanent and Time-Based Licenses Combine, page 3-21
Time-Based Licenses
In addition to permanent licenses, you can purchase time-based licenses or receive an evaluation license
that has a time-limit. For example, you might buy a time-based AnyConnect Premium license to handle
short-term surges in the number of concurrent SSL VPN users, or you might order a Botnet Traffic Filter
time-based license that is valid for 1 year.
• Time-Based License Activation Guidelines, page 3-21
• How the Time-Based License Timer Works, page 3-21
• How Permanent and Time-Based Licenses Combine, page 3-21
• Stacking Time-Based Licenses, page 3-22
• Time-Based License Expiration, page 3-23
Note We suggest you do not change the system clock after you install the time-based license. If you set the
clock to be a later date, then if you reload, the ASA checks the system clock against the original
installation time, and assumes that more time has passed than has actually been used. If you set the clock
back, and the actual running time is greater than the time between the original installation time and the
system clock, then the license immediately expires after a reload.
Note Even when the permanent license is used, if the time-based license is active, it continues to count down.
Related Topics
Monitoring PAK Licenses, page 3-38
Similarly:
1. You install an 8-week 1000-session AnyConnect Premium license, and use it for 2 weeks (6 weeks
remain).
2. You then install another 8-week 1000-session license, and the licenses combine to be 1000-sessions
for 14 weeks (8 weeks plus 6 weeks).
If the licenses are not identical (for example, a 1000-session AnyConnect Premium license vs. a
2500-session license), then the licenses are not combined. Because only one time-based license per
feature can be active, only one of the licenses can be active.
Although non-identical licenses do not combine, when the current license expires, the ASA
automatically activates an installed license of the same feature if available.
Related Topics
• Activate or Deactivate Keys, page 3-30
• Time-Based License Expiration, page 3-23
Related Topics
Activate or Deactivate Keys, page 3-30
Note The shared license feature on the ASA is not supported with newer AnyConnect licensing.
A shared license lets you purchase a large number of AnyConnect Premium sessions and share the
sessions as needed among a group of ASAs by configuring one of the ASAs as a shared licensing server,
and the rest as shared licensing participants.
– To buy the IPS signature subscription you need to have the ASA with IPS pre-installed (the
part number must include “IPS”, for example ASA5515-IPS-K9); you cannot buy the IPS
signature subscription for a non-IPS part number ASA.
– You need the IPS signature subscription on both units; this subscription is not shared in
failover, because it is not an ASA license.
– The IPS signature subscription requires a unique IPS module license per unit. Like other ASA
licenses, the IPS module license is technically shared in the failover cluster license. However,
because of the IPS signature subscription requirements, you must buy a separate IPS module
license for each unit in.
ASAv • Active/Standby—Standard and Premium Licenses.
• Active/Active—No Support.
Note The standby unit requires the same model license as the primary unit; Each unit must have the
same encryption license.
All other models Base License.
Note Each unit must have the same encryption license.
Note A valid permanent key is required; in rare instances, your authentication key can be removed. If your
key consists of all 0’s, then you need to reinstall a valid authentication key before failover can be
enabled.
Note In the above example, if the AnyConnect Premium licenses are time-based, you might want
to disable one of the licenses so that you do not “waste” a 500 session license from which
you can only use 250 sessions because of the platform limit.
– You have two ASA 5545-X ASAs, one with 20 contexts and the other with 10 contexts; the
combined license allows 30 contexts. For Active/Active failover, the contexts are divided
between the two units. One unit can use 18 contexts and the other unit can use 12 contexts, for
example, for a total of 30.
For example, for ASA clustering:
– You have four ASA 5585-X ASAs with SSP-10, three units with 50 contexts each, and one unit
with the default 2 contexts. Because the platform limit is 100, the combined license allows a
maximum of 100 contexts. Therefore, you can configure up to 100 contexts on the master unit;
each slave unit will also have 100 contexts through configuration replication.
– You have four ASA 5585-X ASAs with SSP-60, three units with 50 contexts each, and one unit
with the default 2 contexts. Because the platform limit is 250, the licenses will be combined for
a total of 152 contexts. Therefore, you can configure up to 152 contexts on the master unit; each
slave unit will also have 152 contexts through configuration replication.
• For licenses that have a status of enabled or disabled, then the license with the enabled status is used.
• For time-based licenses that are enabled or disabled (and do not have numerical tiers), the duration
is the combined duration of all licenses. The primary/master unit counts down its license first, and
when it expires, the secondary/slave unit(s) start counting down its license, and so on. This rule also
applies to Active/Active failover and ASA clustering, even though all units are actively operating.
For example, if you have 48 weeks left on the Botnet Traffic Filter license on two units, then the
combined duration is 96 weeks.
Related Topics
Monitoring PAK Licenses, page 3-38
• After 30 days—The time elapsed is subtracted from both units. In this case, communication is
restored after 6 weeks. Therefore, 6 weeks are subtracted from both the primary/master and
secondary/slave licenses, leaving 84 weeks combined (36 weeks on the primary/master, and 46
weeks on the secondary/slave).
Related Topics
Table 3-15 on page 3-30
Related Topics
Monitoring PAK Licenses, page 3-38
Licenses FAQ
Q. Can I activate multiple time-based licenses, for example, AnyConnect Premium and Botnet Traffic
Filter?
A. Yes. You can use one time-based license per feature at a time.
Q. Can I “stack” time-based licenses so that when the time limit runs out, it will automatically use the
next license?
A. Yes. For identical licenses, the time limit is combined when you install multiple time-based licenses.
For non-identical licenses (for example, a 1000-session AnyConnect Premium license and a
2500-session license), the ASA automatically activates the next time-based license it finds for the
feature.
Q. Can I install a new permanent license while maintaining an active time-based license?
A. Yes. Activating a permanent license does not affect time-based licenses.
Q. For failover, can I use a shared licensing server as the primary unit, and the shared licensing backup
server as the secondary unit?
A. No. The secondary unit has the same running license as the primary unit; in the case of the shared
licensing server, they require a server license. The backup server requires a participant license. The
backup server can be in a separate failover pair of two backup servers.
Q. Do I need to buy the same licenses for the secondary unit in a failover pair?
A. No. Starting with Version 8.3(1), you do not have to have matching licenses on both units. Typically,
you buy a license only for the primary unit; the secondary unit inherits the primary license when it
becomes active. In the case where you also have a separate license on the secondary unit (for
example, if you purchased matching licenses for pre-8.3 software), the licenses are combined into a
running failover cluster license, up to the model limits.
Failover Guidelines
See Failover or ASA Cluster Licenses, page 3-23.
Model Guidelines
• Smart Software Licensing is supported on the ASAv only.
• Shared licenses are not supported on the ASAv or ASA 5506-X.
• Downgrading to Version 8.2 or earlier—Version 8.3 introduced more robust time-based key usage
as well as failover license changes:
– If you have more than one time-based activation key active, when you downgrade, only the most
recently activated time-based key can be active. Any other keys are made inactive. If the last
time-based license is for a feature introduced in 8.3, then that license still remains the active
license even though it cannot be used in earlier versions. Reenter the permanent key or a valid
time-based key.
– If you have mismatched licenses on a failover pair, then downgrading will disable failover. Even
if the keys are matching, the license used will no longer be a combined license.
– If you have one time-based license installed, but it is for a feature introduced in 8.3, then after
you downgrade, that time-based license remains active. You need to reenter the permanent key
to disable the time-based license.
Additional Guidelines
• The activation key is not stored in your configuration file; it is stored as a hidden file in flash
memory.
• The activation key is tied to the serial number of the device. Feature licenses cannot be transferred
between devices (except in the case of a hardware failure). If you have to replace your device due
to a hardware failure, and it is covered by Cisco TAC, contact the Cisco Licensing Team to have your
existing license transferred to the new serial number. The Cisco Licensing Team will ask for the
Product Authorization Key reference number and existing serial number.
• Once purchased, you cannot return a license for a refund or for an upgraded license.
• On a single unit, you cannot add two separate licenses for the same feature together; for example, if
you purchase a 25-session SSL VPN license, and later purchase a 50-session license, you cannot use
75 sessions; you can use a maximum of 50 sessions. (You may be able to purchase a larger license
at an upgrade price, for example from 25 sessions to 75 sessions; this kind of upgrade should be
distinguished from adding two separate licenses together).
• Although you can activate all license types, some features are incompatible with each other. In the
case of the AnyConnect Essentials license, the license is incompatible with the following licenses:
AnyConnect Premium license, shared AnyConnect Premium license, and Advanced Endpoint
Assessment license. By default, if you install the AnyConnect Essentials license (if it is available
for your model), it is used instead of the above licenses. You can disable the AnyConnect Essentials
license in the configuration to restore use of the other licenses using the webvpn, and then the no
anyconnect-essentials command.
Procedure
Step 1 Obtain the serial number for your ASA by entering the following command.
ciscoasa# show version | grep Serial
Step 2 If you are not already registered with Cisco.com, create an account.
Step 3 Go to the following licensing website:
http://www.cisco.com/go/license
Step 4 Enter the following information, when prompted:
• Product Authorization Key (if you have multiple keys, enter one of the keys first. You have to enter
each key as a separate process.)
• The serial number of your ASA
• Your e-mail address
An activation key is automatically generated and sent to the e-mail address that you provide. This key
includes all features you have registered so far for permanent licenses. For time-based licenses, each
license has a separate activation key.
Step 5 If you have additional Product Authorization Keys, repeat Step 4 for each Product Authorization Key.
After you enter all of the Product Authorization Keys, the final activation key provided includes all of
the permanent features you registered.
Procedure
Example:
ciscoasa# activation-key 0xd11b3d48 0xa80a4c0a 0x48e0fd1c 0xb0443480 0x843fc490
The key is a five-element hexadecimal string with one space between each element. The leading 0x
specifier is optional; all values are assumed to be hexadecimal.
You can install one permanent key, and multiple time-based keys. If you enter a new permanent key, it
overwrites the already installed one.
The activate and deactivate keywords are available for time-based keys only. If you do not enter any
value, activate is the default. The last time-based key that you activate for a given feature is the active
one. To deactivate any active time-based key, enter the deactivate keyword. If you enter a key for the
first time, and specify deactivate, then the key is installed on the ASA in an inactive state.
Step 2 (Might be required.) Reload the ASA:
reload
Some permanent licenses require you to reload the ASA after entering the new activation key. If you need
to reload, you will see the following message:
WARNING: The running activation key was not updated with the requested key. The flash
activation key was updated with the requested key, and will become active after the next
reload.
Related Topics
• Time-Based Licenses, page 3-21
• Table 3-15 on page 3-30
This section describes how to configure the shared licensing server and participants.
• About Shared Licenses, page 3-32
• Configure the Shared Licensing Server, page 3-36
• Configure the Shared Licensing Backup Server (Optional), page 3-37
• Configure the Shared Licensing Participant, page 3-38
Note The shared licensing backup server only needs a participant license.
4. Configure a shared secret on the shared licensing server; any participants with the shared secret can
use the shared license.
5. When you configure the ASA as a participant, it registers with the shared licensing server by sending
information about itself, including the local license and model information.
Note The participant needs to be able to communicate with the server over the IP network; it does
not have to be on the same subnet.
6. The shared licensing server responds with information about how often the participant should poll
the server.
7. When a participant uses up the sessions of the local license, it sends a request to the shared licensing
server for additional sessions in 50-session increments.
8. The shared licensing server responds with a shared license. The total sessions used by a participant
cannot exceed the maximum sessions for the platform model.
Note The shared licensing server can also participate in the shared license pool. It does not need
a participant license as well as the server license to participate.
a. If there are not enough sessions left in the shared license pool for the participant, then the server
responds with as many sessions as available.
b. The participant continues to send refresh messages requesting more sessions until the server can
adequately fulfill the request.
9. When the load is reduced on a participant, it sends a message to the server to release the shared
sessions.
Note The ASA uses SSL between the server and participant to encrypt all communications.
Note When you first launch the main shared licensing server, the backup server can only operate
independently for 5 days. The operational limit increases day-by-day, until 30 days is reached. Also, if
the main server later goes down for any length of time, the backup server operational limit decrements
day-by-day. When the main server comes back up, the backup server starts to increment again
day-by-day. For example, if the main server is down for 20 days, with the backup server active during
that time, then the backup server will only have a 10-day limit left over. The backup server “recharges”
up to the maximum 30 days after 20 more days as an inactive backup. This recharging function is
implemented to discourage misuse of the shared license.
This section describes how the main server and backup server interact with failover. Because the shared
licensing server is also performing normal duties as the ASA, including performing functions such as
being a VPN gateway and firewall, then you might need to configure failover for the main and backup
shared licensing servers for increased reliability.
Note The backup server mechanism is separate from, but compatible with, failover.
Shared licenses are supported only in single context mode, so Active/Active failover is not supported.
For Active/Standby failover, the primary unit acts as the main shared licensing server, and the standby
unit acts as the main shared licensing server after failover. The standby unit does not act as the backup
shared licensing server. Instead, you can have a second pair of units acting as the backup server, if
desired.
For example, you have a network with 2 failover pairs. Pair #1 includes the main licensing server. Pair
#2 includes the backup server. When the primary unit from Pair #1 goes down, the standby unit
immediately becomes the new main licensing server. The backup server from Pair #2 never gets used.
Only if both units in Pair #1 go down does the backup server in Pair #2 come into use as the shared
licensing server. If Pair #1 remains down, and the primary unit in Pair #2 goes down, then the standby
unit in Pair #2 comes into use as the shared licensing server (see Figure 3-1).
Key
Blue=Shared license
server in use Failover Pair #1 Failover Pair #2
(Active)=Active
failover unit
2. Primary main Main (Failed) Main (Active) Backup (Active) Backup (Standby)
server fails over:
3. Both main Main (Failed) Main (Failed) Backup (Active) Backup (Standby)
servers fail:
4. Both main servers and Main (Failed) Main (Failed) Backup (Failed) Backup (Active)
primary backup fail:
251356
The standby backup server shares the same operating limits as the primary backup server; if the standby
unit becomes active, it continues counting down where the primary unit left off.
Related Topics
About the Shared Licensing Backup Server, page 3-33
For participant pairs, both units register with the shared licensing server using separate participant IDs.
The active unit syncs its participant ID with the standby unit. The standby unit uses this ID to generate
a transfer request when it switches to the active role. This transfer request is used to move the shared
sessions from the previously active unit to the new active unit.
Procedure
Example:
ciscoasa(config)# license-server secret farscape
The secret is a string between 4 and 128 ASCII characters. Any participant with this secret can use the
licensing server.
Step 2 (Optional) Set the refresh interval:
license-server refresh-interval seconds
Example:
ciscoasa(config)# license-server refresh-interval 100
The interval is between 10 and 300 seconds; this value is provided to participants to set how often they
should communicate with the server. The default is 30 seconds.
Step 3 (Optional) Set the port on which the server listens for SSL connections from participants:
license-server port port
Example:
ciscoasa(config)# license-server port 40000
The port is between 1 and 65535. The default is TCP port 50554.
Step 4 (Optional) Identify the backup server IP address and serial number:
license-server backup address backup-id serial_number [ha-backup-id ha_serial_number]
Example:
ciscoasa(config)# license-server backup 10.1.1.2 backup-id JMX0916L0Z4 ha-backup-id
JMX1378N0W3
If the backup server is part of a failover pair, identify the standby unit serial number as well. You can
only identify 1 backup server and its optional standby unit.
Step 5 Enable this unit to be the shared licensing server:
license-server enable interface_name
Example:
ciscoasa(config)# license-server enable inside
Specify the interface on which participants contact the server. You can repeat this command for as many
interfaces as desired.
Examples
The following example sets the shared secret, changes the refresh interval and port, configures a backup
server, and enables this unit as the shared licensing server on the inside interface and dmz interface:
ciscoasa(config)# license-server secret farscape
ciscoasa(config)# license-server refresh-interval 100
ciscoasa(config)# license-server port 40000
ciscoasa(config)# license-server backup 10.1.1.2 backup-id JMX0916L0Z4 ha-backup-id
JMX1378N0W3
ciscoasa(config)# license-server enable inside
ciscoasa(config)# license-server enable dmz
Procedure
Step 1 Identify the shared licensing server IP address and shared secret:
license-server address address secret secret [port port]
Example:
ciscoasa(config)# license-server address 10.1.1.1 secret farscape
If you changed the default port in the server configuration, set the port for the backup server to match.
Step 2 Enable this unit to be the shared licensing backup server:
license-server backup enable interface_name
Example:
ciscoasa(config)# license-server backup enable inside
Specify the interface on which participants contact the server. You can repeat this command for as many
interfaces as desired.
Examples
The following example identifies the license server and shared secret, and enables this unit as the backup
shared license server on the inside interface and dmz interface:
ciscoasa(config)# license-server address 10.1.1.1 secret farscape
ciscoasa(config)# license-server backup enable inside
ciscoasa(config)# license-server backup enable dmz
Procedure
Step 1 Identify the shared licensing server IP address and shared secret:
license-server address address secret secret [port port]
Example:
ciscoasa(config)# license-server address 10.1.1.1 secret farscape
If you changed the default port in the server configuration, set the port for the participant to match.
Step 2 (Optional) If you configured a backup server, enter the backup server address:
license-server backup address address
Example:
ciscoasa(config)# license-server backup address 10.1.1.2
Examples
The following example sets the license server IP address and shared secret, as well as the backup license
server IP address:
ciscoasa(config)# license-server address 10.1.1.1 secret farscape
ciscoasa(config)# license-server backup address 10.1.1.2
Procedure
Step 1 Show the permanent license, active time-based licenses, and the running license, which is a combination
of the permanent license and active time-based licenses:
show activation-key [detail]
Examples
Example 3-1 Standalone Unit Output for the show activation-key command
The following is sample output from the show activation-key command for a standalone unit that shows
the running license (the combined permanent license and time-based licenses), as well as each active
time-based license:
ciscoasa# show activation-key
The flash permanent activation key is the SAME as the running permanent key.
The following is sample output from the show activation-key detail command for a standalone unit that
shows the running license (the combined permanent license and time-based licenses), as well as the
permanent license and each installed time-based license (active and inactive):
ciscoasa# show activation-key detail
The flash permanent activation key is the SAME as the running permanent key.
Example 3-3 Primary Unit Output in a Failover Pair for show activation-key detail
The following is sample output from the show activation-key detail command for the primary failover
unit that shows:
• The primary unit license (the combined permanent license and time-based licenses).
• The “Failover Cluster” license, which is the combined licenses from the primary and secondary
units. This is the license that is actually running on the ASA. The values in this license that reflect
the combination of the primary and secondary licenses are in bold.
• The primary unit permanent license.
• The primary unit installed time-based licenses (active and inactive).
ciscoasa# show activation-key detail
The flash permanent activation key is the SAME as the running permanent key.
Example 3-4 Secondary Unit Output in a Failover Pair for show activation-key detail
The following is sample output from the show activation-key detail command for the secondary
failover unit that shows:
• The secondary unit license (the combined permanent license and time-based licenses).
• The “Failover Cluster” license, which is the combined licenses from the primary and secondary
units. This is the license that is actually running on the ASA. The values in this license that reflect
the combination of the primary and secondary licenses are in bold.
The flash permanent activation key is the SAME as the running permanent key.
Example 3-5 Standalone Unit Output for the ASAv without a License for show activation-key
The following output for a deployed 1 vCPU ASAv shows a blank activation key, an Unlicensed status,
and a message to install a 1 vCPU license.
Note The command output shows, “This platform has an ASAv VPN Premium license.” This message
specifies that the ASAv can perform payload encryption; it does not refer to the ASAv Standard vs.
Premium licenses.
Example 3-6 Standalone Unit Output for the ASAv with a 4 vCPU Standard License for show
activation-key
Note The command output shows, “This platform has an ASAv VPN Premium license.” This message
specifies that the ASAv can perform payload encryption; it does not refer to the ASAv Standard vs.
Premium licenses.
The flash permanent activation key is the SAME as the running permanent key.
Example 3-7 Standalone Unit Output for the ASAv with a 4 vCPU Premium License for show
activation-key
Note The command output shows, “This platform has an ASAv VPN Premium license.” This message
specifies that the ASAv can perform payload encryption; it does not refer to the ASAv Standard vs.
Premium licenses.
The flash permanent activation key is the SAME as the running permanent key.
ciscoasa#
Example 3-8 Primary Unit Output for the ASA Services Module in a Failover Pair for show
activation-key
The following is sample output from the show activation-key command for the primary failover unit
that shows:
• The primary unit license (the combined permanent license and time-based licenses).
• The “Failover Cluster” license, which is the combined licenses from the primary and secondary
units. This is the license that is actually running on the ASA. The values in this license that reflect
the combination of the primary and secondary licenses are in bold.
• The primary unit installed time-based licenses (active and inactive).
ciscoasa# show activation-key
The flash permanent activation key is the SAME as the running permanent key.
Example 3-9 Secondary Unit Output for the ASA Services Module in a Failover Pair for show
activation-key
The following is sample output from the show activation-key command for the secondary failover unit
that shows:
• The secondary unit license (the combined permanent license and time-based licenses).
• The “Failover Cluster” license, which is the combined licenses from the primary and secondary
units. This is the license that is actually running on the ASA. The values in this license that reflect
the combination of the primary and secondary licenses are in bold.
• The secondary installed time-based licenses (active and inactive). This unit does not have any
time-based licenses, so none display in this sample output.
ciscoasa# show activation-key detail
The flash permanent activation key is the SAME as the running permanent key.
The flash permanent activation key is the SAME as the running permanent key.
The following is sample output from the show shared license detail command on the license server:
ciscoasa> show shared license detail
Backup License Server Info:
Device ID : ABCD
Address : 10.1.1.2
Registered : NO
HA peer ID : EFGH
Registered : NO
Messages Tx/Rx/Error:
Hello : 0 / 0 / 0
Sync : 0 / 0 / 0
Update : 0 / 0 / 0
Get : 0 / 0 / 0
Release : 0 / 0 / 0
Transfer : 0 / 0 / 0
Client Info:
Hostname : 5540-A
Device ID : XXXXXXXXXXX
SSLVPN:
Current usage : 0
High : 0
Messages Tx/Rx/Error:
Registration : 1 / 1 / 0
Get : 0 / 0 / 0
Release : 0 / 0 / 0
Transfer : 0 / 0 / 0
...
• show activation-key
Shows the licenses installed on the ASA. The show version command also shows license
information.
• show vpn-sessiondb
Shows license information about VPN sessions.
Platform
Feature Name Releases Description
Increased VLANs 7.2(2) The maximum number of VLANs for the Security Plus
license on the ASA 5505 was increased from 5 (3 fully
functional; 1 failover; one restricted to a backup interface)
to 20 fully functional interfaces. In addition, the number of
trunk ports was increased from 1 to 8. Now there are 20
fully functional interfaces, you do not need to use the
backup interface command to cripple a backup ISP
interface; you can use a fully functional interface for it. The
backup interface command is still useful for an Easy VPN
configuration.
VLAN limits were also increased for the ASA 5510 (from
10 to 50 for the Base license, and from 25 to 100 for the
Security Plus license), the ASA 5520 (from 100 to 150), the
ASA 5550 (from 200 to 250).
Gigabit Ethernet Support for the ASA 5510 7.2(3) The ASA 5510 now supports Gigabit Ethernet (1000 Mbps)
Security Plus License for the Ethernet 0/0 and 0/1 ports with the Security Plus
license. In the Base license, they continue to be used as Fast
Ethernet (100 Mbps) ports. Ethernet 0/2, 0/3, and 0/4
remain as Fast Ethernet ports for both licenses.
Note The interface names remain Ethernet 0/0 and
Ethernet 0/1.
Platform
Feature Name Releases Description
Increased VLANs for the ASA 5580 8.1(2) The number of VLANs supported on the ASA 5580 are
increased from 100 to 250.
Unified Communications Proxy Sessions 8.0(4) The UC Proxy sessions license was introduced. Phone
license Proxy, Presence Federation Proxy, and Encrypted Voice
Inspection applications use TLS proxy sessions for their
connections. Each TLS proxy session is counted against the
UC license limit. All of these applications are licensed
under the UC Proxy umbrella, and can be mixed and
matched.
This feature is not available in Version 8.1.
Botnet Traffic Filter License 8.2(1) The Botnet Traffic Filter license was introduced. The
Botnet Traffic Filter protects against malware network
activity by tracking connections to known bad domains and
IP addresses.
AnyConnect Essentials License 8.2(1) The AnyConnect Essentials License was introduced. This
license enables AnyConnect VPN client access to the ASA.
This license does not support browser-based SSL VPN
access or Cisco Secure Desktop. For these features, activate
an AnyConnect Premium license instead of the AnyConnect
Essentials license.
Note With the AnyConnect Essentials license, VPN users
can use a Web browser to log in, and download and
start (WebLaunch) the AnyConnect client.
Platform
Feature Name Releases Description
10 GE I/O license for the ASA 5585-X with 8.2(3) We introduced the 10 GE I/O license for the ASA 5585-X
SSP-20 with SSP-20 to enable 10-Gigabit Ethernet speeds for the
fiber ports. The SSP-60 supports 10-Gigabit Ethernet
speeds by default.
Note The ASA 5585-X is not supported in 8.3(x).
10 GE I/O license for the ASA 5585-X with 8.2(4) We introduced the 10 GE I/O license for the ASA 5585-X
SSP-10 with SSP-10 to enable 10-Gigabit Ethernet speeds for the
fiber ports. The SSP-40 supports 10-Gigabit Ethernet
speeds by default.
Note The ASA 5585-X is not supported in 8.3(x).
Non-identical failover licenses 8.3(1) Failover licenses no longer need to be identical on each unit.
The license used for both units is the combined license from
the primary and secondary units.
We modified the following commands: show
activation-key and show version.
Stackable time-based licenses 8.3(1) Time-based licenses are now stackable. In many cases, you
might need to renew your time-based license and have a
seamless transition from the old license to the new one. For
features that are only available with a time-based license, it
is especially important that the license not expire before you
can apply the new license. The ASA allows you to stack
time-based licenses so that you do not have to worry about
the license expiring or about losing time on your licenses
because you installed the new one early.
Intercompany Media Engine License 8.3(1) The IME license was introduced.
Multiple time-based licenses active at the same 8.3(1) You can now install multiple time-based licenses, and have
time one license per feature active at a time.
We modified the following commands: show
activation-key and show version.
Discrete activation and deactivation of 8.3(1) You can now activate or deactivate time-based licenses
time-based licenses. using a command.
We modified the following commands: activation-key
[activate | deactivate].
AnyConnect Premium SSL VPN Edition license 8.3(1) The AnyConnect Premium SSL VPN Edition license name
changed to AnyConnect Premium SSL VPN was changed to the AnyConnect Premium SSL VPN
license license.
Platform
Feature Name Releases Description
No Payload Encryption image for export 8.3(2) If you install the No Payload Encryption software on the
ASA 5505 through 5550, then you disable Unified
Communications, strong encryption VPN, and strong
encryption management protocols.
Note This special image is only supported in 8.3(x); for
No Payload Encryption support in 8.4(1) and later,
you need to purchase a special hardware version of
the ASA.
Increased contexts for the ASA 5550, 5580, and 8.4(1) For the ASA 5550 and ASA 5585-X with SSP-10, the
5585-X maximum contexts was increased from 50 to 100. For the
ASA 5580 and 5585-X with SSP-20 and higher, the
maximum was increased from 50 to 250.
Increased VLANs for the ASA 5580 and 8.4(1) For the ASA 5580 and 5585-X, the maximum VLANs was
5585-X increased from 250 to 1024.
Increased connections for the ASA 5580 and 8.4(1) We increased the firewall connection limits:
5585-X
• ASA 5580-20—1,000,000 to 2,000,000.
• ASA 5580-40—2,000,000 to 4,000,000.
• ASA 5585-X with SSP-10: 750,000 to 1,000,000.
• ASA 5585-X with SSP-20: 1,000,000 to 2,000,000.
• ASA 5585-X with SSP-40: 2,000,000 to 4,000,000.
• ASA 5585-X with SSP-60: 2,000,000 to 10,000,000.
AnyConnect Premium SSL VPN license 8.4(1) The AnyConnect Premium SSL VPN license name was
changed to AnyConnect Premium license changed to the AnyConnect Premium license. The license
information display was changed from “SSL VPN Peers” to
“AnyConnect Premium Peers.”
Increased AnyConnect VPN sessions for the 8.4(1) The AnyConnect VPN session limit was increased from
ASA 5580 5,000 to 10,000.
Increased Other VPN sessions for the ASA 8.4(1) The other VPN session limit was increased from 5,000 to
5580 10,000.
IPsec remote access VPN using IKEv2 8.4(1) IPsec remote access VPN using IKEv2 was added to the
AnyConnect Essentials and AnyConnect Premium licenses.
Note The following limitation exists in our support for
IKEv2 on the ASA:
We currently do not support duplicate security
associations.
Platform
Feature Name Releases Description
Dual SSPs for SSP-20 and SSP-40 8.4(2) For SSP-40 and SSP-60, you can use two SSPs of the same
level in the same chassis. Mixed-level SSPs are not
supported (for example, an SSP-40 with an SSP-60 is not
supported). Each SSP acts as an independent device, with
separate configurations and management. You can use the
two SSPs as a failover pair if desired. When using two SSPs
in the chassis, VPN is not supported; note, however, that
VPN has not been disabled.
IPS Module license for the ASA 5512-X 8.6(1) The IPS SSP software module on the ASA 5512-X, ASA
through ASA 5555-X 5515-X, ASA 5525-X, ASA 5545-X, and ASA 5555-X
requires the IPS module license.
Clustering license for the ASA 5580 and ASA 9.0(1) A clustering license was added for the ASA 5580 and ASA
5585-X. 5585-X.
Support for VPN on the ASASM 9.0(1) The ASASM now supports all VPN features.
Unified communications support on the 9.0(1) The ASASM now supports all Unified Communications
ASASM features.
ASA 5585-X Dual SSP support for the SSP-10 9.0(1) The ASA 5585-X now supports dual SSPs using all SSP
and SSP-20 (in addition to the SSP-40 and models (you can use two SSPs of the same level in the same
SSP-60); VPN support for Dual SSPs chassis). VPN is now supported when using dual SSPs.
ASA 5500-X support for clustering 9.1(4) The ASA 5512-X, ASA 5515-X, ASA 5525-X, ASA
5545-X, and ASA 5555-X now support 2-unit clusters.
Clustering for 2 units is enabled by default in the base
license; for the ASA 5512-X, you need the Security Plus
license.
Support for 16 cluster members for the ASA 9.2(1) The ASA 5585-X now supports 16-unit clusters.
5585-X
ASAv4 and ASAv30 Standard and Premium 9.2(1) The ASAv was introduced with a simple licensing scheme:
model licenses introduced ASAv4 and ASAv30 permanent licenses in Standard or
Premium levels. No add-on licenses are available.
Supported Licenses
This section lists the license entitlements available for the ASAv.
• ASAv5 and ASAv10, page 4-2
• ASAv30, page 4-3
• License Notes, page 4-4
ASAv30
License Notes
The following table includes additional information about licenses.
License Notes
AnyConnect Premium AnyConnect Premium sessions include the following VPN types:
• SSL VPN
• Clientless SSL VPN
• IPsec remote access VPN using IKEv2
Encryption The DES license cannot be disabled. Although the 3DES license is installed, DES is still
available. To prevent the use of DES when you want to only use strong encryption, be sure to
configure any relevant commands to use only strong encryption.
Interfaces of all types, The maximum number of combined interfaces; for example, VLANs, physical, redundant, bridge
Max. group, and EtherChannel interfaces. Every interface command defined in the configuration
counts against this limit. For example, both of the following interfaces count even if the
GigabitEthernet 0/0 interface is defined as part of port-channel 1:
interface gigabitethernet 0/0
and
interface port-channel 1
Other VPN Other VPN sessions include the following VPN types:
• IPsec remote access VPN using IKEv1
• IPsec site-to-site VPN using IKEv1
• IPsec site-to-site VPN using IKEv2
Total VPN (sessions), • Although the maximum VPN sessions add up to more than the maximum VPN AnyConnect
combined all types and Other VPN sessions, the combined sessions should not exceed the VPN session limit. If
you exceed the maximum VPN sessions, you can overload the ASA, so be sure to size your
network appropriately.
• If you start a clientless SSL VPN session and then start an AnyConnect client session from
the portal, 1 session is used in total. However, if you start the AnyConnect client first (from
a standalone client, for example) and then log into the clientless SSL VPN portal, then
2 sessions are used.
VLANs, Maximum For an interface to count against the VLAN limit, you must assign a VLAN to it. For example:
interface gigabitethernet 0/0.100
vlan 100
Out-of-Compliance State
The ASAv can become out of compliance in the following situations:
• Over-utilization—When the ASAv uses unavailable licenses.
• License expiration—When a time-based license expires.
• Lack of communication—When the ASAv cannot reach the Licensing Authority for
re-authorization.
After 90 days of reauthorization attempts, the ASAv will be severely rate-limited until you are able to
successfully reauthorize.
Additional Guidelines
You cannot use PAK-based licensing with the ASAv. Only Smart Software Licensing is supported. If you
upgrade an existing PAK-licensed ASAv, then the previously installed activation key will be ignored, but
retained on the device. If you downgrade the ASAv, the activation key will be reinstated.
• When you deploy the ASAv, you set the feature tier and throughput level. Only the standard level is
available at this time.
license smart
feature tier standard
throughput level {100M | 1G | 2G}
Procedure
Example:
ciscoasa(config)# call-home
ciscoasa(cfg-call-home)# http-proxy 10.1.1.1 port 443
Procedure
Example:
ciscoasa(config)# license smart
ciscoasa(config-smart-lic)#
Example:
ciscoasa(config-smart-lic)# throughput level 2G
Example:
ciscoasa(config-smart-lic)# exit
ciscoasa(config)#
Your changes do not take effect until you exit the license smart configuration mode, either by explicitly
exiting the mode (exit or end) or by entering any command that takes you to a different mode.
Procedure
Step 1 In the Smart Software Manager, request and copy a registration token for the virtual account to which
you want to add this ASAv.
Step 2 Enter the registration token on the ASAv:
license smart register idtoken id_token [force]
Example:
ciscoasa# license smart register idtoken
YjE3Njc5MzYtMGQzMi00OTA4LWJhODItNzBhMGQ5NGRlYjUxLTE0MTQ5NDAy%0AODQzNzl8NXk2bzV3SDE0ZkgwQkd
YRmZ1NTNCNGlvRnBHUFpjcm02WTB4TU4w%0Ac2NnMD0%3D%0A
Use the force keyword to register an ASAv that is already registered, but that might be out of sync with
the License Authority. For example, use force if the ASAv was accidentally removed from the Smart
Software Manager.
The ASAv attempts to register with the License Authority and request authorization for the configured
license entitlements.
Step 3
Procedure
Procedure
This chapter describes how to set the firewall mode to routed or transparent, as well as how the firewall
works in each firewall mode. This chapter also includes information about customizing the transparent
firewall operation.
You can set the firewall mode independently for each context in multiple context mode.
• About the Firewall Mode, page 5-1
• Default Settings, page 5-7
• Guidelines for Firewall Mode, page 5-7
• Set the Firewall Mode, page 5-9
• Configure ARP Inspection for the Transparent Firewall, page 5-10
• Customize the MAC Address Table for the Transparent Firewall, page 5-11
• Monitoring the Transparent Firewall, page 5-13
• Examples for Firewall Mode, page 5-13
• History for the Firewall Mode, page 5-24
Figure 5-1 shows a typical transparent firewall network where the outside devices are on the same subnet
as the inside devices. The inside router and hosts appear to be directly connected to the outside router.
Bridge Groups
If you do not want the overhead of security contexts, or want to maximize your use of security contexts,
you can group interfaces together in a bridge group, and then configure multiple bridge groups, one for
each network. Bridge group traffic is isolated from other bridge groups; traffic is not routed to another
bridge group within the ASA, and traffic must exit the ASA before it is routed by an external router back
to another bridge group in the ASA. Although the bridging functions are separate for each bridge group,
many other functions are shared between all bridge groups. For example, all bridge groups share a syslog
server or AAA server configuration. For complete security policy separation, use security contexts with
one bridge group in each context.
Figure 5-2 shows two networks connected to the ASA, which has two bridge groups.
10.1.1.1 10.2.1.1
Management IP Management IP
Bridge Group 1 Bridge Group 2
10.1.1.2 10.2.1.2
10.1.1.3 10.2.1.3
254279
Note Each bridge group requires a management IP address. The ASA uses this IP address as the source address
for packets originating from the bridge group. The management IP address must be on the same subnet
as the connected network. For another method of management, see Management Interface (ASA 5512-X
and Higher), page 5-4.
The ASA does not support traffic on secondary networks; only traffic on the same network as the
management IP address is supported.
Note Broadcast and multicast traffic can be passed using access rules. See the firewall
configuration guidefor more information.
• ARPs are allowed through the transparent firewall in both directions without an ACL. ARP traffic
can be controlled by ARP inspection.
• For Layer 3 traffic travelling from a low to a high security interface, an extended ACL is required
on the low security interface. See the firewall configuration guide for more information.
Note The transparent mode ASA does not pass CDP packets packets, or any packets that do not have a valid
EtherType greater than or equal to 0x600. An exception is made for BPDUs and IS-IS, which are
supported.
BPDU Handling
To prevent loops using the Spanning Tree Protocol, BPDUs are passed by default. To block BPDUs, you
need to configure an EtherType ACL to deny them. If you are using failover, you might want to block
BPDUs to prevent the switch port from going into a blocking state when the topology changes. See
Transparent Firewall Mode Requirements, page 7-14 for more information.
• Traffic originating on the ASA—For example, if your syslog server is located on a remote network,
you must use a static route so the ASA can reach that subnet.
• Traffic that is at least one hop away from the ASA with NAT enabled—The ASA needs to perform
a route lookup to find the next hop gateway; you need to add a static route on the ASA for the real
host address.
• Voice over IP (VoIP) and DNS traffic with inspection enabled, and the endpoint is at least one hop
away from the ASA—For example, if you use the transparent firewall between a CCM and an H.323
gateway, and there is a router between the transparent firewall and the H.323 gateway, then you need
to add a static route on the ASA for the H.323 gateway for successful call completion. If you enable
NAT for the inspected traffic, a static route is required to determine the egress interface for the real
host address that is embedded in the packet. Affected applications include:
– CTIQBE
– DNS
– GTP
– H.323
– MGCP
– RTSP
– SIP
– Skinny (SCCP)
ARP Inspection
By default, all ARP packets are allowed through the ASA. You can control the flow of ARP packets by
enabling ARP inspection.
When you enable ARP inspection, the ASA compares the MAC address, IP address, and source interface
in all ARP packets to static entries in the ARP table, and takes the following actions:
• If the IP address, MAC address, and source interface match an ARP entry, the packet is passed
through.
• If there is a mismatch between the MAC address, the IP address, or the interface, then the ASA drops
the packet.
• If the ARP packet does not match any entries in the static ARP table, then you can set the ASA to
either forward the packet out all interfaces (flood), or to drop the packet.
Note The dedicated management interface, if present, never floods packets even if this parameter
is set to flood.
ARP inspection prevents malicious users from impersonating other hosts or routers (known as ARP
spoofing). ARP spoofing can enable a “man-in-the-middle” attack. For example, a host sends an
ARP request to the gateway router; the gateway router responds with the gateway router MAC address.
The attacker, however, sends another ARP response to the host with the attacker MAC address instead
of the router MAC address. The attacker can now intercept all the host traffic before forwarding it on to
the router.
ARP inspection ensures that an attacker cannot send an ARP response with the attacker MAC address,
so long as the correct MAC address and the associated IP address are in the static ARP table.
Default Settings
The default mode is routed mode.
• The default route for the transparent firewall, which is required to provide a return path for
management traffic, is only applied to management traffic from one bridge group network. This is
because the default route specifies an interface in the bridge group as well as the router IP address
on the bridge group network, and you can only define one default route. If you have management
traffic from more than one bridge group network, you need to specify a static route that identifies
the network from which you expect management traffic.
See Guidelines and Limitations for Transparent Mode Interfaces, page 12-4 for more guidelines.
IPv6 Guidelines
Supports IPv6.
Feature Description
Dynamic DNS —
DHCP relay The transparent firewall can act as a DHCP server, but it does not
support the DHCP relay commands. DHCP relay is not required
because you can allow DHCP traffic to pass through using two
extended ACLs: one that allows DCHP requests from the inside
interface to the outside, and one that allows the replies from the server
in the other direction.
Dynamic routing protocols You can, however, add static routes for traffic originating on the ASA.
You can also allow dynamic routing protocols through the ASA using
an extended ACL.
Multicast IP routing You can allow multicast traffic through the ASA by allowing it in an
extended ACL.
QoS —
Feature Description
VPN termination for through The transparent firewall supports site-to-site VPN tunnels for
traffic management connections only. It does not terminate VPN connections
for traffic through the ASA. You can pass VPN traffic through the
ASA using an extended ACL, but it does not terminate
non-management connections. Clientless SSL VPN is also not
supported.
Unified Communications —
Prerequisites
When you change modes, the ASA clears the running configuration (see Guidelines for Firewall Mode,
page 5-7 for more information).
• If you already have a populated configuration, be sure to back up your configuration before changing
the mode; you can use this backup for reference when creating your new configuration. See Backing
Up and Restoring Configurations or Other Files, page 36-26.
• Use the CLI at the console port to change the mode. If you use any other type of session, including
the ASDM Command Line Interface tool or SSH, you will be disconnected when the configuration
is cleared, and you will have to reconnect to the ASA using the console port in any case.
• Set the mode within the context.
Procedure
Note To set the firewall mode to transparent and also configure ASDM management access after the
configuration is cleared, see Configure ASDM Access, page 2-6.
Example:
ciscoasa(config)# firewall transparent
Note You are not prompted to confirm the firewall mode change; the change occurs immediately.
Step 1 Add static ARP entries according to Add a Static ARP Entry, page 5-10. ARP inspection compares ARP
packets with static ARP entries in the ARP table, so static ARP entries are required for this feature.
Step 2 Enable ARP inspection according to Enable ARP Inspection, page 5-11.
Note The transparent firewall uses dynamic ARP entries in the ARP table for traffic to and from the ASA,
such as management traffic.
Procedure
Example:
ciscoasa(config)# arp outside 10.1.1.1 0009.7cbe.2100
This allows ARP responses from the router at 10.1.1.1 with the MAC address 0009.7cbe.2100 on the
outside interface.
Procedure
Example:
ciscoasa(config)# arp-inspection outside enable no-flood
The flood keyword forwards non-matching ARP packets out all interfaces, and no-flood drops
non-matching packets.
The default setting is to flood non-matching packets. To restrict ARP through the ASA to only static
entries, then set this command to no-flood.
Procedure
Example:
Procedure
Example:
ciscoasa(config)# mac-address-table aging-time 10
The timeout_value (in minutes) is between 5 and 720 (12 hours). 5 minutes is the default.
Procedure
Example:
ciscoasa(config)# mac-learn inside disable
Examples
The following is sample output from the show mac-address-table command that shows the entire table:
ciscoasa# show mac-address-table
interface mac address type Time Left
-----------------------------------------------------------------------
outside 0009.7cbe.2100 static -
inside 0010.7cbe.6101 static -
inside 0009.7cbe.5101 dynamic 10
The following is sample output from the show mac-address-table command that shows the table for the
inside interface:
ciscoasa# show mac-address-table inside
interface mac address type Time Left
-----------------------------------------------------------------------
inside 0010.7cbe.6101 static -
inside 0009.7cbe.5101 dynamic 10
www.example.com
Outside
209.165.201.2
Inside DMZ
92404
The following steps describe how data moves through the ASA (see Figure 5-3):
1. The user on the inside network requests a web page from www.example.com.
2. The ASA receives the packet and because it is a new session, the ASA verifies that the packet is
allowed according to the terms of the security policy (access lists, filters, AAA).
For multiple context mode, the ASA first classifies the packet to a context.
3. The ASA translates the local source address (10.1.2.27) to the global address 209.165.201.10, which
is on the outside interface subnet.
The global address could be on any subnet, but routing is simplified when it is on the outside
interface subnet.
4. The ASA then records that a session is established and forwards the packet from the outside
interface.
5. When www.example.com responds to the request, the packet goes through the ASA, and because
the session is already established, the packet bypasses the many lookups associated with a new
connection. The ASA performs NAT by untranslating the global destination address to the local user
address, 10.1.2.27.
6. The ASA forwards the packet to the inside user.
The following steps describe how data moves through the ASA (see Figure 5-4):
1. A user on the outside network requests a web page from the DMZ web server using the global
destination address of 209.165.201.3, which is on the outside interface subnet.
2. The ASA receives the packet and untranslates the destination address to the local address 10.1.1.3.
3. Because it is a new session, the ASA verifies that the packet is allowed according to the terms of the
security policy (access lists, filters, AAA).
For multiple context mode, the ASA first classifies the packet to a context.
4. The ASA then adds a session entry to the fast path and forwards the packet from the DMZ interface.
5. When the DMZ web server responds to the request, the packet goes through the ASA and because
the session is already established, the packet bypasses the many lookups associated with a new
connection. The ASA performs NAT by translating the local source address to 209.165.201.3.
6. The ASA forwards the packet to the outside user.
Outside
209.165.201.2
10.1.2.1 10.1.1.1
Inside DMZ
92403
The following steps describe how data moves through the ASA (see Figure 5-5):
1. A user on the inside network requests a web page from the DMZ web server using the destination
address of 10.1.1.3.
2. The ASA receives the packet and because it is a new session, the ASA verifies that the packet is
allowed according to the terms of the security policy (access lists, filters, AAA).
For multiple context mode, the ASA first classifies the packet to a context.
3. The ASA then records that a session is established and forwards the packet out of the DMZ interface.
4. When the DMZ web server responds to the request, the packet goes through the fast path, which lets
the packet bypass the many lookups associated with a new connection.
5. The ASA forwards the packet to the inside user.
www.example.com
Outside
209.165.201.2
10.1.2.1 10.1.1.1
User
10.1.2.27
The following steps describe how data moves through the ASA (see Figure 5-6):
1. A user on the outside network attempts to reach an inside host (assuming the host has a routable
IP address).
If the inside network uses private addresses, no outside user can reach the inside network without
NAT. The outside user might attempt to reach an inside user by using an existing NAT session.
2. The ASA receives the packet and because it is a new session, the ASA verifies if the packet is
allowed according to the security policy (access lists, filters, AAA).
3. The packet is denied, and the ASA drops the packet and logs the connection attempt.
If the outside user is attempting to attack the inside network, the ASA employs many technologies
to determine if a packet is valid for an already established session.
Outside
209.165.201.2
10.1.2.1 10.1.1.1
Inside DMZ
92402
The following steps describe how data moves through the ASA (see Figure 5-7):
1. A user on the DMZ network attempts to reach an inside host. Because the DMZ does not have to
route the traffic on the Internet, the private addressing scheme does not prevent routing.
2. The ASA receives the packet and because it is a new session, the ASA verifies if the packet is
allowed according to the security policy (access lists, filters, AAA).
The packet is denied, and the ASA drops the packet and logs the connection attempt.
www.example.com
Internet
209.165.201.2
Management IP
209.165.201.6
209.165.200.230 Host
209.165.201.3
92412
Web Server
209.165.200.225
www.example.com
Internet
209.165.201.2
Management IP
209.165.201.6
92408
Host
209.165.201.3
The following steps describe how data moves through the ASA (see Figure 5-9):
1. The user on the inside network requests a web page from www.example.com.
2. The ASA receives the packet and adds the source MAC address to the MAC address table, if
required. Because it is a new session, it verifies that the packet is allowed according to the terms of
the security policy (access lists, filters, AAA).
For multiple context mode, the ASA first classifies the packet to a context.
3. The ASA records that a session is established.
4. If the destination MAC address is in its table, the ASA forwards the packet out of the outside
interface. The destination MAC address is that of the upstream router, 209.165.201.2.
If the destination MAC address is not in the ASA table, the ASA attempts to discover the MAC
address by sending an ARP request or a ping. The first packet is dropped.
5. The web server responds to the request; because the session is already established, the packet
bypasses the many lookups associated with a new connection.
6. The ASA forwards the packet to the inside user.
www.example.com
Internet
Security Management IP
appliance 10.1.2.2
191243
Host
10.1.2.27
The following steps describe how data moves through the ASA (see Figure 5-10):
1. The user on the inside network requests a web page from www.example.com.
2. The ASA receives the packet and adds the source MAC address to the MAC address table, if
required. Because it is a new session, it verifies that the packet is allowed according to the terms of
the security policy (access lists, filters, AAA).
For multiple context mode, the ASA first classifies the packet according to a unique interface.
3. The ASA translates the real address (10.1.2.27) to the mapped address 209.165.201.10.
Because the mapped address is not on the same network as the outside interface, then be sure the
upstream router has a static route to the mapped network that points to the ASA.
4. The ASA then records that a session is established and forwards the packet from the outside
interface.
5. If the destination MAC address is in its table, the ASA forwards the packet out of the outside
interface. The destination MAC address is that of the upstream router, 10.1.2.1.
If the destination MAC address is not in the ASA table, the ASA attempts to discover the MAC
address by sending an ARP request and a ping. The first packet is dropped.
6. The web server responds to the request; because the session is already established, the packet
bypasses the many lookups associated with a new connection.
7. The ASA performs NAT by untranslating the mapped address to the real address, 10.1.2.27.
Host
Internet
209.165.201.2
Management IP
209.165.201.6
209.165.201.1
209.165.200.230
92409
Web Server
209.165.200.225
The following steps describe how data moves through the ASA (see Figure 5-11):
1. A user on the outside network requests a web page from the inside web server.
2. The ASA receives the packet and adds the source MAC address to the MAC address table, if
required. Because it is a new session, it verifies that the packet is allowed according to the terms of
the security policy (access lists, filters, AAA).
For multiple context mode, the ASA first classifies the packet to a context.
3. The ASA records that a session is established.
4. If the destination MAC address is in its table, the ASA forwards the packet out of the inside
interface. The destination MAC address is that of the downstream router, 209.165.201.1.
If the destination MAC address is not in the ASA table, the ASA attempts to discover the MAC
address by sending an ARP request and a ping. The first packet is dropped.
5. The web server responds to the request; because the session is already established, the packet
bypasses the many lookups associated with a new connection.
6. The ASA forwards the packet to the outside user.
Host
Internet
209.165.201.2
Management IP
209.165.201.6
92410
Host
209.165.201.3
The following steps describe how data moves through the ASA (see Figure 5-12):
1. A user on the outside network attempts to reach an inside host.
2. The ASA receives the packet and adds the source MAC address to the MAC address table, if
required. Because it is a new session, it verifies if the packet is allowed according to the terms of the
security policy (access lists, filters, AAA).
For multiple context mode, the ASA first classifies the packet to a context.
3. The packet is denied because there is no access list permitting the outside host, and the ASA drops
the packet.
4. If the outside user is attempting to attack the inside network, the ASA employs many technologies
to determine if a packet is valid for an already established session.
Platform
Feature Name Releases Feature Information
Transparent Firewall Mode 7.0(1) A transparent firewall is a Layer 2 firewall that acts like a
“bump in the wire,” or a “stealth firewall,” and is not seen as
a router hop to connected devices.
We introduced the following commands: firewall
transparent, show firewall.
ARP inspection 7.0(1) ARP inspection compares the MAC address, IP address, and
source interface in all ARP packets to static entries in the
ARP table.
We introduced the following commands: arp,
arp-inspection, and show arp-inspection.
MAC address table 7.0(1) Transparent firewall mode uses a MAC address table.
We introduced the following commands:
mac-address-table static, mac-address-table aging-time,
mac-learn disable, and show mac-address-table.
Transparent firewall bridge groups 8.4(1) If you do not want the overhead of security contexts, or want
to maximize your use of security contexts, you can group
interfaces together in a bridge group, and then configure
multiple bridge groups, one for each network. Bridge group
traffic is isolated from other bridge groups. You can
configure up to 8 bridge groups in single mode or per
context in multiple mode, with 4 interfaces maximum per
bridge group.
Note Although you can configure multiple bridge groups
on the ASA 5505, the restriction of 2 data interfaces
in transparent mode on the ASA 5505 means you
can only effectively use 1 bridge group.
Platform
Feature Name Releases Feature Information
ARP cache additions for non-connected subnets 8.4(5)/9.1(2) The ASA ARP cache only contains entries from
directly-connected subnets by default. You can now enable
the ARP cache to also include non-directly-connected
subnets. We do not recommend enabling this feature unless
you know the security risks. This feature could facilitate
denial of service (DoS) attack against the ASA; a user on
any interface could send out many ARP replies and overload
the ASA ARP table with false entries.
You may want to use this feature if you use:
• Secondary subnets.
• Proxy ARP on adjacent routes for traffic forwarding.
We introduced the following command: arp
permit-nonconnected.
Mixed firewall mode support in multiple 8.5(1)/9.0(1) You can set the firewall mode independently for each
context mode security context in multiple context mode, so some can run
in transparent mode while others run in routed mode.
We modified the following command: firewall
transparent.
Transparent mode bridge group maximum 9.3(1) The bridge group maximum was increased from 8 to 250
increased to 250 bridge groups. You can configure up to 250 bridge groups in
single mode or per context in multiple mode, with 4
interfaces maximum per bridge group.
We modified the following commands: interface bvi,
bridge-group.
This chapter describes how to configure multiple security contexts on the Cisco ASA.
• About Security Contexts, page 6-1
• Licensing for Multiple Context Mode, page 6-13
• Guidelines for Multiple Context Mode, page 6-14
• Defaults for Multiple Context Mode, page 6-14
• Configure Multiple Contexts, page 6-14
• Change Between Contexts and the System Execution Space, page 6-23
• Manage Security Contexts, page 6-24
• Monitoring Security Contexts, page 6-28
• Examples for Multiple Context Mode, page 6-38
• History for Multiple Context Mode, page 6-39
Context Configurations
For each context, the ASA includes a configuration that identifies the security policy, interfaces, and all
the options you can configure on a standalone device. You can store context configurations in flash
memory, or you can download them from a TFTP, FTP, or HTTP(S) server.
System Configuration
The system administrator adds and manages contexts by configuring each context configuration
location, allocated interfaces, and other context operating parameters in the system configuration, which,
like a single mode configuration, is the startup configuration. The system configuration identifies basic
settings for the ASA. The system configuration does not include any network interfaces or network
settings for itself; rather, when the system needs to access network resources (such as downloading the
contexts from the server), it uses one of the contexts that is designated as the admin context. The system
configuration does include a specialized failover interface for failover traffic only.
Note If the destination MAC address is a multicast or broadcast MAC address, the packet is duplicated and
delivered to each context.
Note For management traffic destined for an interface, the interface IP address is used for classification.
Unique Interfaces
If only one context is associated with the ingress interface, the ASA classifies the packet into that
context. In transparent firewall mode, unique interfaces for contexts are required, so this method is used
to classify packets at all times.
If multiple contexts share an interface, then the classifier uses unique MAC addresses assigned to the
interface in each context. An upstream router cannot route directly to a context without unique MAC
addresses. By default, auto-generation of MAC addresses is enabled. You can also set the MAC
addresses manually when you configure each interface.
NAT Configuration
If you disable use of unique MAC addresses, then the ASA uses the mapped addresses in your NAT
configuration to classify packets. We recommend using MAC addresses instead of NAT, so that traffic
classification can occur regardless of the completeness of the NAT configuration.
Classification Examples
Figure 6-1 shows multiple contexts sharing an outside interface. The classifier assigns the packet to
Context B because Context B includes the MAC address to which the router sends the packet.
Figure 6-1 Packet Classification with a Shared Interface Using MAC Addresses
Internet
Packet Destination:
209.165.201.1 via MAC 000C.F142.4CDC
GE 0/0.1 (Shared Interface)
Classifier
153367
Host Host Host
209.165.202.129 209.165.200.225 209.165.201.1
Note that all new incoming traffic must be classified, even from inside networks. Figure 6-2 shows a host
on the Context B inside network accessing the Internet. The classifier assigns the packet to Context B
because the ingress interface is Gigabit Ethernet 0/1.3, which is assigned to Context B.
Internet
GE 0/0.1
Admin
Context Context A Context B
Classifier
For transparent firewalls, you must use unique interfaces. Figure 6-3 shows a packet destined to a host
on the Context B inside network from the Internet. The classifier assigns the packet to Context B because
the ingress interface is Gigabit Ethernet 1/0.3, which is assigned to Context B.
Internet
Classifier
GE 0/0.2
GE 0/0.1 GE 0/0.3
Admin
Context Context A Context B
Note Cascading contexts requires unique MAC addresses for each context interface (the default setting).
Because of the limitations of classifying packets on shared interfaces without MAC addresses, we do not
recommend using cascading contexts without unique MAC addresses.
Figure 6-4 shows a gateway context with two contexts behind the gateway.
Internet
GE 0/0.2
Outside
Gateway
Context
Inside
GE 0/0.1
(Shared Interface)
Outside Outside
Admin Context A
Context
GE 1/1.8 GE 1/1.43
153366
Inside Inside
example, you log in to the admin context with the username “admin.” The admin context does not have
any command authorization configuration, but all other contexts include command authorization. For
convenience, each context configuration includes a user “admin” with maximum privileges. When you
change from the admin context to context A, your username is altered to enable_15, so you must log in
again as “admin” by entering the login command. When you change to context B, you must again enter
the login command to log in as “admin.”
The system execution space does not support any AAA commands, but you can configure its own enable
password, as well as usernames in the local database to provide individual logins.
Resource Classes
The ASA manages resources by assigning contexts to resource classes. Each context uses the resource
limits set by the class. To use the settings of a class, assign the context to the class when you define the
context. All contexts belong to the default class if they are not assigned to another class; you do not have
to actively assign a context to default. You can only assign a context to one resource class. The exception
to this rule is that limits that are undefined in the member class are inherited from the default class; so
in effect, a context could be a member of default plus another class.
Resource Limits
You can set the limit for individual resources as a percentage (if there is a hard system limit) or as an
absolute value.
For most resources, the ASA does not set aside a portion of the resources for each context assigned to
the class; rather, the ASA sets the maximum limit for a context. If you oversubscribe resources, or allow
some resources to be unlimited, a few contexts can “use up” those resources, potentially affecting service
to other contexts. The exception is VPN resource types, which you cannot oversubscribe, so the
resources assigned to each context are guaranteed. To accommodate temporary bursts of VPN sessions
beyond the amount assigned, the ASA supports a “burst” VPN resource type, which is equal to the
remaining unassigned VPN sessions. The burst sessions can be oversubscribed, and are available to
contexts on a first-come, first-served basis.
Default Class
All contexts belong to the default class if they are not assigned to another class; you do not have to
actively assign a context to the default class.
If a context belongs to a class other than the default class, those class settings always override the default
class settings. However, if the other class has any settings that are not defined, then the member context
uses the default class for those limits. For example, if you create a class with a 2 percent limit for all
concurrent connections, but no other limits, then all other limits are inherited from the default class.
Conversely, if you create a class with a limit for all resources, the class uses no settings from the default
class.
For most resources, the default class provides unlimited access to resources for all contexts, except for
the following limits:
• Telnet sessions—5 sessions. (The maximum per context.)
• SSH sessions—5 sessions. (The maximum per context.)
• IPsec sessions—5 sessions. (The maximum per context.)
• MAC addresses—65,535 entries. (The maximum per context.)
• VPN site-to-site tunnels—0 sessions. (You must manually configure the class to allow any VPN
sessions.)
Figure 6-5 shows the relationship between the default class and other classes. Contexts A and C belong
to classes with some limits set; other limits are inherited from the default class. Context B inherits no
limits from default because all limits are set in its class, the Gold class. Context D was not assigned to
a class, and is by default a member of the default class.
Context C
104689
Context B
1 2 3 4 5 6 7 8 9 10
Contexts in Class
50% 43%
5%
Maximum connections
allowed.
4%
Connections in use.
3%
Connections denied
2% because system limit
was reached.
1%
153211
A B C 1 2 3
Contexts Silver Class Contexts Gold Class
Note (8.5(1.6) and earlier) To maintain hitless upgrade for failover pairs, the ASA does not convert an existing
legacy auto-generation configuration upon a reload if failover is enabled. However, we strongly
recommend that you manually change to the prefix method of generation when using failover, especially
for the ASASM. Without the prefix method, ASASMs installed in different slot numbers experience a
MAC address change upon failover, and can experience traffic interruption. After upgrading, to use the
prefix method of MAC address generation, reenable MAC address autogeneration to use a prefix. For
more information about the legacy method, see the mac-address auto command in the command
reference.
A24D.00zz.zzzz
For a prefix of 1009 (03F1), the MAC address is:
A2F1.03zz.zzzz
Note The MAC address format without a prefix is a legacy version not supported on newer ASA versions. See
the mac-address auto command in the command reference for more information about the legacy
format.
Prerequisites
After you are in multiple context mode, connect to the system or the admin context to access the system
configuration. You cannot configure the system from a non-admin context. By default, after you enable
multiple context mode, you can connect to the admin context by using the default management IP
address. See Chapter 2, “Getting Started,” for more information about connecting to the ASA.
IPv6 Guidelines
Supports IPv6.
Unsupported Features
Multiple context mode does not support the following features:
• RIP
• OSPFv3. (OSPFv2 is supported.)
• Multicast routing
• Threat Detection
• Unified Communications
• QoS
• Remote access VPN. (Site-to-site VPN is supported.)
Additional Guidelines
• The context mode (single or multiple) is not stored in the configuration file, even though it does
endure reboots. If you need to copy your configuration to another device, set the mode on the new
device to match.
• If you store context configurations in the root directory of flash memory, on some models you might
run out of room in that directory, even though there is available memory. In this case, create a
subdirectory for your configuration files. Background: some models, such as the ASA 5585-X, use
the FAT 16 file system for internal flash memory, and if you do not use 8.3-compliant short names,
or use uppercase characters, then fewer than 512 files and folders can be stored because the file
system uses up slots to store long file names (see http://support.microsoft.com/kb/120138/en-us).
Step 1 Enable multiple context mode. See Enable or Disable Multiple Context Mode, page 6-15.
Step 2 (Optional) Configure classes for resource management. See Configure a Class for Resource
Management, page 6-16. Note: For VPN support, you must configure VPN resources in a resource class;
the default class does not allow VPN.
Step 3 Configure interfaces in the system execution space.
• ASA 5500-X—Chapter 9, “Basic Interface Configuration (ASA Appliances).”
• ASASM—ASASM quick start guide.
Step 4 Configure security contexts. See Configure a Security Context, page 6-19.
Step 5 (Optional) Customize MAC address assignments. See Assign MAC Addresses to Context Interfaces
Automatically, page 6-23.
Step 6 Complete interface configuration in the context. See Chapter 11, “Routed Mode Interfaces,” or
Chapter 12, “Transparent Mode Interfaces.”
Prerequisites
Back up your startup configuration. When you convert from single mode to multiple mode, the ASA
converts the running configuration into two files. The original startup configuration is not saved. See
Backing Up and Restoring Configurations or Other Files, page 36-26.
Procedure
Example:
ciscoasa(config)# mode multiple
Procedure
Step 1 Copy the backup version of your original running configuration to the current startup configuration:
copy disk0:old_running.cfg startup-config
Example:
ciscoasa(config)# copy disk0:old_running.cfg startup-config
Example:
ciscoasa(config)# mode single
Guidelines
Table 6-1 lists the resource types and the limits. See also the show resource types command.
Minimum and
Rate or Maximum Number
Resource Name Concurrent per Context System Limit1 Description
asdm Concurrent 1 minimum 32 ASDM management sessions.
5 maximum Note ASDM sessions use two HTTPS
connections: one for monitoring that
is always present, and one for making
configuration changes that is present
only when you make changes. For
example, the system limit of 32
ASDM sessions represents a limit of
64 HTTPS sessions.
conns2 Concurrent N/A Concurrent connections: TCP or UDP connections between any two
or Rate See Supported Feature hosts, including connections between one
Licenses Per Model, host and multiple other hosts.
page 3-1 for the
connection limit
available for your model.
Rate: N/A
hosts Concurrent N/A N/A Hosts that can connect through the ASA.
inspects Rate N/A N/A Application inspections per second.
mac-addresses Concurrent N/A 65,535 For transparent firewall mode, the number of
MAC addresses allowed in the MAC address
table.
routes Concurrent N/A N/A Dynamic routes.
vpn burst other Concurrent N/A The Other VPN session The number of site-to-site VPN sessions
amount for your model allowed beyond the amount assigned to a
minus the sum of the context with vpn other. For example, if your
sessions assigned to all model supports 5000 sessions, and you assign
contexts for vpn other. 4000 sessions across all contexts with vpn
other, then the remaining 1000 sessions are
available for vpn burst other. Unlike vpn
other, which guarantees the sessions to the
context, vpn burst other can be
oversubscribed; the burst pool is available to
all contexts on a first-come, first-served basis.
vpn other Concurrent N/A See Supported Feature Site-to-site VPN sessions. You cannot
Licenses Per Model, oversubscribe this resource; all context
page 3-1 for the Other assignments combined cannot exceed the
VPN sessions available model limit. The sessions you assign for this
for your model. resource are guaranteed to the context.
ssh Concurrent 1 minimum 100 SSH sessions.
5 maximum
syslogs Rate N/A N/A Syslog messages per second.
Minimum and
Rate or Maximum Number
Resource Name Concurrent per Context System Limit1 Description
telnet Concurrent 1 minimum 100 Telnet sessions.
5 maximum
2
xlates Concurrent N/A N/A Network address translations.
1. If this column value is N/A, then you cannot set a percentage of the resource because there is no hard system limit for the resource.
2. Syslog messages are generated for whichever limit is lower xlates or conns. For example, if you set the xlates limit to 7 and the conns to 9, then the ASA
only generates syslog message 321001 (“Resource 'xlates' limit of 7 reached for context 'ctx1'”) and not 321002 (“Resource 'conn rate' limit of 5 reached
for context 'ctx1'”).
Procedure
Step 1 Specify the class name and enter the class configuration mode:
class name
Example:
ciscoasa(config)# class gold
The name is a string up to 20 characters long. To set the limits for the default class, enter default for the
name.
Step 2 Set the resource limit for a resource type:
limit-resource [rate] resource_name number[%]
Example:
ciscoasa(config-class)# limit-resource rate inspects 10
• See Table 6-1 for a list of resource types. If you specify all, then all resources are configured with
the same value. If you also specify a value for a particular resource, the limit overrides the limit set
for all.
• Enter the rate argument to set the rate per second for certain resources.
• For most resources, specify 0 for the number to set the resource to be unlimited or to be the system
limit, if available. For VPN resources, 0 sets the limit to none.
• For resources that do not have a system limit, you cannot set the percentage (%); you can only set
an absolute value.
Examples
For example, to set the default class limit for conns to 10 percent instead of unlimited, and to allow 5
site-to-site VPN tunnels with 2 tunnels allowed for VPN burst, enter the following commands:
ciscoasa(config)# class default
ciscoasa(config-class)# limit-resource conns 10%
ciscoasa(config-class)# limit-resource vpn other 5
ciscoasa(config-class)# limit-resource vpn burst other 2
Although this context does not exist yet in your configuration, you can subsequently enter the
context name command to continue the admin context configuration.
Procedure
Example:
ciscoasa(config)# context administrator
The name is a string up to 32 characters long. This name is case sensitive, so you can have two contexts
named “customerA” and “CustomerA,” for example. You can use letters, digits, or hyphens, but you
cannot start or end the name with a hyphen.
Note “System” or “Null” (in upper or lower case letters) are reserved names, and cannot be used.
Example:
ciscoasa(config-ctx)# description Administrator Context
Example:
ciscoasa(config-ctx)# allocate-interface gigabitethernet0/1.100 int1
ciscoasa(config-ctx)# allocate-interface gigabitethernet0/1.200 int2
ciscoasa(config-ctx)# allocate-interface gigabitethernet0/2.300-gigabitethernet0/2.305
int3-int8
Note Do not include a space between the interface type and the port number.
• Enter these commands multiple times to specify different ranges. If you remove an allocation with
the no form of this command, then any context commands that include this interface are removed
from the running configuration.
• Transparent firewall mode allows a limited number of interfaces to pass through traffic; however,
you can use a dedicated management interface, Management slot/port (physical, subinterface,
redundant, or EtherChannel), as an additional interface for management traffic. A separate
management interface is not available for the ASASM.
• You can assign the same interfaces to multiple contexts in routed mode, if desired. Transparent mode
does not allow shared interfaces.
• The mapped_name is an alphanumeric alias for the interface that can be used within the context
instead of the interface ID. If you do not specify a mapped name, the interface ID is used within the
context. For security purposes, you might not want the context administrator to know which
interfaces the context is using. A mapped name must start with a letter, end with a letter or digit, and
have as interior characters only letters, digits, or an underscore. For example, you can use the
following names:int0, inta, int_0
• If you specify a range of subinterfaces, you can specify a matching range of mapped names. Follow
these guidelines for ranges:
– The mapped name must consist of an alphabetic portion followed by a numeric portion. The
alphabetic portion of the mapped name must match for both ends of the range. For example,
enter the following range:int0-int10. If you enter gig0/1.1-gig0/1.5 happy1-sad5, for
example, the command fails.
– The numeric portion of the mapped name must include the same quantity of numbers as the
subinterface range. For example, both ranges include 100
interfaces:gigabitethernet0/0.100-gigabitethernet0/0.199 int1-int100. If you enter
gig0/0.100-gig0/0.199 int1-int15, for example, the command fails.
• Specify visible to see the real interface ID in the show interface command if you set a mapped
name. The default invisible keyword shows only the mapped name.
Step 4 Identify the URL from which the system downloads the context configuration:
config-url url
Example:
ciscoasa(config-ctx)# config-url ftp://user1:[email protected]/configlets/test.cfg
Example:
ciscoasa(config-ctx)# member gold
Step 6 (Optional) Assign an IPS virtual sensor to this context if you have the IPS module installed:
allocate-ips sensor_name [mapped_name] [default]
Example:
ciscoasa(config-ctx)# allocate-ips sensor1 highsec
See the firewall configuration guide for detailed information about virtual sensors.
• When you add a context URL, the system immediately loads the context so that it is running, if the
configuration is available.
• Enter the allocate-interface command(s) before you enter the config-url command. If you enter the
config-url command first, the ASA loads the context configuration immediately. If the context
contains any commands that refer to (not yet configured) interfaces, those commands fail.
• The filename does not require a file extension, although we recommend using “.cfg”. The server
must be accessible from the admin context. If the configuration file is not available, you see the
following warning message:
WARNING: Could not fetch the URL url
INFO: Creating context with default config
• For non-HTTP(S) URL locations, after you specify the URL, you can then change to the context,
configure it at the CLI, and enter the write memory command to write the file to the URL location.
(HTTP(S) is read only).
• The admin context file must be stored on the internal flash memory.
• Available URL types include: disknumber (for flash memory), ftp, http, https, or tftp.
• To change the URL, reenter the config-url command with a new URL. See Change the Security
Context URL, page 6-25 for more information about changing the URL.
Step 7 (Optional) Assign a context to a failover group in Active/Active failover:
join-failover-group {1 | 2)
Example:
ciscoasa(config-ctx)# join-failover-group 2
By default, contexts are in group 1. The admin context must always be in group 1.
See Configure Optional Failover Parameters, page 7-34 for detailed information about failover groups.
Step 8 (Optional) Enable Cloud Web Security for this context:
scansafe [license key]
Example:
ciscoasa(config-ctx)# scansafe
If you do not specify a license, the context uses the license configured in the system configuration. The
ASA sends the authentication key to the Cloud Web Security proxy servers to indicate from which
organization the request comes. The authentication key is a 16-byte hexidecimal number.
See the firewall configuration guide for detailed information about ScanSafe.
Examples
The following example sets the admin context to be “administrator,” creates a context called
“administrator” on the internal flash memory, and then adds two contexts from an FTP server:
ciscoasa(config)# admin-context administrator
ciscoasa(config)# context administrator
ciscoasa(config-ctx)# allocate-interface gigabitethernet0/0.1
ciscoasa(config-ctx)# allocate-interface gigabitethernet0/1.1
ciscoasa(config-ctx)# config-url disk0:/admin.cfg
Guidelines
• When you configure a nameif command for the interface in a context, the new MAC address is
generated immediately. If you enable this feature after you configure context interfaces, then MAC
addresses are generated for all interfaces immediately after you enable it. If you disable this feature,
the MAC address for each interface reverts to the default MAC address. For example, subinterfaces
of GigabitEthernet 0/1 revert to using the MAC address of GigabitEthernet 0/1.
• In the rare circumstance that the generated MAC address conflicts with another private MAC
address in your network, you can manually set the MAC address for the interface within the context.
See Configuring the MAC Address, MTU, and TCP MSS, page 11-9 to manually set the MAC
address.
Procedure
Example:
ciscoasa(config)# mac-address auto prefix 19
If you do not enter a prefix, then the ASA autogenerates the prefix based on the last two bytes of the
interface (ASA 5500-X) or backplane (ASASM) MAC address.
If you manually enter a prefix, then the prefix is a decimal value between 0 and 65535. This prefix is
converted to a four-digit hexadecimal number, and used as part of the MAC address. See MAC Address
Format, page 6-12 section for more information about how the prefix is used.
Procedure
Note If you use failover, there is a delay between when you remove the context on the active unit and when
the context is removed on the standby unit. You might see an error message indicating that the number
of interfaces on the active and standby units are not consistent; this error is temporary and can be
ignored.
Procedure
All context commands are also removed. The context configuration file is not removed from the config
URL location.
Step 2 Remove all contexts (including the admin context):
clear context
The context configuration files are not removed from the config URL locations.
Guidelines
You can set any context to be the admin context, as long as the configuration file is stored in the internal
flash memory.
Procedure
Example:
ciscoasa(config)# admin-context administrator
Any remote management sessions, such as Telnet, SSH, or HTTPS, that are connected to the admin
context are terminated. You must reconnect to the new admin context.
A few system configuration commands, including ntp server, identify an interface name that belongs to
the admin context. If you change the admin context, and that interface name does not exist in the new
admin context, be sure to update any system commands that refer to the interface.
Guidelines
• You cannot change the security context URL without reloading the configuration from the new URL.
The ASA merges the new configuration with the current running configuration.
• Reentering the same URL also merges the saved configuration with the running configuration.
• A merge adds any new commands from the new configuration to the running configuration.
Procedure
Step 1 (Optional, if you do not want to perform a merge) Change to the context and clears configuration:
changeto context name
clear configure all
Example:
ciscoasa(config)# changeto context ctx1
ciscoasa/ctx1(config)# clear configure all
Example:
ciscoasa/ctx1(config)# changeto system
ciscoasa(config)#
Step 3 Enters the context configuration mode for the context you want to change.
context name
Example:
ciscoasa(config)# context ctx1
Step 4 Enters the new URL. The system immediately loads the context so that it is running.
config-url new_url
Example:
ciscoasa(config)# config-url ftp://user1:[email protected]/configlets/ctx1.cfg
This action clears most attributes associated with the context, such as connections and NAT tables.
• Remove the context from the system configuration.
This action clears additional attributes, such as memory allocation, which might be useful for
troubleshooting. However, to add the context back to the system requires you to respecify the URL
and interfaces.
Procedure
Example:
ciscoasa(config)# changeto context ctx1
ciscoasa/ctx1(comfig)#
Example:
ciscoasa/ctx1(config)# copy startup-config running-config
The ASA copies the configuration from the URL specified in the system configuration. You cannot
change the URL from within a context.
Procedure
If you want to show information for a particular context, specify the name.
The detail option shows additional information. See the following sample outputs below for more
information.
The count option shows the total number of contexts.
The following is sample output from the show context command. The following sample output shows
three contexts:
ciscoasa# show context
Field Description
Context Name Lists all context names. The context name with the asterisk (*) is the admin context.
Interfaces The interfaces assigned to the context.
URL The URL from which the ASA loads the context configuration.
The following is sample output from the show context detail command:
ciscoasa# show context detail
Context "admin", has been created, but initial ACL rules not complete
Config URL: disk0:/admin.cfg
Real Interfaces: Management0/0
Mapped Interfaces: Management0/0
Flags: 0x00000013, ID: 1
Context "ctx", has been created, but initial ACL rules not complete
Config URL: ctx.cfg
Real Interfaces: GigabitEthernet0/0.10, GigabitEthernet0/1.20,
GigabitEthernet0/2.30
Mapped Interfaces: int1, int2, int3
Flags: 0x00000011, ID: 2
See the command reference for more information about the detail output.
The following is sample output from the show context count command:
ciscoasa# show context count
Total active contexts: 2
Procedure
This command shows the resource allocation, but does not show the actual resources being used. See
View Resource Usage, page 6-32 for more information about actual resource usage.
The detail argument shows additional information. See the following sample outputs for more
information.
The following sample output shows the total allocation of each resource as an absolute value and as a
percentage of the available system resources:
ciscoasa# show resource allocation
Resource Total % of Avail
Conns [rate] 35000 N/A
Inspects [rate] 35000 N/A
Syslogs [rate] 10500 N/A
Conns 305000 30.50%
Hosts 78842 N/A
SSH 35 35.00%
Routes 5000 N/A
Telnet 35 35.00%
Xlates 91749 N/A
Other VPN Sessions 20 2.66%
Other VPN Burst 20 2.66%
All unlimited
Field Description
Resource The name of the resource that you can limit.
Total The total amount of the resource that is allocated across all contexts. The amount
is an absolute number of concurrent instances or instances per second. If you
specified a percentage in the class definition, the ASA converts the percentage to
an absolute number for this display.
% of Avail The percentage of the total system resources that is allocated across all contexts, if
the resource has a hard system limit. If a resource does not have a system limit, this
column shows N/A.
The following is sample output from the show resource allocation detail command:
ciscoasa# show resource allocation detail
Resource Origin:
A Value was derived from the resource 'all'
C Value set in the definition of this class
D Value set in default class
Resource Class Mmbrs Origin Limit Total Total %
Conns [rate] default all CA unlimited
gold 1 C 34000 34000 N/A
silver 1 CA 17000 17000 N/A
bronze 0 CA 8500
All Contexts: 3 51000 N/A
bronze 0 CA 5000
All Contexts: 3 10000 N/A
Field Description
Resource The name of the resource that you can limit.
Class The name of each class, including the default class.
The All contexts field shows the total values across all classes.
Mmbrs The number of contexts assigned to each class.
Field Description
Origin The origin of the resource limit, as follows:
• A—You set this limit with the all option, instead of as an individual resource.
• C—This limit is derived from the member class.
• D—This limit was not defined in the member class, but was derived from the
default class. For a context assigned to the default class, the value will be “C”
instead of “D.”
The ASA can combine “A” with “C” or “D.”
Limit The limit of the resource per context, as an absolute number. If you specified a
percentage in the class definition, the ASA converts the percentage to an absolute
number for this display.
Total The total amount of the resource that is allocated across all contexts in the class.
The amount is an absolute number of concurrent instances or instances per second.
If the resource is unlimited, this display is blank.
% of Avail The percentage of the total system resources that is allocated across all contexts in
the class. If the resource is unlimited, this display is blank. If the resource does not
have a system limit, then this column shows N/A.
Procedure
– denied—Shows the number of instances that were denied because they exceeded the resource
limit shown in the Limit column.
– peak—Shows the peak concurrent instances, or the peak rate of the resource since the statistics
were last cleared, either using the clear resource usage command or because the device
rebooted.
– all—(Default) Shows all statistics.
• The count_threshold sets the number above which resources are shown. The default is 1. If the usage
of the resource is below the number you set, then the resource is not shown. If you specify all for
the counter name, then the count_threshold applies to the current usage.
• To show all resources, set the count_threshold to 0.
The following is sample output from the show resource usage context command, which shows the
resource usage for the admin context:
ciscoasa# show resource usage context admin
The following is sample output from the show resource usage summary command, which shows the
resource usage for all contexts and all resources. This sample shows the limits for six contexts.
ciscoasa# show resource usage summary
S = System: Combined context limits exceed the system limit; the system limit is shown.
The following is sample output from the show resource usage summary command, which shows the
limits for 25 contexts. Because the context limit for Telnet and SSH connections is 5 per context, then
the combined limit is 125. The system limit is only 100, so the system limit is shown.
ciscoasa# show resource usage summary
The following is sample output from the show resource usage system command, which shows the
resource usage for all contexts, but it shows the system limit instead of the combined context limits. The
counter all 0 option is used to show resources that are not currently in use. The Denied statistics indicate
how many times the resource was denied due to the system limit, if available.
ciscoasa# show resource usage system counter all 0
Procedure
Step 2 Monitor the amount of resources being used by TCP intercept for individual contexts:
show resource usage detail
Step 3 Monitor the resources being used by TCP intercept for the entire system:
show resource usage summary detail
The following is sample output from the show perfmon command that shows the rate of TCP intercepts
for a context called admin.
ciscoasa/admin# show perfmon
Context:admin
PERFMON STATS: Current Average
Xlates 0/s 0/s
Connections 0/s 0/s
TCP Conns 0/s 0/s
UDP Conns 0/s 0/s
URL Access 0/s 0/s
URL Server Req 0/s 0/s
The following is sample output from the show resource usage detail command that shows the amount
of resources being used by TCP Intercept for individual contexts. (Sample text in bold shows the TCP
intercept information.)
ciscoasa(config)# show resource usage detail
Resource Current Peak Limit Denied Context
memory 843732 847288 unlimited 0 admin
chunk:channels 14 15 unlimited 0 admin
chunk:fixup 15 15 unlimited 0 admin
chunk:hole 1 1 unlimited 0 admin
chunk:ip-users 10 10 unlimited 0 admin
chunk:list-elem 21 21 unlimited 0 admin
chunk:list-hdr 3 4 unlimited 0 admin
chunk:route 2 2 unlimited 0 admin
chunk:static 1 1 unlimited 0 admin
tcp-intercepts 328787 803610 unlimited 0 admin
np-statics 3 3 unlimited 0 admin
statics 1 1 unlimited 0 admin
ace-rules 1 1 unlimited 0 admin
console-access-rul 2 2 unlimited 0 admin
fixup-rules 14 15 unlimited 0 admin
memory 959872 960000 unlimited 0 c1
chunk:channels 15 16 unlimited 0 c1
chunk:dbgtrace 1 1 unlimited 0 c1
chunk:fixup 15 15 unlimited 0 c1
chunk:global 1 1 unlimited 0 c1
chunk:hole 2 2 unlimited 0 c1
chunk:ip-users 10 10 unlimited 0 c1
chunk:udp-ctrl-blk 1 1 unlimited 0 c1
chunk:list-elem 24 24 unlimited 0 c1
chunk:list-hdr 5 6 unlimited 0 c1
chunk:nat 1 1 unlimited 0 c1
chunk:route 2 2 unlimited 0 c1
chunk:static 1 1 unlimited 0 c1
tcp-intercept-rate 16056 16254 unlimited 0 c1
globals 1 1 unlimited 0 c1
np-statics 3 3 unlimited 0 c1
statics 1 1 unlimited 0 c1
nats 1 1 unlimited 0 c1
ace-rules 2 2 unlimited 0 c1
console-access-rul 2 2 unlimited 0 c1
fixup-rules 14 15 unlimited 0 c1
memory 232695716 232020648 unlimited 0 system
chunk:channels 17 20 unlimited 0 system
chunk:dbgtrace 3 3 unlimited 0 system
chunk:fixup 15 15 unlimited 0 system
chunk:ip-users 4 4 unlimited 0 system
chunk:list-elem 1014 1014 unlimited 0 system
chunk:list-hdr 1 1 unlimited 0 system
chunk:route 1 1 unlimited 0 system
block:16384 510 885 unlimited 0 system
block:2048 32 34 unlimited 0 system
The following sample output shows the resources being used by TCP intercept for the entire system.
(Sample text in bold shows the TCP intercept information.)
ciscoasa(config)# show resource usage summary detail
Resource Current Peak Limit Denied Context
memory 238421312 238434336 unlimited 0 Summary
chunk:channels 46 48 unlimited 0 Summary
chunk:dbgtrace 4 4 unlimited 0 Summary
chunk:fixup 45 45 unlimited 0 Summary
chunk:global 1 1 unlimited 0 Summary
chunk:hole 3 3 unlimited 0 Summary
chunk:ip-users 24 24 unlimited 0 Summary
chunk:udp-ctrl-blk 1 1 unlimited 0 Summary
chunk:list-elem 1059 1059 unlimited 0 Summary
chunk:list-hdr 10 11 unlimited 0 Summary
chunk:nat 1 1 unlimited 0 Summary
chunk:route 5 5 unlimited 0 Summary
chunk:static 2 2 unlimited 0 Summary
block:16384 510 885 unlimited 0 Summary
block:2048 32 35 unlimited 0 Summary
tcp-intercept-rate 341306 811579 unlimited 0 Summary
globals 1 1 unlimited 0 Summary
np-statics 6 6 unlimited 0 Summary
statics 2 2 N/A 0 Summary
nats 1 1 N/A 0 Summary
ace-rules 3 3 N/A 0 Summary
console-access-rul 4 4 N/A 0 Summary
fixup-rules 43 44 N/A 0 Summary
Guidelines
If you manually assign a MAC address to an interface, but also have auto-generation enabled, the
auto-generated address continues to show in the configuration even though the manual MAC address is
the one that is in use. If you later remove the manual MAC address, the auto-generated one shown will
be used.
Procedure
Step 1 Show the assigned MAC addresses from the system execution space:
show running-config all context [name]
The all option is required to view the assigned MAC addresses. Although the mac-address auto
command is user-configurable in global configuration mode only, the command appears as a read-only
entry in context configuration mode along with the assigned MAC address. Only allocated interfaces that
are configured with a nameif command within the context have a MAC address assigned.
Examples
The following output from the show running-config all context admin command shows the primary
and standby MAC address assigned to the Management0/0 interface:
ciscoasa# show running-config all context admin
context admin
allocate-interface Management0/0
mac-address auto Management0/0 a24d.0000.1440 a24d.0000.1441
config-url disk0:/admin.cfg
The following output from the show running-config all context command shows all the MAC addresses
(primary and standby) for all context interfaces. Note that because the GigabitEthernet0/0 and
GigabitEthernet0/1 main interfaces are not configured with a nameif command inside the contexts, no
MAC addresses have been generated for them.
admin-context admin
context admin
allocate-interface Management0/0
mac-address auto Management0/0 a2d2.0400.125a a2d2.0400.125b
config-url disk0:/admin.cfg
!
context CTX1
allocate-interface GigabitEthernet0/0
allocate-interface GigabitEthernet0/0.1-GigabitEthernet0/0.5
mac-address auto GigabitEthernet0/0.1 a2d2.0400.11bc a2d2.0400.11bd
mac-address auto GigabitEthernet0/0.2 a2d2.0400.11c0 a2d2.0400.11c1
mac-address auto GigabitEthernet0/0.3 a2d2.0400.11c4 a2d2.0400.11c5
mac-address auto GigabitEthernet0/0.4 a2d2.0400.11c8 a2d2.0400.11c9
mac-address auto GigabitEthernet0/0.5 a2d2.0400.11cc a2d2.0400.11cd
allocate-interface GigabitEthernet0/1
allocate-interface GigabitEthernet0/1.1-GigabitEthernet0/1.3
mac-address auto GigabitEthernet0/1.1 a2d2.0400.120c a2d2.0400.120d
mac-address auto GigabitEthernet0/1.2 a2d2.0400.1210 a2d2.0400.1211
mac-address auto GigabitEthernet0/1.3 a2d2.0400.1214 a2d2.0400.1215
config-url disk0:/CTX1.cfg
!
context CTX2
allocate-interface GigabitEthernet0/0
allocate-interface GigabitEthernet0/0.1-GigabitEthernet0/0.5
mac-address auto GigabitEthernet0/0.1 a2d2.0400.11ba a2d2.0400.11bb
mac-address auto GigabitEthernet0/0.2 a2d2.0400.11be a2d2.0400.11bf
mac-address auto GigabitEthernet0/0.3 a2d2.0400.11c2 a2d2.0400.11c3
mac-address auto GigabitEthernet0/0.4 a2d2.0400.11c6 a2d2.0400.11c7
mac-address auto GigabitEthernet0/0.5 a2d2.0400.11ca a2d2.0400.11cb
allocate-interface GigabitEthernet0/1
allocate-interface GigabitEthernet0/1.1-GigabitEthernet0/1.3
mac-address auto GigabitEthernet0/1.1 a2d2.0400.120a a2d2.0400.120b
mac-address auto GigabitEthernet0/1.2 a2d2.0400.120e a2d2.0400.120f
Procedure
Step 1 Show the MAC address in use by each interface within the context:
show interface | include (Interface)|(MAC)
Examples
For example:
ciscoasa/context# show interface | include (Interface)|(MAC)
Note The show interface command shows the MAC address in use; if you manually assign a MAC address
and also have auto-generation enabled, then you can only view the unused auto-generated address from
within the system configuration.
Platform
Feature Name Releases Feature Information
Multiple security contexts 7.0(1) Multiple context mode was introduced.
We introduced the following commands: context, mode,
and class.
Automatic MAC address assignment 7.2(1) Automatic assignment of MAC address to context interfaces
was introduced.
We introduced the following command: mac-address auto.
Platform
Feature Name Releases Feature Information
Resource management 7.2(1) Resource management was introduced.
We introduced the following commands: class,
limit-resource, and member.
Virtual sensors for IPS 8.0(2) The AIP SSM running IPS software Version 6.0 and above
can run multiple virtual sensors, which means you can
configure multiple security policies on the AIP SSM. You
can assign each context or single mode ASA to one or more
virtual sensors, or you can assign multiple security contexts
to the same virtual sensor.
We introduced the following command: allocate-ips.
Automatic MAC address assignment 8.0(5)/8.2(2) The MAC address format was changed to use a prefix, to use
enhancements a fixed starting value (A2), and to use a different scheme for
the primary and secondary unit MAC addresses in a failover
pair. The MAC addresses are also now persistent across
reloads. The command parser now checks if auto-generation
is enabled; if you want to also manually assign a MAC
address, you cannot start the manual MAC address with A2.
We modified the following command: mac-address auto
prefix.
Maximum contexts increased for the ASA 5550 8.4(1) The maximum security contexts for the ASA 5550 was
and 5580 increased from 50 to 100. The maximum for the ASA 5580
was increased from 50 to 250.
Automatic MAC address assignment enabled by 8.5(1) Automatic MAC address assignment is now enabled by
default default.
We modified the following command: mac-address auto.
Platform
Feature Name Releases Feature Information
Automatic generation of a MAC address prefix 8.6(1) In multiple context mode, the ASA now converts the
automatic MAC address generation configuration to use a
default prefix. The ASA auto-generates the prefix based on
the last two bytes of the interface (ASA 5500-X) or
backplane (ASASM) MAC address. This conversion
happens automatically when you reload, or if you reenable
MAC address generation. The prefix method of generation
provides many benefits, including a better guarantee of
unique MAC addresses on a segment. You can view the
auto-generated prefix by entering the show running-config
mac-address command. If you want to change the prefix,
you can reconfigure the feature with a custom prefix. The
legacy method of MAC address generation is no longer
available.
Note To maintain hitless upgrade for failover pairs, the
ASA does not convert the MAC address method in
an existing configuration upon a reload if failover is
enabled. However, we strongly recommend that you
manually change to the prefix method of generation
when using failover, especially for the ASASM.
Without the prefix method, ASASMs installed in
different slot numbers experience a MAC address
change upon failover, and can experience traffic
interruption. After upgrading, to use the prefix
method of MAC address generation, reenable MAC
address generation to use the default prefix.
Dynamic routing in Security Contexts 9.0(1) EIGRP and OSPFv2 dynamic routing protocols are now
supported in multiple context mode. OSPFv3, RIP, and
multicast routing are not supported.
New resource type for routing table entries 9.0(1) A new resource type, routes, was created to set the
maximum number of routing table entries in each context.
We modified the following commands: limit-resource,
show resource types, show resource usage, show
resource allocation.
Platform
Feature Name Releases Feature Information
Site-to-Site VPN in multiple context mode 9.0(1) Site-to-site VPN tunnels are now supported in multiple
context mode.
New resource type for site-to-site VPN tunnels 9.0(1) New resource types, vpn other and vpn burst other, were
created to set the maximum number of site-to-site VPN
tunnels in each context.
We modified the following commands: limit-resource,
show resource types, show resource usage, show
resource allocation.
This chapter describes how to configure Active/Standby or Active/Active failover to accomplish high
availability of the Cisco ASA.
• About Failover, page 7-1
• Licensing for Failover, page 7-24
• Prerequisites for Failover, page 7-24
• Guidelines for Failover, page 7-24
• Defaults for Failover, page 7-25
• Configure Active/Standby Failover, page 7-25
• Configure Active/Active Failover, page 7-29
• Configure Optional Failover Parameters, page 7-34
• Manage Failover, page 7-41
• Monitoring Failover, page 7-47
• History for Failover, page 7-48
About Failover
• Failover Overview, page 7-2
• Failover System Requirements, page 7-2
• Failover and Stateful Failover Links, page 7-3
• MAC Addresses and IP Addresses, page 7-8
• Intra- and Inter-Chassis Module Placement for the ASA Services Module, page 7-9
• Stateless and Stateful Failover, page 7-12
• Transparent Firewall Mode Requirements, page 7-14
• Failover Health Monitoring, page 7-16
• Failover Times, page 7-18
• Configuration Synchronization, page 7-18
• About Active/Standby Failover, page 7-20
• About Active/Active Failover, page 7-21
Failover Overview
Configuring failover requires two identical ASAs connected to each other through a dedicated failover
link and, optionally, a state link. The health of the active units and interfaces is monitored to determine
if specific failover conditions are met. If those conditions are met, failover occurs.
The ASA supports two failover modes, Active/Active failover and Active/Standby failover. Each failover
mode has its own method for determining and performing failover.
• In Active/Standby failover, one unit is the active unit. It passes traffic. The standby unit does not
actively pass traffic. When a failover occurs, the active unit fails over to the standby unit, which then
becomes active. You can use Active/Standby failover for ASAs in single or multiple context mode.
• In an Active/Active failover configuration, both ASAs can pass network traffic. Active/Active
failover is only available to ASAs in multiple context mode. In Active/Active failover, you divide
the security contexts on the ASA into 2 failover groups. A failover group is simply a logical group
of one or more security contexts. One group is assigned to be active on the primary ASA, and the
other group is assigned to be active on the secondary ASA. When a failover occurs, it occurs at the
failover group level.
Both failover modes support stateful or stateless failover.
Hardware Requirements
The two units in a failover configuration must:
• Be the same model.
• Have the same number and types of interfaces.
• Have the same modules installed (if any)
• Have the same RAM installed.
If you are using units with different flash memory sizes in your failover configuration, make sure the
unit with the smaller flash memory has enough space to accommodate the software image files and the
configuration files. If it does not, configuration synchronization from the unit with the larger flash
memory to the unit with the smaller flash memory will fail.
Software Requirements
The two units in a failover configuration must:
• Be in the same firewall mode (routed or transparent).
• Be in the same context mode (single or multiple).
• Have the same major (first number) and minor (second number) software version. However, you can
temporarily use different versions of the software during an upgrade process; for example, you can
upgrade one unit from Version 8.3(1) to Version 8.3(2) and have failover remain active. We
recommend upgrading both units to the same version to ensure long-term compatibility.
See Upgrade a Failover Pair or ASA Cluster, page 36-5 for more information about upgrading the
software on a failover pair.
• Have the same AnyConnect images. If the failover pair has mismatched images when a hitless
upgrade is performed, then the clientless SSL VPN connection terminates in the final reboot step of
the upgrade process, the database shows an orphaned session, and the IP pool shows that the IP
address assigned to the client is “in use.”
License Requirements
The two units in a failover configuration do not need to have identical licenses; the licenses combine to
make a failover cluster license. See Failover or ASA Cluster Licenses, page 3-23 for more information.
Caution All information sent over the failover and state links is sent in clear text unless you secure the
communication with an IPsec tunnel or a failover key. If the ASA is used to terminate VPN tunnels, this
information includes any usernames, passwords and preshared keys used for establishing the tunnels.
Transmitting this sensitive data in clear text could pose a significant security risk. We recommend
securing the failover communication with an IPsec tunnel or a failover key if you are using the ASA to
terminate VPN tunnels.
Failover Link
The two units in a failover pair constantly communicate over a failover link to determine the operating
status of each unit.
• Failover Link Data, page 7-3
• Interface for the Failover Link, page 7-4
• Connecting the Failover Link, page 7-4
You can use any unused interface (physical, redundant, or EtherChannel) as the failover link; however,
you cannot specify an interface that is currently configured with a name. The failover link interface is
not configured as a normal networking interface; it exists for failover communication only. This interface
can only be used for the failover link (and optionally also for the state link). The ASA does not support
sharing interfaces between user data and the failover link even if different subinterfaces are configured
for user data and failover. A separate physical, EtherChannel, or redundant interface must be used for
the failover link.
For a redundant interface used as the failover link, see the following benefits for added redundancy:
• When a failover unit boots up, it alternates between the member interfaces to detect an active unit.
• If a failover unit stops receiving keepalive messages from its peer on one of the member interfaces,
it switches to the other member interface.
For an EtherChannel used as the failover link, to prevent out-of-order packets, only one interface in the
EtherChannel is used. If that interface fails, then the next interface in the EtherChannel is used. You
cannot alter the EtherChannel configuration while it is in use as a failover link.
You can use a dedicated interface (physical, redundant, or EtherChannel) for the state link. For an
EtherChannel used as the state link, to prevent out-of-order packets, only one interface in the
EtherChannel is used. If that interface fails, then the next interface in the EtherChannel is used.
Connect a dedicated state link in one of the following two ways:
• Using a switch, with no other device on the same network segment (broadcast domain or VLAN) as
the failover interfaces of the ASA.
• Using an Ethernet cable to connect the appliances directly, without the need for an external switch.
If you do not use a switch between the units, if the interface fails, the link is brought down on both
peers. This condition may hamper troubleshooting efforts because you cannot easily determine
which unit has the failed interface and caused the link to come down.
The ASA supports Auto-MDI/MDIX on its copper Ethernet ports, so you can either use a crossover
cable or a straight-through cable. If you use a straight-through cable, the interface automatically
detects the cable and swaps one of the transmit/receive pairs to MDIX.
For optimum performance when using long distance failover, the latency for the failover link should be
less than 10 milliseconds and no more than 250 milliseconds. If latency is more than10 milliseconds,
some performance degradation occurs due to retransmission of failover messages.
Sharing a failover link might be necessary if you do not have enough interfaces. If you use the failover
link as the state link, you should use the fastest Ethernet interface available. If you experience
performance problems on that interface, consider dedicating a separate interface for the state link.
Sharing a data interface with the state link can leave you vulnerable to replay attacks. Additionally, large
amounts of Stateful Failover traffic may be sent on the interface, causing performance problems on that
network segment.
Using a data interface as the state link is supported in single context, routed mode only.
outside outside
Primary ASA Failover link Failover link Secondary ASA
236369
inside inside
236370
inside inside
Scenario 2—Recommended
We recommend that failover links NOT use the same switch as the data interfaces. Instead, use a different
switch or use a direct cable to connect the failover link, as shown in Figure 7-3 and Figure 7-4.
Switch 1
outside outside
Primary ASA Secondary ASA
inside inside
Switch 2
Failover link Failover link
236371
Figure 7-4 Connecting with a Cable
Switch 1
outside outside
Primary ASA Secondary ASA
inside inside
236372
Scenario 3—Recommended
If the ASA data interfaces are connected to more than one set of switches, then a failover link can be
connected to one of the switches, preferably the switch on the secure (inside) side of network, as shown
in Figure 7-5.
Switch 1 Switch 2
Switch 3 Switch 4
Failover link Failover link
236373
inside ISL inside
Scenario 4—Recommended
The most reliable failover configurations use a redundant interface on the failover link, as shown in
Figure 7-6 and Figure 7-7.
Switch 1 Switch 2
outside ISL outside
Switch 3
Switch 4
Standby redundant Standby redundant
failover link failover link
Switch 5 Switch 6
inside ISL inside
236375
Switch 1 Switch 2
outside ISL outside
Switch 3 Switch 4
Primary Active redundant ISL Active redundant Secondary
ASA failover link failover link ASA
Switch 5 Switch 6
Standby redundant ISL Standby redundant
failover link failover link
Switch 7 Switch 8
inside ISL inside
236376
MAC Addresses and IP Addresses
When you configure your interfaces, you must specify an active IP address and a standby IP address on
the same network.
1. When the primary unit or failover group fails over, the secondary unit assumes the IP addresses and
MAC addresses of the primary unit and begins passing traffic.
2. The unit that is now in standby state takes over the standby IP addresses and MAC addresses.
Because network devices see no change in the MAC to IP address pairing, no ARP entries change or time
out anywhere on the network.
Note If the secondary unit boots without detecting the primary unit, the secondary unit becomes the active unit
and uses its own MAC addresses, because it does not know the primary unit MAC addresses. However,
when the primary unit becomes available, the secondary (active) unit changes the MAC addresses to
those of the primary unit, which can cause an interruption in your network traffic.Similarly, if you swap
out the primary unit with new hardware, a new MAC address is used.
Virtual MAC addresses guard against this disruption because the active MAC addresses are known to the
secondary unit at startup, and remain the same in the case of new primary unit hardware. In multiple
context mode, the ASA generates virtual active and standby MAC addresses by default. See About MAC
Addresses, page 6-11 for more information. In single context mode, you can manually configure virtual
MAC addresses; see Configure Active/Active Failover, page 7-29 for more information.
If you do not configure virtual MAC addresses, you might need to clear the ARP tables on connected
routers to restore traffic flow. The ASA does not send gratuitous ARPs for static NAT addresses when
the MAC address changes, so connected routers do not learn of the MAC address change for these
addresses.
Note The IP address and MAC address for the state link do not change at failover; the only exception is if the
state link is configured on a regular data interface.
Intra- and Inter-Chassis Module Placement for the ASA Services Module
You can place the primary and secondary ASASMs within the same switch or in two separate switches.
The following sections describe each option:
• Intra-Chassis Failover, page 7-9
• Inter-Chassis Failover, page 7-10
Intra-Chassis Failover
If you install the secondary ASASM in the same switch as the primary ASASM, you protect against
module-level failure. To protect against switch-level failure, as well as module-level failure, see
Inter-Chassis Failover, page 7-10.
Even though both ASASMs are assigned the same VLANs, only the active module takes part in
networking. The standby module does not pass any traffic.
Figure 7-8 shows a typical intra-switch configuration.
Internet
VLAN 200
Failover VLAN 10
Active Standby
ASASM ASASM
State VLAN 11
VLAN 201
255219
Inside
Inter-Chassis Failover
To protect against switch-level failure, you can install the secondary ASASM in a separate switch. The
ASASM does not coordinate failover directly with the switch, but it works harmoniously with the switch
failover operation. See the switch documentation to configure failover for the switch.
For the best reliability of failover communications between ASASMs, we recommend that you configure
an EtherChannel trunk port between the two switches to carry the failover and state VLANs.
For other VLANs, you must ensure that both switches have access to all firewall VLANs, and that
monitored VLANs can successfully pass hello packets between both switches.
Figure 7-9 shows a typical switch and ASASM redundancy configuration. The trunk between the two
switches carries the failover ASASM VLANs (VLANs 10 and 11).
Note ASASM failover is independent of the switch failover operation; however, ASASM works in any switch
failover scenario.
Internet
VLAN 100
Switch Switch
VLAN 200
VLAN 10
Active Failover Trunk Standby
ASASM VLAN 11 ASASM
Eng
VLAN 203
Mktg
VLAN 202
303729
Inside
VLAN 201
If the primary ASASM fails, then the secondary ASASM becomes active and successfully passes the
firewall VLANs (Figure 7-10).
Internet
VLAN 100
Switch Switch
VLAN 200
VLAN 10
Failed Failover Trunk Active
ASASM VLAN 11 ASASM
Eng
VLAN 203
Mktg
VLAN 202
Inside 303730
VLAN 201
If the entire switch fails, as well as the ASASM (such as in a power failure), then both the switch and
the ASASM fail over to their secondary units (Figure 7-11).
Internet
VLAN 100
VLAN 200
VLAN 10
Failed Failover Trunk Active
ASASM VLAN 11 ASASM
Eng
VLAN 203
Mktg
VLAN 202
303728
Inside
VLAN 201
Note Some configuration elements for clientless SSL VPN (such as bookmarks and customization) use the
VPN failover subsystem, which is part of Stateful Failover. You must use Stateful Failover to
synchronize these elements between the members of the failover pair. Stateless failover is not
recommended for clientless SSL VPN.
Stateless Failover
When a failover occurs, all active connections are dropped. Clients need to reestablish connections when
the new active unit takes over.
Note Some configuration elements for clientless SSL VPN (such as bookmarks and customization) use the
VPN failover subsystem, which is part of Stateful Failover. You must use Stateful Failover to
synchronize these elements between the members of the failover pair. Stateless (regular) failover is not
recommended for clientless SSL VPN.
Stateful Failover
When Stateful Failover is enabled, the active unit continually passes per-connection state information to
the standby unit, or in Active/Active failover, between the active and standby failover groups. After a
failover occurs, the same connection information is available at the new active unit. Supported end-user
applications are not required to reconnect to keep the same communication session.
• Supported Features, page 7-13
• Unsupported Features, page 7-14
Supported Features
The following state information is passed to the standby ASA when Stateful Failover is enabled:
• NAT translation table
• TCP connection states
• UDP connection states
• The ARP table
• The Layer 2 bridge table (when running in transparent firewall mode)
• The HTTP connection states (if HTTP replication is enabled)—By default, the ASA does not
replicate HTTP session information when Stateful Failover is enabled. Because HTTP sessions are
typically short-lived, and because HTTP clients typically retry failed connection attempts, not
replicating HTTP sessions increases system performance without causing serious data or connection
loss.
• The ISAKMP and IPsec SA table
• GTP PDP connection database
• SIP signalling sessions
• ICMP connection state—ICMP connection replication is enabled only if the respective interface is
assigned to an asymmetric routing group.
• Dynamic Routing Protocols—Stateful Failover participates in dynamic routing protocols, like OSPF
and EIGRP, so routes that are learned through dynamic routing protocols on the active unit are
maintained in a Routing Information Base (RIB) table on the standby unit. Upon a failover event,
packets travel normally with minimal disruption to traffic because the active secondary ASA
initially has rules that mirror the primary ASA. Immediately after failover, the re-convergence timer
starts on the newly Active unit. Then the epoch number for the RIB table increments. During
re-convergence, OSPF and EIGRP routes become updated with a new epoch number. Once the timer
is expired, stale route entries (determined by the epoch number) are removed from the table. The
RIB then contains the newest routing protocol forwarding information on the newly Active unit.
Note Routes are synchronized only for link-up or link-down events on an active unit. If the link goes
up or down on the standby unit, dynamic routes sent from the active unit may be lost. This is
normal, expected behavior.
• Cisco IP SoftPhone sessions—If a failover occurs during an active Cisco IP SoftPhone session, the
call remains active because the call session state information is replicated to the standby unit. When
the call is terminated, the IP SoftPhone client loses connection with the Cisco Call Manager. This
connection loss occurs because there is no session information for the CTIQBE hangup message on
the standby unit. When the IP SoftPhone client does not receive a response back from the Call
Manager within a certain time period, it considers the Call Manager unreachable and unregisters
itself.
• VPN—VPN end-users do not have to reauthenticate or reconnect the VPN session after a failover.
However, applications operating over the VPN connection could lose packets during the failover
process and not recover from the packet loss.
Unsupported Features
The following state information is not passed to the standby ASA when Stateful Failover is enabled:
• The HTTP connection table (unless HTTP replication is enabled)
• The user authentication (uauth) table
• Application inspections that are subject to advanced TCP-state tracking—The TCP state of these
connections is not automatically replicated. While these connections are replicated to the standby
unit, there is a best-effort attempt to re-establish a TCP state.
• TCP state bypass connections
• DHCP server address leases
• Multicast routing
• State information for modules, such as the ASA FirePOWER module.
• Phone proxy connections—When the active unit goes down, the call fails, media stops flowing, and
the phone should unregister from the failed unit and reregister with the active unit. The call must be
re-established.
• Selected clientless SSL VPN features:
– Smart Tunnels
– Port Forwarding
– Plugins
– Java Applets
– IPv6 clientless or Anyconnect sessions
– Citrix authentication (Citrix users must reauthenticate after failover)
The PortFast feature immediately transitions the port into STP forwarding mode upon linkup. The
port still participates in STP. So if the port is to be a part of the loop, the port eventually transitions
into STP blocking mode.
• Trunk mode—Block BPDUs on the ASA on both the inside and outside interfaces with an EtherType
access rule.
access-list id ethertype deny bpdu
access-group id in interface inside_name
access-group id in interface outside_name
Blocking BPDUs disables STP on the switch. Be sure not to have any loops involving the ASA in
your network layout.
If neither of the above options are possible, then you can use one of the following less desirable
workarounds that impacts failover functionality or STP stability:
• Disable interface monitoring.
• Increase interface holdtime to a high value that will allow STP to converge before the ASAs fail
over.
• Decrease STP timers to allow STP to converge faster than the interface holdtime.
Internet
MSFC
VLAN 200
Failover VLAN 10
Active Active
ASASM ASASM
State VLAN 11
Inside
VLAN 201
303731
Interface Monitoring
You can monitor up to 250 interfaces (in multiple mode, divided between all contexts). You should
monitor important interfaces. For example in multiple mode, you might configure one context to monitor
a shared interface: because the interface is shared, all contexts benefit from the monitoring.
When a unit does not receive hello messages on a monitored interface for 2 polling periods, it runs
interface tests. If all interface tests fail for an interface, but this same interface on the other unit continues
to successfully pass traffic, then the interface is considered to be failed. If the threshold for failed
interfaces is met, then a failover occurs. If the other unit interface also fails all the network tests, then
both interfaces go into the “Unknown” state and do not count towards the failover limit.
An interface becomes operational again if it receives any traffic. A failed ASA returns to standby mode
if the interface failure threshold is no longer met.
If you have a services module, such as the ASA FirePOWER SSP, then the ASA also monitors the health
of the module over the backplane interface. Failure of the module is considered a unit failure and will
trigger failover. This setting is configurable.
If an interface has IPv4 and IPv6 addresses configured on it, the ASA uses the IPv4 addresses to perform
the health monitoring.
If an interface has only IPv6 addresses configured on it, then the ASA uses IPv6 neighbor discovery
instead of ARP to perform the health monitoring tests. For the broadcast ping test, the ASA uses the IPv6
all nodes address (FE02::1).
Note If a failed unit does not recover and you believe it should not be failed, you can reset the state by entering
the failover reset command. If the failover condition persists, however, the unit will fail again.
Interface Tests
Interface Status
Failover Times
Table 7-1 shows the minimum, default, and maximum failover times.
Configuration Synchronization
Failover includes two types of configuration synchronization:
• Running Configuration Replication, page 7-18
• File Replication, page 7-19
• Command Replication, page 7-19
Note During replication, commands entered on the active unit may not replicate properly to the standby unit,
and commands entered on the standby unit may be overwritten by the configuration being replicated
from the active unit. Avoid entering commands on either unit during the configuration replication
process.
Note The crypto ca server command and related sub commands are not synchronized to the failover peer.
File Replication
Configuration syncing does not replicate the following files and configuration components, so you must
copy these files manually so they match:
• AnyConnect images
• CSD images
• AnyConnect profiles
The ASA uses a cached file for the AnyConnect client profile stored in cache:/stc/profiles, and not
the file stored in the flash file system. To replicate the AnyConnect client profile to the standby unit,
perform one of the following:
– Enter the write standby command on the active unit.
– Reapply the profile on the active unit.
– Reload the standby unit.
• Local Certificate Authorities (CAs)
• ASA images
• ASDM images
Command Replication
After startup, commands that you enter on the active unit are immediately replicated to the standby unit.
You do not have to save the active configuration to flash memory to replicate the commands.
In Active/Active failover, commands entered in the system execution space are replicated from the unit
on which failover group 1 is in the active state.
Failure to enter the commands on the appropriate unit for command replication to occur causes the
configurations to be out of synchronization. Those changes may be lost the next time the initial
configuration synchronization occurs.
The following commands are replicated to the standby ASA:
• All configuration commands except for mode, firewall, and failover lan unit
• copy running-config startup-config
• delete
• mkdir
• rename
• rmdir
• write memory
The following commands are not replicated to the standby ASA:
• All forms of the copy command except for copy running-config startup-config
• All forms of the write command except for write memory
• debug
• failover lan unit
• firewall
• show
• terminal pager and pager
Note For multiple context mode, the ASA can fail over the entire unit (including all contexts) but cannot fail
over individual contexts separately.
Failover Events
In Active/Standby failover, failover occurs on a unit basis. Even on systems running in multiple context
mode, you cannot fail over individual or groups of contexts.
Table 7-2 shows the failover action for each failure event. For each failure event, the table shows the
failover policy (failover or no failover), the action taken by the active unit, the action taken by the
standby unit, and any special notes about the failover condition and actions.
Note When configuring Active/Active failover, make sure that the combined traffic for both units is within the
capacity of each unit.
Note You can assign both failover groups to one ASA if desired, but then you are not taking advantage of
having two active ASAs.
• When both units boot at the same time, each failover group becomes active on its preferred unit after
the configurations have been synchronized.
Failover Events
In an Active/Active failover configuration, failover occurs on a failover group basis, not a system basis.
For example, if you designate both failover groups as active on the primary unit, and failover group 1
fails, then failover group 2 remains active on the primary unit while failover group 1 becomes active on
the secondary unit.
Because a failover group can contain multiple contexts, and each context can contain multiple interfaces,
it is possible for all interfaces in a single context to fail without causing the associated failover group to
fail.
Table 7-3 shows the failover action for each failure event. For each failure event, the policy (whether or
not failover occurs), actions for the active failover group, and actions for the standby failover group are
given.
– To buy the IPS signature subscription you need to have the ASA with IPS pre-installed (the
part number must include “IPS”, for example ASA5515-IPS-K9); you cannot buy the IPS
signature subscription for a non-IPS part number ASA.
– You need the IPS signature subscription on both units; this subscription is not shared in
failover, because it is not an ASA license.
– The IPS signature subscription requires a unique IPS module license per unit. Like other ASA
licenses, the IPS module license is technically shared in the failover cluster license. However,
because of the IPS signature subscription requirements, you must buy a separate IPS module
license for each unit in.
ASAv • Active/Standby—Standard and Premium Licenses.
• Active/Active—No Support.
Note The standby unit requires the same model license as the primary unit; Each unit must have the
same encryption license.
All other models Base License.
Note Each unit must have the same encryption license.
• ASA failover replication fails if you try to make a configuration change in two or more contexts at
the same time. The workaround is to make configuration changes in each context sequentially.
Additional Guidelines and Limitations
• Configuring port security on the switch(es) connected to an ASA failover pair can cause
communication problems when a failover event occurs. This problem occurs when a secure MAC
address configured or learned on one secure port moves to another secure port, a violation is flagged
by the switch port security feature.
• You can monitor up to 250 interfaces on a unit, across all contexts.
• For Active/Active failover, no two interfaces in the same context should be configured in the same
ASR group.
• For Active/Active failover, you can define a maximum of two failover groups.
• For Active/Active failover, when removing failover groups, you must remove failover group 1 last.
Failover group1 always contains the admin context. Any context not assigned to a failover group
defaults to failover group 1. You cannot remove a failover group that has contexts explicitly assigned
to it.
Related Topics
• Auto Update Server Support in Failover Configurations, page 36-42
Procedure
Example:
ciscoasa(config)# failover lan interface folink gigabitethernet0/3
This interface cannot be used for any other purpose (except, optionally, the state link).
The if_name argument assigns a name to the interface.
The interface_id argument can be a physical interface, subinterface, redundant interface, or
EtherChannel interface ID. On the ASASM, the interface_id specifies a VLAN ID.
Step 3 Assign the active and standby IP addresses to the failover link:
failover interface ip failover_if_name {ip_address mask | ipv6_address/prefix} standby
ip_address
Example:
ciscoasa(config)# failover interface ip folink 172.27.48.1 255.255.255.0 standby
172.27.48.2
Or:
ciscoasa(config)# failover interface ip folink 2001:a0a:b00::a0a:b70/64 standby
2001:a0a:b00::a0a:b71
Example:
ciscoasa(config)# interface gigabitethernet 0/3
ciscoasa(config-if)# no shutdown
Step 5 (Optional) Specify the interface you want to use as the state link:
failover link if_name interface_id
Example:
ciscoasa(config)# failover link statelink gigabitethernet0/4
We recommend specifying a separate interface from the failover link or data interfaces.
The if_name argument assigns a name to the interface.
The interface_id argument can be a physical interface, subinterface, redundant interface, or
EtherChannel interface ID. On the ASASM, the interface_id specifies a VLAN ID.
Step 6 If you specified a separate state link, assign the active and standby IP addresses to the state link:
failover interface ip state_if_name {ip_address mask | ipv6_address/prefix} standby
ip_address
Example:
ciscoasa(config)# failover interface ip statelink 172.27.49.1 255.255.255.0 standby
172.27.49.2
Or:
ciscoasa(config)# failover interface ip statelink 2001:a0a:b00:a::a0a:b70/64 standby
2001:a0a:b00:a::a0a:b71
This address should be on an unused subnet, different from the failover link.
The standby IP address must be in the same subnet as the active IP address.
Skip this step if you are sharing the state link.
Step 7 If you specified a separate state link, enables the state link.
interface state_interface_id
no shutdown
Example:
ciscoasa(config)# interface gigabitethernet 0/4
ciscoasa(config-if)# no shutdown
Example:
ciscoasa(config)# failover ipsec pre-shared-key a3rynsun
The key can be up to 128 characters in length. Identify the same key on both units. The key is used
by IKEv2 to establish the tunnels.
If you use a master passphrase (see Configure the Master Passphrase, page 14-10), then the key is
encrypted in the configuration. If you are copying from the configuration (for example, from more
system:running-config output), specify that the key is encrypted by using the 8 keyword. 0 is used
by default, specifying an unencrypted password.
The failover ipsec pre-shared-key shows as ***** in show running-config output; this obscured
key is not copyable.
If you do not configure failover and state link encryption, failover communication, including any
passwords or keys in the configuration that are sent during command replication, will be in clear
text.
You cannot use both IPsec encryption and the legacy failover key encryption. If you configure both
methods, IPsec is used. However, if you use the master passphrase (see Configure the Master
Passphrase, page 14-10), you must first remove the failover key using the no failover key command
before you configure IPsec encryption.
Failover LAN-to-LAN tunnels do not count against the IPsec (Other VPN) license.
• (Optional) Encrypt failover communication on the failover and state links:
failover key [0 | 8] {hex key | shared_secret}
Example:
ciscoasa(config)# failover key johncr1cht0n
Use a shared_secret from 1 to 63 characters or a 32-character hex key. For the shared_secret, you
can use any combination of numbers, letters, or punctuation. The shared secret or hex key is used to
generate the encryption key. Identify the same key on both units.
If you use a master passphrase (see Configure the Master Passphrase, page 14-10), then the shared
secret or hex key is encrypted in the configuration. If you are copying from the configuration (for
example, from more system:running-config output), specify that the shared secret or hex key is
encrypted by using the 8 keyword. 0 is used by default, specifying an unencrypted password.
The failover key shared secret shows as ***** in show running-config output; this obscured key
is not copyable.
If you do not configure failover and state link encryption, failover communication, including any
passwords or keys in the configuration that are sent during command replication, will be in clear
text.
Step 9 Enable failover:
failover
Examples
The following example configures the failover parameters for the primary unit:
failover lan unit primary
failover lan interface folink gigabitethernet0/3
failover interface ip folink 172.27.48.1 255.255.255.0 standby 172.27.48.2
interface gigabitethernet 0/3
no shutdown
failover link statelink gigabitethernet0/4
failover interface ip statelink 172.27.49.1 255.255.255.0 standby 172.27.49.2
interface gigabitethernet 0/4
no shutdown
failover ipsec pre-shared-key a3rynsun
failover
Related Topics
• Chapter 11, “Routed Mode Interfaces,”
• Chapter 12, “Transparent Mode Interfaces.”
Procedure
Step 1 Re-enter the exact same commands as on the primary unit except for the failover lan unit primary
command. You can optionally replace it with the failover lan unit secondary command, but it is not
necessary because secondary is the default setting. See Configure the Primary Unit for Active/Standby
Failover, page 7-25.
For example:
ciscoasa(config)# failover lan interface folink gigabitethernet0/3
INFO: Non-failover interface config is cleared on GigabitEthernet0/3 and its
sub-interfaces
ciscoasa(config)# failover interface ip folink 172.27.48.1 255.255.255.0 standby
172.27.48.2
ciscoasa(config)# interface gigabitethernet 0/3
no shutdown
ciscoasa(config)# failover link statelink gigabitethernet0/4
INFO: Non-failover interface config is cleared on GigabitEthernet0/4 and its
sub-interfaces
ciscoasa(config)# failover interface ip statelink 172.27.49.1 255.255.255.0 standby
172.27.49.2
ciscoasa(config)# interface gigabitethernet 0/4
no shutdown
ciscoasa(config)# failover ipsec pre-shared-key a3rynsun
ciscoasa(config)# failover
Step 2 After the failover configuration syncs, save the configuration to flash memory:
ciscoasa(config)# write memory
Procedure
Example:
ciscoasa(config)# failover lan interface folink gigabitethernet0/3
This interface cannot be used for any other purpose (except, optionally, the state link).
The if_name argument assigns a name to the interface.
The interface_id argument can be a physical interface, subinterface, redundant interface, or
EtherChannel interface ID. On the ASASM, the interface_id specifies a VLAN ID.
Step 3 Assign the active and standby IP addresses to the failover link:
failover interface ip if_name {ip_address mask | ipv6_address/prefix} standby ip_address
Example:
ciscoasa(config)# failover interface ip folink 172.27.48.1 255.255.255.0 standby
172.27.48.2
Or:
ciscoasa(config)# failover interface ip folink 2001:a0a:b00::a0a:b70/64 standby
2001:a0a:b00::a0a:b71
Example:
ciscoasa(config)# interface gigabitethernet 0/3
ciscoasa(config-if)# no shutdown
Step 5 (Optional) Specify the interface you want to use as the state link:
failover link if_name interface_id
Example:
ciscoasa(config)# failover link statelink gigabitethernet0/4
We recommend specifying a separate interface from the failover link or data interfaces.
The if_name argument assigns a name to the interface.
The interface_id argument can be a physical interface, subinterface, redundant interface, or
EtherChannel interface ID. On the ASASM, the interface_id specifies a VLAN ID.
Step 6 If you specified a separate state link, assign the active and standby IP addresses to the state link:
This address should be on an unused subnet, different from the failover link.
The standby IP address must be in the same subnet as the active IP address.
Skip this step if you are sharing the state link.
failover interface ip state_if_name {ip_address mask | ipv6_address/prefix} standby
ip_address
Example:
ciscoasa(config)# failover interface ip statelink 172.27.49.1 255.255.255.0 standby
172.27.49.2
Or:
ciscoasa(config)# failover interface ip statelink 2001:a0a:b00:a::a0a:b70/64 standby
2001:a0a:b00:a::a0a:b71
Step 7 If you specified a separate state link, enable the state link:
interface state_interface_id
no shutdown
Example:
ciscoasa(config)# interface gigabitethernet 0/4
ciscoasa(config-if)# no shutdown
Example:
ciscoasa(config)# failover ipsec pre-shared-key a3rynsun
The key can be up to 128 characters in length. Identify the same key on both units. The key is used
by IKEv2 to establish the tunnels.
If you use a master passphrase (see Configure the Master Passphrase, page 14-10), then the key is
encrypted in the configuration. If you are copying from the configuration (for example, from more
system:running-config output), specify that the key is encrypted by using the 8 keyword. 0 is used
by default, specifying an unencrypted password.
The failover ipsec pre-shared-key shows as ***** in show running-config output; this obscured
key is not copyable.
If you do not configure failover and state link encryption, failover communication, including any
passwords or keys in the configuration that are sent during command replication, will be in clear
text.
You cannot use both IPsec encryption and the legacy failover key encryption. If you configure both
methods, IPsec is used. However, if you use the master passphrase (see Configure the Master
Passphrase, page 14-10), you must first remove the failover key using the no failover key command
before you configure IPsec encryption.
Failover LAN-to-LAN tunnels do not count against the IPsec (Other VPN) license.
• (Optional) Encrypt failover communication on the failover and state links:
failover key [0 | 8] {hex key | shared_secret}
Example:
ciscoasa(config)# failover key johncr1cht0n
By default, this group is assigned to the primary unit. Typically, you assign group 1 to the primary unit,
and group 2 to the secondary unit. If you want a non-standard configuration, you can specify different
unit preferences if desired using the primary or secondary subcommands.
Step 10 Create failover group 2 and assigns it to the secondary unit:
failover group 2
secondary
Step 11 Enter the context configuration mode for a given context, and assign the context to a failover group:
context name
join-failover-group {1 | 2}
Example:
ciscoasa(config)# context Eng
ciscoasa(config-ctx)# join-failover-group 2
write memory
Examples
The following example configures the failover parameters for the primary unit:
failover lan unit primary
failover lan interface folink gigabitethernet0/3
failover interface ip folink 172.27.48.1 255.255.255.0 standby 172.27.48.2
interface gigabitethernet 0/3
no shutdown
failover link statelink gigabitethernet0/4
failover interface ip statelink 172.27.49.1 255.255.255.0 standby 172.27.49.2
interface gigabitethernet 0/4
no shutdown
failover group 1
failover group 2
secondary
context admin
join-failover-group 1
failover ipsec pre-shared-key a3rynsun
failover
Procedure
Step 1 Re-enter the exact same commands as on the primary unit except for the failover lan unit primary
command. You can optionally replace it with the failover lan unit secondary command, but it is not
necessary because secondary is the default setting. You also do not need to enter the failover group and
join-failover-group commands, as they are replicated from the primary unit. See Configure the Primary
Unit for Active/Active Failover, page 7-29.
For example:
ciscoasa(config)# failover lan interface folink gigabitethernet0/3
INFO: Non-failover interface config is cleared on GigabitEthernet0/3 and its
sub-interfaces
ciscoasa(config)# failover interface ip folink 172.27.48.1 255.255.255.0 standby
172.27.48.2
ciscoasa(config)# interface gigabitethernet 0/3
no shutdown
ciscoasa(config)# failover link statelink gigabitethernet0/4
Step 2 After the failover configuration syncs from the primary unit, save the configuration to flash memory:
ciscoasa(config)# write memory
Procedure
Example:
ciscoasa(config)# failover polltime unit msec 200 holdtime msec 800
Example:
ciscoasa(config)# failover replication rate 20000
Step 3 Disable the ability to make any configuration changes directly on the standby unit or context:
By default, configurations on the standby unit/context are allowed with a warning message.
failover standby config-lock
Step 4 (Active/Active mode only) Specify the failover group you want to customize:
failover group {1 | 2}
Example:
ciscoasa(config)# failover group 1
ciscoasa(config-fover-group)#
Step 5 (Active/Active mode only) Configure failover group preemption for failover group 1:
preempt [delay]
Example:
ciscoasa(config-fover-group)# preempt 1200
If one unit boots before the other, then both failover groups become active on that unit, despite the
primary or secondary setting. This command causes the failover group to become active on the
designated unit automatically when that unit becomes available.
You can enter an optional delay value, which specifies the number of seconds the failover group remains
active on the current unit before automatically becoming active on the designated unit. Valid values are
from 1 to 1200.
If Stateful Failover is enabled, the preemption is delayed until the connections are replicated from the
unit on which the failover group is currently active.
Step 6 Enable HTTP state replication:
• For Active/Standby mode:
failover replication http
To allow HTTP connections to be included in the state information replication, you need to enable HTTP
replication. Because HTTP connections are typically short-lived, and because HTTP clients typically
retry failed connection attempts, HTTP connections are not automatically included in the replicated state
information.
Step 7 Set the threshold for failover when interfaces fail:
• For Active/Standby mode:
Example:
ciscoasa (config)# failover interface-policy 20%
Example:
ciscoasa(config-fover-group)# interface-policy 20%
Example:
ciscoasa(config)# failover polltime interface msec 500 holdtime 5
Example:
ciscoasa(config-fover-group)# polltime interface msec 500 holdtime 5
Valid values for poll time are from 1 to 15 seconds or, if the optional msec keyword is used, from 500
to 999 milliseconds. The hold time determines how long it takes from the time a hello packet is missed
to when the interface is marked as failed. Valid values for the hold time are from 5 to 75 seconds. You
cannot enter a hold time that is less than 5 times the poll time.
If the interface link is down, interface testing is not conducted and the standby unit could become active
in just one interface polling period if the number of failed interfaces meets or exceeds the configured
failover criteria.
Step 9 Configure the virtual MAC address for an interface:
• For Active/Standby mode:
failover mac address phy_if active_mac standby_mac
Example:
ciscoasa(config)# failover mac address gigabitethernet0/2 00a0.c969.87c8
00a0.c918.95d8
Example:
ciscoasa(config-fover-group)# mac address gigabitethernet0/2 00a0.c969.87c8
00a0.c918.95d8
The phy_if argument is the physical name of the interface, such as gigabitethernet0/1.
The active_mac and standby_mac arguments are MAC addresses in H.H.H format, where H is a 16-bit
hexadecimal digit. For example, the MAC address 00-0C-F1-42-4C-DE would be entered as
000C.F142.4CDE.
The active_mac address is associated with the active IP address for the interface, and the standby_mac
is associated with the standby IP address for the interface.
You can also set the MAC address using other commands or methods, but we recommend using only one
method. If you set the MAC address using multiple methods, the MAC address used depends on many
variables, and might not be predictable.
Use the show interface command to display the MAC address used by an interface.
Step 10 (Active/Active mode only) Repeat this procedure for the other failover group, if desired.
Step 11
Step 12
•
Step 13
Step 14
•
a.
b.
c.
Procedure
Example:
ciscoasa(config)# monitor-interface inside
ciscoasa(config)# no monitor-interface eng1
If you do not want a hardware module failure, such as the ASA FirePOWER module, to trigger failover,
you can disable module monitoring using the no monitor-interface service-module command.
Note This feature does not provide asymmetric routing; it restores asymmetrically routed packets to the
correct interface.
ISP A ISP B
192.168.1.1 192.168.2.2
192.168.2.1 192.168.1.2
SecAppA SecAppB
Failover/State link
Outbound Traffic
250093
Return Traffic Inside
network
1. An outbound session passes through the ASA with the active SecAppA context. It exits interface
outsideISP-A (192.168.1.1).
2. Because of asymmetric routing configured somewhere upstream, the return traffic comes back
through the interface outsideISP-B (192.168.2.2) on the ASA with the active SecAppB context.
3. Normally the return traffic would be dropped because there is no session information for the traffic
on interface 192.168.2.2. However, the interface is configured as part of ASR group 1. The unit
looks for the session on any other interface configured with the same ASR group ID.
4. The session information is found on interface outsideISP-A (192.168.1.2), which is in the standby
state on the unit with SecAppB. Stateful Failover replicated the session information from SecAppA
to SecAppB.
5. Instead of being dropped, the layer 2 header is rewritten with information for interface 192.168.1.1
and the traffic is redirected out of the interface 192.168.1.2, where it can then return through the
interface on the unit from which it originated (192.168.1.1 on SecAppA). This forwarding continues
as needed until the session ends.
• You cannot configure both ASR groups and traffic zones within a context. If you configure a zone
in a context, none of the context interfaces can be part of an ASR group.
Procedure
Step 1 On the primary unit, specify the interface for which you want to allow asymmetrically routed packets:
interface phy_if
Example:
primary/admin(config)# interface gigabitethernet 0/0
Example:
primary/admin(config-ifc)# asr-group 1
Example:
secondary/ctx1(config)# interface gigabitethernet 0/1
Step 4 Set the ASR group number for the interface to match the primary unit interface:
asr-group num
Example:
secondary/ctx1(config-ifc)# asr-group 1
Examples
The two units have the following configuration (configurations show only the relevant commands). The
device labeled SecAppA in the diagram is the primary unit in the failover pair.
interface GigabitEthernet0/1
description LAN/STATE Failover Interface
interface GigabitEthernet0/2
no shutdown
interface GigabitEthernet0/3
no shutdown
interface GigabitEthernet0/4
no shutdown
interface GigabitEthernet0/5
no shutdown
failover
failover lan unit primary
failover lan interface folink GigabitEthernet0/1
failover link folink
interface GigabitEthernet0/2
nameif outsideISP-A
security-level 0
ip address 192.168.1.1 255.255.255.0 standby 192.168.1.2
asr-group 1
interface GigabitEthernet0/3
nameif inside
security-level 100
ip address 10.1.0.1 255.255.255.0 standby 10.1.0.11
monitor-interface outside
interface GigabitEthernet0/4
nameif outsideISP-B
security-level 0
ip address 192.168.2.2 255.255.255.0 standby 192.168.2.1
asr-group 1
interface GigabitEthernet0/5
nameif inside
security-level 100
ip address 10.2.20.1 255.255.255.0 standby 10.2.20.11
Manage Failover
This section describes how to manage failover units after you enable failover, including how to change
the failover setup and how to force failover from one unit to another.
• Force Failover, page 7-42
• Disable Failover, page 7-42
• Restore a Failed Unit, page 7-43
• Re-Sync the Configuration, page 7-44
• Test the Failover Functionality, page 7-44
• Remote Command Execution, page 7-45
Force Failover
To force the standby unit to become active, perform the following procedure.
Procedure
Step 1 Force a failover when entered on the standby unit. The standby unit becomes the active unit.
If you specify the group group_id, then this command forces a failover when entered on the standby unit
for the specified Active/Active failover group. The standby unit becomes the active unit for the failover
group.
• For Active/Standby mode on the standby unit:
failover active
Example:
standby# failover active group 1
Step 2 Force a failover when entered on the active unit. The active unit becomes the standby unit.
If you specify the group group_id, then this command forces a failover when entered on the active unit
for the specified failover group. The active unit becomes the standby unit for the failover group.
• For Active/Standby mode on the active unit:
no failover active
Example:
active# no failover active group 1
Disable Failover
Disabling failover on one or both units causes the active and standby state of each unit to be maintained
until you reload. For an Active/Active failover pair, the failover groups remain in the active state on
whichever unit they are active, no matter which unit they are configured to prefer.
See the following characteristics when you disable failover:
• The standby unit/context remains in standby mode so that both units do not start passing traffic (this
is called a pseudo-standby state).
• The standby unit/context continues to use its standby IP addresses even though it is no longer
connected to an active unit/context.
• The standby unit/context continues to listen for a connection on the failover link. If failover is
re-enabled on the active unit/context, then the standby unit/context resumes ordinary standby status
after re-synchronizing the rest of its configuration.
• To truly disable failover, save the no failover configuration to the startup configuration, and then
reload.
Procedure
Step 3
Procedure
Example:
ciscoasa(config)# failover reset group 1
Restoring a failed unit to an unfailed state does not automatically make it active; restored units remain
in the standby state until made active by failover (forced or natural). An exception is a failover group
(Active/Active mode only) configured with failover preemption. If previously active, a failover group
becomes active if it is configured with preemption and if the unit on which it failed is the preferred unit.
If you specify the group group_id, this command restores a failed Active/Active failover group to an
unfailed state.
Procedure
Step 1 Test that your active unit is passing traffic as expected by using FTP (for example) to send a file between
hosts on different interfaces.
Step 2 Force a failover by entering the following command on the active unit:
Active/Standby mode:
ciscoasa(config)# no failover active
Active/Active mode:
ciscoasa(config)# no failover active group group_id
Step 3 Use FTP to send another file between the same two hosts.
Step 4 If the test was not successful, enter the show failover command to check the failover status.
Step 5 When you are finished, you can restore the unit to active status by enter the following command on the
newly active unit:
Active/Standby mode:
ciscoasa(config)# no failover active
Active/Active mode:
ciscoasa(config)# failover active group group_id
Note When an ASA interface goes down, for failover it is still considered to be a unit issue. If the ASA detects
that an interface is down, failover occurs immediately, without waiting for the interface holdtime. The
interface holdtime is only useful when the ASA considers its status to be OK, although it is not receiving
hello packets from the peer. To simulate interface holdtime, shut down the VLAN on the switch to
prevent peers from receiving hello packets from each other.
Send a Command
Because configuration commands are replicated from the active unit or context to the standby unit or
context, you can use the failover exec command to enter configuration commands on the correct unit,
no matter which unit you are logged in to. For example, if you are logged in to the standby unit, you can
use the failover exec active command to send configuration changes to the active unit. Those changes
are then replicated to the standby unit. Do not use the failover exec command to send configuration
commands to the standby unit or context; those configuration changes are not replicated to the active
unit and the two configurations will no longer be synchronized.
Output from configuration, exec, and show commands is displayed in the current terminal session, so
you can use the failover exec command to issue show commands on a peer unit and view the results in
the current terminal.
You must have sufficient privileges to execute a command on the local unit to execute the command on
the peer unit.
Procedure
Step 1 If you are in multiple context mode, use the changeto context name command to change to the context
you want to configure. You cannot change contexts on the failover peer with the failover exec command.
Step 2 Use the following command to send commands to he specified failover unit:
ciscoasa(config)# failover exec {active | mate | standby}
Use the active or standby keyword to cause the command to be executed on the specified unit, even if
that unit is the current unit. Use the mate keyword to cause the command to be executed on the failover
peer.
Commands that cause a command mode change do not change the prompt for the current session. You
must use the show failover exec command to display the command mode the command is executed in.
See Change Command Modes, page 7-45 for more information.
For example, if you are logged in to global configuration mode of the active unit of a failover pair, and
you use the failover exec active command to change to interface configuration mode, the terminal
prompt remains in global configuration mode, but commands entered using failover exec are entered in
interface configuration mode.
The following examples show the difference between the terminal session mode and the failover exec
command mode. In the example, the administrator changes the failover exec mode on the active unit to
interface configuration mode for the interface GigabitEthernet0/1. After that, all commands entered
using failover exec active are sent to interface configuration mode for interface GigabitEthernet0/1. The
administrator then uses failover exec active to assign an IP address to that interface. Although the prompt
indicates global configuration mode, the failover exec active mode is in interface configuration mode.
ciscoasa(config)# failover exec active interface GigabitEthernet0/1
ciscoasa(config)# failover exec active ip address 192.168.1.1 255.255.255.0 standby
192.168.1.2
ciscoasa(config)# router rip
ciscoasa(config-router)#
Changing commands modes for your current session to the device does not affect the command mode
used by the failover exec command. For example, if you are in interface configuration mode on the
active unit, and you have not changed the failover exec command mode, the following command would
be executed in global configuration mode. The result would be that your session to the device remains
in interface configuration mode, while commands entered using failover exec active are sent to router
configuration mode for the specified routing process.
ciscoasa(config-if)# failover exec active router ospf 100
ciscoasa(config-if)#
Use the show failover exec command to display the command mode on the specified device in which
commands sent with the failover exec command are executed. The show failover exec command takes
the same keywords as the failover exec command: active, mate, or standby. The failover exec mode
for each device is tracked separately.
For example, the following is sample output from the show failover exec command entered on the
standby unit:
ciscoasa(config)# failover exec active interface GigabitEthernet0/1
ciscoasa(config)# sh failover exec active
Active unit Failover EXEC is at interface sub-command mode
Security Considerations
The failover exec command uses the failover link to send commands to and receive the output of the
command execution from the peer unit. You should enable encryption on the failover link to prevent
eavesdropping or man-in-the-middle attacks.
• Command completion and context help is not available for the commands in the cmd_string
argument.
• In multiple context mode, you can only send commands to the peer context on the peer unit. To send
commands to a different context, you must first change to that context on the unit to which you are
logged in.
• You cannot use the following commands with the failover exec command:
– changeto
– debug (undebug)
• If the standby unit is in the failed state, it can still receive commands from the failover exec
command if the failure is due to a service card failure; otherwise, the remote command execution
will fail.
• You cannot use the failover exec command to switch from privileged EXEC mode to global
configuration mode on the failover peer. For example, if the current unit is in privileged EXEC
mode, and you enter failover exec mate configure terminal, the show failover exec mate output
will show that the failover exec session is in global configuration mode. However, entering
configuration commands for the peer unit using failover exec will fail until you enter global
configuration mode on the current unit.
• You cannot enter recursive failover exec commands, such as failover exec mate failover exec mate
command.
• Commands that require user input or confirmation must use the /nonconfirm option.
Monitoring Failover
• Failover Messages, page 7-47
• Monitoring Failover Status, page 7-48
Failover Messages
When a failover occurs, both ASAs send out system messages.
• Failover Syslog Messages, page 7-47
• Failover Debug Messages, page 7-48
• SNMP Failover Traps, page 7-48
Note During a fail over, failover logically shuts down and then bring up interfaces, generating syslog messages
411001 and 411002. This is normal activity.
Note Because debugging output is assigned high priority in the CPU process, it can drastically affect system
performance. For this reason, use the debug fover commands only to troubleshoot specific problems or
during troubleshooting sessions with Cisco TAC.
IPv6 support for failover added. 8.2(2) We modified the following commands: failover interface
ip, show failover, ipv6 address, show monitor-interface.
Support for IPsec LAN-to-LAN tunnels to 9.1(2) Instead of using the proprietary encryption for the failover
encrypt failover and state link communications key (the failover key command), you can now use an IPsec
LAN-to-LAN tunnel for failover and state link encryption.
Note Failover LAN-to-LAN tunnels do not count against
the IPsec (Other VPN) license.
Disable health monitoring of a hardware 9.3(1) By default, the ASA monitors the health of an installed
module hardware module such as the ASA FirePOWER module. If
you do not want a hardware module failure to trigger
failover, you can disable module monitoring.
We modified the following command: monitor-interface
service-module
Lock configuration changes on the standby unit 9.3(2) You can now lock configuration changes on the standby unit
or standby context in a failover pair (Active/Standby failover) or the standby context
(Active/Active failover) so you cannot make changes on the
standby unit outside normal configuration syncing.
We introduced the following command: failover standby
config-lock
Clustering lets you group multiple ASAs together as a single logical device. A cluster provides all the
convenience of a single device (management, integration into a network) while achieving the increased
throughput and redundancy of multiple devices.
Note Some features are not supported when using clustering. See Unsupported Features with Clustering,
page 8-25.
Related Topics
• Licensing for ASA Clustering, page 8-32
• Cluster Control Link, page 8-5
• ASA Cluster Management, page 8-11
• Spanned EtherChannel (Recommended), page 8-13
• Policy-Based Routing (Routed Firewall Mode Only), page 8-17
• Equal-Cost Multi-Path Routing (Routed Firewall Mode Only), page 8-18
Cluster Members
Cluster members work together to accomplish the sharing of the security policy and traffic flows. This
section describes the nature of each member role.
• Bootstrap Configuration, page 8-3
• Master and Slave Unit Roles, page 8-3
• Master Unit Election, page 8-3
Bootstrap Configuration
On each device, you configure a minimal bootstrap configuration including the cluster name, cluster
control link interface, and other cluster settings. The first unit on which you enable clustering typically
becomes the master unit. When you enable clustering on subsequent units, they join the cluster as slaves.
Related Topics
• Centralized Features for Clustering, page 8-26
Note If multiple units tie for the highest priority, the cluster unit name and then the serial number
is used to determine the master.
4. If a unit later joins the cluster with a higher priority, it does not automatically become the master
unit; the existing master unit always remains as the master unless it stops responding, at which point
a new master unit is elected.
Note You can manually force a unit to become the master. For centralized features, if you force a master unit
change, then all connections are dropped, and you have to re-establish the connections on the new master
unit.
Related Topics
• Centralized Features for Clustering, page 8-26
Cluster Interfaces
You can configure data interfaces as either Spanned EtherChannels or as Individual interfaces. All data
interfaces in the cluster must be one type only.
ten0/8 ten0/9
ASA2
port-channel 5 port-channel 6
ten0/8 ten0/9
Inside Outside
Spanned Spanned
port-channel 1 port-channel 2
10.1.1.1 ASA3
209.165.201.1
ten0/8 ten0/9
ASA4
ten0/8 ten0/9
333361
Note We recommend Spanned EtherChannels instead of Individual interfaces because Individual interfaces
rely on routing protocols to load-balance traffic, and routing protocols often have slow convergence
during a link failure.
ASA3
ASA4
Related Topics
• Load Balancing Methods, page 8-12
Related Topics
• Cluster Members, page 8-3
• Configuration Replication, page 8-11
• Unit Health Monitoring, page 8-9
• Data Path Connection State Replication, page 8-10
• Rebalancing New TCP Connections Across the Cluster, page 8-24
For a 2-member cluster, do not directly-connect the cluster control link from one ASA to the other ASA.
If you directly connect the interfaces, then when one unit fails, the cluster control link fails, and thus the
remaining healthy unit fails. If you connect the cluster control link through a switch, then the cluster
control link remains up for the healthy unit.
Related Topics
• Cluster Control Link Redundancy, page 8-7
• Size the Cluster Control Link, page 8-7
Note If your cluster has large amounts of asymmetric (rebalanced) traffic, then you should increase the cluster
control link size.
Related Topics
• Inter-Site Clustering, page 8-18.
333222
ASA1 ASA2 ASA3
Note When an ASA becomes inactive, all data interfaces are shut down; only the management-only interface
can send and receive traffic. The management interface remains up using the IP address the unit received
from the cluster IP pool. However if you reload, and the unit is still inactive in the cluster, the
management interface is not accessible (because it then uses the Main IP address, which is the same as
the master unit). You must use the console port for any further configuration.
Related Topics
Rejoining the Cluster, page 8-10
Interface Monitoring
Each unit monitors the link status of all hardware interfaces in use, and reports status changes to the
master unit.
• Spanned EtherChannel—Uses cluster Link Aggregation Control Protocol (cLACP). Each unit
monitors the link status and the cLACP protocol messages to determine if the port is still active in
the EtherChannel. The status is reported to the master unit.
• Individual interfaces (Routed mode only)—Each unit self-monitors its interfaces and reports
interface status to the master unit.
Note When an ASA becomes inactive and fails to automatically rejoin the cluster, all data interfaces are shut
down; only the management-only interface can send and receive traffic. The management interface
remains up using the IP address the unit received from the cluster IP pool. However if you reload, and
the unit is still inactive in the cluster, the management interface is not accessible (because it then uses
the Main IP address, which is the same as the master unit). You must use the console port for any further
configuration.
Related Topics
Rejoining the Cluster, page 8-10
Related Topics
• Configure the Master Unit Bootstrap Settings, page 8-47
Configuration Replication
All units in the cluster share a single configuration. Except for the initial bootstrap configuration, you
can only make configuration changes on the master unit, and changes are automatically replicated to all
other units in the cluster.
Management Network
We recommend connecting all units to a single management network. This network is separate from the
cluster control link.
Management Interface
For the management interface, we recommend using one of the dedicated management interfaces. You
can configure the management interfaces as Individual interfaces (for both routed and transparent
modes) or as a Spanned EtherChannel interface.
We recommend using Individual interfaces for management, even if you use Spanned EtherChannels for
your data interfaces. Individual interfaces let you connect directly to each unit if necessary, while a
Spanned EtherChannel interface only allows remote connection to the current master unit.
Note If you use Spanned EtherChannel interface mode, and configure the management interface as an
Individual interface, you cannot enable dynamic routing for the management interface. You must use a
static route.
For an Individual interface, the Main cluster IP address is a fixed address for the cluster that always
belongs to the current master unit. For each interface, you also configure a range of addresses so that
each unit, including the current master, can use a Local address from the range. The Main cluster IP
address provides consistent management access to an address; when a master unit changes, the Main
cluster IP address moves to the new master unit, so management of the cluster continues seamlessly. The
Local IP address is used for routing, and is also useful for troubleshooting.
For example, you can manage the cluster by connecting to the Main cluster IP address, which is always
attached to the current master unit. To manage an individual member, you can connect to the Local IP
address.
For outbound management traffic such as TFTP or syslog, each unit, including the master unit, uses the
Local IP address to connect to the server.
For a Spanned EtherChannel interface, you can only configure one IP address, and that IP address is
always attached to the master unit. You cannot connect directly to a slave unit using the EtherChannel
interface; we recommend configuring the management interface as an Individual interface so that you
can connect to each unit. Note that you can use a device-local EtherChannel for management.
Related Topics
• Chapter 34, “Digital Certificates.”
The EtherChannel method of load-balancing is recommended over other methods for the following
benefits:
• Faster failure discovery.
• Faster convergence time. Individual interfaces rely on routing protocols to load-balance traffic, and
routing protocols often have slow convergence during a link failure.
• Ease of configuration.
Related Topics
EtherChannels, page 9-5
Load Balancing
The EtherChannel link is selected using a proprietary hash algorithm, based on source or destination IP
addresses and TCP and UDP port numbers.
Note On the ASA, do not change the load-balancing algorithm from the default. On the switch, we recommend
that you use one of the following algorithms: source-dest-ip or source-dest-ip-port (see the Cisco
Nexus OS or Cisco IOS port-channel load-balance command). Do not use a vlan keyword in the
load-balance algorithm because it can cause unevenly distributed traffic to the ASAs in a cluster.
Related Topics
• Customize the EtherChannel, page 9-20
• Load Balancing, page 9-7
• NAT and Clustering, page 8-29
EtherChannel Redundancy
The EtherChannel has built-in redundancy. It monitors the line protocol status of all links. If one link
fails, traffic is re-balanced between remaining links. If all links in the EtherChannel fail on a particular
unit, but other units are still active, then the unit is removed from the cluster.
You can include multiple interfaces per ASA in the Spanned EtherChannel. Multiple interfaces per ASA
are especially useful for connecting to both switches in a VSS or vPC.
Depending on your switches, you can configure up to 32 active links in the spanned EtherChannel. This
feature requires both switches in the vPC to support EtherChannels with 16 active links each (for
example the Cisco Nexus 7000 with F2-Series 10 Gigabit Ethernet Module).
For switches that support 8 active links in the EtherChannel, you can configure up to 16 active links in
the spanned EtherChannel when connecting to two switches in a VSS/vPC.
If you want to use more than 8 active links in a spanned EtherChannel, you cannot also have standby
links; the support for 9 to 32 active links requires you to disable cLACP dynamic port priority that allows
the use of standby links. You can still use 8 active links and 8 standby links if desired, for example, when
connecting to a single switch.
The following figure shows a 32 active link spanned EtherChannel in an 8-ASA cluster and a 16-ASA
cluster.
Router or Router or
Access Switch Access Switch
ASA1 ASA1
371128
ASA8
ASA16
The following figure shows a 16 active link spanned EtherChannel in a 4-ASA cluster and an 8-ASA
cluster.
Router or Router or
Access Switch Access Switch
ASA1 ASA1
ASA2
ASA3
port-channel1 port-channel1 port-channel1 port-channel1
ASA4
371127
ASA8
The following figure shows a traditional 8 active/8 standby link spanned EtherChannel in a 4-ASA
cluster and an 8-ASA cluster. The active links are shown as solid lines, while the inactive links are
dotted. cLACP load-balancing can automatically choose the best 8 links to be active in the EtherChannel.
As shown, cLACP helps achieve load balancing at the link level.
Router or Router or
Access Switch Access Switch
ASA1 ASA1
ASA2
ASA3
port-channel1 port-channel1 port-channel1 port-channel1
ASA4
333215
ASA8
Note If you use this method of load-balancing, you can use a device-local EtherChannel as an Individual
interface.
Note If you use this method of load-balancing, you can use a device-local EtherChannel as an Individual
interface.
Inter-Site Clustering
For inter-site installations, you can take advantage of ASA clustering as long as you follow these
guidelines.
• Inter-Site Clustering Guidelines, page 8-18
• Sizing the Data Center Interconnect, page 8-19
• Inter-Site Examples, page 8-20
Firewall Mode
Interface Mode Routed Transparent
Individual Interface Yes N/A
Spanned EtherChannel No Yes
• The cluster control link latency must be less than 20 ms round-trip time (RTT).
• The cluster control link must be reliable, with no out-of-order or dropped packets; for example, you
should use a dedicated link.
• Do not configure connection rebalancing; you do not want connections rebalanced to cluster
members at a different site.
• The cluster implementation does not differentiate between members at multiple sites; therefore,
connection roles for a given connection may span across sites. This is expected behavior.
• For transparent mode, if the cluster is placed between a pair of inside and outside routers (AKA
North-South insertion), you must ensure that both inside routers share a MAC address, and also that
both outside routers share a MAC address. When a cluster member at site 1 forwards a connection
to a member at site 2, the destination MAC address is preserved. The packet will only reach the
router at site 2 if the MAC address is the same as the router at site 1.
• For transparent mode, if the cluster is placed between data networks and the gateway router at each
site for firewalling between internal networks (AKA East-West insertion), then each gateway router
should use a First Hop Redundancy Protocol (FHRP) such as HSRP to provide identical virtual IP
and MAC address destinations at each site. The data VLANs are extended across the sites using
Overlay Transport Virtualization (OTV), or something similar. You need to create filters to prevent
traffic that is destined to the local gateway router from being sent over the DCI to the other site. If
the gateway router becomes unreachable at one site, you need to remove any filters so traffic can
successfully reach the other site’s gateway.
Related Topics
• Rebalancing New TCP Connections Across the Cluster, page 8-24
• Connection Roles, page 8-23
If the number of members differs at each site, use the larger number for your calculation. The minimum
bandwidth for the DCI should not be less than the size of the cluster control link for one member.
For example:
• For 4 members at 2 sites:
– 4 cluster members total
– 2 members at each site
– 5 Gbps cluster control link per member
Reserved DCI bandwidth = 5 Gbps (2/2 x 5 Gbps).
• For 8 members at 2 sites, the size increases:
– 8 cluster members total
– 4 members at each site
– 5 Gbps cluster control link per member
Reserved DCI bandwidth = 10 Gbps (4/2 x 5 Gbps).
• For 6 members at 3 sites:
– 6 cluster members total
– 3 members at site 1, 2 members at site 2, and 1 member at site 3
– 10 Gbps cluster control link per member
Reserved DCI bandwidth = 15 Gbps (3/2 x 10 Gbps).
Inter-Site Examples
The following examples show supported cluster deployments.
• Individual Interface Routed Mode North-South Inter-Site Example, page 8-20
• Spanned EtherChannel Transparent Mode North-South Inter-Site Example, page 8-21
• Spanned EtherChannel Transparent Mode East-West Inter-Site Example, page 8-22
The following example shows 2 ASA cluster members at each of 2 data centers placed between inside
and outside routers (North-South insertion). The cluster members are connected by the cluster control
link over the DCI. The inside and outside routers at each data center use OSPF and PBR or ECMP to
load balance the traffic between cluster members. By assigning a higher cost route across the DCI, traffic
stays within each data center unless all ASA cluster members at a given site go down. In the event of a
failure of all cluster members at one site, traffic goes from each router over the DCI to the ASA cluster
members at the other site.
Internet
Router Router
OSPF OSPF
Higher cost route Higher cost route
Outside Outside
Data Center
Interconnect
Inside Inside
OSPF OSPF
Higher cost route Higher cost route
370998
Router Router
Data Center 1 Data Center 2
The following example shows 2 ASA cluster members at each of 2 data centers placed between inside
and outside routers (North-South insertion). The cluster members are connected by the cluster control
link over the DCI. The cluster members at each site connect to the local switches using spanned
EtherChannels for the inside and outside. Each ASA EtherChannel is spanned across all ASAs in the
cluster.
The inside and outside routers at each data center use OSPF, which is passed through the transparent
ASAs. Unlike MACs, router IPs are unique on all routers. By assigning a higher cost route across the
DCI, traffic stays within each data center unless all ASA cluster members at a given site go down. The
lower cost route through the ASAs must traverse the same bridge group at each site for the cluster to
maintain asymmetric connections. In the event of a failure of all cluster members at one site, traffic goes
from each router over the DCI to the ASA cluster members at the other site.
Internet
Router Router
OSPF OSPF
Higher cost route Spanned Higher cost route
EtherChannel
Outside Outside
OSPF PASSTHROUGH
OSPF PASSTHROUGH
ASA1 ASA2 ASA3 ASA4
Data Center
Interconnect
Cluster Cluster
Control Control
Inside Inside
Spanned
EtherChannel
OSPF OSPF
Higher cost route Higher cost route
The following example shows 2 ASA cluster members at each of 2 data centers placed between the
gateway router and two inside networks at each site, the App network and the DB network (East-West
insertion). The cluster members are connected by the cluster control link over the DCI. The cluster
members at each site connect to the local switches using spanned EtherChannels for both the App and
DB networks on the inside and outside. Each ASA EtherChannel is spanned across all ASAs in the
cluster.
The gateway router at each site uses an FHRP such as HSRP to provide the same destination virtual MAC
and IP addresses at each site. The data VLANs are extended between the sites using Overlay Transport
Virtualization (OTV) (or something similar). You must add filters to prevent traffic from traversing the
DCI to the other site when the traffic is destined for the gateway router. If the gateway router at one site
becomes unreachable, you must remove the filters so traffic can be sent to the other site’s gateway router.
Internet
Spanned EtherChannel
DB NW DB NW
Spanned EtherChannel
ASA Cluster
Spanned EtherChannel
Data Center
Interconnect
App NW App NW
Switch Switch
Data Center 1 Data Center 2
See Spanned EtherChannel Transparent Mode North-South Inter-Site Example, page 8-21 for
information about vPC/VSS options.
Connection Roles
There are 3 different ASA roles defined for each connection:
• Owner—The unit that initially receives the connection. The owner maintains the TCP state and
processes packets. A connection has only one owner.
• Director—The unit that handles owner lookup requests from forwarders and also maintains the
connection state to serve as a backup if the owner fails. When the owner receives a new connection,
it chooses a director based on a hash of the source/destination IP address and TCP ports, and sends
a message to the director to register the new connection. If packets arrive at any unit other than the
owner, the unit queries the director about which unit is the owner so it can forward the packets. A
connection has only one director.
• Forwarder—A unit that forwards packets to the owner. If a forwarder receives a packet for a
connection it does not own, it queries the director for the owner, and then establishes a flow to the
owner for any other packets it receives for this connection. The director can also be a forwarder.
Note that if a forwarder receives the SYN-ACK packet, it can derive the owner directly from a SYN
cookie in the packet, so it does not need to query the director. (If you disable TCP sequence
randomization, the SYN cookie is not used; a query to the director is required.) For short-lived flows
such as DNS and ICMP, instead of querying, the forwarder immediately sends the packet to the
director, which then sends them to the owner. A connection can have multiple forwarders; the most
efficient throughput is achieved by a good load-balancing method where there are no forwarders and
all packets of a connection are received by the owner.
Related Topics
• Load Balancing Methods, page 8-12
Owner
1. SYN 1. SYN
SYN/ACK
3.
update
4. State
SY
Server
N/
AC
K
Inside Outside
Director
Client
2. SYN/ACK
After step 4, all
remaining packets
are forwarded
directly to the owner. Forwarder
333480
Cluster
1. The SYN packet originates from the client and is delivered to an ASA (based on the load balancing
method), which becomes the owner. The owner creates a flow, encodes owner information into a
SYN cookie, and forwards the packet to the server.
2. The SYN-ACK packet originates from the server and is delivered to a different ASA (based on the
load balancing method). This ASA is the forwarder.
3. Because the forwarder does not own the connection, it decodes owner information from the SYN
cookie, creates a forwarding flow to the owner, and forwards the SYN-ACK to the owner.
4. The owner sends a state update to the director, and forwards the SYN-ACK to the client.
5. The director receives the state update from the owner, creates a flow to the owner, and records the
TCP state information as well as the owner. The director acts as the backup owner for the
connection.
6. Any subsequent packets delivered to the forwarder will be forwarded to the owner.
7. If packets are delivered to any additional units, it will query the director for the owner and establish
a flow.
8. Any state change for the flow results in a state update from the owner to the director.
Note Traffic for centralized features is forwarded from member units to the master unit over the cluster control
link.
If you use the rebalancing feature, traffic for centralized features may be rebalanced to non-master units
before the traffic is classified as a centralized feature; if this occurs, the traffic is then sent back to the
master unit.
For centralized features, if the master unit fails, all connections are dropped, and you have to re-establish
the connections on the new master unit.
• Site-to-site VPN
• The following application inspections:
– DCERPC
– NetBIOS
– PPTP
– RADIUS
– RSH
– SUNRPC
– TFTP
– XDMCP
• Dynamic routing (Spanned EtherChannel mode only)
• Multicast routing (Individual interface mode only)
• Static route monitoring
• IGMP multicast control plane protocol processing (data plane forwarding is distributed across the
cluster)
• PIM multicast control plane protocol processing (data plane forwarding is distributed across the
cluster)
• Authentication and Authorization for network access. Accounting is decentralized.
• Filtering Services
Related Topics
• Size the Cluster Control Link, page 8-7
• Rebalancing New TCP Connections Across the Cluster, page 8-24
• QoS—The QoS policy is synced across the cluster as part of configuration replication. However, the
policy is enforced on each unit independently. For example, if you configure policing on output, then
the conform rate and conform burst values are enforced on traffic exiting a particular ASA. In a
cluster with 8 units and with traffic evenly distributed, the conform rate actually becomes 8 times
the rate for the cluster.
• Threat detection—Threat detection works on each unit independently; for example, the top statistics
is unit-specific. Port scanning detection, for example, does not work because scanning traffic will
be load-balanced between all units, and one unit will not see all traffic.
• Resource management—Resource management in multiple context mode is enforced separately on
each unit based on local usage.
• ASA FirePOWER module—There is no configuration sync or state sharing between ASA
FirePOWER modules. You are responsible for maintaining consistent policies on the ASA
FirePOWER modules in the cluster using FireSIGHT Management Center. Do not use different
ASA-interface-based zone definitions for devices in the cluster.
• ASA IPS module—There is no configuration sync or state sharing between IPS modules. Some IPS
signatures require IPS to keep the state across multiple connections. For example, the port scanning
signature is used when the IPS module detects that someone is opening many connections to one
server but with different ports. In clustering, those connections will be balanced between multiple
ASA devices, each of which has its own IPS module. Because these IPS modules do not share state
information, the cluster may not be able to detect port scanning as a result.
In Spanned EtherChannel mode, the routing process only runs on the master unit, and routes are learned
through the master unit and replicated to slaves. If a routing packet arrives at a slave, it is redirected to
the master unit.
Router A
Cluster members
285895
Router B
After the slave members learn the routes from the master unit, each unit makes forwarding decisions
independently.
The OSPF LSA database is not synchronized from the master unit to slave units. If there is a master unit
switchover, the neighboring router will detect a restart; the switchover is not transparent. The OSPF
process picks an IP address as its router ID. Although not required, you can assign a static router ID to
ensure a consistent router ID is used across the cluster. See the OSPF Non-Stop Forwarding feature to
address the interruption.
In Individual interface mode, each unit runs the routing protocol as a standalone router, and routes are
learned by each unit independently.
Router A
Cluster Members
285896
Router B
In the above diagram, Router A learns that there are 4 equal-cost paths to Router B, each through an
ASA. ECMP is used to load balance traffic between the 4 paths. Each ASA picks a different router ID
when talking to external routers.
You must configure a cluster pool for the router ID so that each unit has a separate router ID.
In Spanned EtherChannel mode, the master unit handles all multicast routing packets and data packets
until fast-path forwarding is established. After the connection is established, each slave can forward
multicast data packets.
In Individual interface mode, units do not act independently with multicast. All data and routing packets
are processed and forwarded by the master unit, thus avoiding packet replication.
If you still want to use NAT in clustering, then consider the following guidelines:
• No Proxy ARP—For Individual interfaces, a proxy ARP reply is never sent for mapped addresses.
This prevents the adjacent router from maintaining a peer relationship with an ASA that may no
longer be in the cluster. The upstream router needs a static route or PBR with Object Tracking for
the mapped addresses that points to the Main cluster IP address. This is not an issue for a Spanned
EtherChannel, because there is only one IP address associated with the cluster interface.
• No interface PAT on an Individual interface—Interface PAT is not supported for Individual
interfaces.
• NAT pool address distribution for dynamic PAT—The master unit evenly pre-distributes addresses
across the cluster. If a member receives a connection and they have no addresses left, the connection
is dropped, even if other members still have addresses available. Make sure to include at least as
many NAT addresses as there are units in the cluster to ensure that each unit receives an address.
Use the show nat pool cluster command to see the address allocations.
• No round-robin—Round-robin for a PAT pool is not supported with clustering.
• Dynamic NAT xlates managed by the master unit—The master unit maintains and replicates the
xlate table to slave units. When a slave unit receives a connection that requires dynamic NAT, and
the xlate is not in the table, it requests the xlate from the master unit. The slave unit owns the
connection.
• Per-session PAT feature—Although not exclusive to clustering, the per-session PAT feature
improves the scalability of PAT and, for clustering, allows each slave unit to own PAT connections;
by contrast, multi-session PAT connections have to be forwarded to and owned by the master unit.
By default, all TCP traffic and UDP DNS traffic use a per-session PAT xlate. For traffic that requires
multi-session PAT, such as H.323, SIP, or Skinny, you can disable per-session PAT. For more
information about per-session PAT, see the firewall configuration guide.
• No static PAT for the following inspections—
– FTP
– PPTP
– RSH
– SQLNET
– TFTP
– XDMCP
– All Voice-over-IP applications
Related Topics
• Include the Device ID in Non-EMBLEM Format Syslog Messages, page 39-16
VPN functionality is limited to the master unit and does not take advantage of the cluster high
availability capabilities. If the master unit fails, all existing VPN connections are lost, and VPN users
will see a disruption in service. When a new master is elected, you must reestablish the VPN
connections.
When you connect a VPN tunnel to a Spanned EtherChannel address, connections are automatically
forwarded to the master unit. For connections to an Individual interface when using PBR or ECMP, you
must always connect to the Main cluster IP address, not a Local address.
VPN-related keys and certificates are replicated to all units.
Switch Prerequisites
• Be sure to complete the switch configuration before you configure clustering on the ASAs.
ASA Prerequisites
• Provide each unit with a unique IP address before you join them to the management network.
– See the Getting Started chapter for more information about connecting to the ASA and setting
the management IP address.
– Except for the IP address used by the master unit (typically the first unit you add to the cluster),
these management IP addresses are for temporary use only.
– After a slave joins the cluster, its management interface configuration is replaced by the one
replicated from the master unit.
• To use jumbo frames on the cluster control link (recommended), you must enable Jumbo Frame
Reservation before you enable clustering.
Other Prerequisites
We recommend using a terminal server to access all cluster member unit console ports. For initial setup,
and ongoing management (for example, when a unit goes down), a terminal server is useful for remote
management.
Related Topics
• Guidelines for ASA Clustering, page 8-33
• Enable Jumbo Frame Support, page 9-22
• Bootstrap Configuration, page 8-3
Firewall Mode
For single mode, the firewall mode must match on all units.
Failover
Failover is not supported with clustering.
IPv6
The cluster control link is only supported using IPv4.
Models
Supported on:
• ASA 5585-X
For the ASA 5585-X with SSP-10 and SSP-20, which include two Ten Gigabit Ethernet interfaces,
we recommend using one interface for the cluster control link, and the other for data (you can use
subinterfaces for data). Although this setup does not accommodate redundancy for the cluster
control link, it does satisfy the need to size the cluster control link to match the size of the data
interfaces.
• ASA 5512-X, ASA 5515-X, ASA 5525-X, ASA 5545-X, and ASA 5555-X
Switches
• On the switch(es) for the cluster control link interfaces, you can optionally enable Spanning Tree
PortFast on the switch ports connected to the ASA to speed up the join process for new units.
• When you see slow bundling of a Spanned EtherChannel on the switch, you can enable LACP rate
fast for an Individual interface on the switch.
• On the switch, we recommend that you use one of the following EtherChannel load-balancing
algorithms: source-dest-ip or source-dest-ip-port (see the Cisco Nexus OS and Cisco IOS
port-channel load-balance command). Do not use a vlan keyword in the load-balance algorithm
because it can cause unevenly distributed traffic to the ASAs in a cluster. Do not change the
load-balancing algorithm from the default on the ASA (in the port-channel load-balance
command).
• If you change the load-balancing algorithm of the EtherChannel on the switch, the EtherChannel
interface on the switch temporarily stops forwarding traffic, and the Spanning Tree Protocol restarts.
There will be a delay before traffic starts flowing again.
• You should disable the LACP Graceful Convergence feature on all cluster-facing EtherChannel
interfaces for Cisco Nexus switches.
• Some switches do not support dynamic port priority with LACP (active and standby links). You can
disable dynamic port priority to provide better compatibility with spanned EtherChannels.
• Network elements on the cluster control link path should not verify the L4 checksum. Redirected
traffic over the cluster control link does not have a correct L4 checksum. Switches that verify the L4
checksum could cause traffic to be dropped.
• Port-channel bundling downtime should not exceed the configured keepalive interval.
• On Supervisor 2T EtherChannels, the default hash distribution algorithm is adaptive. To avoid
asymmetric traffic in a VSS design, change the hash algorithm on the port-channel connected to the
ASA to fixed:
router(config)# port-channel id hash-distribution fixed
Do not change the algorithm globally; you may want to take advantage of the adaptive algorithm for
the VSS peer link.
EtherChannels
• The ASA does not support connecting an EtherChannel to a switch stack. If the ASA EtherChannel
is connected cross stack, and if the master switch is powered down, then the EtherChannel connected
to the remaining switch will not come up.
• Spanned vs. Device-Local EtherChannel Configuration—Be sure to configure the switch
appropriately for Spanned EtherChannels vs. Device-local EtherChannels.
– Spanned EtherChannels—For ASA Spanned EtherChannels, which span across all members of
the cluster, the interfaces are combined into a single EtherChannel on the switch. Make sure
each interface is in the same channel group on the switch.
Switch Switch
RIGHT WRONG
VLAN 101 Spanned Data Ifc ASA1 VLAN 101 Spanned Data Ifc ASA1
port-ch1 port-ch1 port-ch1 port-ch1
ten0/6 ten0/6
ASA2 ASA2
port-ch2
ten0/6 ten0/6
ASA3 ASA3
port-ch3
ten0/6 ten0/6
ASA4 ASA4
port-ch4
ten0/6 ten0/6
334621
– Device-local EtherChannels—For ASA Device-local EtherChannels including any
EtherChannels configured for the cluster control link, be sure to configure discrete
EtherChannels on the switch; do not combine multiple ASA EtherChannels into one
EtherChannel on the switch.
Switch Switch
RIGHT WRONG
VLAN 101 Cluster Control Link VLAN 101 Cluster Control Link
port-ch1 port-ch1 ASA1 port-ch1 port-ch1 ASA1
ten0/6 ten0/6
ten0/7 ten0/7
333358
Additional Guidelines
• When significant topology changes occur (such as adding or removing an EtherChannel interface,
enabling or disabling an interface on the ASA or the switch, adding an additional switch to form a
VSS or vPC) you should disable the health check feature. When the topology change is complete,
and the configuration change is synced to all units, you can re-enable the health check feature.
• When adding a unit to an existing cluster, or when reloading a unit, there will be a temporary, limited
packet/connection drop; this is expected behavior. In some cases, the dropped packets can hang your
connection; for example, dropping a FIN/ACK packet for an FTP connection will make the FTP
client hang. In this case, you need to reestablish the FTP connection.
• If you use a Windows 2003 server connected to a Spanned EtherChannel, when the syslog server
port is down and the server does not throttle ICMP error messages, then large numbers of ICMP
messages are sent back to the ASA cluster. These messages can result in some units of the ASA
cluster experiencing high CPU, which can affect performance. We recommend that you throttle
ICMP error messages.
Related Topics
• Size the Cluster Control Link, page 8-7
• Bootstrap Configuration, page 8-3
• Unsupported Features with Clustering, page 8-25
• Configure an EtherChannel, page 9-18
Step 1 Complete all pre-configuration on the switches and ASAs according to Prerequisites for ASA
Clustering, page 8-32 and Guidelines for ASA Clustering, page 8-33.
Step 2 Cable the Cluster Units and Configure Upstream and Downstream Equipment, page 8-37.
Step 3 Configure the Cluster Interface Mode on Each Unit, page 8-39. You can only configure one type of
interface for clustering: Spanned EtherChannels or Individual interfaces.
Step 4 Configure Interfaces on the Master Unit, page 8-40. You cannot enable clustering if the interfaces are
not cluster-ready.
Step 5 Configure the Master Unit Bootstrap Settings, page 8-47.
Step 6 Configure Slave Unit Bootstrap Settings, page 8-52.
Step 7 Configure the security policy on the master unit. See the chapters in this guide to configure supported
features on the master unit. The configuration is replicated to the slave units.
Cable the Cluster Units and Configure Upstream and Downstream Equipment
Before configuring clustering, cable the cluster control link network, management network, and data
networks.
Note At a minimum, an active cluster control link network is required before you configure the units to join
the cluster.
You should also configure the upstream and downstream equipment. For example, if you use
EtherChannels, then you should configure the upstream and downstream equipment for the
EtherChannels.
Examples
Note This example uses EtherChannels for load-balancing. If you are using PBR or ECMP, your switch
configuration will differ.
man0/0
man0/0
man0/0
ten0/6
ten0/7
ten0/8
ten0/9
ten0/6
ten0/7
ten0/8
ten0/9
ten0/6
ten0/7
ten0/8
ten0/9
ten0/6
ten0/7
ten0/8
ten0/9
Cluster
Control Link
port-ch1 port-ch1 port-ch1 port-ch1
port-ch2
port-ch2.200 Inside VLAN 200
port-ch2.201 Outside VLAN 201
port-ch5
333150
Procedure
Step 1 Show any incompatible configuration so that you can force the interface mode and fix your configuration
later; the mode is not changed with this command:
cluster interface-mode {individual | spanned} check-details
Example:
ciscoasa(config)# cluster interface-mode spanned check-details
Example:
ciscoasa(config)# cluster interface-mode spanned force
There is no default setting; you must explicitly choose the mode. If you have not set the mode, you
cannot enable clustering.
The force option changes the mode without checking your configuration for incompatible settings. You
need to manually fix any configuration issues after you change the mode. Because any interface
configuration can only be fixed after you set the mode, we recommend using the force option so that you
can at least start from the existing configuration. You can re-run the check-details option after you set
the mode for more guidance.
Without the force option, if there is any incompatible configuration, you are prompted to clear your
configuration and reload, thus requiring you to connect to the console port to reconfigure your
management access. If your configuration is compatible (rare), the mode is changed and the
configuration is preserved. If you do not want to clear your configuration, you can exit the command by
typing n.
To remove the interface mode, enter the no cluster interface-mode command.
Related Topics
• Cluster Interfaces, page 8-4
Procedure
Step 1 Configure a pool of Local IP addresses (IPv4 and/or IPv6), one of which will be assigned to each cluster
unit for the interface:
(IPv4)
ip local pool poolname first-address—last-address [mask mask]
(IPv6)
ipv6 local pool poolname ipv6-address/prefix-length number_of_addresses
Example:
ciscoasa(config)# ip local pool ins 192.168.1.2-192.168.1.9
ciscoasa(config-if)# ipv6 local pool insipv6 2001:DB8::1002/32 8
Include at least as many addresses as there are units in the cluster. If you plan to expand the cluster,
include additional addresses. The Main cluster IP address that belongs to the current master unit is not
a part of this pool; be sure to reserve an IP address on the same network for the Main cluster IP address.
You cannot determine the exact Local address assigned to each unit in advance; to see the address used
on each unit, enter the show ip[v6] local pool poolname command. Each cluster member is assigned a
member ID when it joins the cluster. The ID determines the Local IP used from the pool.
Step 2 Enter interface configuration mode:
interface interface_id
Example:
ciscoasa(config)# interface tengigabitethernet 0/8
Step 3 (Management interface only) Set an interface to management-only mode so that it does not pass through
traffic:
management-only
By default, Management type interfaces are configured as management-only. In transparent mode, this
command is always enabled for a Management type interface.
This setting is required if the cluster interface mode is Spanned.
Example:
ciscoasa(config-if)# nameif inside
The name is a text string up to 48 characters, and is not case-sensitive. You can change the name by
reentering this command with a new value.
Step 5 Set the Main cluster IP address and identifies the cluster pool:
(IPv4)
ip address ip_address [mask] cluster-pool poolname
(IPv6)
ipv6 address ipv6-address/prefix-length cluster-pool poolname
Example:
ciscoasa(config-if)# ip address 192.168.1.1 255.255.255.0 cluster-pool ins
ciscoasa(config-if)# ipv6 address 2001:DB8::1002/32 cluster-pool insipv6
This IP address must be on the same network as the cluster pool addresses, but not be part of the pool.
You can configure an IPv4 and/or an IPv6 address.
DHCP, PPPoE, and IPv6 autoconfiguration are not supported; you must manually configure the IP
addresses.
Step 6 Set the security level, where number is an integer between 0 (lowest) and 100 (highest):
security-level number
Example:
ciscoasa(config-if)# security-level 100
Examples
The following example configures the Management 0/0 and Management 0/1 interfaces as a device-local
EtherChannel, and then configures the EtherChannel as an Individual interface:
ip local pool mgmt 10.1.1.2-10.1.1.9
ipv6 local pool mgmtipv6 2001:DB8:45:1002/64 8
interface port-channel 1
nameif management
ip address 10.1.1.1 255.255.255.0 cluster-pool mgmt
ipv6 address 2001:DB8:45:1001/64 cluster-pool mgmtipv6
security-level 100
management-only
Related Topics
• Management Interface, page 8-11
• Configure the Cluster Interface Mode on Each Unit, page 8-39
• Load Balancing Methods, page 8-12
• Configure an EtherChannel, page 9-18
• Configure a Redundant Interface, page 9-16
• Configure VLAN Subinterfaces and 802.1Q Trunking, page 9-21
• Security Levels, page 11-1
Procedure
Step 1 Specify the interface you want to add to the channel group:
interface physical_interface
Example:
ciscoasa(config)# interface gigabitethernet 0/0
The physical_interface ID includes the type, slot, and port number as type slot/port. This first interface
in the channel group determines the type and speed for all other interfaces in the group.
Step 2 Assign this interface to an EtherChannel:
channel-group channel_id mode active [vss-id {1 | 2}]
Example:
ciscoasa(config-if)# channel-group 1 mode active
The channel_id is between 1 and 48. If the port-channel interface for this channel ID does not yet exist
in the configuration, one will be added automatically:
interface port-channel channel_id
Step 4 (Optional) Add additional interfaces to the EtherChannel by repeating Step 1 through Step 3.
Example:
ciscoasa(config)# interface gigabitethernet 0/1
ciscoasa(config-if)# channel-group 1 mode active
ciscoasa(config-if)# no shutdown
Multiple interfaces in the EtherChannel per unit are useful for connecting to switches in a VSS or vPC.
Keep in mind that by default, a spanned EtherChannel can have only 8 active interfaces out of 16
maximum across all members in the cluster; the remaining 8 interfaces are on standby in case of link
failure. To use more than 8 active interfaces (but no standby interfaces), disable dynamic port priority
using the clacp static-port-priority command. When you disable dynamic port priority, you can use up
to 32 active links across the cluster. For example, for a cluster of 16 ASAs, you can use a maximum of
2 interfaces on each ASA, for a total of 32 interfaces in the spanned EtherChannel.
Step 5 Specify the port-channel interface:
interface port-channel channel_id
Example:
ciscoasa(config)# interface port-channel 1
This interface was created automatically when you added an interface to the channel group.
Step 6 Set this EtherChannel as a Spanned EtherChannel:
port-channel span-cluster [vss-load-balance]
Example:
ciscoasa(config-if)# port-channel span-cluster
If you are connecting the ASA to two switches in a VSS or vPC, then you should enable VSS load
balancing by using the vss-load-balance keyword. This feature ensures that the physical link
connections between the ASAs to the VSS (or vPC) pair are balanced. You must configure the vss-id
keyword in the channel-group command for each member interface before enabling load balancing (see
Step 2).
Step 7 (Optional) You can set the Ethernet properties for the port-channel interface to override the properties
set on the Individual interfaces.
This method provides a shortcut to set these parameters because these parameters must match for all
interfaces in the channel group.
Step 8 (Optional) If you are creating VLAN subinterfaces on this EtherChannel, do so now.
Example:
ciscoasa(config)# interface port-channel 1.10
ciscoasa(config-if)# vlan 10
Example:
ciscoasa(config)# context admin
ciscoasa(config)# allocate-interface port-channel1
ciscoasa(config)# changeto context admin
ciscoasa(config-if)# interface port-channel 1
For multiple context mode, the rest of the interface configuration occurs within each context.
Step 10 Name the interface:
nameif name
Example:
ciscoasa(config-if)# nameif inside
The name is a text string up to 48 characters, and is not case-sensitive. You can change the name by
reentering this command with a new value.
Step 11 Perform one of the following, depending on the firewall mode.
• Routed Mode—Set the IPv4 and/or IPv6 address:
(IPv4)
ip address ip_address [mask]
(IPv6)
ipv6 address ipv6-prefix/prefix-length
Example:
ciscoasa(config-if)# ip address 10.1.1.1 255.255.255.0
ciscoasa(config-if)# ipv6 address 2001:DB8::1001/32
Example:
ciscoasa(config-if)# bridge-group 1
Where number is an integer between 1 and 100. You can assign up to four interfaces to a bridge
group. You cannot assign the same interface to more than one bridge group. Note that the BVI
configuration includes the IP address.
Step 12 Set the security level:
security-level number
Example:
ciscoasa(config-if)# security-level 50
Example:
ciscoasa(config-if)# mac-address 000C.F142.4CDE
With a manually-configured MAC address, the MAC address stays with the current master unit. In
multiple context mode, if you share an interface between contexts, auto-generation of MAC addresses is
enabled by default, so that you only need to set the MAC address manually for a shared interface if you
disable auto-generation. Note that you must manually configure the MAC address for non-shared
interfaces.
The mac_address is in H.H.H format, where H is a 16-bit hexadecimal digit. For example, the
MAC address 00-0C-F1-42-4C-DE is entered as 000C.F142.4CDE.
The first two bytes of a manual MAC address cannot be A2 if you also want to use auto-generated MAC
addresses.
Related Topics
• Configure the Cluster Interface Mode on Each Unit, page 8-39
• Configuring Bridge Groups, page 12-7
• Configure the Master Unit Bootstrap Settings, page 8-47
• Configure an EtherChannel, page 9-18
• EtherChannels, page 9-12
• Connecting to a VSS or vPC, page 8-14
• Enable the Physical Interface and Configure Ethernet Parameters, page 9-14
• Configure VLAN Subinterfaces and 802.1Q Trunking, page 9-21
• Configure a Security Context, page 6-19
• Security Levels, page 11-1
• Guidelines for ASA Clustering, page 8-33
Procedure
Step 1 Enable the cluster control link interface before you join the cluster.
You will later identify this interface as the cluster control link when you enable clustering.
We recommend that you combine multiple cluster control link interfaces into an EtherChannel if you
have enough interfaces. The EtherChannel is local to the ASA, and is not a Spanned EtherChannel.
The cluster control link interface configuration is not replicated from the master unit to slave units;
however, you must use the same configuration on each unit. Because this configuration is not replicated,
you must configure the cluster control link interfaces separately on each unit.
• You cannot use a VLAN subinterface as the cluster control link.
• You cannot use a Management x/x interface as the cluster control link, either alone or as an
EtherChannel.
• For the ASA 5585-X with an ASA IPS module, you cannot use the module interfaces for the cluster
control link.
a. Enter interface configuration mode:
interface interface_id
Example:
ciscoasa(config)# interface tengigabitethernet 0/6
Example:
ciscoasa(config-if)# channel-group 1 mode on
The channel_id is between 1 and 48. If the port-channel interface for this channel ID does not yet
exist in the configuration, one will be added automatically:
interface port-channel channel_id
We recommend using the On mode for cluster control link member interfaces to reduce unnecessary
traffic on the cluster control link. The cluster control link does not need the overhead of LACP traffic
because it is an isolated, stable network. Note: We recommend setting data EtherChannels to Active
mode.
c. Enable the interface:
no shutdown
You only need to enable the interface; do not configure a name for the interface, or any other
parameters.
d. (For an EtherChannel) Repeat for each additional interface you want to add to the EtherChannel:
Example:
ciscoasa(config)# interface tengigabitethernet 0/7
ciscoasa(config-if)# channel-group 1 mode on
ciscoasa(config-if)# no shutdown
Step 2 (Optional) Specify the maximum transmission unit for the cluster control link interface:
mtu cluster bytes
Example:
ciscoasa(config)# mtu cluster 9000
Set the MTU between 64 and 65,535 bytes. The default MTU is 1500 bytes.
We suggest setting the MTU to 1600 bytes or greater, which requires you to enable jumbo frame
reservation before continuing with this procedure. Jumbo frame reservation requires a reload of the
ASA.
This command is a global configuration command, but is also part of the bootstrap configuration that is
not replicated between units.
Step 3 Name the cluster and enter cluster configuration mode:
cluster group name
Example:
ciscoasa(config)# cluster group pod1
The name must be an ASCII string from 1 to 38 characters. You can only configure one cluster group
per unit. All members of the cluster must use the same name.
Step 4 Name this member of the cluster:
local-unit unit_name
Use a unique ASCII string from 1 to 38 characters. Each unit must have a unique name. A unit with a
duplicated name will be not be allowed in the cluster.
Example:
ciscoasa(cfg-cluster)# cluster-interface port-channel2 ip 192.168.1.1 255.255.255.0
INFO: Non-cluster interface config is cleared on Port-Channel2
Example:
ciscoasa(cfg-cluster)# priority 1
Example:
ciscoasa(cfg-cluster)# key chuntheunavoidable
The shared secret is an ASCII string from 1 to 63 characters. The shared secret is used to generate the
key. This command does not affect datapath traffic, including connection state update and forwarded
packets, which are always sent in the clear.
Step 8 (Optional) Customize the cluster health check feature, which includes unit health monitoring and
interface health monitoring:
health-check [holdtime timeout] [vss-enabled]
Example:
ciscoasa(cfg-cluster)# health-check holdtime 5
The holdime determines the amount of time between unit keepalive status messages, between .8 and 45
seconds; The default is 3 seconds. Note that the holdtime value only affects the unit health check; for
interface health, the ASA uses the interface status (up or down).
To determine unit health, the ASA cluster units send keepalive messages on the cluster control link to
other units. If a unit does not receive any keepalive messages from a peer unit within the holdtime period,
the peer unit is considered unresponsive or dead. If you configure the cluster control link as an
EtherChannel (recommended), and it is connected to a VSS or vPC pair, then you might need to enable
the vss-enabled option. For some switches, when one unit in the VSS/vPC is shutting down or booting
up, EtherChannel member interfaces connected to that switch may appear to be Up to the ASA, but they
are not passing traffic on the switch side. The ASA can be erroneously removed from the cluster if you
set the ASA holdtime timeout to a low value (such as .8 seconds), and the ASA sends keepalive messages
on one of these EtherChannel interfaces. When you enable vss-enabled, the ASA floods the keepalive
messages on all EtherChannel interfaces in the cluster control link to ensure that at least one of the
switches can receive them.
The interface health check monitors for link failures. If all physical ports for a given logical interface
fail on a particular unit, but there are active ports under the same logical interface on other units, then
the unit is removed from the cluster. The amount of time before the ASA removes a member from the
cluster depends on the type of interface and whether the unit is an established member or is joining the
cluster.
Health check is enabled by default. You can disable it using the no form of this command.
When any topology changes occur (such as adding or removing a data interface, enabling or disabling
an interface on the ASA or the switch, or adding an additional switch to form a VSS or vPC) you should
disable the health check feature. When the topology change is complete, and the configuration change
is synced to all units, you can re-enable the health check feature.
Step 9 (Optional) Enable connection rebalancing for TCP traffic:
conn-rebalance [frequency seconds]
Example:
ciscoasa(cfg-cluster)# conn-rebalance frequency 60
This command is disabled by default. If enabled, ASAs exchange load information periodically, and
offload new connections from more loaded devices to less loaded devices. The frequency, between 1 and
360 seconds, specifies how often the load information is exchanged. The default is 5 seconds.
Do not configure connection rebalancing for inter-site topologies; you do not want connections
rebalanced to cluster members at a different site.
Step 10 (Optional) Enable console replication from slave units to the master unit:
console-replicate
This feature is disabled by default. The ASA prints out some messages directly to the console for certain
critical events. If you enable console replication, slave units send the console messages to the master unit
so that you only need to monitor one console port for the cluster.
Step 11 (Optional) Disable dynamic port priority in LACP:
clacp static-port-priority
Some switches do not support dynamic port priority, so this command improves switch compatibility.
Moreover, it enables support of more than 8 active spanned EtherChannel members, up to 32 members.
Without this command, only 8 active members and 8 standby members are supported. If you enable this
command, then you cannot use any standby members; all members are active.
Step 12 (Optional) Manually specify the cLACP system ID and system priority:
clacp system-mac {mac_address | auto} [system-priority number]
Example:
ciscoasa(cfg-cluster)# clacp system-mac 000a.0000.aaaa
When using Spanned EtherChannels, the ASA uses cLACP to negotiate the EtherChannel with the
neighbor switch. ASAs in a cluster collaborate in cLACP negotiation so that they appear as a single
(virtual) device to the switch. One parameter in cLACP negotiation is a system ID, which is in the format
of a MAC address. All ASAs in the cluster use the same system ID: auto-generated by the master unit
(the default) and replicated to all slaves; or manually specified in this command in the form H.H.H,
where H is a 16-bit hexadecimal digit. (For example, the MAC address 00-0A-00-00-AA-AA is entered
as 000A.0000.AAAA.) You might want to manually configure the MAC address for troubleshooting
purposes, for example, so that you can use an easily identified MAC address. Typically, you would use
the auto-generated MAC address.
The system priority, between 1 and 65535, is used to decide which unit is in charge of making a bundling
decision. By default, the ASA uses priority 1, which is the highest priority. The priority needs to be
higher than the priority on the switch.
This command is not part of the bootstrap configuration, and is replicated from the master unit to the
slave units. However, you cannot change this value after you enable clustering.
Step 13 Enable clustering:
enable [noconfirm]
Example:
ciscoasa(cfg-cluster)# enable
INFO: Clustering is not compatible with following commands:
policy-map global_policy
class inspection_default
inspect skinny
policy-map global_policy
class inspection_default
inspect sip
Would you like to remove these commands? [Y]es/[N]o:Y
When you enter the enable command, the ASA scans the running configuration for incompatible
commands for features that are not supported with clustering, including commands that may be present
in the default configuration. You are prompted to delete the incompatible commands. If you respond No,
then clustering is not enabled. Use the noconfirm keyword to bypass the confirmation and delete
incompatible commands automatically.
For the first unit enabled, a master unit election occurs. Because the first unit should be the only member
of the cluster so far, it will become the master unit. Do not perform any configuration changes during
this period.
To disable clustering, enter the no enable command.
Note If you disable clustering, all data interfaces are shut down, and only the management-only
interface is active.
Examples
The following example configures a management interface, configures a device-local EtherChannel for
the cluster control link, and then enables clustering for the ASA called “unit1,” which will become the
master unit because it is added to the cluster first:
ip local pool mgmt 10.1.1.2-10.1.1.9
ipv6 local pool mgmtipv6 2001:DB8::1002/32 8
no shutdown
Related Topics
• Enable Jumbo Frame Support, page 9-22
• Configure Interfaces on the Master Unit, page 8-40
• Size the Cluster Control Link, page 8-7
• Master Unit Election, page 8-3
• Interface Monitoring, page 8-9
• Leave the Cluster, page 8-56
Procedure
Step 1 Configure the same cluster control link interface as you configured for the master unit.
Example:
ciscoasa(config)# interface tengigabitethernet 0/6
ciscoasa(config-if)# channel-group 1 mode on
ciscoasa(config-if)# no shutdown
ciscoasa(config)# interface tengigabitethernet 0/7
ciscoasa(config-if)# channel-group 1 mode on
ciscoasa(config-if)# no shutdown
Step 2 Specify the same MTU that you configured for the master unit:
Example:
ciscoasa(config)# mtu cluster 9000
Step 3 Identify the same cluster name that you configured for the master unit:
Example:
ciscoasa(config)# cluster group pod1
Example:
ciscoasa(cfg-cluster)# local-unit unit2
Example:
ciscoasa(cfg-cluster)# cluster-interface port-channel2 ip 192.168.1.2 255.255.255.0
INFO: Non-cluster interface config is cleared on Port-Channel2
Specify an IPv4 address for the IP address; IPv6 is not supported for this interface. This interface cannot
have a nameif configured.
Step 6 Set the priority of this unit for master unit elections, typically to a higher value than the master unit:
priority priority_number
Example:
ciscoasa(cfg-cluster)# priority 2
Set the priority between 1 and 100, where 1 is the highest priority.
Step 7 Set the same authentication key that you set for the master unit:
Example:
ciscoasa(cfg-cluster)# key chuntheunavoidable
You can avoid any configuration incompatibilities (primarily the existence of any interfaces not yet
configured for clustering) by using the enable as-slave command. This command ensures the slave joins
the cluster with no possibility of becoming the master in any current election. Its configuration is
overwritten with the one synced from the master unit.
To disable clustering, enter the no enable command.
Note If you disable clustering, all data interfaces are shut down, and only the management interface
is active.
Examples
The following example includes the configuration for a slave unit, unit2:
interface tengigabitethernet 0/6
channel-group 1 mode on
no shutdown
Related Topics
• Enable Jumbo Frame Support, page 9-22
• Master Unit Election, page 8-3
• Leave the Cluster, page 8-56
•
•
Note When an ASA becomes inactive (either manually or through a health check failure), all data interfaces
are shut down; only the management-only interface can send and receive traffic. To resume traffic flow,
re-enable clustering; or you can remove the unit altogether from the cluster. The management interface
remains up using the IP address the unit received from the cluster IP pool. However if you reload, and
the unit is still inactive in the cluster, the management interface is not accessible (because it then uses
the Main IP address, which is the same as the master unit). You must use the console port for any further
configuration.
Procedure
Example:
ciscoasa(config)# cluster group pod1
If this unit was the master unit, a new master election takes place, and a different member becomes the
master unit.
The cluster configuration is maintained, so that you can enable clustering again later.
Related Topics
• Leave the Cluster, page 8-56
Inactivate a Member
To inactivate a member from any unit, perform the following steps.
Note When an ASA becomes inactive, all data interfaces are shut down; only the management-only interface
can send and receive traffic. To resume traffic flow, re-enable clustering; or you can remove the unit
altogether from the cluster. The management interface remains up using the IP address the unit received
from the cluster IP pool. However if you reload, and the unit is still inactive in the cluster, the
management interface is not accessible (because it then uses the Main IP address, which is the same as
the master unit). You must use the console port for any further configuration.
Procedure
Example:
ciscoasa(config)# cluster remove unit ?
The bootstrap configuration remains intact, as well as the last configuration synced from the master unit,
so that you can later re-add the unit without losing your configuration. If you enter this command on a
slave unit to remove the master unit, a new master unit is elected.
To view member names, enter cluster remove unit ?, or enter the show cluster info command.
Related Topics
• Leave the Cluster, page 8-56
Procedure
Example:
ciscoasa(config)# cluster group cluster1
ciscoasa(cfg-cluster)# no enable
You cannot make configuration changes while clustering is enabled on a slave unit.
Step 2 Clear the cluster configuration:
clear configure cluster
The ASA shuts down all interfaces including the management interface and cluster control link.
Step 3 Disable cluster interface mode:
no cluster interface-mode
The mode is not stored in the configuration and must be reset manually.
Step 4 If you have a backup configuration, copy the backup configuration to the running configuration:
copy backup_cfg running-config
Example:
ciscoasa(config)# copy backup_cluster.cfg running-config
Step 6 If you do not have a backup configuration, reconfigure management access. Be sure to change the
interface IP addresses, and restore the correct hostname, for example.
Related Topics
• Chapter 2, “Getting Started.”
Caution The best method to change the master unit is to disable clustering on the master unit, waiting for a new
master election, and then re-enabling clustering. If you must specify the exact unit you want to become
the master, use the procedure in this section. Note, however, that for centralized features, if you force a
master unit change using this procedure, then all connections are dropped, and you have to re-establish
the connections on the new master unit.
Procedure
Example:
ciscoasa(config)# cluster master unit asa2
Related Topics
• Become an Inactive Member, page 8-54
• Centralized Features for Clustering, page 8-26
Procedure
Step 1 Send a command to all members, or if you specify the unit name, a specific member:
cluster exec [unit unit_name] command
Example:
ciscoasa# cluster exec show xlate
To view member names, enter cluster exec unit ? (to see all names except the current unit), or enter the
show cluster info command.
Examples
To copy the same capture file from all units in the cluster at the same time to a TFTP server, enter the
following command on the master unit:
ciscoasa# cluster exec copy /pcap capture: tftp://10.1.1.56/capture1.pcap
Multiple PCAP files, one from each unit, are copied to the TFTP server. The destination capture file
name is automatically attached with the unit name, such as capture1_asa1.pcap, capture1_asa2.pcap, and
so on. In this example, asa1 and asa2 are cluster unit names.
The following sample output for the cluster exec show port-channel summary command shows
EtherChannel information for each member in the cluster:
ciscoasa# cluster exec show port-channel summary
primary(LOCAL):***********************************************************
Number of channel-groups in use: 2
Group Port-channel Protocol Span-cluster Ports
------+-------------+-----------+-----------------------------------------------
1 Po1 LACP Yes Gi0/0(P)
2 Po2 LACP Yes Gi0/1(P)
secondary:******************************************************************
Number of channel-groups in use: 2
Group Port-channel Protocol Span-cluster Ports
------+-------------+-----------+-----------------------------------------------
1 Po1 LACP Yes Gi0/0(P)
2 Po2 LACP Yes Gi0/1(P)
Related Topics
• Capture Packets, page 38-1
To troubleshoot the connection flow, first see connections on all units by entering the cluster exec
show conn command on any unit. Look for flows that have the following flags: director (Y), backup
(y), and forwarder (z). The following example shows an SSH connection from 172.18.124.187:22
to 192.168.103.131:44727 on all three ASAs; ASA 1 has the z flag showing it is a forwarder for the
connection, ASA3 has the Y flag showing it is the director for the connection, and ASA2 has no
special flags showing it is the owner. In the outbound direction, the packets for this connection enter
the inside interface on ASA2 and exit the outside interface. In the inbound direction, the packets for
this connection enter the outside interface on ASA 1 and ASA3, are forwarded over the cluster
control link to ASA2, and then exit the inside interface on ASA2.
ciscoasa/ASA1/master# cluster exec show conn
ASA1(LOCAL):**********************************************************
18 in use, 22 most used
Cluster stub connections: 0 in use, 5 most used
TCP outside 172.18.124.187:22 inside 192.168.103.131:44727, idle 0:00:00, bytes
37240828, flags z
ASA2:*****************************************************************
12 in use, 13 most used
Cluster stub connections: 0 in use, 46 most used
TCP outside 172.18.124.187:22 inside 192.168.103.131:44727, idle 0:00:00, bytes
37240828, flags UIO
ASA3:*****************************************************************
10 in use, 12 most used
Cluster stub connections: 2 in use, 29 most used
TCP outside 172.18.124.187:22 inside 192.168.103.131:44727, idle 0:00:03, bytes 0,
flags Y
The show cluster info loadbalance command shows connection rebalance statistics.
• show cluster {access-list | conn | traffic | user-identity | xlate} [options]
Displays aggregated data for the entire cluster. The options available depends on the data type.
See the following output for the show cluster access-list command:
ciscoasa# show cluster access-list
hitcnt display order: cluster-wide aggregated result, unit-A, unit-B, unit-C, unit-D
access-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096)
alert-interval 300
access-list 101; 122 elements; name hash: 0xe7d586b5
access-list 101 line 1 extended permit tcp 192.168.143.0 255.255.255.0 any eq www
(hitcnt=0, 0, 0, 0, 0) 0x207a2b7d
access-list 101 line 2 extended permit tcp any 192.168.143.0 255.255.255.0 (hitcnt=0,
0, 0, 0, 0) 0xfe4f4947
access-list 101 line 3 extended permit tcp host 192.168.1.183 host 192.168.43.238
(hitcnt=1, 0, 0, 0, 1) 0x7b521307
access-list 101 line 4 extended permit tcp host 192.168.1.116 host 192.168.43.238
(hitcnt=0, 0, 0, 0, 0) 0x5795c069
access-list 101 line 5 extended permit tcp host 192.168.1.177 host 192.168.43.238
(hitcnt=1, 0, 0, 1, 0) 0x51bde7ee
access list 101 line 6 extended permit tcp host 192.168.1.177 host 192.168.43.13
(hitcnt=0, 0, 0, 0, 0) 0x1e68697c
access-list 101 line 7 extended permit tcp host 192.168.1.177 host 192.168.43.132
(hitcnt=2, 0, 0, 1, 1) 0xc1ce5c49
access-list 101 line 8 extended permit tcp host 192.168.1.177 host 192.168.43.192
(hitcnt=3, 0, 1, 1, 1) 0xb6f59512
access-list 101 line 9 extended permit tcp host 192.168.1.177 host 192.168.43.44
(hitcnt=0, 0, 0, 0, 0) 0xdc104200
access-list 101 line 10 extended permit tcp host 192.168.1.112 host 192.168.43.44
(hitcnt=429, 109, 107, 109, 104)
0xce4f281d
access-list 101 line 11 extended permit tcp host 192.168.1.170 host 192.168.43.238
(hitcnt=3, 1, 0, 0, 2) 0x4143a818
access-list 101 line 12 extended permit tcp host 192.168.1.170 host 192.168.43.169
(hitcnt=2, 0, 1, 0, 1) 0xb18dfea4
access-list 101 line 13 extended permit tcp host 192.168.1.170 host 192.168.43.229
(hitcnt=1, 1, 0, 0, 0) 0x21557d71
access-list 101 line 14 extended permit tcp host 192.168.1.170 host 192.168.43.106
(hitcnt=0, 0, 0, 0, 0) 0x7316e016
access-list 101 line 15 extended permit tcp host 192.168.1.170 host 192.168.43.196
(hitcnt=0, 0, 0, 0, 0) 0x013fd5b8
access-list 101 line 16 extended permit tcp host 192.168.1.170 host 192.168.43.75
(hitcnt=0, 0, 0, 0, 0) 0x2c7dba0d
To display the aggregated count of in-use connections for all units, enter:
ciscoasa# show cluster conn count
Usage Summary In Cluster:*********************************************
200 in use (cluster-wide aggregated)
cl2(LOCAL):***********************************************************
100 in use, 100 most used
cl1:******************************************************************
100 in use, 100 most used
Related Topics
• Connection Roles, page 11-22
Related Topics
• Include the Device ID in Non-EMBLEM Format Syslog Messages, page 39-16
Debugging Clustering
See the following commands for debugging clustering:
• debug cluster [ccp | datapath | fsm | general | hc | license | rpc | transport]
Shows debug messages for clustering.
• show cluster info trace
The show cluster info trace command shows the debug information for further troubleshooting.
See the following output for the show cluster info trace command:
ciscoasa# show cluster info trace
Feb 02 14:19:47.456 [DBUG]Receive CCP message: CCP_MSG_LOAD_BALANCE
Feb 02 14:19:47.456 [DBUG]Receive CCP message: CCP_MSG_LOAD_BALANCE
ASA Configuration
Interface Mode on Each Unit
cluster interface-mode spanned force
enable noconfirm
interface GigabitEthernet0/2
channel-group 10 mode active
no shutdown
!
interface GigabitEthernet0/3
channel-group 10 mode active
no shutdown
!
interface GigabitEthernet0/4
channel-group 11 mode active
no shutdown
!
interface GigabitEthernet0/5
channel-group 11 mode active
no shutdown
!
interface Management0/0
management-only
nameif management
ip address 10.53.195.230 cluster-pool mgmt-pool
security-level 100
no shutdown
!
interface Port-channel10
port-channel span-cluster
mac-address aaaa.bbbb.cccc
nameif inside
security-level 100
ip address 209.165.200.225 255.255.255.224
!
interface Port-channel11
port-channel span-cluster
mac-address aaaa.dddd.cccc
nameif outside
security-level 0
ip address 209.165.201.1 255.255.255.224
interface Port-channel10
switchport access vlan 201
switchport mode access
interface Port-channel11
switchport access vlan 401
switchport mode access
Firewall on a Stick
management
10.1.1.1/24 (Pool: .2-.9),
2001:DB8::1002/64
(Pool: 8 IPs)
man0/0
man0/0
man0/0
ten0/8
ten0/9
ten0/8
ten0/9
ten0/8
ten0/9
Cluster Control Link
192.168.1.1, .2, and .3
port-ch1 Spanned
port-ch1.10 inside VLAN 10 10.10.10.5/24, 2001:DB8:2::5/64
MAC: 000C.F142.4CDE
port-ch1.20 outside VLAN 20 209.165.201.5/27, 2001:DB8:2::5/64
MAC: 000C.F142.5CDE
port-ch5
VLAN 10, VLAN 20 Trunk
VLAN 10
Switch
VLAN 20
333221
Client Server
Data traffic from different security domains are associated with different VLANs, for example,
VLAN 10 for the inside network and VLAN 20 for the outside network. Each ASA has a single physical
port connected to the external switch or router. Trunking is enabled so that all packets on the physical
link are 802.1q encapsulated. The ASA is the firewall between VLAN 10 and VLAN 20.
When using Spanned EtherChannels, all data links are grouped into one EtherChannel on the switch side.
If an ASA becomes unavailable, the switch will rebalance traffic between the remaining units.
Traffic Segregation
port-ch1
ten0/6
ten0/7
ten0/8 ten0/9
209.165.201.1/27, 2001:DB8:2::8/64
10.10.10.5/24, 2001:DB8:1::5/64
man0/0
MAC: 000C.F142.5CDE
MAC: 000C.F142.4CDE
ASA2
port-ch2
port-ch3 Spanned
port-ch1
ten0/6
port-ch2 Spanned
ten0/7
port-ch4
port-ch1
outside
inside ten0/8 ten0/9
man0/0
ASA3
port-ch3
port-ch1
ten0/6
ten0/7
ten0/8 ten0/9
man0/0
management
333220
10.1.1.1 (Pool: .2-.9),
2001:DB8::1002/64 (Pool: 8 IPs)
You may prefer physical separation of traffic between the inside and outside network.
As shown in the diagram above, there is one Spanned EtherChannel on the left side that connects to the
inside switch, and the other on the right side to outside switch. You can also create VLAN subinterfaces
on each EtherChannel if desired.
port-channel span-cluster
nameif outside
ip address 209.165.201.1 255.255.255.224
ipv6 address 2001:DB8:2::8/64
mac-address 000C.F142.5CDE
ASA2 ASA2
ASA3 ASA3
ASA4 ASA4
1. Up to 4 units
ASA5
2. 5th unit joined
333218
ASA8
3. Maximum of 8 units
The principle is to first maximize the number of active ports in the channel, and secondly keep the
number of active primary ports and the number of active secondary ports in balance. Note that when a
5th unit joins the cluster, traffic is not balanced evenly between all units.
Link or device failure is handled with the same principle. You may end up with a less-than-perfect load
balancing situation. The following figure shows a 4-unit cluster with a single link failure on one of the
units.
Router or
Access Switch
Switch 1 Switch 2
Virtual Switch Link
ASA1
ASA2
ASA3
333217
ASA4
There could be multiple EtherChannels configured in the network. The following diagram shows an
EtherChannel on the inside and one on the outside. An ASA is removed from the cluster if both primary
and secondary links in one EtherChannel fail. This prevents the ASA from receiving traffic from the
outside network when it has already lost connectivity to the inside network.
Router or
Access Switch
Outside
333216
Router or
Access Switch
no shutdown
interface tengigabitethernet 0/7
channel-group 1 mode on
no shutdown
interface tengigabitethernet 0/8
channel-group 1 mode on
no shutdown
interface tengigabitethernet 0/9
channel-group 1 mode on
no shutdown
interface port-channel 1
description CCL
ASA 5500-X support for 9.1(4) The ASA 5512-X, ASA 5515-X, ASA 5525-X, ASA 5545-X, and ASA 5555-X now
clustering support 2-unit clusters. Clustering for 2 units is enabled by default in the base license;
for the ASA 5512-X, you need the Security Plus license.
We did not modify any commands.
Improved VSS and vPC 9.1(4) If you configure the cluster control link as an EtherChannel (recommended), and it is
support for health check connected to a VSS or vPC pair, you can now increase stability with health check
monitoring monitoring. For some switches, such as the Cisco Nexus 5000, when one unit in the
VSS/vPC is shutting down or booting up, EtherChannel member interfaces connected
to that switch may appear to be Up to the ASA, but they are not passing traffic on the
switch side. The ASA can be erroneously removed from the cluster if you set the ASA
holdtime timeout to a low value (such as .8 seconds), and the ASA sends keepalive
messages on one of these EtherChannel interfaces. When you enable the VSS/vPC
health check feature, the ASA floods the keepalive messages on all EtherChannel
interfaces in the cluster control link to ensure that at least one of the switches can
receive them.
We modified the following command: health-check [vss-enabled]
Support for cluster 9.1(4) You can now place cluster members at different geographical locations when using
members at different Individual Interface mode.
geographical locations
We did not modify any commands.
(inter-site); Individual
Interface mode only
Platform
Feature Name Releases Feature Information
Support for cluster 9.2(1) You can now place cluster members at different geographical locations when using
members at different Spanned EtherChannel mode in transparent firewall mode. Inter-site clustering with
geographical locations spanned EtherChannels in routed firewall mode is not supported.
(inter-site) for We did not modify any commands.
transparent mode
Static LACP port priority 9.2(1) Some switches do not support dynamic port priority with LACP (active and standby
support for clustering links). You can now disable dynamic port priority to provide better compatibility with
spanned EtherChannels. You should also follow these guidelines:
• Network elements on the cluster control link path should not verify the L4
checksum. Redirected traffic over the cluster control link does not have a correct
L4 checksum. Switches that verify the L4 checksum could cause traffic to be
dropped.
• Port-channel bundling downtime should not exceed the configured keepalive
interval.
We introduced the following command: clacp static-port-priority.
Support for 32 active 9.2(1) ASA EtherChannels now support up to 16 active links. With spanned EtherChannels,
links in a spanned that functionality is extended to support up to 32 active links across the cluster when
EtherChannel used with two switches in a vPC and when you disable dynamic port priority. The
switches must support EtherChannels with 16 active links, for example, the Cisco
Nexus 7000 with F2-Series 10 Gigabit Ethernet Module.
For switches in a VSS or vPC that support 8 active links, you can now configure
16 active links in the spanned EtherChannel (8 connected to each switch). Previously,
the spanned EtherChannel only supported 8 active links and 8 standby links, even for
use with a VSS/vPC.
Note If you want to use more than 8 active links in a spanned EtherChannel, you
cannot also have standby links; the support for 9 to 32 active links requires you
to disable cLACP dynamic port priority that allows the use of standby links.
Support for 16 cluster 9.2(1) The ASA 5585-X now supports 16-unit clusters.
members for the ASA
We did not modify any commands.
5585-X
Platform
Feature Name Releases Feature Information
BGP support for ASA 9.3(1) We added support for BGP with ASA clustering.
clustering
We introduced the following new command: bgp router-id clusterpool
Inter-site deployment in 9.3(2) You can now deploy a cluster in transparent mode between inside networks and the
transparent mode with gateway router at each site (AKA East-West insertion), and extend the inside VLANs
the ASA cluster between sites. We recommend using Overlay Transport Virtualization (OTV), but you
firewalling between can use any method that ensures that the overlapping MAC Addresses and IP addresses
inside networks of the gateway router do not leak between sites. Use a First Hop Redundancy Protocol
(FHRP) such as HSRP to provide the same virtual MAC and IP addresses to the
gateway routers.
Interfaces
CH AP TE R 9
Basic Interface Configuration (ASA Appliances)
This chapter includes tasks for starting your interface configuration for the Cisco ASA appliances,
including configuring Ethernet settings, redundant interfaces, and EtherChannels.
Note For multiple context mode, complete all tasks in this section in the system execution space. To change
from the context to the system execution space, enter the changeto system command.
For ASA cluster interfaces, which have special requirements, see Chapter 8, “ASA Cluster.”
Auto-MDI/MDIX Feature
For RJ-45 interfaces, the default auto-negotiation setting also includes the Auto-MDI/MDIX feature.
Auto-MDI/MDIX eliminates the need for crossover cabling by performing an internal crossover when a
straight cable is detected during the auto-negotiation phase. Either the speed or duplex must be set to
auto-negotiate to enable Auto-MDI/MDIX for the interface. If you explicitly set both the speed and
duplex to a fixed value, thus disabling auto-negotiation for both settings, then Auto-MDI/MDIX is also
disabled. For Gigabit Ethernet, when the speed and duplex are set to 1000 and full, then the interface
always auto-negotiates; therefore Auto-MDI/MDIX is always enabled and you cannot disable it.
Related Topics
• Bridge Groups in Transparent Mode, page 12-1
Management Interface
The management interface, depending on your model, is a separate interface just for management traffic.
• Management Interface Overview, page 9-2
• Management Slot/Port Interface, page 9-3
• Use Any Interface for Management-Only Traffic, page 9-3
• Management Interface for Transparent Mode, page 9-3
• No Support for Redundant Management Interfaces, page 9-4
• Management Interface on the ASA 5555-X and Lower, page 9-4
Note If you installed a module, then the module management interface(s) provides management access for the
module only. For models with software modules, the software module uses the same physical
Management interface as the ASA.
In multiple context mode, you cannot share any interfaces, including the Management interface, across
contexts. To provide management per context, you can create subinterfaces of the Management interface
and allocate a Management subinterface to each context. Note that the ASA 5555-X and lower do not
allow subinterfaces on the Management interface, so for per-context management, you must connect to
a data interface.
The management interface is not part of a normal bridge group. Note that for operational purposes, it is
part of a non-configurable bridge group.
Note In transparent firewall mode, the management interface updates the MAC address table in the same
manner as a data interface; therefore you should not connect both a management and a data interface to
the same switch unless you configure one of the switch ports as a routed port (by default Catalyst
switches share a MAC address for all VLAN switch ports). Otherwise, if traffic arrives on the
management interface from the physically-connected switch, then the ASA updates the MAC address
table to use the management interface to access the switch, instead of the data interface. This action
causes a temporary traffic interruption; the ASA will not re-update the MAC address table for packets
from the switch to the data interface for at least 30 seconds for security reasons.
Redundant Interfaces
A logical redundant interface consists of a pair of physical interfaces: an active and a standby interface.
When the active interface fails, the standby interface becomes active and starts passing traffic. You can
configure a redundant interface to increase the ASA reliability. This feature is separate from device-level
failover, but you can configure redundant interfaces as well as device-level failover if desired.
Related Topics
• Configuring the MAC Address, MTU, and TCP MSS, page 11-9
• Configure Multiple Contexts, page 6-14
EtherChannels
An 802.3ad EtherChannel is a logical interface (called a port-channel interface) consisting of a bundle
of individual Ethernet links (a channel group) so that you increase the bandwidth for a single network.
A port channel interface is used in the same way as a physical interface when you configure
interface-related features.
You can configure up to 48 EtherChannels.
• Channel Group Interfaces, page 9-5
• Connecting to an EtherChannel on Another Device, page 9-5
• Link Aggregation Control Protocol, page 9-6
• Load Balancing, page 9-7
• EtherChannel MAC Address, page 9-7
VSS
Switch 1 Switch 2
Firewall
If you use the ASA in an Active/Standby failover deployment, then you need to create separate
EtherChannels on the switches in the VSS/vPC, one for each ASA. On each ASA, a single EtherChannel
connects to both switches. Even if you could group all switch interfaces into a single EtherChannel
connecting to both ASAs (in this case, the EtherChannel will not be established because of the separate
ASA system IDs), a single EtherChannel would not be desirable because you do not want traffic sent to
the standby ASA.
VSS
Switch 1 Switch 2
• On—The EtherChannel is always on, and LACP is not used. An “on” EtherChannel can only
establish a connection with another “on” EtherChannel.
LACP coordinates the automatic addition and deletion of links to the EtherChannel without user
intervention. It also handles misconfigurations and checks that both ends of member interfaces are
connected to the correct channel group. “On” mode cannot use standby interfaces in the channel group
when an interface goes down, and the connectivity and configurations are not checked.
Load Balancing
The ASA distributes packets to the interfaces in the EtherChannel by hashing the source and destination
IP address of the packet (this criteria is configurable). The resulting hash is divided by the number of
active links in a modulo operation where the resulting remainder determines which interface owns the
flow. All packets with a hash_value mod active_links result of 0 go to the first interface in the
EtherChannel, packets with a result of 1 go to the second interface, packets with a result of 2 go to the
third interface, and so on. For example, if you have 15 active links, then the modulo operation provides
values from 0 to 14. For 6 active links, the values are 0 to 5, and so on.
For a spanned EtherChannel in clustering, load balancing occurs on a per ASA basis. For example, if
you have 32 active interfaces in the spanned EtherChannel across 8 ASAs, with 4 interfaces per ASA in
the EtherChannel, then load balancing only occurs across the 4 interfaces on the ASA.
If an active interface goes down and is not replaced by a standby interface, then traffic is rebalanced
between the remaining links. The failure is masked from both Spanning Tree at Layer 2 and the routing
table at Layer 3, so the switchover is transparent to other network devices.
Related Topics
• Customize the EtherChannel, page 9-20
MTU Overview
The maximum transmission unit (MTU) specifies the maximum frame payload size that the ASA can
transmit on a given Ethernet interface. The MTU value is the frame size without Ethernet headers, FCS,
or VLAN tagging. The Ethernet header is 14 bytes and the FCS is 4 bytes. When you set the MTU to
1500, the expected frame size is 1518 bytes including the headers. If you are using VLAN tagging
(which adds an additional 4 bytes), then when you set the MTU to 1500, the expected frame size is 1522.
Do not set the MTU value higher to accommodate these headers. For information about accommodating
TCP headers for encapsulation, do not alter the MTU setting; instead change the TCP Maximum
Segment Size.
If an outgoing IP packet is larger than the specified MTU, it is fragmented into 2 or more frames.
Fragments are reassembled at the destination (and sometimes at intermediate hops), and fragmentation
can cause performance degradation. Therefore, your IP packets should fit within the MTU size to avoid
fragmentation.
Note The ASA can receive frames larger than the configured MTU as long as there is room in memory.
Related Topics
• TCP Maximum Segment Size Overview, page 9-9
• Enable Jumbo Frame Support, page 9-22
Default MTU
The default MTU on the ASA is 1500 bytes. This value does not include the 18 or more bytes for the
Ethernet header, CRC, VLAN tagging, and so on.
Examples
The following example enables jumbo frames, increases the MTU on all interfaces, and disables the TCP
MSS for non-VPN traffic (by setting the TCP MSS to 0, which means there is no limit):
jumbo frame-reservation
mtu inside 9198
mtu outside 9198
sysopt connection tcpmss 0
The following example enables jumbo frames, increases the MTU on all interfaces, and changes the TCP
MSS for VPN traffic to 9078 (the MTU minus 120):
jumbo frame-reservation
mtu inside 9198
mtu outside 9198
sysopt connection tcpmss 9078
Note For an interface to count against the VLAN limit, you must assign a VLAN to it. For example:
interface gigabitethernet 0/0.100
vlan 100
Interfaces of all types comprise the maximum number of combined interfaces; for example, VLANs,
physical, redundant, bridge group, and EtherChannel interfaces. Every interface command defined in
the configuration counts against this limit. For example, both of the following interfaces count even if
the GigabitEthernet 0/0 interface is defined as part of port-channel 1:
interface gigabitethernet 0/0
and
interface port-channel 1
Failover
• When you use a redundant or EtherChannel interface as a failover link, it must be pre-configured on
both units in the failover pair; you cannot configure it on the primary unit and expect it to replicate
to the secondary unit because the failover link itself is required for replication.
• If you use a redundant or EtherChannel interface for the state link, no special configuration is
required; the configuration can replicate from the primary unit as normal.
• You can monitor redundant or EtherChannel interfaces for failover using the monitor-interface
command; be sure to reference the logical redundant interface name. When an active member
interface fails over to a standby interface, this activity does not cause the redundant or EtherChannel
interface to appear to be failed when being monitored for device-level failover. Only when all
physical interfaces fail does the redundant or EtherChannel interface appear to be failed (for an
EtherChannel interface, the number of member interfaces allowed to fail is configurable).
• If you use an EtherChannel interface for a failover or state link, then to prevent out-of-order packets,
only one interface in the EtherChannel is used. If that interface fails, then the next interface in the
EtherChannel is used. You cannot alter the EtherChannel configuration while it is in use as a failover
link. To alter the configuration, you need to either shut down the EtherChannel while you make
changes, or temporarily disable failover; either action prevents failover from occurring for the
duration.
• You cannot share a failover or state interface with a data interface.
Clustering
• When you use a redundant or EtherChannel interface as the cluster control link, it must be
pre-configured on all units in the cluster; you cannot configure it on the primary unit and expect it
to replicate to member units because the cluster control link itself is required for replication.
To configure a spanned EtherChannel or an individual cluster interface, see the clustering chapter.
Redundant Interfaces
• You can configure up to 8 redundant interface pairs.
• All ASA configuration refers to the logical redundant interface instead of the member physical
interfaces.
• You cannot use a redundant interface as part of an EtherChannel, nor can you use an EtherChannel
as part of a redundant interface. You cannot use the same physical interfaces in a redundant interface
and an EtherChannel interface. You can, however, configure both types on the ASA if they do not
use the same physical interfaces.
• If you shut down the active interface, then the standby interface becomes active.
• Redundant interfaces do not support Management slot/port interfaces as members. You also cannot
set a redundant interface comprised of non-Management interfaces as management-only.
EtherChannels
• You can configure up to 48 EtherChannels.
• Each channel group can have up to 16 active interfaces. For switches that support only 8 active
interfaces, you can assign up to 16 interfaces to a channel group: while only eight interfaces can be
active, the remaining interfaces can act as standby links in case of interface failure.
• All interfaces in the channel group must be the same type and speed. The first interface added to the
channel group determines the correct type and speed.
• The device to which you connect the ASA EtherChannel must also support 802.3ad EtherChannels;
for example, you can connect to the Catalyst 6500 switch or Cisco Nexus 7000 switch.
• The ASA does not support LACPDUs that are VLAN-tagged. If you enable native VLAN tagging
on the neighboring switch using the Cisco IOS vlan dot1Q tag native command, then the ASA will
drop the tagged LACPDUs. Be sure to disable native VLAN tagging on the neighboring switch. In
multiple context mode, these messages are not included in a packet capture, so that you cannot
diagnose the issue easily.
• The ASA does not support connecting an EtherChannel to a switch stack. If the ASA EtherChannel
is connected cross stack, and if the Master switch is powered down, then the EtherChannel
connected to the remaining switch will not come up.
• All ASA configuration refers to the logical EtherChannel interface instead of the member physical
interfaces.
• You cannot use a redundant interface as part of an EtherChannel, nor can you use an EtherChannel
as part of a redundant interface. You cannot use the same physical interfaces in a redundant interface
and an EtherChannel interface. You can, however, configure both types on the ASA if they do not
use the same physical interfaces.
Additional Guidelines
Some management-related services are not available until a non-management interface is enabled, and
the the ASA achieves a “System Ready” state. The ASA generates the following syslog message when
it is in a “System Ready” state:
%ASA-6-199002: Startup completed. Beginning operation.
Step 1 (Multiple context mode) Complete all tasks in this section in the system execution space. To change from
the context to the system execution space, enter the changeto system command.
Step 2 Enable the Physical Interface and Configure Ethernet Parameters, page 9-14.
Physical interfaces are disabled by default.
Step 3 (Optional) Configure a Redundant Interface, page 9-16.
A logical redundant interface pairs an active and a standby physical interface. When the active interface
fails, the standby interface becomes active and starts passing traffic.
Step 4 (Optional) Configure an EtherChannel, page 9-18.
An EtherChannel groups multiple Ethernet interfaces into a single logical interface.
Step 5 (Optional) See Configure VLAN Subinterfaces and 802.1Q Trunking, page 9-21.
Step 6 (Optional) Enable Jumbo Frame Support, page 9-22.
Step 7 (Multiple context mode only) To complete the configuration of interfaces in the system execution space,
perform the following tasks that are documented in Chapter 6, “Multiple Context Mode”:
• To assign interfaces to contexts, see Configure a Security Context, page 6-19.
• (Optional) To automatically assign unique MAC addresses to context interfaces, see Assign MAC
Addresses to Context Interfaces Automatically, page 6-23.
The MAC address is used to classify packets within a context. If you share an interface, but do not have
unique MAC addresses for the interface in each context, then the destination IP address is used to
classify packets. Alternatively, you can manually assign MAC addresses within the context according to
Configuring the MAC Address, MTU, and TCP MSS, page 11-9.
Step 8 Complete the interface configuration according to Chapter 11, “Routed Mode Interfaces,” or Chapter 12,
“Transparent Mode Interfaces.”
Procedure
interface physical_interface
Example:
ciscoasa(config)# interface gigabitethernet 0/0
The physical_interface ID includes the type, slot, and port number as type[slot/]port.
The physical interface types include the following:
• gigabitethernet
• tengigabitethernet
• management
Enter the type followed by slot/port, for example, gigabitethernet0/1. A space is optional between the
type and the slot/port.
Step 2 (Optional) Set the media type to SFP, if available for your model:
media-type sfp
Example:
ciscoasa(config-if)# speed 100
Example:
ciscoasa(config-if)# duplex full
The auto setting is the default. The duplex setting for an EtherChannel interface must be full or auto.
Step 5 (Optional) Enable pause (XOFF) frames for flow control on GigabitEthernet and TenGigabitEthernet
interfaces:
flowcontrol send on [low_water high_water pause_time] [noconfirm]
Example:
ciscoasa(config-if)# flowcontrol send on 95 200 10000
If you have a traffic burst, dropped packets can occur if the burst exceeds the buffering capacity of the
FIFO buffer on the NIC and the receive ring buffers. Enabling pause frames for flow control can alleviate
this issue. Pause (XOFF) and XON frames are generated automatically by the NIC hardware based on
the FIFO buffer usage. A pause frame is sent when the buffer usage exceeds the high-water mark. The
default high_water value is 128 KB (10 GigabitEthernet) and 24 KB (1 GigabitEthernet); you can set it
between 0 and 511 (10 GigabitEthernet) or 0 and 47 KB (1 GigabitEthernet). After a pause is sent, an
XON frame can be sent when the buffer usage is reduced below the low-water mark. By default, the
low_water value is 64 KB (10 GigabitEthernet) and 16 KB (1 GigabitEthernet); you can set it between
0 and 511 (10 GigabitEthernet) or 0 and 47 KB (1 GigabitEthernet). The link partner can resume traffic
after receiving an XON, or after the XOFF expires, as controlled by the timer value in the pause frame.
The default pause_time value is 26624; you can set it between 0 and 65535. If the buffer usage is
consistently above the high-water mark, pause frames are sent repeatedly, controlled by the pause refresh
threshold value.
When you use this command, you see the following warning:
Changing flow-control parameters will reset the interface. Packets may be lost during the
reset.
Proceed with flow-control changes?
To change the parameters without being prompted, use the noconfirm keyword.
Note Only flow control frames defined in 802.3x are supported. Priority-based flow control is not
supported.
ciscoasa(config-if)# no shutdown
To disable the interface, enter the shutdown command. If you enter the shutdown command, you also
shut down all subinterfaces. If you shut down an interface in the system execution space, then that
interface is shut down in all contexts that share it.
• You cannot add a physical interface to the redundant interface if you configured a name for it. You
must first remove the name using the no nameif command.
• For multiple context mode, complete this procedure in the system execution space. To change from
the context to the system execution space, enter the changeto system command.
Caution If you are using a physical interface already in your configuration, removing the name will clear any
configuration that refers to the interface.
Procedure
Example:
ciscoasa(config)# interface redundant 1
Example:
ciscoasa(config-if)# member-interface gigabitethernet 0/0
Example:
ciscoasa(config-if)# member-interface gigabitethernet 0/1
Make sure the second interface is the same physical type as the first interface.
To remove a member interface, enter the no member-interface physical_interface command. You
cannot remove both member interfaces from the redundant interface; the redundant interface requires at
least one member interface.
Examples
The following example creates two redundant interfaces:
ciscoasa(config)# interface redundant 1
ciscoasa(config-if)# member-interface gigabitethernet 0/0
ciscoasa(config-if)# member-interface gigabitethernet 0/1
ciscoasa(config-if)# interface redundant 2
ciscoasa(config-if)# member-interface gigabitethernet 0/2
ciscoasa(config-if)# member-interface gigabitethernet 0/3
Procedure
Example:
ciscoasa# show interface redundant1 detail | grep Member
Members GigabitEthernet0/3(Active), GigabitEthernet0/2
Configure an EtherChannel
This section describes how to create an EtherChannel port-channel interface, assign interfaces to the
EtherChannel, and customize the EtherChannel.
• Add Interfaces to the EtherChannel, page 9-18
• Customize the EtherChannel, page 9-20
Caution If you are using a physical interface already in your configuration, removing the name will clear any
configuration that refers to the interface.
Procedure
Step 1 Specify the interface you want to add to the channel group:
interface physical_interface
Example:
ciscoasa(config)# interface gigabitethernet 0/0
The physical_interface ID includes the type, slot, and port number as type[slot/]port. This first interface
in the channel group determines the type and speed for all other interfaces in the group.
In transparent mode, if you create a channel group with multiple Management interfaces, then you can
use this EtherChannel as the management-only interface.
Step 2 Assign this physical interface to an EtherChannel:
channel-group channel_id mode {active | passive | on}
Example:
ciscoasa(config-if)# channel-group 1 mode active
The channel_id is an integer between 1 and 48. If the port-channel interface for this channel ID does not
yet exist in the configuration, one will be added:
interface port-channel channel_id
Example:
ciscoasa(config-if)# lacp port-priority 12345
The priority number is an integer between 1 and 65535. The default is 32768. The higher the number,
the lower the priority. The ASA uses this setting to decide which interfaces are active and which are
standby if you assign more interfaces than can be used. If the port priority setting is the same for all
interfaces, then the priority is determined by the interface ID (slot/port). The lowest interface ID is the
highest priority. For example, GigabitEthernet 0/0 is a higher priority than GigabitEthernet 0/1.
If you want to prioritize an interface to be active even though it has a higher interface ID, then set this
command to have a lower value. For example, to make GigabitEthernet 1/3 active before GigabitEthernet
0/7, then make the lacp port-priority value be 12345 on the 1/3 interface vs. the default 32768 on the
0/7 interface.
If the device at the other end of the EtherChannel has conflicting port priorities, the system priority is
used to determine which port priorities to use. See the lacp system-priority command.
Step 4 Repeat Steps 1 through 3 for each interface you want to add to the channel group.
Each interface in the channel group must be the same type and speed. Half duplex is not supported. If
you add an interface that does not match, it will be placed in a suspended state.
Related Topics
• Link Aggregation Control Protocol, page 9-6
• Customize the EtherChannel, page 9-20
Procedure
Example:
ciscoasa(config)# interface port-channel 1
This interface was created automatically when you added an interface to the channel group. If you have
not yet added an interface, then this command creates the port-channel interface.
You need to add at least one member interface to the port-channel interface before you can configure
logical parameters for it such as a name.
Step 2 Specify the maximum number of active interfaces allowed in the channel group:
lacp max-bundle number
Example:
ciscoasa(config-if)# lacp max-bundle 6
The number is between 1 and 16. The default is 16. If your switch does not support 16 active interfaces,
be sure to set this command to 8 or fewer.
Step 3 Specify the minimum number of active interfaces required for the port-channel interface to become
active:
port-channel min-bundle number
Example:
ciscoasa(config-if)# port-channel min-bundle 2
The number is between 1 and 16. The default is 1. If the active interfaces in the channel group falls below
this value, then the port-channel interface goes down, and could trigger a device-level failover.
Step 4 Configure the load-balancing algorithm:
port-channel load-balance {dst-ip | dst-ip-port | dst-mac | dst-port | src-dst-ip |
src-dst-ip-port | src-dst-mac | src-dst-port | src-ip | src-ip-port | src-mac | src-port |
vlan-dst-ip | vlan-dst-ip-port | vlan-only | vlan-src-dst-ip | vlan-src-dst-ip-port |
vlan-src-ip | vlan-src-ip-port}
Example:
ciscoasa(config-if)# port-channel load-balance src-dst-mac
By default, the ASA balances the packet load on interfaces according to the source and destination IP
address (src-dst-ip) of the packet. If you want to change the properties on which the packet is
categorized, use this command. For example, if your traffic is biased heavily towards the same source
and destination IP addresses, then the traffic assignment to interfaces in the EtherChannel will be
unbalanced. Changing to a different algorithm can result in more evenly distributed traffic.
Step 5 Set the LACP system priority:
lacp system-priority number
Example:
ciscoasa(config)# lacp system-priority 12345
The number is between 1 and 65535. The default is 32768. The higher the number, the lower the priority.
This command is global for the ASA.
If the device at the other end of the EtherChannel has conflicting port priorities, the system priority is
used to determine which port priorities to use. For interface priorities within an EtherChannel, see the
lacp port-priority command.
Step 6 (Optional) Set the Ethernet properties for the port-channel interface to override the properties set on the
individual interfaces.
See Enable the Physical Interface and Configure Ethernet Parameters, page 9-14 for Ethernet
commands. This method provides a shortcut to set these parameters because these parameters must
match for all interfaces in the channel group.
Related Topics
• Load Balancing, page 9-7
• Add Interfaces to the EtherChannel, page 9-18
• The ASA does not support the Dynamic Trunking Protocol (DTP), so you must configure the
connected switch port to trunk unconditionally.
• For multiple context mode, complete this procedure in the system execution space. To change from
the context to the system execution space, enter the changeto system command.
Procedure
Example:
ciscoasa(config)# interface gigabitethernet 0/1.100
The redundant number argument is the redundant interface ID, such as redundant 1.
The port-channel number argument is the EtherChannel interface ID, such as port-channel 1.
The subinterface ID is an integer between 1 and 4294967293.
Step 2 Specify the VLAN for the subinterface:
vlan vlan_id
Example:
ciscoasa(config-subif)# vlan 101
The vlan_id is an integer between 1 and 4094. Some VLAN IDs might be reserved on connected
switches, so check the switch documentation for more information.
You can only assign a single VLAN to a subinterface, and you cannot assign the same VLAN to multiple
subinterfaces. You cannot assign a VLAN to the physical interface. Each subinterface must have a
VLAN ID before it can pass traffic. To change a VLAN ID, you do not need to remove the old VLAN
ID with the no option; you can enter the vlan command with a different VLAN ID, and the ASA changes
the old ID.
Related Topics
• Licensing for ASA Appliance Interfaces, page 9-10
• Be sure to set the MTU for each interface that needs to transmit jumbo frames to a higher value than
the default 1500; for example, set the value to 9198 using the mtu command. In multiple context
mode, set the MTU within each context.
• Be sure to adjust the TCP MSS, either to disable it for non-VPN traffic (use the sysopt connection
tcpmss 0 command), or to increase it in accord with the MTU.
Procedure
Examples
The following example enables jumbo frame reservation, saves the configuration, and reloads the ASA:
ciscoasa(config)# jumbo-frame reservation
WARNING: this command will take effect after the running-config is saved
and the system has been rebooted. Command accepted.
Related Topics
• Control Fragmentation with the Maximum Transmission Unit and TCP Maximum Segment Size,
page 9-7
• Configuring the MAC Address, MTU, and TCP MSS, page 11-9
Monitoring Interfaces
See the following commands:
• show interface
Displays interface statistics.
• show interface ip brief
Displays interface IP addresses and status.
• show lacp {[channel_group_number] {counters | internal | neighbor} | sys-id}
For EtherChannel, displays LACP information such as traffic statistics, system identifier and
neighbor details.
• show port-channel [channel_group_number] [brief | detail | port | protocol | summary]
For EtherChannel, displays EtherChannel information in a detailed and one-line summary form.
This command also displays the port and port-channel information.
EtherChannel Example
The following example configures three interfaces as part of an EtherChannel. It also sets the system
priority to be a higher priority, and GigabitEthernet 0/2 to be a higher priority than the other interfaces
in case more than eight interfaces are assigned to the EtherChannel.
lacp system-priority 1234
interface GigabitEthernet0/0
channel-group 1 mode active
interface GigabitEthernet0/1
channel-group 1 mode active
interface GigabitEthernet0/2
lacp port-priority 1234
channel-group 1 mode passive
interface Port-channel1
lacp max-bundle 4
port-channel min-bundle 2
port-channel load-balance dst-ip
Increased VLANs for the ASA 5580 8.1(2) The number of VLANs supported on the ASA 5580 are
increased from 100 to 250.
Support for Pause Frames for Flow Control on 8.2(2) You can now enable pause (XOFF) frames for flow control.
the ASA 5580 Ten Gigabit Ethernet Interfaces
This feature is also supported on the ASA 5585-X.
We introduced the following command: flowcontrol.
Support for Pause Frames for Flow Control on 8.2(5)/8.4(2) You can now enable pause (XOFF) frames for flow control
Gigabit Ethernet Interfaces for Gigabit Ethernet interfaces on all models.
We modified the following command: flowcontrol.
This chapter includes tasks for starting your interface configuration for the Cisco ASAv, including
configuring Ethernet settings, redundant interfaces, and VLAN subinterfaces.
• Information About Starting ASAv Interface Configuration, page 10-1
• Licensing Requirements for ASAv Interfaces, page 10-5
• Guidelines and Limitations, page 10-6
• Default Settings, page 10-7
• Starting Interface Configuration (ASAv), page 10-7
• Monitoring Interfaces, page 10-14
• Configuration Examples for ASAv Interfaces, page 10-14
• Where to Go Next, page 10-14
• Feature History for ASAv Interfaces, page 10-15
ASAv Interfaces
The ASAv includes the following Gigabit Ethernet interfaces:
• Management 0/0
• GigabitEthernet 0/0 through 0/8. Note that the GigabitEthernet 0/8 is used for the failover link when
you deploy the ASAv as part of a failover pair.
Supported vNICs
The ASAv supports the following vNICs:
Hypervisor Support
vNIC Type VMware KVM ASAv Version Notes
e1000 Yes Yes 9.2(1) and later VMware default.
Virtio No Yes 9.3(2.200) and later KVM default.
Management Interface
• Management Interface Overview, page 10-2
• Using Any Interface for Management-Only Traffic, page 10-2
• Management Interface for Transparent Mode, page 10-3
• No Through Traffic Support, page 10-3
Note In transparent firewall mode, the management interface updates the MAC address table in the same
manner as a data interface; therefore you should not connect both a management and a data interface to
the same switch unless you configure one of the switch ports as a routed port (by default Catalyst
switches share a MAC address for all VLAN switch ports). Otherwise, if traffic arrives on the
management interface from the physically-connected switch, then the ASA updates the MAC address
table to use the management interface to access the switch, instead of the data interface. This action
causes a temporary traffic interruption; the ASA will not re-update the MAC address table for packets
from the switch to the data interface for at least 30 seconds for security reasons.
Redundant Interfaces
A logical redundant interface consists of a pair of physical interfaces: an active and a standby interface.
When the active interface fails, the standby interface becomes active and starts passing traffic. You can
configure a redundant interface to increase the ASA reliability. This feature is separate from device-level
failover, but you can configure redundant interfaces as well as device-level failover if desired.
MTU Overview
The maximum transmission unit (MTU) specifies the maximum frame payload size that the ASA can
transmit on a given Ethernet interface. The MTU value is the frame size without Ethernet headers, FCS,
or VLAN tagging. The Ethernet header is 14 bytes and the FCS is 4 bytes. When you set the MTU to
1500, the expected frame size is 1518 bytes including the headers. If you are using VLAN tagging
(which adds an additional 4 bytes), then when you set the MTU to 1500, the expected frame size is 1522.
Do not set the MTU value higher to accommodate these headers. For information about accommodating
TCP headers for encapsulation, do not alter the MTU setting; instead change the TCP Maximum
Segment Size (TCP Maximum Segment Size Overview, page 10-4).
Note The ASA can receive frames larger than the configured MTU as long as there is room in memory. See
Enabling Jumbo Frame Support, page 10-13 to increase memory for larger frames.
Default MTU
The default MTU on the ASA is 1500 bytes. This value does not include the 18 or more bytes for the
Ethernet header, CRC, VLAN tagging, and so on.
You can set the TCP MSS on the ASA. If either endpoint of a connection requests a TCP MSS that is
larger than the value set on the ASA, the ASA overwrites the TCP MSS in the request packet with the
ASA maximum. If the host or server does not request a TCP MSS, then the ASA assumes the RFC
793-default value of 536 bytes, but does not modify the packet. You can also configure the minimum
TCP MSS; if a host or server requests a very small TCP MSS, the ASA can adjust the value up. By
default, the minimum TCP MSS is not enabled.
For example, you configure the default MTU of 1500 bytes. A host requests an MSS of 1700. If the ASA
maximum TCP MSS is 1380, then the ASA changes the MSS value in the TCP request packet to 1380.
The server then sends 1380-byte packets.
Examples
The following example enables jumbo frames, increases the MTU on all interfaces, and disables the TCP
MSS for non-VPN traffic (by setting the TCP MSS to 0, which means there is no limit):
jumbo frame-reservation
mtu inside 9000
mtu outside 9000
sysopt connection tcpmss 0
The following example enables jumbo frames, increases the MTU on all interfaces, and changes the TCP
MSS for VPN traffic to 8880 (the MTU minus 120):
jumbo frame-reservation
mtu inside 9000
mtu outside 9000
sysopt connection tcpmss 8880
Note For an interface to count against the VLAN limit, you must assign a VLAN to it. For example:
interface gigabitethernet 0/0.100
vlan 100
Interfaces of all types comprise the maximum number of combined interfaces; for example, VLANs,
physical, redundant, and bridge group interfaces. Every interface command defined in the configuration
counts against this limit.
Failover Guidelines
• When you use a redundant interface as a failover link, it must be pre-configured on both units in the
failover pair; you cannot configure it on the primary unit and expect it to replicate to the secondary
unit because the failover link itself is required for replication.
• If you use a redundant interface for the state link, no special configuration is required; the
configuration can replicate from the primary unit as normal.
• You can monitor redundant interfaces for failover using the monitor-interface command; be sure
to reference the logical redundant interface name. When an active member interface fails over to a
standby interface, this activity does not cause the redundant interface to appear to be failed when
being monitored for device-level failover. Only when all physical interfaces fail does the redundant
interface appear to be failed.
• You cannot share a failover or state interface with a data interface.
• All ASA configuration refers to the logical redundant interface instead of the member physical
interfaces.
• If you shut down the active interface, then the standby interface becomes active.
• You cannot set a redundant interface as management-only.
• For failover guidelines, see Failover Guidelines, page 10-6.
Default Settings
This section lists default settings for interfaces if you do not have a factory default configuration. For
information about the factory default configurations, see Factory Default Configurations, page 2-13.
Default vNIC
All interfaces use the E1000 emulation.
Step 1 Enable the physical interface, and optionally change Ethernet parameters. See Enabling the Physical
Interface and Configuring Ethernet Parameters, page 10-8.
Physical interfaces are disabled by default.
Step 2 (Optional) Configure redundant interface pairs. See Configuring a Redundant Interface, page 10-10.
A logical redundant interface pairs an active and a standby physical interface. When the active interface
fails, the standby interface becomes active and starts passing traffic.
Step 3 (Optional) Configure VLAN subinterfaces. See Configuring VLAN Subinterfaces and 802.1Q Trunking,
page 10-12.
Step 4 (Optional) Enable jumbo frame support according to Enabling Jumbo Frame Support, page 10-13.
Detailed Steps
Command Purpose
Step 1 interface physical_interface Specifies the interface that you want to configure.
where the physical_interface ID includes the type, slot, and port
Example: number as type[slot/]port.
ciscoasa(config)# interface
gigabitethernet 0/0
The physical interface types include the following:
• gigabitethernet
• management
Enter the type followed by slot/port, for example,
gigabitethernet0/1. A space is optional between the type and the
slot/port.
Step 2 (Optional) Sets the speed. The default setting is auto.
speed {auto | 10 | 100 | 1000}
Example:
ciscoasa(config-if)# speed 100
Step 3 (Optional) Sets the duplex. The auto setting is the default.
duplex {auto | full | half}
Example:
ciscoasa(config-if)# duplex full
Command Purpose
Step 4 (Optional) Enables pause (XOFF) frames for flow control.
flowcontrol send on [low_water high_water If you have a traffic burst, dropped packets can occur if the burst
pause_time] [noconfirm] exceeds the buffering capacity of the FIFO buffer on the NIC and
the receive ring buffers. Enabling pause frames for flow control
Example: can alleviate this issue. Pause (XOFF) and XON frames are
ciscoasa(config-if)# flowcontrol send on generated automatically by the NIC hardware based on the FIFO
95 200 10000 buffer usage. A pause frame is sent when the buffer usage exceeds
the high-water mark. The default high_water value is 24 KB; you
can set it between 0 and 47 KB. After a pause is sent, an XON
frame can be sent when the buffer usage is reduced below the
low-water mark. By default, the low_water value is 16 KB; you
can set it between 0 and 47 KB. The link partner can resume
traffic after receiving an XON, or after the XOFF expires, as
controlled by the timer value in the pause frame. The default
pause_time value is 26624; you can set it between 0 and 65535. If
the buffer usage is consistently above the high-water mark, pause
frames are sent repeatedly, controlled by the pause refresh
threshold value.
When you use this command, you see the following warning:
Changing flow-control parameters will reset the
interface. Packets may be lost during the reset.
Proceed with flow-control changes?
What to Do Next
Optional Tasks:
• Configure redundant interface pairs. See Configuring a Redundant Interface, page 10-10.
• Configure VLAN subinterfaces. See Configuring VLAN Subinterfaces and 802.1Q Trunking,
page 10-12.
• Configure jumbo frame support. See Enabling Jumbo Frame Support, page 10-13.
Required Tasks:
• Complete the interface configuration. See Chapter 11, “Routed Mode Interfaces,” or Chapter 12,
“Transparent Mode Interfaces.”
Prerequisites
• Both member interfaces must be of the same physical type. For example, both must be
GigabitEthernet.
• You cannot add a physical interface to the redundant interface if you configured a name for it. You
must first remove the name using the no nameif command.
Caution If you are using a physical interface already in your configuration, removing the name will clear any
configuration that refers to the interface.
Detailed Steps
Command Purpose
Step 1 interface redundant number Adds the logical redundant interface, where the number argument
is an integer between 1 and 8.
Example: Note You need to add at least one member interface to the
ciscoasa(config)# interface redundant 1 redundant interface before you can configure logical
parameters for it such as a name.
Command Purpose
Step 2 member-interface physical_interface Adds the first member interface to the redundant interface. After
you add the interface, any configuration for it (such as an IP
address) is removed.
Example:
ciscoasa(config-if)# member-interface
gigabitethernet 0/0
Step 3 member-interface physical_interface Adds the second member interface to the redundant interface.
Make sure the second interface is the same physical type as the
Example: first interface.
ciscoasa(config-if)# member-interface
gigabitethernet 0/1
To remove a member interface, enter the no member-interface
physical_interface command. You cannot remove both member
interfaces from the redundant interface; the redundant interface
requires at least one member interface.
Examples
What to Do Next
Optional Task:
• Configure VLAN subinterfaces. See Configuring VLAN Subinterfaces and 802.1Q Trunking,
page 10-12.
• Configure jumbo frame support. See Enabling Jumbo Frame Support, page 10-13.
Required Tasks:
• Complete the interface configuration. See Chapter 11, “Routed Mode Interfaces,” or Chapter 12,
“Transparent Mode Interfaces.”
For example:
ciscoasa# show interface redundant1 detail | grep Member
Members GigabitEthernet0/3(Active), GigabitEthernet0/2
where the redundantnumber argument is the redundant interface ID, such as redundant1.
• Maximum subinterfaces—To determine how many VLAN subinterfaces are allowed for your model,
see Licensing Requirements for ASAv Interfaces, page 10-5.
• Preventing untagged packets on the physical interface—If you use subinterfaces, you typically do
not also want the physical interface to pass traffic, because the physical interface passes untagged
packets. This property is also true for the active physical interface in a redundant interface pair.
Because the physical or redundant interface must be enabled for the subinterface to pass traffic,
ensure that the physical or redundant interface does not pass traffic by leaving out the nameif
command. If you want to let the physical or redundant interface pass untagged packets, you can
configure the nameif command as usual. See Chapter 11, “Routed Mode Interfaces,” or Chapter 12,
“Transparent Mode Interfaces,” for more information about completing the interface configuration.
Detailed Steps
Command Purpose
Step 1 interface {physical_interface | redundant Specifies the new subinterface. See Enabling the Physical
number}.subinterface Interface and Configuring Ethernet Parameters, page 10-8 for a
description of the physical interface ID.
Example: The redundant number argument is the redundant interface ID,
ciscoasa(config)# interface such as redundant 1.
gigabitethernet 0/1.100
The subinterface ID is an integer between 1 and 4294967293.
Step 2 vlan vlan_id Specifies the VLAN for the subinterface. The vlan_id is an integer
between 1 and 4094. Some VLAN IDs might be reserved on
connected switches, so check the switch documentation for more
Example:
ciscoasa(config-subif)# vlan 101
information.
You can only assign a single VLAN to a subinterface, and you
cannot assign the same VLAN to multiple subinterfaces. You
cannot assign a VLAN to the physical interface. Each subinterface
must have a VLAN ID before it can pass traffic. To change a
VLAN ID, you do not need to remove the old VLAN ID with the
no option; you can enter the vlan command with a different
VLAN ID, and the ASA changes the old ID.
What to Do Next
Optional Task:
• Configure jumbo frame support. See Enabling Jumbo Frame Support, page 10-13.
Required Tasks:
• Complete the interface configuration. See Chapter 11, “Routed Mode Interfaces,” or Chapter 12,
“Transparent Mode Interfaces.”
Prerequisites
Detailed Steps
Command Purpose
jumbo-frame reservation Enables jumbo frame support. To disable jumbo frames, use the no form of
this command.
Example:
ciscoasa(config)# jumbo-frame reservation
Examples
The following example enables jumbo frame reservation, saves the configuration, and reloads the ASA:
ciscoasa(config)# jumbo-frame reservation
WARNING: this command will take effect after the running-config is saved
and the system has been rebooted. Command accepted.
What to Do Next
Complete the interface configuration. See Chapter 11, “Routed Mode Interfaces,” or Chapter 12,
“Transparent Mode Interfaces.”
Monitoring Interfaces
To monitor interfaces, enter one of the following commands:
Command Purpose
show interface Displays interface statistics.
show interface ip brief Displays interface IP addresses and status.
Where to Go Next
Complete the interface configuration according to Chapter 11, “Routed Mode Interfaces,” or Chapter 12,
“Transparent Mode Interfaces.”
Platform
Feature Name Releases Feature Information
ASAv support 9.2(1) The ASAv was introduced.
This chapter includes tasks to complete the interface configuration for all models in routed firewall
mode.
• Information About Completing Interface Configuration in Routed Mode, page 11-1
• Licensing Requirements for Completing Interface Configuration in Routed Mode, page 11-2
• Guidelines and Limitations, page 11-4
• Default Settings, page 11-5
• Completing Interface Configuration in Routed Mode, page 11-5
• Turning Off and Turning On Interfaces, page 11-16
• Monitoring Interfaces, page 11-16
• Feature History for Interfaces in Routed Mode, page 11-17
Note For multiple context mode, complete the tasks in this section in the context execution space. Enter the
changeto context name command to change to the context you want to configure.
Security Levels
Each interface must have a security level from 0 (lowest) to 100 (highest). For example, you should
assign your most secure network, such as the inside host network, to level 100. While the outside
network connected to the Internet can be level 0. Other networks, such as DMZs can be in between. You
can assign interfaces to the same security level. See Allowing Same Security Level Communication,
page 11-14 for more information.
The level controls the following behavior:
• Network access—By default, there is an implicit permit from a higher security interface to a lower
security interface (outbound). Hosts on the higher security interface can access any host on a lower
security interface. You can limit access by applying an ACL to the interface.
If you enable communication for same security interfaces (see Allowing Same Security Level
Communication, page 11-14), there is an implicit permit for interfaces to access other interfaces on
the same security level or lower.
• Inspection engines—Some application inspection engines are dependent on the security level. For
same security interfaces, inspection engines apply to traffic in either direction.
– NetBIOS inspection engine—Applied only for outbound connections.
– SQL*Net inspection engine—If a control connection for the SQL*Net (formerly OraServ) port
exists between a pair of hosts, then only an inbound data connection is permitted through the
ASA.
• Filtering—HTTP(S) and FTP filtering applies only for outbound connections (from a higher level
to a lower level).
If you enable communication for same security interfaces, you can filter traffic in either direction.
• established command—This command allows return connections from a lower security host to a
higher security host if there is already an established connection from the higher level host to the
lower level host.
If you enable communication for same security interfaces, you can configure established commands
for both directions.
Note For an interface to count against the VLAN limit, you must assign a VLAN to it. For example:
interface gigabitethernet 0/0.100
vlan 100
Interfaces of all types comprise the maximum number of combined interfaces; for example, VLANs,
physical, redundant, bridge group, and EtherChannel interfaces. Every interface command defined in
the configuration counts against this limit. For example, both of the following interfaces count even if
the GigabitEthernet 0/0 interface is defined as part of port-channel 1:
interface gigabitethernet 0/0
and
interface port-channel 1
Failover Guidelines
Do not finish configuring failover interfaces with the procedures in this chapter. See Chapter 7, “Failover
for High Availability,” to configure the failover and state links. In multiple context mode, failover
interfaces are configured in the system configuration.
IPv6 Guidelines
Supports IPv6.
Default Settings
This section lists default settings for interfaces if you do not have a factory default configuration. For
information about the factory default configurations, see Factory Default Configurations, page 2-13.
Note If you change the security level of an interface, and you do not want to wait for existing connections to
time out before the new security information is used, you can clear the connections using the
clear local-host command.
If you are using failover, do not use this procedure to name interfaces that you are reserving for failover
and Stateful Failover communications. See Chapter 7, “Failover for High Availability,” to configure the
failover and state links.
Restrictions
Prerequisites
Detailed Steps
Command Purpose
Step 1 For the ASA 5512-X and higher and ASAv: If you are not already in interface configuration mode, enters
interface {{redundant number | interface configuration mode.
port-channel number | The redundant number argument is the redundant interface ID,
physical_interface}[.subinterface] |
mapped_name}
such as redundant 1.
The port-channel number argument is the EtherChannel interface
For the ASASM: ID, such as port-channel 1.
ciscoasa(config)# interface {vlan number |
See Enable the Physical Interface and Configure Ethernet
mapped_name}
Parameters, page 9-14 section for a description of the physical
interface ID.
Example: Append the subinterface ID to the physical or redundant interface
ciscoasa(config)# interface
gigabithethernet 0/0
ID separated by a period (.).
In multiple context mode, enter the mapped_name if one was
assigned using the allocate-interface command.
Step 2 nameif name Names the interface.
The name is a text string up to 48 characters, and is not
Example: case-sensitive. You can change the name by reentering this
ciscoasa(config-if)# nameif inside command with a new value. Do not enter the no form, because
that command causes all commands that refer to that name to be
deleted.
Step 3 Do one of the following:
ip address ip_address [mask] [standby Sets the IP address manually.
ip_address]
Note For use with failover, you must set the IP address and
standby address manually; DHCP and PPPoE are not
Example: supported.
ciscoasa(config-if)# ip address 10.1.1.1
255.255.255.0 standby 10.1.1.2 The ip_address and mask arguments set the interface IP address
and subnet mask.
The standby ip_address argument is used for failover. See
Configure Active/Standby Failover, page 7-25 or the Configure
Active/Active Failover, page 7-29 for more information.
Command Purpose
ip address dhcp [setroute] Obtains an IP address from a DHCP server.
The setroute keyword lets the ASA use the default route supplied
Example: by the DHCP server.
ciscoasa(config-if)# ip address dhcp
Reenter this command to reset the DHCP lease and request a new
lease.
If you do not enable the interface using the no shutdown
command before you enter the ip address dhcp command, some
DHCP requests might not be sent.
To obtain an IP address from a PPPoE server, see PPPoE is not supported in multiple context mode.
the VPN configuration guide.
Step 4 security-level number Sets the security level, where number is an integer between 0
(lowest) and 100 (highest). See Security Levels, page 11-1.
Example:
ciscoasa(config-if)# security-level 50
Step 5 (Optional) Sets an interface to management-only mode so that it does not
management-only pass through traffic.
By default, Management interfaces are configured as
management-only. To disable this setting, enter the no
Example:
ciscoasa(config-if)# management-only
management-only command.
(ASA 5512-X through ASA 5555-X) You cannot disable
management-only on the Management 0/0 interface.
The management-only command is not supported for a
redundant interface.
Example
The following example configures parameters in multiple context mode for the context configuration.
The interface ID is a mapped name.
ciscoasa/contextA(config)# interface int1
ciscoasa/contextA(config-if)# nameif outside
ciscoasa/contextA(config-if)# security-level 100
ciscoasa/contextA(config-if)# ip address 10.1.2.1 255.255.255.0
What to Do Next
• (Optional) Configure the MAC address and the MTU. See Configuring the MAC Address, MTU,
and TCP MSS, page 11-9.
• (Optional) Configure IPv6 addressing. See Configuring IPv6 Addressing, page 11-11.
By default, the physical interface uses the burned-in MAC address, and all subinterfaces of a physical
interface use the same burned-in MAC address.
For the ASASM, all VLANs use the same MAC address provided by the backplane.
A redundant interface uses the MAC address of the first physical interface that you add. If you change
the order of the member interfaces in the configuration, then the MAC address changes to match the
MAC address of the interface that is now listed first. If you assign a MAC address to the redundant
interface using this command, then it is used regardless of the member interface MAC addresses.
For an EtherChannel, all interfaces that are part of the channel group share the same MAC address. This
feature makes the EtherChannel transparent to network applications and users, because they only see the
one logical connection; they have no knowledge of the individual links. The port-channel interface uses
the lowest numbered channel group interface MAC address as the port-channel MAC address.
Alternatively you can manually configure a MAC address for the port-channel interface. In multiple
context mode, you can automatically assign unique MAC addresses to interfaces, including an
EtherChannel port interface. We recommend manually, or in multiple context mode, automatically
configuring a unique MAC address in case the group channel interface membership changes. If you
remove the interface that was providing the port-channel MAC address, then the port-channel MAC
address changes to the next lowest numbered interface, thus causing traffic disruption.
In multiple context mode, if you share an interface between contexts, you can assign a unique MAC
address to the interface in each context. This feature lets the ASA easily classify packets into the
appropriate context. Using a shared interface without unique MAC addresses is possible, but has some
limitations. See How the ASA Classifies Packets, page 6-3 for more information. You can assign each
MAC address manually, or you can automatically generate MAC addresses for shared interfaces in
contexts. See Assign MAC Addresses to Context Interfaces Automatically, page 6-23 to automatically
generate MAC addresses. If you automatically generate MAC addresses, you can use this procedure to
override the generated address.
For single context mode, or for interfaces that are not shared in multiple context mode, you might want
to assign unique MAC addresses to subinterfaces. For example, your service provider might perform
access control based on the MAC address.
See Control Fragmentation with the Maximum Transmission Unit and TCP Maximum Segment Size,
page 9-7.
Prerequisites
• In multiple context mode, complete this procedure in the context execution space. To change from
the system to a context configuration, enter the changeto context name command.
• To increase the MTU above 1500, enable jumbo frames according to Enable Jumbo Frame Support,
page 9-22. Jumbo frames are supported by default on the ASASM; you do not need to enable them.
Detailed Steps
Command Purpose
Step 1 For the ASA 5512-X and higher and the ASAv: If you are not already in interface configuration mode, enters
interface {{redundant number | interface configuration mode.
port-channel number | The redundant number argument is the redundant interface ID,
physical_interface}[.subinterface] |
mapped_name}
such as redundant 1.
The port-channel number argument is the EtherChannel interface
For the ASASM: ID, such as port-channel 1.
ciscoasa(config)# interface {vlan number |
See Enable the Physical Interface and Configure Ethernet
mapped_name}
Parameters, page 9-14 section for a description of the physical
interface ID.
Example: Append the subinterface ID to the physical or redundant interface
ciscoasa(config)# interface vlan 100
ID separated by a period (.).
In multiple context mode, enter the mapped_name if one was
assigned using the allocate-interface command.
Step 2 mac-address mac_address Assigns a private MAC address to this interface. The mac_address
[standby mac_address] is in H.H.H format, where H is a 16-bit hexadecimal digit. For
example, the MAC address 00-0C-F1-42-4C-DE is entered as
Example: 000C.F142.4CDE.
ciscoasa(config-if)# mac-address The first two bytes of a manual MAC address cannot be A2 if you
000C.F142.4CDE
also want to use auto-generated MAC addresses.
For use with failover, set the standby MAC address. If the active
unit fails over and the standby unit becomes active, the new active
unit starts using the active MAC addresses to minimize network
disruption, while the old active unit uses the standby address.
Step 3 mtu interface_name bytes Sets the MTU between 300 and 9198 bytes (9000 for the ASAv).
The default is 1500 bytes.
Example: Note When you set the MTU for a redundant or port-channel
ciscoasa(config)# mtu inside 9200 interface, the ASA applies the setting to all member
interfaces.
For models that support jumbo frames, if you enter a value for any
interface that is greater than 1500, then you need to enable jumbo
frame support. See Enable Jumbo Frame Support, page 9-22.
Step 4 sysopt connection tcpmss [minimum] bytes Sets the maximum TCP segment size in bytes, between 48 and any
maximum number. The default value is 1380 bytes. You can
disable this feature by setting bytes to 0.
Example:
ciscoasa(config)# sysopt connection tcpmss For the minimum keyword, sets the maximum segment size to be
8500 no less than bytes, between 48 and 65535. The minimum feature
ciscoasa(config)# sysopt connection tcpmss
is disabled by default (set to 0).
minimum 1290
What to Do Next
(Optional) Configure IPv6 addressing. See Configuring IPv6 Addressing, page 11-11.
IPv6 Addressing
Note If you want to only configure the link-local addresses, see the ipv6 enable (to auto-configure) or ipv6
address link-local (to manually configure) command in the command reference.
RFC 3513: Internet Protocol Version 6 (IPv6) Addressing Architecture requires that the interface
identifier portion of all unicast IPv6 addresses, except those that start with binary value 000, be 64 bits
long and be constructed in Modified EUI-64 format. The ASA can enforce this requirement for hosts
attached to the local link.
When this feature is enabled on an interface, the source addresses of IPv6 packets received on that
interface are verified against the source MAC addresses to ensure that the interface identifiers use the
Modified EUI-64 format. If the IPv6 packets do not use the Modified EUI-64 format for the interface
identifier, the packets are dropped and the following system log message is generated:
%ASA-3-325003: EUI-64 source address check failed.
The address format verification is only performed when a flow is created. Packets from an existing flow
are not checked. Additionally, the address verification can only be performed for hosts on the local link.
Packets received from hosts behind a router will fail the address format verification, and be dropped,
because their source MAC address will be the router MAC address and not the host MAC address.
Note Configuring the global address automatically configures the link-local address, so you do not need to
configure it separately.
Restrictions
Prerequisites
Detailed Steps
Command Purpose
Step 1 For the ASA 5512-X and higher and the ASAv: If you are not already in interface configuration mode, enters
interface {{redundant number | interface configuration mode.
port-channel number | The redundant number argument is the redundant interface ID,
physical_interface}[.subinterface] |
mapped_name}
such as redundant 1.
The port-channel number argument is the EtherChannel interface
For the ASASM: ID, such as port-channel 1.
ciscoasa(config)# interface {vlan number |
See Enable the Physical Interface and Configure Ethernet
mapped_name}
Parameters, page 9-14 for a description of the physical interface
ID.
Example: Append the subinterface ID to the physical or redundant interface
ciscoasa(config)# interface
gigabithethernet 0/0
ID separated by a period (.).
In multiple context mode, enter the mapped_name if one was
assigned using the allocate-interface command.
Step 2 Do one of the following:
Command Purpose
ipv6 address autoconfig Enables stateless autoconfiguration on the interface. Enabling
stateless autoconfiguration on the interface configures IPv6
addresses based on prefixes received in Router Advertisement
Example:
ciscoasa(config-if)# ipv6 address
messages. A link-local address, based on the Modified EUI-64
autoconfig interface ID, is automatically generated for the interface when
stateless autoconfiguration is enabled.
Note Although RFC 4862 specifies that hosts configured for
stateless autoconfiguration do not send Router
Advertisement messages, the ASA does send Router
Advertisement messages in this case. See the ipv6 nd
suppress-ra command to suppress messages.
ipv6 address ipv6-address/prefix-length Assigns a global address to the interface. When you assign a
[standby ipv6-address] global address, the link-local address is automatically created for
the interface.
Example: standby specifies the interface address used by the secondary unit
ciscoasa(config-if)# ipv6 address or failover group in a failover pair.
2001:0DB8::BA98:0:3210/48
ipv6 address ipv6-prefix/prefix-length Assigns a global address to the interface by combining the
eui-64 specified prefix with an interface ID generated from the interface
MAC address using the Modified EUI-64 format. When you
Example: assign a global address, the link-local address is automatically
ciscoasa(config-if)# ipv6 address created for the interface.
2001:0DB8::BA98::/48 eui-64
You do not need to specify the standby address; the interface ID
will be generated automatically.
Step 3 (Optional) Enforces the use of Modified EUI-64 format interface identifiers
ipv6 enforce-eui64 if_name in IPv6 addresses on a local link.
The if_name argument is the name of the interface, as specified by
the nameif command, on which you are enabling the address
Example:
ciscoasa(config)# ipv6 enforce-eui64
format enforcement.
inside See Modified EUI-64 Interface IDs, page 11-11 for more
information.
Allowing interfaces on the same security level to communicate with each other provides the following
benefits:
• You can configure more than 101 communicating interfaces.
If you use different levels for each interface and do not assign any interfaces to the same security
level, you can configure only one interface per level (0 to 100).
• You want traffic to flow freely between all same security interfaces without ACLs.
If you enable same security interface communication, you can still configure interfaces at different
security levels as usual.
Intra-interface communication might be useful for VPN traffic that enters an interface, but is then routed
out the same interface. The VPN traffic might be unencrypted in this case, or it might be reencrypted for
another VPN connection. For example, if you have a hub and spoke VPN network, where the ASA is the
hub, and remote VPN networks are spokes, for one spoke to communicate with another spoke, traffic
must go into the ASA and then out again to the other spoke.
Note All traffic allowed by this feature is still subject to firewall rules. Be careful not to create an asymmetric
routing situation that can cause return traffic not to traverse the ASA.
For the ASASM, before you can enable this feature, you must first correctly configure the MSFC so that
packets are sent to the ASA MAC address instead of being sent directly through the switch to the
destination host. Figure 11-1 shows a network where hosts on the same interface need to communicate.
Host
IP cloud-2
Vlan60
10.6.37.0
MSFC
Vlan70 Vlan10
IP cloud-1 IP cloud-3
10.6.36.0 10.6.35.0
Host Host
SVI, Vlan20
10.6.34.0
ASA
The following sample configuration shows the Cisco IOS route-map commands used to enable policy
routing in the network shown in Figure 11-1:
route-map intra-inter3 permit 0
match ip address 103
set interface Vlan20
set ip next-hop 10.6.34.7
!
route-map intra-inter2 permit 20
match ip address 102
set interface Vlan20
set ip next-hop 10.6.34.7
!
route-map intra-inter1 permit 10
match ip address 101
set interface Vlan20
set ip next-hop 10.6.34.7
Detailed Steps
Command Purpose
same-security-traffic permit Enables interfaces on the same security level so that they can communicate
inter-interface with each other.
same-security-traffic permit Enables communication between hosts connected to the same interface.
intra-interface
Detailed Steps
Command Purpose
Step 1 ciscoasa(config)# interface {vlan number | If you are not already in interface configuration mode, enters
mapped_name} interface configuration mode.
In multiple context mode, enter the mapped_name if one was
Example: assigned using the allocate-interface command.
ciscoasa(config)# interface vlan 100
Step 2 shutdown Disables the interface.
Example:
ciscoasa(config-if)# shutdown
Step 3 no shutdown Reenables the interface.
Example:
ciscoasa(config-if)# no shutdown
Monitoring Interfaces
To monitor interfaces, enter one of the following commands:
Command Purpose
show interface Displays interface statistics.
show interface ip brief Displays interface IP addresses and status.
Increased VLANs for the ASA 5580 8.1(2) The number of VLANs supported on the ASA 5580 are
increased from 100 to 250.
IPv6 support for transparent mode 8.2(1) IPv6 support was introduced for transparent firewall mode.
Support for Pause Frames for Flow Control on 8.2(2) You can now enable pause (XOFF) frames for flow control.
the ASA 5580 10 Gigabit Ethernet Interfaces
We introduced the following command: flowcontrol.
This chapter includes tasks to complete the interface configuration for all models in transparent firewall
mode.
• Information About Transparent Mode Interfaces, page 12-1
• Licensing Requirements for Transparent Mode Interfaces, page 12-2
• Guidelines and Limitations for Transparent Mode Interfaces, page 12-4
• Default Settings for Transparent Mode Interfaces, page 12-5
• Completing Interface Configuration in Transparent Mode, page 12-6
• Turning Off and Turning On Interfaces, page 12-17
• Monitoring Interfaces, page 12-17
• Configuration Examples for Transparent Mode Interfaces, page 12-18
• Feature History for Transparent Mode Interfaces, page 12-19
Note For multiple context mode, complete the tasks in this section in the context execution space. Enter the
changeto context name command to change to the context you want to configure.
Each bridge group requires a management IP address. For another method of management, see
Management Interface, page 9-2.
Note The ASA does not support traffic on secondary networks; only traffic on the same network as the
management IP address is supported.
Security Levels
Each interface must have a security level from 0 (lowest) to 100 (highest). For example, you should
assign your most secure network, such as the inside host network, to level 100. While the outside
network connected to the Internet can be level 0. Other networks, such as DMZs can be in between. You
can assign interfaces to the same security level. See Allowing Same Security Level Communication,
page 12-16 for more information.
The level controls the following behavior:
• Network access—By default, there is an implicit permit from a higher security interface to a lower
security interface (outbound). Hosts on the higher security interface can access any host on a lower
security interface. You can limit access by applying an ACL to the interface.
If you enable communication for same security interfaces (see Allowing Same Security Level
Communication, page 12-16), there is an implicit permit for interfaces to access other interfaces on
the same security level or lower.
• Inspection engines—Some application inspection engines are dependent on the security level. For
same security interfaces, inspection engines apply to traffic in either direction.
– NetBIOS inspection engine—Applied only for outbound connections.
– SQL*Net inspection engine—If a control connection for the SQL*Net (formerly OraServ) port
exists between a pair of hosts, then only an inbound data connection is permitted through the
ASA.
• Filtering—HTTP(S) and FTP filtering applies only for outbound connections (from a higher level
to a lower level).
If you enable communication for same security interfaces, you can filter traffic in either direction.
• established command—This command allows return connections from a lower security host to a
higher security host if there is already an established connection from the higher level host to the
lower level host.
If you enable communication for same security interfaces, you can configure established commands
for both directions.
Licensing Requirements for Transparent Mode Interfaces
Note For an interface to count against the VLAN limit, you must assign a VLAN to it. For example:
interface gigabitethernet 0/0.100
vlan 100
Interfaces of all types comprise the maximum number of combined interfaces; for example, VLANs,
physical, redundant, bridge group, and EtherChannel interfaces. Every interface command defined in
the configuration counts against this limit. For example, both of the following interfaces count even if
the GigabitEthernet 0/0 interface is defined as part of port-channel 1:
interface gigabitethernet 0/0
and
interface port-channel 1
The management IP address must be on the same subnet as the connected network. You cannot set
the subnet to a host subnet (255.255.255.255). The ASA does not support traffic on secondary
networks; only traffic on the same network as the management IP address is supported. See
Configuring Bridge Groups, page 12-7 for more information about management IP subnets.
• For IPv6, at a minimum you need to configure link-local addresses for each interface for through
traffic. For full functionality, including the ability to manage the ASA, you need to configure a
global IPv6 address for each bridge group.
• For multiple context mode, each context must use different interfaces; you cannot share an interface
across contexts.
• For multiple context mode, each context typically uses a different subnet. You can use overlapping
subnets, but your network topology requires router and NAT configuration to make it possible from
a routing standpoint.
Failover Guidelines
Do not finish configuring failover interfaces with the procedures in this chapter. See Chapter 7, “Failover
for High Availability,” to configure the failover and state links. In multiple context mode, failover
interfaces are configured in the system configuration.
IPv6 Guidelines
No support for IPv6 anycast addresses in transparent mode.
Note If you change the security level of an interface, and you do not want to wait for existing connections to
time out before the new security information is used, you can clear the connections using the
clear local-host command.
• In multiple context mode, all allocated interfaces are enabled by default, no matter what the state of
the interface is in the system execution space. However, for traffic to pass through the interface, the
interface also has to be enabled in the system execution space. If you shut down an interface in the
system execution space, then that interface is down in all contexts that share it.
Step 9 (Optional) Allow same security level communication, either by allowing communication between two
interfaces or by allowing traffic to enter and exit the same interface. See Allowing Same Security Level
Communication, page 12-16.
You can configure up to 250 bridge groups in single mode or per context in multiple mode. Note that you
must use at least one bridge group; data interfaces must belong to a bridge group.
Note For a separate management interface (for supported models), a non-configurable bridge group (ID 301)
is automatically added to your configuration. This bridge group is not included in the bridge group limit.
Detailed Steps
Command Purpose
Step 1 interface bvi bridge_group_number Creates a bridge group, where bridge_group_number is an integer
between 1 and 250.
Example:
ciscoasa(config)# interface bvi 1
Step 2 ip address ip_address [mask] Specifies the management IP address for the bridge group.
[standby ip_address]
Do not assign a host address (/32 or 255.255.255.255) to the
bridge group. Also, do not use other subnets that contain fewer
Example: than 3 host addresses (one each for the upstream router,
ciscoasa(config-if)# ip address 10.1.3.1 downstream router, and transparent firewall) such as a /30 subnet
255.255.255.0 standby 10.1.3.2
(255.255.255.252). The ASA drops all ARP packets to or from the
first and last addresses in a subnet. Therefore, if you use a /30
subnet and assign a reserved address from that subnet to the
upstream router, then the ASA drops the ARP request from the
downstream router to the upstream router.
The ASA does not support traffic on secondary networks; only
traffic on the same network as the management IP address is
supported.
The standby keyword and address is used for failover.
Examples
The following example sets the management address and standby address of bridge group 1:
ciscoasa(config)# interface bvi 1
ciscoasa(config-if)# ip address 10.1.3.1 255.255.255.0 standby 10.1.3.2
What to Do Next
Configure general interface parameters. See Configuring General Interface Parameters, page 12-8.
Prerequisites
Detailed Steps
Command Purpose
Step 1 For the ASA 5512-X and higher and the ASAv: If you are not already in interface configuration mode, enters
interface {{redundant number | interface configuration mode.
port-channel number | The redundant number argument is the redundant interface ID,
physical_interface}[.subinterface] |
mapped_name}
such as redundant 1.
The port-channel number argument is the EtherChannel interface
ID, such as port-channel 1.
Example: See Enable the Physical Interface and Configure Ethernet
ciscoasa(config)# interface Parameters, page 9-14 section for a description of the physical
gigabitethernet 0/0 interface ID. Do not use this procedure for Management
interfaces; see Configuring a Management Interface (ASA
5512-X and Higher and ASAv), page 12-10 to configure the
Management interface.
Append the subinterface ID to the physical or redundant interface
ID separated by a period (.).
In multiple context mode, enter the mapped_name if one was
assigned using the allocate-interface command.
Step 2 bridge-group number Assigns the interface to a bridge group, where number is an
integer between 1 and 100. You can assign up to four interfaces to
a bridge group. You cannot assign the same interface to more than
Example:
ciscoasa(config-if)# bridge-group 1
one bridge group.
Step 3 nameif name Names the interface.
The name is a text string up to 48 characters, and is not
Example: case-sensitive. You can change the name by reentering this
ciscoasa(config-if)# nameif inside command with a new value. Do not enter the no form, because
that command causes all commands that refer to that name to be
deleted.
Step 4 security-level number Sets the security level, where number is an integer between 0
(lowest) and 100 (highest).
Example:
ciscoasa(config-if)# security-level 50
What to Do Next
Restrictions
Prerequisites
Detailed Steps
Command Purpose
Step 1 interface {{port-channel number | If you are not already in interface configuration mode, enters
management slot/port}[.subinterface] | interface configuration mode for the management interface.
mapped_name}
The port-channel number argument is the EtherChannel interface
ID, such as port-channel 1. The EtherChannel interface must
Example: have only Management member interfaces.
ciscoasa(config)# interface management
0/0.1 Redundant interfaces do not support Management slot/port
interfaces as members. You also cannot set a redundant interface
comprised of non-Management interfaces as management-only.
In multiple context mode, enter the mapped_name if one was
assigned using the allocate-interface command.
Step 2 nameif name Names the interface.
The name is a text string up to 48 characters, and is not
Example: case-sensitive. You can change the name by reentering this
ciscoasa(config-if)# nameif management command with a new value. Do not enter the no form, because
that command causes all commands that refer to that name to be
deleted.
Command Purpose
Step 3 Do one of the following:
ip address ip_address [mask] [standby Sets the IP address manually.
ip_address]
Note For use with failover, you must set the IP address and
standby address manually; DHCP is not supported.
Example:
ciscoasa(config-if)# ip address 10.1.1.1 The ip_address and mask arguments set the interface IP address
255.255.255.0 standby 10.1.1.2 and subnet mask.
The standby ip_address argument is used for failover. See
Configure Active/Standby Failover, page 7-25 or Configure
Active/Active Failover, page 7-29 for more information.
ip address dhcp [setroute] Obtains an IP address from a DHCP server.
The setroute keyword lets the ASA use the default route supplied
Example: by the DHCP server.
ciscoasa(config-if)# ip address dhcp
Reenter this command to reset the DHCP lease and request a new
lease.
If you do not enable the interface using the no shutdown
command before you enter the ip address dhcp command, some
DHCP requests might not be sent.
Step 4 security-level number Sets the security level, where number is an integer between 0
(lowest) and 100 (highest).
Example:
ciscoasa(config-if)# security-level 50
What to Do Next
• (Optional) Configure the MAC address and the MTU. See Configuring the MAC Address, MTU,
and TCP MSS, page 12-11.
• (Optional) Configure IPv6 addressing. See Configuring IPv6 Addressing, page 12-14.
By default, the physical interface uses the burned-in MAC address, and all subinterfaces of a physical
interface use the same burned-in MAC address.
For the ASASM, all VLANs use the same MAC address provided by the backplane.
A redundant interface uses the MAC address of the first physical interface that you add. If you change
the order of the member interfaces in the configuration, then the MAC address changes to match the
MAC address of the interface that is now listed first. If you assign a MAC address to the redundant
interface using this command, then it is used regardless of the member interface MAC addresses.
For an EtherChannel, all interfaces that are part of the channel group share the same MAC address. This
feature makes the EtherChannel transparent to network applications and users, because they only see the
one logical connection; they have no knowledge of the individual links. The port-channel interface uses
the lowest numbered channel group interface MAC address as the port-channel MAC address.
Alternatively you can manually configure a MAC address for the port-channel interface. In multiple
context mode, you can automatically assign unique MAC addresses to interfaces, including an
EtherChannel port interface. We recommend manually, or in multiple context mode, automatically
configuring a unique MAC address in case the group channel interface membership changes. If you
remove the interface that was providing the port-channel MAC address, then the port-channel MAC
address changes to the next lowest numbered interface, thus causing traffic disruption.
In multiple context mode, if you share an interface between contexts, you can assign a unique MAC
address to the interface in each context. This feature lets the ASA easily classify packets into the
appropriate context. Using a shared interface without unique MAC addresses is possible, but has some
limitations. See How the ASA Classifies Packets, page 6-3 for more information. You can assign each
MAC address manually, or you can automatically generate MAC addresses for shared interfaces in
contexts. See Assign MAC Addresses to Context Interfaces Automatically, page 6-23 to automatically
generate MAC addresses. If you automatically generate MAC addresses, you can use this procedure to
override the generated address.
For single context mode, or for interfaces that are not shared in multiple context mode, you might want
to assign unique MAC addresses to subinterfaces. For example, your service provider might perform
access control based on the MAC address.
See Control Fragmentation with the Maximum Transmission Unit and TCP Maximum Segment Size,
page 9-7.
Prerequisites
Detailed Steps
Command Purpose
Step 1 For the ASA 5512-X and higher and the ASAv: If you are not already in interface configuration mode, enters
interface {{redundant number | interface configuration mode.
port-channel number | The redundant number argument is the redundant interface ID,
physical_interface}[.subinterface] |
mapped_name}
such as redundant 1.
The port-channel number argument is the EtherChannel interface
For the ASASM: ID, such as port-channel 1.
ciscoasa(config)# interface {vlan number |
See Enable the Physical Interface and Configure Ethernet
mapped_name}
Parameters, page 9-14 section for a description of the physical
interface ID.
Example: Append the subinterface ID to the physical or redundant interface
ciscoasa(config)# interface vlan 100
ID separated by a period (.).
In multiple context mode, enter the mapped_name if one was
assigned using the allocate-interface command.
Step 2 mac-address mac_address Assigns a private MAC address to this interface. The mac_address
[standby mac_address] is in H.H.H format, where H is a 16-bit hexadecimal digit. For
example, the MAC address 00-0C-F1-42-4C-DE is entered as
Example: 000C.F142.4CDE.
ciscoasa(config-if)# mac-address The first two bytes of a manual MAC address cannot be A2 if you
000C.F142.4CDE
also want to use auto-generated MAC addresses.
For use with failover, set the standby MAC address. If the active
unit fails over and the standby unit becomes active, the new active
unit starts using the active MAC addresses to minimize network
disruption, while the old active unit uses the standby address.
Step 3 mtu interface_name bytes Sets the MTU between 300 and 9198 bytes (9000 for the ASAv).
The default is 1500 bytes.
Example: Note When you set the MTU for a redundant or port-channel
ciscoasa(config)# mtu inside 9200 interface, the ASA applies the setting to all member
interfaces.
For models that support jumbo frames, if you enter a value for any
interface that is greater than 1500, then you need to enable jumbo
frame support. See Enable Jumbo Frame Support, page 9-22.
Step 4 sysopt connection tcpmss [minimum] bytes Sets the maximum TCP segment size in bytes, between 48 and any
maximum number. The default value is 1380 bytes. You can
disable this feature by setting bytes to 0.
Example:
ciscoasa(config)# sysopt connection tcpmss For the minimum keyword, sets the maximum segment size to be
8500 no less than bytes, between 48 and 65535. The minimum feature
ciscoasa(config)# sysopt connection tcpmss
is disabled by default (set to 0).
minimum 1290
What to Do Next
(Optional) Configure IPv6 addressing. See Configuring IPv6 Addressing, page 12-14.
IPv6 Addressing
Note If you want to only configure the link-local addresses, see the ipv6 enable (to auto-configure) or ipv6
address link-local (to manually configure) command in the command reference.
RFC 3513: Internet Protocol Version 6 (IPv6) Addressing Architecture requires that the interface
identifier portion of all unicast IPv6 addresses, except those that start with binary value 000, be 64 bits
long and be constructed in Modified EUI-64 format. The ASA can enforce this requirement for hosts
attached to the local link.
When this feature is enabled on an interface, the source addresses of IPv6 packets received on that
interface are verified against the source MAC addresses to ensure that the interface identifiers use the
Modified EUI-64 format. If the IPv6 packets do not use the Modified EUI-64 format for the interface
identifier, the packets are dropped and the following system log message is generated:
%ASA-3-325003: EUI-64 source address check failed.
The address format verification is only performed when a flow is created. Packets from an existing flow
are not checked. Additionally, the address verification can only be performed for hosts on the local link.
Packets received from hosts behind a router will fail the address format verification, and be dropped,
because their source MAC address will be the router MAC address and not the host MAC address.
Unsupported Commands
The following IPv6 commands are not supported in transparent firewall mode, because they require
router capabilities:
• ipv6 address autoconfig
• ipv6 nd prefix
• ipv6 nd ra-interval
• ipv6 nd ra-lifetime
• ipv6 nd suppress-ra
Note Configuring the global address automatically configures the link-local address, so you do not need to
configure it separately.
Restrictions
Prerequisites
Detailed Steps
Command Purpose
Step 1 For the bridge group: If you are not already in interface configuration mode, enters
interface bvi bridge_group_id interface configuration mode.
Example:
ciscoasa(config)# interface bvi 1
Step 2 ipv6 address ipv6-address/prefix-length Assigns a global address to the interface. When you assign a
[standby ipv6-address] global address, the link-local address is automatically created for
the interface (for a bridge group, for each member interface).
Example: standby specifies the interface address used by the secondary unit
ciscoasa(config-if)# ipv6 address or failover group in a failover pair.
2001:0DB8::BA98:0:3210/48
Note The eui-64 keyword to use the Modified EUI-64 interface
ID for the interface ID is not supported in transparent
mode.
Step 3 (Optional) Enforces the use of Modified EUI-64 format interface identifiers
ipv6 enforce-eui64 if_name in IPv6 addresses on a local link.
The if_name argument is the name of the interface, as specified by
the nameif command, on which you are enabling the address
Example:
ciscoasa(config)# ipv6 enforce-eui64
format enforcement.
inside See Modified EUI-64 Interface IDs, page 12-14 for more
information.
Allowing interfaces on the same security level to communicate with each other is useful if you want
traffic to flow freely between all same security interfaces without ACLs.
If you enable same security interface communication, you can still configure interfaces at different
security levels as usual.
Detailed Steps
Command Purpose
same-security-traffic permit Enables interfaces on the same security level so that they can communicate
inter-interface with each other.
Detailed Steps
Command Purpose
Step 1 ciscoasa(config)# interface {vlan number | If you are not already in interface configuration mode, enters
mapped_name} interface configuration mode.
In multiple context mode, enter the mapped_name if one was
Example: assigned using the allocate-interface command.
ciscoasa(config)# interface vlan 100
Step 2 shutdown Disables the interface.
Example:
ciscoasa(config-if)# shutdown
Step 3 no shutdown Reenables the interface.
Example:
ciscoasa(config-if)# no shutdown
Monitoring Interfaces
Command Purpose
show interface Displays interface statistics.
show interface ip brief Displays interface IP addresses and status.
show bridge-group Shows bridge group information.
Platform
Feature Name Releases Feature Information
Increased VLANs 7.0(5) Increased the following limits:
• ASA5510 Base license VLANs from 0 to 10.
• ASA5510 Security Plus license VLANs from 10 to 25.
• ASA5520 VLANs from 25 to 100.
• ASA5540 VLANs from 100 to 200.
Increased VLANs 7.2(2) The maximum number of VLANs for the Security Plus
license on the ASA 5505 was increased from 5 (3 fully
functional; 1 failover; one restricted to a backup interface)
to 20 fully functional interfaces. In addition, the number of
trunk ports was increased from 1 to 8. Now there are 20
fully functional interfaces, you do not need to use the
backup interface command to cripple a backup ISP
interface; you can use a fully-functional interface for it. The
backup interface command is still useful for an Easy VPN
configuration.
VLAN limits were also increased for the ASA 5510 (from
10 to 50 for the Base license, and from 25 to 100 for the
Security Plus license), the ASA 5520 (from 100 to 150), the
ASA 5550 (from 200 to 250).
Gigabit Ethernet Support for the ASA 5510 7.2(3) The ASA 5510 now supports GE (Gigabit Ethernet) for port
Security Plus License 0 and 1 with the Security Plus license. If you upgrade the
license from Base to Security Plus, the capacity of the
external Ethernet0/0 and Ethernet0/1 ports increases from
the original FE (Fast Ethernet) (100 Mbps) to GE (1000
Mbps). The interface names will remain Ethernet 0/0 and
Ethernet 0/1. Use the speed command to change the speed
on the interface and use the show interface command to see
what speed is currently configured for each interface.
Native VLAN support for the ASA 5505 7.2(4)/8.0(4) You can now include the native VLAN in an ASA 5505
trunk port.
We introduced the following command: switchport trunk
native vlan.
Platform
Feature Name Releases Feature Information
Jumbo packet support for the ASA 5580 8.1(1) The Cisco ASA 5580 supports jumbo frames. A jumbo
frame is an Ethernet packet larger than the standard
maximum of 1518 bytes (including Layer 2 header and
FCS), up to 9216 bytes. You can enable support for jumbo
frames for all interfaces by increasing the amount of
memory to process Ethernet frames. Assigning more
memory for jumbo frames might limit the maximum use of
other features, such as ACLs.
We introduced the following command: jumbo-frame
reservation.
Increased VLANs for the ASA 5580 8.1(2) The number of VLANs supported on the ASA 5580 are
increased from 100 to 250.
IPv6 support for transparent mode 8.2(1) IPv6 support was introduced for transparent firewall mode.
Support for Pause Frames for Flow Control on 8.2(2) You can now enable pause (XOFF) frames for flow control.
the ASA 5580 10-Gigabit Ethernet Interfaces
We introduced the following command: flowcontrol.
Bridge groups for transparent mode 8.4(1) If you do not want the overhead of security contexts, or want
to maximize your use of security contexts, you can group
interfaces together in a bridge group, and then configure
multiple bridge groups, one for each network. Bridge group
traffic is isolated from other bridge groups. You can
configure up to eight bridge groups of four interfaces each
in single mode or per context.
We introduced the following commands: interface bvi,
show bridge-group.
Transparent mode bridge group maximum 9.3(1) The bridge group maximum was increased from 8 to 250
increased to 250 bridge groups. You can configure up to 250 bridge groups in
single mode or per context in multiple mode, with 4
interfaces maximum per bridge group.
We modified the following commands: interface bvi,
bridge-group.
You can assign multiple interfaces to a traffic zone, which lets traffic from an existing flow exit or enter
the ASA on any interface within the zone. This capability allows Equal-Cost Multi-Path (ECMP) routing
on the ASA as well as external load balancing of traffic to the ASA across multiple interfaces.
• About Traffic Zones, page 13-1
• Prerequisites for Traffic Zones, page 13-7
• Guidelines for Traffic Zones, page 13-8
• Configure a Traffic Zone, page 13-9
• Monitoring Traffic Zones, page 13-10
• Example for Traffic Zones, page 13-12
• History for Traffic Zones, page 13-15
Non-Zoned Behavior
The Adaptive Security Algorithm (Stateful Inspection Overview, page 1-13) takes into consideration the
state of a packet when deciding to permit or deny the traffic. One of the enforced parameters for the flow
is that traffic enters and exits the same interface. Any traffic for an existing flow that enters a different
interface is dropped by the ASA.
Traffic zones let you group multiple interfaces together so that traffic entering or exiting any interface
in the zone fulfills the Adaptive Security Algorithm security checks.
Asymmetric Routing
In the following scenario, a connection was established between an inside host and an outside host
through ISP 1 on the Outside1 interface. Due to asymmetric routing on the destination network, return
traffic arrived from ISP 2 on the Outside2 interface.
Outside
Host
ISP 1 ISP 2
ASA
Outside1 Outside2
Inside
Inside
network
Outbound Traffic
373592
Inside
Return Traffic Host
Non-Zoned Problem: The ASA maintains the connection tables on a per-interface basis. When the
returning traffic arrives at Outside2, it will not match the connection table and will be dropped.
Zoned Solution: The ASA maintains connection tables on a per-zone basis. If you group Outside1 and
Outside2 into a zone, then when the returning traffic arrives at Outside2, it will match the per-zone
connection table, and the connection will be allowed.
Lost Route
In the following scenario, a connection was established between an inside host and an outside host
through ISP 1 on the Outside1 interface. Due to a lost or moved route between Outside1 and ISP 1, traffic
needs to take a different route through ISP 2.
Outside
Host
ISP 1 ISP 2
ASA
Outside1 Outside2
Inside
Inside
network
Route1 Traffic
373593
Inside
Route2 Traffic Host
Non-Zoned Problem: The connection between the inside and outside host will be deleted; a new
connection must be established using a new next-best route. For UDP, the new route will be used after a
single packet drop, but for TCP, a new connection has to be reestablished.
Zoned Solution: The ASA detects the lost route and switches the flow to the new path through ISP 2.
Traffic will be seamlessly forwarded without any packet drops.
Load Balancing
In the following scenario, a connection was established between an inside host and an outside host
through ISP 1 on the Outside1 interface. A second connection was established through an equal cost
route through ISP 2 on Outside2.
Outside
Host
ISP 1 ISP 2
ASA
Outside1 Outside2
Inside
Inside
network
Route1 Traffic
373594
Inside
Route2 Traffic Host
Non-Zoned Problem: Load-balancing across interfaces is not possible; you can only load-balance with
equal cost routes on one interface.
Zoned Solution: The ASA load-balances connections across up to eight equal cost routes on all the
interfaces in the zone.
ECMP Routing
• The ASA supports Equal-Cost Multi-Path (ECMP) routing.
• Non-Zoned ECMP Support, page 13-4
• Zoned ECMP Support, page 13-5
• How Connections Are Load-Balanced, page 13-5
• Falling Back to a Route in Another Zone, page 13-5
In this case, traffic is load-balanced on the outside interface between 10.1.1.2, 10.1.1.3, and 10.1.1.4.
Traffic is distributed among the specified gateways based on an algorithm that hashes the source and
destination IP addresses.
ECMP is not supported across multiple interfaces, so you cannot define a route to the same destination
on a different interface. The following route is disallowed when configured with any of the routes above:
route outside2 0 0 10.2.1.1
Similarly, your dynamic routing protocol can automatically configure equal cost routes. The ASA
load-balances traffic across the interfaces with a more robust load balancing mechanism.
When a route is lost, the ASA seamlessly moves the flow to a different route.
Note For detailed information about how to configure the security policy, see Prerequisites for Traffic Zones,
page 13-7.
Security Levels
The first interface that you add to a zone determines the security level of the zone. All additional
interfaces must have the same security level. To change the security level for interfaces in a zone, you
must remove all but one interface, and then change the security levels, and re-add the interfaces.
Intra-Zone Traffic
To allow traffic to enter one interface and exit another in the same zone, enable the same-security
permit intra-interface command, which allows traffic to enter and exit the same interface, as well as
the same-security permit inter-interface command, which allows traffic between same-security
interfaces. Otherwise, a flow cannot be routed between two interfaces in the same zone.
– NAT—Configure the same NAT policy on all member interfaces of the zone or use a global NAT
rule (in other words, use “any” to represent the zone interfaces in the NAT rule).
Interface PAT is not supported.
For example:
object network WEBSERVER1
host 10.9.9.9 255.255.255.255
nat (inside,any) static 209.165.201.9
Note When you use interface-specific NAT and PAT pools, the ASA cannot switch connections over
in case of the original interface failure.
If you use interface-specific PAT pools, multiple connections from the same host might
load-balance to different interfaces and use different mapped IP addresses. Internet services that
use multiple concurrent connections may not work correctly in this case.
– Service Rules—Use the global service policy, or assign the same policy to each interface in a
zone.
QoS traffic policing is not supported.
For example:
service-policy outside_policy interface outside1
service-policy outside_policy interface outside2
service-policy outside_policy interface outside3
Note For VoIP inspections, zone load balancing can cause increased out-of-order packets. This
situation can occur because later packets might reach the ASA before earlier packets that take a
different path. Symptoms of out-of-order packets include:
- Higher memory utilization at intermediate nodes (firewall and IDS) and the receiving end
nodes if queuing is used.
- Poor video or voice quality.
To mitigate these effects, we recommend that you use IP addresses only for load distribution for
VoIP traffic.
Failover
• You cannot add the failover or state link to a zone.
• In Active/Active failover mode, you can assign an interface in each context to an asymmetrical
routing (ASR) group. This service allows traffic returning on a similar interface on the peer unit to
be restored to the original unit. You cannot configure both ASR groups and traffic zones within a
context. If you configure a zone in a context, none of the context interfaces can be part of an ASR
group. See Configure Support for Asymmetrically Routed Packets (Active/Active Mode), page 7-38
for more information about ASR groups.
• Only the primary interfaces for each connection are replicated to the standby unit; current interfaces
are not replicated. If the standby unit becomes active, it will assign a new current interface if
necessary.
Clustering
• You cannot add the cluster control link to a zone.
Additional Guidelines
• You can create a maximum of 256 zones.
• You can add the following types of interfaces to a zone:
– Physical
– VLAN
– EtherChannel
– Redundant
• You cannot add the following types of interfaces:
– Management-only
– Management-access
– Failover or state link
– Cluster control link
– Member interfaces in an EtherChannel or redundant interface
• An interface can be a member of only one zone.
• You can include up to 8 interfaces per zone.
• For ECMP, you can add up to 8 equal cost routes per zone, across all zone interfaces. You can also
configure multiple routes on a single interface as part of the 8 route limit.
Procedure
For example:
zone outside
For example:
interface gigabitethernet0/0
zone-member outside
Step 3 Add more interfaces to the zone; ensure they have the same security level as the first interface you added.
For example:
interface gigabitethernet0/1
zone-member outside
interface gigabitethernet0/2
zone-member outside
interface gigabitethernet0/3
zone-member outside
Examples
The following example configures an outside zone with 4 member interfaces:
zone outside
interface gigabitethernet0/0
zone-member outside
interface gigabitethernet0/1
zone-member outside
interface gigabitethernet0/2
zone-member outside
interface gigabitethernet0/3
zone-member outside
Zone Information
• show zone [name]
Shows zone ID, context, security level, and members.
See the following output for the show zone command:
ciscoasa# show zone outside-zone
Management0/0 lan 0
Zone Connections
• show conn [long | detail] [zone zone_name [zone zone_name] [...]]
The show conn zone command displays connections for a zone. The long and detail keywords show
the primary interface on which the connection was built and the current interface used to forward
the traffic.
See the following output for the show conn long zone command:
ciscoasa# show conn long zone zone-inside zone zone-outside
Conn:
TCP outside-zone:outside1(outside2): 10.122.122.1:1080
inside-zone:inside1(inside2): 10.121.121.1:34254, idle 0:00:02, bytes 10, flags UO
Zone Routing
• show route zone
Shows the routes for zone interfaces.
See the following output for the show route zone command:
ciscoasa# show route zone
Internet
Zone Outside
ASA
Inside DMZ
373595
Inside Host Web Server
192.168.9.6 10.3.5.9
interface gigabitethernet0/0
no shutdown
description outside switch 1
interface gigabitethernet0/1
no shutdown
description outside switch 2
interface gigabitethernet0/2
no shutdown
description inside switch
zone outside
interface gigabitethernet0/0.101
vlan 101
nameif outside1
security-level 0
ip address 209.165.200.225 255.255.255.224
zone-member outside
no shutdown
interface gigabitethernet0/0.102
vlan 102
nameif outside2
security-level 0
ip address 209.165.201.1 255.255.255.224
zone-member outside
no shutdown
interface gigabitethernet0/1.201
vlan 201
nameif outside3
security-level 0
ip address 198.51.100.1 255.255.255.0
zone-member outside
no shutdown
interface gigabitethernet0/1.202
vlan 202
nameif outside4
security-level 0
ip address 203.0.113.1 255.255.255.0
zone-member outside
no shutdown
interface gigabitethernet0/2.301
vlan 301
nameif inside
security-level 100
ip address 192.168.9.1 255.255.255.0
no shutdown
interface gigabitethernet0/2.302
vlan 302
nameif dmz
security-level 50
ip address 10.3.5.1 255.255.255.0
no shutdown
inspect rtsp
inspect skinny
inspect esmtp _default_esmtp_map
inspect sqlnet
inspect sunrpc
inspect tftp
inspect sip
inspect xdmcp
service-policy global_policy global
Basic Settings
CH AP TE R 14
Basic Settings
This chapter describes how to configure basic settings on the ASA that are typically required for a
functioning configuration.
• Set the Hostname, Domain Name, and the Enable and Telnet Passwords, page 14-1
• Recover Enable and Telnet Passwords, page 14-3
• Set the Date and Time, page 14-7
• Configure the Master Passphrase, page 14-10
• Configure the DNS Server, page 14-14
• Adjust ASP (Accelerated Security Path) Performance and Behavior, page 14-15
• Monitoring the DNS Cache, page 14-16
• History for Basic Settings, page 14-17
Set the Hostname, Domain Name, and the Enable and Telnet
Passwords
This section describes how to configure the hostname, domain name, and the enable and Telnet
passwords.
Procedure
Step 1 Specify the hostname for the ASA or for a context. The default hostname is “asa.”
hostname name
Example:
ciscoasa(config)# hostname myhostnamexample12345
This name can be up to 63 characters. The hostname must start and end with a letter or digit, and have
only letters, digits, or a hyphen.
When you set a hostname for the ASA, that name appears in the command line prompt. If you establish
sessions to multiple devices, the hostname helps you keep track of where you enter commands.
For multiple context mode, the hostname that you set in the system execution space appears in the
command line prompt for all contexts. The hostname that you optionally set within a context does not
appear in the command line, but can be used by the banner command $(hostname) token.
Step 2 Specify the domain name for the ASA. The default domain name is default.domain.invalid.
domain-name name
Example:
ciscoasa(config)# domain-name example.com
The ASA appends the domain name as a suffix to unqualified names. For example, if you set the domain
name to “example.com” and specify a syslog server by the unqualified name of “jupiter,” then the ASA
qualifies the name to “jupiter.example.com.”
Step 3 Change the enable password. By default, the enable password is blank.
The enable password lets you enter privileged EXEC mode if you do not configure enable authentication.
The enable password also lets you log into ASDM with a blank username if you do not configure HTTP
authentication.
enable password password
Example:
ciscoasa(config)# enable passwd Pa$$w0rd
The password is saved in the configuration in encrypted form, so you cannot view the original password
after you enter it. Enter the enable password command without a password to set the password to the
default, which is blank.
Step 4 Set the login password for Telnet access. There is no default password.
The login password is used for Telnet access when you do not configure Telnet authentication. You also
use this password when accessing the ASASM from the switch with the session command.
{passwd | password} password [encrypted]
Example:
ciscoasa(config)# password cisco12345
You can enter passwd or password. The password is a case-sensitive password of up to 16 alphanumeric
and special characters. You can use any character in the password except a question mark or a space.
The password is saved in the configuration in encrypted form, so you cannot view the original password
after you enter it. If for some reason you need to copy the password to another ASA but do not know the
original password, you can enter the passwd command with the encrypted password and the encrypted
keyword. Normally, you only see this keyword when you enter the show running-config passwd
command.
Related Topics
Configure Authentication to Access Privileged EXEC Mode, page 35-13)
Procedure
Step 5 To set the ASA to ignore the startup configuration, enter the following command:
rommon #1> confreg
The ASA displays the current configuration register value, and asks whether you want to change it:
Current Configuration Register: 0x00000041
Configuration Summary:
boot default image from Flash
ignore system configuration
Step 6 Record the current configuration register value, so you can restore it later.
Step 7 At the prompt, enter Y to change the value.
The ASA prompts you for new values.
Step 8 Accept the default values for all settings, except for the "disable system configuration?" value.
Step 9 At the prompt, enter Y.
Step 10 Reload the ASA by entering the following command:
rommon #2> boot
Launching BootLoader...
Boot configuration file contains 1 entry.
The ASA loads the default configuration instead of the startup configuration.
Step 11 Access the privileged EXEC mode by entering the following command:
ciscoasa# enable
Step 14 Access the global configuration mode by entering the following command:
ciscoasa# configure terminal
Step 15 Change the passwords, as required, in the default configuration by entering the following commands:
ciscoasa(config)# password password
ciscoasa(config)# enable password password
ciscoasa(config)# username name password password
The default configuration register value is 0x1. See the command reference for more information about
the configuration register.
Step 17 Save the new passwords to the startup configuration by entering the following command:
ciscoasa(config)# copy running-config startup-config
Procedure
You must reset or power cycle for new config to take effect
The ASA displays the current configuration register value and a list of configuration options. Record the
current configuration register value, so you can restore it later.
Configuration Register: 0x00000041
Configuration Summary
[ 0 ] password recovery
[ 1 ] display break prompt
[ 2 ] ignore system configuration
[ 3 ] auto-boot image in disks
[ 4 ] console baud: 9600
boot: ...... auto-boot index 1 image in disks
The ASA loads the default configuration instead of the startup configuration.
Step 6 Access the privileged EXEC mode by entering the following command:
ciscoasa# enable
Step 9 Access the global configuration mode by entering the following command:
ciscoasa# configure terminal
Step 10 Change the passwords, as required, in the default configuration by entering the following commands:
ciscoasa(config)# password password
ciscoasa(config)# enable password password
ciscoasa(config)# username name password password
The default configuration register value is 0x1. See the command reference for more information about
the configuration register.
Step 12 Save the new passwords to the startup configuration by entering the following command:
ciscoasa(config)# copy running-config startup-config
Procedure
Example:
ciscoasa# copy running-config backup.cfg
Step 3 From the GNU GRUB menu, press the down arrow, choose the <filename> with no configuration load
option, then press Enter. The filename is the default boot image filename on the ASAv. The default boot
image is never automatically booted through the fallback command. Then load the selected boot image.
GNU GRUB version 2.0(12)4
bootflash:/asa100123-20-smp-k8.bin
bootflash: /asa100123-20-smp-k8.bin with no configuration load
Example:
GNU GRUB version 2.0(12)4
bootflash: /asa100123-20-smp-k8.bin with no configuration load
Example:
ciscoasa (config)# copy backup.cfg running-config
Example:
ciscoasa(config)# enable password cisco123
Example:
ciscoasa(config)# write memory
To disable password recovery to ensure that unauthorized users cannot use the password recovery
mechanism to compromise the ASA, perform the following steps.
mode and maintaining the existing configuration, this erasure prevents you from recovering a password.
However, disabling password recovery prevents unauthorized users from viewing the configuration or
inserting different passwords. In this case, to restore the system to an operating state, load a new image
and a backup configuration file, if available.
The service password-recovery command appears in the configuration file for information only. When
you enter the command at the CLI prompt, the setting is saved in NVRAM. The only way to change the
setting is to enter the command at the CLI prompt. Loading a new configuration with a different version
of the command does not change the setting. If you disable password recovery when the ASA is
configured to ignore the startup configuration at startup (in preparation for password recovery), then the
ASA changes the setting to load the startup configuration as usual. If you use failover, and the standby
unit is configured to ignore the startup configuration, then the same change is made to the configuration
register when the no service password recovery command replicates to the standby unit.
Procedure
Example:
ciscoasa (config)# no service password-recovery
Procedure
Step 1 Set the time zone. By default, the time zone is UTC and the daylight saving time date range is from 2:00
a.m. on the first Sunday in April to 2:00 a.m. on the last Sunday in October.
clock timezone zone [-]hours [minutes]
Example:
ciscoasa(config)# clock timezone PST -8
The zone argument specifies the time zone as a string, for example, PST for Pacific Standard Time.
The [-]hours value sets the number of hours of offset from UTC. For example, PST is -8 hours.
The minutes value sets the number of minutes of offset from UTC.
Step 2 Enter one of the following commands to change the date range for daylight saving time from the default.
The default recurring date range is from 2:00 a.m. on the second Sunday in March to 2:00 a.m. on the
first Sunday in November.
• Set the start and end dates for daylight saving time as a specific date in a specific year. If you use
this command, you need to reset the dates every year.
clock summer-time zone date {day month | month day} year hh:mm {day month | month day}
year hh:mm [offset]
Example:
ciscoasa(config)# clock summer-time PDT 1 April 2010 2:00 60
The zone value specifies the time zone as a string, for example, PDT for Pacific Daylight Time.
The day value sets the day of the month, from 1 to 31. You can enter the day and month as April 1
or as 1 April, for example, depending on your standard date format.
The month value sets the month as a string. You can enter the day and month as April 1 or as 1 April,
depending on your standard date format.
The year value sets the year using four digits, for example, 2004. The year range is 1993 to 2035.
The hh:mm value sets the hour and minutes in 24-hour time.
The offset value sets the number of minutes to change the time for daylight saving time. By default,
the value is 60 minutes.
• Specify the start and end dates for daylight saving time, in the form of a day and time of the month,
and not a specific date in a year. This command enables you to set a recurring date range that you
do not need to change yearly.
clock summer-time zone recurring [week weekday month hh:mm week weekday month hh:mm]
[offset]
Example:
ciscoasa(config)# clock summer-time PDT recurring first Monday April 2:00 60
The zone value specifies the time zone as a string, for example, PDT for Pacific Daylight Time.
The week value specifies the week of the month as an integer between 1 and 4 or as the words first
or last. For example, if the day might fall in the partial fifth week, then specify last.
The weekday value specifies the day of the week: Monday, Tuesday, Wednesday, and so on.
The month value sets the month as a string.
The hh:mm value sets the hour and minutes in 24-hour time.
The offset value sets the number of minutes to change the time for daylight savings time. By default,
the value is 60 minutes.
Procedure
Example:
ciscoasa(config)# ntp authenticate
Step 2 Specify an authentication key ID to be a trusted key, which is required for authentication with an NTP
server.
ntp trusted-key key_id
Example:
ciscoasa(config)# ntp trusted-key 1
The key_id argument is a value between 1 and 4294967295. You can enter multiple trusted keys for use
with multiple servers.
Step 3 Set a key to authenticate with an NTP server.
ntp authentication-key key_id md5 key
Example:
ciscoasa(config)# ntp authentication-key 1 md5 aNiceKey
The key_id argument is the ID that you set in Step 2 using the ntp trusted-key command, and the key
argument is a string up to 32 characters long.
Step 4 Identify an NTP server.
ntp server ip_address [key key_id] [source interface_name] [prefer]
Example:
ciscoasa(config)# ntp server 10.1.1.1 key 1 prefer
The key_id argument is the ID that you set using the ntp trusted-key command.
The source interface_name keyword-argument pair identifies the outgoing interface for NTP packets if
you do not want to use the default interface in the routing table. Because the system does not include any
interfaces in multiple context mode, specify an interface name defined in the admin context.
The prefer keyword sets this NTP server as the preferred server if multiple servers have similar
accuracy. NTP uses an algorithm to determine which server is the most accurate and synchronizes to that
one. If servers are of similar accuracy, then the prefer keyword specifies which of those servers to use.
However, if a server is significantly more accurate than the preferred one, the ASA uses the more
accurate one. For example, the ASA uses a server of stratum 2 over a server of stratum 3 that is preferred.
You can identify multiple servers; the ASA uses the most accurate server.
Procedure
Example:
ciscoasa# clock set 20:54:00 april 1 2004
The hh:mm:ss argument sets the hour, minutes, and seconds in 24-hour time. For example, enter
20:54:00 for 8:54 pm.
The day value sets the day of the month, from 1 to 31. You can enter the day and month as april 1 or as
1 april, for example, depending on your standard date format.
The month value sets the month. Depending on your standard date format, you can enter the day and
month as april 1 or as 1 april.
The year value sets the year using four digits, for example, 2004. The year range is from 1993 to 2035.
The default time zone is UTC. If you change the time zone after you enter the clock set command using
the clock timezone command, the time automatically adjusts to the new time zone.
This command sets the time in the hardware chip, and does not save the time in the configuration file.
This time endures reboots. Unlike the other clock commands, this command is a privileged EXEC
command. To reset the clock, you need to set a new time with the clock set command.
Note If failover is enabled but no failover shared key is set, an error message appears if you change the master
passphrase, informing you that you must enter a failover shared key to protect the master passphrase
changes from being sent as plain text.
Procedure
Step 1 Set the passphrase used for generating the encryption key. The passphrase must be between 8 and 128
characters long. All characters except a backspace and double quotes are accepted for the passphrase. If
you do not enter the new passphrase in the command, you are prompted for it. To change the passphrase,
you must enter the old passphrase.
key config-key password-encryption [new_passphrase [old_passphrase]]
Example:
ciscoasa(config)# key config-key password-encryption
Old key: bumblebee
New key: haverford
Confirm key: haverford
Note Use the interactive prompts to enter passwords to avoid having the passwords logged in the
command history buffer.
Use the no key config-key password-encrypt command with caution, because it changes the encrypted
passwords into plain text passwords. You may use the no form of this command when downgrading to a
software version that does not support password encryption.
Step 2 Enable password encryption.
password encryption aes
Example:
ciscoasa(config)# password encryption aes
As soon as password encryption is enabled and the master passphrase is available, all the user passwords
will be encrypted. The running configuration will show the passwords in the encrypted format.
If the passphrase is not configured at the time that password encryption is enabled, the command will
succeed in anticipation that the passphrase will be available in the future.
If you later disable password encryption using the no password encryption aes command, all existing
encrypted passwords are left unchanged, and as long as the master passphrase exists, the encrypted
passwords will be decrypted, as required by the application.
Step 3 Save the runtime value of the master passphrase and the resulting configuration.
write memory
Example:
ciscoasa(config)# write memory
If you do not enter this command, passwords in startup configuration may still be visible if they were
not saved with encryption previously. In addition, in multiple context mode the master passphrase is
changed in the system context configuration. As a result, the passwords in all contexts will be affected.
If the write memory command is not entered in the system context mode, but not in all user contexts,
then the encrypted passwords in user contexts may be stale. Alternatively, use the write memory all
command in the system context to save all configurations.
Examples
The following example shows that no previous key was present:
ciscoasa(config)# key config-key password-encryption 12345678
In the following example, you enter the command without parameters so that you will be prompted for
keys. Because a key already exists, you are prompted for it.
ciscoasa(config)# key config-key password-encryption
Old key: 12345678
New key: 23456789
Confirm key: 23456789
In the following example, there is no existing key, so you are not prompted to supply it.
ciscoasa(config)# key config-key password-encryption
New key: 12345678
Confirm key: 12345678
Procedure
Step 1 Remove the master passphrase. If you do not enter the passphrase in the command, you are prompted for
it.
no key config-key password-encryption [old_passphrase]]
Example:
ciscoasa(config)# no key config-key password-encryption
Warning! You have chosen to revert the encrypted passwords to plain text. This operation
will expose passwords in the configuration and therefore exercise caution while viewing,
storing, and copying configuration.
Step 2 Save the runtime value of the master passphrase and the resulting configuration.
write memory
Example:
ciscoasa(config)# write memory
The non-volatile memory containing the passphrase will be erased and overwritten with the 0xFF
pattern.
In multiple mode, the master passphrase is changed in the system context configuration. As a result, the
passwords in all contexts will be affected. If the write memory command is entered in the system
context mode, but not in all user contexts, then the encrypted passwords in user contexts may be stale.
Alternatively, use the write memory all command in the system context to save all configurations.
Procedure
Step 1 Remove the master key and the configuration that includes the encrypted passwords.
write erase
Example:
ciscoasa(config)# write erase
Step 2 Reload the ASA with the startup configuration, without any master key or encrypted passwords.
reload
Example:
ciscoasa(config)# reload
Note The ASA has limited support for using the DNS server, depending on the feature. For example, most
commands require you to enter an IP address and can only use a name when you manually configure the
name command to associate a name with an IP address and enable use of the names using the names
command.
Procedure
Step 1 Enable the ASA to send DNS requests to a DNS server to perform a name lookup for supported
commands.
dns domain-lookup interface_name
Example:
ciscoasa(config)# dns domain-lookup inside
Step 2 Specify the DNS server group that the ASA uses for outgoing requests.
dns server-group DefaultDNS
Example:
ciscoasa(config)# dns server-group DefaultDNS
Other DNS server groups can be configured for VPN tunnel groups. See the tunnel-group command in
the command reference for more information.
Step 3 Specify one or more DNS servers. You may enter all six IP addresses in the same command, separated
by spaces, or you can enter each command separately. The ASA tries each DNS server in order until it
receives a response.
name-server ip_address [ip_address2] [...] [ip_address6]
Example:
ciscoasa(config-dns-server-group)# name-server 10.1.1.5 192.168.1.67 209.165.201.6
An additional benefit of the transactional model is that, when replacing an ACL on an interface, there is
no gap between deleting the old ACL and applying the new one. This feature reduces the chances that
acceptable connections may be dropped during the operation.
Tip If you enable the transactional model for a rule type, syslogs to mark the beginning and the end of the
compilation are generated. These syslogs are numbered 780001 through 780004.
To enable the transactional commit model for the rule engine, use the following command:
asp rule-engine transactional-commit option
Password Encryption Visibility 8.4(1) We modified the show password encryption command.
Removal of the default Telnet password 9.0(2)/9.1(2) To improve security for management access to the ASA, the
default login password for Telnet was removed; you must
manually set the password before you can log in using
Telnet.
Note The login password is only used for Telnet if you do
not configure Telnet user authentication (the aaa
authentication telnet console command).
ASP Load Balancing 9.3(2) We introduced this feature. The ASP load balancing
mechanism reduces packet drop and improves throughput
by allowing multiple cores of the CPU to receive packets
from an interface receive ring and work on them
independently.
We introduced the following command: asp load-balance
per-packet-auto.
This chapter describes how to configure dynamic DNS (DDNS) update methods.
• About DDNS, page 15-1
• Guidelines for DDNS, page 15-2
• Configure DDNS, page 15-2
• Monitoring DDNS, page 15-7
• History for DDNS, page 15-7
About DDNS
DDNS update integrates DNS with DHCP. The two protocols are complementary: DHCP centralizes and
automates IP address allocation; DDNS update automatically records the association between assigned
addresses and hostnames at predefined intervals. DDNS allows frequently changing address-hostname
associations to be updated frequently. Mobile hosts, for example, can then move freely on a network
without user or administrator intervention. DDNS provides the necessary dynamic update and
synchronization of the name-to-address mapping and address-to-name mapping on the DNS server.
The DDNS name and address mapping is held on the DHCP server in two resource records (RRs): the
A RR includes the name-to-IP address mapping, while the PTR RR maps addresses to names. Of the two
methods for performing DDNS updates—the IETF standard defined by RFC 2136 and a generic HTTP
method—the ASA supports the IETF method.
Related Topics
• Configure the DHCP Server, page 16-4
Configure DDNS
This section describes how to configure DDNS.
Procedure
Step 1 Create a DDNS update method that dynamically updates DNS RRs.
ddns update method name
Example:
ciscoasa(config)# ddns update method ddns-2
Step 2 Specify that the client update both the DNS A and PTR RRs.
ddns both
Example:
Example:
ciscoasa(DDNS-update-method)# interface eth1
Step 4 Associate the DDNS method with the interface and an update hostname.
ddns update [method-name | hostname hostname]
Example:
ciscoasa(config-if)# ddns update ddns-2
ciscoasa(config-if)# ddns update hostname asa.example.com
Example:
ciscoasa(config-if)# ip address 10.0.0.40 255.255.255.0
Procedure
Step 1 Configure the DHCP client to request that the DHCP server perform no updates.
dhcp-client update dns [server {both | none}]
Example:
ciscoasa(config)# dhcp-client update dns server none
Step 2 Create a DDNS update method that dynamically updates DNS RRs.
ddns update method name
Example:
ciscoasa(config)# ddns update method ddns-2
Step 3 Specify that the client update both the DNS A and PTR RRs.
ddns both
Example:
ciscoasa(DDNS-update-method)# ddns both
Example:
ciscoasa(DDNS-update-method)# interface Ethernet0
Step 5 Associate the DDNS method with the interface and an update hostname.
ddns update [method-name | hostname hostname]
Example:
ciscoasa(config-if)# ddns update ddns-2
ciscoasa(config-if)# ddns update hostname asa.example.com
Example:
ciscoasa(if-config)# ip address dhcp
Example:
ciscoasa(if-config)# dhcpd update dns
Procedure
Step 1 Create a DDNS update method that dynamically updates DNS RRs.
ddns update method name
Example:
ciscoasa(config)# ddns update method ddns-2
Step 2 Specify that the client updates both the DNS A and PTR RRs.
ddns both
Example:
ciscoasa(DDNS-update-method)# ddns both
Example:
ciscoasa(DDNS-update-method)# interface Ethernet0
Step 4 Associate the DDNS method with the interface and an update hostname.
ddns update [method-name | hostname hostname]
Example:
ciscoasa(config-if)# ddns update ddns-2
ciscoasa(config-if)# ddns update hostname asa.example.com
Step 5 Configure the DHCP client to request that the DHCP server perform no updates.
dhcp-client update dns [server {both | none}]
Example:
Example:
ciscoasa(if-config)# ip address dhcp
Step 7 Configure the DHCP server to override the client update requests.
dhcpd update dns [both] [override] [interface srv_ifc_name]
Example:
ciscoasa(if-config)# dhcpd update dns both override
Procedure
Example:
ciscoasa(config)# interface Ethernet0
Step 2 Request that the DHCP server update both the DNS A and PTR RRs.
dhcp-client update dns [server {both | none}]
Example:
ciscoasa(config-if)# dhcp-client update dns both
Example:
ciscoasa(config-if)# ddns update hostname asa
Example:
ciscoasa(config-if)# dhcpd update dns
Example:
ciscoasa(config-if)# dhcpd domain example.com
Procedure
Step 1 Create a DDNS update method that dynamically updates DNS RRs.
ddns update method name
Example:
ciscoasa(config)# ddns update method ddns-2
Example:
ciscoasa(DDNS-update-method)# ddns both
Example:
ciscoasa(DDNS-update-method)# interface Ethernet0
Step 4 Configure the update parameters that the DHCP client passes to the DHCP server.
dhcp-client update dns [server {both | none}]
Example:
ciscoasa(config-if)# dhcp-client update dns
Step 5 Associate the DDNS method with the interface and an update hostname.
ddns update [method-name | hostname hostname]
Example:
ciscoasa(config-if)# ddns update ddns-2
ciscoasa(config-if)# ddns update hostname asa
Example:
ciscoasa(if-config)# dhcpd update dns
Example:
ciscoasa(config-if)# dhcpd domain example.com
Monitoring DDNS
See the following commands for monitoring DDNS status:
• show running-config ddns
This command shows the current DDNS configuration.
• show running-config dns server-group
This command shows the current DNS server group status.
This chapter describes how to configure the DHCP server or DHCP relay.
• About the DHCP Server, page 16-1
• About the DHCP Relay Agent, page 16-2
• Licensing Requirements for DHCP Services, page 16-2
• Guidelines for DHCP Services, page 16-2
• Configure the DHCP Server, page 16-4
• Monitoring DHCP Services, page 16-11
• History for DHCP Services, page 16-12
For all ASA models, the maximum number of DHCP client addresses varies depending on the license:
• If the limit is 10 hosts, the maximum available DHCP pool is 32 addresses.
• If the limit is 50 hosts, the maximum available DHCP pool is 128 addresses.
• If the number of hosts is unlimited, the maximum available DHCP pool is 256 addresses.
IPv6 Guidelines
Does not support IPv6 for interface-specific DHCP relay servers.
• The ASA does not support QIP DHCP servers for use with the DHCP proxy service.
• The relay agent cannot be enabled if the DHCP server is also enabled.
• The ASA DHCP server does not support BOOTP requests. In multiple context mode, you cannot
enable the DHCP server or DHCP relay service on an interface that is used by more than one context.
• When it receives a DHCP request, the ASA sends a discovery message to the DHCP server. This
message includes the IP address (within a subnetwork) that was configured with the
dhcp-network-scope command in the group policy. If the server has an address pool that falls
within that subnetwork, the server sends the offer message with the pool information to the IP
address—not to the source IP address of the discovery message.
• When a client connects, the ASA sends a discovery message to all the servers in the server list. This
message includes the IP address (within a subnetwork) that was configured with the
dhcp-network-scope command in the group policy. The ASA selects the first offer received and
drops the other offers. If the server has an address pool that falls within that subnetwork, the server
sends the offer message with the pool information to the IP address—not to the source IP address of
the discovery message. When the address needs to be renewed, it attempts to renew it with the lease
server (the server from which the address was acquired). If the DHCP renew fails after a specified
number of retries ( four attempts), the ASA moves to the DHCP rebind phase after a predefined time
period. During the rebind phase, the ASA simultaneously sends requests to all servers in the group.
In a high availability environment, lease information is shared, so the other servers can acknowledge
the lease and ASA will return to the bound state. During the rebind phase, if there is no response
from any of the servers in the server list (after three retries), then the ASA will purge the entries.
For example, if the server has a pool in the range of 209.165.200.225 to 209.165.200.254, mask
255.255.255.0, and the IP address specified by the dhcp-network-scope command is
209.165.200.1, the server sends that pool in the offer message to the ASA.
The dhcp-network-scope command setting applies only to VPN users.
• For multiple context mode, you cannot enable DHCP relay on an interface that is used by more than
one context.
• The DHCP clients must be on different interfaces from the DHCP servers to which the ASA relays
requests.
• When the ASA relays DHCP to the DHCP server, it sources the packet with the address of the
interface facing the DHCP server instead of the address facing the DHCP client (GIADDR). This
address becomes problematic when combined with EasyVPN deployments because it may not be
unique, and the DHCP traffic must be routed through a VPN tunnel. The ASA EasyVPN server does
not support multiple peers having the same addresses. To correct this issue, the ASA should source
the packet using the address to which the DHCP server will send its response (GIADDR). This
address must already be unique when deploying DHCP relay.
Step 1 Enable the DHCP Server. See Enable the DHCP Server, page 16-4.
Step 2 Configure advanced DHCP options. See ConfigureAdvanced DHCP Options, page 16-6.
Step 3 Configure either a DHCPv4 relay agent or a DHCPv6 relay agent. See Configure the DHCPv4 Relay
Agent, page 16-9 or Configure the DHCPv6 Relay Agent, page 16-11.
Procedure
Step 1 Create a DHCP address pool. The ASA assigns a client one of the addresses from this pool to use for a given
period of time. These addresses are the local, untranslated addresses for the directly connected network.
dhcpd address ip_address if_name
Example:
ciscoasa(config)# dhcpd address 10.0.1.101-10.0.1.110 inside
The address pool must be on the same subnet as the ASA interface.
Step 2 (Optional) Specify the IP address(es) of the DNS server(s).
dhcpd dns dns1 [dns2]
Example:
ciscoasa(config)# dhcpd dns 209.165.201.2 209.165.202.129
Step 3 (Optional) Specify the IP address(es) of the WINS server(s). You may specify up to two WINS servers.
dhcpd wins wins1 [wins2]
Example:
ciscoasa(config)# dhcpd wins 209.165.201.5
Step 4 (Optional) Change the lease length to be granted to the client. The lease length equals the amount of time
in seconds that the client can use its allocated IP address before the lease expires. Enter a value from 0
to 1,048,575. The default value is 3600 seconds.
dhcpd lease lease_length
Example:
ciscoasa(config)# dhcpd lease 3000
Example:
ciscoasa(config)# dhcpd domain example.com
Step 6 (Optional) Configure the DHCP ping timeout value for ICMP packets. To avoid address conflicts, the
ASA sends two ICMP ping packets to an address before assigning that address to a DHCP client.
dhcpd ping_timeout milliseconds
Example:
ciscoasa(config)# dhcpd ping timeout 20
Step 7 Define a default gateway that is sent to DHCP clients. If you do not use the dhcpd option 3 command
to define the default gateway, DHCP clients use the ASA interface IP address that is closest to the DHCP
clients by default; the ASA does not use the management interface IP address. As a result, the DHCP
ACK does not include this option.
dhcpd option 3 ip gateway_ip
Example:
ciscoasa(config)# dhcpd option 3 ip 10.10.1.1
Step 8 Enable the DHCP daemon within the ASA to listen for DHCP client requests on the enabled interface.
dhcpd enable interface_name
Example:
ciscoasa(config)# dhcpd enable outside
Return an IP Address
To configure an DHCP option that returns one or two IP addresses, perform the following steps:
Procedure
Example:
ciscoasa(config)# dhcpd option 2 ip 10.10.1.1 10.10.1.2
Procedure
Example:
ciscoasa(config)# dhcpd option 2 ascii examplestring
Procedure
Example:
ciscoasa(config)# dhcpd option 2 hex 22.0011.01.FF1111.00FF.0000.AAAA.1111.1111.1111.11
Note The ASA does not verify that the option type and value that you provide match the expected type and
value for the option code as defined in RFC 2132. For example, you can enter the dhcpd option 46 ascii
hello command, and the ASA accepts the configuration, although option 46 is defined in RFC 2132 to
expect a single-digit, hexadecimal value. For more information about option codes and their associated
types and expected values, see RFC 2132.
Table 16-1 shows the DHCP options that are not supported by the dhcpd option command.
DHCP options 3, 66, and 150 are used to configure Cisco IP phones. For more information about
configuring these options, see Configure Cisco IP Phones with a DHCP Server, page 16-8.
Note Cisco IP phones can also include DHCP option 3 in their requests, which sets the default route.
A single request might include both options 150 and 66. In this case, the ASA DHCP server provides
values for both options in the response if they are already configured on the ASA.
Procedure
Step 1 Provide information for DHCP requests that include an option number as specified in RFC 2132.
dhcpd option number value
Example:
ciscoasa(config)# dhcpd option 2
Option 66
To send information to use for option 66, perform the following steps:
Procedure
Step 1 Provide the IP address or name of a TFTP server for option 66.
dhcpd option 66 ascii server_name
Example:
ciscoasa(config)# dhcpd option 66 ascii exampleserver
Option 150
To send information to use for option 150, perform the following steps:
Procedure
Step 1 Provide the IP address or names of one or two TFTP servers for option 150.
Example:
ciscoasa(config)# dhcpd option 150 ip 10.10.1.1
The server_ip1 is the IP address or name of the primary TFTP server while server_ip2 is the IP address
or name of the secondary TFTP server. A maximum of two TFTP servers can be identified using option
150.
Option 3
To send information to use for option 3, perform the following steps:
Procedure
Example:
ciscoasa(config)# dhcpd option 3 ip 10.10.1.1
Procedure
Example:
ciscoasa(config)# dhcprelay server 209.165.201.5 outside
ciscoasa(config)# dhcprelay server 209.165.201.8 outside
ciscoasa(config)# dhcprelay server 209.165.202.150 it
• Specify the interface ID connected to the DHCP client network, and the DHCP server IP address to
be used for DHCP requests that enter that interface.
interface interface_id
dhcprelay server ip_address
Example:
ciscoasa(config)# interface gigabitethernet 0/0
ciscoasa(config)# dhcprelay server 209.165.201.6
ciscoasa(config)# dhcprelay server 209.165.201.7
ciscoasa(config)# interface gigabitethernet 0/1
ciscoasa(config)# dhcprelay server 209.165.202.155
ciscoasa(config)# dhcprelay server 209.165.202.156
Note that you do not specify the egress interface for the requests, as in the global dhcprelay server
command; instead, the ASA uses the routing table to determine the egress interface.
Step 2 Enable the DHCP relay service on the interface connected to the DHCP clients. You may enable DHCP
relay on multiple interfaces.
dhcprelay enable interface
Example:
ciscoasa(config)# dhcprelay enable inside
ciscoasa(config)# dhcprelay enable dmz
ciscoasa(config)# dhcprelay enable eng1
ciscoasa(config)# dhcprelay enable eng2
ciscoasa(config)# dhcprelay enable mktg
Step 3 (Optional) Set the number of seconds allowed for DHCP relay address handling.
dhcprelay timeout seconds
Example:
ciscoasa(config)# dhcprelay timeout 25
Step 4 (Optional) Change the first default router address in the packet sent from the DHCP server to the address
of the ASA interface.
dhcprelay setroute interface_name
Example:
ciscoasa(config)# dhcprelay setroute inside
This action allows the client to set its default route to point to the ASA even if the DHCP server specifies
a different router.
If there is no default router option in the packet, the ASA adds one containing the interface address.
Step 5 (Optional) Do one of the following:
• Specify a DHCP client interface that you want to trust.
interface interface_id
dhcprelay information trusted
Example:
ciscoasa(config)# interface gigabitethernet 0/0
ciscoasa(config-if)# dhcprelay information trusted
You can configure interfaces as trusted interfaces to preserve DHCP Option 82. DHCP Option 82 is
used by downstream switches and routers for DHCP snooping and IP Source Guard. Normally, if
the ASA DHCP relay agent receives a DHCP packet with Option 82 already set, but the giaddr field
(which specifies the DHCP relay agent address that is set by the relay agent before it forwards the
packet to the server) is set to 0, then the ASA will drop that packet by default. You can now preserve
Option 82 and forward the packet by identifying an interface as a trusted interface.
Example:
ciscoasa(config)# dhcprelay information trust-all
Procedure
Step 1 Specify the IPv6 DHCP server destination address to which client messages are forwarded.
ipv6 dhcprelay server ipv6_address [interface]
Example:
ciscoasa(config)# ipv6 dhcprelay server 3FFB:C00:C18:6:A8BB:CCFF:FE03:2701
The ipv6-address argument can be a link-scoped unicast, multicast, site-scoped unicast, or global IPv6
address. Unspecified, loopback, and node-local multicast addresses are not allowed as the relay
destination. The optional interface argument specifies the egress interface for a destination. Client
messages are forwarded to the destination address through the link to which the egress interface is
connected. If the specified address is a link-scoped address, then you must specify the interface.
Step 2 Enable DHCPv6 relay service on a client interface.
ipv6 dhcprelay enable interface
Example:
ciscoasa(config)# ipv6 dhcprelay enable inside
Step 3 (Optional) Specify the amount of time in seconds that is allowed for responses from the DHCPv6 server
to pass to the DHCPv6 client through the relay binding for relay address handling.
ipv6 dhcprelay timeout seconds
Example:
ciscoasa(config)# ipv6 dhcprelay timeout 25
Valid values for the seconds argument range from 1 to 3600. The default is 60 seconds.
Platform
Feature Name Releases Description
DHCP 7.0(1) The ASA can provide a DHCP server or DHCP relay services to DHCP clients
attached to ASA interfaces.
We introduced the following commands: dhcp client update dns, dhcpd address,
dhcpd domain, dhcpd enable, dhcpd lease, dhcpd option, dhcpd ping timeout,
dhcpd update dns, dhcpd wins, dhcp-network-scope, dhcprelay enable,
dhcprelay server, dhcprelay setroute, dhcp-server. show running-config dhcpd,
and show running-config dhcprelay.
DHCP relay servers 9.1(2) You can now configure DHCP relay servers per-interface, so requests that enter a
per interface (IPv4 given interface are relayed only to servers specified for that interface. IPv6 is not
only) supported for per-interface DHCP relay.
We introduced or modified the following commands: dhcprelay server (interface
config mode), clear configure dhcprelay, show running-config dhcprelay.
Platform
Feature Name Releases Description
DHCP trusted 9.1(2) You can now configure interfaces as trusted interfaces to preserve DHCP Option 82.
interfaces DHCP Option 82 is used by downstream switches and routers for DHCP snooping
and IP Source Guard. Normally, if the ASA DHCP relay agent receives a DHCP
packet with Option 82 already set, but the giaddr field (which specifies the DHCP
relay agent address that is set by the relay agent before it forwards the packet to the
server) is set to 0, then the ASA will drop that packet by default. You can now
preserve Option 82 and forward the packet by identifying an interface as a trusted
interface.
We introduced or modified the following commands: dhcprelay information
trusted, dhcprelay information trust-all, show running-config dhcprelay.
DHCP rebind function 9.1(4) During the DHCP rebind phase, the client now tries to rebind to other DHCP servers
in the tunnel group list. Before this release, the client did not rebind to an alternate
server when the DHCP lease fails to renew.
We did not introduce or modify any commands.
Objects are reusable components for use in your configuration. You can define and use them in Cisco
ASA configurations in the place of inline IP addresses, services, names, and so on. Objects make it easy
to maintain your configurations because you can modify an object in one place and have it be reflected
in all other places that are referencing it. Without objects you would have to modify the parameters for
every feature when required, instead of just once. For example, if a network object defines an IP address
and subnet mask, and you want to change the address, you only need to change it in the object definition,
not in every feature that refers to that IP address.
• Guidelines for Objects, page 17-1
• Configure Objects, page 17-2
• Monitoring Objects, page 17-10
• History for Objects, page 17-11
Configure Objects
The following sections describe how to configure objects that are primarily used on access control.
• Configure Network Objects and Groups, page 17-2
• Configure Service Objects and Service Groups, page 17-4
• Configure Local User Groups, page 17-7
• Configure Security Group Object Groups, page 17-8
• Configure Time Ranges, page 17-9
Procedure
Example
ciscoasa(config)# object network email-server
Step 2 Add an address to the object using one of the following commands. Use the no form of the command to
remove the object.
• host {IPv4_address | IPv6_address}—The IPv4 or IPv6 address of a single host. For example,
10.1.1.1 or 2001:DB8::0DB8:800:200C:417A.
• subnet {IPv4_address IPv4_mask | IPv6_address/IPv6_prefix}—The address of a network. For
IPv4 subnets, include the mask after a space, for example, 10.0.0.0 255.0.0.0. For IPv6, include the
address and prefix as a single unit (no spaces), such as 2001:DB8:0:CD30::/60.
• range start_address end_address—A range of addresses. You can specify IPv4 or IPv6 ranges. Do
not include masks or prefixes.
• fqdn [v4 | v6] fully_qualified_domain_name—A fully-qualified domain name, that is, the name of
a host, such as www.example.com. Specify v4 to limit the address to IPv4, and v6 for IPv6. If you
do not specify an address type, IPv4 is assumed.
Example
Procedure
Step 1 Create or edit a network object group using the object name.
ciscoasa(config)# object-group network group_name
Example
ciscoasa(config)# object-group network admin
Step 2 Add objects and addresses to the network object group using one or more of the following commands.
Use the no form of the command to remove an object.
• network-object host {IPv4_address | IPv6_address}—The IPv4 or IPv6 address of a single host.
For example, 10.1.1.1 or 2001:DB8::0DB8:800:200C:417A.
• network-object {IPv4_address IPv4_mask | IPv6_address/IPv6_prefix}—The address of a network
or host. For IPv4 subnets, include the mask after a space, for example, 10.0.0.0 255.0.0.0. For IPv6,
include the address and prefix as a single unit (no spaces), such as 2001:DB8:0:CD30::/60.
• network-object object object_name—The name of an existing network object.
• group-object object_group_name—The name of an existing network object group.
Example
ciscoasa(config-network-object-group)# network-object 10.1.1.0 255.255.255.0
ciscoasa(config-network-object-group)# network-object 2001:db8:0:cd30::/60
ciscoasa(config-network-object-group)# network-object host 10.1.1.1
ciscoasa(config-network-object-group)# network-object host 2001:DB8::0DB8:800:200C:417A
ciscoasa(config-network-object-group)# network-object object existing-object-1
ciscoasa(config-network-object-group)# group-object existing-network-object-group
Example
To create a network group that includes the IP addresses of three administrators, enter the following
commands:
hostname (config)# object-group network admins
hostname (config-protocol)# description Administrator Addresses
Create network object groups for privileged users from various departments by entering the following
commands:
hostname (config)# object-group network eng
hostname (config-network)# network-object host 10.1.1.5
hostname (config-network)# network-object host 10.1.1.9
hostname (config-network)# network-object host 10.1.1.89
Procedure
Example
ciscoasa(config)# object service web
Step 2 Add a service to the object using one of the following commands. Use the no form of the command to
remove an object.
• service protocol—The name or number (0-255) of an IP protocol. Specify ip to apply to all
protocols. For a list of supported keywords, see Protocols and Applications, page 43-10.
• service {icmp | icmp6} [icmp-type [icmp_code]]—For ICMP or ICMP version 6 messages. You can
optionally specify the ICMP type by name or number (0-255) to limit the object to that message
type. If you specify a type, you can optionally specify an ICMP code for that type (1-255). If you
do not specify the code, then all codes are used. For a list of ICMP types, see ICMP Types,
page 43-15.
• service {tcp | udp} [source operator port] [destination operator port]—For TCP or UDP. You can
optionally specify ports for the source, destination, or both. You can specify the port by name or
number (for a list, see TCP and UDP Ports, page 43-11). The operator can be one of the following:
– lt—less than.
– gt—greater than.
– eq—equal to.
– neq—not equal to.
– range—an inclusive range of values. When you use this operator, specify two port numbers, for
example, range 100 200.
Example
ciscoasa(config-service-object)# service tcp destination eq http
Procedure
Step 1 Create or edit a service object group using the object name.
ciscoasa(config)# object-group service group_name
Example
ciscoasa(config)# object-group service general-services
Step 2 Add objects and services to the service object group using one or more of the following commands. Use
the no form of the command to remove an object.
• service-object protocol—The name or number (0-255) of an IP protocol. Specify ip to apply to all
protocols. For a list of supported keywords, see Protocols and Applications, page 43-10.
Examples
The following example shows how to add both TCP and UDP services to a service object group:
ciscoasa(config)# object-group service CommonApps
ciscoasa(config-service-object-group)# service-object tcp destination eq ftp
ciscoasa(config-service-object-group)# service-object tcp-udp destination eq www
ciscoasa(config-service-object-group)# service-object tcp destination eq h323
ciscoasa(config-service-object-group)# service-object tcp destination eq https
ciscoasa(config-service-object-group)# service-object udp destination eq ntp
The following example shows how to add multiple service objects to a service object group:
ciscoasa(config)# object service SSH
ciscoasa(config-service-object)# service tcp destination eq ssh
ciscoasa(config)# object service EIGRP
ciscoasa(config-service-object)# service eigrp
ciscoasa(config)# object service HTTPS
ciscoasa(config-service-object)# service tcp source range 1 1024 destination eq https
ciscoasa(config)# object-group service Group1
ciscoasa(config-service-object-group)# service-object object SSH
ciscoasa(config-service-object-group)# service-object object EIGRP
ciscoasa(config-service-object-group)# service-object object HTTPS
Procedure
Step 1 Create or edit a user object group using the object name.
ciscoasa(config)# object-group user group_name
Example
ciscoasa(config)# object-group user admins
Step 2 Add users and groups to the user object group using one or more of the following commands. Use the
no form of the command to remove an object.
• user [domain_NETBIOS_name\]username—A username. If there is a space in the domain name or
username, you must enclose the domain name and user name in quotation marks. The domain name
can be LOCAL (for users defined in the local database) or an Active Directory (AD) domain name
as specified in the user-identity domain domain_NetBIOS_name aaa-server
aaa_server_group_tag command. When adding users defined in an AD domain, the user_name must
be the Active Directory sAMAccountName, which is unique, instead of the common name (cn),
which might not be unique. If you do not specify a domain name, the default is used, which is either
LOCAL or the one defined on the user-identity default-domain command.
• user-group [domain_NETBIOS_name\\]username—A user group. If there is a space in the domain
name or group name, you must enclose the domain name and group name in quotation marks. Note
the double \\ that separates the domain and group names.
• group-object object_group_name—The name of an existing user object group.
Example
ciscoasa(config-user-object-group)# user EXAMPLE\admin
ciscoasa(config-user-object-group)# user-group EXAMPLE\\managers
ciscoasa(config-user-object-group)# group-object local-admins
Tip If you create a group with tags or names that are not known to the ASA, any rules that use the group will
be inactive until the tags or names are resolved with ISE.
Procedure
Step 1 Create or edit a security group object group using the object name.
ciscoasa(config)# object-group security group_name
Example
ciscoasa(config)# object-group security mktg-sg
Step 2 Add objects to the service group object group using one or more of the following commands. Use the no
form of the command to remove an object.
• security-group {tag sgt_number | name sg_name}—A security group tag (SGT) or name. A tag is
a number from 1 to 65533 and is assigned to a device through IEEE 802.1X authentication, web
authentication, or MAC authentication bypass (MAB) by the ISE. Security group names are created
on the ISE and provide user-friendly names for security groups. The security group table maps SGTs
to security group names. Consult your ISE configuration for the valid tags and names.
• group-object object_group_name—The name of an existing security group object group.
Example
Note You can include multiple periodic entries in a time range object. If a time range has both absolute and
periodic values specified, then the periodic values are evaluated only after the absolute start time is
reached, and they are not further evaluated after the absolute end time is reached.
Creating a time range does not restrict access to the device. This procedure defines the time range only.
You must then use the object in an access control rule.
Procedure
Step 2 (Optional.) Add a start or end time (or both) to the time range.
absolute [start time date] [end time date]
If you do not specify a start time, the default start time is now.
The time is in the 24-hour format hh:mm. For example, 8:00 is 8:00 a.m. and 20:00 is 8:00 p.m.
The date is in the format day month year; for example, 1 January 2014.
Step 3 (Optional.) Add recurring time periods.
periodic days-of-the-week time to [days-of-the-week] time
You can specify the following values for days-of-the-week. Note that you can specify a second day of
the week only if you specify a single day for the first argument.
• Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, or Sunday. You can specify more
than one of these, separated by spaces, for the first days-of-the-week argument.
• daily
• weekdays
• weekend
The time is in the 24-hour format hh:mm. For example, 8:00 is 8:00 a.m. and 20:00 is 8:00 p.m.
You can repeat this command to configure more than one recurring period.
Examples
The following is an example of an absolute time range beginning at 8:00 a.m. on January 1, 2006.
Because no end time and date are specified, the time range is in effect indefinitely.
ciscoasa(config)# time-range for2006
ciscoasa(config-time-range)# absolute start 8:00 1 january 2006
The following is an example of a weekly periodic time range from 8:00 a.m. to 6:00 p.m on weekdays:
ciscoasa(config)# time-range workinghours
ciscoasa(config-time-range)# periodic weekdays 8:00 to 18:00
The following example establishes an end date for the time range, and sets a weekday period from 8 a.m.
to 5 p.m., plus different hours after 5 for Monday, Wednesday, Friday compared to Tuesday, Thursday.
asa4(config)# time-range contract-A-access
asa4(config-time-range)# absolute end 12:00 1 September 2025
asa4(config-time-range)# periodic weekdays 08:00 to 17:00
asa4(config-time-range)# periodic Monday Wednesday Friday 18:00 to 20:00
asa4(config-time-range)# periodic Tuesday Thursday 17:30 to 18:30
Monitoring Objects
To monitor objects and groups, enter the following commands:
• show access-list
Displays the access list entries. Entries that include objects are also expanded out into individual
entries based on the object contents.
• show running-config object [id object_id]
Displays all current objects. Use the id keyword to view a single object by name.
• show running-config object object_type
Displays the current objects by their type, network or service.
• show running-config object-group [id group_id]
Displays all current object groups. Use the id keyword to view a single object group by name.
• show running-config object-group grp_type
Displays the current object groups by their group type.
Access control lists (ACLs) are used by many different features. When applied to interfaces or globally
as access rules, they permit or deny traffic that flows through the appliance. For other features, the ACL
selects the traffic to which the feature will apply, performing a matching service rather than a control
service.
The following sections explain the basics of ACLs and how to configure and monitor them. Access rules,
ACLs applied globally or to interfaces, are explained in more detail in the firewall configuration guide.
• About ACLs, page 18-1
• Guidelines for ACLs, page 18-5
• Configure ACLs, page 18-6
• Edit ACLs in an Isolated Configuration Session, page 18-19
• Monitoring ACLs, page 18-20
• History for ACLs, page 18-21
About ACLs
Access control lists (ACLs) identify traffic flows by one or more characteristics, including source and
destination IP address, IP protocol, ports, EtherType, and other parameters, depending on the type of
ACL. ACLs are used in a variety of features. ACLs are made up of one or more access control entries
(ACEs).
ACL Types
The ASA uses the following types of ACLs:
• Extended ACLs—Extended ACLs are the main type that you will use. These ACLs are used for
access rules to permit and deny traffic through the device, and for traffic matching by many features,
including service policies, AAA rules, WCCP, Botnet Traffic Filter, and VPN group and DAP
policies. See Configure Extended ACLs, page 18-7.
• EtherType ACLs—EtherType ACLs apply to non-IP layer-2 traffic in transparent firewall mode. You
can use these rules to permit or drop traffic based on the EtherType value in the layer-2 packet. With
EtherType ACLs, you can control the flow of non-IP traffic across the device. See Configure
EtherType ACLs, page 18-18.
• Webtype ACLs—Webtype ACLs are used for filtering clientless SSL VPN traffic. These ACLs can
deny access based on URLs or destination addresses. See Configure Webtype ACLs, page 18-14.
• Standard ACLs—Standard ACLs identify traffic by destination address only. There are few features
that use them: route maps and VPN filters. Because VPN filters also allow extended access lists,
limit standard ACL use to route maps. See Configure Standard ACLs, page 18-14.
The following table lists some common uses for ACLs and the type to use.
ACL Names
Each ACL has a name or numeric ID, such as outside_in, OUTSIDE_IN, or 101. Limit the names to 241
characters or fewer.Consider using all uppercase letters to make it easier to find the name when viewing
a running configuration.
Develop a naming convention that will help you identify the intended purpose of the ACL. For example,
ASDM uses the convention interface-name_purpose_direction, such as “outside_access_in”, for an ACL
applied to the “outside” interface in the inbound direction.
Traditionally, ACL IDs were numbers. Standard ACLs were in the range 1-99 or 1300-1999. extended
ACLs were in the range 100-199 or 2000-2699. The ASA does not enforce these ranges, but if you want
to use numbers, you might want to stick to these conventions to maintain consistency with routers
running IOS Software.
interface to a low security interface). However, if you explicitly deny all traffic with an EtherType ACE,
then IP and ARP traffic is denied; only physical protocol traffic, such as auto-negotiation, is still
allowed.
ciscoasa(config)# access-list OUTSIDE extended permit tcp any host 10.1.1.5 eq www
ciscoasa(config)# access-group OUTSIDE in interface outside
Time-Based ACEs
You can apply time range objects to extended and webtype ACEs so that the rules are active for specific
time periods only. These types of rules let you differentiate between activity that is acceptable at certain
times of the day but that is unacceptable at other times. For example, you could provide additional
restrictions during working hours, and relax them after work hours or at lunch. Conversely, you could
essentially shut your network down during non-work hours. For information on creating time range
objects, see Configure Time Ranges, page 17-9.
Note Users could experience a delay of approximately 80 to 100 seconds after the specified end time for the
ACL to become inactive. For example, if the specified end time is 3:50, because the end time is inclusive,
the command is picked up anywhere between 3:51:00 and 3:51:59. After the command is picked up, the
ASA finishes any currently running task and then services the command to deactivate the ACL.
IPv6 Guidelines
Extended and webtype ACLs allow a mix of IPv4 and IPv6 addresses.
Standard ACLs do not allow IPv6 addresses.
EtherType ACLs do not contain IP addresses.
(Extended ACL only.) Features That Do Not Support Identity Firewall, FQDN, and Cisco TrustSec ACLs
The following features use ACLs, but cannot accept an ACL with identity firewall (specifying user or
group names), FQDN (fully-qualified domain names), or Cisco TrustSec values:
• route-map command
• VPN crypto map command
• VPN group-policy command, except for vpn-filter
• WCCP
• DAP
Configure ACLs
The following sections explain how to configure the various types of ACL, Read the section on ACL
basics to get the big picture, then the sections on specific types of ACL for the details.
• Basic ACL Configuration and Management Options, page 18-6
• Configure Extended ACLs, page 18-7
• Configure Standard ACLs, page 18-14
• Configure Webtype ACLs, page 18-14
• Configure EtherType ACLs, page 18-18
• Add an ACE—The command for adding an ACE is access-list name [line line-num] type
parameters. The line number argument works for extended ACLs only. If you include the line
number, the ACE is inserted at that location in the ACL, and the ACE that was at that location is
moved down, along with the remainder of the ACEs (that is, inserting an ACE at a line number does
not replace the old ACE at that line). If you do not include a line number, the ACE is added to the
end of the ACL. The parameters available differ based on the ACL type; see the specific topics on
each ACL type for details.
• Add comments to an ACL (all types except webtype)—Use the access-list name [line line-num]
remark text command to add remarks into an ACL to help explain the purpose of an ACE. Best
practice is to insert the remark before the ACE; if you view the configuration in ASDM, remarks
will be associated with the ACE that follows the remarks. You can enter multiple remarks before an
ACE to include an expanded comment. Each remark is limited to 100 characters. You can include
leading spaces to help set off the remarks. If you do not include a line number, the remark is added
to the end of the ACL. For example, you could add remarks before adding each ACE:
ciscoasa(config)# access-list OUT remark - this is the inside admin address
ciscoasa(config)# access-list OUT extended permit ip host 209.168.200.3 any
ciscoasa(config)# access-list OUT remark - this is the hr admin address
ciscoasa(config)# access-list OUT extended permit ip host 209.168.200.4 any
• Edit or move an ACE or remark—You cannot edit or move an ACE or remark. Instead, you must
create a new ACE or remark with the desired values at the right location (using the line number),
then delete the old ACE or remark. Because you can insert ACEs in extended ACLs only, you need
to rebuild standard, webtype, or EtherType ACLs if you need to edit or move ACEs. It is far easier
to reorganize a long ACL using ASDM.
• Delete an ACE or remark—Use the no access-list parameters command to remove an ACE or
remark. Use the show access-list command to view the parameter string that you must enter: the
string must exactly match an ACE or remark to delete it, with the exception of the line line-num
argument, which is optional on the no access-list command.
• Delete an entire ACL, including remarks—Use the clear configure access-list name command.
USE CAUTION! The command does not ask you for confirmation. If you do not include a name,
every access list on the ASA is removed.
• Rename an ACL—Use the access-list name rename new_name command.
• Apply the ACL to a policy—Creating an ACL in and of itself does nothing to traffic. You must
apply the ACL to a policy. For example, you can use the access-group command to apply an
extended ACL to an interface, thus denying or permitting traffic that goes through the interface. For
information on some of the uses of ACLs, see ACL Types, page 18-1.
Tip If you want to match traffic based on FQDN, you must create a network object for each FQDN.
To add an ACE for IP address or FQDN matching, use the following command:
access-list access_list_name [line line_number] extended {deny | permit}
protocol_argument source_address_argument dest_address_argument
[log [[level] [interval secs] | disable | default]]
[time-range time_range_name]
[inactive]
Example:
ciscoasa(config)# access-list ACL_IN extended permit ip any any
• Logging—log arguments set logging options when an ACE matches a packet for network access (an
ACL applied with the access-group command). If you enter the log option without any arguments,
you enable syslog message 106100 at the default level (6) and for the default interval (300 seconds).
Log options are:
– level—A severity level between 0 and 7. The default is 6 (informational). If you change this
level for an active ACE, the new level applies to new connections; existing connections continue
to be logged at the previous level.
– interval secs—The time interval in seconds between syslog messages, from 1 to 600. The
default is 300. This value is also used as the timeout value for deleting an inactive flow from the
cache used to collect drop statistics.
– disable—Disables all ACE logging.
– default—Enables logging to message 106023 for denied packets. This setting is the same as not
including the log option.
• Time Range—The time-range time_range_name option specifies a time range object, which
determines the times of day and days of the week in which the ACE is active. If you do not include
a time range, the ACE is always active.
• Activation—Use the inactive option to disable the ACE without deleting it. To reenable it, enter the
entire ACE without the inactive keyword.
Example:
ciscoasa(config)# access-list ACL_IN extended deny tcp any host 209.165.201.29 eq www
The port_argument option specifies the source or destination port. If you do not specify ports, all ports
are matched. Available arguments include:
• operator port—The operator can be one of the following:
– lt—less than
– gt—greater than
– eq—equal to
– neq—not equal to
– range—an inclusive range of values. When you use this operator, specify two port numbers, for
example:
range 100 200
The port can be the integer or name of a TCP or UDP port. DNS, Discard, Echo, Ident, NTP, RPC,
SUNRPC, and Talk each require one definition for TCP and one for UDP. TACACS+ requires one
definition for port 49 on TCP.
• object service_obj_id—Specifies a service object created using the object service command. See
Configure Service Objects and Service Groups, page 17-4.
• object-group service_grp_id—Specifies a service object group created using the object-group
service command.
For an explanation of the other keywords, see Add an Extended ACE for IP Address or Fully-Qualified
Domain Name-Based Matching, page 18-7.
Example:
ciscoasa(config)# access-list abc extended permit icmp any any object-group obj_icmp_1
ciscoasa(config)# access-list abc extended permit icmp any any echo
Example:
ciscoasa(config)# access-list v1 extended permit ip user LOCAL\idfw
any 10.0.0.0 255.255.255.0
The user_argument option specifies the user or group for which to match traffic in addition to the source
address. Available arguments include the following:
• object-group-user user_obj_grp_id—Specifies a user object group created using the object-group
user command.
• user {[domain_nickname\]name | any | none}—Specifies a username. Specify any to match all
users with user credentials, or none to match addresses that are not mapped to usernames. These
options are especially useful for combining access-group and aaa authentication match policies.
• user-group [domain_nickname\\]user_group_name—Specifies a user group name. Note the double
\\ separating the domain and group name.
For an explanation of the other keywords, see Add an Extended ACE for IP Address or Fully-Qualified
Domain Name-Based Matching, page 18-7.
Tip You can include both user and Cisco Trustsec security groups in a given ACE. See Add an Extended ACE
for Security Group-Based Matching (Cisco TrustSec), page 18-12.
Tip Before adding this type of ACE, configure Cisco TrustSec as described in Chapter 33, “ASA and Cisco
TrustSec.”
To add an ACE for security group matching, use the following command:
access-list access_list_name [line line_number] extended {deny | permit} protocol_argument
[security_group_argument] source_address_argument [port_argument]
[security_group_argument] dest_address_argument [port_argument] [log [[level]
[interval secs] | disable | default]] [inactive | time-range time_range_name]
Example:
ciscoasa(config)# access-list INSIDE_IN extended permit ip
security-group name my-group any any
The security_group_argument option specifies the security group for which to match traffic in addition
to the source or destination address. Available arguments include the following:
• object-group-security security_obj_grp_id—Specifies a security object group created using the
object-group security command.
• security-group {name security_grp_id | tag security_grp_tag}—Specifies a security group name
or tag.
For an explanation of the other keywords, see Add an Extended ACE for IP Address or Fully-Qualified
Domain Name-Based Matching, page 18-7.
Tip You can include both user and Cisco Trustsec security groups in a given ACE. See Add an Extended ACE
for User-Based Matching (Identity Firewall), page 18-11.
The following ACL prevents hosts on 192.168.1.0/24 from accessing the 209.165.201.0/27 network for
TCP-based traffic. All other addresses are permitted.
hostname(config)# access-list ACL_IN extended deny tcp 192.168.1.0 255.255.255.0
209.165.201.0 255.255.255.224
hostname(config)# access-list ACL_IN extended permit ip any any
If you want to restrict access to selected hosts only, then enter a limited permit ACE. By default, all other
traffic is denied unless explicitly permitted.
hostname(config)# access-list ACL_IN extended permit ip 192.168.1.0 255.255.255.0
209.165.201.0 255.255.255.224
The following ACL restricts all hosts (on the interface to which you apply the ACL) from accessing a
website at address 209.165.201.29. All other traffic is allowed.
hostname(config)# access-list ACL_IN extended deny tcp any host 209.165.201.29 eq www
hostname(config)# access-list ACL_IN extended permit ip any any
The following ACL that uses object groups restricts several hosts on the inside network from accessing
several web servers. All other traffic is allowed.
hostname(config-network)# access-list ACL_IN extended deny tcp object-group denied
object-group web eq www
hostname(config)# access-list ACL_IN extended permit ip any any
hostname(config)# access-group ACL_IN in interface inside
The following example temporarily disables an ACL that permits traffic from one group of network
objects (A) to another group of network objects (B):
hostname(config)# access-list 104 permit ip host object-group A object-group B inactive
To implement a time-based ACE, use the time-range command to define specific times of the day and
week. Then use the access-list extended command to bind the time range to an ACE. The following
example binds an ACE in the “Sales” ACL to a time range named “New_York_Minute.”
hostname(config)# access-list Sales line 1 extended deny tcp host 209.165.200.225 host
209.165.201.1 time-range New_York_Minute
If you make two network object groups, one for the inside hosts, and one for the web servers, then the
configuration can be simplified and can be easily modified to add more hosts:
ciscoasa(config)# object-group network denied
ciscoasa(config-network)# network-object host 10.1.1.4
ciscoasa(config-network)# network-object host 10.1.1.78
ciscoasa(config-network)# network-object host 10.1.1.89
Example:
ciscoasa(config)# access-list OSPF standard permit 192.168.1.0 255.255.255.0
Example:
ciscoasa(config)# access-list acl_company webtype deny url http://*.example.com
Example:
ciscoasa(config)# access-list acl_company webtype permit tcp any
For an explanation of keywords not explained here, see Add a Webtype ACE for URL Matching,
page 18-15. Keywords and arguments specific to this type of ACE include the following:
• tcp—The TCP protocol. Webtype ACLs match TCP traffic only.
• Destination Address—The dest_address_argument specifies the IP address to which the packet is
being sent:
– host ip_address—Specifies an IPv4 host address.
– dest_ip_address mask—Specifies an IPv4 network address and subnet mask, such as
10.100.10.0 255.255.255.0.
– ipv6-address/prefix-length—Specifies an IPv6 host or network address and prefix.
– any, any4, and any6—any specifies both IPv4 and IPv6 traffic; any4 specifies IPv4 traffic only;
and any6 specifies IPv6 traffic only.
• operator port—The destination port. If you do not specify ports, all ports are matched. The operator
can be one of the following:
– lt—less than
– gt—greater than
– eq—equal to
– neq—not equal to
– range—an inclusive range of values. When you use this operator, specify two port numbers, for
example:
range 100 200
The following example shows how to deny access to a specific web page:
ciscoasa(config)# access-list acl_file webtype deny url
https://www.example.com/dir/file.html
The following example shows how to deny HTTP access to any URL on a specific server through port
8080:
ciscoasa(config)# access-list acl_company webtype deny url http://my-server:8080/*
The range operator “[]” in the preceding example specifies that either character 0 or 1 can occur at
that location.
• The following example matches URLs such as http://www.example.com and
http://www.example.net:
access-list test webtype permit url http://www.[a-z]xample?*/
The range operator “[]” in the preceding example specifies that any character in the range from a to
z can occur.
• The following example matches http or https URLs that include “cgi” somewhere in the file name
or path.
access-list test webtype permit url htt*://*/*cgi?*
Note To match any http URL, you must enter http://*/* instead of http://*.
The following example shows how to enforce a webtype ACL to disable access to specific CIFS shares.
In this scenario we have a root folder named “shares” that contains two sub-folders named
“Marketing_Reports” and “Sales_Reports.” We want to specifically deny access to the
“shares/Marketing_Reports” folder.
access-list CIFS_Avoid webtype deny url cifs://172.16.10.40/shares/Marketing_Reports.
However, due to the implicit “deny all” at the end of the ACL, the above ACL makes all of the
sub-folders inaccessible (“shares/Sales_Reports” and “shares/Marketing_Reports”), including the root
folder (“shares”).
To fix the problem, add a new ACL to allow access to the root folder and the remaining sub-folders:
access-list CIFS_Allow webtype permit url cifs://172.16.10.40/shares*
Example:
ciscoasa(config)# access-list ETHER ethertype deny ipx
The following ACL allows some EtherTypes through the ASA, but it denies IPX:
ciscoasa(config)# access-list ETHER ethertype deny ipx
ciscoasa(config)# access-list ETHER ethertype permit 1234
ciscoasa(config)# access-list ETHER ethertype permit mpls-unicast
ciscoasa(config)# access-group ETHER in interface inside
ciscoasa(config)# access-group ETHER in interface outside
The following ACL denies traffic with EtherType 0x1256, but it allows all others on both interfaces:
ciscoasa(config)# access-list nonIP ethertype deny 1256
ciscoasa(config)# access-list nonIP ethertype permit any
ciscoasa(config)# access-group ETHER in interface inside
ciscoasa(config)# access-group ETHER in interface outside
Procedure
If the session_name already exists, you open that session. Otherwise, you are creating a new session.
Use the show configuration session command to view the existing sessions. You can have at most 3
sessions active at a time. If you need to delete an old unused session, use the clear configuration session
session_name command.
If you cannot open an existing session because someone else is editing it, you can clear the flag that
indicates the session is being edited. Do this only if you are certain the session is not actually being
edited. Use the clear session session_name access command to reset the flag.
Step 2 (Uncommitted sessions only.) Make your changes. You can use the following basic commands with any
of their parameters:
• access-list
• object
• object-group
Step 3 Decide what to do with the session. The commands available depend on whether you have previously
committed the session. Possible commands are:
• exit—To simply exit the session without committing or discarding changes, so that you can return
later.
• commit [noconfirm [revert-save | config-save]]—(Uncommitted sessions only.) To commit your
changes. You are asked if you want to save the session. You can save the revert session (revert-save),
which lets you undo your changes using the revert command, or the configuration session
(config-save), which includes all of the changes made in the session (allowing you to commit the
same changes again if you would like to). If you save the revert or configuration session, the changes
are committed, but the session remains active. You can open the session and revert or recommit the
changes. You can avoid the prompt by including the noconfirm option and optionally, the desired
save option.
• abort—(Uncommitted sessions only.) To abandon your changes and delete the session. If you want
to keep the session, exit the session and use the clear session session_name configuration
command, which empties the session without deleting it.
• revert—(Committed sessions only.) To undo your changes, returning the configuration back to what
it was before you committed the session, and delete the session.
• show configuration session [session_name]—To show the changes made in the session.
Monitoring ACLs
To monitor ACLs, enter one of the following commands:
Command Purpose
show access-list [name] Displays the access lists, including the line
number for each ACE and hit counts. Include an
ACL name or you will see all access lists.
show running-config access-list [name] Displays the current running access-list
configuration. Include an ACL name or you will
see all access lists.
Real IP addresses in extended ACLs 8.3(1) When using NAT or PAT, mapped addresses and ports are no
longer used in an ACL for several features. You must use the
real, untranslated addresses and ports for these features.
Using the real address and port means that if the NAT
configuration changes, you do not need to change the ACLs.
For more information, see IP Addresses Used for Extended
ACLs When You Use NAT, page 18-4.
Support for Identity Firewall in extended ACLs 8.4(2) You can now use identity firewall users and groups for the
source and destination. You can use an identity firewall
ACL with access rules, AAA rules, and for VPN
authentication.
We modified the following commands: access-list
extended.
EtherType ACL support for IS-IS traffic 8.4(5), 9.1(2) In transparent firewall mode, the ASA can now control
IS-IS traffic using an EtherType ACL.
We modified the following command: access-list ethertype
{permit | deny} isis.
Support for Cisco TrustSec in extended ACLs 9.0(1) You can now use Cisco TrustSec security groups for the
source and destination. You can use an identity firewall
ACL with access rules.
We modified the following commands: access-list
extended.
Extended ACL and object enhancement to filter 9.0(1) ICMP traffic can now be permitted/denied based on ICMP
ICMP traffic by ICMP code code.
We introduced or modified the following commands:
access-list extended, service-object, service.
Configuration session for editing ACLs and 9.3(2) You can now edit ACLs and objects in an isolated
objects. configuration session. You can also forward reference
objects and ACLs, that is, configure rules and access groups
Forward referencing of objects and ACLs in
for objects or ACLs that do not yet exist.
access rules.
We introduced the clear configuration session, clear
session, configure session, forward-reference, and show
configuration session commands.
IP Routing
CH AP TE R 19
Routing Overview
This chapter describes underlying concepts of how routing behaves within the Cisco ASA, and the
routing protocols that are supported. Routing is the act of moving information across a network from a
source to a destination. Along the way, at least one intermediate node is typically encountered. Routing
involves two basic activities: determining optimal routing paths and transporting packets through a
network.
• Path Determination, page 19-1
• Supported Route Types, page 19-2
• How Routing Behaves Within the ASA, page 19-3
• Supported Internet Protocols for Routing, page 19-5
• Routing Table, page 19-6
• Disable Proxy ARP Requests, page 19-10
• Display the Routing Table, page 19-11
Path Determination
Routing protocols use metrics to evaluate what path will be the best for a packet to travel. A metric is a
standard of measurement, such as path bandwidth, that is used by routing algorithms to determine the
optimal path to a destination. To aid the process of path determination, routing algorithms initialize and
maintain routing tables, which include route information. Route information varies depending on the
routing algorithm used.
Routing algorithms fill routing tables with a variety of information. Destination or next hop associations
tell a router that a particular destination can be reached optimally by sending the packet to a particular
router representing the next hop on the way to the final destination. When a router receives an incoming
packet, it checks the destination address and attempts to associate this address with a next hop.
Routing tables also can include other information, such as data about the desirability of a path. Routers
compare metrics to determine optimal routes, and these metrics differ depending on the design of the
routing algorithm used.
Routers communicate with one another and maintain their routing tables through the transmission of a
variety of messages. The routing update message is one such message that generally consists of all or a
portion of a routing table. By analyzing routing updates from all other routers, a router can build a
detailed picture of network topology. A link-state advertisement, another example of a message sent
between routers, informs other routers of the state of the sender links. Link information also can be used
to build a complete picture of network topology to enable routers to determine optimal routes to network
destinations.
Note Asymmetric routing is only supported for Active/Active failover in multiple context mode.
ECMP Routing
The ASA supports Equal-Cost Multi-Path (ECMP) routing.
Without zones, You can have up to 3 equal cost static or dynamic routes per interface. For example, you
can configure three default routes on the outside interface that specify different gateways:
route outside 0 0 10.1.1.2
route outside 0 0 10.1.1.3
route outside 0 0 10.1.1.4
In this case, traffic is load-balanced on the outside interface between 10.1.1.2, 10.1.1.3, and 10.1.1.4.
Traffic is distributed among the specified gateways based on an algorithm that hashes the source and
destination IP addresses.
ECMP is not supported across multiple interfaces, so you cannot define a route to the same destination
on a different interface. The following route is disallowed when configured with any of the routes above:
route outside2 0 0 10.2.1.1
With zones, you can have up to 8 equal cost static or dynamic routes across up to 8 interfaces within a
zone. For example, you can configure three default routes across three interfaces in the zone:
route outside1 0 0 10.1.1.2
route outside2 0 0 10.2.1.2
route outside3 0 0 10.3.1.2
Similarly, your dynamic routing protocol can automatically configure equal cost routes. The ASA
load-balances traffic across the interfaces with a more robust load balancing mechanism.
When a route is lost, the ASA seamlessly moves the flow to a different route.
BGP is an interautonomous system routing protocol. BGP is used to exchange routing information
for the Internet and is the protocol used between Internet service providers (ISP). Customers connect
to ISPs, and ISPs use BGP to exchange customer and ISP routes. When BGP is used between
autonomous systems (AS), the protocol is referred to as External BGP (EBGP). If a service provider
is using BGP to exchange routes within an AS, then the protocol is referred to as Interior BGP
(IBGP).
For more information about configuring BGP, see Configure BGP, page 22-4
Routing Table
• How the Routing Table Is Populated, page 19-6
• How Forwarding Decisions Are Made, page 19-8
• Dynamic Routing and Failover, page 19-8
• Dynamic Routing and Clustering, page 19-9
• Dynamic Routing in Multiple Context Mode, page 19-9
The smaller the administrative distance value, the more preference is given to the protocol. For example,
if the ASA receives a route to a certain network from both an OSPF routing process (default
administrative distance - 110) and a RIP routing process (default administrative distance - 120), the ASA
chooses the OSPF route because OSPF has a higher preference. In this case, the router adds the OSPF
version of the route to the routing table.
In this example, if the source of the OSPF-derived route was lost (for example, due to a power shutdown),
the ASA would then use the RIP-derived route until the OSPF-derived route reappears.
The administrative distance is a local setting. For example, if you use the distance-ospf command to
change the administrative distance of routes obtained through OSPF, that change would only affect the
routing table for the ASA on which the command was entered. The administrative distance is not
advertised in routing updates.
Administrative distance does not affect the routing process. The EIGRP, OSPF, RIP and BGP routing
processes only advertise the routes that have been discovered by the routing process or redistributed into
the routing process. For example, the RIP routing process advertises RIP routes, even if routes
discovered by the OSPF routing process are used in the ASA routing table.
Backup Routes
A backup route is registered when the initial attempt to install the route in the routing table fails because
another route was installed instead. If the route that was installed in the routing table fails, the routing
table maintenance process calls each routing protocol process that has registered a backup route and
requests them to reinstall the route in the routing table. If there are multiple protocols with registered
backup routes for the failed route, the preferred route is chosen based on administrative distance.
Because of this process, you can create floating static routes that are installed in the routing table when
the route discovered by a dynamic routing protocol fails. A floating static route is simply a static route
configured with a greater administrative distance than the dynamic routing protocols running on the
ASA. When the corresponding route discovered by a dynamic routing process fails, the static route is
installed in the routing table.
In this case, a packet destined to 192.168.32.1 is directed toward 10.1.1.2, because 192.168.32.1 falls
within the 192.168.32.0/24 network. It also falls within the other route in the routing table, but the
192.168.32.0/24 has the longest prefix within the routing table (24 bits verses 19 bits). Longer prefixes
are always preferred over shorter ones when forwarding a packet.
Route Maps
EIGRP OSPFv2 and Prefix Lists
One instance is supported per Two instances are supported per N/A
context. context.
It is disabled in the system context. N/A
Two contexts may use the same Two contexts may use the same N/A
or different autonomous system or different area IDs.
numbers.
Shared interfaces in two contexts Shared interfaces in two contexts N/A
may have multiple EIGRP may have multiple OSPF
instances running on them. instances running on them.
The interaction of EIGRP The interaction of OSPFv2 N/A
instances across shared instances across shared
interfaces is supported. interfaces is supported.
All CLIs that are available in single mode are also available in multiple context mode.
Each CLI has an effect only in the context in which it is used.
that the return traffic of the VPN clients towards the internal hosts will go to the wrong interface and will
get dropped. In this case, you need to disable proxy ARP requests for the interface on which you do not
want them.
Procedure
Example:
ciscoasa(config)# sysopt noproxyarp exampleinterface
This chapter describes how to configure static and default routes on the Cisco ASA.
• About Static and Default Routes, page 20-1
• Guidelines for Static and Default Routes, page 20-3
• Configure Default and Static Routes, page 20-3
• Monitoring a Static or Default Route, page 20-7
• Examples for Static or Default Routes, page 20-7
• History for Static and Default Routes, page 20-8
Default Route
The simplest option is to configure a default route to send all traffic to an upstream router, relying on the
router to route the traffic for you. A default route identifies the gateway IP address to which the ASA
sends all IP packets for which it does not have a learned or static route. A default static route is simply
a static route with 0.0.0.0/0 as the destination IP address.
Static Routes
You might want to use static routes in single context mode in the following cases:
• Your networks use a different router discovery protocol from BGP, EIGRP, RIP, or OSPF.
• Your network is small and you can easily manage static routes.
• You do not want the traffic or CPU overhead associated with routing protocols.
• In some cases, a default route is not enough. The default gateway might not be able to reach the
destination network, so you must also configure more specific static routes. For example, if the
default gateway is outside, then the default route cannot direct traffic to any inside networks that are
not directly connected to the ASA.
Route Priorities
• Routes that identify a specific destination take precedence over the default route.
• When multiple routes exist to the same destination (either static or dynamic), then the administrative
distance for the route determines priority. Static routes are set to 1, so they typically are the highest
priority routes.
• When you have multiple static routes to the same destination with the same administrative distance,
see ECMP Routing, page 19-4.
• For traffic emerging from a tunnel with the Tunneled option, this route overrides any other
configured or learned default routes.
IPv6
• IPv6 static routes are not supported in transparent mode in ASDM.
• Static route tracking is not supported for IPv6.
Clustering
In clustering, static route monitoring is only supported on the master unit.
Procedure
IPv6:
ipv6 route if_name ::/0 next_hop_ipv6_addr [distance | tunneled]
Example:
ciscoasa(config)# route outside 0.0.0.0 0.0.0.0 192.168.2.4
ciscoasa(config)# route inside 0.0.0.0 0.0.0.0 10.1.2.3 tunneled
ciscoasa(config)# ipv6 route inside ::/0 3FFE:1100:0:CC00::1
The if_name is the interface through which you want to send the specific traffic.
The distance argument is the administrative distance for the route, between 1 and 254. The default is 1
if you do not specify a value. Administrative distance is a parameter used to compare routes among
different routing protocols. The default administrative distance for static routes is 1, giving it precedence
over routes discovered by dynamic routing protocols but not directly connect routes. The default
administrative distance for routes discovered by OSPF is 110. If a static route has the same
administrative distance as a dynamic route, the static routes take precedence. Connected routes always
take precedence over static or dynamically discovered routes.
Note If you have two default routes configured on different interfaces that have different metrics, the
connection to the ASA that is made from the higher metric interface fails, but connections to the
ASA from the lower metric interface succeed as expected.
You can define a separate default route for tunneled traffic along with the standard default route using
the tunneled keyword. When you create a default route with the tunneled option, all traffic from a tunnel
terminating on the ASA that cannot be routed using learned or static routes is sent to this route.
Tip You can enter 0 0 instead of 0.0.0.0 0.0.0.0 for the destination network address and mask, as shown in
the following example:
Example:
ciscoasa(config)# route outside 10.10.10.0 255.255.255.0 192.168.1.1
The if_name is the interface through which you want to send the specific traffic. To “black hole”
unwanted traffic, enter the null0 interface.
The dest_ip and mask arguments indicate the IP address for the destination network and the gateway_ip
argument is the address of the next-hop router. The addresses you specify for the static route are the
addresses that are in the packet before entering the ASA and performing NAT.
The distance argument is the administrative distance for the route. The default is 1 if you do not specify
a value. Administrative distance is a parameter used to compare routes among different routing
protocols. The default administrative distance for static routes is 1, giving it precedence over routes
discovered by dynamic routing protocols but not directly connected routes. The default administrative
distance for routes discovered by OSPF is 110. If a static route has the same administrative distance as
a dynamic route, the static route takes precedence. Connected routes always take precedence over static
or dynamically discovered routes.
Examples
The following example shows static routes for 3 networks that go to the same gateway, and another
network that goes to a separate gateway:
route outside 10.10.10.0 255.255.255.0 192.168.1.1
route outside 10.10.20.0 255.255.255.0 192.168.1.1
route outside 10.10.30.0 255.255.255.0 192.168.1.1
route inside 10.10.40.0 255.255.255.0 10.1.1.1
You can configure static route tracking for statically defined routes or default routes obtained through
DHCP or PPPoE. You can only enable PPPoE clients on multiple interfaces with route tracking
configured.
Procedure
Example:
ciscoasa(config)# sla monitor 5
ciscoasa(config-sla-monitor)#
Step 2 Specify the monitoring protocol, the target host on the tracked network, and the interface through which
you reach the network:
type echo protocol ipicmpecho target_ip interface if_name
Example:
ciscoasa(config-sla-monitor)# type echo protocol ipicmpecho 172.29.139.134
ciscoasa(config-sla-monitor-echo)#
The target_ip argument is the IP address of the network object whose availability the tracking process
monitors. While this object is available, the tracking process route is installed in the routing table. When
this object becomes unavailable, the tracking process removes the route and the backup route is used in
its place.
Step 3 (Optional) Configure monitoring options. See the command reference for the following commands:
frequency, num-packets, request-data-size, threshold, timeout, and tos.
Step 4 Schedule the monitoring process:
sla monitor schedule sla_id [life {forever | seconds}] [start-time {hh:mm [:ss] [month day
| day month] | pending | now | after hh:mm:ss}] [ageout seconds] [recurring]
Example:
ciscoasa(config)# sla monitor schedule 5 life forever start-time now
Typically, you will use the sla monitor schedule sla_id life forever start-time now command for the
monitoring schedule, and allow the monitoring configuration to determine how often the testing occurs.
However, you can schedule this monitoring process to begin in the future and to only occur at specified
times.
Step 5 Associate a tracked static route with the SLA monitoring process:
track track_id rtr sla_id reachability
Example:
ciscoasa(config)# track 6 rtr 5 reachability
The track_id argument is a tracking number you assign with this command. The sla_id argument is the
ID number of the SLA process.
Step 6 Track one of the following route types:
• Static route:
route if_name dest_ip mask gateway_ip [distance] track track_id
Example:
ciscoasa(config)# route outside 10.10.10.0 255.255.255.0 192.168.1.1 track 6
Platform
Feature Name Releases Feature Information
Static Route Tracking 7.2(1) The static route tracking feature provides a method for
tracking the availability of a static route and installing a
backup route if the primary route should fail.
We introduced the following commands: clear configure
sla, frequency, num-packets, request-data-size, show sla
monitor, show running-config sla, sla monitor, sla
monitor schedule, threshold, timeout, tos, track rtr
Static null0 route to “black hole” traffic 9.2(1) Sending traffic to a null0 interface results in dropping the
packets destined to the specified network. This feature is
useful in configuring Remotely Triggered Black Hole
(RTBH) for BGP.
We modified the following command: route.
• Each ACL ends with an implicit deny statement, by design convention; there is no similar
convention for route maps. If the end of a route map is reached during matching attempts, the result
depends on the specific application of the route map. Fortunately, route maps that are applied to
redistribution behave the same way as ACLs: if the route does not match any clause in a route map
then the route redistribution is denied, as if the route map contained deny statement at the end.
The dynamic protocol redistribute command allows you to apply a route map. In Cisco ASDM, this
capability for redistribution can be found when you add or edit a new route map (see Define a Route
Map, page 21-4). Route maps are preferred if you intend to either modify route information during
redistribution or if you need more powerful matching capability than an ACL can provide. If you simply
need to selectively permit some routes based on their prefix or mask, we recommend that you use a route
map to map to an ACL (or equivalent prefix list) directly in the redistribute command. If you use a route
map to selectively permit some routes based on their prefix or mask, you typically use more
configuration commands to achieve the same goal.
Note You must use a standard ACL as the match criterion for your route map. Using an extended ACL will
not work, and your routes will never be redistributed. We recommend that you number clauses in
intervals of 10 to reserve numbering space in case you need to insert clauses in the future.
A match or set value in each clause can be missed or repeated several times, if one of these conditions
exists:
• If several match commands or Match Clause values in ASDM are present in a clause, all must
succeed for a given route in order for that route to match the clause (in other words, the logical AND
algorithm is applied for multiple match commands).
• If a match command or Match Clause value in ASDM refers to several objects in one command,
either of them should match (the logical OR algorithm is applied). For example, in the match ip
address 101 121 command, a route is permitted if ACL 101 or ACL 121 permits it.
• If a match command or Match Clause value in ASDM is not present, all routes match the clause. In
the previous example, all routes that reach clause 30 match; therefore, the end of the route map is
never reached.
• If a set command, or Set Value in ASDM, is not present in a route map permit clause, then the route
is redistributed without modification of its current attributes.
Note Do not configure a set command in a route map deny clause because the deny clause prohibits route
redistribution—there is no information to modify.
A route map clause without a match or set command, or Match or Set Value as set on the Match or Set
Value tab in ASDM, performs an action. An empty permit clause allows a redistribution of the remaining
routes without modification. An empty deny clause does not allows a redistribution of other routes (this
is the default action if a route map is completely scanned, but no explicit match is found).
applicable to the route, and the software proceeds to evaluate the route against the next clause in the route
map. Scanning of the route map continues until a clause is found whose match command(s), as set from
the BGP Match Clause tab in ASDM, match the route or until the end of the route map is reached.
Additional Guidelines
Route maps do not support ACLs that include a user, user group, or fully qualified domain name objects.
Procedure
Example:
ciscoasa(config)# route-map name {permit} [12]
Route map entries are read in order. You can identify the order using the sequence_number argument, or
the ASA uses the order in which you add route map entries.
Example:
ciscoasa(config)# route-map name {permit} [12]
Route map entries are read in order. You can identify the order using the sequence_number option, or
the ASA uses the order in which you add route map entries.
Step 2 Match any routes that have a destination network that matches a standard ACL or prefix list:
match ip address acl_id [acl_id] [...] [prefix-list]
Example:
ciscoasa(config-route-map)# match ip address acl1
If you specify more than one ACL, then the route can match any of the ACLs.
Step 3 Match any routes that have a specified metric:
match metric metric_value
Example:
ciscoasa(config-route-map)# match metric 200
Example:
ciscoasa(config-route-map)# match ip next-hop acl2
If you specify more than one ACL, then the route can match any of the ACLs.
Step 5 Match any routes with the specified next hop interface:
match interface if_name
Example:
ciscoasa(config-route-map)# match interface if_name
If you specify more than one interface, then the route can match either interface.
Step 6 Match any routes that have been advertised by routers that match a standard ACL:
match ip route-source acl_id [acl_id] [...]
Example:
ciscoasa(config-route-map)# match ip route-source acl_id [acl_id] [...]
If you specify more than one ACL, then the route can match any of the ACLs.
Step 7 Match the route type:
match route-type {internal | external [type-1 | type-2]}
Procedure
Example:
ciscoasa(config)# route-map name {permit} [12]
Route map entries are read in order. You can identify the order using the sequence_number argument, or
the ASA uses the order in which you add route map entries.
Example:
ciscoasa(config-route-map)# set metric 200
Example:
ciscoasa(config-route-map)# set metric-type type-2
The following example shows how to redistribute the 10.1.1.0 static route into eigrp process 1 with the
configured metric value:
ciscoasa(config)# route outside 10.1.1.0 255.255.255.0 192.168.1.1
ciscoasa(config-route-map)# access-list mymap2 line 1 permit 10.1.1.0 255.255.255.0
ciscoasa(config-route-map)# route-map mymap2 permit 10
Platform
Feature Name Releases Feature Information
Route maps 7.0(1) We introduced this feature.
We introduced the following command: route-map.
Enhanced support for static and dynamic route 8.0(2) Enhanced support for dynamic and static route maps was
maps added.
Support for Stateful Failover of dynamic 8.4(1) We introduced the following commands: debug route,
routing protocols (EIGRP, OSPF, and RIP) and show debug route.
debugging of general routing-related operations
We modified the following command: show route.
Dynamic Routing in Multiple Context Mode 9.0(1) Route maps are supported in multiple context mode.
Support for BGP 9.2(1) We introduced this feature.
We introduced the following commands: router bgp
This chapter describes how to configure the Cisco ASA to route data, perform authentication, and
redistribute routing information using the Border Gateway Protocol (BGP).
• About BGP, page 22-1
• Guidelines for BGP, page 22-3
• Configure BGP, page 22-4
• Monitoring BGP, page 22-30
• Configuration Example for BGP, page 22-32
• History for BGP, page 22-34
About BGP
BGP is an inter autonomous system routing protocol. An autonomous system is a network or group of
networks under a common administration and with common routing policies. BGP is used to exchange
routing information for the Internet and is the protocol used between Internet service providers (ISP).
• When to Use BGP, page 22-1
• Routing Table Changes, page 22-2
Note BGP can now be used for carrying routing information for IPv6 prefix over IPv6 networks. When a
BGPv6 ASA joins the cluster, it generates a soft traceback when logging level 7 is enabled.
Failover Guidelines
Supports Stateful Failover in single and multiple context mode.
Clustering Guidelines
BGP is supported only in L2 (EtherChannel Type) and L3 (Individual Interface Type) clustering modes.
Note When you delete and reapply the BGP configuration in the user context allow a delay of 60
seconds, to enable the slave/ standby ASA unit to sync.
IPv6 Guidelines
Supports IPv6. Graceful restart is not supported for IPv6 address family.
Configure BGP
This section describes how to enable and configure the BGP process on your system.
Procedure
Step 1 In the CLI, enable BGP, and configure general BGP parameters.
Step 2 Define the best path for the BGP routing process and configure the best path configuration parameters.
Step 3 Add and configure policy lists.
Step 4 Add and configure AS path filters.
Step 5 Add and configure Community Rules.
Step 6 Configure IPv4 Address Family settings.
Enable BGP
This section describes the steps required to enable BGP routing, establish a BGP routing process and
configure general BGP parameters.
Procedure
Step 1 Enable a BGP routing process, which places the ASA in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Example:
ciscoasa(config-router)# bgp maxas-limit 15
The number argument specifies the maximum number of autonomous system segments, allowed. Valid
values are from 1 to 254.
Step 3 Log BGP neighbor resets:
bgp log-neighbor-changes
Step 4 Enable BGP to automatically discover the best TCP path MTU for each BGP session:
bgp transport path-mtu-discovery
Step 5 Enable BGP to terminate external BGP sessions of any directly adjacent peer if the link used to reach
the peer goes down; without waiting for the hold-down timer to expire:
bgp fast-external-fallover
Step 6 Allow a BGP routing process to discard updates received from an external BGP (eBGP) peers that do
not list their autonomous system (AS) number as the first AS path segment in the AS_PATH attribute of
the incoming route:
bgp enforce-first-as
Step 7 Change the default display and regular expression match format of BGP 4-byte autonomous system
numbers from asplain (decimal values) to dot notation:
bgp asnotation dot
Example:
ciscoasa(config-router)# timers bgp 80 120
• keepalive — frequency (in seconds) with which the ASA sends keepalive messages to its peer. The
default value 60 seconds.
• holdtime — interval (in seconds) after not receiving a keepalive message that the ASA declares a
peer dead. The default is 180 seconds.
• (Optional) min-holdtime — interval (in seconds) after not receiving a keepalive message from a
neighbor, that the ASA declares a neighbor dead.
Example:
ciscoasa(config-router)# bgp graceful-restart restart-time 200
• restart-time — maximum time period (in seconds) that the ASA will wait for a
graceful-restart-capable neighbor to return to normal operation after a restart event occurs. The
default is 120 seconds. Valid values are from 1 to 3600 seconds.
• stalepath-time — maximum time period (in seconds) that the ASA will hold stale paths for a
restarting peer. All stale paths are deleted after this timer expires. The default value is 360 seconds.
Valid values are from 1 to 3600 seconds.
Procedure
Step 1 Enable a BGP routing process, which places the ASA in router configuration mode:
Example:
ciscoasa(config)# router bgp 2
Example:
ciscoasa(config-router)# bgp default local-preference 500
The number argument is any value between 0 and 4294967295. Higher values indicate higher preference.
The default value is 100.
Step 3 Enable Multi Exit Discriminator (MED) comparison among paths learned from neighbors in different
autonomous systems:
bgp always-compare-med
Step 4 Compare between similar routes received from external BGP (eBGP) peers during the best path selection
process and switch the best path to the route with the lowest router ID:
bgp bestpath compare-routerid
Step 5 Select the best MED path advertised from the neighboring AS:
bgp deterministic-med
Step 6 Set a path with a missing MED attribute as the least preferred path:
bgp bestpath med missing-as-worst
Procedure
Step 1 Enable the policy-map configuration mode and allows you to create a BGP policy list:
policy-list policy_list_name {permit | deny}
Example:
ciscoasa(config)# policy-list Example-policy-list1 permit
Example:
ciscoasa(config-policy-list)# match interface outside
Step 3 Redistribute routes by matching either or all of the following: the destination address, next hop router
address, and router/access server source:
match ip {address | next-hop | route-source}
Example:
ciscoasa(config-policy-list)# match community ExampleCommunity1
Step 7 Redistribute routes in the routing table that match the specified tags:
match tag
Note The as-path access-lists are not the same as the regular firewall ACLs.
Procedure
Step 1 Configure an autonomous system path filter using a regular expression in the global configuration mode:
as-path access-list acl-number {permit|deny} regexp
Example:
ciscoasa(config)# as-path access-list 35 permit testaspath
• regexp — regular expression that defines the AS-path filter. The autonomous system number is
expressed in the range from 1 to 65535.
Procedure
Step 1 Create or configure a BGP community list and control access to it:
community-list {standard| community list-name {deny|permit} [community-number] [AA:NN]
[internet] [no-advertise][no-export]}| {expanded|expanded list-name {deny| permit}regexp}
Example:
ciscoasa(config)# community-list standard excomm1 permit 100 internet no-advertise
no-export
• standard — configures a standard community list using a number from 1 to 99 to identify one or
more permit or deny groups of communities.
• (Optional) community-number — community as a 32-bit number from 1 to 4294967200. A single
community can be entered or multiple communities can be entered, each separated by a space.
• AA:NN — an autonomous system number and network number entered in the 4-byte new community
format. This value is configured with two 2-byte numbers separated by a colon. A number from 1 to
65535 can be entered for each 2-byte number. A single community can be entered or multiple
communities can be entered, each separated by a space.
• (Optional) internet — specifies the Internet community. Routes with this community are advertised
to all peers (internal and external).
• (Optional) no-advertise — specifies the no-advertise community. Routes with this community are
not advertised to any peer (internal or external).
• (Optional) no-export — specifies the no-export community. Routes with this community are
advertised to only peers in the same autonomous system or to only other subautonomous systems
within a confederation. These routes are not advertised to external peers.
• (Optional) expanded— configures an expanded community list number from 100 to 500 to identify
one or more permit or deny groups of communities.
• regexp — regular expression that defines the AS-path filter. The autonomous system number is
expressed in the range from 1 to 65535.
Note Regular expressions can be used only with expanded community lists.
Procedure
Step 1 Enable a BGP routing process, which places the router in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 4
(IPv4) address prefixes:
address-family ipv4 [unicast]
The keyword unicast specifies IPv4 unicast address prefixes. This is the default, even if not specified.
Step 3 (Optional) Configure a fixed router ID for the local BGP routing process:
bgp router-id A.B.C.D
Example:
ciscoasa(config-router-af)# bgp router-id 10.86.118.3
The argument A.B.C.D specifies a router identifier in the form of an IP address. If you do not specify a
router ID, it is automatically assigned.
Step 4 (Optional) Configure a cluster pool of IP addresses in the Individual Interface (L3) mode:
bgp router-id cluster-pool
Example:
ciscoasa(config-router-af)# bgp router-id cp
Note In an L3 cluster, you cannot define a BGP neighbor as one of the cluster pool IP addresses.
Example:
ciscoasa(config-router-af)# distance bgp 80 180 180
• external-distance — administrative distance for external BGP routes. Routes are external when
learned from an external autonomous system. The range of values for this argument are from 1 to
255.
• internal-distance — administrative distance for internal BGP routes. Routes are internal when
learned from peer in the local autonomous system. The range of values for this argument are from
1 to 255.
• local-distance — administrative distance for local BGP routes. Local routes are those networks
listed with a network router configuration command, often as back doors, for the router or for the
networks that is being redistributed from another process. The range of values for this argument are
from 1 to 255.
Step 6 Modify metric and tag values when the IP routing table is updated with BGP learned routes:
table-map {WORD|route-map_name}
Example:
ciscoasa(config-router-af)# table-map example1
The argument route-map_name specifies the route map name from the route-map command.
Step 7 Configure a BGP routing process to distribute a default route (network 0.0.0.0):
default-information originate
Step 9 Suppress the advertisement of routes that are not installed in the routing information base (RIB):
bgp suppress-inactive
Step 10 Synchronize between BGP and your Interior Gateway Protocol (IGP) system:
synchronization
Step 12 Configure scanning intervals of BGP routers for next hop validation:
bgp scan-time scanner-interval
Example:
ciscoasa(config-router-af)# bgp scan-time 15
The argument scanner-interval specifies scanning interval of BGP routing information. Valid values are
from 5 to 60 seconds. The default is 60 seconds.
Step 13 Configure BGP next-hop address tracking:
bgp nexthop trigger {delay seconds|enable}
Example:
ciscoasa(config-router-af)# bgp nexthop trigger delay 15
• trigger — specifies the use of BGP next-hop address tracking. Use this keyword with the delay
keyword to change the next-hop tracking delay. Use this keyword with the enable keyword to enable
next-hop address tracking.
• delay — changes the delay interval between checks on updated next-hop routes installed in the
routing table.
• seconds — specifies the delay in seconds. Range is from 0 to 100. Default is 5.
• enable — enables BGP next-hop address tracking immediately.
Step 14 Control the maximum number of parallel iBGP routes that can be installed in a routing table:
maximum-paths {number_of_paths|ibgp number_of_paths}
Example:
ciscoasa(config-router-af)# maximum-paths ibgp 2
The number_of_paths argument specifies the number of routes to install to the routing table. In ASA
9.3(1), valid values are between 1 and 3.
In ASA 9.3(2) and later, valid values are between 1 and 8.
Note If the ibgp keyword is not used, then the number_of_paths argument controls the maximum number of
parallel EBGP routes.
Procedure
Step 1 Enable a BGP routing process, which places the ASA in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 4
(IPv4) address prefixes:
address-family ipv4 [unicast]
The keyword unicast specifies IPv4 unicast address prefixes. This is the default, even if not specified.
Example:
ciscoasa(config-router-af) aggregate-address 10.86.118.0 255.255.255.0 as-set summary-only
suppress-map example1 advertise-map example1 attribute-map example1
Procedure
Step 1 Enable a BGP routing process, which places the ASA in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 4
(IPv4) address prefixes:
address-family ipv4 [unicast]
The keyword unicast specifies IPv4 unicast address prefixes. This is the default, even if not specified.
Step 3 Filter routes or networks received in incoming or advertised in outgoing BGP updates:
distribute-list acl-number in|out[]
Example:
ciscoasa(config-router-af)# distribute-list ExampleAcl in bgp 2
The argument acl-number specifies IP access list number. The access list defines which networks are to
be received and which are to be suppressed in routing updates.
The keyword in specifies that the filter must be applied to incoming BGP updates and out specifies that
the filter must be applied to outgoing BGP updates.
Procedure
Step 1 Enable a BGP routing process, which places the router in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 4
(IPv4) address prefixes:
address-family ipv4 [unicast]
The keyword unicast specifies IPv4 unicast address prefixes. This is the default, even if not specified.
Step 3 Add an entry to the BGP neighbor table:
neighbor ip-address remote-as autonomous-number
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 remote-as 3
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 shutdown 3
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 activate
Step 6 Enable or disable the Border Gateway Protocol (BGP) graceful restart capability for a BGP neighbor:
neighbor ip-address ha-mode graceful-restart [disable]
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 ha-mode graceful-restart
(Optional) The disable keyword disables BGP graceful restart capability for a neighbor.
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 distribute-list ExampleAcl in
• access-list-number — the number of a standard or extended access list. The range of a standard
access list number is from 1 to 99. The range of an extended access list number is from 100 to 199.
• expanded-list-number — the number of an expanded access list number. The range of an expanded
access list is from 1300 to 2699.
• access-list-name — the name of a standard or extended access list.
• prefix-list-name — the name of a BGP prefix list.
• in — the access list is applied to incoming advertisements to that neighbor.
• out — that the access list is applied to outgoing advertisements to that neighbor.
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 route-map example1 in
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 prefix-list NewPrefixList in
The keyword in implies that the prefix list is applied to incoming advertisements from that neighbor.
The keyword out implies that the prefix list is applied to outgoing advertisements to that neighbor.
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 filter-list 5 in
• access-list-name — specifies the number of an autonomous system path access list. You define this
access list with the ip as-path access-list command.
• in — that the access list is applied to incoming advertisements from that neighbor.
• out — that the access list is applied to outgoing advertisements to that neighbor.
Step 11 Control the number of prefixes that can be received from a neighbor:
neighbor {ip-address} maximum-prefix maximum [threshold][restart restart
interval][warning-only]
Example:
Step 12 Allow a BGP speaker (the local router) to send the default route 0.0.0.0 to a neighbor for use as a default
route:
neighbor {ip-address} default-originate [route-map map-name]
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 default-originate route-map example1
The argument map-name is the name of the route-map.The route map allows route 0.0.0.0 to be injected
conditionally.
Step 13 Set the minimum interval between the sending of BGP routing updates:
neighbor {ip-address} advertisement-interval seconds
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 advertisement-interval 15
The argument seconds is the time (in seconds). Valid values are from 0 to 600.
Step 14 Advertise the routes in the BGP table that matches the configured route-map:
neighbor {ip-address} advertise-map map-name {exist-map map-name |non-exist-map
map-name}[check-all-paths]
Example:
ciscoasa(config-router-af)# neighbor 10.2.1.1 advertise-map MAP1 exist-map MAP2
• advertise-map map name — the name of the route map that will be advertised if the conditions of
the exist map or non-exist map are met.
• exist-map map name — the name of the exist-map that is compared with the routes in the BGP table
to determine whether the advertise-map route is advertised or not.
• non-exist-map map name — the name of the non-exist-map that is compared with the routes in the
BGP table to determine whether the advertise-map route is advertised or not.
• (Optional) check all paths — enables checking of all paths by the exist-map with a prefix in the
BGP table.
Step 15 Remove private autonomous system numbers from outbound routing updates:
neighbor {ip-address} remove-private-as
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 remove-private-as
Step 16 Sets the timers for a specific BGP peer or peer group.
neighbor {ip-address} timers keepalive holdtime min holdtime
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 timers 15 20 12
• keepalive — the frequency (in seconds) with which the ASA sends keepalive messages to its peer.
The default is 60 seconds. Valid values are from 0 to 65535.
• holdtime — the interval (in seconds) after not receiving a keepalive message that the ASA declares
a peer dead. The default is 180 seconds.
• min holdtime — the minimum interval (in seconds) after not receiving a keepalive message that the
ASA declares a peer dead.
Step 17 Enable Message Digest 5 (MD5) authentication on a TCP connection between two BGP peers:
neighbor {ip-address} password string
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 password test
Note The first character cannot be a number. You cannot specify a password in the format
number-space-anything. The space after the number can cause authentication to fail.
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 send-community
• (Optional) both keyword — both standard and extended communities will be sent.
• (Optional) standard keyword — only standard communities will be sent.
• (Optional) extended keyword — only extended communities will be sent.
Step 19 Configure the router as the next hop for a BGP-speaking neighbor or peer group:
neighbor {ip-address}next-hop-self
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 next-hop-self
Step 20 Accept and attempt BGP connections to external peers residing on networks that are not directly
connected:
neighbor {ip-address} ebgp-multihop [ttl]
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 ebgp-multihop 5
The argument ttl specifies time-to-live in the range from 1 to 255 hops.
Step 21 Disable connection verification to establish an eBGP peering session with a single-hop peer that uses a
loopback interface:
neighbor {ip-address} disable-connected-check
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 disable-connected-check
Step 22 Secure a BGP peering session and configures the maximum number of hops that separate two external
BGP (eBGP) peers:
neighbor {ip-address} ttl-security hops hop-count
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 ttl-security hops 15
The argument hop-count is the number of hops that separate the eBGP peers. The TTL value is calculated
by the router from the configured hop-count argument. Valid values are from 1 to 254.
Step 23 Assign a weight to a neighbor connection:
neighbor {ip-address} weight number
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 weight 30
The argument number is the weight to assign to a neighbor connection. Valid values are from 0 to 65535.
Step 24 Configure the ASA to accept only a particular BGP version:
neighbor {ip-address} version number
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 version 4
The argument number specifies the BGP version number. The version can be set to 2 to force the
software to use only Version 2 with the specified neighbor. The default is to use Version 4 and
dynamically negotiate down to Version 2 if requested.
Step 25 Enable a TCP transport session option for a BGP session:
neighbor {ip-address} transport {connection-mode{active|passive}|
path-mtu-discovery[disable]}
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 transport path-mtu-discovery
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 local-as 5 no-prepend replace-as
Procedure
Step 1 Enable a BGP routing process, which places the ASA in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 4
(IPv4) address prefixes:
address-family ipv4 [unicast]
The keyword unicast specifies IPv4 unicast address prefixes. This is the default, even if not specified.
Step 3 Specify the networks to be advertised by the BGP routing processes:
network {network-number [mask network-mask]}[route-map map-tag]
Example:
ciscoasa(config-router-af)# network 10.86.118.13 mask 255.255.255.255 route-map example1
Procedure
Step 1 Enable a BGP routing process, which places the ASA in router configuration mode:
router bgp autonomous-num
Example:
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 4
(IPv4) address prefixes:
address-family ipv4 [unicast]
Example:
ciscoasa(config-router)# address-family ipv4[unicast]
The keyword unicast specifies IPv4 unicast address prefixes. This is the default, even if not specified.
Step 3 Redistribute routes from another routing domain into a BGP autonomous system:
redistribute protocol [process-id] [metric] [route-map [map-tag]]
Example:
ciscoasa(config-router-af)# redistribute ospf 2 route-map example1 match external
• protocol — the source protocol from which routes are being redistributed. It can be one of the
following: Connected, EIGRP, OSPF, RIP or Static.
• (Optional) process-id — a name for the specific routing process.
• (Optional) metric — the metric for the redistributed route.
• (Optional) map-tag — the identifier of a configured route map.
Note The route map should be examined to filter the networks to be redistributed. If not specified, all networks
are redistributed.
Procedure
Step 1 Enable a BGP routing process, which places the ASA in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 4
(IPv4) address prefixes:
address-family ipv4 [unicast]
Example:
ciscoasa(config-router)# address-family ipv4[unicast]
The keyword unicast specifies IPv4 unicast address prefixes. This is the default, even if not specified.
Step 3 Configure conditional route injection to inject more specific routes into a BGP routing table:
Example:
• inject-map — the name of the route map that specifies the prefixes to inject into the local BGP
routing table.
• exist-map — the name of the route map containing the prefixes that the BGP speaker will track.
• (Optional) copy-attributes — configures the injected route to inherit attributes of the aggregate
route.
Procedure
Step 1 Enable a BGP routing process, which places the router in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 6
(IPv6) address prefixes:
address-family ipv6 [unicast]
Example:
ciscoasa(config-router-af)# distance bgp 80 180 180
• external-distance — administrative distance for external BGP routes. Routes are external when
learned from an external autonomous system. The range of values for this argument are from 1 to
255.
• internal-distance — administrative distance for internal BGP routes. Routes are internal when
learned from peer in the local autonomous system. The range of values for this argument are from
1 to 255.
• local-distance — administrative distance for local BGP routes. Local routes are those networks
listed with a network router configuration command, often as back doors, for the router or for the
networks that is being redistributed from another process. The range of values for this argument are
from 1 to 255.
Step 4 (Optional) Configure a BGP routing process to distribute a default route (network 0.0.0.0):
default-information originate
Step 5 (Optional) Suppress the advertisement of routes that are not installed in the routing information base
(RIB):
bgp suppress-inactive
Step 6 Synchronize between BGP and your Interior Gateway Protocol (IGP) system:
synchronization
Step 8 Configure scanning intervals of BGP routers for next hop validation:
bgp scan-time scanner-interval
Example:
ciscoasa(config-router-af)# bgp scan-time 15
Valid values for the scanner-interval argument from 5 to 60 seconds. The default is 60 seconds.
Step 9 Control the maximum number of parallel iBGP routes that can be installed in a routing table:
maximum-paths {number_of_paths|ibgp number_of_paths}
Example:
ciscoasa(config-router-af)# maximum-paths ibgp 2
Procedure
Step 1 Enable a BGP routing process, which places the ASA in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 6
(IPv6) address prefixes:
address-family ipv6 unicast
Example:
ciscoasa(config-router-af) aggregate-address 2000::1/8 summary-only
Example:
ciscoasa(config-router-af)bgp aggregate-timer 20
Procedure
Step 1 Enable a BGP routing process, which places the router in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 6
(IPv6) address prefixes:
address-family ipv6 [unicast]
Example:
ciscoasa(config-router-af)# neighbor 2000::1/8 remote-as 3
The argument ipv6-address specifies the IPv6 address of the next hop that can be used to reach the
specified network.TheIPv6 address of the next hop need not be directly connected; recursion is done to
find the IPv6 address of the directly connected next hop.When an interface type and interface number
are specified, you can optionally specify the IPv6 address of the next hop to which packets are
output.You must specify an interface type and an interface number when using a link-local address as
the next hop (the link-local next hop must also be an adjacent device).
Note This argument must be in the form documented in RFC 2373 where the address is specified in
hexadecimal using 16-bit values between colons.
Example:
ciscoasa(config-router-af)# neighbor 2000::1/8 shutdown 3
Example:
ciscoasa(config-router-af)# neighbor 2000::1/8 activate
Example:
ciscoasa(config-router-af)# neighbor 2000::1 route-map example1 in
Example:
ciscoasa(config-router-af)# neighbor 2000::1 prefix-list NewPrefixList in
The keyword in implies that the prefix list is applied to incoming advertisements from that neighbor.
The keyword out implies that the prefix list is applied to outgoing advertisements to that neighbor.
Example:
ciscoasa(config-router-af)# neighbor 2000::1 filter-list 5 in
• access-list-name — specifies the number of an autonomous system path access list. You define this
access list with the ip as-path access-list command.
• in — that the access list is applied to incoming advertisements from that neighbor.
• out — that the access list is applied to outgoing advertisements to that neighbor.
Step 9 Control the number of prefixes that can be received from a neighbor:
neighbor {ipv6-address} maximum-prefix maximum [threshold][restart restart
interval][warning-only]
Example:
ciscoasa(config-router-af)# neighbor 2000::1 maximum-prefix 7 75 restart 12
Example:
ciscoasa(config-router-af)# neighbor 2000::1 default-originate route-map example1
The argument map-name is the name of the route-map.The route map allows route 0.0.0.0 to be injected
conditionally.
Step 11 Set the minimum interval between the sending of BGP routing updates:
neighbor {ipv6-address} advertisement-interval seconds
Example:
ciscoasa(config-router-af)# neighbor 2000::1 advertisement-interval 15
The argument seconds is the time (in seconds). Valid values are from 0 to 600.
Step 12 Remove private autonomous system numbers from outbound routing updates:
neighbor {ipv6-address} remove-private-as
Example:
ciscoasa(config-router-af)# neighbor 2000::1 remove-private-as
Step 13 Advertise the routes in the BGP table that matches the configured route-map:
neighbor {ipv6-address} advertise-map map-name {exist-map map-name |non-exist-map
map-name}[check-all-paths]
Example:
ciscoasa(config-router-af)# neighbor 2000::1 advertise-map MAP1 exist-map MAP2
• advertise-map map name — the name of the route map that will be advertised if the conditions of
the exist map or non-exist map are met.
• exist-map map name — the name of the exist-map that is compared with the routes in the BGP table
to determine whether the advertise-map route is advertised or not.
• non-exist-map map name — the name of the non-exist-map that is compared with the routes in the
BGP table to determine whether the advertise-map route is advertised or not.
• (Optional) check all paths — enables checking of all paths by the exist-map with a prefix in the
BGP table.
Step 14 Sets the timers for a specific BGP peer or peer group.
neighbor {ipv6-address} timers keepalive holdtime min holdtime
Example:
ciscoasa(config-router-af)# neighbor 2000::1 timers 15 20 12
• keepalive — the frequency (in seconds) with which the ASA sends keepalive messages to its peer.
The default is 60 seconds. Valid values are from 0 to 65535.
• holdtime — the interval (in seconds) after not receiving a keepalive message that the ASA declares
a peer dead. The default is 180 seconds.
• min holdtime — the minimum interval (in seconds) after not receiving a keepalive message that the
ASA declares a peer dead.
Step 15 Enable Message Digest 5 (MD5) authentication on a TCP connection between two BGP peers:
neighbor {ipv6-address} password string
Example:
ciscoasa(config-router-af)# neighbor 2000::1 password test
Note The first character cannot be a number. You cannot specify a password in the format
number-space-anything. The space after the number can cause authentication to fail.
Example:
ciscoasa(config-router-af)# neighbor 2000::1 send-community
Step 17 Configure the router as the next hop for a BGP-speaking neighbor or peer group:
neighbor {ipv6-address}next-hop-self
Example:
ciscoasa(config-router-af)# neighbor 2000::1 next-hop-self
Step 18 Accept and attempt BGP connections to external peers residing on networks that are not directly
connected:
neighbor {ipv6-address} ebgp-multihop [ttl]
Example:
ciscoasa(config-router-af)# neighbor 2000::1 ebgp-multihop 5
The argument ttl specifies time-to-live in the range from 1 to 255 hops.
Step 19 Disable connection verification to establish an eBGP peering session with a single-hop peer that uses a
loopback interface:
neighbor {ipv6-address} disable-connected-check
Example:
ciscoasa(config-router-af)# neighbor 2000::1 disable-connected-check
Step 20 Secure a BGP peering session and configures the maximum number of hops that separate two external
BGP (eBGP) peers:
neighbor {ipv6-address} ttl-security hops hop-count
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 ttl-security hops 15
The argument hop-count is the number of hops that separate the eBGP peers. The TTL value is calculated
by the router from the configured hop-count argument. Valid values are from 1 to 254.
Step 21 Assign a weight to a neighbor connection:
neighbor {ipv6-address} weight number
Example:
ciscoasa(config-router-af)# neighbor 2000::1 weight 30
The argument number is the weight to assign to a neighbor connection. Valid values are from 0 to 65535.
Step 22 Configure the ASA to accept only a particular BGP version:
neighbor {ipv6-address} version number
Example:
ciscoasa(config-router-af)# neighbor 2000::1 version 4
The argument number specifies the BGP version number. The default is Version 4. Currently only BGP
version 4 is supported.
Step 23 Enable a TCP transport session option for a BGP session:
neighbor {ipv6-address} transport {connection-mode{active|passive}|
path-mtu-discovery[disable]}
Example:
ciscoasa(config-router-af)# neighbor 2000::1 transport connection-mode active
• path-mtu-discovery — enables TCP transport path maximum transmission unit (MTU) discovery.
TCP path MTU discovery is enabled by default.
• (Optional) disable — disables TCP path MTU discovery.
Step 24 Customize the AS_PATH attribute for routes received from an external Border Gateway Protocol (eBGP)
neighbor:
neighbor {ipv6-address} local-as [autonomous-system-number[no-prepend]]
Example:
ciscoasa(config-router-af)# neighbor 10.86.118.12 local-as 5 no-prepend replace-as
Caution BGP prepends the autonomous system number from each BGP network that a route traverses to maintain
network reachability information and to prevent routing loops. This command should be configured only
for autonomous system migration, and should be removed after the transition has been completed. This
procedure should be attempted only by an experienced network operator. Routing loops can be created
through improper configuration.
Procedure
Step 1 Enable a BGP routing process, which places the ASA in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 6
(IPv6) address prefixes:
address-family ipv6 [unicast]
Example:
ciscoasa(config-router-af)# network 2001:1/64 route-map test_route_map
• (Optional) route-map name— the identifier of a configured route map. The route map should be
examined to filter the networks to be advertised. If not specified, all networks are advertised.
Procedure
Step 1 Enable a BGP routing process, which places the ASA in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 6
(IPv6) address prefixes:
address-family ipv6 [unicast]
Example:
ciscoasa(config-router)# address-family ipv6[unicast]
Step 3 Redistribute routes from another routing domain into a BGP autonomous system:
redistribute protocol [process-id][autonomous-num][metric metric value][match{internal|
external1|external2|NSSA external 1|NSSA external 2}][route-map [map-tag]][subnets]
Example:
ciscoasa(config-router-af)# redistribute ospf 2 route-map example1 match external
• protocol — the source protocol from which routes are being redistributed. It can be one of the
following: Connected, EIGRP, OSPF, RIP or Static.
• (Optional) process-id — For the ospf protocol, this is an appropriate OSPF process ID from which
routes are to be redistributed. This identifies the routing process. This value takes the form of a
nonzero decimal number.
• (Optional) metric metric value — When redistributing from one OSPF process to another OSPF
process on the same router, the metric will be carried through from one process to the other if no
metric value is specified. When redistributing other processes to an OSPF process, the default metric
is 20 when no metric value is specified. The default value is 0.
• (Optional) match internal | external1 | external2 | NSSA external 1 | NSSA external 2 — For the
criteria by which OSPF routes are redistributed into other routing domains. It can be one of the
following:
– internal — Routes that are internal to a specific autonomous system.
– external 1 — Routes that are external to the autonomous system, but are imported into BGP as
OSPF Type 1 external route.
– external 2 — Routes that are external to the autonomous system, but are imported into BGP as
OSPF Type 2 external route.
– NSSA external 1 — Routes that are external to the autonomous system, but are imported into
BGP as OSPF NSSA Type 1 external route.
– NSSA external 2 — Routes that are external to the autonomous system, but are imported into
BGP as OSPF NSSA Type 2 external route.
• (Optional) map-tag — the identifier of a configured route map.
Note The route map should be examined to filter the networks to be redistributed. If not specified, all networks
are redistributed
Procedure
Step 1 Enable a BGP routing process, which places the ASA in router configuration mode:
router bgp autonomous-num
Example:
ciscoasa(config)# router bgp 2
Step 2 Enter address family configuration mode to configure a routing session using standard IP Version 6
(IPv6) address prefixes:
address-family ipv6 [unicast]
Example:
ciscoasa(config-router)# address-family ipv6 [unicast]
Step 3 Configure conditional route injection to inject more specific routes into a BGP routing table:
bgp inject-map inject-map exist-map exist-map [copy-attributes]
Example:
• inject-map — the name of the route map that specifies the prefixes to inject into the local BGP
routing table.
• exist-map — the name of the route map containing the prefixes that the BGP speaker will track.
• (Optional) copy-attributes — configures the injected route to inherit attributes of the aggregate
route.
Monitoring BGP
You can use the following commands to monitor the BGP routing process. For examples and descriptions
of the command output, see the command reference. Additionally, you can disable the logging of
neighbor change messages and neighbor warning messages.
To monitor various BGP routing statistics, enter one of the following commands:
• show bgp [ip-address [mask [longer-prefixes [injected] | shorter-prefixes [length]]]| prefix-list
name | route-map name]
Displays the entries in the BGP routing table.
• show bgp cidr-only
Displays routes with non-natural network masks (that is, classless interdomain routing, or CIDR).
• show bgp community community-number [exact-match][no-advertise][no-export]
Display routes that belong to specified BGP communities.
• show bgp community-list community-list-name [exact-match]
Displays routes that are permitted by the BGP community list.
• show bgp filter-list access-list-number
Displays routes that conform to a specified filter list.
• show bgp injected-paths
Displays all the injected paths in the BGP routing table.
• show bgp ipv4 unicast
Displays entries in the IP version 4 (IPv4) BGP routing table for unicast sessions.
• show bgp ipv6 unicast
Displays entries in the IPv6 Border Gateway Protocol (BGP) routing table.
• show bgp ipv6 community
Displays routes that belong to specified IPv6 Border Gateway Protocol (BGP) communities.
• show bgp ipv6 community-list
Displays routes that are permitted by the IPv6 Border Gateway Protocol (BGP) community list.
• show bgp ipv6 filter-list
Display routes that conform to a specified IPv6 filter list.
• show bgp ipv6 inconsistent-as
Displays IPv6 Border Gateway Protocol (BGP) routes with inconsistent originating autonomous
systems.
• show bgp ipv6 neighbors
Displays information about IPv6 Border Gateway Protocol (BGP) connections to neighbors.
• show bgp ipv6 paths
Displays all the IPv6 Border Gateway Protocol (BGP) paths in the database.
• show bgp ipv6 prefix-list
Displays routes that match a prefix list.
• show bgp ipv6 quote-regexp
Displays IPv6 Border Gateway Protocol (BGP) routes matching the autonomous system path regular
expression as a quoted string of characters.
• show bgp ipv6 regexp
Displays IPv6 Border Gateway Protocol (BGP) routes matching the autonomous system path regular
expression.
• show bgp ipv6 route-map
Displays IPv6 Border Gateway Protocol (BGP) routes that failed to install in the routing table.
• show bgp ipv6 summary
Displays the status of all IPv6 Border Gateway Protocol (BGP) connections.
• show bgp neighbors ip_address
Displays information about BGP and TCP connections to neighbors.
• show bgp paths [LINE]
Displays all the BGP paths in the database.
• show bgp pending-prefixes
Displays prefixes that are pending deletion.
• show bgp prefix-list prefix_list_name [WORD]
Displays routes that match a specified prefix list.
• show bgp regexp regexp
Displays routes that match the autonomous system path regular expression.
• show bgp replication [index-group | ip-address]
Displays update replication statistics for BGP update groups.
• show bgp rib-failure
Displays BGP routes that failed to install in the Routing Information Base (RIB) table.
• show bgp route-map map-name
Displays entries in the BGP routing table, based on the route map specified.
• show bgp summary
Display the status of all BGP connections.
• show bgp system-config
Display the system context specific BGP configuration in multi-context mode.
This command is available in all user contexts in multi-context mode.
• show bgp update-group
Display information about the BGP update groups.
Note To disable BGP Log messages, enter the no bgp log-neighbor-changes command in the router
configuration mode. This disables the logging of neighbor change messages. Enter this command in
router configuration mode for the BGP routing process.
By default, neighbor changes are logged.
Step 1 Define the conditions for redistributing routes from one routing protocol into another, or enable policy
routing:
ciscoasa(config)# route-map mymap2 permit 10
Step 2 Redistribute any routes that have a route address or match packet that is passed by one of the access lists
specified:
ciscoasa(config-route-map)# match ip address acl_dmz1 acl_dmz2
Step 3 Indicate where to output packets that pass a match clause of a route map for policy routing:
ciscoasa(config-route-map)# set ip next-hop peer address
Step 4 Enable a BGP routing process from the global configuration mode:
ciscoasa(config)# router bgp 2
Step 5 Configure a fixed router ID for the local Border Gateway Protocol (BGP) routing process in the address
family configuration mode:
ciscoasa(config)# address-family ipv4
ciscoasa(config-router-af)# bgp router-id 19.168.254.254
This example shows how to enable and configure BGPv6 with various optional processes.
Step 1 Define the conditions for redistributing routes from one routing protocol into another, or enable policy
routing:
ciscoasa(config)# route-map mymap1 permit 10
Step 2 Redistribute any routes that have a route address or match packet that is passed by one of the access lists
specified:
ciscoasa(config-route-map)# match ipv6 address acl_dmz1 acl_dmz2
Step 3 Indicate where to output packets that pass a match clause of a route map for policy routing:
ciscoasa(config-route-map)# set ipv6 next-hop peer address
Step 4 Enable a BGP routing process from the global configuration mode:
ciscoasa(config)# router bgp 2
Step 5 Configure a fixed router ID for the local Border Gateway Protocol (BGP) routing process in the address
family configuration mode:
ciscoasa(config)# address-family ipv4
Step 6 Enter address family configuration mode to configure a routing session using standard IP Version 6
(IPv6) address prefixes:
address-family ipv6 [unicast]
Platform
Feature Name Releases Feature Information
BGP Support 9.2(1) Support was added for routing data, performing
authentication, and redistributing and monitoring routing
information using the Border Gateway Protocol.
BGP support for ASA clustering 9.3(1) We added support for L2 and L3 clustering.
We introduced the following new command: bgp router-id
clusterpool
Platform
Feature Name Releases Feature Information
BGP support for nonstop forwarding 9.3(1) We added support for Nonstop Forwarding.
We introduced the following new commands: bgp
graceful-restart, neighbor ha-mode graceful-restart
BGP support for advertised maps 9.3(1) We added support for BGPv4 advertised map.
We introduced the following new command: neighbor
advertise-map
This chapter describes how to configure the Cisco ASA to route data, perform authentication, and
redistribute routing information using the Open Shortest Path First (OSPF) routing protocol.
The chapter includes the following sections:
• About OSPF, page 23-1
• Guidelines for OSPF, page 23-4
• Configure OSPFv2, page 23-6
• Configure OSPF Fast Hello Packets, page 23-7
• Customize OSPFv2, page 23-7
• Configure OSPFv3, page 23-18
• Configure Graceful Restart , page 23-37
• Example for OSPFv2, page 23-41
• Examples for OSPFv3, page 23-43
• Monitoring OSPF, page 23-44
• Additional References, page 23-47
• History for OSPF, page 23-47
About OSPF
OSPF is an interior gateway routing protocol that uses link states rather than distance vectors for path
selection. OSPF propagates link-state advertisements rather than routing table updates. Because only
LSAs are exchanged instead of the entire routing tables, OSPF networks converge more quickly than RIP
networks.
OSPF uses a link-state algorithm to build and calculate the shortest path to all known destinations. Each
router in an OSPF area contains an identical link-state database, which is a list of each of the router
usable interfaces and reachable neighbors.
The advantages of OSPF over RIP include the following:
• OSPF link-state database updates are sent less frequently than RIP updates, and the link-state
database is updated instantly, rather than gradually, as stale information is timed out.
• Routing decisions are based on cost, which is an indication of the overhead required to send packets
across a certain interface. The ASA calculates the cost of an interface based on link bandwidth rather
than the number of hops to the destination. The cost can be configured to specify preferred paths.
The disadvantage of shortest path first algorithms is that they require a lot of CPU cycles and memory.
The ASA can run two processes of OSPF protocol simultaneously on different sets of interfaces. You
might want to run two processes if you have interfaces that use the same IP addresses (NAT allows these
interfaces to coexist, but OSPF does not allow overlapping addresses). Or you might want to run one
process on the inside and another on the outside, and redistribute a subset of routes between the two
processes. Similarly, you might need to segregate private addresses from public addresses.
You can redistribute routes into an OSPF routing process from another OSPF routing process, a RIP
routing process, or from static and connected routes configured on OSPF-enabled interfaces.
The ASA supports the following OSPF features:
• Intra-area, interarea, and external (Type I and Type II) routes.
• Virtual links.
• LSA flooding.
• Authentication to OSPF packets (both password and MD5 authentication).
• Configuring the ASA as a designated router or a designated backup router. The ASA also can be set
up as an ABR.
• Stub areas and not-so-stubby areas.
• Area boundary router Type 3 LSA filtering.
OSPF supports MD5 and clear text neighbor authentication. Authentication should be used with all
routing protocols when possible because route redistribution between OSPF and other protocols (such
as RIP) can potentially be used by attackers to subvert routing information.
If NAT is used, if OSPF is operating on public and private areas, and if address filtering is required, then
you need to run two OSPF processes—one process for the public areas and one for the private areas.
A router that has interfaces in multiple areas is called an Area Border Router (ABR). A router that acts
as a gateway to redistribute traffic between routers using OSPF and routers using other routing protocols
is called an Autonomous System Boundary Router (ASBR).
An ABR uses LSAs to send information about available routes to other OSPF routers. Using ABR Type
3 LSA filtering, you can have separate private and public areas with the ASA acting as an ABR. Type 3
LSAs (interarea routes) can be filtered from one area to other, which allows you to use NAT and OSPF
together without advertising private networks.
Note Only Type 3 LSAs can be filtered. If you configure the ASA as an ASBR in a private network, it will
send Type 5 LSAs describing private networks, which will get flooded to the entire AS, including public
areas.
If NAT is employed but OSPF is only running in public areas, then routes to public networks can be
redistributed inside the private network, either as default or Type 5 AS external LSAs. However, you
need to configure static routes for the private networks protected by the ASA. Also, you should not mix
public and private networks on the same ASA interface.
You can have two OSPF routing processes, one RIP routing process, and one EIGRP routing process
running on the ASA at the same time.
OSPF hello packets are packets that an OSPF process sends to its OSPF neighbors to maintain
connectivity with those neighbors. The hello packets are sent at a configurable interval (in seconds). The
defaults are 10 seconds for an Ethernet link and 30 seconds for a non broadcast link. Hello packets
include a list of all neighbors for which a hello packet has been received within the dead interval. The
dead interval is also a configurable interval (in seconds), and defaults to four times the value of the hello
interval. The value of all hello intervals must be the same within a network. Likewise, the value of all
dead intervals must be the same within a network.
These two intervals work together to maintain connectivity by indicating that the link is operational. If
a router does not receive a hello packet from a neighbor within the dead interval, it will declare that
neighbor to be down.
OSPF fast hello packets refer to hello packets being sent at intervals of less than 1 second. To understand
fast hello packets, you should already understand the relationship between OSPF hello packets and the
dead interval. See OSPF Hello Interval and Dead Interval, page 23-3.
OSPF fast hello packets are achieved by using the ospf dead-interval command. The dead interval is set
to 1 second, and the hello-multiplier value is set to the number of hello packets you want sent during that
1 second, thus providing subsecond or "fast" hello packets.
When fast hello packets are configured on the interface, the hello interval advertised in the hello packets
that are sent out this interface is set to 0. The hello interval in the hello packets received over this
interface is ignored.
The dead interval must be consistent on a segment, whether it is set to 1 second (for fast hello packets)
or set to any other value. The hello multiplier need not be the same for the entire segment as long as at
least one hello packet is sent within the dead interval.
The benefit of the OSPF Fast Hello Packets feature is that your OSPF network will experience faster
convergence time than it would without fast hello packets. This feature allows you to detect lost
neighbors within 1 second. It is especially useful in LAN segments, where neighbor loss might not be
detected by the Open System Interconnection (OSI) physical layer and data-link layer.
Failover Guidelines
OSPFv2 and OSPFv3 support Stateful Failover.
IPv6 Guidelines
• OSPFv2 does not support IPv6.
• OSPFv3 supports IPv6.
• OSPFv3 uses IPv6 for authentication.
• The ASA installs OSPFv3 routes into the IPv6 RIB, provided it is the best route.
• OSPFv3 packets can be filtered out using IPv6 ACLs in the capture command.
Clustering Guidelines
• OSPFv2 and OSPFv3 support clustering.
• OSPFv3 encryption is not supported. An error message appears if you try to configure OSPFv3
encryption in a clustering environment.
• In the spanned interface mode, dynamic routing is not supported on management-only interfaces.
• In individual interface mode, make sure that you establish the master and slave units as either
OSPFv2 or OSPFv3 neighbors.
• When you configure both OSPFv2 and EIGRP, you can use either spanned interface mode or
individual interface mode; you cannot use the two modes at the same time.
• In individual interface mode, OSPFv2 adjacencies can only be established between two contexts on
a shared interface on the master unit. Configuring static neighbors is supported only on point-to
point-links; therefore, only one neighbor statement is allowed on an interface.
• The router ID is optional in the OSPFv2, OSPFv3, and EIGRP router configuration mode. If you do
not explicitly set a router ID, then a router ID is automatically generated and set to the highest IPv4
address on any data interface in each of the cluster units.
• If the cluster interface mode has not been configured, then only a single, dotted-decimal IPv4
address is allowed as the router ID, and the cluster pool option is disabled.
• If the cluster interface mode is set to a spanned configuration, then only a single, dotted-decimal
IPv4 address is allowed as the router ID, and the cluster pool option is disabled.
• If the cluster interface mode is set to an individual configuration, then the cluster pool option is
mandatory, and a single, dotted-decimal IPv4 address is not allowed as the router ID.
• When the cluster interface mode is changed from a spanned to an individual configuration and vice
versa without specifying the check-detail or nocheck options, then the entire configuration
including the router ID is removed.
• If any of the dynamic routing protocol router ID configurations are incompatible with the new
interface mode, then an error message appears on the console and the interface mode CLI fails. The
error message has one line per dynamic routing protocol (OSPFv2, OSPFv3, and EIGRP) and lists
the names of each context in which the incompatible configuration occurs.
• If the nocheck option is specified for the cluster interface mode command, then the interface mode
is allowed to change although all the router ID configurations may not be compatible with the new
mode.
• When the cluster is enabled, the router ID compatibility checks are repeated. If any incompatibility
is detected, then the cluster enable command fails. The administrator needs to correct the
incompatible router ID configuration before the cluster can be enabled.
• When a unit enters a cluster as a slave, then we recommend that you specify the nocheck option for
the cluster interface mode command to avoid any router ID compatibility check failures. The slave
unit still inherits the router configuration from the master unit.
• When a mastership role change occurs in the cluster, the following behavior occurs:
– In spanned interface mode, the router process is active only on the master unit and is in a
suspended state on the slave units. Each cluster unit has the same router ID because the
configuration has been synchronized from the master unit. As a result, a neighboring router does
not notice any change in the router ID of the cluster during a role change.
– In individual interface mode, the router process is active on all the individual cluster units. Each
cluster unit chooses its own distinct router ID from the configured cluster pool. A mastership
role change in the cluster does not change the routing topology in any way.
Additional Guidelines
• OSPFv2 and OSPFv3 support multiple instances on an interface.
• OSPFv3 supports encryption through ESP headers in a non-clustered environment.
• OSPFv3 supports Non-Payload Encryption.
• OSPFv2 supports Cisco NSF Graceful Restart and IETF NSF Graceful Restart mechanisms as
defined in RFCs 4811, 4812 & 3623 respectively.
• OSPFv3 supports Graceful Restart mechanism as defined in RFC 5187.
Configure OSPFv2
This section describes how to enable an OSPFv2 process on the ASA.
After you enable OSPFv2, you need to define a route map. For more information, see Define a Route
Map, page 21-4. Then you generate a default route. For more information, see Configure a Static Route,
page 20-4.
After you have defined a route map for the OSPFv2 process, you can customize it for your particular
needs, To learn how to customize the OSPFv2 process on the ASA, see Customize OSPFv2, page 23-7.
To enable OSPFv2, you need to create an OSPFv2 routing process, specify the range of IP addresses
associated with the routing process, then assign area IDs associated with that range of IP addresses.
You can enable up to two OSPFv2 process instances. Each OSPFv2 process has its own associated areas
and networks.
To enable OSPFv2, perform the following steps:
Procedure
Example:
ciscoasa(config)# router ospf 2
The process_id argument is an internally used identifier for this routing process and can be any positive
integer. This ID does not have to match the ID on any other device; it is for internal use only. You can
use a maximum of two processes.
If there is only one OSPF process enabled on the ASA, then that process is selected by default. You
cannot change the OSPF process ID when editing an existing area.
Step 2 Define the IP addresses on which OSPF runs and the area ID for that interface:
network ip_address mask area area_id
Example:
ciscoasa(config)# router ospf 2
ciscoasa(config-rtr)# network 10.0.0.0 255.0.0.0 area 0
When adding a new area, enter the area ID. You can specify the area ID as either a decimal number or
an IP address. Valid decimal values range from 0 to 4294967295. You cannot change the area ID when
editing an existing area.
Procedure
Example:
ciscoasa(config)# interface port-channel 10
Example:
ciscoasa(config-if)# ospf dead-interval minimal hell0-multiplier 5
ciscoasa
The no. of times argument indicates the number of hello packets to be sent every second. Valid values
are between 3 and 20.
In this example, OSPF Support for Fast Hello Packets is enabled by specifying the minimal keyword and
the hello-multiplier keyword and value. Because the multiplier is set to 5, five hello packets will be sent
every second.
Customize OSPFv2
This section explains how to customize the OSPFv2 processes.
• Redistribute Routes Into OSPFv2, page 23-8
• Configure Route Summarization When Redistributing Routes Into OSPFv2, page 23-9
• Configure Route Summarization Between OSPFv2 Areas, page 23-10
• Configure OSPFv2 Interface Parameters, page 23-11
• Configure OSPFv2 Area Parameters, page 23-14
• Configure an OSPFv2 NSSA, page 23-15
• Configure an IP Address Pool for Clustering (OSPFv2 and OSPFv3), page 23-16
• Define Static OSPFv2 Neighbors, page 23-16
• Configure Route Calculation Timers, page 23-17
• Log Neighbors Going Up or Down, page 23-18
Note If you want to redistribute a route by defining which of the routes from the specified routing protocol
are allowed to be redistributed into the target routing process, you must first generate a default route. See
Configure a Static Route, page 20-4, and then define a route map according to Define a Route Map,
page 21-4.
To redistribute static, connected, RIP, or OSPFv2 routes into an OSPFv2 process, perform the following
steps:
Procedure
Example:
ciscoasa(config)# router ospf 2
The process_id argument is an internally used identifier for this routing process and can be any positive
integer. This ID does not have to match the ID on any other device; it is for internal use only. You can
use a maximum of two processes.
Step 2 Redistribute connected routes into the OSPF routing process:
redistribute connected [[metric metric-value] [metric-type {type-1 | type-2}]
[tag tag_value] [subnets] [route-map map_name]
Example:
ciscoasa(config)# redistribute connected 5 type-1 route-map-practice
Example:
Step 4 Redistribute routes from an OSPF routing process into another OSPF routing process:
redistribute ospf pid [match {internal | external [1 | 2] | nssa-external [1 | 2]}]
[metric metric-value] [metric-type {type-1 | type-2}] [tag tag_value] [subnets] [route-map
map_name]
Example:
You can either use the match options in this command to match and set route properties, or you can use
a route map. The subnets option does not have equivalents in the route-map command. If you use both
a route map and match options in the redistribute command, then they must match.
The example shows route redistribution from OSPF process 1 into OSPF process 2 by matching routes
with a metric equal to 1. The ASA redistributes these routes as external LSAs with a metric of 5 and a
metric type of Type 1.
Step 5 Redistribute routes from a RIP routing process into the OSPF routing process:
redistribute rip [metric metric-value] [metric-type {type-1 | type-2}] [tag tag_value]
[subnets] [route-map map_name]
Example:
Step 6 Redistribute routes from an EIGRP routing process into the OSPF routing process:
redistribute eigrp as-num [metric metric-value] [metric-type {type-1 | type-2}]
[tag tag_value] [subnets] [route-map map_name]
Example:
Procedure
Example:
ciscoasa(config)# router ospf 1
The process_id argument is an internally used identifier for this routing process and can be any positive
integer. This ID does not have to match the ID on any other device; it is for internal use only. You can
use a maximum of two processes.
Step 2 Set the summary address:
summary-address ip_address mask [not-advertise] [tag tag]
Example:
ciscoasa(config)# router ospf 1
ciscoasa(config-rtr)# summary-address 10.1.0.0 255.255.0.0
In this example, the summary address 10.1.0.0 includes addresses 10.1.1.0, 10.1.2.0, 10.1.3.0, and so on.
Only the 10.1.0.0 address is advertised in an external link-state advertisement.
Procedure
Step 1 Create an OSPF routing process and enters router configuration mode for this OSPF process:
router ospf process_id
Example:
ciscoasa(config)# router ospf 1
The process_id argument is an internally used identifier for this routing process. It can be any positive
integer. This ID does not have to match the ID on any other device; it is for internal use only. You can
use a maximum of two processes.
Step 2 Set the address range:
area area-id range ip-address mask [advertise | not-advertise]
Example:
ciscoasa(config-rtr)# area 17 range 12.1.0.0 255.255.0.0
Procedure
Example:
ciscoasa(config)# router ospf 2
The process_id argument is an internally used identifier for this routing process and can be any positive
integer. This ID does not have to match the ID on any other device; it is for internal use only. You can
use a maximum of two processes.
Step 2 Define the IP addresses on which OSPF runs and the area ID for that interface:
network ip_address mask area area_id
Example:
ciscoasa(config)# router ospf 2
ciscoasa(config-rtr)# network 10.0.0.0 255.0.0.0 area 0
Example:
ciscoasa(config)# interface my_interface
Example:
ciscoasa(config-interface)# ospf authentication message-digest
Step 5 Assign a password to be used by neighboring OSPF routers on a network segment that is using the OSPF
simple password authentication:
ospf authentication-key key
Example:
ciscoasa(config-interface)# ospf authentication-key cisco
The key argument can be any continuous string of characters up to 8 bytes in length.
The password created by this command is used as a key that is inserted directly into the OSPF header
when the ASA software originates routing protocol packets. A separate password can be assigned to each
network on a per-interface basis. All neighboring routers on the same network must have the same
password to be able to exchange OSPF information.
Step 6 Explicitly specify the cost of sending a packet on an OSPF interface:
ospf cost cost
Example:
ciscoasa(config-interface)# ospf cost 20
Example:
ciscoasa(config-interface)# ospf dead-interval 40
The value must be the same for all nodes on the network.
Step 8 Specify the length of time between the hello packets that the ASA sends on an OSPF interface:
ospf hello-interval seconds
Example:
ciscoasa(config-interface)# ospf hello-interval 10
The value must be the same for all nodes on the network.
Step 9 Enable OSPF MD5 authentication:
ospf message-digest-key key_id md5 key
Example:
ciscoasa(config-interface)# ospf message-digest-key 1 md5 cisco
Example:
ciscoasa(config-interface)# ospf priority 20
Example:
ciscoasa(config-interface)# ospf retransmit-interval seconds
The value for seconds must be greater than the expected round-trip delay between any two routers on the
attached network. The range is from 1 to 8192 seconds. The default value is 5 seconds.
Step 12 Set the estimated number of seconds required to send a link-state update packet on an OSPF interface:
ospf transmit-delay seconds
Example:
ciscoasa(config-interface)# ospf transmit-delay 5
The seconds value ranges from 1 to 8192 seconds.The default value is 1 second.
Step 13 Set the number of hello packets sent during 1 second:
ospf dead-interval minimal hello-interval multiplier
Example:
ciscoasa(config-if)# ospf dead-interval minimal hello-multiplier 6
Example:
When you designate an interface as point-to-point and non-broadcast, you must manually define the
OSPF neighbor; dynamic neighbor discovery is not possible. See Define Static OSPFv2 Neighbors,
page 23-16 for more information. Additionally, you can only define one OSPF neighbor on that
interface.
Procedure
Example:
ciscoasa(config)# router ospf 2
The process_id argument is an internally used identifier for this routing process and can be any positive
integer. This ID does not have to match the ID on any other device; it is for internal use only. You can
use a maximum of two processes.
Step 2 Enable authentication for an OSPF area:
area area-id authentication
Example:
ciscoasa(config-rtr)# area 0 authentication
Example:
ciscoasa(config-rtr)# area 0 authentication message-digest
Procedure
Example:
ciscoasa(config)# router ospf 2
The process_id argument is an internally used identifier for this routing process. It can be any positive
integer. This ID does not have to match the ID on any other device; it is for internal use only. You can
use a maximum of two processes.
Step 2 Define an NSSA area:
area area-id nssa [no-redistribution] [default-information-originate]
Example:
ciscoasa(config-rtr)# area 0 nssa
Step 3 Set the summary address and helps reduce the size of the routing table:
summary-address ip_address mask [not-advertise] [tag tag]
Example:
ciscoasa(config-rtr)# summary-address 10.1.0.0 255.255.0.0
Using this command for OSPF causes an OSPF ASBR to advertise one external route as an aggregate
for all redistributed routes that are covered by the address.
In this example, the summary address 10.1.0.0 includes addresses 10.1.1.0, 10.1.2.0, 10.1.3.0, and so on.
Only the 10.1.0.0 address is advertised in an external link-state advertisement.
Procedure
To assign a range of IPv4 addresses for the router ID cluster pool in Individual Interface clustering for
OSPFv2 and OSPFv3, enter the following command:
Step 1 Specify the router ID cluster pool for Individual Interface clustering:
router-id cluster-pool hostname | A.B.C.D ip_pool
Example:
hostname(config)# ip local pool rpool 1.1.1.1-1.1.1.4
hostname(config)# router ospf 1
hostname(config-rtr)# router-id cluster-pool rpool
hostname(config-rtr)# network 17.5.0.0 255.255.0.0 area 1
hostname(config-rtr)# log-adj-changes
The cluster-pool keyword enables configuration of an IP address pool when Individual Interface
clustering is configured. The hostname | A.B.C.D. keyword specifies the OSPF router ID for this OSPF
process. The ip_pool argument specifies the name of the IP address pool.
Note If you are using clustering, then you do not need to specify an IP address pool for the router ID. If you
do not configure an IP address pool, then the ASA uses the automatically generated router ID.
Procedure
Example:
ciscoasa(config)# router ospf 2
The process_id argument is an internally used identifier for this routing process and can be any positive
integer. This ID does not have to match the ID on any other device; it is for internal use only. You can
use a maximum of two processes.
Step 2 Define the OSPFv2 neighborhood:
neighbor addr [interface if_name]
Example:
ciscoasa(config-rtr)# neighbor 255.255.0.0 [interface my_interface]
The addr argument is the IP address of the OSPFv2 neighbor. The if_name argument is the interface used
to communicate with the neighbor. If the OSPF v2neighbor is not on the same network as any of the
directly connected interfaces, you must specify the interface.
Procedure
Example:
ciscoasa(config)# router ospf 2
The process_id argument is an internally used identifier for this routing process and can be any positive
integer. This ID does not have to match the ID on any other device; it is for internal use only. You can
use a maximum of two processes.
Example:
ciscoasa(config-router)# timers throttle spf 500 500 600
The spf-start argument is the delay time (in milliseconds) between when OSPF receives a topology
change and when it starts an SPF calculation. It can be an integer from 0 to 600000.
The spf-hold argument is the minimum time (in milliseconds) between two consecutive SPF
calculations. It can be an integer from 0 to 600000.
The spf-maximum argument is the maximum time (in milliseconds) between two consecutive SPF
calculations. It can be integer from 0 to 600000.
Procedure
Example:
ciscoasa(config)# router ospf 2
The process_id argument is an internally used identifier for this routing process and can be any positive
integer. This ID does not have to match the ID on any other device; it is for internal use only. You can
use a maximum of two processes.
Step 2 Configure logging for neighbors going up or down:
log-adj-changes [detail]
Configure OSPFv3
This section describes how to configure OSPFv3 routing processes.
• Enable OSPFv3, page 23-19
• Configure OSPFv3 Interface Parameters, page 23-20
• Configure OSPFv3 Router Parameters, page 23-25
• Configure OSPFv3 Area Parameters, page 23-27
• Configure OSPFv3 Passive Interfaces, page 23-29
• Configure OSPFv3 Administrative Distance, page 23-29
Enable OSPFv3
To enable OSPFv3, you need to create an OSPFv3 routing process, create an area for OSPFv3, enable
an interface for OSPFv3, then redistribute the route into the targeted OSPFv3 routing processes.
Procedure
Example:
ciscoasa(config)# ipv6 router ospf 10
The process-id argument is an internally used tag for this routing process and can be any positive integer.
This tag does not have to match the tag on any other device; it is for internal use only. You can use a
maximum of two processes.
Step 2 Enable an interface:
interface interface_name
Example:
ciscoasa(config)# interface Gigabitethernet0/0
Step 3 Create the OSPFv3 routing process with the specified process ID and an area for OSPFv3 with the
specified area ID:
ipv6 ospf process-id area area_id
Example:
ciscoasa(config)# ipv6 ospf 200 area 100
Procedure
Example:
ciscoasa(config-if)# ipv6 router ospf 10
The process-id argument is an internally used tag for this routing process and can be any positive integer.
This tag does not have to match the tag on any other device; it is for internal use only. You can use a
maximum of two processes.
Step 2 Create an OSPFv3 area:.
ipv6 ospf area [area-num] [instance]
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
ip address 10.20.200.30 255.255.255.0 standby 10.20.200.31
ipv6 address 3001::1/64 standby 3001::8
ipv6 address 6001::1/64 standby 6001::8
ipv6 enable
ospf priority 255
ipv6 ospf cost 100
ipv6 ospf 100 area 10 instance 200
The area-num argument is the area for which authentication is to be enabled and can be either a decimal
value or an IP address. The instance keyword specifies the area instance ID that is to be assigned to an
interface. An interface can have only one OSPFv3 area. You can use the same area on multiple interfaces,
and each interface can use a different area instance ID.
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
ip address 10.20.200.30 255.255.255.0 standby 10.20.200.31
ipv6 address 3001::1/64 standby 3001::8
ipv6 address 6001::1/64 standby 6001::8
ipv6 enable
The interface-cost argument specifies an unsigned integer value expressed as the link-state metric, which
can range in value from 1 to 65535. The default cost is based on the bandwidth.
Step 4 Filter outgoing LSAs to an OSPFv3 interface:
ipv6 ospf database-filter all out
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
ip address 10.20.200.30 255.255.255.0 standby 10.20.200.31
ipv6 address 3001::1/64 standby 3001::8
ipv6 address 6001::1/64 standby 6001::8
ipv6 enable
ospf priority 255
ipv6 ospf cost 100
ipv6 ospf 100 area 10 instance 200
ipv6 ospf database-filter all out
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
ip address 10.20.200.30 255.255.255.0 standby 10.20.200.31
ipv6 address 3001::1/64 standby 3001::8
ipv6 address 6001::1/64 standby 6001::8
ipv6 enable
ospf priority 255
ipv6 ospf cost 100
ipv6 ospf 100 area 10 instance 200
ipv6 ospf dead-interval 60
The value must be the same for all nodes on the network and can range from 1 to 65535. The default is
four times the interval set by the ipv6 ospf hello-interval command.
Step 6 Specify the encryption type for an interface:
ipv6 ospf encryption {ipsec spi spi esp encryption-algorithm [[key-encryption-type] key]
authentication-algorithm [[key-encryption-type] key | null}
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
ip address 10.20.200.30 255.255.255.0 standby 10.20.200.31
ipv6 address 3001::1/64 standby 3001::8
ipv6 address 6001::1/64 standby 6001::8
ipv6 enable
The ipsec keyword specifies the IP security protocol. The spi spi keyword-argument pair specifies the
security policy index, which must be in the range of 256 to 42949667295 and entered as a decimal.
The esp keyword specifies the encapsulating security payload. The encryption-algorithm argument
specifies the encryption algorithm to be used with ESP. Valid values include the following:
• aes-cdc—Enables AES-CDC encryption.
• 3des—Enables 3DES encryption.
• des—Enables DES encryption.
• null—Specifies ESP with no encryption.
The key-encryption-type argument can be one of the following two values:
• 0—The key is not encrypted.
• 7—The key is encrypted.
The key argument specifies the number used in the calculation of the message digest. The number is 32
hexadecimal digits (16 bytes) long. The size of the key depends on the encryption algorithm used. Some
algorithms, such as AES-CDC, allow you to choose the size of the key. The authentication-algorithm
argument specifies the encryption authentication algorithm to be used, which can be one of the
following:
• md5—Enables message digest 5 (MD5).
• sha1—Enables SHA-1.
The null keyword overrides area encryption.
If OSPFv3 encryption is enabled on an interface and a neighbor is on different area (for example, area
0), and you want the ASA to form adjacencies with that area, you must change the area on the ASA.
After you have changed the area on the ASA to 0, there is a delay of two minutes before the OSPFv3
adjacency comes up.
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
ip address 10.20.200.30 255.255.255.0 standby 10.20.200.31
ipv6 address 3001::1/64 standby 3001::8
ipv6 address 6001::1/64 standby 6001::8
ipv6 enable
ospf priority 255
ipv6 ospf cost 100
ipv6 ospf 100 area 10 instance 200
ipv6 ospf flood reduction
Step 8 Specify the interval in seconds between hello packets sent on the interface:
ipv6 ospf hello-interval seconds
Example:
The value must be the same for all nodes on a specific network and can range from 1 to 65535. The
default interval is 10 seconds for Ethernet interfaces and 30 seconds for non-broadcast interfaces.
Step 9 Disable the OSPF MTU mismatch detection when DBD packets are received:
ipv6 ospf mtu-ignore
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
ip address 10.20.200.30 255.255.255.0 standby 10.20.200.31
ipv6 address 3001::1/64 standby 3001::8
ipv6 address 6001::1/64 standby 6001::8
ipv6 enable
ospf priority 255
ipv6 ospf cost 100
ipv6 ospf 100 area 10 instance 200
ipv6 ospf mtu-ignore
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
ip address 10.20.200.30 255.255.255.0 standby 10.20.200.31
ipv6 address 3001::1/64 standby 3001::8
ipv6 address 6001::1/64 standby 6001::8
ipv6 enable
ospf priority 255
ipv6 ospf cost 100
ipv6 ospf 100 area 10 instance 200
ipv6 ospf network point-to-point non-broadcast
The point-to-point non-broadcast keyword sets the network type to point-to-point non-broadcast. The
broadcast keyword sets the network type to broadcast.
Step 11 Set the router priority, which helps determine the designated router for a network:
ipv6 ospf priority number-value
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
ip address 10.20.200.30 255.255.255.0 standby 10.20.200.31
ipv6 address 3001::1/64 standby 3001::8
ipv6 address 6001::1/64 standby 6001::8
ipv6 enable
ospf priority 255
ipv6 ospf cost 100
ipv6 ospf 100 area 10 instance 200
ipv6 ospf priority 4
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
ip address 10.20.200.30 255.255.255.0 standby 10.20.200.31
ipv6 address 3001::1/64 standby 3001::8
ipv6 address 6001::1/64 standby 6001::8
ipv6 enable
ospf priority 255
ipv6 ospf cost 100
ipv6 ospf 100 area 10 instance 200
ipv6 ospf neighbor FE80::A8BB:CCFF:FE00:C01
Step 13 Specify the time in seconds between LSA retransmissions for adjacencies that belong to the interface:
ipv6 ospf retransmit-interval seconds
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
ip address 10.20.200.30 255.255.255.0 standby 10.20.200.31
ipv6 address 3001::1/64 standby 3001::8
ipv6 address 6001::1/64 standby 6001::8
ipv6 enable
ospf priority 255
ipv6 ospf cost 100
ipv6 ospf 100 area 10 instance 200
ipv6 ospf retransmit-interval 8
The time must be greater than the expected round-trip delay between any two routers on the attached
network. Valid values range from 1 to 65535 seconds. The default is 5 seconds.
Step 14 Set the estimated time in seconds to send a link-state update packet on the interface:
ipv6 ospf transmit-delay seconds
Example:
ciscoasa(config-if)# interface GigabitEthernet3/2.200
vlan 200
nameif outside
security-level 100
Example:
ciscoasa(config)# ipv6 router ospf 10
The process-id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535. This ID does not have to match the ID on any other device;
it is for internal administrative use only. You can use a maximum of two processes.
Step 2 Configure OSPFv3 area parameters:
area
Example:
ciscoasa(config-rtr)# area 10
Supported parameters include the area ID as a decimal value from 0 to 4294967295 and the area ID in
the IP address format of A.B.C.D.
Step 3 Set a command to its default value:
default
Example:
ciscoasa(config-rtr)# default originate
Step 5 Define the OSPFv3 route administrative distance based on the route type:
distance
Example:
ciscoasa(config-rtr)# distance 200
Supported parameters include the administrative distance with values from 1 to 254 and ospf for the
OSPFv3 distance.
Step 6 Suppress the sending of syslog messages with the lsa parameter when the router receives a link-state
advertisement (LSA) for Type 6 Multicast OSPF (MOSPF) packets:
ignore
Example:
ciscoasa(config-rtr)# ignore lsa
Step 7 Configure the router to send a syslog message when an OSPFv3 neighbor goes up or down:
log-adjacency-changes
Example:
ciscoasa(config-rtr)# log-adjacency-changes detail
Example:
ciscoasa(config-rtr)# passive-interface inside
The interface_name argument specifies the name of the interface on which the OSPFv3 process is
running.
Step 9 Configure the redistribution of routes from one routing domain into another according to the following
parameters:
• connected—Specifies connected routes.
• ospf—Specifies OSPFv3 routes.
• static—Specifies static routes.
redistribute
Example:
ciscoasa(config-rtr)# redistribute ospf
Step 10 Create a fixed router ID for a specified process with the following parameters:
A.B.C.D—Specifies the OSPF router ID in IP address format.
cluster-pool—Configures an IP address pool when Individual Interface clustering is configured. For
more information about IP address pools used in clustering, see Configure an IP Address Pool for
Clustering (OSPFv2 and OSPFv3), page 23-16.
router-id
Example:
ciscoasa(config-rtr)# router-id 10.1.1.1
Step 11 Configure IPv6 address summaries with valid values from 0 to 128:
summary-prefix
Example:
Example:
ciscoasa(config)# ipv6 router ospf 10
ciscoasa(config-rtr)# timers throttle spf 6000 12000 14000
Example:
ciscoasa(config)# ipv6 router ospf 1
The process-id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535.
This ID does not have to match the ID on any other device; it is for internal administrative use only. You
can use a maximum of two processes.
Step 2 Set the summary default cost of an NSSA area or a stub area:
area area-id default-cost cost
Example:
ciscoasa(config-rtr)# area 1 default-cost nssa
Step 3 Summarize routes that match the address and mask for border routers only:
area area-id range ipv6-prefix/ prefix-length [advertise | not advertise] [cost cost]
Example:
ciscoasa(config-rtr)# area 1 range FE01:1::1/64
• The area-id argument identifies the area for which routes are to be summarized. The value can be
specified as a decimal or an IPv6 prefix.
• The ipv6-prefix argument specifies the IPv6 prefix. The prefix-length argument specifies the prefix
length.
• The advertise keyword sets the address range status to advertised and generates a Type 3 summary
LSA.
• The not-advertise keyword sets the address range status to DoNotAdvertise.
• The Type 3 summary LSA is suppressed, and the component networks remain hidden from other
networks.
• The cost cost keyword-argument pair specifies the metric or cost for the summary route, which is
used during OSPF SPF calculations to determine the shortest paths to the destination.
• Valid values range from 0 to 16777215.
Step 4 Specify an NSSA area:
area area-id nssa
Example:
ciscoasa(config-rtr)# area 1 nssa
Example:
ciscoasa(config-rtr)# area 1 stub
Example:
ciscoasa(config-rtr)# area 1 virtual-link 192.168.255.1 hello-interval 5
• The area-id argument identifies the area for which routes are to be summarized. The virtual link
keyword specifies the creation of a virtual link neighbor.
• The router-id argument specifies the router ID that is associated with the virtual link neighbor.
• Enter the show ospf or show ipv6 ospf command to display the router ID. There is no default value.
• The hello-interval keyword specifies the time in seconds between the hello packets that are sent on
an interface. The hello interval is an unsigned integer that is to be advertised in the hello packets.
The value must be the same for all routers and access servers that are attached to a common network.
Valid values range from 1 to 8192. The default is 10.
• The retransmit-interval seconds keyword-argument pair specifies the time in seconds between
LSA retransmissions for adjacencies that belong to the interface. The retransmit interval is the
expected round-trip delay between any two routers on the attached network. The value must be
greater than the expected round-trip delay, and can range from 1 to 8192. The default is 5.
• The transmit-delay seconds keyword-argument pair specifies the estimated time in seconds that is
required to send a link-state update packet on the interface. The integer value must be greater than
zero. LSAs in the update packet have their own ages incremented by this amount before
transmission. The range of values can be from 1 to 8192. The default is 1.
• The dead-interval seconds keyword-argument pair specifies the time in seconds that hello packets
are not seen before a neighbor indicates that the router is down. The dead interval is an unsigned
integer. The default is four times the hello interval, or 40 seconds. The value must be the same for
all routers and access servers that are attached to a common network. Valid values range from 1 to
8192.
• The ttl-security hops keyword configures the time-to-live (TTL) security on a virtual link. The
hop-count argument value can range from 1 to 254.
Example:
ciscoasa(config-if)# ipv6 router ospf 1
The process_id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535. This ID does not have to match the ID on any other device;
it is for internal administrative use only. You can use a maximum of two processes.
Step 2 Suppress the sending and receiving of routing updates on an interface:
passive-interface [interface_name]
Example:
ciscoasa(config-rtr)# passive-interface inside
The interface_name argument specifies the name of the interface on which the OSPFv3 process is
running. If the no interface_name argument is specified, all of the interfaces in the OSPFv3 process
process_id are made passive.
Example:
ciscoasa(config-if)# ipv6 router ospf 1
The process_id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535. This ID does not have to match the ID on any other device;
it is for internal administrative use only. You can use a maximum of two processes.
Step 2 Set the administrative distance for OSPFv3 routes:
distance [ospf {external | inter-area | intra-area}] distance
Example:
ciscoasa(config-rtr)# distance ospf external 200
The ospf keyword specifies OSPFv3 routes. The external keyword specifies the external Type 5 and
Type 7 routes for OSPFv3. The inter-area keyword specifies the inter-area routes for OSPVv3. The
intra-area keyword specifies the intra-area routes for OSPFv3. The distance argument specifies the
administrative distance, which is an integer from 10 to 254.
Procedure
Example:
ciscoasa(config-if)# ipv6 router ospf 1
The process-id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535. This ID does not have to match the ID on any other device;
it is for internal administrative use only. You can use a maximum of two processes.
Step 2 Set the minimum interval at which the ASA accepts the same LSA from OSPF neighbors:
timers lsa arrival milliseconds
Example:
Example:
The milliseconds argument specifies the time in milliseconds at which LSAs in the flooding queue are
paced in between updates. The configurable range is from 5 to 100 milliseconds. The default value is 33
milliseconds.
Step 4 Change the interval at which OSPFv3 LSAs are collected into a group and refreshed, checksummed, or
aged:
timers pacing lsa-group seconds
Example:
ciscoasa(config-rtr)# timers pacing lsa-group 300
The seconds argument specifies the number of seconds in the interval at which LSAs are grouped,
refreshed, check summed, or aged. The range is from 10 to 1800 seconds. The default value is 240
seconds.
Step 5 Configure LSA retransmission packet pacing:
timers pacing retransmission milliseconds
Example:
ciscoasa(config-rtr)# timers pacing retransmission 100
The milliseconds argument specifies the time in milliseconds at which LSAs in the retransmission queue
are paced. The configurable range is from 5 to 200 milliseconds. The default value is 66 milliseconds.
Step 6 Configure OSPFv3 LSA throttling:
timers throttle lsa milliseconds1 milliseconds2 milliseconds3
Example:
ciscoasa(config-rtr)# timers throttle lsa 500 6000 8000
• The milliseconds1 argument specifies the delay in milliseconds to generate the first occurrence of
the LSA. The milliseconds2 argument specifies the maximum delay in milliseconds to originate the
same LSA. The milliseconds3 argument specifies the minimum delay in milliseconds to originate
the same LSA.
• For LSA throttling, if the minimum or maximum time is less than the first occurrence value, then
OSPFv3 automatically corrects to the first occurrence value. Similarly, if the maximum delay
specified is less than the minimum delay, then OSPFv3 automatically corrects to the minimum delay
value.
• For milliseconds1, the default value is 0 milliseconds.
• For milliseconds2 and milliseconds3, the default value is 5000 milliseconds.
• The milliseconds1 argument specifies the delay in milliseconds to receive a change to the SPF
calculation. The milliseconds2 argument specifies the delay in milliseconds between the first and
second SPF calculations. The milliseconds3 argument specifies the maximum wait time in
milliseconds for SPF calculations.
• For SPF throttling, if milliseconds2 or milliseconds3 is less than milliseconds1, then OSPFv3
automatically corrects to the milliseconds1 value. Similarly, if milliseconds3 is less than
milliseconds2, then OSPFv3 automatically corrects to the milliseconds2 value.
Procedure
Step 1 Enable an OSPFv3 routing process and enters IPv6 router configuration mode.
ipv6 router ospf process-id
Example:
ciscoasa(config)# ipv6 router ospf 1
The process-id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535. This ID does not have to match the ID on any other device;
it is for internal administrative use only. You can use a maximum of two processes.
Step 2 Configure OSPFv3 router interconnections to non-broadcast networks.
ipv6 ospf neighbor ipv6-address [priority number] [poll-interval seconds] [cost number]
[database-filter all out]
Example:
Procedure
Example:
ciscoasa(config-if)# ipv6 router ospf 1
The process_id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535. This ID does not have to match the ID on any other device;
it is for internal administrative use only. You can use a maximum of two processes.
Step 2 Return an optional parameter to its default value:
default [area | auto-cost | default-information | default-metric | discard-route |
discard-route | distance | distribute-list | ignore | log-adjacency-changes |
maximum-paths | passive-interface | redistribute | router-id | summary-prefix | timers]
Example:
ciscoasa(config-rtr)# default metric 5
• The area keyword specifies the OSPFv3 area parameters. The auto-cost keyword specifies the
OSPFv3 interface cost according to bandwidth.
• The default-information keyword distributes default information. The default-metric keyword
specifies the metric for a redistributed route
• The discard-route keyword enables or disables the discard-route installation. The distance
keyword specifies the administrative distance.
• The distribute-list keyword filters networks in routing updates.
• The ignore keyword ignores a specific event. The log-adjacency-changes keyword logs changes in
the adjacency state.
• The maximum-paths keyword forwards packets over multiple paths.
• The passive-interface keyword suppresses routing updates on an interface.
• The redistribute keyword redistributes IPv6 prefixes from another routing protocol.
• The router-id keyword specifies the router ID for the specified routing process.
• The summary-prefix keyword specifies the IPv6 summary prefix.
• The timers keyword specifies the OSPFv3 timers.
Procedure
Example:
ciscoasa(config-if)# ipv6 router ospf 1
The process-id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535. This ID does not have to match the ID on any other device;
it is for internal administrative use only. You can use a maximum of two processes.
Step 2 Configure the router to send a syslog message when an OSPFv3 neighbor goes up or down:
log-adjacency-changes [detail]
Example:
ciscoasa(config-rtr)# log-adjacency-changes detail
The detail keyword sends a syslog message for each state, not only when an OSPFv3 neighbor goes up
or down.
Procedure
Example:
ciscoasa(config-if)# router ospf 1
The process_id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535. This ID does not have to match the ID on any other device;
it is for internal administrative use only. You can use a maximum of two processes.
Step 2 Suppress the sending of syslog messages when the router receives unsupported LSA Type 6 MOSPF
packets:
ignore lsa mospf
Example:
ciscoasa(config-rtr)# ignore lsa mospf
Step 1 Restore the methods that are used to calculate summary route costs according to RFC 1583:
compatible rfc1583
Example:
ciscoasa (config-rtr)# compatible rfc1583
Example:
ciscoasa(config-if)# ipv6 router ospf 1
The process-id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535. This ID does not have to match the ID on any other device;
it is for internal administrative use only. You can use a maximum of two processes.
Step 2 Generate a default external route into an OSPFv3 routing domain:
default-information originate [always] metric metric-value [metric-type type-value]
[route-map map-name]
Example:
ciscoasa(config-rtr)# default-information originate always metric 3 metric-type 2
• The always keyword advertises the default route whether or not the default route exists.
• The metric metric-value keyword-argument pair specifies the metric used for generating the default
route.
• If you do not specify a value using the default-metric command, the default value is 10. Valid
metric values range from 0 to 16777214.
• The metric-type type-value keyword-argument pair specifies the external link type that is
associated with the default route that is advertised into the OSPFv3 routing domain. Valid values
can be one of the following:
– 1—Type 1 external route
– 2—Type 2 external route
The default is the type 2 external route.
• The route-map map-name keyword-argument pair specifies the routing process that generates the
default route if the route map is satisfied.
Example:
ciscoasa(config-if)# ipv6 router ospf 1
The process_id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535. This ID does not have to match the ID on any other device;
it is for internal administrative use only. You can use a maximum of two processes.
Step 2 Configure an IPv6 summary prefix:
summary-prefix prefix [not-advertise | tag tag-value]
Example:
ciscoasa(config-if)# ipv6 router ospf 1
ciscoasa(config-rtr)# router-id 192.168.3.3
ciscoasa(config-rtr)# summary-prefix FECO::/24
ciscoasa(config-rtr)# redistribute static
The prefix argument is the IPv6 route prefix for the destination. The not-advertise keyword suppresses
routes that match the specified prefix and mask pair. This keyword applies to OSPFv3 only. The tag
tag-value keyword-argument pair specifies the tag value that can be used as a match value for controlling
redistribution through route maps. This keyword applies to OSPFv3 only.
Example:
ciscoasa(config-if)# ipv6 router ospf 1
The process-id argument is an internally used identifier for this routing process, is locally assigned, and
can be any positive integer from 1 to 65535. This ID does not have to match the ID on any other device;
it is for internal administrative use only. You can use a maximum of two processes.
Step 2 Redistribute IPv6 routes from one OSPFv3 process into another:
redistribute source-protocol [process-id] [include-connected {[level-1 | level-2}]
[as-number] [metric [metric-value | transparent}] [metric-type type-value] [match
{external [1|2] | internal | nssa-external [1|2]}] [tag tag-value] [route-map map-tag]
Example:
ciscoasa(config-rtr)# redistribute connected 5 type-1
• The source-protocol argument specifies the source protocol from which routes are being
redistributed, which can be static, connected, or OSPFv3.
• The process-id argument is the number that is assigned administratively when the OSPFv3 routing
process is enabled.
• The include-connected keyword allows the target protocol to redistribute routes learned by the
source protocol and connected prefixes on those interfaces over which the source protocol is
running.
• The level-1 keyword specifies that for Intermediate System-to-Intermediate System (IS-IS), Level
1 routes are redistributed into other IP routing protocols independently.
• The level-1-2 keyword specifies that for IS-IS, both Level 1 and Level 2 routes are redistributed into
other IP routing protocols.
• The level-2 keyword specifies that for IS-IS, Level 2 routes are redistributed into other IP routing
protocols independently.
• For the metric metric-value keyword-argument pair, when redistributing routes from one OSPFv3
process into another OSPFv3 process on the same router, the metric is carried through from one
process to the other if no metric value is specified. When redistributing other processes into an
OSPFv3 process, the default metric is 20 when no metric value is specified.
• The metric transparent keyword causes RIP to use the routing table metric for redistributed routes
as the RIP metric.
• The metric-type type-value keyword-argument pair specifies the external link type that is
associated with the default route that is advertised into the OSPFv3 routing domain. Valid values
can be one of the following: 1 for a Type 1 external route or 2 for a Type 2 external route. If no value
is specified for the metric-type keyword, the ASA adopts a Type 2 external route. For IS-IS, the link
type can be one of the following: internal for an IS-IS metric that is less than 63 or external for an
IS-IS metric that is greater than 64 and less than 128. The default is internal.
• The match keyword redistributes routes into other routing domains and is used with one of the
following options: external [1|2] for routes that are external to the autonomous system, but are
imported into OSPFv3 as Type 1 or Type 2 external routes; internal for routes that are internal to a
specific autonomous system; nssa-external [1|2] for routes that are external to the autonomous
system, but are imported into OSPFv3 in an NSSA for IPv6 as Type 1 or Type 2 external routes.
• The tag tag-value keyword-argument pair specifies the 32-bit decimal value that is attached to each
external route, which may be used to communicate information between ASBRs. If none is
specified, then the remote autonomous system number is used for routes from BGP and EGP. For
other protocols, zero is used. Valid values range from 0 to 4294967295.
• The route-map keyword specifies the route map to check for filtering the importing of routes from
the source routing protocol to the current routing protocol. If this keyword is not specified, all routes
are redistributed. If this keyword is specified, but no route map tags are listed, no routes are
imported. The map-tag argument identifies a configured route map.
Graceful restart is supported on both OSPFv2 and OSPFv3. You can configure graceful restart on OSPFv2 by
using either using NSF Cisco (RFC 4811 and RFC 4812) or NSF IETF (RFC 3623). You can configure
graceful restart on OSPFv3 using graceful-restart (RFC 5187).
Configuring the NSF graceful-restart feature involves two steps; configuring capabilities and configuring a
device as NSF-capable or NSF-aware. A NSF-capable device can indicate its own restart activities to
neighbors and a NSF-aware device can help a restarting neighbor.
A device can be configured as NSF-capable or NSF-aware, depending on some conditions:
• A device can be configured as NSF-aware irrespective of the mode in which it is.
• A device has to be in either Failover or Spanned Etherchannel (L2) cluster mode to be configured
as NSF-capable.
• For a device to be either NSF-aware or NSF-capable, it should be configured with the capability of
handling opaque Link State Advertisements (LSAs)/ Link Local Signaling (LLS) block as required.
Note When fast hellos are configured for OSPFv2, graceful restart does not occur when the active unit reloads
and the standby unit becomes active. This is because the time taken for the role change is more than the
configured dead interval.
Configure capabilities
The Cisco NSF Graceful Restart mechanism depends on the LLS capability as it sends an LLS block
with the RS-bit set in the Hello packet, to indicate the restart activity. The IETF NSF mechanism depends
on the opaque LSA capability as it sends opaque-LSAs of type-9 to indicate the restart activity. To
configure capabilities enter the following commands:
Procedure
Step 1 Create an OSPF routing process and enters router configuration mode for the OSPF process that you
want to redistribute:
router ospf process_id
Example:
ciscoasa(config)# router ospf 2
The process_id argument is an internally used identifier for this routing process and can be any positive
integer. This ID does not have to match the ID on any other device; it is for internal use only. You can
use a maximum of two processes.
Step 2 Enable the use of LLS data block or opaque LSAs to enable NSF:
capability {lls|opaque}
Example:
ciscoasa(config-router)# capability lls
The lls keyword is used to enable LLS capability for Cisco NSF Graceful Restart mechanism.
The opaque keyword is used to enable opaque LSA capability for IETF NSF Graceful Restart
mechanism.
Procedure
Example:
ciscoasa(config-router)# nsf cisco
The enforce global keyword cancels NSF restart when non-NSF-aware neighbor devices are detected.
Step 2 Enable Cisco NSF helper mode on NSF-aware device:
capability {lls|opaque}
Example:
ciscoasa(config-router)# capability lls
This command is enabled by default. Using the no form of the command disables it.
Procedure
Example:
ciscoasa(config-router)# nsf ietf restart interval 80
The restart interval seconds specifies the length of the graceful restart interval, in seconds. Valid values
are from 1 to 1800 seconds. The default value is 120 seconds.
Graceful restart might be terminated when restart interval is configured with a value less than the time
taken for the adjacency to come up.For example, a restart interval below 30 seconds, is not supported.
Step 2 Enable IETF NSF helper mode on NSF-aware device:
nsf ietf helper [strict-lsa-checking]
Example:
ciscoasa(config-router)# nsf ietf helper
The strict-LSA-checking keyword indicates that the helper router will terminate the process of the
restarting router if it detects that there is a change to a LSA that would be flooded to the restarting router,
or if there is a changed LSA on the retransmission list of the restarting router when the graceful restart
process is initiated.
This command is enabled by default. Using the no form of the command disables it.
Procedure
Step 1 Enable IPv6 processing on an interface that has not been configured with an explicit IPv6 address:
interface physical_interface
ipv6 enable
Example:
ciscoasa(config)# interface ethernet 0/0
ciscoasa(config-if)# ipv6 enable
The physical_interface argument identifies the interface that participates in OSPFv3 NSF.
Step 2 Enable graceful-restart for OSPFv3 on a NSF-capable device:
graceful-restart [restart interval seconds]
Example:
ciscoasa(config-router)# graceful-restart restart interval 80
The restart interval seconds specifies the length of the graceful restart interval, in seconds. Valid values
are from 1 to 1800 seconds. The default value is 120 seconds.
Graceful restart might be terminated when restart interval is configured with a value less than the time
taken for the adjacency to come up.For example, a restart interval below 30 seconds, is not supported.
Step 3 Enable graceful-restart for OSPFv3 on a NSF-aware device:
graceful-restart helper [strict-lsa-checking]
Example:
ciscoasa(config-router)# graceful-restart helper strict-lsa-checking
The strict-LSA-checking keyword indicates that the helper router will terminate the process of the
restarting router if it detects that there is a change to a LSA that would be flooded to the restarting router,
or if there is a changed LSA on the retransmission list of the restarting router when the graceful restart
process is initiated.
The graceful-restart helper mode is enabled by default.
Procedure
Step 1 Remove the entire OSPFv2 configuration that you have enabled.
clear configure router ospf pid
Example:
ciscoasa(config)# clear configure router ospf 1000
After the configuration is cleared, you must reconfigure OSPF using the router ospf command.
Procedure
Step 1 Remove the entire OSPFv3 configuration that you have enabled:
clear configure ipv6 router ospf process-id
Example:
ciscoasa(config)# clear configure ipv6 router ospf 1000
After the configuration is cleared, you must reconfigure OSPFv3 using the ipv6 router ospf command.
Step 2 (Optional) To redistribute routes from one OSPFv2 process to another OSPFv2 process, enter the
following commands:
ciscoasa(config)# route-map 1-to-2 permit
ciscoasa(config-route-map)# match metric 1
ciscoasa(config-route-map)# set metric 5
ciscoasa(config-route-map)# set metric-type type-1
ciscoasa(config-route-map)# router ospf 2
ciscoasa(config-rtr)# redistribute ospf 1 route-map 1-to-2
Step 3 (Optional) To configure OSPFv2 interface parameters, enter the following commands:
ciscoasa(config)# router ospf 2
ciscoasa(config-rtr)# network 10.0.0.0 255.0.0.0 area 0
ciscoasa(config-rtr)# interface inside
ciscoasa(config-interface)# ospf cost 20
ciscoasa(config-interface)# ospf retransmit-interval 15
ciscoasa(config-interface)# ospf transmit-delay 10
ciscoasa(config-interface)# ospf priority 20
ciscoasa(config-interface)# ospf hello-interval 10
ciscoasa(config-interface)# ospf dead-interval 40
ciscoasa(config-interface)# ospf authentication-key cisco
ciscoasa(config-interface)# ospf message-digest-key 1 md5 cisco
ciscoasa(config-interface)# ospf authentication message-digest
Step 4 (Optional) To configure OSPFv2 area parameters, enter the following commands:
ciscoasa(config)# router ospf 2
ciscoasa(config-rtr)# area 0 authentication
ciscoasa(config-rtr)# area 0 authentication message-digest
ciscoasa(config-rtr)# area 17 stub
ciscoasa(config-rtr)# area 17 default-cost 20
Step 5 (Optional) To configure the route calculation timers and show the log neighbor up and down messages,
enter the following commands:
ciscoasa(config-rtr)# timers spf 10 120
ciscoasa(config-rtr)# log-adj-changes [detail]
Step 6 (Optional) To show current OSPFv2 configuration settings, enter the show ospf command.
The following is sample output from the show ospf command:
ciscoasa(config)# show ospf
The following is sample output from the show running-config ipv6 command:
ciscoasa (config)# show running-config ipv6
ipv6 router ospf 1
log-adjacency-changes
The following is sample output from the show running-config interface command:
ciscoasa (config-if)# show running-config interface GigabitEthernet3/1
interface GigabitEthernet3/1
nameif fda
security-level 100
ip address 1.1.11.1 255.255.255.0 standby 1.1.11.2
ipv6 address 9098::10/64 standby 9098::11
ipv6 enable
ipv6 ospf 1 area 1
For an example of how to configure an OSPFv3 virtual link, see the following URL:
http://www.cisco.com/en/US/tech/tk365/technologies_configuration_example09186a0080b8fd06.shtm
l
Monitoring OSPF
You can display specific statistics such as the contents of IP routing tables, caches, and databases. You
can also use the information provided to determine resource utilization and solve network problems. You
can also display information about node reachability and discover the routing path that your device
packets are taking through the network.
To monitor or display various OSPFv2 routing statistics, enter one of the following commands:
Command Purpose
show ospf [process-id [area-id]] Displays general information about OSPFv2
routing processes.
show ospf border-routers Displays the internal OSPFv2 routing table entries
to the ABR and ASBR.
show ospf [process-id [area-id]] database Displays lists of information related to the OSPFv2
database for a specific router.
show ospf flood-list if-name Displays a list of LSAs waiting to be flooded over
an interface (to observe OSPF v2packet pacing).
OSPFv2 update packets are automatically paced so
they are not sent less than 33 milliseconds apart.
Without pacing, some update packets could get lost
in situations where the link is slow, a neighbor
could not receive the updates quickly enough, or
the router could run out of buffer space. For
example, without pacing, packets might be
dropped if either of the following topologies exist:
• A fast router is connected to a slower router
over a point-to-point link.
• During flooding, several neighbors send
updates to a single router at the same time.
Pacing is also used between resends to increase
efficiency and minimize lost retransmissions. You
also can display the LSAs waiting to be sent out of
an interface. Pacing enables OSPFv2 update and
retransmission packets to be sent more efficiently.
There are no configuration tasks for this feature; it
occurs automatically.
show ospf interface [if_name] Displays OSPFv2-related interface information.
show ospf neighbor [interface-name] Displays OSPFv2 neighbor information on a
[neighbor-id] [detail] per-interface basis.
show ospf request-list neighbor if_name Displays a list of all LSAs requested by a router.
Command Purpose
show ospf retransmission-list neighbor Displays a list of all LSAs waiting to be resent.
if_name
show ospf [process-id] summary-address Displays a list of all summary address
redistribution information configured under an
OSPFv2 process.
show ospf [process-id] traffic Displays a list of different types of packets being
sent or received by a specific OSPFv2 instance.
show ospf [process-id] virtual-links Displays OSPFv2-related virtual links
information.
show route cluster Displays additional OSPFv2 route synchronization
information in clustering.
To monitor or display various OSPFv3 routing statistics, enter one of the following commands:
Command Purpose
show ipv6 ospf [process-id [area-id]] Displays general information about OSPFv3
routing processes.
show ipv6 ospf [process-id] border-routers Displays the internal OSPFv3 routing table entries
to the ABR and ASBR.
show ipv6 ospf [process-id [area-id]] Displays lists of information related to the OSPFv3
database [external | inter-area prefix | database for a specific router.
inter-area-router | network | nssa-external
| router | area | as | ref-lsa |
[destination-router-id] [prefix
ipv6-prefix] [link-state-id]] [link
[interface interface-name] [adv-router
router-id] | self-originate] [internal]
[database-summary]
show ipv6 ospf [process-id [area-id]] Displays OSPFv3 event information.
events
Command Purpose
show ipv6 ospf [process-id] [area-id] Displays a list of LSAs waiting to be flooded over
flood-list interface-type interface-number an interface (to observe OSPFv3 packet pacing).
OSPFv3 update packets are automatically paced so
they are not sent less than 33 milliseconds apart.
Without pacing, some update packets could get lost
in situations where the link is slow, a neighbor
could not receive the updates quickly enough, or
the router could run out of buffer space. For
example, without pacing, packets might be
dropped if either of the following topologies exist:
• A fast router is connected to a slower router
over a point-to-point link.
• During flooding, several neighbors send
updates to a single router at the same time.
Pacing is also used between retransmissions to
increase efficiency and minimize lost
retransmissions. You also can display the LSAs
waiting to be sent out of an interface. Pacing
enables OSPFv3 update and retransmission
packets to be sent more efficiently.
There are no configuration tasks for this feature; it
occurs automatically.
show ipv6 ospf [process-id] [area-id] Displays OSPFv3-related interface information.
interface [type number] [brief]
show ipv6 ospf neighbor [process-id] Displays OSPFv3 neighbor information on a
[area-id] [interface-type interface-number] per-interface basis.
[neighbor-id] [detail]
show ipv6 ospf [process-id] [area-id] Displays a list of all LSAs requested by a router.
request-list [neighbor] [interface]
[interface-neighbor]
show ipv6 ospf [process-id] [area-id] Displays a list of all LSAs waiting to be resent.
retransmission-list [neighbor] [interface]
[interface-neighbor]
show ipv6 ospf statistic [process-id] Displays various OSPFv3 statistics.
[detail]
show ipv6 ospf [process-id] summary-prefix Displays a list of all summary address
redistribution information configured under an
OSPFv3 process.
show ipv6 ospf [process-id] timers Displays OSPFv3 timers information.
[lsa-group | rate-limit]
show ipv6 ospf [process-id] traffic Displays OSPFv3 traffic-related statistics.
[interface_name]
show ipv6 ospf virtual-links Displays OSPFv3-related virtual links
information.
show ipv6 route cluster [failover] Displays the IPv6 routing table sequence number,
[cluster] [interface] [ospf] [summary] IPv6 reconvergence timer status, and IPv6 routing
entries sequence number in a cluster.
Additional References
RFCs
RFC Title
2328 OSPFv2
4552 OSPFv3 Authentication
5340 OSPF for IPv6
Timers New OSPF timers were added; old ones were deprecated.
We introduced the following commands: timers lsa arrival, timers pacing,
timers throttle
We removed the following commands: Timers spf, timers lsa-grouping-pacing
OSPF Support for 9.3(1) OSPFv2 and OSPFv3 support for NSF was added.
Non-Stop Forwarding We added the following commands: capability, nsf cisco, nsf cisco helper, nsf
(NSF) ietf, nsf ietf helper, nsf ietf helper strict-lsa-checking, graceful-restart,
graceful-restart helper, graceful-restart helper strict-lsa-checking
This chapter describes how to configure the Cisco ASA to route data, perform authentication, and
redistribute routing information using the Enhanced Interior Gateway Routing Protocol (EIGRP).
• About EIGRP, page 24-1
• Guidelines for EIGRP, page 24-2
• Configure EIGRP, page 24-3
• Customize EIGRP, page 24-5
• Monitoring for EIGRP, page 24-18
• Example for EIGRP, page 24-18
• History for EIGRP, page 24-19
About EIGRP
EIGRP is an enhanced version of IGRP developed by Cisco. Unlike IGRP and RIP, EIGRP does not send
out periodic route updates. EIGRP updates are sent out only when the network topology changes. Key
capabilities that distinguish EIGRP from other routing protocols include fast convergence, support for
variable-length subnet mask, support for partial updates, and support for multiple network layer
protocols.
A router running EIGRP stores all the neighbor routing tables so that it can quickly adapt to alternate
routes. If no appropriate route exists, EIGRP queries its neighbors to discover an alternate route. These
queries propagate until an alternate route is found. Its support for variable-length subnet masks permits
routes to be automatically summarized on a network number boundary. In addition, EIGRP can be
configured to summarize on any bit boundary at any interface. EIGRP does not make periodic updates.
Instead, it sends partial updates only when the metric for a route changes. Propagation of partial updates
is automatically bounded so that only those routers that need the information are updated. As a result of
these two capabilities, EIGRP consumes significantly less bandwidth than IGRP.
Neighbor discovery is the process that the ASA uses to dynamically learn of other routers on directly
attached networks. EIGRP routers send out multicast hello packets to announce their presence on the
network. When the ASA receives a hello packet from a new neighbor, it sends its topology table to the
neighbor with an initialization bit set. When the neighbor receives the topology update with the
initialization bit set, the neighbor sends its topology table back to the ASA.
The hello packets are sent out as multicast messages. No response is expected to a hello message. The
exception to this is for statically defined neighbors. If you use the neighbor command, or configure the
Hello Interval in ASDM, to configure a neighbor, the hello messages sent to that neighbor are sent as
unicast messages. Routing updates and acknowledgements are sent out as unicast messages.
Once this neighbor relationship is established, routing updates are not exchanged unless there is a change
in the network topology. The neighbor relationship is maintained through the hello packets. Each hello
packet received from a neighbor includes a hold time. This is the time in which the ASA can expect to
receive a hello packet from that neighbor. If the ASA does not receive a hello packet from that neighbor
within the hold time advertised by that neighbor, the ASA considers that neighbor to be unavailable.
The EIGRP protocol uses four key algorithm technologies, four key technologies, including neighbor
discovery/recovery, Reliable Transport Protocol (RTP), and DUAL, which is important for route
computations. DUAL saves all routes to a destination in the topology table, not just the least-cost route.
The least-cost route is inserted into the routing table. The other routes remain in the topology table. If
the main route fails, another route is chosen from the feasible successors. A successor is a neighboring
router used for packet forwarding that has a least-cost path to a destination. The feasibility calculation
guarantees that the path is not part of a routing loop.
If a feasible successor is not found in the topology table, a route recomputation must occur. During route
recomputation, DUAL queries the EIGRP neighbors for a route, who in turn query their neighbors.
Routers that do no have a feasible successor for the route return an unreachable message.
During route recomputation, DUAL marks the route as active. By default, the ASA waits for three
minutes to receive a response from its neighbors. If the ASA does not receive a response from a neighbor,
the route is marked as stuck-in-active. All routes in the topology table that point to the unresponsive
neighbor as a feasibility successor are removed.
Note EIGRP neighbor relationships are not supported through the IPsec tunnel without a GRE tunnel.
Failover Guidelines
Supports Stateful Failover in single and multiple context mode.
IPv6 Guidelines
Does not support IPv6.
Clustering Guidelines
• Supports Spanned EtherChannel and Individual Interface clustering when configured to use both
EIGRP and OSPFv2.
• In a Individual Interface cluster setup, EIGRP adjacencies can only be established between two
contexts on a shared interface on the master unit. You can manually configure multiple neighbor
statements corresponding to each cluster node separately to work around this issue.
Additional Guidelines
• EIGRP instances cannot form adjacencies with each other across shared interfaces because
inter-context exchange of multicast traffic is not supported.
• A maximum of one EIGRP process is supported.
Configure EIGRP
This section describes how to enable the EIGRP process on your system. After you have enabled EIGRP,
see the following sections to learn how to customize the EIGRP process on your system.
• Enable EIGRP, page 24-3
• Enable EIGRP Stub Routing, page 24-4
Enable EIGRP
You can only enable one EIGRP routing process on the ASA.
To enable EIGRP, perform the following steps:
Procedure
Step 1 Create an EIGRP routing process and enter router configuration mode for this EIGRP process:
router eigrp as-num
Example:
ciscoasa(config)# router eigrp 2
The as-num argument is the autonomous system number of the EIGRP routing process.
Step 2 Configure the interfaces and networks that participate in EIGRP routing:
network ip-addr [mask]
Example:
You can configure one or more network statements with this command.
Directly connected and static networks that fall within the defined network are advertised by the ASA.
Additionally, only interfaces with an IP address that fall within the defined network participate in the
EIGRP routing process.
If you have an interface that you do not want to have participate in EIGRP routing, but that is attached
to a network that you want advertised, see Configure Interfaces for EIGRP, page 24-6.
Procedure
Step 1 Create an EIGRP routing process and enter router configuration mode for this EIGRP process:
router eigrp as-num
Example:
ciscoasa(config)# router eigrp 2
The as-num argument is the autonomous system number of the EIGRP routing process.
Step 2 Configure the interfaces and networks that participate in EIGRP routing:
network ip-addr [mask]
Example:
ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
You can configure one or more network statements with this command.
Directly connected and static networks that fall within the defined network are advertised by the ASA.
Additionally, only interfaces with an IP address that fall within the defined network participate in the
EIGRP routing process.
If you have an interface that you do not want to have participate in EIGRP routing, but that is attached
to a network that you want advertised, see section Configure Passive Interfaces, page 24-8.
Step 3 Configure the stub routing process:
eigrp stub {receive-only | [connected] [redistributed] [static] [summary]}
Example:
ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
ciscoasa(config-router)# eigrp stub {receive-only | [connected] [redistributed] [static]
[summary]}
You must specify which networks are advertised by the stub routing process to the distribution router.
Static and connected networks are not automatically redistributed into the stub routing process.
Note A stub routing process does not maintain a full topology table. At a minimum, stub routing needs a
default route to a distribution router, which makes the routing decisions.
Customize EIGRP
This section describes how to customize the EIGRP routing.
• Define a Network for an EIGRP Routing Process, page 24-5
• Configure Interfaces for EIGRP, page 24-6
• Configure Passive Interfaces, page 24-8
• Configure the Summary Aggregate Addresses on Interfaces, page 24-8
• Change the Interface Delay Value, page 24-9
• Enable EIGRP Authentication on an Interface, page 24-10
• Define an EIGRP Neighbor, page 24-11
• Redistribute Routes Into EIGRP, page 24-12
• Filter Networks in EIGRP, page 24-13
• Customize the EIGRP Hello Interval and Hold Time, page 24-14
• Disable Automatic Route Summarization, page 24-15
• Configure Default Information in EIGRP, page 24-16
• Disable EIGRP Split Horizon, page 24-17
• Restart the EIGRP Process, page 24-17
Procedure
Step 1 Create an EIGRP routing process and enter router configuration mode for this EIGRP process:
router eigrp as-num
Example:
The as-num argument is the autonomous system number of the EIGRP routing process.
Step 2 Configure the interfaces and networks that participate in EIGRP routing:
network ip-addr [mask]
Example:
ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
You can configure one or more network statements with this command.
Directly connected and static networks that fall within the defined network are advertised by the ASA.
Additionally, only interfaces with an IP address that fall within the defined network participate in the
EIGRP routing process.
If you have an interface that you do not want to have participate in EIGRP routing, but that is attached
to a network that you want advertised, see Configure Passive Interfaces, page 24-8.
Procedure
Step 1 Create an EIGRP routing process and enter router configuration mode for this EIGRP process:
router eigrp as-num
Example:
ciscoasa(config)# router eigrp 2
The as-num argument is the autonomous system number of the EIGRP routing process.
Step 2 Configure the interfaces and networks that participate in EIGRP routing:
ciscoasa(config-router)# network ip-addr [mask]
Example:
ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
You can configure one or more network statements with this command.
Directly connected and static networks that fall within the defined network are advertised by the ASA.
Additionally, only interfaces with an IP address that fall within the defined network participate in the
EIGRP routing process.
If you have an interface that you do not want to have participate in EIGRP routing, but that is attached
to a network that you want advertised, see Define a Network for an EIGRP Routing Process, page 24-5.
Step 3 Control the sending or receiving of candidate default route information:
no default-information {in | out | WORD}
Example:
ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
ciscoasa(config-router)# no default-information {in | out | WORD}
Entering the no default-information in command causes the candidate default route bit to be blocked
on received routes.
Entering the no default-information out command disables the setting of the default route bit in
advertised routes.
For more information see, Configure Default Information in EIGRP, page 24-16.
Step 4 Enable MD5 authentication of EIGRP packets:
authentication mode eigrp as-num md5
Example:
ciscoasa(config)# authentication mode eigrp 2 md5
The as-num argument is the autonomous system number of the EIGRP routing process configured on the
ASA. If EIGRP is not enabled or if you enter the wrong number, the ASA returns the following error
message:
% Asystem(100) specified does not exist
For more information see Enable EIGRP Authentication on an Interface, page 24-10.
Step 5 Set the delay value:
delay value
Example:
ciscoasa(config-if)# delay 200
The value argument entered is in tens of microseconds. To set the delay for 2000 microseconds, you enter
a value of 200.
To view the delay value assigned to an interface, use the show interface command.
For more information see Change the Interface Delay Value, page 24-9.
Step 6 Change the hello interval:
hello-interval eigrp as-num seconds
Example:
ciscoasa(config)# hello-interval eigrp 2 60
For more information see Customize the EIGRP Hello Interval and Hold Time, page 24-14.
Step 7 Change the hold time:
hold-time eigrp as-num seconds
Example:
ciscoasa(config)# hold-time eigrp 2 60
For more information see Customize the EIGRP Hello Interval and Hold Time, page 24-14.
Procedure
Step 1 Create an EIGRP routing process and enter router configuration mode for this EIGRP process:
router eigrp as-num
Example:
ciscoasa(config)# router eigrp 2
The as-num argument is the autonomous system number of the EIGRP routing process.
Step 2 Configure the interfaces and networks that participate in EIGRP routing You can configure one or more
network statements with this command:
ciscoasa(config-router)# network ip-addr [mask]
Example:
ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
Directly connected and static networks that fall within the defined network are advertised by the ASA.
Additionally, only interfaces with an IP address that fall within the defined network participate in the
EIGRP routing process.
If you have an interface that you do not want to have participate in EIGRP routing, but that is attached
to a network that you want advertised, see Define a Network for an EIGRP Routing Process, page 24-5.
Step 3 Prevent an interface from sending or receiving EIGRP routing message:
passive-interface {default | if-name}
Example:
ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
ciscoasa(config-router)# passive-interface {default}
Using the default keyword disables EIGRP routing updates on all interfaces. Specifying an interface
name, as defined by the nameif command, disables EIGRP routing updates on the specified interface.
You can use multiple passive-interface commands in your EIGRP router configuration.
Procedure
Step 1 Enter interface configuration mode for the interface on which you are changing the delay value used by
EIGRP:
interface phy_if
Example:
ciscoasa(config)# interface inside
Step 2 Create the summary address:
summary-address eigrp as-num address mask [distance]
Example:
ciscoasa(config-if)# summary-address eigrp 2 address mask [20]
By default, EIGRP summary addresses that you define have an administrative distance of 5. You can
change this value by specifying the optional distance argument in the summary-address command.
Procedure
Step 1 Enter interface configuration mode for the interface on which you are changing the delay value used by
EIGRP:
interface phy_if
Example:
ciscoasa(config)# interface inside
Step 2 Set a delay value:
delay value
Example:
ciscoasa(config-if)# delay 200
The value argument entered is in tens of microseconds. To set the delay for 2000 microseconds, you enter
a value of 200.
Note To view the delay value assigned to an interface, use the show interface command.
Note Before you can enable EIGRP route authentication, you must enable EIGRP.
Procedure
Step 1 Create an EIGRP routing process and enter router configuration mode for this EIGRP process:
router eigrp as-num
Example:
hostname(config)# router eigrp 2
The as-num argument is the autonomous system number of the EIGRP routing process.
Step 2 Configure the interfaces and networks that participate in EIGRP routing:
network ip-addr [mask]
Example:
hostname(config)# router eigrp 2
hostname(config-router)# network 10.0.0.0
255.0.0.0
• You can configure one or more network statements with this command.
• Directly connected and static networks that fall within the defined network are advertised by the
ASA. Additionally, only interfaces with an IP address that falls within the defined network
participate in the EIGRP routing process.
• If you have an interface that you do not want to have participate in EIGRP routing, but that is
attached to a network that you want advertised, see Configure EIGRP, page 24-3.
Step 3 Enter interface configuration mode for the interface on which you are configuring EIGRP message
authentication:
interface phy_if
Example:
hostname(config)# interface inside
Example:
hostname(config)# authentication mode eigrp 2 md5
The as-num argument is the autonomous system number of the EIGRP routing process configured on the
ASA. If EIGRP is not enabled or if you enter the wrong number, the ASA returns the following error
message:
% Asystem(100) specified does not exist
Example:
hostname(config)# authentication key eigrp 2 cisco key-id 200
• The as-num argument is the autonomous system number of the EIGRP routing process configured
on the ASA. If EIGRP is not enabled or if you enter the wrong number, the ASA returns the
following error message:
% Asystem(100) specified does not exist%
• The key argument can include up to 16 characters, including alphabets, numbers and special
characters.White spaces are not allowed, in the key argurment.
• The key-id argument is a number that can range from 0 to 255.
Procedure
Step 1 Create an EIGRP routing process and enters router configuration mode for this EIGRP process:
router eigrp as-num
Example:
ciscoasa(config)# router eigrp 2
The as-num argument is the autonomous system number of the EIGRP routing process.
Step 2 Define the static neighbor:
neighbor ip-addr interface if_name
Example:
ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# neighbor 10.0.0.0 interface interface1
The if-name argument is the name of the interface, as specified by the nameif command, through which
that neighbor is available. You can define multiple neighbors for an EIGRP routing process.
Note For RIP only: Before you begin this procedure, you must create a route map to further define which
routes from the specified routing protocol are redistributed in to the RIP routing process. See Chapter 21,
“Route Maps,” for more information about creating a route map.
To redistribute routes into the EIGRP routing process, perform the following steps:
Procedure
Step 1 Create an EIGRP routing process and enter router configuration mode for this EIGRP process:
router eigrp as-num
Example:
ciscoasa(config)# router eigrp 2
The as-num argument is the autonomous system number of the EIGRP routing process.
Step 2 (Optional) Specifies the default metrics that should be applied to routes redistributed into the EIGRP
routing process:
default-metric bandwidth delay reliability loading mtu
Example:
ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# default-metric bandwidth delay reliability loading mtu
If you do not specify a default metric in the EIGRP router configuration, you must specify the metric
values in each redistribute command. If you specify the EIGRP metrics in the redistribute command
and have the default-metric command in the EIGRP router configuration, the metrics in the
redistribute command are used.
Step 3 Redistribute connected routes into the EIGRP routing process:
redistribute connected [metric bandwidth delay reliability loading mtu] [route-map
map_name]
Example:
ciscoasa(config-router): redistribute connected [metric bandwidth delay reliability
loading mtu] [route-map map_name]
You must specify the EIGRP metric values in the redistribute command if you do not have a
default-metric command in the EIGRP router configuration.
Example:
ciscoasa(config-router): redistribute static [metric bandwidth delay reliability loading
mtu] [route-map map_name]
Step 5 Redistribute routes from an OSPF routing process into the EIGRP routing process:
redistribute ospf pid [match {internal | external [1 | 2] | nssa-external [1 | 2]}]
[metric bandwidth delay reliability loading mtu] [route-map map_name]
Example:
ciscoasa(config-router): redistribute ospf pid [match {internal | external [1 | 2] |
nssa-external [1 | 2]}] [metric bandwidth delay reliability loading mtu] [route-map
map_name]
Step 6 Redistribute routes from a RIP routing process into the EIGRP routing process:
redistribute rip [metric bandwidth delay reliability load mtu] [route-map map_name]
Example:
(config-router): redistribute rip [metric bandwidth delay reliability load mtu] [route-map
map_name]
Note Before you begin this process, you must create a standard ACL that defines the routes that you want to
advertise. That is, create a standard ACL that defines the routes that you want to filter from sending or
receiving updates.
Procedure
Step 1 Create an EIGRP routing process and enter router configuration mode for this EIGRP process:
router eigrp as-num
Example:
ciscoasa(config)# router eigrp 2
The as-num argument is the autonomous system number of the EIGRP routing process.
Step 2 Configure the interfaces and networks that participate in EIGRP routing:
ciscoasa(config-router)# network ip-addr [mask]
Example:
You can configure one or more network statements with this command.
Directly connected and static networks that fall within the defined network are advertised by the ASA.
Additionally, only interfaces with an IP address that fall within the defined network participate in the
EIGRP routing process.
If you have an interface that you do not want to have participate in EIGRP routing, but that is attached
to a network that you want advertised, see Configure Interfaces for EIGRP, page 24-6.
Step 3 Filter networks sent in EIGRP routing updates:
distribute-list acl out [connected | ospf | rip | static | interface if_name]
Example:
You can specify an interface to apply the filter to only those updates that are sent by that specific
interface.
You can enter multiple distribute-list commands in your EIGRP router configuration.
Step 4 Filter networks received in EIGRP routing updates:
distribute-list acl in [interface if_name]
Example:
You can specify an interface to apply the filter to only those updates that are received by that interface.
Procedure
Step 1 Enter interface configuration mode for the interface on which you are configuring the hello interval or
advertised hold time:
interface phy_if
Example:
ciscoasa(config)# interface inside
Example:
ciscoasa(config)# hello-interval eigrp 2 60
Example:
ciscoasa(config)# hold-time eigrp 2 60
Procedure
Step 1 Create an EIGRP routing process and enter router configuration mode for this EIGRP process:
router eigrp as-num
Example:
ciscoasa(config)# router eigrp 2
The as-num argument is the autonomous system number of the EIGRP routing process.
Step 2 Disable automatic route summarization:
no auto-summary
Example:
ciscoasa(config-router)# no auto-summary
Procedure
Step 1 Create an EIGRP routing process and enter router configuration mode for this EIGRP process:
router eigrp as-num
Example:
ciscoasa(config)# router eigrp 2
The as-num argument is the autonomous system number of the EIGRP routing process.
Step 2 Configure the interfaces and networks that participate in EIGRP routing:
ciscoasa(config-router)# network ip-addr [mask]
Example:
ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
You can configure one or more network statements with this command.
Directly connected and static networks that fall within the defined network are advertised by the ASA.
Additionally, only interfaces with an IP address that fall within the defined network participate in the
EIGRP routing process.
If you have an interface that you do not want to have participate in EIGRP routing, but that is attached
to a network that you want advertised, see Configure Interfaces for EIGRP, page 24-6.
Step 3 Control the sending or receiving of candidate default route information:
no default-information {in | out | WORD}
Example:
ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
ciscoasa(config-router)# no default-information {in | out | WORD}
Note Entering the no default-information in command causes the candidate default route bit to be
blocked on received routes. Entering the no default-information out command disables the
setting of the default route bit in advertised routes.
Procedure
Step 1 Enter interface configuration mode for the interface on which you are changing the delay value used by
EIGRP:
interface phy_if
Example:
ciscoasa(config)# interface phy_if
Example:
ciscoasa(config-if)# no split-horizon eigrp 2
Procedure
Example:
ciscoasa(config)# clear eigrp pid 10 neighbors
Command Purpose
Monitoring EIGRP Routing
router-id Displays the router-id for this EIGRP process.
show eigrp [as-number] events [{start end} Displays the EIGRP event log.
| type]
show eigrp [as-number] interfaces [if-name] Displays the interfaces participating in EIGRP
[detail] routing.
show eigrp [as-number] neighbors [detail | Displays the EIGRP neighbor table.
static] [if-name]
show eigrp [as-number] topology [ip-addr Displays the EIGRP topology table.
[mask] | active | all-links | pending |
summary | zero-successors]
show eigrp [as-number] traffic Displays EIGRP traffic statistics.
show mfib cluster Displays MFIB information in terms of
forwarding entries and interfaces.
show route cluster Displays additional route synchronization details
for clustering.
Disabling EIGRP Logging Messages
no eigrp log-neighbor-changes Disables the logging of neighbor change
messages. Enter this command in router
configuration mode for the EIGRP routing
process.
no eigrp log-neighbor-warnings Disables the logging of neighbor warning
messages.
Note By default, neighbor change and neighbor warning messages are logged.
Step 2 To configure an interface from sending or receiving EIGRP routing messages, enter the following
command:
ciscoasa(config-router)# passive-interface {default}
Step 4 To configure the interfaces and networks that participate in EIGRP routing, enter the following
command:
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
Step 5 To change the interface delay value used in EIGRP distance calculations, enter the following commands:
ciscoasa(config-router)# exit
ciscoasa(config)# interface phy_if
ciscoasa(config-if)# delay 200
Platform
Feature Name Releases Feature Information
EIGRP Support 7.0(1) Support was added for routing data, performing
authentication, and redistributing and monitoring routing
information using the Enhanced Interior Gateway Routing
Protocol (EIGRP).
We introduced the following command: route eigrp.
Dynamic Routing in Multiple Context Mode 9.0(1) EIGRP routing is supported in multiple context mode.
This chapter describes how to configure the Cisco ASA to use the multicast routing protocol.
• About Multicast Routing, page 25-1
• Guidelines for Multicast Routing, page 25-3
• Enable Multicast Routing, page 25-3
• Customize Multicast Routing, page 25-4
• Example for Multicast Routing, page 25-15
• History for Multicast Routing, page 25-16
Note The UDP and non-UDP transports are both supported for multicast routing. However, the non-UDP
transport has no FastPath optimization.
Note If the ASA is the PIM Rendezvous Point, use the untranslated outside address of the ASA as the
Rendezvous Point address.
Multicast Addresses
Multicast addresses specify an arbitrary group of IP hosts that have joined the group and want to receive
traffic sent to this group.
Clustering
Multicast routing supports clustering. In Layer 2 clustering, the master unit sends all multicast routing
packets and data packets until fast-path forwarding is established. After fast-path forwarding is
established, slave units may forward multicast data packets. All data flows are full flows. Stub
forwarding flows are also supported. Because only one unit receives multicast packets in Layer 2
clustering, redirection to the master unit is common. In Layer 3 clustering, units do not act
independently. All data and routing packets are processed and forwarded by the master unit. Slave units
drop all packets that have been sent.
For more information about clustering, see Chapter 8, “ASA Cluster.”
IPv6 Guidelines
Does not support IPv6.
Additional Guidelines
In clustering, for IGMP and PIM, this feature is only supported on the master unit.
Note Only the UDP transport layer is supported for multicast routing.
Procedure
Example:
ciscoasa(config)# multicast-routing
The number of entries in the multicast routing tables are limited by the amount of RAM on the ASA.
Table 25-1 lists the maximum number of entries for specific multicast tables based on the amount of
RAM on the ASA. Once these limits are reached, any new entries are discarded.
Note Stub multicast routing and PIM are not supported concurrently.
An ASA acting as the gateway to the stub area does not need to participate in PIM. Instead, you can
configure it to act as an IGMP proxy agent and forward IGMP messages from hosts connected on one
interface to an upstream multicast router on another interface. To configure the ASA as an IGMP proxy
agent, forward the host join and leave messages from the stub area interface to an upstream interface.
Procedure
Example:
ciscoasa(config-if)# igmp forward interface interface1
Procedure
Example:
ciscoasa(config)# mroute src_ip src_mask {input_if_name | rpf_neighbor} [distance]
Example:
ciscoasa(config)# mroute src_ip src_mask input_if_name [dense output_if_name] [distance]
The dense output_if_name keyword and argument pair is only supported for stub multicast routing.
Note Only the no igmp command appears in the interface configuration when you use the show run
command. If the multicast-routing command appears in the device configuration, then IGMP is
automatically enabled on all interfaces.
This section describes how to configure optional IGMP setting on a per-interface basis.
• Disable IGMP on an Interface, page 25-6
• Configure IGMP Group Membership, page 25-6
• Configure a Statically Joined IGMP Group, page 25-7
• Control Access to Multicast Groups, page 25-7
• Limit the Number of IGMP States on an Interface, page 25-8
• Modify the Query Messages to Multicast Groups, page 25-9
• Change the IGMP Version, page 25-10
Procedure
Example:
ciscoasa(config-if)# no igmp
Note If you want to forward multicast packets for a specific group to an interface without the ASA accepting
those packets as part of the group, see Configure a Statically Joined IGMP Group, page 25-7.
Procedure
Example:
ciscoasa(config-if)# igmp join-group mcast-group
Procedure:
Example:
ciscoasa(config-if)# igmp static-group group-address
Procedure
Example:
ciscoasa(config)# access-list acl1 standard permit 192.52.662.25
You can create more than one entry for a single ACL. You can use extended or standard ACLs.
The ip_addr mask argument is the IP address of the multicast group being permitted or denied.
Step 2 Create an extended ACL:’
access-list name extended [permit | deny] protocol src_ip_addr src_mask dst_ip_addr
dst_mask
Example:
ciscoasa(config)# access-list acl2 extended permit protocol src_ip_addr src_mask
dst_ip_addr dst_mask
The dst_ip_addr argument is the IP address of the multicast group being permitted or denied.
Step 3 Apply the ACL to an interface:
igmp access-group acl
Example:
ciscoasa(config-if)# igmp access-group acl
Procedure:
Example:
ciscoasa(config-if)# igmp limit 50
Valid values range from 0 to 500, with 500 being the default value.
Setting this value to 0 prevents learned groups from being added, but manually defined memberships
(using the igmp join-group and igmp static-group commands) are still permitted. The no form of this
command restores the default value.
Note The igmp query-timeout and igmp query-interval commands require IGMP Version 2.
To change the query interval, query response time, and query timeout value, perform the following steps:
Procedure
Example:
ciscoasa(config-if)# igmp query-interval 30
Valid values range from 0 to 500; 125 is the default value.
If the ASA does not hear a query message on an interface for the specified timeout value (by default, 255
seconds), then the ASA becomes the designated router and starts sending the query messages.
Step 2 Change the timeout value of the query:
igmp query-timeout seconds
Example:
ciscoasa(config-if)# igmp query-timeout 30
Example:
ciscoasa(config-if)# igmp query-max-response-time 30
Step 4
Procedure
Step 1 Control the version of IGMP that you want to run on the interface:
igmp version {1 | 2}
Example:
ciscoasa(config-if)# igmp version 2
Note PIM is not supported with PAT. The PIM protocol does not use ports, and PAT only works with protocols
that use ports.
Procedure
pim
Example:
ciscoasa(config-if)# pim
Step 2 Disable PIM on a specific interface:
no pim
Example:
ciscoasa(config-if)# no pim
Note The ASA does not support Auto-RP or PIM BSR. You must use the pim rp-address command to specify
the RP address.
You can configure the ASA to serve as RP to more than one group. The group range specified in the ACL
determines the PIM RP group mapping. If an ACL is not specified, then the RP for the group is applied
to the entire multicast group range (224.0.0.0/4).
To configure the address of the PIM PR perform the following steps.
Procedure
The ip_address argument is the unicast IP address of the router assigned to be a PIM RP.
The acl argument is the name or number of a standard ACL that defines with which multicast groups the
RP should be used. Do not use a host ACL with this command.
Excluding the bidir keyword causes the groups to operate in PIM sparse mode.
Note The ASA always advertises the bidirectional capability in the PIM hello messages, regardless of the
actual bidirectional configuration.
Procedure
Example:
ciscoasa(config-if)# pim dr-priority 500
Procedure
Example:
ciscoasa(config)# pim accept-register {list acl1 | route-map map2}
In the example, the ASA filters PIM register messages acl1 and route map map2.
Procedure
Example:
ciscoasa(config-if)# pim hello-interval 60
Valid values for the seconds argument range from 1 to 3600 seconds.
Step 2 Change the amount of time (in seconds) that the ASA sends PIM join or prune messages:
pim join-prune-interval seconds
Example:
ciscoasa(config-if)# pim join-prune-interval 60
Valid values for the seconds argument range from 10 to 600 seconds.
Procedure
Step 1 Use a standard ACL to define the routers that you want to have participate in PIM:
access-list pim_nbr deny router-IP_addr PIM neighbor
Example:
ciscoasa(config)# access-list pim_nbr deny 10.1.1.1 255.255.255.255
In the example, the following ACL, when used with the pim neighbor-filter command, prevents the
10.1.1.1 router from becoming a PIM neighbor.
Step 2 Filter neighbor routers:
pim neighbor-filter pim_nbr
Example:
ciscoasa(config)# interface GigabitEthernet0/3
ciscoasa(config-if)# pim neighbor-filter pim_nbr
In the example, the 10.1.1.1 router is prevented from becoming a PIM neighbor on interface
GigabitEthernet0/3.
Procedure
Step 1 Use a standard ACL to define the routers that you want to have participate in PIM:
access-list pim_nbr deny router-IP_addr PIM neighbor
Example:
ciscoasa(config)# access-list pim_nbr deny 10.1.1.1 255.255.255.255
In the example, the following ACL, when used with the pim neighbor-filter command, prevents the
10.1.1.1 router from becoming a PIM neighbor.
Step 2 Filter neighbor routers:
pim bidirectional-neighbor-filter pim_nbr
Example:
ciscoasa(config)# interface GigabitEthernet0/3
ciscoasa(config-if)# pim bidirectional neighbor-filter pim_nbr
In the example, the 10.1.1.1 router is prevented from becoming a PIM bidirectional neighbor on interface
GigabitEthernet0/3.
Procedure
Example:
ciscoasa(config-if)# multicast boundary acl1 [filter-autorp]
Platform
Feature Name Releases Feature Information
Multicast routing support 7.0(1) Support was added for multicast routing data,
authentication, and redistribution and monitoring of routing
information using the multicast routing protocol.
We introduced the multicast-routing command.
If the duplicate address is the link-local address of the interface, the processing of IPv6 packets is
disabled on the interface. If the duplicate address is a global address, the address is not used. However,
all configuration commands associated with the duplicate address remain as configured while the state
of the address is set to DUPLICATE.
If the link-local address for an interface changes, Duplicate Address Detection is performed on the new
link-local address and all of the other IPv6 address associated with the interface are regenerated
(Duplicate Address Detection is performed only on the new link-local address).
The ASA uses neighbor solicitation messages to perform Duplicate Address Detection. By default, the
number of times an interface performs Duplicate Address Detection is 1.
• Setting the value to a non-zero value indicates that the ASA should be considered a default router
on this interface. The non-zero value for the router lifetime value should not be less than the router
advertisement interval.
The following guidelines and limitations apply for configuring a static IPv6 neighbor:
• The ipv6 neighbor command is similar to the arp command. If an entry for the specified IPv6
address already exists in the neighbor discovery cache—learned through the IPv6 neighbor
discovery process—the entry is automatically converted to a static entry. These entries are stored in
the configuration when the copy command is used to store the configuration.
• Use the show ipv6 neighbor command to view static entries in the IPv6 neighbor discovery cache.
• The clear ipv6 neighbor command deletes all entries in the IPv6 neighbor discovery cache except
static entries. The no ipv6 neighbor command deletes a specified static entry from the neighbor
discovery cache; the command does not remove dynamic entries—entries learned from the IPv6
neighbor discovery process—from the cache. Disabling IPv6 on an interface by using the no ipv6
enable command deletes all IPv6 neighbor discovery cache entries configured for that interface
except static entries (the state of the entry changes to INCMP [Incomplete]).
• Static entries in the IPv6 neighbor discovery cache are not modified by the neighbor discovery
process.
• The clear ipv6 neighbor command does not remove static entries from the IPv6 neighbor discovery
cache; it only clears the dynamic entries.
• The ICMP syslogs generated are caused by a regular refresh of IPv6 neighbor entries. The ASA
default timer for IPv6 neighbor entry is 30 seconds, so the ASA would generate ICMPv6 neighbor
discovery and response packets about every 30 seconds. If the ASA has both failover LAN and state
interfaces configured with IPv6 addresses, then every 30 seconds, ICMPv6 neighbor discovery and
response packets will be generated by both ASAs for both configured and link-local IPv6 addresses.
In addition, each packet will generate several syslogs (ICMP connection and local-host creation or
teardown), so it may appear that constant ICMP syslogs are being generated. The refresh time for
IPV6 neighbor entry is configurable on the regular data interface, but not configurable on the
failover interface. However, the CPU impact for this ICMP neighbor discovery traffic is minimal.
Parameters Default
value for the neighbor solicitation transmission 1000 seconds between neighbor solicitation
message interval transmissions.
value for the neighbor reachable time The default is 0.
value for the router advertisement transmission The default is 200 seconds.
interval
value for the router lifetime The default is 1800 seconds.
value for the number of consecutive neighbor The default is one message.
solicitation messages sent during DAD
Parameters Default
prefix lifetime The default lifetime is 2592000 seconds (30 days),
and a preferred lifetime is 604800 seconds (7
days).
on-link flag The flag is on by default, which means that the
prefix is used on the advertising interface.
autoconfig flag The flag is on by default, which means that the
prefix is used for autoconfiguration.
static IPv6 neighbor Static entries are not configured in the IPv6
neighbor discovery cache.
Procedure
Example:
hostname(config)# interface gigabitethernet 0/0
Procedure
Step 1 Set the interval between IPv6 neighbor solicitation retransmissions on an interface:
ipv6 nd ns-interval value
Example:
hostname (config)# interface gigabitethernet 0/0
hostname (config-if)# ipv6 nd ns-interval 9000
Valid values for the value argument range from 1000 to 3600000 milliseconds.
This information is also sent in router advertisement messages.
Procedure
Step 1 Set the amount of time that a remote IPv6 node is reachable:
ipv6 nd reachable-time value
Example:
hostname (config)# interface gigabitethernet 0/0
hostname (config-if)# ipv6 nd reachable-time 1700000
Valid values for the value argument range from 0 to 3600000 milliseconds.
When 0 is used for the value, the reachable time is sent as undetermined. It is up to the receiving devices
to set and track the reachable time value.
Procedure
Example:
hostname (config)# interface gigabitethernet 0/0
hostname (config-if)# ipv6 nd ra-interval 201
The optional msec keyword indicates that the value provided is in milliseconds. If this keyword is not
present, the value provided is in seconds.
Valid values for the value argument range from 3 to 1800 seconds or from 500 to 1800000 milliseconds
if the msec keyword is provided.
The interval between transmissions should be less than or equal to the IPv6 router advertisement lifetime
if the ASA is configured as a default router. For more information, see Configure the Router Lifetime
Value, page 26-8. To prevent synchronization with other IPv6 nodes, randomly adjust the actual value
used to within 20 percent of the desired value.
Procedure
Step 1 Specify the length of time that nodes on the local link should consider the ASA as the default router on
the link:
ipv6 nd ra-lifetime [msec] value
Example:
hostname (config)# interface gigabitethernet 0/0
hostname (config-if)# ipv6 nd ra-lifetime 2000
• The optional msec keyword indicates that the value provided is in milliseconds. If this keyword is
not present, the value provided is in seconds.
• Valid values for the value argument range from 0 to 9000 seconds.
• Entering 0 indicates that the ASA should not be considered a default router on the selected interface.
Procedure
Step 1 Specify the uniqueness of new unicast IPv6 addresses before they are assigned and ensure that duplicate
IPv6 addresses are detected in the network on a link basis:
ipv6 nd dad attempts value
Example:
hostname (config)# interface gigabitethernet 0/0
hostname (config-if)# ipv6 nd dad attempts 20
Valid values for the value argument range from 0 to 600. A zero value disables DAD processing on the
specified interface.
Procedure
Example:
hostname (config)# interface gigabitethernet 0/0
hostname (config-if)# ipv6 nd suppress-ra 900
The seconds argument specifies the validity of the ASA as a default router on this interface. Valid values
range from 0 to 9000 seconds.
A zero indicates that the ASA should not be considered a default router on the specified interface.
Note Entering this command causes the ASA to appear as a regular IPv6 neighbor on the link and not as an
IPv6 router.
Procedure
Step 1 Set the Managed Address Config flag in the IPv6 router advertisement packet:
ipv6 nd managed-config-flag
Example:
hostname (config-if)# ipv6 nd managed-config-flag
This flag informs IPv6 autoconfiguration clients that they should use DHCPv6 to obtain addresses, in
addition to the derived stateless autoconfiguration address.
Step 2 Set the Other Address Config flag in the IPv6 router advertisement packet:
ipv6 nd other-config-flag
Example:
hostname (config-if)# ipv6 nd other-config-flag
This flag informs IPv6 autoconfiguration clients that they should use DHCPv6 to obtain additional
information from DHCPv6, such as the DNS server address.
Procedure
Step 1 Configure which IPv6 prefixes are included in IPv6 router advertisements:
ipv6 nd prefix ipv6-prefix/prefix-length | default [[valid-lifetime preferred-lifetime] |
[at valid-date preferred-date] | infinite | no-advertise | off-link | no-autoconfig]
Example:
hostname (config)# interface gigabitethernet 0/0
hostname (config-if)# ipv6 nd prefix 2001:DB8::/32 1000 900
• The prefix advertisement can be used by neighboring devices to autoconfigure their interface
addresses. Stateless autoconfiguration uses IPv6 prefixes provided in router advertisement messages
to create the global unicast address from the link-local address.
• The at valid-date preferred-date syntax indicates the date and time at which the lifetime and
preference expire. The prefix is valid until this specified date and time are reached.
Procedure
Example:
hostname(config-if)# ipv6 neighbor 3001:1::45A inside 002.7D1A.9472
The ipv6_address argument is the link-local IPv6 address of the neighbor, the if_name argument is the
interface through which the neighbor is available, and the mac_address argument is the MAC address of
the neighbor interface.
Command Purpose
show ipv6 interface Displays the usability status of interfaces configured for IPv6. Including
the interface name, such as “outside” and displays the settings for the
specified interface. Excludes the name from the command and displays
the settings for all interfaces that have IPv6 enabled on them. Output for
the command shows the following:
• The name and status of the interface.
• The link-local and global unicast addresses.
• The multicast groups to which the interface belongs.
• ICMP redirect and error message settings.
• Neighbor discovery settings.
• The actual time when the command is set to 0.
• The neighbor discovery reachable time that is being used.
This chapter describes authentication, authorization, and accounting (AAA, pronounced “triple A”).
AAA is a a set of services for controlling access to computer resources, enforcing policies, assessing
usage, and providing the information necessary to bill for services. These processes are considered
important for effective network management and security.
• Authentication, page 27-1
• Authorization, page 27-2
• Accounting, page 27-2
• Interaction Between Authentication, Authorization, and Accounting, page 27-2
• AAA Servers, page 27-2
• AAA Server Groups, page 27-2
• Local Database Support, page 27-2
Authentication
Authentication provides a way to identify a user, typically by having the user enter a valid username and
valid password before access is granted. The AAA server compares a user's authentication credentials
with other user credentials stored in a database. If the credentials match, the user is permitted access to
the network. If the credentials do not match, authentication fails and network access is denied.
You can configure the Cisco ASA to authenticate the following items:
• All administrative connections to the ASA, including the following sessions:
– Telnet
– SSH
– Serial console
– ASDM using HTTPS
– VPN management access
• The enable command
• Network access
• VPN access
Authorization
Authorization is the process of enforcing policies: determining what types of activities, resources, or
services a user is permitted to access. After a user is authenticated, that user may be authorized for
different types of access or activity.
You can configure the ASA to authorize the following items:
• Management commands
• Network access
• VPN access
Accounting
Accounting measures the resources a user consumes during access, which may include the amount of
system time or the amount of data that a user has sent or received during a session. Accounting is carried
out through the logging of session statistics and usage information, which is used for authorization
control, billing, trend analysis, resource utilization, and capacity planning activities.
AAA Servers
The AAA server is a network server that is used for access control. Authentication identifies the user.
Authorization implements policies that determine which resources and services an authenticated user
may access. Accounting keeps track of time and data resources that are used for billing and analysis.
Note You cannot use the local database for network access authorization.
Fallback Support
The local database can act as a fallback method for several functions. This behavior is designed to help
you prevent accidental lockout from the ASA.
When a user logs in, the servers in the group are accessed one at a time, starting with the first server that
you specify in the configuration, until a server responds. If all servers in the group are unavailable, the
ASA tries the local database if you have configured it as a fallback method (for management
authentication and authorization only). If you do not have a fallback method, the ASA continues to try
the AAA servers.
For users who need fallback support, we recommend that their usernames and passwords in the local
database match their usernames and passwords on the AAA servers. This practice provides transparent
fallback support. Because the user cannot determine whether a AAA server or the local database is
providing the service, using usernames and passwords on AAA servers that are different than the
usernames and passwords in the local database means that the user cannot be certain which username
and password should be given.
The local database supports the following fallback functions:
• Console and enable password authentication—If the servers in the group are all unavailable, the
ASA uses the local database to authenticate administrative access, which can also include enable
password authentication.
• Command authorization—If the TACACS+ servers in the group are all unavailable, the local
database is used to authorize commands based on privilege levels.
• VPN authentication and authorization—VPN authentication and authorization are supported to
enable remote access to the ASA if AAA servers that normally support these VPN services are
unavailable. When a VPN client of an administrator specifies a tunnel group configured to fallback
to the local database, the VPN tunnel can be established even if the AAA server group is unavailable,
provided that the local database is configured with the necessary attributes.
Related Topics
Recover from a Lockout, page 35-25
Procedure
Example:
ciscoasa(config)# username exampleuser1 privilege 1
The username username keyword is a string from 3 to 64 characters long, using any combination of
ASCII printable characters with the exception of spaces and the question mark. The password password
keyword is a string from 3 to 32 characters long. The privilege priv_level keyword sets the privilege
level, which ranges from 0 to 15. The default is 2. This privilege level is used with command
authorization.
Caution If you do not use command authorization (the aaa authorization console LOCAL command), then the
default level 2 allows management access to privileged EXEC mode. If you want to limit access to
privileged EXEC mode, either set the privilege level to 0 or 1, or use the service-type command.
The nopassword keyword creates a user account with no password. The encrypted keyword indicates
that the password is encrypted. When you define a password in the username command, the ASA
encrypts it when it saves it to the configuration for security purposes. When you enter the show
running-config command, the username command does not show the actual password; it shows the
encrypted password followed by the encrypted keyword. For example, if you enter the password “test,”
the show running-config output would appear as something similar to the following:
username user1 password DLaUiAX3l78qgoB5c7iVNw== encrypted
The only time you would actually enter the encrypted keyword at the CLI is if you are cutting and
pasting a configuration file for use in another ASA, and you are using the same password.
Step 2 (Optional) Configure username attributes.
username username attributes
Example:
ciscoasa(config)# username exampleuser1 attributes
The username argument is the username that you created in the first step.
By default, VPN users that you add with this command have no attributes or group policy association.
You must configure all values explicitly using the username attributes command. See the VPN
configuration guide for more information.
Step 3 (Optional) Configure the user level if you configured management authorization using the aaa
authorization exec command.
service-type {admin | nas-prompt | remote-access}
Example:
ciscoasa(config-username)# service-type admin
The admin keyword allows full access to any services specified by the aaa authentication console
LOCAL commands. The admin keyword is the default.
The nas-prompt keyword allows access to the CLI when you configure the aaa authentication {telnet
| ssh | serial} console command, but denies ASDM configuration access if you configure the aaa
authentication http console command. ASDM monitoring access is allowed. If you enable
authentication with the aaa authentication enable console command, the user cannot access privileged
EXEC mode using the enable command (or the login command).
The remote-access keyword denies management access. You cannot use any services specified by the
aaa authentication console commands (excluding the serial keyword; serial access is allowed).
Step 4 Enable public key authentication for SSH connections to the ASA on a per-user basis.
ssh authentication {pkf | publickey key [hashed]}
Example:
ciscoasa(config-username)# ssh authentication pkf
You can specify a public key file (PKF) formatted key (the pkf keyword) or a Base64 key (the publickey
keyword). For a publickey, the key is a Base64-encoded public key. You can generate the key using any
SSH key generation software (such as ssh keygen) that can generate SSH-RSA raw keys (with no
certificates).
For a pkf key, you are prompted to paste in a PKF formatted key, up to 4096 bits. Use this format for
keys that are too large to paste inline in Base64 format. For example, you can generate a 4096-bit key
using ssh keygen, then convert it to PKF, and use the pkf keyword to be prompted for the key.
Note You can use the pkf option with failover, but the PKF key is not automatically replicated to the
standby system. You must enter the write standby command to synchronize the PKF key.
When you view the key on the ASA using the show running-config username command, the key is
encrypted using a SHA-256 hash. Even if you entered the key as pkf, the ASA hashes the key, and shows
it as a hashed publickey. If you need to copy the key from show output, specify the publickey type with
the hashed keyword.
Step 5 (Optional) If you are using this username for VPN authentication, you can configure many VPN
attributes for the user. See the VPN configuration guide for more information.
Examples
The following example assigns a privilege level of 15 to the admin user account:
ciscoasa(config)# username admin password password privilege 15
The following example enables management authorization, creates a user account with a password,
enters username configuration mode, and specifies a service-type of nas-prompt:
ciscoasa(config)# aaa authorization exec authentication-server
ciscoasa(config)# username user1 password gOgeOus
ciscoasa(config)# username user1 attributes
ciscoasa(config-username)# service-type nas-prompt
Procedure
Step 1 Generate the ssh-rsa public and private keys for 4096 bits on your computer:
jcrichton-mac:~ john$ ssh-keygen -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/john/.ssh/id_rsa):
/Users/john/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): pa$$phrase
Enter same passphrase again: pa$$phrase
Your identification has been saved in /Users/john/.ssh/id_rsa.
Your public key has been saved in /Users/john/.ssh/id_rsa.pub.
The key fingerprint is:
c0:0a:a2:3c:99:fc:00:62:f1:ee:fa:f8:ef:70:c1:f9 john@jcrichton-mac
The key's randomart image is:
+--[ RSA 4096]----+
| . |
| o . |
|+... o |
|B.+..... |
|.B ..+ S |
| = o |
| + . E |
| o o |
| ooooo |
+-----------------+
The following dialog box appears for you to enter your passphrase:
Platform
Feature Name Releases Description
Local database configuration for AAA 7.0(1) Describes how to configure the local database for AAA use.
We introduced the following commands:
username, aaa authorization exec authentication-server,
aaa authentication console LOCAL, aaa authorization
exec LOCAL, service-type, aaa authentication {telnet |
ssh | serial} console LOCAL, aaa authentication http
console LOCAL, aaa authentication enable console
LOCAL, show running-config aaa-server, show
aaa-server, clear configure aaa-server, clear aaa-server
statistics.
Support for SSH public key authentication 9.1(2) You can now enable public key authentication for SSH
connections to the ASA on a per-user basis. You can specify
a public key file (PKF) formatted key or a Base64 key. The
PKF key can be up to 4096 bits. Use PKF format for keys
that are too large to for the ASA support of the Base64
format (up to 2048 bits).
We introduced the following commands: ssh
authentication.
Also available in 8.4(4.1); PKF key format support is only
in 9.1(2).
Note To enable MS-CHAPv2 as the protocol used between the ASA and the RADIUS server for a VPN
connection, password management must be enabled in the tunnel group general attributes. Enabling
password management generates an MS-CHAPv2 authentication request from the ASA to the RADIUS
server. See the description of the password-management command for details.
If you use double authentication and enable password management in the tunnel group, then the primary
and secondary authentication requests include MS-CHAPv2 request attributes. If a RADIUS server does
not support MS-CHAPv2, then you can configure that server to send a non-MS-CHAPv2 authentication
request by using the no mschapv2-capable command.
Note RADIUS attribute names do not contain the cVPN3000 prefix. Cisco Secure ACS 4.x supports this new
nomenclature, but attribute names in pre-4.0 ACS releases still include the cVPN3000 prefix. The ASAs
enforce the RADIUS attributes based on attribute numeric ID, not attribute name.
All attributes listed in Table 29-1 are downstream attributes that are sent from the RADIUS server to the
ASA except for the following attribute numbers: 146, 150, 151, and 152. These attribute numbers are
upstream attributes that are sent from the ASA to the RADIUS server. RADIUS attributes 146 and 150
are sent from the ASA to the RADIUS server for authentication and authorization requests. All four
previously listed attributes are sent from the ASA to the RADIUS server for accounting start,
interim-update, and stop requests. Upstream RADIUS attributes 146, 150, 151, and 152 were introduced
in Version 8.4(3).
Cisco ACS 5.x and Cisco ISE do not support IPv6 framed IP addresses for IP address assignment using
RADIUS authentication in Version 9.0(1).
Single
or
Attr. Syntax/ Multi-
Attribute Name ASA No. Type Valued Description or Value
Access-Hours Y 1 String Single Name of the time range, for example,
Business-hours
Access-List-Inbound Y 86 String Single ACL ID
Access-List-Outbound Y 87 String Single ACL ID
Address-Pools Y 217 String Single Name of IP local pool
Allow-Network-Extension-Mode Y 64 Boolean Single 0 = Disabled
1 = Enabled
Authenticated-User-Idle-Timeout Y 50 Integer Single 1-35791394 minutes
Authorization-DN-Field Y 67 String Single Possible values: UID, OU, O, CN, L, SP, C,
EA, T, N, GN, SN, I, GENQ, DNQ, SER,
use-entire-name
Authorization-Required 66 Integer Single 0 = No
1 = Yes
Authorization-Type Y 65 Integer Single 0 = None
1 = RADIUS
2 = LDAP
Banner1 Y 15 String Single Banner string to display for Cisco VPN
remote access sessions: IPsec IKEv1,
AnyConnect SSL-TLS/DTLS/IKEv2, and
Clientless SSL
Banner2 Y 36 String Single Banner string to display for Cisco VPN
remote access sessions: IPsec IKEv1,
AnyConnect SSL-TLS/DTLS/IKEv2, and
Clientless SSL. The Banner2 string is
concatenated to the Banner1 string , if
configured.
Cisco-IP-Phone-Bypass Y 51 Integer Single 0 = Disabled
1 = Enabled
Cisco-LEAP-Bypass Y 75 Integer Single 0 = Disabled
1 = Enabled
Single
or
Attr. Syntax/ Multi-
Attribute Name ASA No. Type Valued Description or Value
Client Type Y 150 Integer Single 1 = Cisco VPN Client (IKEv1)
2 = AnyConnect Client SSL VPN
3 = Clientless SSL VPN
4 = Cut-Through-Proxy
5 = L2TP/IPsec SSL VPN
6 = AnyConnect Client IPsec VPN (IKEv2)
Client-Type-Version-Limiting Y 77 String Single IPsec VPN version number string
DHCP-Network-Scope Y 61 String Single IP Address
Extended-Authentication-On-Rekey Y 122 Integer Single 0 = Disabled
1 = Enabled
Group-Policy Y 25 String Single Sets the group policy for the remote access
VPN session. For Versions 8.2.x and later,
use this attribute instead of
IETF-Radius-Class. You can use one of the
following formats:
• group policy name
• OU=group policy name
• OU=group policy name;
IE-Proxy-Bypass-Local 83 Integer Single 0 = None
1 = Local
IE-Proxy-Exception-List 82 String Single New line (\n) separated list of DNS domains
IE-Proxy-PAC-URL Y 133 String Single PAC address string
IE-Proxy-Server 80 String Single IP address
IE-Proxy-Server-Policy 81 Integer Single 1 = No Modify
2 = No Proxy
3 = Auto detect
4 = Use Concentrator Setting
IKE-KeepAlive-Confidence-Interval Y 68 Integer Single 10-300 seconds
IKE-Keepalive-Retry-Interval Y 84 Integer Single 2-10 seconds
IKE-Keep-Alives Y 41 Boolean Single 0 = Disabled
1 = Enabled
Intercept-DHCP-Configure-Msg Y 62 Boolean Single 0 = Disabled
1 = Enabled
IPsec-Allow-Passwd-Store Y 16 Boolean Single 0 = Disabled
1 = Enabled
Single
or
Attr. Syntax/ Multi-
Attribute Name ASA No. Type Valued Description or Value
IPsec-Authentication 13 Integer Single 0 = None
1 = RADIUS
2 = LDAP (authorization only)
3 = NT Domain
4 = SDI
5 = Internal
6 = RADIUS with Expiry
7 = Kerberos/Active Directory
IPsec-Auth-On-Rekey Y 42 Boolean Single 0 = Disabled
1 = Enabled
IPsec-Backup-Server-List Y 60 String Single Server Addresses (space delimited)
IPsec-Backup-Servers Y 59 String Single 1 = Use Client-Configured list
2 = Disable and clear client list
3 = Use Backup Server list
IPsec-Client-Firewall-Filter-Name 57 String Single Specifies the name of the filter to be pushed
to the client as firewall policy
IPsec-Client-Firewall-Filter-Optional Y 58 Integer Single 0 = Required
1 = Optional
IPsec-Default-Domain Y 28 String Single Specifies the single default domain name to
send to the client (1-255 characters).
IPsec-IKE-Peer-ID-Check Y 40 Integer Single 1 = Required
2 = If supported by peer certificate
3 = Do not check
IPsec-IP-Compression Y 39 Integer Single 0 = Disabled
1 = Enabled
IPsec-Mode-Config Y 31 Boolean Single 0 = Disabled
1 = Enabled
IPsec-Over-UDP Y 34 Boolean Single 0 = Disabled
1 = Enabled
IPsec-Over-UDP-Port Y 35 Integer Single 4001- 49151. The default is 10000.
IPsec-Required-Client-Firewall-Capability Y 56 Integer Single 0 = None
1 = Policy defined by remote FW
Are-You-There (AYT)
2 = Policy pushed CPP
4 = Policy from server
IPsec-Sec-Association 12 String Single Name of the security association
IPsec-Split-DNS-Names Y 29 String Single Specifies the list of secondary domain
names to send to the client (1-255
characters).
Single
or
Attr. Syntax/ Multi-
Attribute Name ASA No. Type Valued Description or Value
IPsec-Split-Tunneling-Policy Y 55 Integer Single 0 = No split tunneling
1 = Split tunneling
2 = Local LAN permitted
IPsec-Split-Tunnel-List Y 27 String Single Specifies the name of the network or ACL
that describes the split tunnel inclusion list.
IPsec-Tunnel-Type Y 30 Integer Single 1 = LAN-to-LAN
2 = Remote access
IPsec-User-Group-Lock 33 Boolean Single 0 = Disabled
1 = Enabled
IPv6-Address-Pools Y 218 String Single Name of IP local pool-IPv6
IPv6-VPN-Filter Y 219 String Single ACL value
L2TP-Encryption 21 Integer Single Bitmap:
1 = Encryption required
2 = 40 bits
4 = 128 bits
8 = Stateless-Req
15= 40/128-Encr/Stateless-Req
L2TP-MPPC-Compression 38 Integer Single 0 = Disabled
1 = Enabled
Member-Of Y 145 String Single Comma-delimited string, for example:
Engineering, Sales
Single
or
Attr. Syntax/ Multi-
Attribute Name ASA No. Type Valued Description or Value
PPTP-MPPC-Compression 37 Integer Single 0 = Disabled
1 = Enabled
Primary-DNS Y 5 String Single An IP address
Primary-WINS Y 7 String Single An IP address
Privilege-Level Y 220 Integer Single An integer between 0 and 15.
Required-Client- Firewall-Vendor-Code Y 45 Integer Single 1 = Cisco Systems (with Cisco Integrated
Client)
2 = Zone Labs
3 = NetworkICE
4 = Sygate
5 = Cisco Systems (with Cisco Intrusion
Prevention Security Agent)
Required-Client-Firewall-Description Y 47 String Single String
Required-Client-Firewall-Product-Code Y 46 Integer Single Cisco Systems Products:
1 = Cisco Intrusion Prevention Security
Agent or Cisco Integrated Client (CIC)
Zone Labs Products:
1 = Zone Alarm
2 = Zone AlarmPro
3 = Zone Labs Integrity
NetworkICE Product:
1 = BlackIce Defender/Agent
Sygate Products:
1 = Personal Firewall
2 = Personal Firewall Pro
3 = Security Agent
Required-Individual-User-Auth Y 49 Integer Single 0 = Disabled
1 = Enabled
Require-HW-Client-Auth Y 48 Boolean Single 0 = Disabled
1 = Enabled
Secondary-DNS Y 6 String Single An IP address
Secondary-WINS Y 8 String Single An IP address
SEP-Card-Assignment 9 Integer Single Not used
Session Subtype Y 152 Integer Single 0 = None
1 = Clientless
2 = Client
3 = Client Only
Session Subtype applies only when the
Session Type (151) attribute has the
following values: 1, 2, 3, and 4.
Single
or
Attr. Syntax/ Multi-
Attribute Name ASA No. Type Valued Description or Value
Session Type Y 151 Integer Single 0 = None
1 = AnyConnect Client SSL VPN
2 = AnyConnect Client IPSec VPN (IKEv2)
3 = Clientless SSL VPN
4 = Clientless Email Proxy
5 = Cisco VPN Client (IKEv1)
6 = IKEv1 LAN-LAN
7 = IKEv2 LAN-LAN
8 = VPN Load Balancing
Simultaneous-Logins Y 2 Integer Single 0-2147483647
Smart-Tunnel Y 136 String Single Name of a Smart Tunnel
Smart-Tunnel-Auto Y 138 Integer Single 0 = Disabled
1 = Enabled
2 = AutoStart
Smart-Tunnel-Auto-Signon-Enable Y 139 String Single Name of a Smart Tunnel Auto Signon list
appended by the domain name
Strip-Realm Y 135 Boolean Single 0 = Disabled
1 = Enabled
SVC-Ask Y 131 String Single 0 = Disabled
1 = Enabled
3 = Enable default service
5 = Enable default clientless
(2 and 4 not used)
SVC-Ask-Timeout Y 132 Integer Single 5-120 seconds
SVC-DPD-Interval-Client Y 108 Integer Single 0 = Off
5-3600 seconds
SVC-DPD-Interval-Gateway Y 109 Integer Single 0 = Off)
5-3600 seconds
SVC-DTLS Y 123 Integer Single 0 = False
1 = True
SVC-Keepalive Y 107 Integer Single 0 = Off
15-600 seconds
SVC-Modules Y 127 String Single String (name of a module)
SVC-MTU Y 125 Integer Single MTU value
256-1406 in bytes
SVC-Profiles Y 128 String Single String (name of a profile)
SVC-Rekey-Time Y 110 Integer Single 0 = Disabled
1-10080 minutes
Tunnel Group Name Y 146 String Single 1-253 characters
Tunnel-Group-Lock Y 85 String Single Name of the tunnel group or “none”
Single
or
Attr. Syntax/ Multi-
Attribute Name ASA No. Type Valued Description or Value
Tunneling-Protocols Y 11 Integer Single 1 = PPTP
2 = L2TP
4 = IPSec (IKEv1)
8 = L2TP/IPSec
16 = WebVPN
32 = SVC
64 = IPsec (IKEv2)
8 and 4 are mutually exclusive.
0 - 11, 16 - 27, 32 - 43, 48 - 59 are legal
values.
Use-Client-Address 17 Boolean Single 0 = Disabled
1 = Enabled
VLAN Y 140 Integer Single 0-4094
WebVPN-Access-List Y 73 String Single Access-List name
WebVPN ACL Y 73 String Single Name of a WebVPN ACL on the device
WebVPN-ActiveX-Relay Y 137 Integer Single 0 = Disabled
Otherwise = Enabled
WebVPN-Apply-ACL Y 102 Integer Single 0 = Disabled
1 = Enabled
WebVPN-Auto-HTTP-Signon Y 124 String Single Reserved
WebVPN-Citrix-Metaframe-Enable Y 101 Integer Single 0 = Disabled
1 = Enabled
WebVPN-Content-Filter-Parameters Y 69 Integer Single 1 = Java ActiveX
2 = Java Script
4 = Image
8 = Cookies in images
WebVPN-Customization Y 113 String Single Name of the customization
WebVPN-Default-Homepage Y 76 String Single A URL such as http://example-example.com
WebVPN-Deny-Message Y 116 String Single Valid string (up to 500 characters)
WebVPN-Download_Max-Size Y 157 Integer Single 0x7fffffff
WebVPN-File-Access-Enable Y 94 Integer Single 0 = Disabled
1 = Enabled
WebVPN-File-Server-Browsing-Enable Y 96 Integer Single 0 = Disabled
1 = Enabled
WebVPN-File-Server-Entry-Enable Y 95 Integer Single 0 = Disabled
1 = Enabled
WebVPN-Group-based-HTTP/HTTPS-Proxy Y 78 String Single Comma-separated DNS/IP with an optional
-Exception-List wildcard (*) (for example *.cisco.com,
192.168.1.*, wwwin.cisco.com)
Single
or
Attr. Syntax/ Multi-
Attribute Name ASA No. Type Valued Description or Value
WebVPN-Hidden-Shares Y 126 Integer Single 0 = None
1 = Visible
WebVPN-Home-Page-Use-Smart-Tunnel Y 228 Boolean Single Enabled if clientless home page is to be
rendered through Smart Tunnel.
WebVPN-HTML-Filter Y 69 Bitmap Single 1 = Java ActiveX
2 = Scripts
4 = Image
8 = Cookies
WebVPN-HTTP-Compression Y 120 Integer Single 0 = Off
1 = Deflate Compression
WebVPN-HTTP-Proxy-IP-Address Y 74 String Single Comma-separated DNS/IP:port, with http=
or https= prefix (for example
http=10.10.10.10:80,
https=11.11.11.11:443)
WebVPN-Idle-Timeout-Alert-Interval Y 148 Integer Single 0-30. 0 = Disabled.
WebVPN-Keepalive-Ignore Y 121 Integer Single 0-900
WebVPN-Macro-Substitution Y 223 String Single Unbounded. For examples, see the SSL VPN
Deployment Guide at the following URL:
http://www.cisco.com/en/US/docs/security/
asa/asa80/asdm60/ssl_vpn_deployment_gui
de/deploy.html
WebVPN-Macro-Substitution Y 224 String Single Unbounded. For examples, see the SSL VPN
Deployment Guide at the following URL:
http://www.cisco.com/en/US/docs/security/
asa/asa80/asdm60/ssl_vpn_deployment_gui
de/deploy.html
WebVPN-Port-Forwarding-Enable Y 97 Integer Single 0 = Disabled
1 = Enabled
WebVPN-Port-Forwarding-Exchange-Proxy- Y 98 Integer Single 0 = Disabled
Enable 1 = Enabled
WebVPN-Port-Forwarding-HTTP-Proxy Y 99 Integer Single 0 = Disabled
1 = Enabled
WebVPN-Port-Forwarding-List Y 72 String Single Port forwarding list name
WebVPN-Port-Forwarding-Name Y 79 String Single String name (example, “Corporate-Apps”).
This text replaces the default string,
“Application Access,” on the clientless
portal home page.
WebVPN-Post-Max-Size Y 159 Integer Single 0x7fffffff
WebVPN-Session-Timeout-Alert-Interval Y 149 Integer Single 0-30. 0 = Disabled.
Single
or
Attr. Syntax/ Multi-
Attribute Name ASA No. Type Valued Description or Value
WebVPN Smart-Card-Removal-Disconnect Y 225 Boolean Single 0 = Disabled
1 = Enabled
WebVPN-Smart-Tunnel Y 136 String Single Name of a Smart Tunnel
WebVPN-Smart-Tunnel-Auto-Sign-On Y 139 String Single Name of a Smart Tunnel auto sign-on list
appended by the domain name
WebVPN-Smart-Tunnel-Auto-Start Y 138 Integer Single 0 = Disabled
1 = Enabled
2 = Auto Start
WebVPN-Smart-Tunnel-Tunnel-Policy Y 227 String Single One of “e networkname,” “i networkname,”
or “a,” where networkname is the name of a
Smart Tunnel network list, e indicates the
tunnel excluded, i indicates the tunnel
specified, and a indicates all tunnels.
WebVPN-SSL-VPN-Client-Enable Y 103 Integer Single 0 = Disabled
1 = Enabled
WebVPN-SSL-VPN-Client-Keep- Y 105 Integer Single 0 = Disabled
Installation 1 = Enabled
WebVPN-SSL-VPN-Client-Required Y 104 Integer Single 0 = Disabled
1 = Enabled
WebVPN-SSO-Server-Name Y 114 String Single Valid string
WebVPN-Storage-Key Y 162 String Single
WebVPN-Storage-Objects Y 161 String Single
WebVPN-SVC-Keepalive-Frequency Y 107 Integer Single 15-600 seconds, 0=Off
WebVPN-SVC-Client-DPD-Frequency Y 108 Integer Single 5-3600 seconds, 0=Off
WebVPN-SVC-DTLS-Enable Y 123 Integer Single 0 = Disabled
1 = Enabled
WebVPN-SVC-DTLS-MTU Y 125 Integer Single MTU value is from 256-1406 bytes.
WebVPN-SVC-Gateway-DPD-Frequency Y 109 Integer Single 5-3600 seconds, 0=Off
WebVPN-SVC-Rekey-Time Y 110 Integer Single 4-10080 minutes, 0=Off
WebVPN-SVC-Rekey-Method Y 111 Integer Single 0 (Off), 1 (SSL), 2 (New Tunnel)
WebVPN-SVC-Compression Y 112 Integer Single 0 (Off), 1 (Deflate Compression)
WebVPN-UNIX-Group-ID (GID) Y 222 Integer Single Valid UNIX group IDs
WebVPN-UNIX-User-ID (UIDs) Y 221 Integer Single Valid UNIX user IDs
WebVPN-Upload-Max-Size Y 158 Integer Single 0x7fffffff
WebVPN-URL-Entry-Enable Y 93 Integer Single 0 = Disabled
1 = Enabled
WebVPN-URL-List Y 71 String Single URL list name
Single
or
Attr. Syntax/ Multi-
Attribute Name ASA No. Type Valued Description or Value
WebVPN-User-Storage Y 160 String Single
WebVPN-VDI Y 163 String Single List of settings
Single or
Attr. Syntax/ Multi-
Attribute Name ASA No. Type Valued Description or Value
IETF-Radius-Class Y 25 Single For Versions 8.2.x and later, we recommend that you
use the Group-Policy attribute (VSA 3076, #25) as
described in Table 29-1:
• group policy name
• OU=group policy name
• OU=group policy name
IETF-Radius-Filter-Id Y 11 String Single ACL name that is defined on the ASA, which applies
only to full tunnel IPsec and SSL VPN clients.
IETF-Radius-Framed-IP-Address Y n/a String Single An IP address
IETF-Radius-Framed-IP-Netmask Y n/a String Single An IP address mask
IETF-Radius-Idle-Timeout Y 28 Integer Single Seconds
IETF-Radius-Service-Type Y 6 Integer Single Seconds. Possible Service Type values:
• .Administrative—User is allowed access to the
configure prompt.
• .NAS-Prompt—User is allowed access to the
exec prompt.
• .remote-access—User is allowed network access
IETF-Radius-Session-Timeout Y 27 Integer Single Seconds
IPv6
The AAA server must use an IPv4 address, but endpoints can use IPv6.
Additional Guidelines
• You can have up to 100 server groups in single mode or 4 server groups per context in multiple mode.
• Each group can have up to 16 servers in single mode or 4 servers in multiple mode.
Related Topics
• Fallback Support, page 28-2
Step 1 Load the ASA attributes into the RADIUS server. The method that you use to load the attributes depends
on which type of RADIUS server that you are using:
• If you are using Cisco ACS: the server already has these attributes integrated. You can skip this step.
• For RADIUS servers from other vendors (for example, Microsoft Internet Authentication Service):
you must manually define each ASA attribute. To define an attribute, use the attribute name or
number, type, value, and vendor code (3076).
Step 2 Add a RADIUS server group. See Configure RADIUS Server Groups, page 29-14.
Step 3 For a server group, add a server to the group. See Add a RADIUS Server to a Group, page 29-17.
Procedure
Example:
ciscoasa(config)# aaa-server servergroup1 protocol radius
ciscoasa(config-aaa-server-group)#
When you enter the aaa-server protocol command, you enter aaa-server group configuration mode.
Step 2 Merge a downloadable ACL with the ACL received in the Cisco AV pair from a RADIUS packet.
merge-dacl {before-avpair | after-avpair}
Example:
ciscoasa(config-aaa-server-group)# merge-dacl before-avpair
The default setting is no merge dacl, which specifies that downloadable ACLs will not be merged with
Cisco AV pair ACLs. If both an AV pair and a downloadable ACL are received, the AV pair has priority
and is used.
The before-avpair option specifies that the downloadable ACL entries should be placed before the Cisco
AV pair entries.
The after-avpair option specifies that the downloadable ACL entries should be placed after the Cisco
AV pair entries. This option applies only to VPN connections. For VPN users, ACLs can be in the form
of Cisco AV pair ACLs, downloadable ACLs, and an ACL that is configured on the ASA. This option
determines whether or not the downloadable ACL and the AV pair ACL are merged, and does not apply
to any ACLs configured on the ASA.
Step 3 Specify the maximum number of requests that can be sent to a RADIUS server in the group before the
ASA tries the next server.
max-failed-attempts number
Example:
ciscoasa(config-aaa-server-group)# max-failed-attempts 2
Example:
ciscoasa(config-aaa-server-group)# reactivation-mode deadtime 20
The depletion keyword reactivates failed servers only after all of the servers in the group are inactive.
The deadtime minutes keyword-argument pair specifies the amount of time in minutes, between 0 and
1440, that elapses between the disabling of the last server in the group and the subsequent reenabling of
all servers. The default is 10 minutes.
The timed keyword reactivates failed servers after 30 seconds of down time.
Step 5 Send accounting messages to all servers in the group.
accounting-mode simultaneous
Example:
ciscoasa(config-aaa-server-group)# accounting-mode simultaneous
Enter the accounting-mode single command to restore the default of sending messages only to the active
server.
Step 6 Identify the server and the AAA server group to which it belongs.
aaa-server server_group [interface_name] host server_ip
Example:
ciscoasa(config)# aaa-server servergroup1 outside host 10.10.1.1
When you enter the aaa-server host command, you enter aaa-server host configuration mode.
Step 7 Enable the RADIUS Dynamic Authorization (CoA) services for the AAA server group.
dynamic-authorization {port port-number}
Example:
Once defined, the corresponding RADIUS server group will be registered for CoA notification and the
ASA will listen to the port for the CoA policy updates from ISE.
The valid range of the CoA listening port-number is 1 to 65535.
If the port number or interface specified in the no form of this command does not match a line in the
current configuration, an error message appears.
Step 8 Enable authorize-only mode for the RADIUS server group.
authorize-only
Example:
ciscoasa(config-aaa-server-group)# authorize-only
When this server group is used for authorization, the RADIUS Access Request message will be built as
an “Authorize Only” request instead of the configured password methods that are available now.
The Authorize-Only request includes a Service-Type attribute with value Authorize-Only (17) and
message authenticator within the Access-Request.
The support of the authorize-only mode eliminates the need of including the RADIUS common password
in the Access-Request. Thus, it does not require the configuration of common password using the
radius-common-pw CLI in the aaa-server-host mode.
Note The authorize-only mode is configured for the server group; however, the common password is
host-specific. Thus, once authorize-only mode is configured, the common password configured
for an individual AAA server would be ignored.
Step 9 Switch off hostscan processing for connections that are made to a specific tunnel group.
without-csd {anyconnect}
Example:
ciscoasa(config-tunnel-webvpn)# without-csd anyconnect
This setting currently applies to clientless and Layer 3 connections. This command has been modified
to allow this setting to be applied to AnyConnect connections only.
Examples
The following example shows how to add one RADIUS group with a single server:
ciscoasa(config)# aaa-server AuthOutbound protocol radius
ciscoasa(config-aaa-server-group)# exit
ciscoasa(config)# aaa-server AuthOutbound (inside) host 10.1.1.3
ciscoasa(config-aaa-server-host)# key RadUauthKey
ciscoasa(config-aaa-server-host)# exit
The following example shows how to configure an ISE server object for authorization-only, dynamic
authorization (CoA) updates, and hourly periodic accounting:
ciscoasa(config)# aaa-server ise protocol radius
ciscoasa(config-aaa-server-group)# authorize-only
ciscoasa(config-aaa-server-group)# interim-accounting-update periodic 1
ciscoasa(config-aaa-server-group)# dynamic-authorization
ciscoasa(config-aaa-server-group)# exit
ciscoasa(config-aaa-server-group)# authorize-only
ciscoasa(config)# aaa-server ise (inside) host 10.1.1.3
ciscoasa(config-aaa-server-host)# key sharedsecret
ciscoasa(config-aaa-server-host)# exit
The following example shows how to configure a tunnel group for password authentication with ISE:
ciscoasa(config)# tunnel-group aaa-coa general-attributes
ciscoasa(config-tunnel-general)# address-pool vpn
ciscoasa(config-tunnel-general)# authentication-server-group ise
ciscoasa(config-tunnel-general)# accounting-server-group ise
ciscoasa(config-tunnel-general)# exit
The following example shows how to configure a tunnel group for local certificate validation and
authorization with ISE:
ciscoasa(config)# tunnel-group aaa-coa general-attributes
ciscoasa(config-tunnel-general)# address-pool vpn
ciscoasa(config-tunnel-general)# authentication certificate
ciscoasa(config-tunnel-general)# authorization-server-group ise
ciscoasa(config-tunnel-general)# accounting-server-group ise
ciscoasa(config-tunnel-general)# exit
Procedure
Step 1 Identify the RADIUS server and the AAA server group to which it belongs.
aaa-server server_group [interface_name] host server_ip
Example:
ciscoasa(config-aaa-server-group)# aaa-server servergroup1 outside host 10.10.1.1
When you enter the aaa-server host command, you enter aaa-server host configuration mode.
Step 2 Specify how the ASA treats netmasks received in a downloadable ACL from a RADIUS server that is
accessed by using the aaa-server host command.
acl-netmask-convert {auto-detect | standard | wildcard}
Example:
ciscoasa(config-aaa-server-host)# acl-netmask-convert standard
The auto-detect keyword specifies that the ASA should attempt to determine the type of netmask
expression used. If the ASA detects a wildcard netmask expression, it converts it to a standard netmask
expression.
The standard keyword specifies that the ASA assumes downloadable ACLs received from the RADIUS
server contain only standard netmask expressions. No translation from wildcard netmask expressions is
performed.
The wildcard keyword specifies that the ASA assumes downloadable ACLs received from the RADIUS
server contain only wildcard netmask expressions and converts them all to standard netmask expressions
when the ACLs are downloaded.
Step 3 Specify a common password to be used for all users who are accessing a RADIUS authorization server
through the ASA.
radius-common-pw string
Example:
ciscoasa(config-aaa-server-host)# radius-common-pw examplepassword123abc
Example:
ciscoasa(config-aaa-server-host)# mschapv2-capable
Step 5 Specify the length of time, in seconds, that the ASA waits for a response from the primary server before
sending the request to the backup server.
timeout hh:mm:ss
Example:
ciscoasa(config-aaa-server-host)# timeout 15
Step 6 Configure the amount of time between retry attempts for a particular AAA server designated in a
previous aaa-server host command.
retry-interval seconds
Example:
ciscoasa(config-aaa-server-host)# retry-interval 8
The seconds argument specifies the retry interval (1-10 seconds) for the request. This is the time that the
ASA waits before retrying a connection request.
Note The interval between subsequent retries will always be 50 or 100 milliseconds, regardless of the
retry-interval settings you have entered. This is the intended behavior.
Example:
ciscoasa(config-aaa-server-group)# accounting-mode simultaneous
Enter the accounting-mode single command to restore the default of sending messages only to the active
server.
Step 8 Specify the authentication port as port number1645, or the server port to be used for authentication of
users.
authentication-port port
Example:
ciscoasa(config-aaa-server-host)# accounting-port 1646
Step 9 Specify the accounting port as port number 1646, or the server port to be used for accounting for this
host.
accounting-port port
Example:
ciscoasa(config-aaa-server-host)# accounting-port 1646
Step 10 Specify the server secret value used to authenticate the RADIUS server to the ASA. The server secret
that you configure should match the one configured on the RADIUS server. If you do not know the server
secret value, ask the RADIUS server administrator. The maximum length is 64 characters.
key
Example:
ciscoasa(config-aaa-host)# key myexamplekey1
The server secret that you configure should match the one configured on the RADIUS server. If you do
not know the server secret value, ask the RADIUS server administrator. The maximum length is 64
characters.
Examples
The following example shows how to add a RADIUS server to an existing RADIUS server group:
ciscoasa(config)# aaa-server svrgrp1 protocol radius
ciscoasa(config-aaa-server-group)# aaa-server svrgrp1 host 192.168.3.4
ciscoasa(config-aaa-server-host)# acl-netmask-convert wildcard
ciscoasa(config-aaa-server-host)# radius-common-pw myexaplepasswordabc123
ciscoasa(config-aaa-server-host)# mschapv2-capable
ciscoasa(config-aaa-server-host)# timeout 9
ciscoasa(config-aaa-server-host)# retry-interval 7
ciscoasa(config-aaa-server-host)# accounting-mode simultaneous
ciscoasa(config-aaa-server-host)# authentication-port 1650
ciscoasa(config-aaa-server-host)# authorization-port 1645
ciscoasa(config-aaa-server-host)# key mysecretkeyexampleiceage2
ciscoasa(config-aaa-server-host)# exit
ciscoasa(config)#
Platform
Feature Name Releases Description
RADIUS Servers for AAA 7.0(1) Describes how to configure RADIUS servers for AAA.
We introduced the following commands:
aaa-server protocol, max-failed-attempts,
reactivation-mode, accounting-mode simultaneous,
aaa-server host, show aaa-server, show running-config
aaa-server, clear aaa-server statistics,
authentication-port, accounting-port, retry-interval,
acl-netmask-convert, clear configure aaa-server,
merge-dacl, radius-common-pw, key.
Key vendor-specific attributes (VSAs) sent in 8.4(3) Four New VSAs—Tunnel Group Name (146) and Client
RADIUS access request and accounting request Type (150) are sent in RADIUS access request packets from
packets from the ASA the ASA. Session Type (151) and Session Subtype (152) are
sent in RADIUS accounting request packets from the ASA.
All four attributes are sent for all accounting request packet
types: Start, Interim-Update, and Stop. The RADIUS server
(for example, ACS and ISE) can then enforce authorization
and policy attributes or use them for accounting and billing
purposes.
TACACS+ Attributes
The Cisco ASA provides support for TACACS+ attributes. TACACS+ attributes separate the functions
of authentication, authorization, and accounting. The protocol supports two types of attributes:
mandatory and optional. Both the server and client must understand a mandatory attribute, and the
mandatory attribute must be applied to the user. An optional attribute may or may not be understood or
used.
Note To use TACACS+ attributes, make sure that you have enabled AAA services on the NAS.
Table 30-1 lists supported TACACS+ authorization response attributes for cut-through-proxy
connections. Table 30-2 lists supported TACACS+ accounting attributes.
Attribute Description
acl Identifies a locally configured ACL to be applied to the connection.
Attribute Description
idletime Indicates the amount of inactivity in minutes that is allowed before the
authenticated user session is terminated.
timeout Specifies the absolute amount of time in minutes that authentication credentials
remain active before the authenticated user session is terminated.
.
Table 30-2 Supported TACACS+ Accounting Attributes
Attribute Description
bytes_in Specifies the number of input bytes transferred during this connection (stop
records only).
bytes_out Specifies the number of output bytes transferred during this connection (stop
records only).
cmd Defines the command executed (command accounting only).
disc-cause Indicates the numeric code that identifies the reason for disconnecting (stop
records only).
elapsed_time Defines the elapsed time in seconds for the connection (stop records only).
foreign_ip Specifies the IP address of the client for tunnel connections. Defines the address
on the lowest security interface for cut-through-proxy connections.
local_ip Specifies the IP address that the client connected to for tunnel connections. Defines
the address on the highest security interface for cut-through-proxy connections.
NAS port Contains a session ID for the connection.
packs_in Specifies the number of input packets transferred during this connection.
packs_out Specifies the number of output packets transferred during this connection.
priv-level Set to the user privilege level for command accounting requests or to 1 otherwise.
rem_iddr Indicates the IP address of the client.
service Specifies the service used. Always set to “shell” for command accounting only.
task_id Specifies a unique task ID for the accounting transaction.
username Indicates the name of the user.
IPv6
The AAA server must use an IPv4 address, but endpoints can use IPv6.
Additional Guidelines
• You can have up to 100 server groups in single mode or 4 server groups per context in multiple mode.
• Each group can have up to 16 servers in single mode or 4 servers in multiple mode.
Related Topics
• Fallback Support, page 28-2
• How Fallback Works with Multiple Servers in a Group, page 28-2
• Recover from a Lockout, page 35-25
Step 1 Add a TACACS+ server group. See Configure TACACS+ Server Groups, page 30-3.
Step 2 For a server group, add a server to the group. See Add a TACACS+ Server to a Group, page 30-4.
Procedure
Example:
ciscoasa(config)# aaa-server servergroup1 protocol tacacs+
When you enter the aaa-server protocol command, you enter aaa-server group configuration mode.
Step 2 Specify the maximum number of requests sent to a AAA server in the group before trying the next server.
max-failed-attempts number
Example:
ciscoasa(config-aaa-server-group)# max-failed-attempts 2
Step 3 Specify the method (reactivation policy) by which failed servers in a group are reactivated.
reactivation-mode {depletion [deadtime minutes] | timed}
Example:
ciscoasa(config-aaa-server-group)# reactivation-mode deadtime 20
The depletion keyword reactivates failed servers only after all of the servers in the group are inactive.
The deadtime minutes keyword-argument pair specifies the amount of time in minutes, between 0 and
1440, that elapses between the disabling of the last server in the group and the subsequent reenabling of
all servers. The default is 10 minutes.
The timed keyword reactivates failed servers after 30 seconds of down time.
Step 4 Send accounting messages to all servers in the group.
accounting-mode simultaneous
Example:
ciscoasa(config-aaa-server-group)# accounting-mode simultaneous
To restore the default of sending messages only to the active server, enter the accounting-mode single
command.
Examples
The following example shows how to add one TACACS+ group with one primary and one backup server:
ciscoasa(config)# aaa-server AuthInbound protocol tacacs+
ciscoasa(config-aaa-server-group)# max-failed-attempts 2
ciscoasa(config-aaa-server-group)# reactivation-mode depletion deadtime 20
ciscoasa(config-aaa-server-group)# exit
ciscoasa(config)# aaa-server AuthInbound (inside) host 10.1.1.1
ciscoasa(config-aaa-server-host)# key TACPlusUauthKey
ciscoasa(config-aaa-server-host)# exit
ciscoasa(config)# aaa-server AuthInbound (inside) host 10.1.1.2
ciscoasa(config-aaa-server-host)# key TACPlusUauthKey2
ciscoasa(config-aaa-server-host)# exit
Procedure
Step 1 Identify the TACACS+ server and the server group to which it belongs.
aaa-server server_group [interface_name] host server_ip
Example:
ciscoasa(config-aaa-server-group)# aaa-server servergroup1 outside host 10.10.1.1
When you enter the aaa-server host command, you enter aaa-server host configuration mode.
Step 2 Specify the length of time, in seconds, that the ASA waits for a response from the primary server before
sending the request to the backup server.
timeout hh:mm:ss
Example:
ciscoasa(config-aaa-server-host)# timeout 15
Step 3 Specify the server port as port number 49, or the TCP port number used by the ASA to communicate
with the TACACS+ server.
server-port port_number
Example:
ciscoasa(config-aaa-server-host)# server-port 49
Step 4 Specify the server secret value used to authenticate the NAS to the TACACS+ server.
key
Example:
ciscoasa(config-aaa-host)# key myexamplekey1
This value is a case-sensitive, alphanumeric keyword of up to 127 characters, which is the same value
as the key on the TACACS+ server. Any characters over 127 are ignored. The key is used between the
client and the server to encrypt data between them and must be the same on both the client and server
systems. The key cannot contain spaces, but other special characters are allowed.
Platform
Feature Name Releases Description
TACACS+ Servers 7.0(1) Describes how to configure TACACS+ servers for AAA.
We introduced the following commands:
aaa-server protocol, max-failed-attempts,
reactivation-mode, accounting-mode simultaneous,
aaa-server host, aaa authorization exec
authentication-server, server-port, key, clear aaa-server
statistics, clear configure aaa-server, show aaa-server,
show running-config aaa-server, username, service-type,
timeout.
The ASA and LDAP server supports any combination of these SASL mechanisms. If you configure
multiple mechanisms, the ASA retrieves the list of SASL mechanisms that are configured on the server,
and sets the authentication mechanism to the strongest one configured on both the ASA and the server.
For example, if both the LDAP server and the ASA support both mechanisms, the ASA selects Kerberos,
the stronger of the two.
When user LDAP authentication has succeeded, the LDAP server returns the attributes for the
authenticated user. For VPN authentication, these attributes generally include authorization data that is
applied to the VPN session. In this case, using LDAP accomplishes authentication and authorization in
a single step.
Note For more information about LDAP, see RFCs 1777, 2251, and 2849.
LDAP Hierarchy
Your LDAP configuration should reflect the logical hierarchy of your organization. For example,
suppose an employee at your company, Example Corporation, is named Employee1. Employee1 works
in the Engineering group. Your LDAP hierarchy could have one or many levels. You might decide to set
up a single-level hierarchy in which Employee1 is considered a member of Example Corporation. Or you
could set up a multi-level hierarchy in which Employee1 is considered to be a member of the department
Engineering, which is a member of an organizational unit called People, which is itself a member of
Example Corporation. See Figure 31-1 for an example of a multi-level hierarchy.
A multi-level hierarchy has more detail, but searches return results more quickly in a single-level
hierarchy.
• LDAP Base DN defines where in the LDAP hierarchy that the server should begin searching for user
information when it receives an authorization request from the ASA.
• Search Scope defines the extent of the search in the LDAP hierarchy. The search proceeds this many
levels in the hierarchy below the LDAP Base DN. You can choose to have the server search only the
level immediately below it, or it can search the entire subtree. A single level search is quicker, but
a subtree search is more extensive.
• Naming Attribute(s) defines the RDN that uniquely identifies an entry in the LDAP server. Common
naming attributes can include cn (Common Name), sAMAccountName, and userPrincipalName.
Figure 31-1 shows a sample LDAP hierarchy for Example Corporation. Given this hierarchy, you could
define your search in different ways. Table 31-1 shows two sample search configurations.
In the first example configuration, when Employee1 establishes the IPsec tunnel with LDAP
authorization required, the ASA sends a search request to the LDAP server, indicating it should search
for Employee1 in the Engineering group. This search is quick.
In the second example configuration, the ASA sends a search request indicating that the server should
search for Employee1 within Example Corporation. This search takes longer.
Search Naming
No. LDAP Base DN Scope Attribute Result
1 group= Engineering,ou=People,dc=ExampleCorporation, dc=com One Level cn=Employee1 Quicker search
2 dc=ExampleCorporation,dc=com Subtree cn=Employee1 Longer search
Note As an LDAP client, the ASA does not support the transmission of anonymous binds or requests.
Note A single LDAP attribute map may contain one or many attributes. You can only map one LDAP
attribute from a specific LDAP server.
IPv6
The AAA server must use an IPv4 address, but endpoints can use IPv6.
Additional Guidelines
• The DN configured on the ASA to access a Sun directory server must be able to access the default
password policy on that server. We recommend using the directory administrator, or a user with
directory administrator privileges, as the DN. Alternatively, you can place an ACL on the default
password policy.
• You must configure LDAP over SSL to enable password management with Microsoft Active
Directory and Sun servers.
• The ASA does not support password management with Novell, OpenLDAP, and other LDAPv3
directory servers.
• The VPN 3000 concentrator and the ASA/PIX 7.0 software required a Cisco LDAP schema for
authorization operations. Beginning with Version 7.1(x), the ASA performs authentication and
authorization using the native LDAP schema, and the Cisco schema is no longer needed.
• You can have up to 100 LDAP server groups in single mode or 4 LDAP server groups per context in
multiple mode.
• Each group can have up to 16 LDAP servers in single mode or 4 LDAP servers in multiple mode.
• When a user logs in, the LDAP servers are accessed one at a time, starting with the first server that
you specify in the configuration, until a server responds. If all servers in the group are unavailable,
the ASA tries the local database if you configured it as a fallback method (management
authentication and authorization only). If you do not have a fallback method, the ASA continues to
try the LDAP servers.
Step 1 Configure LDAP attribute maps. See Configure LDAP Attribute Maps, page 31-5.
Step 2 Add an LDAP server group. See Configure LDAP Server Groups, page 31-7.
Step 3 (Optional) Configure authorization from an LDAP server that is separate and distinct from the
authentication mechanism. See Configure Authorization with LDAP for VPN, page 31-9.
Procedure
Example:
ciscoasa(config)# ldap attribute-map att_map_1
Step 2 Map the user-defined attribute name department to the Cisco attribute.
map-name user-attribute-name Cisco-attribute-name
Example:
ciscoasa(config-ldap-attribute-map)# map-name department IETF-Radius-Class
Step 3 Map the user-defined map value department to the user-defined attribute value and the Cisco attribute
value.
map-value user-attribute-name Cisco-attribute-name
Example:
ciscoasa(config-ldap-attribute-map)# map-value department Engineering group1
Step 4 Identify the server and the AAA server group to which it belongs.
aaa-server server_group [interface_name] host server_ip
Example:
ciscoasa(config)# aaa-server ldap_dir_1 host 10.1.1.4
Example:
ciscoasa(config-aaa-server-host)# ldap-attribute-map att_map_1
Examples
The following example shows how to limit management sessions to the ASA based on an LDAP attribute
called accessType. The accessType attribute may have one of these values:
• VPN
• admin
• helpdesk
The following example shows how each value is mapped to one of the valid IETF-Radius-Service-Type
attributes that the ASA supports: remote-access (Service-Type 5) Outbound, admin (Service-Type 6)
Administrative, and nas-prompt (Service-Type 7) NAS Prompt.
ciscoasa(config)# ldap attribute-map MGMT
ciscoasa(config-ldap-attribute-map)# map-name accessType IETF-Radius-Service-Type
ciscoasa(config-ldap-attribute-map)# map-value accessType VPN 5
ciscoasa(config-ldap-attribute-map)# map-value accessType admin 6
ciscoasa(config-ldap-attribute-map)# map-value accessType helpdesk 7
The following example shows how to display the complete list of Cisco LDAP attribute names:
ciscoasa(config)# ldap attribute-map att_map_1
ciscoasa(config-ldap-attribute-map)# map-name att_map_1?
Allow-Network-Extension-Mode
Auth-Service-Type
Authenticated-User-Idle-Timeout
Authorization-Required
Authorization-Type
:
:
X509-Cert-Data
ciscoasa(config-ldap-attribute-map)#
Procedure
Example:
ciscoasa(config)# aaa-server servergroup1 protocol ldap
ciscoasa(config-aaa-server-group)#
When you enter the aaa-server protocol command, you enter aaa-server group configuration mode.
Step 2 Specify the maximum number of requests sent to an LDAP server in the group before trying the next
server.
max-failed-attempts number
Example:
ciscoasa(config-aaa-server-group)# max-failed-attempts 2
Example:
ciscoasa(config-aaa-server-group)# reactivation-mode deadtime 20
The depletion keyword reactivates failed servers only after all of the servers in the group are inactive.
The deadtime minutes keyword-argument pair specifies the amount of time in minutes, between 0 and
1440, that elapses between the disabling of the last server in the group and the subsequent reenabling of
all servers. The default is 10 minutes.
The timed keyword reactivates failed servers after 30 seconds of down time.
Step 4 Identify the LDAP server and AAA server group to which it belongs.
aaa-server server_group [interface_name] host server_ip
Example:
ciscoasa(config)# aaa-server servergroup1 outside host 10.10.1.1
When you enter the aaa-server host command, you enter aaa-server host configuration mode. As
needed, use host configuration mode commands to further configure the AAA server.
Table 31-2 lists the available commands for LDAP servers, and whether or not a new LDAP server
definition has a default value for that command. If no default value is provided (indicated by “—”), use
the command to specify the value.
Examples
The following example shows how to configure an LDAP server group named watchdogs and add an
LDAP server to the group. Because the example does not define a retry interval or the port that the LDAP
server listens to, the ASA uses the default values for these two server-specific parameters.
ciscoasa(config)# aaa-server watchdogs protocol ldap
ciscoasa(config-aaa-server-group)# aaa-server watchdogs host 192.168.3.4
ciscoasa(config-aaa-server-host)# exit
ciscoasa(config)#
Procedure
Example:
ciscoasa(config)# tunnel-group remotegrp
Example:
ciscoasa(config)# tunnel-group remotegrp general-attributes
Step 3 Assign a new tunnel group to a previously created AAA server group for authorization.
authorization-server-group group-tag
Example:
ciscoasa(config-general)# authorization-server-group ldap_dir_1
Examples
While there are other authorization-related commands and options available for specific requirements,
the following example shows commands for enabling user authorization with LDAP. The example then
creates an IPsec remote access tunnel group named remote-1, and assigns that new tunnel group to the
previously created ldap_dir_1 AAA server group for authorization:
ciscoasa(config)# tunnel-group remote-1 type ipsec-ra
ciscoasa(config)# tunnel-group remote-1 general-attributes
ciscoasa(config-general)# authorization-server-group ldap_dir_1
ciscoasa(config-general)#
After you complete this configuration work, you can then configure additional LDAP authorization
parameters such as a directory password, a starting point for searching a directory, and the scope of a
directory search by entering the following commands:
Platform
Feature Name Releases Description
LDAP Servers for AAA 7.0(1) LDAP Servers describe support for AAA and how to
configure LDAP servers.
We introduced the following commands:
username, aaa authorization exec authentication-server,
aaa authentication console LOCAL, aaa authorization
exec LOCAL, service-type, ldap attribute-map,
aaa-server protocol, aaa authentication {telnet | ssh |
serial} console LOCAL, aaa authentication http console
LOCAL, aaa authentication enable console LOCAL,
max-failed-attempts, reactivation-mode,
accounting-mode simultaneous, aaa-server host,
authorization-server-group, tunnel-group, tunnel-group
general-attributes, map-name, map-value,
ldap-attribute-map.
This chapter describes how to configure the ASA for the Identity Firewall.
• About the Identity Firewall, page 32-1
• Guidelines for the Identity Firewall, page 32-7
• Prerequisites for the Identity Firewall, page 32-9
• Configure the Identity Firewall, page 32-10
• Examples for the Identity Firewall, page 32-19
• History for the Identity Firewall, page 32-22
Figure 32-1 show the components of the Identity Firewall. The succeeding table describes the roles of
these components and how they communicate with one another.
Client ASA
NetBIOS Probe
mkg.example.com
10.1.1.2
R
AP
AD
LD
IU
S
WMI
304003
AD Servers AD Agent
1 On the ASA: Administrators configure local 4 Client <-> ASA: The client logs into the
user groups and Identity Firewall policies. network through Microsoft Active Directory.
The AD Server authenticates users and
generates user login security logs.
Alternatively, the client can log into the
network through a cut-through proxy or VPN.
2 ASA <-> AD Server: The ASA sends an 5 ASA <-> Client: Based on the policies
LDAP query for the Active Directory groups configured on the ASA, it grants or denies
configured on the AD Server. access to the client.
The ASA consolidates local and Active If configured, the ASA probes the NetBIOS of
Directory groups and applies access rules and the client to pass inactive and no-response
Modular Policy Framework security policies users.
based on user identity.
3 ASA <-> AD Agent: Depending on the 6 AD Agent <-> AD Server: The AD Agent
Identity Firewall configuration, the ASA maintains a cache of user ID and IP address
downloads the IP-user database or sends a mapped entries. and notifies the ASA of
RADIUS request to the AD Agent that asks changes.
for the user’s IP address. The AD Agent sends logs to a syslog server.
The ASA forwards the new mapped entries
that have been learned from web
authentication and VPN sessions to the AD
Agent.
Flexibility
• The ASA can retrieve user identity and IP address mapping from the AD Agent by querying the AD
Agent for each new IP address or by maintaining a local copy of the entire user identity and IP
address database.
• Supports host group, subnet, or IP address for the destination of a user identity policy.
• Supports a fully qualified domain name (FQDN) for the source and destination of a user identity
policy.
• Supports the combination of 5-tuple policies with ID-based policies. The identity-based feature
works in tandem with the existing 5-tuple solution.
• Supports use with IPS and Application Inspection policies.
• Retrieves user identity information from remote access VPN, AnyConnect VPN, L2TP VPN and
cut-through proxy. All retrieved users are populated to all ASAs that are connected to the AD Agent.
Scalability
• Each AD Agent supports 100 ASAs. Multiple ASAs are able to communicate with a single AD
Agent to provide scalability in larger network deployments.
• Supports 30 Active Directory servers provided the IP address is unique among all domains.
• Each user identity in a domain can have up to 8 IP addresses.
• Supports up to 64,000 user identity-IP address mapped entries in active policies for the ASA 5500
Series models. This limit controls the maximum number of users who have policies applied. The
total number of users are the aggregate of all users configured in all different contexts.
• Supports up to 512 user groups in active ASA policies.
• A single access rule can contain one or more user groups or users.
• Supports multiple domains.
Availability
• The ASA retrieves group information from the Active Directory and falls back to web authentication
for IP addresses when the AD Agent cannot map a source IP address to a user identity.
• The AD Agent continues to function when any of the Active Directory servers or the ASA are not
responding.
• Supports configuring a primary AD Agent and a secondary AD Agent on the ASA. If the primary
AD Agent stops responding, the ASA can switch to the secondary AD Agent.
• If the AD Agent is unavailable, the ASA can fall back to existing identity sources such as
cut-through proxy and VPN authentication.
• The AD Agent runs a watchdog process that automatically restarts its services when they are down.
• Allows a distributed IP address/user mapping database for use among ASAs.
Deployment Scenarios
You can deploy the components of the Identity Firewall in the following ways, depending on your
environmental requirements.
Figure 32-2 shows how you can deploy the components of the Identity Firewall to allow for redundancy.
Scenario 1 shows a simple installation without component redundancy. Scenario 2 also shows a simple
installation without redundancy. However, in this deployment scenario, the Active Directory server and
AD Agent are co-located on the same Windows server.
AD Server ASA
AD Agent
AD Server ASA
304005
Figure 32-3 shows how you can deploy the Identity Firewall components to support redundancy.
Scenario 1 shows a deployment with multiple Active Directory servers and a single AD Agent installed
on a separate Windows server. Scenario 2 shows a deployment with multiple Active Directory servers
and multiple AD Agents installed on separate Windows servers.
Figure 32-4 shows how all Identity Firewall components—Active Directory server, the AD Agent, and
the clients—are installed and communicate on the LAN.
Client ASA
NetBIOS Probe
mkg.example.com
10.1.1.2
R
AP
AD
LD
IU
S
WMI
304003
AD Servers AD Agent
Figure 32-5 shows a WAN-based deployment to support a remote site. The Active Directory server and
the AD Agent are installed on the main site LAN. The clients are located at a remote site and connect to
the Identity Firewall components over a WAN.
ASA
Client
NetBIOS Probe
WAN Login/Authentication
mkg.example.com
10.1.1.2
S
LD
IU
AD
AP
R
WMI
304008
AD Agent AD Servers
Figure 32-6 also shows a WAN-based deployment to support a remote site. The Active Directory server
is installed on the main site LAN. However, the AD Agent is installed and accessed by the clients at the
remote site. The remote clients connect to the Active Directory servers at the main site over a WAN.
ASA
Client
RADIUS
WAN
mkg.example.com
10.1.1.2
LD
AP
WMI
Login/Authentication
304006
AD Agent AD Servers
Figure 32-7 shows an expanded remote site installation. An AD Agent and Active Directory servers are
installed at the remote site. The clients access these components locally when logging into network
resources located at the main site. The remote Active Directory server must synchronize its data with the
central Active Directory servers located at the main site.
ASA
Client
RADIUS
WAN LDAP
mkg.example.com
10.1.1.2
WMI
Directory Sync
304007
AD Agent AD Servers AD Servers
Failover
• The Identity Firewall supports user identity-IP address mapping and AD Agent status replication
from active to standby when Stateful Failover is enabled. However, only user identity-IP address
mapping, AD Agent status, and domain status are replicated. User and user group records are not
replicated to the standby ASA.
• When failover is configured, the standby ASA must also be configured to connect to the AD Agent
directly to retrieve user groups. The standby ASA does not send NetBIOS packets to clients even
when the NetBIOS probing options are configured for the Identity Firewall.
• When a client is determined to be inactive by the active ASA, the information is propagated to the
standby ASA. User statistics are not propagated to the standby ASA.
• When you have failover configured, you must configure the AD Agent to communicate with both
the active and standby ASAs. See the Installation and Setup Guide for the Active Directory Agent
for the steps to configure the ASA on the AD Agent server.
IPv6
• The AD Agent supports endpoints with IPv6 addresses. It can receive IPv6 addresses in log events,
maintain them in its cache, and send them through RADIUS messages. The AAA server must use
an IPv4 address.
• NetBIOS over IPv6 is not supported.
Additional Guidelines
• A full URL as a destination address is not supported.
• For NetBIOS probing to function, the network between the ASA, AD Agent, and clients must
support UDP-encapsulated NetBIOS traffic.
• MAC address checking by the Identity Firewall does not work when intervening routers are present.
Users logged into clients that are behind the same router have the same MAC addresses. With this
implementation, all the packets from the same router are able to pass the check, because the ASA is
unable to ascertain the actual MAC addresses behind the router.
• The following ASA features do not support using the identity-based object and FQDN in an
extended ACL:
– Route maps
– Crypto maps
– WCCP
– NAT
– Group policy (except for VPN filters)
– DAP
• You can use the user-identity update active-user-database command to actively initiate a user-IP
address download from the AD agent.
By design, if a previous download session has finished, the ASA does not allow you to issue this
command again.
As a result, if the user-IP database is very large, the previous download session is not finished yet,
and you issue another user-identity update active-user-database command, the following error
message appears:
“ERROR: one update active-user-database is already in progress.”
You need to wait until the previous session is completely finished, then you can issue another
user-identity update active-user-database command.
Another example of this behavior occurs because of packet loss from the AD Agent to the ASA.
When you issue a user-identity update active-user-database command, the ASA requests the total
number of user-IP mapped entries to be downloaded. Then the AD Agent initiates a UDP connection
to the ASA and sends the change of authorization request packet.
If for some reason the packet is lost, there is no way for the ASA to discern this. As a result, the
ASA holds the session for 4-5 minutes, during which time this error message continues to appear if
you have issued the user-identity update active-user-database command.
• When you use the Cisco Context Directory Agent (CDA) in conjunction with the ASA or Cisco
Ironport Web Security Appliance (WSA), make sure that you open the following ports:
– Authentication port for UDP—1645
– Accounting port for UDP—1646
– Listening port for UDP—3799
The listening port is used to send change of authorization requests from the CDA to the ASA or
to the WSA.
• If the user-identity action domain-controller-down domain_name disable-user-identity-rule
command is configured and the specified domain is down, or if the user-identity action
ad-agent-down disable-user-identity-rule command is configured and the AD Agent is down, all
the logged-in users have the disabled status.
• For domain names, the following characters are not valid: \/:*?"<>|. For naming conventions, see
http://support.microsoft.com/kb/909264.
• For usernames, the following characters are not valid: \/[]:;=,+*?"<>|@.
• For user group names, the following characters are not valid: \/[]:;=,+*?"<>|.
• How you configure the Identity Firewall to retrieve user information from the AD Agent affects the
amount of memory used by the feature. You specify whether the ASA uses on-demand retrieval or
full download retrieval. Choosing on-demand retrieval has the benefit of using less memory, because
only users of received packets are queried and stored.
AD Agent
• The AD Agent must be installed on a Windows server that is accessible to the ASA. Additionally,
you must configure the AD Agent to obtain information from the Active Directory servers and to
communicate with the ASA.
• Supported Windows servers include Windows 2003, Windows 2008, and Windows 2008 R2.
• For the steps to install and configure the AD Agent, see the Installation and Setup Guide for the
Active Directory Agent.
• Before configuring the AD Agent in the ASA, obtain the secret key value that the AD Agent and the
ASA use to communicate. This value must match on both the AD Agent and the ASA.
• Before configuring the Active Directory server on the ASA, create a user account in Active
Directory for the ASA.
• Additionally, the ASA sends encrypted log-in information to the Active Directory server by using
SSL enabled over LDAP. SSL must be enabled on the Active Directory server. See the
documentation for Microsoft Active Directory for how to enable SSL for Active Directory.
Note Before running the AD Agent Installer, you must install the patches listed in the README First for the
Cisco Active Directory Agent on each Microsoft Active Directory server that the AD Agent monitors.
These patches are required even when the AD Agent is installed directly on the domain controller server.
Procedure
Step 1 Create the AAA server group and configure AAA server parameters for the Active Directory server.
aaa-server server-tag protocol ldap
Example:
ciscoasa(config)# aaa-server adserver protocol ldap
Step 2 Configure the AAA server as part of a AAA server group and the AAA server parameters that are
host-specific for the Active Directory server.
aaa-server server-tag [(interface-name)] host {server-ip | name} [key] [timeout seconds]
Example:
ciscoasa(config-aaa-server-group)# aaa-server adserver (mgmt) host 172.168.224.6
Step 3 Specifies the location in the LDAP hierarchy where the server should begin searching when it receives
an authorization request.
ldap-base-dn string
Example:
ciscoasa(config-aaa-server-host)# ldap-base-dn DC=SAMPLE,DC=com
Specifying the ldap-base-dn command is optional. If you do not specify this command, the ASA
retrieves the defaultNamingContext from the Active Directory and uses it as the base DN.
Step 4 Specify the extent of the search in the LDAP hierarchy that the server should make when it receives an
authorization request.
ldap-scope subtree
Example:
ciscoasa(config-aaa-server-host)# ldap-scope subtree
Example:
ciscoasa(config-aaa-server-host)# ldap-login-password obscurepassword
Step 6 Specify the name of the directory object that the system should bind this as.
ldap-login-dn string
Example:
ciscoasa(config-aaa-server-host)# ldap-login-dn SAMPLE\user1
The ASA identifies itself for authenticated binding by attaching a Login DN field to the user
authentication request. The Login DN field describes the authentication characteristics of the ASA.
The string argument is a case-sensitive string of up to 128 characters that specifies the name of the
directory object in the LDAP hierarchy. Spaces are not permitted in the string, but other special
characters are allowed.
Example:
ciscoasa(config-aaa-server-host)# server-type microsoft
Step 8 Specify the location of the Active Directory groups configuration in the Active Directory domain
controller.
ldap-group-base-dn string
Example:
ciscoasa(config-aaa-server-host)# ldap-group-base-dn OU=Sample Groups,DC=SAMPLE,DC=com
If not specified, the value in the ldap-group-base-dn command is used. Specifying this command is
optional.
Step 9 Allow the ASA to access the Active Directory domain controller over SSL.
ldap-over-ssl enable
Example:
ciscoasa(config-aaa-server-host)# ldap-over-ssl enable
To support LDAP over SSL, Active Directory server needs to be configured to have this support.
By default, the Active Directory does not have SSL configured. If SSL is not configured in the Active
Directory, you do not need to configure it on the ASA for the Identity Firewall.
Step 10 Specify the server port.
server-port port-number
Example:
ciscoasa(config-aaa-server-host)# server-port 389
ciscoasa(config-aaa-server-host)# server-port 636
By default, if the ldap-over-ssl command is not enabled, the default server port is 389; if the
ldap-over-ssl command is enabled, the default server port is 636.
Step 11 Set the amount of time before LDAP queries time out.
group-search-timeout seconds
Example:
ciscoasa(config-aaa-server-host)# group-search-timeout 300
Procedure
Step 1 Create the AAA server group and configure AAA server parameters for the AD Agent.
aaa-server server-tag protocol radius
Example:
ciscoasa(config)# aaa-server adagent protocol radius
Example:
ciscoasa(config)# ad-agent-mode
Step 3 Configure the AAA server as part of a AAA server group and the AAA server parameters that are
host-specific for the AD Agent.
aaa-server server-tag [(interface-name)] host {server-ip | name} [key] [timeout seconds]
Example:
ciscoasa(config-aaa-server-group)# aaa-server adagent (inside) host 192.168.1.101
Step 4 Specify the server secret value used to authenticate the ASA to the AD Agent server.
key key
Example:
ciscoasa(config-aaa-server-host)# key mysecret
Example:
ciscoasa(config-aaa-server-hostkey)# user-identity ad-agent aaa-server adagent
The first server defined in the aaa_server_group_tag argument is the primary AD Agent and the second
server defined is the secondary AD Agent. The Identity Firewall supports defining only two AD Agent
hosts.
When the ASA detects that the primary AD Agent is down and a secondary agent is specified, it switches
to the secondary AD Agent. The AAA server for the AD agent uses RADIUS as the communication
protocol, and should specify a key attribute for the shared secret between the ASA and AD Agent.
Step 6 Test the communication between the ASA and the AD Agent server.
test aaa-server ad-agent
Example:
ciscoasa(config-aaa-server-host)# test aaa-server ad-agent
Procedure
Step 1 Enable the Identity Firewall feature. By default, the Identity Firewall feature is disabled.
user-identity enable
Example:
ciscoasa(config)# user-identity enable
For the domain_NetBIOS_name argument, enter a name of up to 32 characters that consists of [a-z],
[A-Z], [0-9], [!@#$%^&()-_=+[]{};,. ] except '.' and ' ' at the first character. If the domain name includes
a space, enclose the entire name in quotation marks. The domain name is not case sensitive.
The default domain is used for all users and user groups when a domain has not been explicitly
configured for those users or groups. When a default domain is not specified, the default domain for
users and groups is LOCAL. For multiple context modes, you can set a default domain name for each
context, as well as within the system execution space.
Note The default domain name that you specify must match the NetBIOS domain name configured on
the Active Directory domain controller. If the domain name does not match, the AD Agent
incorrectly associates the user identity-IP address mapped entries with the domain name that you
enter when configuring the ASA. To view the NetBIOS domain name, open the Active Directory
user event security log in any text editor.
The Identity Firewall uses the LOCAL domain for all locally defined user groups or locally defined
users. Users logging in through a web portal (cut-through proxy) are designated as belonging to the
Active Directory domain with which they authenticated. Users logging in through a VPN are designated
as belonging to the LOCAL domain unless the VPN is authenticated by LDAP with the Active Directory.
In this case, the Identity Firewall can associate the users with their Active Directory domain.
Step 3 Associate the LDAP parameters defined for the AAA server for importing user group queries with the
domain name.
user-identity domain domain_nickname aaa-server aaa_server_group_tag
Example:
ciscoasa(config)# user-identity domain SAMPLE aaa-server ds
For the domain_nickname argument, enter a name of up to 32 characters consisting of [a-z], [A-Z],
[0-9], [!@#$%^&()-_=+[]{};,. ] except '.' and ' ' at the first character. If the domain name includes a
space, you must enclose that space character in quotation marks. The domain name is not case sensitive.
Step 4 Enable NetBIOS probing.
user-identity logout-probe netbios local-system probe-time minutes minutes retry-interval
seconds seconds retry-count times [user-not-needed | match-any | exact-match]
Example:
ciscoasa(config)# user-identity logout-probe netbios local-system probe-time minutes 10
retry-interval seconds 10 retry-count 2 user-not-needed
Enabling this option configures how often the ASA probes the user client IP address to determine
whether the client is still active. By default, NetBIOS probing is disabled. To minimize the NetBIOS
packets, the ASA only sends a NetBIOS probe to a client when the user has been idle for more than the
specified number of minutes.
• Exact-match—The username of the user assigned to the IP address must be the only one in the
NetBIOS response. Otherwise, the user identity of that IP address is considered invalid.
• User-not-needed—As long as the ASA received a NetBIOS response from the client, the user
identity is considered valid.
The Identity Firewall only performs NetBIOS probing for those users identities that are in the active state
and exist in at least one security policy. The ASA does not perform NetBIOS probing for clients where
the users logged in through cut-through proxy or by using a VPN.
Step 5 Specify the amount of time before a user is considered idle, meaning the ASA has not received traffic
from the user's IP address for the specified amount of time.
user-identity inactive-user-timer minutes minutes
Example:
ciscoasa(config)# user-identity inactive-user-timer minutes 120
When the timer expires, the user's IP address is marked as inactive and removed from the local cached
user identity-IP address mapping database, and the ASA no longer notifies the AD Agent about that IP
address. Existing traffic is still allowed to pass. When this command is specified, the ASA runs an
inactive timer even when the NetBIOS Logout Probe is configured.
By default, the idle timeout is set to 60 minutes. This option does not apply to VPN or cut-through proxy
users.
Step 6 Specify the amount of time before the ASA queries the Active Directory server for user group
information.
user-identity poll-import-user-group-timer hours hours
Example:
ciscoasa(config)# user-identity poll-import-user-group-timer hours 1
If a user is added to or deleted from an Active Directory group, the ASA received the updated user group
after the import group timer ran. By default, the poll-import-user-group-timer hours value is 8 hours.
To immediately update user group information, enter the user-identity update import-user command.
Step 7 Specify the action when a client does not respond to a NetBIOS probe.
user-identity action netbios-response-fail remove-user-ip
Example:
ciscoasa(config)# user-identity action netbios-response-fail remove-user-ip
For example, the network connection might be blocked to that client or the client is not active.
When this command is configured, the ASA removes the user identity-IP address mapping for that client.
By default, this command is disabled.
Step 8 Specify the action when the domain is down, because the Active Directory domain controller is not
responding.
user-identity action domain-controller-down domain_nickname disable-user-identity-rule
Example:
ciscoasa(config)# user-identity action domain-controller-down SAMPLE
disable-user-identity-rule
When the domain is down and the disable-user-identity-rule keyword is configured, the ASA disables
the user identity-IP address mapping for that domain. Additionally, the status of all user IP addresses in
that domain are marked as disabled in the output displayed by the show user-identity user command.
By default, this command is disabled.
Step 9 Enable user-not-found tracking. By default, this command is disabled.
user-identity user-not-found enable
Example:
ciscoasa(config)# user-identity user-not-found enable
Example:
ciscoasa(config)# user-identity action ad-agent-down disable-user-identity-rule
When the AD Agent is down and this command is configured, the ASA disables the user identity rules
associated with the users in that domain. Additionally, the status of all user IP addresses in that domain
is marked as disabled in the output displayed by the show user-identity user command.
By default, this command is disabled.
Step 11 Specify the action when a user's MAC address is found to be inconsistent with the ASA IP address
currently mapped to that MAC address.
user-identity action mac-address-mismatch remove-user-ip
Example:
ciscoasa(config)# user-identity action mac-address-mismatch remove-user-ip
When this command is configured, the ASA removes the user identity-IP address mapping for that client.
By default, the ASA uses the remove-user-ip keyword when this command is specified.
Step 12 Define how the ASA retrieves the user identity-IP address mapping information from the AD Agent.
user-identity ad-agent active-user-database {on-demand | full-download}
Example:
ciscoasa(config)# user-identity ad-agent active-user-database full-download
Example:
ciscoasa(config)# user-identity ad-agent hello-timer seconds 20 retry-times 3
The hello timer between the ASA and the AD Agent defines how frequently the ASA exchanges hello
packets. The ASA uses the hello packet to obtain ASA replication status (in-sync or out-of-sync) and
domain status (up or down). If the ASA does not receive a response from the AD Agent, it resends a hello
packet after the specified interval.
By default, the hello timer is set to 30 seconds and 5 retries.
Step 14 Enable the ASA to keep track of the last event time stamp that it receives for each identifier and to
discard any message if the event time stamp is at least 5 minutes older than the ASA’s clock, or if its
time stamp is earlier than the last event’s time stamp.
user-identity ad-agent event-timestamp-check
Example:
ciscoasa(config)# user-identity ad-agent event-timestamp-check
For a newly booted ASA that does not have knowledge of the last event time stamp, the ASA compares
the event time stamp with its own clock. If the event is at least 5 minutes older, the ASA does not accept
the message.
We recommend that you configure the ASA, Active Directory, and Active Directory agent to synchronize
their clocks among themselves using NTP.
Step 15 Define the server group of the AD Agent.
user-identity ad-agent aaa-server aaa_server_group_tag
Example:
ciscoasa(config)# user-identity ad-agent aaa-server adagent
For the aaa_server_group_tag argument, enter the value defined by the aaa-server command.
Related Topics
• Chapter 18, “Access Control Lists.”
• Configure Local User Groups, page 17-7
Procedure
Step 1 Activate the collection of user statistics by the Modular Policy Framework and matches lookup actions
for the Identify Firewall.
user-statistics [accounting | scanning]
Example:
ciscoasa(config)# class-map c-identity-example-1
ciscoasaciscoasa(config-cmap)# match access-list identity-example-1
ciscoasaciscoasa(config-cmap)# exit
ciscoasaciscoasa(config)# policy-map p-identity-example-1
ciscoasaciscoasa(config-pmap)# class c-identity-example-1
ciscoasaciscoasa(config-pmap)# user-statistics accounting
ciscoasaciscoasa(config-pmap)# exit
ciscoasaciscoasa(config)# service-policy p-identity-example-1 interface outside
The accounting keyword specifies that the ASA collect the sent packet count, sent drop count, and
received packet count. The scanning keyword specifies that the ASA collect only the sent drop count.
When you configure a policy map to collect user statistics, the ASA collects detailed statistics for
selected users. When you specify the user-statistics command without the accounting or scanning
keywords, the ASA collects both accounting and scanning statistics.
ciscoasa(config)# access-list AUTH extended permit tcp any 172.1.1.118 255.255.255.255 eq http
ciscoasa(config)# access-list AUTH extended permit tcp any 172.1.1.118 255.255.255.255 eq https
ciscoasa(config)# aaa-server LDAP protocol ldap
ciscoasa(config-aaa-server-group)# aaa-server LDAP (inside) host 171.1.2.93
ciscoasa(config-aaa-server-host)# ldap-base-dn DC=cisco,DC=com
ciscoasa(config-aaa-server-host)# ldap-group-base-dn DC=cisco,DC=com
ciscoasa(config-aaa-server-host)# ldap-scope subtree
ciscoasa(config-aaa-server-host)# ldap-login-dn cn=kao,OU=Employees,OU=Cisco Users,DC=cisco,DC=com
ciscoasa(config-aaa-server-host)# ldap-login-password *****
ciscoasa(config-aaa-server-host)# ldap-over-ssl enable
ciscoasa(config-aaa-server-host)# server-type microsoft
ciscoasa(config-aaa-server-host)# aaa authentication match AUTH inside LDAP
ciscoasa(config)#
ciscoasa(config)# http server enable
ciscoasa(config)# http 0.0.0.0 0.0.0.0 inside
ciscoasa(config)#
ciscoasa(config)# auth-prompt prompt Enter Your Authentication
ciscoasa(config)# auth-prompt accept You are Good
ciscoasa(config)# auth-prompt reject Goodbye
Note IDFW rules can only be applied to VPN filters under group policy and are not available in all of the other
group policy features.
vpn-filter value v1
vpn-tunnel-protocol ikev1 l2tp-ipsec ssl-client ssl-clientless
This command shows the status of the AD Agent and the domains.
• show user-identity ad-agent statistics
This command shows the statistics for the AD Agent.
• show user-identity memory
This command shows the memory usage of various modules in the Identity Firewall.
• show user-identity user all list
This command shows information about all users contained in the IP-user mapping database used
by the Identity Firewall.
• show user-identity user active user domain\user-name list detail
This command shows additional information about an active user.
• show user-identity group
This command shows the list of user groups configured for the Identity Firewall.
This chapter describes how to integrate the ASA with Cisco TrustSec.
• About Cisco TrustSec, page 33-1
• Guidelines for Cisco TrustSec, page 33-11
• Configure the AAA Server for Cisco TrustSec Integration, page 33-13
• Example for Cisco TrustSec, page 33-25
• AnyConnect VPN Support for Cisco TrustSec, page 33-26
• History for Cisco TrustSec, page 33-28
• Offers exceptional control over activity of network users accessing physical or cloud-based IT
resources
• Reduces total cost of ownership through centralized, highly secure access policy management and
scalable enforcement mechanisms
• For more information, see the following URLs:
Reference Description
http://www.cisco.com/c/en/us/soluti Describes the Cisco TrustSec system and architecture for
ons/enterprise-networks/trustsec/ind the enterprise.
ex.html
http://www.cisco.com/c/en/us/soluti Provides instructions for deploying the Cisco TrustSec
ons/enterprise/design-zone-security/ solution in the enterprise, including links to component
landing_DesignZone_TrustSec.html design guides.
http://www.cisco.com/c/en/us/soluti Provides an overview of the Cisco TrustSec solution when
ons/collateral/enterprise-networks/tr used with the ASA, switches, wireless LAN (WLAN)
ustsec/solution_overview_c22-5917 controllers, and routers.
71.pdf
http://www.cisco.com/c/en/us/soluti Provides the Cisco TrustSec Platform Support Matrix,
ons/enterprise-networks/trustsec/tru which lists the Cisco products that support the Cisco
stsec_matrix.html TrustSec solution.
• User identity and resource identity are retained throughout the Cisco TrustSec-capable switch
infrastructure.
Figure 33-1 show a deployment for security group name-based policy enforcement.
Mktg servers
SXP SXP
End Points
(Access Requestors) Corp servers
304015
Implementing Cisco TrustSec allows you to configure security policies that support server segmentation
and includes the following features:
• A pool of servers can be assigned an SGT for simplified policy management.
• The SGT information is retained within the infrastructure of Cisco TrustSec-capable switches.
• The ASA can use the IP-SGT mapping for policy enforcement across the Cisco TrustSec domain.
• Deployment simplification is possible because 802.1x authorization for servers is mandatory.
Note User-based security policies and security-group based policies can coexist on the ASA. Any combination
of network, user-based, and security-group based attributes can be configured in a security policy.
To configure the ASA to function with Cisco TrustSec, you must import a Protected Access Credential
(PAC) file from the ISE.
Importing the PAC file to the ASA establishes a secure communication channel with the ISE. After the
channel is established, the ASA initiates a PAC secure RADIUS transaction with the ISE and downloads
Cisco TrustSec environment data (that is, the security group table). The security group table maps SGTs
to security group names. Security group names are created on the ISE and provide user-friendly names
for security groups.
The first time that the ASA downloads the security group table, it walks through all entries in the table
and resolves all the security group names included in security policies that have been configured on it;
then the ASA activates those security policies locally. If the ASA cannot resolve a security group name,
it generates a syslog message for the unknown security group name.
AD (PIP)
ISE (PDP/PAP)
Network
SXP SXP Data Flow
End-Point Access Switch Firewall
(AR) Switch (PEP) (PEP)
(PEP)
304016
Tag Policy Tag Policy
1. An endpoint device connects to an access layer device directly or via remote access and
authenticates with Cisco TrustSec.
2. The access layer device authenticates the endpoint device with the ISE by using authentication
methods such as 802.1X or web authentication. The endpoint device passes role and group
membership information to classify the device into the appropriate security group.
3. The access layer device uses SXP to propagate the IP-SGT mapping to the upstream devices.
4. The ASA receives the packet and looks up the SGTs for the source and destination IP addresses
using the IP-SGT mapping passed by SXP.
If the mapping is new, the ASA records it in its local IP-SGT Manager database. The IP-SGT
Manager database, which runs in the control plane, tracks IP-SGT mapping for each IPv4 or IPv6
address. The database records the source from which the mapping was learned. The peer IP address
of the SXP connection is used as the source of the mapping. Multiple sources can exist for each
IP-SGT mapped entry.
If the ASA is configured as a Speaker, the ASA transmits all IP-SGT mapping entries to its SXP
peers.
5. If a security policy is configured on the ASA with that SGT or security group name, the ASA
enforces the policy. (You can create security policies on the ASA that include SGTs or security
group names. To enforce policies based on security group names, the ASA needs the security group
table to map security group names to SGTs.)
If the ASA cannot find a security group name in the security group table and it is included in a
security policy, the ASA considers the security group name to be unknown and generates a syslog
message. After the ASA refreshes the security group table from the ISE and learns the security group
name, the ASA generates a syslog message indicating that the security group name is known.
Tip We recommend that you schedule policy configuration changes on the ISE during a maintenance
window, then manually refresh the security group table on the ASA to make sure the security group
changes have been incorporated.
Handling policy configuration changes in this way maximizes the chances of security group name
resolution and immediate activation of security policies.
The security group table is automatically refreshed when the environment data timer expires. You can
also trigger a security group table refresh on demand.
If a security group changes on the ISE, the following events occur when the ASA refreshes the security
group table:
• Only security group policies that have been configured using security group names need to be
resolved with the security group table. Policies that include security group tags are always active.
• When the security group table is available for the first time, all policies with security group names
are walked through, security group names are resolved, and policies are activated. All policies with
tags are walked through, and syslogs are generated for unknown tags.
• If the security group table has expired, policies continue to be enforced according to the most
recently downloaded security group table until you clear it, or a new table becomes available.
• When a resolved security group name becomes unknown on the ASA, it deactivates the security
policy; however, the security policy persists in the ASA running configuration.
• If an existing security group is deleted on the PAP, a previously known security group tag can
become unknown, but no change in policy status occurs on the ASA. A previously known security
group name can become unresolved, and the policy is then inactivated. If the security group name
is reused, the policy is recompiled using the new tag.
• If a new security group is added on the PAP, a previously unknown security group tag can become
known, a syslog message is generated, but no change in policy status occurs. A previously unknown
security group name can become resolved, and associated policies are then activated.
• If a tag has been renamed on the PAP, policies that were configured using tags display the new name,
and no change in policy status occurs. Policies that were configured with security group names are
recompiled using the new tag value.
If one end of an SXP connection is configured as a Speaker, then the other end must be configured as a
Listener, and vice versa. If both devices on each end of an SXP connection are configured with the same
role (either both as Speakers or both as Listeners), the SXP connection fails and the ASA generates a
syslog message.
Multiple SXP connections can learn IP-SGT mapping entries that have been downloaded from the
IP-SGT mapping database. After an SXP connection to an SXP peer is established on the ASA, the
Listener downloads the entire IP-SGT mapping database from the Speaker. All changes that occur after
this are sent only when a new device appears on the network. As a result, the rate of SXP information
flow is proportional to the rate at which end hosts authenticate to the network.
IP-SGT mapping entries that have been learned through SXP connections are maintained in the SXP
IP-SGT mapping database. The same mapping entries may be learned through different SXP
connections. The mapping database maintains one copy for each mapping entry learned. Multiple
mapping entries of the same IP-SGT mapping value are identified by the peer IP address of the
connection from which the mapping was learned. SXP requests that the IP-SGT Manager add a mapping
entry when a new mapping is learned the first time and remove a mapping entry when the last copy in
the SXP database is removed.
Whenever an SXP connection is configured as a Speaker, SXP requests that the IP-SGT Manager
forward all the mapping entries collected on the device to the peer. When a new mapping is learned
locally, the IP-SGT Manager requests that SXP forward it through connections that are configured as
Speakers.
Configuring the ASA to be both a Speaker and a Listener for an SXP connection can cause SXP looping,
which means that SXP data can be received by an SXP peer that originally transmitted it.
SXP Chattiness
The rate of SXP information flow is proportional to the rate at which end hosts authenticate into the
network. After an SXP peering is established, the listener device downloads the entire IP-SGT database
from the speaker device. After that, all changes are sent incrementally only when a new device appears
on the network or leaves the network. Also, note that only access devices that are attached to the new
device initiate this incremental update to the upstream device.
In other words, SXP protocol is no chattier than the authentication rate, which is limited to the capability
of the authentication server. Therefore, SXP chattiness is not a major concern.
SXP Timers
• Retry Open Timer—The retry open timer is triggered if one SXP connection on the device is not up.
After the retry open timer expires, the device goes through the entire connection database and if any
connection is in the off or “pending on” state, the retry open timer restarts. The default timer value
is 120 seconds. A zero value means the retry timer does not start. The retry open timer continues
until all the SXP connections are set up, or the retry open timer has been configured to be 0.
• Delete Hold-Down Timer—The connection-specific delete hold-down timer is triggered when a
connection on the Listener is torn down. The mapping entries that have been learned are not deleted
immediately, but are held until the delete hold-down timer expires. The mapping entries are deleted
after this timer expires. The delete hold-down timer value is set to 120 seconds and is not
configurable.
• Reconciliation Timer—If an SXP connection is brought up within the delete hold-down timer
period, a bulk update is performed on this connection. This means that the most recent mapping
entries are learned and are associated with a new connection instantiation identifier. A periodic,
connection-specific reconciliation timer starts in the background. When this reconciliation timer
expires, it scans the entire SXP mapping database and identifies all mapping entries that have not
been learned in the current connection session (that is, mapping entries with an unmatched
connection instantiation identifier), and marks them for deletion. These entries are deleted in the
subsequent reconciliation review. The default reconciliation timer value is 120 seconds. A zero
value is not allowed on the ASA to prevent obsolete entries from staying for an unspecified length
of time and causing unexpected results in policy enforcement.
• HA Reconciliation Timer—When HA is enabled, the SXP mapping database of the active and
standby units are in sync. The new active unit tries to establish new SXP connections to all its peers
and acquires the latest mapping entries. An HA reconciliation timer provides a way of identifying
and removing old mapping entries. It starts after a failover occurs, which gives the ASA time to
acquire the latest mapping entries. After the HA reconciliation timer expires, the ASA scans the
entire SXP mapping database and identifies all the mapping entries have not been learned in the
current connection session. Mapping entries with unmatched instantiation identifiers are marked for
deletion. This reconciliation mechanism is the same as that of the reconciliation timer. The time
value is the same as the reconciliation timer and is configurable.
After an SXP peer terminates its SXP connection, the ASA starts a delete hold-down timer. Only
SXP peers designated as Listeners can terminate a connection. If an SXP peer connects while the
delete hold-down timer is running, the ASA starts the reconciliation timer; then the ASA updates
the IP-SGT mapping database to learn the most recent mapping.
Flexibility
• The ASA can be configured as an SXP Speaker or Listener, or both.
• The ASA supports SXP for IPv6 and IPv6-capable network devices.
• SXP can change mapping entries for IPv4 and IPv6 addresses.
• SXP endpoints support IPv4 and IPv6 addresses.
• The ASA supports SXP Version 2 only.
• The ASA negotiates SXP versions with different SXP-capable network devices. SXP version
negotiation eliminates the need for static configuration of versions.
• You can configure the ASA to refresh the security group table when the SXP reconcile timer expires
and you can download the security group table on demand. When the security group table on the
ASA is updated from the ISE, changes are reflected in the appropriate security policies.
• The ASA supports security policies based on security group names in the source or destination
fields, or both. You can configure security policies on the ASA based on combinations of security
groups, IP address, Active Directory group/user name, and FQDN.
Availability
• You can configure security group-based policies on the ASA in both the Active/Active and
Active/Standby configurations.
• The ASA can communicate with the ISE configured for high availability (HA).
• You can configure multiple ISE servers on the ASA and if the first server is unreachable, it continues
to the next server, and so on. However, if the server list is downloaded as part of the Cisco TrustSec
environment data, it is ignored.
• If the PAC file downloaded from the ISE expires on the ASA and it cannot download an updated
security group table, the ASA continues to enforce security policies based on the last downloaded
security group table until the ASA downloads an updated table.
Clustering
• For Layer 2 networks, all units share the same IP address. When you change the interface address,
the changed configuration is sent to all other units. When the IP address is updated from the interface
of a particular unit, a notification is sent to update the IP-SGT local database on this unit.
• For Layer 3 networks, a pool of addresses is configured for each interface on the master unit, and
this configuration is synchronized to the slave units. On the master unit, a notification of the IP
addresses that have been assigned to the interface is sent, and the IP-SGT local database is updated.
The IP-SGT local database on each slave unit can be updated with the IP address information for the
master unit by using the address pool configuration that has been synchronized to it, where the first
address in the pool for each interface always belongs to the master unit.
When a slave unit boots, it notifies the master unit. Then the master unit goes through the address
pool on each interface and computes the IP address for the new slave unit that sent it the notification,
and updates the IP-SGT local database on the master unit. The master unit also notifies the other
slave units about the new slave unit. As part of this notification processing, each slave unit computes
the IP address for the new slave unit and adds this entry to the IP-SGT local database on each slave
unit. All the slave units have the address pool configuration to determine the IP address value. For
each interface, the value is determined as follows:
Master IP + (M-N), where:
M—Maximum number of units (up to 8 are allowed)
N—Slave unit number that sent the notification
When the IP address pool changes on any interface, the IP addresses for all the slave units and the
master unit need to be recalculated and updated in the IP-SGT local database on the master unit, as
well as on every other slave unit. The old IP address needs to be deleted, and the new IP address
needs to be added.
When this changed address pool configuration is synchronized to the slave unit, as a part of
configuration change processing, each slave unit recomputes the IP address for the master unit and
for every other slave unit whose IP address has changed, then removes the entry for the old IP
address and adds the new IP address.
Scalability
Table 33-1 show the number of IP-SGT mapping entries that the ASA supports.
Table 33-2 shows the number of SXP connections that the ASA supports.
2. Choose Policy > Policy Elements > Results > Security Group Access > Security Group.
3. Add a security group for the ASA. (Security groups are global and not ASA specific.)
The ISE creates an entry under Security Groups with a tag.
4. In the Security Group Access area, configure device ID credentials and a password for the ASA.
Note The PAC file includes a shared key that allows the ASA and ISE to secure the RADIUS transactions that
occur between them. For this reason, make sure that you store it securely on the ASA.
Clustering
• When the ASA is part of a clustering configuration, you must import the PAC file to the master unit.
• When the ASA is part of a clustering configuration, you must refresh the environment data on the
master unit.
IPv6
The ASA supports SXP for IPv6 and IPv6-capable network devices. The AAA server must use an IPv4
address.
Additional Guidelines
• Cisco TrustSec supports the Smart Call Home feature in single context and multi-context mode, but
not in the system context.
• The ASA can only be configured to interoperate in a single Cisco TrustSec domain.
• The ASA does not support static configuration of SGT-name mapping on the device.
• NAT is not supported in SXP messages.
• SXP conveys IP-SGT mapping to enforcement points in the network. If an access layer switch
belongs to a different NAT domain than the enforcing point, the IP-SGT map that it uploads is
invalid, and an IP-SGT mapping database lookup on the enforcement device does not yield valid
results. As a result, the ASA cannot apply security group-aware security policy on the enforcement
device.
• You can configure a default password for the ASA to use for SXP connections, or you can choose
not to use a password; however, connection-specific passwords are not supported for SXP peers. The
configured default SXP password should be consistent across the deployment network. If you
configure a connection-specific password, connections may fail and a warning message appears. If
you configure the connection with the default password, but it is not configured, the result is the
same as when you have configured the connection with no password.
• SXP connection loops can form when a device has bidirectional connections to a peer or is part of
a unidirectionally connected chain of devices. (The ASA can learn IP-SGT mapping for resources
from the access layer in the data center. The ASA might need to propagate these tags to downstream
devices.) SXP connection loops can cause unexpected behavior of SXP message transport. In cases
where the ASA is configured to be a Speaker and Listener, an SXP connection loop can occur,
causing SXP data to be received by the peer that originally transmitted it.
• When changing the ASA local IP address, you must ensure that all SXP peers have updated their
peer list. In addition, if SXP peers changes its IP addresses, you must ensure those changes are
reflected on the ASA.
• Automatic PAC file provisioning is not supported. The ASA administrator must request the PAC file
from the ISE administrative interface and import it into the ASA.
• PAC files have expiration dates. You must import the updated PAC file before the current PAC file
expires; otherwise, the ASA cannot retrieve environment data updates.
• When a security group changes on the ISE (for example, it is renamed or deleted), the ASA does not
change the status of any ASA security policies that contain an SGT or security group name
associated with the changed security group; however, the ASA generates a syslog message to
indicate that those security policies changed.
• The multi-cast types are not supported in ISE 1.0.
• An SXP connection stays in the initializing state among two SXP peers interconnected by the ASA;
as shown in the following example:
(SXP peer A) - - - - (ASA) - - - (SXP peer B)
Therefore, when configuring the ASA to integrate with Cisco TrustSec, you must enable the
no-NAT, no-SEQ-RAND, and MD5-AUTHENTICATION TCP options on the ASA to configure
SXP connections. Create a TCP state bypass policy for traffic destined to SXP port TCP 64999
among the SXP peers. Then apply the policy on the appropriate interfaces.
For example, the following set of commands shows how to configure the ASA for a TCP state bypass
policy:
access-list SXP-MD5-ACL extended permit tcp host peerA host peerB eq 64999
access-list SXP-MD5-ACL extended permit tcp host peerB host peerA eq 64999
tcp-map SXP-MD5-OPTION-ALLOW
tcp-options range 19 19 allow
class-map SXP-MD5-CLASSMAP
match access-list SXP-MD5-ACL
To configure the AAA server group to communicate with the ISE on the ASA, perform the following
steps:
Procedure
Step 1 Create the AAA server group and configure the AAA server parameters for the ASA to communicate
with the ISE server.
aaa-server server-tag protocol radius
Example:
ciscoasa(config)# aaa-server ISEserver protocol radius
Example:
ciscoasa(config-aaa-server-group)# exit
Step 3 Configure a AAA server as part of a AAA server group and set host-specific connection data.
ciscoasa(config)# aaa-server server-tag (interface-name) host server-ip
Example:
ciscoasa(config)# aaa-server ISEserver (inside) host 192.0.2.1
The interface-name argument specifies the network interface where the ISE server resides. The
parentheses are required in this parameter. The server-tag argument is the name of the AAA server
group. The server-ip argument specifies the IP address of the ISE server.
Step 4 Specify the server secret value used to authenticate the ASA with the ISE server.
key key
Example:
ciscoasa(config-aaa-server-host)# key myexclusivekey
Example:
ciscoasa(config-aaa-server-host)# exit
Step 6 Identify the AAA server group that is used by Cisco TrustSec for environment data retrieval.
cts server-group AAA-server-group-name
Example:
ciscoasa(config)# cts server-group ISEserver
The AAA-server-group-name argument is the name of the AAA server group that you specified in Step
1 in the server-tag argument.
Note You may configure only one instance of the server group on the ASA for Cisco TrustSec.
Examples
The following example shows how to configure the ASA to communicate with the ISE server for Cisco
TrustSec integration:
ciscoasa(config)# aaa-server ISEserver protocol radius
ciscoasa(config-aaa-server-group)# exit
ciscoasa(config)# aaa-server ISEserver (inside) host 192.0.2.1
ciscoasa(config-aaa-server-host)# key myexclusivemumblekey
ciscoasa(config-aaa-server-host)# exit
ciscoasa(config)# cts server-group ISEserver
Step 7
Procedure
Example:
ciscoasa(config)# cts import-pac disk0:/xyz.pac password IDFW-pac99
The value argument specifies the password used to encrypt the PAC file. The password is independent
of the password that was configured on the ISE as part of the device credentials. The filepath argument
is entered as one of the following options:
Single Mode
• disk0: Path and filename on disk0
Multi-mode
• http: Path and filename on HTTP
• https: Path and filename on HTTPS
• smb: Path and filename on SMB
• tftp: Path and filename on TFTP
Examples
The following example shows how to import a PAC file into the ASA:
ciscoasa(config)# cts import pac disk0:/pac123.pac password hideme
PAC file successfully imported
The following example shows how to use the terminal to import a PAC file into the ASA:
ciscoasa(config)# cts import-pac terminal password A9875Za551
Enter the PAC file data in ASCII hex format
End with the word "quit" on a line by itself.
ciscoasa(exec_pac_hex)# 01002904050000010000000000000000
ciscoasa(exec_pac_hex)# 00000000000000001111111111111111
ciscoasa(exec_pac_hex)# 11111111111111112222222222222222
ciscoasa(exec_pac_hex)# 222222222222222276d7d64b6be4804b
ciscoasa(exec_pac_hex)# 0b4fdca3aeee11950ecd0e47c34157e5
ciscoasa(exec_pac_hex)# 25f4964ed75835cde0adb7e198e0bcdb
ciscoasa(exec_pac_hex)# 6aa8e363b0e4f9b4ac241be9ab576d0b
ciscoasa(exec_pac_hex)# a1fcd34e5dd05dbe1312cbfea072fdb9
ciscoasa(exec_pac_hex)# ee356fb61fe987d2d8f0ac3ef0467627
ciscoasa(exec_pac_hex)# 7f8b137da2b840e16da520468b039bae
ciscoasa(exec_pac_hex)# 36a4d844acc85cdefd7cb2cc58787590
ciscoasa(exec_pac_hex)# ef123882a69b6c37bdbc9320e403024f
ciscoasa(exec_pac_hex)# 354d42f404ec2d67ef3606575014584b
ciscoasa(exec_pac_hex)# 2796e65ccd6e6c8d14d92448a8b24f6e
ciscoasa(exec_pac_hex)# 47015a21f4f66cf6129d352bdfd4520f
ciscoasa(exec_pac_hex)# 3f0c6f340a80715df4498956efe15dec
ciscoasa(exec_pac_hex)# c08bb9a58cb6cb83ac91a3c40ce61de0
ciscoasa(exec_pac_hex)# 284b743e52fd68e848685e2d78c33633
ciscoasa(exec_pac_hex)# f2b4c5824138fc7bac9d9b83ac58ff9f
ciscoasa(exec_pac_hex)# 1dbc84c416322f1f3c5951cf2132994a
ciscoasa(exec_pac_hex)# a7cf20409df1d0d6621eba2b3af83252
ciscoasa(exec_pac_hex)# 70d0130650122bdb13a83b2dae55533a
ciscoasa(exec_pac_hex)# 4a394f21b441e164
ciscoasa(exec_pac_hex)# quit
PAC Imported Successfully
ciscoasa(config)#
Note When SXP is enabled with all interfaces down, the ASA does not display a message indicating that SXP
is not working or it could not be enabled. If you check the configuration by entering the show
running-config command, the command output displays the following message:
“WARNING: SXP configuration in process, please wait for a few moments and try again.”
This message is generic and does not specify the reason why SXP is not working.
Procedure
Example:
ciscoasa(config)# cts sxp enable
Example:
ciscoasa(config)# cts sxp default source-ip 192.168.1.100
Example:
ciscoasa(config)# cts sxp default password 8 IDFW-TrustSec-99
Configuring an encryption level for the password is optional. If you configure an encryption level, you
can only set one level:
• Level 0—unencrypted cleartext
• Level 8—encrypted text
The password argument specifies an encrypted string of up to 162 characters or an ASCII key string up
to 80 characters.
Step 4 Specify the default time interval between ASA attempts to set up new SXP connections between SXP
peers.
cts sxp retry period timervalue
Example:
ciscoasa(config)# cts sxp retry period 60
The ASA continues to make connection attempts until a successful connection is made. The retry timer
is triggered as long as there is one SXP connection on the ASA that is not up.
The timervalue argument ranges from 0 to 64000 seconds. The default is 120 seconds. If you specify 0
seconds, the timer never expires and the ASA does not try to connect to SXP peers.
When the retry timer expires, the ASA goes through the connection database and if the database contains
any connections that are off or in a “pending on” state, the ASA restarts the retry timer.
We recommend that you configure the retry timer to a different value from its SXP peer devices.
Step 5 Specify the value of the default reconcile timer.
cts sxp reconciliation period timervalue
Example:
ciscoasa(config)# cts sxp reconciliation period 60
After an SXP peer terminates its SXP connection, the ASA starts a hold-down timer.
If an SXP peer connects while the hold-down timer is running, the ASA starts the reconcile timer; then
the ASA updates the SXP mapping database to learn the latest mapping.
When the reconcile timer expires, the ASA scans the SXP mapping database to identify stale mapping
entries (which were learned in a previous connection session). The ASA marks these connections as
obsolete. When the reconcile timer expires, the ASA removes the obsolete entries from the SXP mapping
database.
The timervalue argument ranges from 1 to 64000 seconds. The default is 120 seconds.
You cannot specify 0 seconds for the timer, because this value prevents the reconcile timer from starting.
Not allowing the reconcile timer to run would keep stale entries for an undefined time and cause
unexpected results from policy enforcement.
Examples
The following example shows how to set default values for SXP:
ciscoasa(config)# cts sxp enable
ciscoasa(config)# cts sxp default source-ip 192.168.1.100
ciscoasa(config)# cts sxp default password 8 ********
ciscoasa(config)# cts sxp retry period 60
ciscoasa(config)# cts sxp reconcile period 60
Procedure
Example:
ciscoasa(config)# cts sxp enable
Example:
ciscoasa(config)# cts sxp connection peer 192.168.1.100 password default mode peer speaker
SXP connections are set per IP address; a single device pair can service multiple SXP connections.
The peer_ip_address argument is the IPv4 or IPv6 address of the SXP peer. The peer IP address must be
reachable from the ASA outgoing interface.
The source_ip_address argument is the local IPv4 or IPv6 address of the SXP connection. The source
IP address must be the same as the ASA outbound interface or the connection fails.
We recommend that you do not configure a source IP address for an SXP connection and allow the ASA
to perform a route/ARP lookup to determine the source IP address for the SXP connection.
Indicate whether or not to use the authentication key for the SXP connection:
• default—Use the default password configured for SXP connections.
• none—Do not use a password for the SXP connection.
Indicate the mode of the SXP connection:
• local—Use the local SXP device.
• peer—Use the peer SXP device.
Indicate whether the ASA functions as a Speaker or Listener for the SXP connection.
• speaker— The ASA can forward IP-SGT mapping to upstream devices.
• listener—The ASA can receive IP-SGT mapping from downstream devices.
Examples
The following example shows how to configure SXP peers on the ASA:
ciscoasa(config)# cts sxp enable
ciscoasa(config)# cts sxp connection peer 192.168.1.100 password default mode peer speaker
ciscoasa(config)# cts sxp connection peer 192.168.1.101 password default mode peer
ciscoasa(config)# no cts sxp connection peer 192.168.1.100
ciscoasa(config)# cts sxp connection peer 192.168.1.100 source 192.168.1.1 password default mode peer speaker
ciscoasa(config)# no cts sxp connection peer 192.168.1.100 source 192.168.1.1 password default mode peer
speaker
Note We recommend that you schedule policy configuration changes on the ISE and the manual data refresh
on the ASA during a maintenance window. Handling policy configuration changes in this way
maximizes the chances of security group names getting resolved and security policies becoming active
immediately on the ASA.
Procedure
Step 1 Refresh the environment data from the ISE and reset the reconcile timer to the configured default value.
cts refresh environment-data
Example:
ciscoasa(config)# cts refresh environment-data
Examples
The following example shows how to create an ACL that uses a locally defined security object group:
object-group security objgrp-it-admin
security-group name it-admin-sg-name
security-group tag 1
object-group security objgrp-hr-admin
security-group name hr-admin-sg-name // single sg_name
group-object it-admin // locally defined object-group as nested object
object-group security objgrp-hr-servers
security-group name hr-servers-sg-name
object-group security objgrp-hr-network
security-group tag 2
access-list hr-acl permit ip object-group-security objgrp-hr-admin any
object-group-security objgrp-hr-servers
The ACL configured in the previous example can be activated by configuring an access group or the
Modular Policy Framework.
Additional examples:
!match src hr-admin-sg-name from any network to dst host 172.23.59.53
access-list idw-acl permit ip security-group name hr-admin-sg-name any host 172.23.59.53
!match src hr-admin-sg-name from host 10.1.1.1 to dst any
access-list idfw-acl permit ip security-group name hr-admin-sg-name host 10.1.1.1 any
!match src tag 22 from any network to dst hr-servers-sg-name any network
access-list idfw-acl permit ip security-group tag 22 any security-group name hr-servers-sg-name any
!match src user mary from any host to dst hr-servers-sg-name any network
access-list idfw-acl permit ip user CSCO\mary any security-group name hr-servers-sg-name any
!match src objgrp-hr-admin from any network to dst objgrp-hr-servers any network
access-list idfw-acl permit ip object-group-security objgrp-hr-admin any object-group-security
objgrp-hr-servers any
!match src user Jack from objgrp-hr-network and ip subnet 10.1.1.0/24 to dst objgrp-hr-servers any network
access-list idfw-acl permit ip user CSCO\Jack object-group-security objgrp-hr-network 10.1.1.0
255.255.255.0 object-group-security objgrp-hr-servers any
!match src user Tom from security-group mktg any google.com
object network net-google
fqdn google.com
access-list sgacl permit ip sec name mktg any object net-google
! If user Tom or object_group security objgrp-hr-admin needs to be matched, multiple ACEs can be defined as
follows:
access-list idfw-acl2 permit ip user CSCO\Tom 10.1.1.0 255.255.255.0 object-group-security
objgrp-hr-servers any
access-list idfw-acl2 permit ip object-group-security objgrp-hr-admin 10.1.1.0 255.255.255.0
object-group-security objgrp-hr-servers any
based on a manual per-interface configuration. This feature allows inline hop-by-hop propagation of
endpoint identity across network devices and provides seamless Layer 2 SGT Imposition between each
hop.
Figure 33-3 shows a typical example of Layer 2 SGT Imposition.
ISE
Switch Router
372270
User 1 Server
Usage Scenarios
Table 33-3 describes the expected behavior for ingress traffic when configuring this feature.
Note If there is no matched IP-SGT mapping from the IP-SGT Manager, then a reserved SGT value of “0x0”
for “Unknown” is used.
Table 33-4 describes the expected behavior for egress traffic when configuring this feature.
Table 33-5 describes the expected behavior for to-the-box and from-the-box traffic when configuring
this feature.
Note If there is no matched IP-SGT mapping from the IP-SGT Manager, then a reserved SGT value of “0x0”
for “Unknown” is used.
Procedure
Example:
ciscoasa(config)# interface gi0/0
Step 2 Enable Layer 2 SGT Imposition and enter cts manual interface configuration mode.
cts manual
Example:
ciscoasa(config-if)# cts manual
Step 3 Enable propagation of a security group tag on an interface. Propagation is enabled by default.
propagate sgt
Example:
ciscoasa(config-if-cts-manual)# propagate sgt
Example:
ciscoasa(config-if-cts-manual)# policy static sgt 50 trusted
The static keyword specifies an SGT policy to incoming traffic on the link.
The sgt sgt_number keyword-argument pair specifies the SGT number to apply to incoming traffic from
the peer. Valid values are from 2-65519.
The trusted keyword indicates that ingress traffic on the interface with the SGT specified in the
command should not have its SGT overwritten. Untrusted is the default.
Examples
The following example enables an interface for Layer 2 SGT imposition and defines whether or not the
interface is trusted:
ciscoasa(config)# interface gi0/0
ciscoasa(config-if)# cts manual
ciscoasa(config-if-cts-manual)# propagate sgt
ciscoasa(config-if-cts-manual)# policy static sgt 50 trusted
Procedure
Example:
ciscoasa(config)# cts role-based sgt-map 10.2.1.2 sgt 50
The sgt sgt_value keyword-argument pair specifies the SGT number. Valid values are from 2-65519.
Troubleshooting Tips
Use the packet-tracer command to determine why a particular session was allowed or denied, which
SGT value is being used (from the SGT in the packet, from the IP-SGT manager, or from the policy
static sgt command configured on the interface), and which security group-based security policies were
applied.
The following example displays output from the packet-tracer command to show security group tag
mapping to an IP address:
ciscoasa# packet-tracer input inside tcp inline-tag 100 security-group name alpha 30
security-group tag 31 300
Mapping security-group 30:alpha to IP address 10.1.1.2.
Mapping security-group 31:bravo to IP address 192.168.1.2.
Phase: 1
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:
Additional Information:
in 192.168.1.0 255.255.255.0 outside....
----------------More---------------------
Use the capture capture-name type inline-tag tag command to capture only the Cisco CMD packets
(EtherType 0x8909) with or without a specific SGT value.
The following example displays output from the show capture command for a specified SGT value:
ciscoasa# show capture my-inside-capture
1: 11:34:42.931012 INLINE-TAG 36 10.0.101.22 > 10.0.101.100: icmp: echo request
2: 11:34:42.931470 INLINE-TAG 48 10.0.101.100 > 10.0.101.22: icmp: echo reply
3: 11:34:43.932553 INLINE-TAG 36 10.0.101.22 > 10.0.101.100: icmp: echo request
4: 11.34.43.933164 INLINE-TAG 48 10.0.101.100 > 10.0.101.22: icmp: echo reply
interface gi0/1
cts manual
propagate sgt
policy static sgt 100 trusted
cts role-based sgt-map 10.1.1.100 sgt 50
Procedure
Example:
ciscoasa(config)# group policy Grpolicy1
Step 2 Configure SGT attributes on the named group policy’s or LOCAL username’s attribute set.
security-group-tag value sgt
Example:
ciscoasa(config-group-policy# security-group-tag value 101
The default form of this command is security-group-tag none, which means that there is no security
group tag in this attribute set. Use the no security-group-tag value sgt command to return the
configuration to the default.
Platform
Feature Name Releases Description
Cisco TrustSec 9.0(1) Cisco TrustSec provides access control that builds on an existing identity-aware
infrastructure to ensure data confidentiality between network devices and
integrate security access services on one platform. In the Cisco TrustSec
feature, enforcement devices use a combination of user attributes and endpoint
attributes to make role-based and identity-based access control decisions.
In this release, the ASA integrates with Cisco TrustSec to provide security
group-based policy enforcement. Access policies within the Cisco TrustSec
domain are topology-independent, based on the roles of source and destination
devices rather than on network IP addresses.
The ASA can use Cisco TrustSec for other types of security group-based
policies, such as application inspection; for example, you can configure a class
map that includes an access policy based on a security group.
We introduced or modified the following commands: access-list extended, cts
sxp enable, cts server-group, cts sxp default, cts sxp retry period, cts sxp
reconciliation period, cts sxp connection peer, cts import-pac, cts refresh
environment-data, object-group security, security-group, show
running-config cts, show running-config object-group, clear configure cts,
clear configure object-group, show cts pac, show cts environment-data,
show cts environment-data sg-table, show cts sxp connections, show
object-group, show configure security-group, clear cts environment-data,
debug cts, and packet-tracer.
Layer 2 Security Group Tag 9.3(1) You can now use security group tagging combined with Ethernet tagging to
Imposition enforce policies. SGT plus Ethernet Tagging, also called Layer 2 SGT
Imposition, enables the ASA to send and receive security group tags on Ethernet
interfaces using Cisco proprietary Ethernet framing (EtherType 0x8909), which
allows the insertion of source security group tags into plain-text Ethernet
frames.
We introduced or modified the following commands: cts manual, policy static
sgt, propagate sgt, cts role-based sgt-map, show cts sgt-map, packet-tracer,
capture, show capture, show asp drop, show asp table classify, show
running-config all, clear configure all, and write memory.
Note CA certificates and identity certificates apply to both site-to-site VPN connections and remote access
VPN connections. Procedures in this document refer to remote access VPN use in the ASDM GUI.
Digital certificates provide digital identification for authentication. A digital certificate includes
information that identifies a device or user, such as the name, serial number, company, department, or IP
address. CAs are trusted authorities that “sign” certificates to verify their authenticity, thereby
guaranteeing the identity of the device or user. CAs issue digital certificates in the context of a PKI,
which uses public-key or private-key encryption to ensure security.
For authentication using digital certificates, at least one identity certificate and its issuing CA certificate
must exist on an ASA. This configuration allows multiple identities, roots, and certificate hierarchies.
Descriptions of several different types of available digital certificates follow:
• A CA certificate is used to sign other certificates. It is self-signed and called a root certificate.
• A certificate that is issued by another CA certificate is called a subordinate certificate.
CAs are responsible for managing certificate requests and issuing digital certificates. A digital certificate
includes information that identifies a user or device, such as a name, serial number, company,
department, or IP address. A digital certificate also includes a copy of the public key for the user or
device. A CA can be a trusted third party, such as VeriSign, or a private (in-house) CA that you establish
within your organization.
Tip For an example of a scenario that includes certificate configuration and load balancing, see the following
URL: https://supportforums.cisco.com/docs/DOC-5964.
Certificate Scalability
Without digital certificates, you must manually configure each IPsec peer for each peer with which it
communicates; as a result, each new peer that you add to a network would require a configuration change
on each peer with which it needs to communicate securely.
When you use digital certificates, each peer is enrolled with a CA. When two peers try to communicate,
they exchange certificates and digitally sign data to authenticate each other. When a new peer is added
to the network, you enroll that peer with a CA and none of the other peers need modification. When the
new peer attempts an IPsec connection, certificates are automatically exchanged and the peer can be
authenticated.
With a CA, a peer authenticates itself to the remote peer by sending a certificate to the remote peer and
performing some public key cryptography. Each peer sends its unique certificate, which was issued by
the CA. This process works because each certificate encapsulates the public key for the associated peer,
each certificate is authenticated by the CA, and all participating peers recognize the CA as an
authenticating authority. The process is called IKE with an RSA signature.
The peer can continue sending its certificate for multiple IPsec sessions, and to multiple IPsec peers,
until the certificate expires. When its certificate expires, the peer administrator must obtain a new one
from the CA.
CAs can also revoke certificates for peers that no longer participate in IPsec. Revoked certificates are
not recognized as valid by other peers. Revoked certificates are listed in a CRL, which each peer may
check before accepting a certificate from another peer.
Some CAs have an RA as part of their implementation. An RA is a server that acts as a proxy for the
CA, so that CA functions can continue when the CA is unavailable.
Key Pairs
Key pairs are RSA keys, which have the following characteristics:
• RSA keys can be used for SSH or SSL.
• SCEP enrollment supports the certification of RSA keys.
• For the purposes of generating keys, the maximum key modulus for RSA keys is 2048 bits. The
default size is 1024. Many SSL connections using identity certificates with RSA key pairs that
exceed 1024 bits can cause a high CPU usage on the ASA and rejected clientless logins.
• For signature operations, the supported maximum key size is 4096 bits. We recommend using a key
size of at least 2048.
• You can generate a general purpose RSA key pair, used for both signing and encryption, or you can
generate separate RSA key pairs for each purpose. Separate signing and encryption keys help to
reduce exposure of the keys, because SSL uses a key for encryption but not signing. However, IKE
uses a key for signing but not encryption. By using separate keys for each, exposure of the keys is
minimized.
Trustpoints
Trustpoints let you manage and track CAs and certificates. A trustpoint is a representation of a CA or
identity pair. A trustpoint includes the identity of the CA, CA-specific configuration parameters, and an
association with one, enrolled identity certificate.
After you have defined a trustpoint, you can reference it by name in commands requiring that you specify
a CA. You can configure many trustpoints.
Note If the Cisco ASA has multiple trustpoints that share the same CA, only one of these trustpoints sharing
the CA can be used to validate user certificates. To control which trustpoint sharing a CA is used for
validation of user certificates issued by that CA, use the support-user-cert-validation command.
For automatic enrollment, a trustpoint must be configured with an enrollment URL, and the CA that the
trustpoint represents must be available on the network and must support SCEP.
You can export and import the keypair and issued certificates associated with a trustpoint in PKCS12
format. This format is useful to manually duplicate a trustpoint configuration on a different ASA.
Certificate Enrollment
The ASA needs a CA certificate for each trustpoint and one or two certificates for itself, depending upon
the configuration of the keys used by the trustpoint. If the trustpoint uses separate RSA keys for signing
and encryption, the ASA needs two certificates, one for each purpose. In other key configurations, only
one certificate is needed.
The ASA supports automatic enrollment with SCEP and with manual enrollment, which lets you paste
a base-64-encoded certificate directly into the terminal. For site-to-site VPNs, you must enroll each
ASA. For remote access VPNs, you must enroll each ASA and each remote access VPN client.
Revocation Checking
When a certificate is issued, it is valid for a fixed period of time. Sometimes a CA revokes a certificate
before this time period expires; for example, because of security concerns or a change of name or
association. CAs periodically issue a signed list of revoked certificates. Enabling revocation checking
forces the ASA to check that the CA has not revoked a certificate each time that it uses the certificate
for authentication.
When you enable revocation checking, the ASA checks certificate revocation status during the PKI
certificate validation process, which can use either CRL checking, OCSP, or both. OCSP is only used
when the first method returns an error (for example, indicating that the server is unavailable).
With CRL checking, the ASA retrieves, parses, and caches CRLs, which provide a complete list of
revoked (and unrevoked) certificates with their certificate serial numbers. The ASA evaluates certificates
according to CRLs, also called authority revocation lists, from the identity certificate up the chain of
subordinate certificate authorities.
OCSP offers a more scalable method of checking revocation status in that it localizes certificate status
through a validation authority, which it queries for status of a specific certificate.
Supported CA Servers
The ASA supports the following CA servers:
Cisco IOS CS, ASA Local CA, and third-party X.509 compliant CA vendors including, but not limited
to:
• Baltimore Technologies
• Entrust
• Digicert
• Geotrust
• GoDaddy
• iPlanet/Netscape
• Microsoft Certificate Services
• RSA Keon
• Thawte
• VeriSign
CRLs
CRLs provide the ASA with one way of determining whether a certificate that is within its valid time
range has been revoked by the issuing CA. CRL configuration is part of configuration of a trustpoint.
You can configure the ASA to make CRL checks mandatory when authenticating a certificate by using
the revocation-check crl command. You can also make the CRL check optional by using the
revocation-check crl none command, which allows the certificate authentication to succeed when the
CA is unavailable to provide updated CRL data.
The ASA can retrieve CRLs from CAs using HTTP, SCEP, or LDAP. CRLs retrieved for each trustpoint
are cached for a configurable amount of time for each trustpoint.
When the ASA has cached a CRL for longer than the amount of time it is configured to cache CRLs, the
ASA considers the CRL too old to be reliable, or “stale.” The ASA tries to retrieve a newer version of
the CRL the next time that a certificate authentication requires a check of the stale CRL.
The ASA caches CRLs for an amount of time determined by the following two factors:
• The number of minutes specified with the cache-time command. The default value is 60 minutes.
• The NextUpdate field in the CRLs retrieved, which may be absent from CRLs. You control whether
the ASA requires and uses the NextUpdate field with the enforcenextupdate command.
The ASA uses these two factors in the following ways:
• If the NextUpdate field is not required, the ASA marks CRLs as stale after the length of time defined
by the cache-time command.
• If the NextUpdate field is required, the ASA marks CRLs as stale at the sooner of the two times
specified by the cache-time command and the NextUpdate field. For example, if the cache-time
command is set to 100 minutes and the NextUpdate field specifies that the next update is 70 minutes
away, the ASA marks CRLs as stale in 70 minutes.
If the ASA has insufficient memory to store all CRLs cached for a given trustpoint, it deletes the least
recently used CRL to make room for a newly retrieved CRL.
OCSP
OCSP provides the ASA with a way of determining whether a certificate that is within its valid time
range has been revoked by the issuing CA. OCSP configuration is part of trustpoint configuration.
OCSP localizes certificate status on a validation authority (an OCSP server, also called the responder)
which the ASA queries for the status of a specific certificate. This method provides better scalability and
more up-to-date revocation status than does CRL checking, and helps organizations with large PKI
installations deploy and expand secure networks.
Note The ASA allows a five-second time skew for OCSP responses.
You can configure the ASA to make OCSP checks mandatory when authenticating a certificate by using
the revocation-check ocsp command. You can also make the OCSP check optional by using the
revocation-check ocsp none command, which allows the certificate authentication to succeed when the
validation authority is unavailable to provide updated OCSP data.
OCSP provides three ways to define the OCSP server URL. The ASA uses these servers in the following
order:
1. The OCSP URL defined in a match certificate override rule by using the match certificate
command).
2. The OCSP URL configured by using the ocsp url command.
3. The AIA field of the client certificate.
Note To configure a trustpoint to validate a self-signed OCSP responder certificate, you import the self-signed
responder certificate into its own trustpoint as a trusted CA certificate. Then you configure the match
certificate command in the client certificate validating trustpoint to use the trustpoint that includes the
self-signed OCSP responder certificate to validate the responder certificate. Use the same procedure for
configuring validating responder certificates external to the validation path of the client certificate.
The OCSP server (responder) certificate usually signs the OCSP response. After receiving the response,
the ASA tries to verify the responder certificate. The CA normally sets the lifetime of the OCSP
responder certificate to a relatively short period to minimize the chance of being compromised. The CA
usually also includes an ocsp-no-check extension in the responder certificate, which indicates that this
certificate does not need revocation status checking. However, if this extension is not present, the ASA
tries to check revocation status using the same method specified in the trustpoint. If the responder
certificate is not verifiable, revocation checks fail. To avoid this possibility, use the revocation-check
none command to configure the responder certificate validating trustpoint, and use the revocation-check
ocsp command to configure the client certificate.
The Local CA
The local CA performs the following tasks:
• Integrates basic certificate authority operation on the ASA.
• Deploys certificates.
• Provides secure revocation checking of issued certificates.
• Provides a certificate authority on the ASA for use with browser-based and client-based SSL VPN
connections.
• Provides trusted digital certificates to users, without the need to rely on external certificate
authorization.
• Provides a secure, in-house authority for certificate authentication and offers straightforward user
enrollment by means of a website login.
Security Device
with Local CA
Configured
(CIFS or FTP)
Certificates
If user digital certificates are configured, the ASA first validates the certificate. It does not, however, use
any of the DNs from certificates as a username for the authentication.
If both authentication and authorization are enabled, the ASA uses the user login credentials for both
user authentication and authorization.
• Authentication
– Enabled by the authentication server group setting
– Uses the username and password as credentials
• Authorization
– Enabled by the authorization server group setting
– Uses the username as a credential
If authentication is disabled and authorization is enabled, the ASA uses the primary DN field for
authorization.
• Authentication
– DISABLED (set to None) by the authentication server group setting
– No credentials used
• Authorization
– Enabled by the authorization server group setting
– Uses the username value of the certificate primary DN field as a credential
Note If the primary DN field is not present in the certificate, the ASA uses the secondary DN field value as
the username for the authorization request.
For example, consider a user certificate that includes the following Subject DN fields and values:
Cn=anyuser,OU=sales;O=XYZCorporation;L=boston;S=mass;C=us;[email protected]
If the Primary DN = EA (E-mail Address) and the Secondary DN = CN (Common Name), then the
username used in the authorization request would be [email protected].
Failover Guidelines
• Does not support replicating sessions in Stateful Failover.
• Does not support failover for local CAs.
IPv6 Guidelines
Does not support IPv6.
Local CA Certificates
• Make sure that the ASA is configured correctly to support certificates. An incorrectly configured
ASA can cause enrollment to fail or request a certificate that includes inaccurate information.
• Make sure that the hostname and domain name of the ASA are configured correctly. To view the
currently configured hostname and domain name, enter the show running-config command.
• Make sure that the ASA clock is set accurately before configuring the CA. Certificates have a date
and time that they become valid and expire. When the ASA enrolls with a CA and obtains a
certificate, the ASA checks that the current time is within the valid range for the certificate. If it is
outside that range, enrollment fails.
• Thirty days before the local CA certificate expires, a rollover replacement certificate is generated,
and a syslog message informs the administrator that it is time for local CA rollover. The new local
CA certificate must be imported onto all necessary devices before the current certificate expires. If
the administrator does not respond by installing the rollover certificate as the new local CA
certificate, validations may fail.
• The local CA certificate rolls over automatically after expiration using the same keypair. The
rollover certificate is available for export in base 64 format.
The following example shows a base 64 encoded local CA certificate:
MIIXlwIBAzCCF1EGCSqGSIb3DQEHAaCCF0IEghc+MIIXOjCCFzYGCSqGSIb3DQEHBqCCFycwghcjAgEAMIIXHA
YJKoZIhvcNAQcBMBsGCiqGSIb3DQEMAQMwDQQIjph4SxJoyTgCAQGAghbw3v4bFy+GGG2dJnB4OLphsUM+IG3S
DOiDwZG9n1SvtMieoxd7Hxknxbum06JDrujWKtHBIqkrm+td34qlNE1iGeP2YC94/NQ2z+4kS+uZzwcRhl1KEZ
TS1E4L0fSaC3uMTxJq2NUHYWmoc8pi4CIeLj3h7VVMy6qbx2AC8I+q57+QG5vG5l5Hi5imwtYfaWwPEdPQxaWZ
PrzoG1J8BFqdPa1jBGhAzzuSmElm3j/2dQ3Atro1G9nIsRHgV39fcBgwz4fEabHG7/Vanb+fj81d5nlOiJjDYY
bP86tvbZ2yOVZR6aKFVI0b2AfCr6PbwfC9U8Z/aF3BCyM2sN2xPJrXva94CaYrqyotZdAkSYA5KWScyEcgdqmu
BeGDKOncTknfgy0XM+fG5rb3qAXy1GkjyFI5Bm9Do6RUROoG1DSrQrKeq/hj….
END OF CERTIFICATE
Additional Guidelines
• For ASAs that are configured as CA servers or clients, limit the validity period of the certificate to
less than the recommended end date of 03:14:08 UTC, January 19, 2038. This guideline also applies
to imported certificates from third-party vendors.
• You cannot configure the local CA when failover is enabled. You can only configure the local CA
server for standalone ASAs without failover. For more information, see CSCty43366.
• When a certificate enrollment is completed, the ASA stores a PKCS12 file containing the user's
keypair and certificate chain, which requires about 2 KB of flash memory or disk space per
enrollment. The actual amount of disk space depends on the configured RSA key size and certificate
fields. Keep this guideline in mind when adding a large number of pending certificate enrollments
on an ASA with a limited amount of available flash memory, because these PKCS12 files are stored
in flash memory for the duration of the configured enrollment retrieval timeout. We recommend
using a key size of at least 2048.
• The lifetime ca-certificate command takes effect when the local CA server certificate is first
generated (that is, when you initially configure the local CA server and issue the no shutdown
command). When the CA certificate expires, the configured lifetime value is used to generate the
new CA certificate. You cannot change the lifetime value for existing CA certificates.
• You should configure the ASA to use an identity certificate to protect ASDM traffic and HTTPS
traffic to the management interface. Identity certificates that are automatically generated with SCEP
are regenerated after each reboot, so make sure that you manually install your own identity
certificates. For an example of this procedure that applies only to SSL, see the following URL:
http://www.cisco.com/en/US/products/ps6120/products_configuration_example09186a00809fcf91
.shtml.
• The ASA and the AnyConnect clients can only validate certificates in which the X520Serialnumber
field (the serial number in the Subject Name) is in PrintableString format. If the serial number
format uses encoding such as UTF8, the certificate authorization will fail.
• Use only valid characters and values for certificate parameters when you import them on the ASA.
• To use a wildcard (*) symbol, make sure that you use encoding on the CA server that allows this
character in the string value. Although RFC 5280 recommends using either a UTF8String or
PrintableString, you should use UTF8String because PrintableString does not recognize the
wildcard as a valid character. The ASA rejects the imported certificate if an invalid character or
value is found during the import. For example:
ERROR: Failed to parse or verify imported certificate ciscoasa(config)# Read
162*H÷ytes as CA certificate:0U0= \Ivr"phÕV°3é¼þ0 CRYPTO_PKI(make trustedCerts list)
CERT-C: E ../cert-c/source/certlist.c(302): Error #711h
CRYPTO_PKI: Failed to verify the ID certificate using the CA certificate in trustpoint
mm.
CERT-C: E ../cert-c/source/p7contnt.c(169): Error #703h
crypto_certc_pkcs7_extract_certs_and_crls failed (1795):
crypto_certc_pkcs7_extract_certs_and_crls failed
CRYPTO_PKI: status = 1795: failed to verify or insert the cert into storage
Procedure
Example:
ciscoasa/contexta(config)# crypto key generate rsa
The default key modulus is 1024. To specify other modulus sizes, use the modulus keyword.
Note Many SSL connections using identity certificates with RSA key pairs that exceed 1024 bits can
cause high CPU usage on the ASA and rejected clientless logins.
Example:
ciscoasa/contexta(config)# crypto key generate rsa label exchange
The label is referenced by the trustpoint that uses the key pair. If you do not assign a label, the key pair
is automatically labeled, Default-RSA-Key.
Step 3 Verify key pairs that you have generated.
show crypto key name of key
Example:
Example:
ciscoasa(config)# write memory
Step 5 If necessary, remove existing key pairs so that you can generate new ones.
crypto key zeroize rsa
Example:
ciscoasa(config)# crypto key zeroize rsa
Example:
ciscoasa# copy LOCAL-CA-SERVER_0001.pl2 tftp://10.1.1.22/user6/
This command copies the local CA server certificate and keypair and all files from the ASA using either
FTP or TFTP.
Note Make sure that you back up all local CA files as often as possible.
Examples
The following example shows how to remove key pairs:
ciscoasa(config)# crypto key zeroize rsa
WARNING: All RSA keys will be removed.
WARNING: All device certs issued using these keys will also be removed.
Configure Trustpoints
To configure a trustpoint, perform the following steps:
Procedure
Step 1 Create a trustpoint that corresponds to the CA from which the ASA needs to receive a certificate.
crypto ca trustpoint trustpoint-name
Example:
ciscoasa/contexta(config)# crypto ca trustpoint Main
You enter the crypto ca trustpoint configuration mode, which controls CA-specific trustpoint parameters
that you may configure starting in Step 3.
Note When you try to connect, a warning occurs to indicate that the trustpoint does not contain an ID
certificate when an attempt is made to retrieve the ID certificate from the trustpoint.
Example:
ciscoasa/contexta(config-ca-trustpoint)# enrollment url
http://10.29.67.142:80/certsrv/mscep/mscep.dll
• Request manual enrollment with the specified trustpoint by pasting the certificate received from the
CA into the terminal.
enrollment terminal
Example:
ciscoasa/contexta(config-ca-trustpoint)# enrollment terminal
Example:
ciscoasa/contexta(config-ca-trustpoint)# revocation-check crl none
ciscoasa/contexta(config-ca-trustpoint)# revocation-check crl
ciscoasa/contexta(config-ca-trustpoint)# revocation-check none
Note To enable either required or optional CRL checking, make sure that you configure the trustpoint
for CRL management after obtaining certificates.
Example:
ciscoasa/contexta(config-ca-trustpoint)# crl configure
Step 5 During enrollment, ask the CA to include the specified e-mail address in the Subject Alternative Name
extension of the certificate.
email address
Example:
ciscoasa/contexta(config-ca-trustpoint)# email example.com
Step 6 (Optional) Specify a retry period in minutes, and applies only to SCEP enrollment.
enrollment retry period
Example:
ciscoasa/contexta(config-ca-trustpoint)# enrollment retry period 5
Step 7 (Optional) Specify a maximum number of permitted retries, and applies only to SCEP enrollment.
enrollment retry count
Example:
ciscoasa/contexta(config-ca-trustpoint)# enrollment retry period 2
Step 8 During enrollment, ask the CA to include the specified fully qualified domain name in the Subject
Alternative Name extension of the certificate.
fqdn fqdn
Example:
ciscoasa/contexta(config-ca-trustpoint)# fqdn example.com
Step 9 During enrollment, ask the CA to include the IP address of the ASA in the certificate.
ip-address ip-address
Example:
ciscoasa/contexta(config-ca-trustpoint)# ip-address 10.10.100.1
Example:
ciscoasa/contexta(config-ca-trustpoint)# keypair exchange
Step 11 Configure OCSP URL overrides and trustpoints to use for validating OCSP responder certificates.
match certificate map-name override ocsp
Example:
ciscoasa/contexta(config-ca-trustpoint)# match certificate examplemap override ocsp
Step 12 Disable the nonce extension on an OCSP request. The nonce extension cryptographically binds requests
with responses to avoid replay attacks.
ocsp disable-nonce
Example:
ciscoasa/contexta(config-ca-trustpoint)# ocsp disable-nonce
Step 13 Configure an OCSP server for the ASA to use to check all certificates associated with a trustpoint rather
than the server specified in the AIA extension of the client certificate.
ocsp url
Example:
ciscoasa/contexta(config-ca-trustpoint)# ocsp url
Step 14 Specify a challenge phrase that is registered with the CA during enrollment. The CA usually uses this
phrase to authenticate a subsequent revocation request.
password string
Example:
ciscoasa/contexta(config-ca-trustpoint)# password mypassword
Step 15 Set one or more methods for revocation checking: CRL, OCSP, and none.
revocation check
Example:
ciscoasa/contexta(config-ca-trustpoint)# revocation check
Step 16 During enrollment, ask the CA to include the specified subject DN in the certificate. If a DN string
includes a comma, enclose the value string within double quotes (for example, O=”Company, Inc.”).
subject-name X.500 name
Example:
ciscoasa/contexta(config-ca-trustpoint)# myname X.500 examplename
Step 17 During enrollment, ask the CA to include the ASA serial number in the certificate.
serial-number
Example:
ciscoasa/contexta(config-ca-trustpoint)# serial number JMX1213L2A7
Example:
ciscoasa/contexta(config)# write memory
Procedure
Step 1 Enter crypto ca trustpoint configuration mode for the trustpoint whose CRL configuration you want to
modify.
crypto ca trustpoint trustpoint-name
Example:
ciscoasa (config)# crypto ca trustpoint Main
Note Make sure that you have enabled CRLs before entering this command. In addition, the CRL must
be available for authentication to succeed.
Example:
Tip To set all CRL configuration parameters to default values, use the default command. At any time
during CRL configuration, reenter this command to restart the procedure.
Example:
ciscoasa(config-ca-crl)# policy cdp
To continue, go to Step 5.
• CRLs are retrieved only from URLs that you configure.
policy static
Example:
ciscoasa(config-ca-crl)# policy static
To continue, go to Step 4.
• CRLs are retrieved from CRL distribution points specified in authenticated certificates and from
URLs that you configure.
policy both
Example:
ciscoasa(config-ca-crl)# policy both
To continue, go to Step 4.
Step 4 If you used the static or both keywords when you configured the CRL policy, you must configure URLs
for CRL retrieval. You can enter up to five URLs, ranked 1 through 5. The n argument is the rank
assigned to the URL.
url n url
Example:
ciscoasa (config-ca-crl)# url 2 http://www.example.com
Example:
ciscoasa(config-ca-crl)# protocol http
Step 6 Configure how long the ASA caches CRLs for the current trustpoint. The refresh-time argument is the
number of minutes that the ASA waits before considering a CRL stale.
cache-time refresh-time
Example:
ciscoasa(config-ca-crl)# cache-time 420
Example:
ciscoasa(config-ca-crl)# enforcenextupdate
Example:
ciscoasa(config-ca-crl)# no enforcenextupdate
Step 8 Identify the LDAP server to the ASA if LDAP is specified as the retrieval protocol. You can specify the
server by DNS hostname or by IP address. You can also provide a port number if the server listens for
LDAP queries on a port other than the default of 389.
ldap-defaults server
Example:
ciscoasa (config-ca-crl)# ldap-defaults ldap1
Note If you use a hostname instead of an IP address to specify the LDAP server, make sure that you
have configured the ASA to use DNS.
Example:
ciscoasa (config-ca-crl)# ldap-dn cn=admin,ou=devtest,o=engineering c00lRunZ
Step 10 Retrieve the current CRL from the CA represented by the specified trustpoint and test the CRL
configuration for the current trustpoint.
crypto ca crl request trustpoint
Example:
ciscoasa (config-ca-crl)# crypto ca crl request Main
Example:
ciscoasa (config)# write memory
Procedure
Step 1 Export a trustpoint configuration with all associated keys and certificates in PKCS12 format.
crypto ca export trustpoint
Example:
ciscoasa(config)# crypto ca export Main
The ASA displays the PKCS12 data in the terminal. You can copy the data. The trustpoint data is
password protected; however, if you save the trustpoint data in a file, make sure that the file is in a secure
location.
Examples
The following example exports PKCS12 data for the trustpoint Main with the passphrase Wh0zits:
ciscoasa(config)# crypto ca export Main pkcs12 Wh0zits
Step 1 Import keypairs and issued certificates that are associated with a trustpoint configuration.
crypto ca import trustpoint pkcs12
Example:
ciscoasa(config)# crypto ca import Main pkcs12
The ASA prompts you to paste the text into the terminal in base 64 format. The key pair imported with
the trustpoint is assigned a label that matches the name of the trustpoint that you create.
Note If an ASA has trustpoints that share the same CA, you can use only one of the trustpoints that
share the CA to validate user certificates. To control which trustpoint that shares a CA is used
for validation of user certificates issued by that CA, use the support-user-cert-validation
keyword.
Examples
The following example manually imports PKCS12 data to the trustpoint Main with the passphrase
Wh0zits:
ciscoasa (config)# crypto ca import Main pkcs12 Wh0zits
The following example manually imports a certificate for the trustpoint Main:
ciscoasa (config)# crypto ca import Main certificate
% The fully-qualified domain name in the certificate will be:
securityappliance.example.com
Procedure
Step 1 Enter CA certificate map configuration mode for the rule you want to configure and specify the rule
index number.
crypto ca certificate map sequence-number
Example:
ciscoasa(config)# crypto ca certificate map 1
Step 2 Specify the distinguished name of all issued certificates. which is also the subject-name DN of the
self-signed CA certificate.
issuer-name DN-string
Example:
ciscoasa(config-ca-cert-map)# issuer-name cn=asa.example.com
Use commas to separate attribute-value pairs. Insert quotation marks around any value that includes a
comma. An issuer-name must be less than 500 alphanumeric characters. The default issuer-name is
cn=hostame.domain-name.
Step 3 Specify tests that the ASA can apply to values found in the Subject field of certificates.
subject-name attr tag eq | co | ne | nc string
Example:
ciscoasa(config-ca-cert-map)# subject-name attr cn eq mycert
The tests can apply to specific attributes or to the entire field. You can configure many tests per rule, and
all the tests you specify with these commands must be true for a rule to match a certificate. The following
are valid operators:
• eq—The field or attribute must be identical to the value given.
• ne—The field or attribute cannot be identical to the value given.
• co—Part or all of the field or attribute must match the value given.
• nc—No part of the field or attribute can match the value given.
Step 4 Save the running configuration.
write memory
Example:
ciscoasa(config)# write memory
Procedure
Example:
ciscoasa(config)# crypto ca authenticate Main
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
MIIDRTCCAu+gAwIBAgIQKVcqP/KW74VP0NZzL+JbRTANBgkqhkiG9w0BAQUFADCB
[ certificate data omitted ]
/7QEM8izy0EOTSErKu7Nd76jwf5e4qttkQ==
quit
Whether a trustpoint requires that you manually obtain certificates is determined by the use of the
enrollment terminal command when you configure the trustpoint.
Example:
ciscoasa(config)# crypto ca enroll Main
% Start certificate enrollment ..
MIIBoDCCAQkCAQAwIzEhMB8GCSqGSIb3DQEJAhYSRmVyYWxQaXguY2lzY28uY29t
[ certificate request data omitted ]
jF4waw68eOxQxVmdgMWeQ+RbIOYmvt8g6hnBTrd0GdqjjVLt
This command generates a certificate for signing data and depending on the type of keys that you have
configured, for encrypting data. If you use separate RSA keys for signing and encryption, the crypto ca
enroll command displays two certificate requests, one for each key. If you use general-purpose RSA
keys for both signing and encryption, the crypto ca enroll command displays one certificate request.
To complete enrollment, obtain a certificate for all certificate requests generated by the crypto ca enroll
command from the CA represented by the applicable trustpoint. Make sure that the certificate is in
base-64 format.
Step 3 Import each certificate you receive from the CA and make sure that you paste the certificate to the
terminal in base-64 format.
crypto ca import trustpoint certificate
Example:
ciscoasa (config)# crypto ca import Main certificate
% The fully-qualified domain name in the certificate will be:
securityappliance.example.com
Step 4 Verify that the enrollment process was successful by displaying certificate details issued for the ASA
and the CA certificate for the trustpoint.
show crypto ca server certificate
Example:
ciscoasa(config)# show crypto ca server certificate Main
Example:
Step 6 Repeat these steps for each trustpoint that you configure for manual enrollment.
Procedure
Example:
ciscoasa/contexta(config)# crypto ca authenticate Main
When you configure the trustpoint, use of the enrollment url command determines whether or not you
must obtain certificates automatically via SCEP.
Step 2 Enroll the ASA with the trustpoint. This command retrieves a certificate for signing data and depending
on the type of keys that you have configured, for encrypting data. Before entering this command, contact
the CA administrator, who may need to authenticate the enrollment request manually before the CA
grants certificates.
crypto ca enroll trustpoint
Example:
ciscoasa/contexta(config)# crypto ca enroll Main
If the ASA does not receive a certificate from the CA within one minute (the default) of sending a
certificate request, it resends the certificate request. The ASA continues sending a certificate request
each minute until a certificate is received.
If the fully qualified domain name configured for the trustpoint is not identical to the fully qualified
domain name of the ASA, including the case of the characters, a warning appears. To resolve this issue,
exit the enrollment process, make any necessary corrections, and reenter the crypto ca enroll command.
Note If the ASA reboots after you have issued the crypto ca enroll command but before you have
received the certificate, reenter the crypto ca enroll command and notify the CA administrator.
Step 3 Verify that the enrollment process was successful by displaying certificate details issued for the ASA
and the CA certificate for the trustpoint.
show crypto ca server certificate
Example:
Example:
ciscoasa/contexta(config)# write memory
Procedure
Example:
ciscoasa(config)# tunnel-group remotegrp ipsec-attributes
Example:
ciscoasa(config-tunnel-ipsec)# crypto ikev2 enable outside client-services
Example:
ciscoasa(config)# tunnel-group 209.165.200.225 general-attributes
Example:
ciscoasa(config-tunnel-general)# scep-enrollment enable
INFO: 'authentication aaa certificate' must be configured to complete setup of this
option.
Example:
ciscoasa(config)# group-policy FirstGroup attributes
Step 6 Enroll the SCEP CA for the group policy. Enter this command once per group policy to support a
third-party digital certificate.
scep-forwarding-url value URL
Example:
ciscoasa(config-group-policy)# scep-forwarding-url value http://ca.example.com:80/
Example:
ciscoasa(config)# tunnel-group remotegrp webvpn-attributes
ciscoasa(config-tunnel-webvpn)# secondary-pre-fill-username clientless hide
use-common-password secret
You must use the hide keyword to support the SCEP proxy.
For example, a certificate is not available to an endpoint requesting one. Once the endpoint has the
certificate, AnyConnect disconnects, then reconnects to the ASA to qualify for a DAP policy that
provides access to internal network resources.
Step 8 Hide the secondary prefill username for AnyConnect VPN sessions.
secondary-pre-fill-username ssl-client hide use-common-password password
Example:
ciscoasa(config-tunnel-webvpn)# secondary-pre-fill-username ssl-client hide
use-common-password secret
Despite the ssl-client keyword inherited from earlier releases, use this command to support AnyConnect
sessions that use either IKEv2 or SSL.
You must use the hide keyword to support the SCEP proxy.
Step 9 Supply the username when a certificate is unavailable.
secondary-username-from-certificate {use-entire-name | use-script | {primary_attr
[secondary-attr]}} [no-certificate-fallback cisco-secure-desktop machine-unique-id]
Example:
ciscoasa(config-tunnel-webvpn)# secondary-username-from-certificate CN
no-certificate-fallback cisco-secure-desktop machine-unique-id
Procedure
Example:
ciscoasa(config)# crypto ca server
Example:
ciscoasa(config-ca-server)# no shutdown
This command generates the local CA server certificate, keypair and necessary database files, and
archives the local CA server certificate and keypair in a PKCS12 file. You must enter an 8-65
alphanumeric password. After initial startup, you can disable the local CA without being prompted for
the password.
Step 3 Save the configuration to make sure that the local CA certificate and keypair are not lost after a reboot
occurs.
write memory
Example:
ciscoasa(config)# write memory
Examples
The following example enables the local CA server:
ciscoasa(config)# crypto ca server
ciscoasa(config-ca-server)# no shutdown
Password: caserver
The following is sample output that shows local CA server configuration and status:
Certificate Server LOCAL-CA-SERVER:
Status: enabled
State: enabled
Procedure
Example:
ciscoasa(config)# crypto ca server
Step 2 Specify the SMTP from-address, a valid e-mail address that the local CA uses as a from address when
sending e-mail messages that deliver one-time passwords (OTPs) for an enrollment invitation to users.
smtp from-address e-mail_address
Example:
ciscoasa(config-ca-server) # smtp from-address [email protected]
Step 3 (Optional) Specify the subject-name DN that is appended to each username on issued certificates.
subject-name-default dn
Example:
ciscoasa(config-ca-server)# subject-name-default cn=engineer, o=asc systems, c=”US”
The subject-name DN and the username combine to form the DN in all user certificates that are issued
by the local CA server. If you do not specify a subject-name DN, you must specify the exact subject name
DN to be included in a user certificate each time that you add a user to the user database.
Note Make sure that you review all optional parameters carefully before you enable the configured
local CA, because you cannot change issuer-name and keysize server values after you enable the
local CA for the first time.
Step 4 Create the self-signed certificate and associate it with the local CA on the ASA.
no shutdown
Example:
ciscoasa(config-ca-server)# no shutdown
The self-signed certificate key usage extension has key encryption, key signature, CRL signing, and
certificate signing capabilities.
Note After the self-signed local CA certificate has been generated, to change any characteristics, you
must delete the existing local CA server and completely recreate it.
The local CA server keeps track of user certificates, so the administrator can revoke or restore privileges
as needed.
Examples
The following example shows how to configure the local CA server using the predefined default values
for all required parameters:
ciscoasa(config)# crypto ca server
ciscoasa(config-ca-server)# smtp from-address [email protected]
ciscoasa(config-ca-server)# subject-name-default cn=engineer, o=asc Systems, c=US
ciscoasa(config-ca-server)# no shutdown
Procedure
Example:
ciscoasa(config)# crypto ca server
Example:
ciscoasa(config-ca-server)# issuer-name cn=xx5520,cn=30.132.0.25,ou=DevTest,ou=QA,o=ASC
Systems
Step 3 Customize the text that appears in the subject field of all e-mail messages sent from the local CA server.
smtp subject subject-line
Example:
ciscoasa(config-ca-server)# smtp subject Priority E-Mail: Enclosed Confidential
Information is Required for Enrollment
Step 4 Specify the e-mail address that is to be used as the From: field of all e-mail messages that are generated
by the local CA server.
smtp from-address e-mail_address
Example:
ciscoasa(config-ca-server)# smtp from-address [email protected]
Example:
ciscoasa(config-ca-server)# subject-name default cn=engineer, o=ASC Systems, c=US
The default subject-name DN becomes part of the username in all user certificates issued by the local
CA server.
The allowed DN attribute keywords are as follows:
• C = Country
• CN = Common Name
• EA = E-mail Address
• L = Locality
• O = Organization Name
• OU = Organization Unit
• ST = State/Province
• SN = Surname
• ST = State/Province
Note If you do not specify a subject-name-default to serve as a standard subject-name default, you
must specify a DN each time that you add a user.
Procedure
Example:
ciscoasa(config)# crypto ca server
Example:
ciscoasa(config-ca-server)# shutdown
INFO: Local CA Server has been shutdown.
This command disables website enrollment, allows you to modify the local CA server configuration, and
stores the current configuration and associated files. After initial startup, you can reenable the local CA
without being prompted for the password.
Procedure
Step 1 Enter one of the following commands to remove an existing local CA server (either enabled or disabled):
• no crypto ca server
Example:
ciscoasa(config)# no crypto ca server
Note Deleting the local CA server removes the configuration from the ASA. After the configuration has been
deleted, it is unrecoverable.
Make sure that you also delete the associated local CA server database and configuration files (that is,
all files with the wildcard name, LOCAL-CA-SERVER.*).
Procedure
Example:
ciscoasa(config)# crypto ca server
Step 2 Determine the expiration date to be included in the certificate. The default lifetime of a local CA
certificate is three years.
lifetime ca-certificate time
Example:
Make sure that you limit the validity period of the certificate to less than the recommended end date of
03:14:08 UTC, January 19, 2038.
Step 3 (Optional) Reset the local CA certificate lifetime to the default value of three years.
no lifetime ca-certificate
Example:
ciscoasa(config-ca-server)# no lifetime ca-certificate
The local CA server automatically generates a replacement CA certificate 30 days before it expires,
which allows the replacement certificate to be exported and imported onto any other devices for
certificate validation of user certificates that have been issued by the local CA certificate after the current
local CA certificate has expired. The following pre-expiration syslog message is generated:
%ASA-1-717049: Local CA Server certificate is due to expire in days days and a replacement
certificate is available for export.
Note When notified of this automatic rollover, the administrator must make sure that the new local
CA certificate is imported onto all required devices before it expires.
Procedure
Example:
ciscoasa(config)# crypto ca server
Step 2 Set the length of time that you want user certificates to remain valid.
lifetime certificate time
Example:
ciscoasa(config-ca-server)# lifetime certificate 60
Note Before a user certificate expires, the local CA server automatically initiates certificate renewal
processing by granting enrollment privileges to the user several days ahead of the certificate
expiration date, setting renewal reminders, and delivering an e-mail message that includes the
enrollment username and OTP for certificate renewal. Make sure that you limit the validity
period of the certificate to less than the recommended end date of 03:14:08 UTC, January 19,
2038.
Procedure
Example:
ciscoasa(config)# crypto ca server
Step 2 Set the length of time that you want the CRL to remain valid.
lifetime crl time
Example:
ciscoasa(config-ca-server)# lifetime crl 10
The local CA updates and reissues the CRL each time that a user certificate is revoked or unrevoked, but
if no revocation changes occur, the CRL is reissued automatically once each CRL lifetime. If you do not
specify a CRL lifetime, the default time period is six hours.
Step 3 Force the issuance of a CRL at any time, which immediately updates and regenerates a current CRL to
overwrite the existing CRL.
crypto ca server crl issue
Example:
ciscoasa(config-ca-server)# crypto ca server crl issue
A new CRL has been issued.
Note Do not use this command unless the CRL file has been removed in error or has been corrupted
and must be regenerated.
Procedure
Example:
ciscoasa(config)# crypto ca server
Step 2 Specify the size of the public and private keys generated at user-certificate enrollment.
keysize server
Example:
ciscoasa(config-ca-server)# keysize server 2048
The keypair size options are 512, 768, 1024, 2048 bits, and the default value is 1024 bits.
Note After you have enabled the local CA, you cannot change the local CA keysize, because all issued
certificates would be invalidated. To change the local CA keysize, you must delete the current
local CA and reconfigure a new one.
Examples
The following is sample output that shows two user certificates in the database.
Username: user1
Renewal allowed until: Not Allowed
Number of times user notified: 0
PKCS12 file stored until: 12:45:52 UTC Fri Jan 4 2017
Certificates Issued:
serial: 0x71
issued: 12:45:52 UTC Thu Jan 3 2008
expired: 12:17:37 UTC Sun Dec 31 2017
status: Not Revoked
Username: user2
Renewal allowed until: Not Allowed
Number of times user notified: 0
PKCS12 file stored until: 12:27:59 UTC Fri Jan 4 2008
Certificates Issued:
serial: 0x2
issued: 12:27:59 UTC Thu Jan 3 2008
expired: 12:17:37 UTC Sun Dec 31 2017
status: Not Revoked
<--- More --->
Procedure
Step 1 Access configuration mode for the specific file system type.
mount name type
Example:
ciscoasa(config)# mount mydata type cifs
Example:
ciscoasa(config-mount-cifs)# mount mydata type cifs
server 10.1.1.10 share myshare
domain example.com
username user6
password ********
status enable
Note Only the user who mounts a file system can unmount it with the no mount command.
Example:
ciscoasa(config)# crypto ca server
Step 4 Specify the location of mydata, the premounted CIFS file system to be used for the local CA server
database.
database path mount-name directory-path
Example:
ciscoasa(config-ca-server)# database path mydata:newuser
This command establishes a path to the server and then specifies the local CA file or folder name to use
for storage and retrieval. To return local CA file storage to the ASA flash memory, use the no database
path command.
Note To secure stored local CA files on an external server requires a premounted file system of file
type CIFS or FTP that is username-protected and password-protected.
Example:
For external local CA file storage, each time that you save the ASA configuration, user information is
saved from the ASA to the premounted file system and file location, mydata:newuser.
For flash memory storage, user information is saved automatically to the default location for the start-up
configuration.
Examples
The following example shows the list of local CA files that appear in flash memory or in external storage:
ciscoasa(config-ca-server)# dir LOCAL* //
Directory of disk0:/LOCAL*
Procedure
Example:
ciscoasa(config)# crypto ca server
Step 2 Open a port on an interface to make the CRL accessible from that interface. The specified interface and
port are used to listen for incoming requests for the CRL.
publish-crl interface interface port portnumber
Example:
ciscoasa(config-ca-server)# publish-crl outside 70
Note If you do not specify this command, the CRL is not accessible from the CDP location, because
this command is required to open an interface to download the CRL file.
The CDP URL can be configured to use the IP address of an interface, and the path of the CDP URL and
the filename can also be configured (for example, http://10.10.10.100/user8/my_crl_file).
In this case, only the interface with that IP address configured listens for CRL requests, and when a
request comes in, the ASA matches the path, /user8/my_crl_file to the configured CDP URL. When the
path matches, the ASA returns the stored CRL file.
Step 3 Specify the CDP to be included in all issued certificates. If you do not configure a specific location for
the CDP, the default URL location is http://hostname.domain/+CSCOCA+/asa_ca.crl.
cdp-url url
Example:
ciscoasa(config-ca-server)# cdp-url http://172.16.1.1/pathname/myca.crl
The local CA updates and reissues the CRL each time a user certificate is revoked or unrevoked. If no
revocation changes occur, the CRL is reissued once each CRL lifetime.
If this command is set to serve the CRL directly from the local CA ASA, see Download and Store CRLs,
page 34-34 for instructions about opening a port on an interface to make the CRL accessible from that
interface.
The CRL exists for other devices to validate the revocation of certificates issued by the local CA. In
addition, the local CA tracks all issued certificates and status within its own certificate database.
Revocation checking is performed when a validating party needs to validate a user certificate by
retrieving the revocation status from an external server, which might be the CA that issued the certificate
or a server designated by the CA.
Procedure
Example:
ciscoasa(config)# crypto ca server
Step 2 Specify the number of hours that an issued OTP for the local CA enrollment page is valid. The default
expiration time is 72 hours.
otp expiration timeout
Example:
ciscoasa(config-ca-server)# otp expiration 24
Note The user OTP to enroll for a certificate on the enrollment website is also used as the password
to unlock the PKCS12 file that includes the issued certificate and keypair for the specified user.
Step 3 Specify the number of hours an already-enrolled user can retrieve a PKCS12 enrollment file.
enrollment-retrieval timeout
Example:
ciscoasa(config-ca-server)# enrollment-retrieval 120
This time period begins when the user is successfully enrolled. The default retrieval period is 24 hours.
Valid values for the retrieval period range from 1 to 720 hours. The enrollment retrieval period is
independent of the OTP expiration period.
After the enrollment retrieval time expires, the user certificate and keypair are no longer available. The
only way a user may receive a certificate is for the administrator to reinitialize certificate enrollment and
allow a user to log in again.
Procedure
Example:
ciscoasa(config-ca-server)# crypto ca server user-db add user1 dn [email protected],
Engineer, Example Company, US, email [email protected]
The username argument is a string of 4-64 characters, which is the simple username for the user being
added. The username can be an e-mail address, which then is used to contact the user as necessary for
enrollment invitations.
The dn argument is the distinguished name, a global, authoritative name of an entry in the OSI Directory
(X.500) (for example, [email protected], cn=Engineer, o=Example Company, c=US).
The e-mail-address argument is the e-mail address of the new user to which OTPs and notices are to be
sent.
Step 2 Provide user privileges to a newly added user.
crypto ca server user-db allow user
Example:
ciscoasa(config-ca-server)# crypto ca server user-db allow user
Step 3 Notify a user in the local CA database to enroll and download a user certificate, which automatically
e-mails the OTP to that user.
crypto ca server user-db email-otp username
Example:
ciscoasa(config-ca-server)# crypto ca server user-db email-otp exampleuser1
Note When an administrator wants to notify a user through e-mail, the administrator must specify the
e-mail address in the username field or in the e-mail field when adding that user.
Example:
ciscoasa(config-ca-server)# crypto ca server user-db show-otp
Step 5 Set the enrollment time limit in hours. The default expiration time is 72 hours.
otp expiration timeout
Example:
ciscoasa(config-ca-server)# otp expiration 24
This command defines the amount of time that the OTP is valid for user enrollment. This time period
begins when the user is allowed to enroll.
After a user enrolls successfully within the time limit and with the correct OTP, the local CA server
creates a PKCS12 file, which includes a keypair for the user and a user certificate that is based on the
public key from the keypair generated and the subject-name DN specified when the user is added. The
PKCS12 file contents are protected by a passphrase, the OTP. The OTP can be handled manually, or the
local CA can e-mail this file to the user to download after the administrator allows enrollment.
The PKCS12 file is saved to temporary storage with the name, username.p12. With the PKCS12 file in
storage, the user can return within the enrollment-retrieval time period to download the PKCS12 file as
many times as needed. When the time period expires, the PKCS12 file is removed from storage
automatically and is no longer available to download.
Note If the enrollment period expires before the user retrieves the PKCS12 file that includes the user
certificate, enrollment is not permitted.
Renew Users
To specify the timing of renewal notices, perform the following steps:
Procedure
Example:
ciscoasa(config)# crypto ca server
Step 2 Specifies the number of days (1-90) before the local CA certificate expires that an initial reminder to
re-enroll is sent to certificate owners.
renewal-reminder time
Example:
ciscoasa(config-ca-server)# renewal-reminder 7
If a certificate expires, it becomes invalid. Renewal notices and the times they are e-mailed to users are
variable, and can be configured by the administrator during local CA server configuration.
Three reminders are sent. An e-mail is automatically sent to the certificate owner for each of the three
reminders, provided an e-mail address is specified in the user database. If no e-mail address exists for
the user, a syslog message alerts you of the renewal requirement.
The ASA automatically grants certificate renewal privileges to any user who holds a valid certificate that
is about to expire, as long as the user still exists in the user database. Therefore, if an administrator does
not want to allow a user to renew automatically, the administrator must remove the user from the
database before the renewal time period.
Restore Users
To restore a user and a previously revoked certificate that was issued by the local CA server, perform the
following steps:
Procedure
Example:
ciscoasa(config)# crypto ca server
Step 2 Restore a user and unrevoke a previously revoked certificate that was issued by the local CA server.
crypto ca server unrevoke cert-serial-no
Example:
ciscoasa(config-ca-server)# crypto ca server unrevoke 782ea09f
The local CA maintains a current CRL with serial numbers of all revoked user certificates. This list is
available to external devices and can be retrieved directly from the local CA if it is configured to do so
with the cdp-url command and the publish-crl command. When you revoke (or unrevoke) any current
certificate by certificate serial number, the CRL automatically reflects these changes.
Remove Users
To delete a user from the user database by username, perform the following steps:
Procedure
Example:
ciscoasa(config)# crypto ca server
Step 2 Remove a user from the user database and allow revocation of any valid certificates that were issued to
that user.
crypto ca server user-db remove username
Example:
ciscoasa(config-ca-server)# crypto ca server user-db remove user1
Revoke Certificates
To revoke a user certificate, perform the following steps:
Procedure
Example:
ciscoasa(config)# crypto ca server
Example:
ciscoasa(config-ca-server)# crypto ca server revoke 782ea09f
This command marks the certificate as revoked in the certificate database on the local CA server and in
the CRL, which is automatically reissued.
Note The password is also required if the certificate for the ASA needs to be revoked, so make sure
that you record it and store it in a safe place.
Note
Step 3
Step 4
•
Step 5
Step 6
Note
Examples
The following example shows an RSA general-purpose key:
ciscoasa/contexta(config)# show crypto key mypubkey
Key pair was generated at: 16:39:47 central Feb 10 2010
Key name: <Default-RSA-Key>
Usage: General Purpose Key
Modulus Size (bits): 1024
Key Data:
The following example shows output of the show running-config command, in which local CA
certificate map rules appear:
crypto ca certificate map 1
issuer-name co asc
subject-name attr ou eq Engineering
Platform
Feature Name Releases Description
Certificate management 7.0(1) Digital certificates (including CA certificates, identity
certificates, and code signer certificates) provide digital
identification for authentication. A digital certificate
includes information that identifies a device or user, such as
the name, serial number, company, department, or IP
address. CAs are trusted authorities that “sign” certificates
to verify their authenticity, thereby guaranteeing the
identity of the device or user. CAs issue digital certificates
in the context of a PKI, which uses public-key or
private-key encryption to ensure security.
Platform
Feature Name Releases Description
Certificate management 8.0(2) We introduced the following commands:
cdp-url, crypto ca server, crypto ca server crl issue,
crypto ca server revoke cert-serial-no, crypto ca server
unrevoke cert-serial-no, crypto ca server user-db add
user [dn dn] [email e-mail-address], crypto ca server
user-db allow {username | all-unenrolled |
all-certholders} [display-otp] [email-otp] [replace-otp],
crypto ca server user-db email-otp {username |
all-unenrolled | all-certholders}, crypto ca server
user-db remove username, crypto ca server user-db
show-otp {username | all-certholders | all-unenrolled},
crypto ca server user-db write, [no] database path
mount-name directory-path, debug crypto ca server
[level], lifetime {ca-certificate | certificate | crl} time, no
shutdown, otp expiration timeout, renewal-reminder
time, show crypto ca server, show crypto ca server
cert-db [user username | allowed | enrolled | expired |
on-hold] [serial certificate-serial-number], show crypto
ca server certificate, show crypto ca server crl, show
crypto ca server user-db [expired | allowed | on-hold |
enrolled], show crypto key name of key, show
running-config, shutdown.
SCEP proxy 8.4(1) We introduced this feature, which provides secure
deployment of device certificates from third-party CAs.
We introduced the following commands:
crypto ikev2 enable outside client-services port
portnumber, scep-enrollment enable,
scep-forwarding-url value URL,
secondary-pre-fill-username clientless hide
use-common-password password,
secondary-pre-fill-username ssl-client hide
use-common-password password,
secondary-username-from-certificate {use-entire-name
| use-script | {primary_attr [secondary-attr]}}
[no-certificate-fallback cisco-secure-desktop
machine-unique-id].
System Administration
CH AP TE R 35
Management Access
This chapter describes how to access the Cisco ASA for system management through Telnet, SSH, and
HTTPS (using ASDM), how to authenticate and authorize users, and how to create login banners.
• Guidelines for Management Access, page 35-1
• Configure ASA Access for ASDM, Telnet, or SSH, page 35-3
• Configure AAA for System Administrators, page 35-9
• History for Management Access, page 35-27
Model Guidelines
For the ASASM, a session from the switch to the ASASM is a Telnet session, but Telnet access
configuration according to this section is not required.
VPN Guidelines
Note For the configurations that follow, 192.168.10.0/24 is the VPN pool for AnyConnect or IPsec VPN
clients. Each configuration allows VPN client users to connect to ASDM or SSH to the ASA using the
management interface IP address.
• To allow only VPN client users access to ASDM or HTTP (and deny access to all other users), enter
the following commands:
ciscoasa(config)# http server enable
ciscoasa(config)# http 192.168.10.0 255.255.255.0 management_interface
• To allow only VPN client users access to the ASA using SSH (and deny access to all other users),
enter the following command:
ciscoasa(config)# ssh 192.168.10.0 255.255.255.0 management_interface
Additional Guidelines
• To access the ASA interface for management access, you do not also need an access rule allowing
the host IP address. You only need to configure management access according to the sections in this
chapter.
• You cannot use Telnet to the lowest security interface unless you use Telnet inside a VPN tunnel.
• Management access to an interface other than the one from which you entered the ASA is not
supported. For example, if your management host is located on the outside interface, you can only
initiate a management connection directly to the outside interface. The only exception to this rule is
through a VPN connection.
• The ASA allows:
– A maximum of 5 concurrent Telnet connections per context, if available, with a maximum of
100 connections divided among all contexts.
– A maximum of 5 concurrent SSH connections per context, if available, with a maximum of 100
connections divided among all contexts.
– A maximum of 5 concurrent ASDM instances per context, if available, with a maximum of 32
ASDM instances among all contexts.
• The ASA supports the SSH remote shell functionality provided in SSH Versions 1 and 2 and
supports DES and 3DES ciphers.
• XML management over SSL and SSH is not supported.
• (8.4 and later) The SSH default username is no longer supported. You can no longer connect to the
ASA using SSH with the pix or asa username and the login password. To use SSH, you must
configure AAA authentication using the aaa authentication ssh console LOCAL command; then
define a local user by entering the username command. If you want to use a AAA server for
authentication instead of the local database, we recommend also configuring local authentication as
a backup method.
• (9.1(2) and later) The default Telnet login password was removed; you must manually set the
password before using Telnet.
• To gain access to the ASA CLI using Telnet, enter the login password set by the password
command. You must manually set the password before using Telnet.
• If you configure Telnet authentication, then enter the username and password defined by the AAA
server or local database.
• When starting an SSH session, a dot (.) displays on the ASA console before the following SSH user
authentication prompt appears:
ciscoasa(config)#.
The display of the dot does not affect the functionality of SSH. The dot appears at the console when
generating a server key or decrypting a message using private keys during SSH key exchange before
user authentication occurs. These tasks can take up to two minutes or longer. The dot is a progress
indicator that verifies that the ASA is busy and has not hung. You can alternatively configure a
public key instead of using a password.
• If you cannot make a Telnet or SSH connection to the ASA interface, make sure that you enabled
Telnet or SSH to the ASA according to the instructions in this chapter.
• From a security perspective, it is important that your banner discourage unauthorized access. Do not
use the words “welcome” or “please,” as they appear to invite intruders in. The following banner
sets the correct tone for unauthorized access:
You have logged in to a secure device. If you are not authorized to access this
device, log out immediately or risk possible criminal consequences.
• After a banner has been added, Telnet or SSH sessions to the ASA may close if:
– There is not enough system memory available to process the banner message(s).
– A TCP write error occurs when trying to display banner message(s).
• See RFC 2196 for guidelines about banner messages.
Related Topics
• Set the Hostname, Domain Name, and the Enable and Telnet Passwords, page 14-1
• Add a User Account to the Local Database, page 28-3
Procedure
Step 1 Identify the IP addresses from which the ASA accepts connections for each address or subnet.
telnet source_IP_address mask source_interface
Example:
ciscoasa(config)# telnet 192.168.1.2 255.255.255.255 inside
If there is only one interface, you can configure Telnet to access that interface as long as the interface
has a security level of 100.
Step 2 Set the duration for how long a Telnet session can be idle before the ASA disconnects the session.
telnet timeout minutes
Example:
ciscoasa(config)# telnet timeout 30
Set the timeout from 1 to 1440 minutes. The default is 5 minutes. The default duration is too short in
most cases and should be increased until all pre-production testing and troubleshooting have been
completed.
Examples
The following example shows how to let a host on the inside interface with an address of 192.168.1.2
access the ASA:
ciscoasa(config)# telnet 192.168.1.2 255.255.255.255 inside
The following example shows how to allow all users on the 192.168.3.0 network to access the ASA on
the inside interface:
ciscoasa(config)# telnet 192.168.3.0 255.255.255.0 inside
Procedure
Step 1 Generate an RSA key pair, which is required for SSH (for physical ASAs only).
crypto key generate rsa modulus modulus_size
Example:
ciscoasa(config)# crypto key generate rsa modulus 1024
For the ASAv, the RSA key pairs are automatically created after deployment.
The modulus value (in bits) is 512, 768, 1024, or 2048. The larger the key modulus size you specify, the
longer it takes to generate an RSA key pair. We recommend a value of 1024.
Step 2 Save the RSA keys to persistent flash memory.
write memory
Example:
ciscoasa(config)# write memory
Step 3 Enable local authentication for SSH access. You can alternatively configure authentication using a AAA
server.
aaa authentication ssh console LOCAL
Example:
ciscoasa(config)# aaa authentication ssh console LOCAL
Step 4 Create a user in the local database that can be used for SSH access.
username username password password
Example:
ciscoasa(config)# username user1 password cisco123
Step 5 Identify the IP addresses from which the ASA accepts connections for each address or subnet, and the
interface on which you can use SSH. Unlike Telnet, you can SSH on the lowest security level interface.
ssh source_IP_address mask source_interface
Example:
ciscoasa(config)# ssh 192.168.3.0 255.255.255.0 inside
Step 6 (Optional) Set the duration for how long an SSH session can be idle before the ASA disconnects the
session.
ssh timeout minutes
Example:
ciscoasa(config)# ssh timeout 30
Set the timeout from 1 to 60 minutes. The default is 5 minutes. The default duration is too short in most
cases, and should be increased until all pre-production testing and troubleshooting have been completed
Step 7 (Optional) Limit access to SSH version 1 or 2. By default, SSH allows both versions 1 and 2.
ssh version version_number
Example:
ciscoasa(config)# ssh version 2
Examples
The following example shows how to generate RSA keys and let a host on the inside interface with an
address of 192.168.1.2 access the ASA:
ciscoasa(config)# crypto key generate rsa modulus 1024
ciscoasa(config)# write memory
ciscoasa(config)# aaa authentication ssh console LOCAL
WARNING: local database is empty! Use 'username' command to define local users.
ciscoasa(config)# username exampleuser1 password examplepassword1
ciscoasa(config)# ssh 192.168.1.2 255.255.255.255 inside
ciscoasa(config)# ssh timeout 30
The following example shows how to allow all users on the 192.168.3.0/24 network to access the ASA
on the inside interface:
ciscoasa(config)# ssh 192.168.3.0 255.255.255.0 inside
Procedure
Step 1 Identify the IP addresses from which the ASA accepts HTTPS connections for each address or subnet.
http source_IP_address mask source_interface
Example:
ciscoasa(config)# http 192.168.1.2 255.255.255.255 inside
Example:
ciscoasa(config)# http server enable 443
By default, the port is 443. If you change the port number, be sure to include it in the ASDM access URL.
For example, if you change the port number to 444, enter the following:
https://10.1.1.1:444
Step 3 (Optional) Redirect HTTP requests to HTTPS requests, which makes it possible for users to enter
“http://” in the ASDM URL and get to the HTTPS URL without error.
http redirect interface [port]
Example:
ciscoasa(config)# http redirect inside
Examples
The following example shows how to enable the HTTPS server and let a host on the inside interface with
an address of 192.168.1.2 access ASDM:
ciscoasa(config)# http server enable
ciscoasa(config)# http 192.168.1.2 255.255.255.255 inside
The following example shows how to allow all users on the 192.168.3.0/24 network to access ASDM on
the inside interface:
ciscoasa(config)# http 192.168.3.0 255.255.255.0 inside
Procedure
Step 1 Add a banner to display at one of three times: when a user first connects (message-of-the-day (motd)),
when a user logs in (login), and when a user accesses privileged EXEC mode (exec).
banner {exec | login | motd} text
Example:
ciscoasa(config)# banner motd Welcome to $(hostname).
When a user connects to the ASA, the message-of-the-day banner appears first, followed by the login
banner and prompts. After the user successfully logs in to the ASA, the exec banner appears.
To add more than one line, precede each line by the banner command.
Examples
The following example shows how to add a message-of-the-day banner:
ciscoasa(config)# banner motd Welcome to $(hostname).
ciscoasa(config)# banner motd Contact me at [email protected] for any
ciscoasa(config)# banner motd issues.
cluster-unit (Single and multiple mode) Displays the cluster unit name. Each unit in a
cluster can have a unique name.
context (Multiple mode only) Displays the name of the current context.
domain Displays the domain name.
hostname Displays the hostname.
priority Displays the failover priority as pri (primary) or sec (secondary).
state Displays the traffic-passing state of the unit. The following values appear for
the state:
• act—Failover is enabled, and the unit is actively passing traffic.
• stby— Failover is enabled, and the unit is not passing traffic and is in a
standby, failed, or another inactive state.
• actNoFailover—Failover is not enabled, and the unit is actively passing
traffic.
• stbyNoFailover—Failover is not enabled, and the unit is not passing
traffic. This condition might occur when there is an interface failure
above the threshold on the standby unit.
Shows the role (master or slave) of a unit in a cluster. For example, in the
prompt ciscoasa/cl2/slave, the hostname is ciscoasa, the unit name is cl2, and
the state name is slave.
Procedure
Example:
ciscoasa(config)# firewall transparent
Procedure
Step 1 Specify the idle time in minutes (0 through 60) after which the privileged session ends. The default
timeout is 0, which means the session does not time out.
console timeout number
Example:
ciscoasa(config)# console timeout 0
Procedure
Step 1 Specify the name of the management interface that you want to access when entering the ASA from
another interface.
management-access management_interface
Example:
ciscoasa(config)# management-access inside
Note You can use local command authorization without any users in the local database and without
CLI or enable authentication. Instead, when you enter the enable command, you enter the
system enable password, and the ASA places you in level 15. You can then create enable
passwords for every level, so that when you enter enable n (2 to 15), the ASA places you in level
n. These levels are not used unless you enable local command authorization.
• TACACS+ server privilege levels—On the TACACS+ server, configure the commands that a user or
group can use after authenticating for CLI access. Every command that a user enters at the CLI is
validated with the TACACS+ server.
The following table shows how credentials are used in this case by the ASA.
Note The system execution space does not support AAA commands; therefore, command authorization is not
available in the system execution space.
Procedure
Example:
ciscoasa(config)# aaa authentication ssh console radius_1 LOCAL
ciscoasa(config)# aaa authentication http console radius_1 LOCAL
ciscoasa(config)# aaa authentication serial console LOCAL
The telnet keyword controls Telnet access. For the ASASM, this keyword also affects the session from
the switch using the session command. The ssh keyword controls SSH access. The http keyword
controls ASDM access. The serial keyword controls console port access. For the ASASM, this keyword
affects the virtual console accessed from the switch using the service-module session command.
HTTP management authentication does not support the SDI protocol for a AAA server group.
If you use a AAA server group for authentication, you can configure the ASA to use the local database
as a fallback method if the AAA server is unavailable. Specify the server group name followed by
LOCAL (LOCAL is case sensitive). We recommend that you use the same username and password in
the local database as the AAA server, because the ASA prompt does not give any indication which
method is being used. You can alternatively use the local database as your primary method of
authentication (with no fallback) by entering LOCAL alone.
Step 2 Request a certificate from ASDM clients connecting over HTTP on the specified interface.
http authentication-certificate interface
Example:
ciscoasa(config)# http authentication-certificate inside
You can use this command in addition to the aaa authentication command for ASDM.
This command is only for ASDM access, use the ssl certificate-authentication command to require a
certificate for all other SSL traffic (for example, cut-through proxy).
Procedure
Example:
ciscoasa(config)# aaa authentication enable console LOCAL
To log in as a user from the local database, perform the following steps:
Example:
ciscoasa# login
The ASA prompts for your username and password. After you enter your password, the ASA places you
in the privilege level that the local database specifies.
Users can log in with their own username and password to access privileged EXEC mode, so you do not
have to provide the system enable password to everyone. To allow users to access privileged EXEC mode
(and all commands) when they log in, set the user privilege level to 2 (the default) through 15. If you
configure local command authorization, then the user can only enter commands assigned to that privilege
level or lower.
Caution If you add users to the local database who can gain access to the CLI and whom you do not want to enter
privileged EXEC mode, you should configure command authorization. Without command authorization,
users can access privileged EXEC mode (and all commands) at the CLI using their own password if their
privilege level is 2 or greater (2 is the default). Alternatively, you can use a AAA server for
authentication, or you can set all local users to level 1 so you can control who can use the system enable
password to access privileged EXEC mode.
Note Serial access is not included in management authorization, so if you configure the aaa authentication
serial consolecommand, then any user who authenticates can access the console port.
Procedure
Step 1 To enable management authorization for local, RADIUS, LDAP (mapped), and TACACS+ users, enter
the following command:
ciscoasa(config)# aaa authorization exec {authentication-server | LOCAL} [auto-enable]
When the LOCAL option is configured, the local user database is the source for the username
entered and the Service-Type and Privilege-Level attributes assigned.
This option also enables support of administrative user privilege levels from RADIUS, which can
be used in conjunction with local command privilege levels for command authorization.
When the authentication-server option is configured, the same server is used for both
authentication and authorization.
The auto-enable option allows users with sufficient privileges from the login authentication server
to be placed directly in privileged EXEC mode. Otherwise, users are placed in user EXEC mode.
These privileges are determined by the Service-Type and Privilege-Level attributes that are required
to enter each EXEC mode. To enter privileged EXEC mode, users must have a Service-Type attribute
of Administrative and a Privilege Level attribute of greater than 1 assigned to them.
This option is not supported in the system context. However, if you configure Telnet or serial
authentication in the admin context, then authentication also applies to sessions from the switch to
the ASASM.
There is no effect if you enter the aaa authorization exec command alone.
The auto-enable option is not included when you use serial authentication in management
authorization.
The aaa authentication http command is not affected by the auto-enable option.
Before you configure the auto-enable option, we recommend that you configure both protocol login
and enable authentication, and that all authentication requests go to the same AAA server group, as
shown in the following example:
ciscoasa (config)# aaa authentication ssh console RADIUS
ciscoasa (config)# aaa authentication enable console RADIUS
ciscoasa (config)# aaa authorization exec authentication-server auto-enable
The following example applies an LDAP attribute map to an LDAP AAA server:
ciscoasa(config)# aaa-server ldap-server (dmz1) host 10.20.30.1
ciscoasa(config-aaa-server-host)# ldap-attribute-map admin-control
• TACACS+ users
Authorization is requested with “service=shell,” and the server responds with PASS or FAIL.
– PASS, privilege level 1—Allows access to ASDM, with limited read-only access to the
configuration and monitoring sections, and access for show commands that are privilege level
1 only.
– PASS, privilege level 2 and higher—Allows access to the CLI when you configure the aaa
authentication {telnet | ssh} console command, but denies ASDM configuration access if you
configure the aaa authentication http console command. ASDM monitoring access is allowed.
If you configure enable authentication with the aaa authentication enable console command,
the user cannot access privileged EXEC mode using the enable command. You are not allowed
to access privileged EXEC mode using the enable command if your enable privilege level is set
to 14 or less.
– FAIL—Denies management access. You cannot use any services specified by the aaa
authentication console commands(excluding the serial keyword; serial access is allowed).
• Local users
Set the service-type command for a given username. By default, the service-type is admin, which
allows full access to any services specified by the aaa authentication console command.
Procedure
Step 1 (Optional) Set the interval in days after which passwords expire for remote users (SSH, Telnet, HTTP).
Example:
ciscoasa(config)# password-policy lifetime 180
Note Users at the console port are never locked out because of password expiration.
Valid values are between 0 and 65536 days. The default value is 0 days, a value indicating that passwords
will never expire.
Seven days before the password expires, a warning message appears. After the password expires, system
access is denied to remote users. To gain access after expiration, do one of the following:
• Have another administrator change your password with the username command.
• Log in to the physical console port to change your password.
Step 2 (Optional) Set the minimum number of characters that you must change between new and old passwords.
password-policy minimum-changes value
Example:
ciscoasa(config)# password-policy minimum-changes 2
Example:
ciscoasa(config)# password-policy minimum-length 8
Valid values are between 3 and 64 characters. We recommend a minimum password length of 8
characters.
Step 4 (Optional) Set the minimum number of upper case characters that passwords must have.
password-policy minimum-uppercase value
Example:
ciscoasa(config)# password-policy minimum-uppercase 3
Valid values are between 0 and 64 characters. The default value is 0, which means there is no minimum.
Step 5 (Optional) Set the minimum number of lower case characters that passwords must have.
password-policy minimum-lowercase value
Example:
ciscoasa(config)# password-policy minimum-lowercase 6
Valid values are between 0 and 64 characters. The default value is 0, which means there is no minimum.
Step 6 (Optional) Set the minimum number of numeric characters that passwords must have.
password-policy minimum-numeric value
Example:
ciscoasa(config)# password-policy minimum-numeric 1
Valid values are between 0 and 64 characters. The default value is 0, which means there is no minimum.
Step 7 (Optional) Set the minimum number of special characters that passwords must have.
password-policy minimum-special value
Example:
ciscoasa(config)# password-policy minimum-special 2
Valid values are between 0 and 64 characters. Special characters include the following: !, @, #, $, %, ^,
&, *, '(‘ and ‘)’. The default value is 0, which means there is no minimum.
Step 8 (Optional) Set whether users must change their password using the change-password command, instead
of letting users change their password with the username command.
password-policy authenticate enable
Example:
ciscoasa(config)# password-policy authenticate enable
The default setting is disabled: a user can use either method to change their password.
If you enable this feature and try to change your password with the username command, the following
error message appears:
ERROR: Changing your own password is prohibited
You also cannot delete your own account with the clear configure username command. If you try, the
following error message appears:
ERROR: You cannot delete all usernames because you are not allowed to delete yourself
Procedure
Example:
ciscoasa# change-password old-password j0hncr1chton new-password a3rynsun
If you do not enter the old and new passwords in the command, the ASA prompts you for input.
Procedure
Example:
ciscoasa(config)# privilege show level 5 command filter
Repeat this command for each command that you want to reassign.
The options in this command are the following:
• show | clear | cmd—These optional keywords let you set the privilege only for the show, clear, or
configure form of the command. The configure form of the command is typically the form that
causes a configuration change, either as the unmodified command (without the show or clear prefix)
or as the no form. If you do not use one of these keywords, all forms of the command are affected.
• level level—A level between 0 and 15.
• mode {enable | configure}—If a command can be entered in user EXEC or privileged EXEC mode
as well as configuration mode, and the command performs different actions in each mode, you can
set the privilege level for these modes separately:
– enable—Specifies both user EXEC mode and privileged EXEC mode.
– configure—Specifies configuration mode, accessed using the configure terminal command.
• command command—The command you are configuring. You can only configure the privilege
level of the main command. For example, you can configure the level of all aaa commands, but not
the level of the aaa authentication command and the aaa authorization command separately.
Step 2 Support administrative user privilege levels from RADIUS and enforce user-specific access levels for
users who authenticate for management access.
aaa authorization exec authentication-server
Example:
ciscoasa(config)# aaa authorization exec authentication-server
Without this command, the ASA only supports privilege levels for local database users and defaults all
other types of users to level 15.
This command also enables management authorization for local, RADIUS, LDAP (mapped), and
TACACS+ users.
Use the aaa authorization exec LOCAL command to enable attributes to be taken from the local
database.
Step 3 Enable the use of local command privilege levels, which can be checked with the privilege level of users
in the local database, RADIUS server, or LDAP server (with mapped attributes).
aaa authorization command LOCAL
Example:
ciscoasa(config)# aaa authorization command LOCAL
When you set command privilege levels, command authorization does not occur unless you configure
command authorization with this command.
Examples
The filter command has the following forms:
• filter (represented by the configure option)
• show running-config filter
• clear configure filter
You can set the privilege level separately for each form, or set the same privilege level for all forms by
omitting this option. The following example shows how to set each form separately:
ciscoasa(config)# privilege show level 5 command filter
ciscoasa(config)# privilege clear level 10 command filter
ciscoasa(config)# privilege cmd level 10 command filter
Alternatively, the following example shows how to set all filter commands to the same level:
ciscoasa(config)# privilege level 5 command filter
The following example shows an additional command, the configure command, which uses the mode
keyword:
ciscoasa(config)# privilege show level 5 mode cmd command configure
ciscoasa(config)# privilege clear level 15 mode cmd command configure
ciscoasa(config)# privilege cmd level 15 mode cmd command configure
ciscoasa(config)# privilege cmd level 15 mode enable command configure
Note Cisco Secure ACS might include a command type called “pix-shell.” Do not use this type for
ASA command authorization.
• The first word of the command is considered to be the main command. All additional words are
considered to be arguments, which need to be preceded by permit or deny.
For example, to allow the show running-configuration aaa-server command, add show
running-configuration to the command field, and type permit aaa-server in the arguments field.
• You can permit all arguments of a command that you do not explicitly deny by checking the Permit
Unmatched Args check box.
For example, you can configure just the show command, then all the show commands are allowed.
We recommend using this method so that you do not have to anticipate every variant of a command,
including abbreviations and a question mark, which shows CLI usage.
• For commands that are a single word, you must permit unmatched arguments, even if there are no
arguments for the command, for example enable or help.
• To disallow some arguments, enter the arguments preceded by deny.
For example, to allow enable, but not enable password, enter enable in the commands field, and
deny password in the arguments field. Be sure to check the Permit Unmatched Args check box so
that enable alone is still allowed.
• When you abbreviate a command at the command line, the ASA expands the prefix and main
command to the full text, but it sends additional arguments to the TACACS+ server as you enter
them.
For example, if you enter sh log, then the ASA sends the entire command to the TACACS+ server,
show logging. However, if you enter sh log mess, then the ASA sends show logging mess to the
TACACS+ server, and not the expanded command show logging message. You can configure
multiple spellings of the same argument to anticipate abbreviations.
• We recommend that you allow the following basic commands for all users:
– show checksum
– show curpriv
– enable
– help
– show history
– login
– logout
– pager
– show pager
– clear pager
– quit
– show version
Procedure
Example:
ciscoasa(config)# aaa authorization command group_1 LOCAL
You can configure the ASA to use the local database as a fallback method if the TACACS+ server is
unavailable. To enable fallback, specify the server group name followed by LOCAL (LOCAL is case
sensitive). We recommend that you use the same username and password in the local database as the
TACACS+ server because the ASA prompt does not give any indication of which method is being used.
Be sure to configure users in the local database and command privilege levels.
Procedure
Example:
ciscoasa(config)# aaa accounting telnet console group_1
Example:
ciscoasa(config)# aaa accounting command privilege 15 group_1
The privilege level keyword-argument pair is the minimum privilege level and the server-tag argument
is the name of the TACACS+ server group to which the ASA should send command accounting
messages.
Procedure
Example:
ciscoasa(config)# quota management-session 1000
Entering the no form of this command sets the quota value to 0, which means that there is no session
limit. Valid values range from 0 to 10000.
Example:
ciscoasa(config)# ssh key-exchange group dh-group14 sha-1
ciscoasa# show running-config key-exchange
ssh key-exchange dh-group14-sha1
The key-exchange keyword specifies that either the DH group 1 or DH group 14 key-exchange method
will follow and should be used when exchanging keys.
The group keyword indicates that either the DH group 1 key-exchange method or the DH group 14
key-exchange method will follow and should be used when exchanging keys.
The dh-group1 keyword indicates that the DH group 1 key-exchange method will follow and should be
used when exchanging keys. DH group 2 is called DH group 1 for legacy reasons.
The dh-group14 keyword indicates that the DH group 14 key-exchange method will follow and should
be used when exchanging keys.
The sha-1 keyword indicates that the SHA-1 encryption algorithm should be used.
Use the show running-config ssh key-exchange command to display the DH group key-exchange
method currently being used.
Feature Lockout Condition Description Workaround: Single Mode Workaround: Multiple Mode
Local CLI No users have If you have no users in Log in and reset the Session into the ASA from
authentication been configured the local database, you passwords and aaa the switch. From the system
in the local cannot log in, and you commands. execution space, you can
database. cannot add any users. change to the context and
add a user.
TACACS+ The server is If the server is 1. Log in and reset the 1. If the server is
command down or unreachable, then you passwords and AAA unreachable because the
authorization unreachable and cannot log in or enter commands. network configuration
you do not have any commands. is incorrect on the ASA,
TACACS+ CLI 2. Configure the local
the fallback session into the ASA
authentication database as a fallback
method from the switch. From
method so you do not
RADIUS CLI configured. the system execution
get locked out when the
authentication space, you can change
server is down.
to the context and
reconfigure your
network settings.
2. Configure the local
database as a fallback
method so that you do
not get locked out when
the server is down.
TACACS+ You are logged in You enable command Fix the TACACS+ server Session into the ASA from
command as a user without authorization, but then user account. the switch. From the system
authorization enough privileges find that the user If you do not have access to
execution space, you can
or as a user that cannot enter any more the TACACS+ server and
change to the context and
does not exist. commands. you need to configure the
complete the configuration
changes. You can also
ASA immediately, then log
disable command
into the maintenance
authorization until you fix
partition and reset the
the TACACS+
passwords and aaa
configuration.
commands.
Local command You are logged in You enable command Log in and reset the Session into the ASA from
authorization as a user without authorization, but then passwords and aaa the switch. From the system
enough find that the user commands. execution space, you can
privileges. cannot enter any more change to the context and
commands. change the user level.
Examples
For the show running-config all privilege all command, the ASA displays the current assignment of
each CLI command to a privilege level. The following is sample output from this command:
ciscoasa(config)# show running-config all privilege all
privilege show level 15 command aaa
privilege clear level 15 command aaa
privilege configure level 15 command aaa
privilege show level 15 command aaa-server
privilege clear level 15 command aaa-server
privilege configure level 15 command aaa-server
privilege show level 15 command access-group
privilege clear level 15 command access-group
privilege configure level 15 command access-group
privilege show level 15 command access-list
privilege clear level 15 command access-list
privilege configure level 15 command access-list
privilege show level 15 command activation-key
privilege configure level 15 command activation-key
....
The following example shows the command assignments for privilege level 10:
ciscoasa(config)# show running-config privilege level 10
privilege show level 10 command aaa
The following example shows the command assignments for the access-list command:
ciscoasa(config)# show running-config privilege command access-list
privilege show level 15 command access-list
privilege clear level 15 command access-list
privilege configure level 15 command access-list
• show curpriv
This command shows the currently logged-in user.
Examples
The following is sample output from the show curpriv command:
ciscoasa# show curpriv
Username: admin
Current privilege level: 15
Current Mode/s: P_PRIV
Field Description
Username Username. If you are logged in as the default user, the name is enable_1 (user
EXEC) or enable_15 (privileged EXEC).
Current privilege level Levels range from 0 to 15. Unless you configure local command authorization
and assign commands to intermediate privilege levels, levels 0 and 15 are the
only levels that are used.
Current Modes The available access modes are the following:
• P_UNPR—User EXEC mode (levels 0 and 1)
• P_PRIV—Privileged EXEC mode (levels 2 to 15)
• P_CONF—Configuration mode
Platform
Feature Name Releases Description
Management Access 7.0(1) We introduced this feature.
We introduced the following commands:
show running-config all privilege all, show
running-config privilege level, show running-config
privilege command, telnet, telnet timeout, ssh, ssh
timeout, http, http server enable, asdm image disk,
banner, console timeout, icmp, ipv6 icmp, management
access, aaa authentication console, aaa authentication
enable console, aaa authentication telnet | ssh console,
service-type, login, privilege, aaa authentication exec
authentication-server, aaa authentication command
LOCAL, aaa accounting serial | telnet | ssh | enable
console, show curpriv, aaa accounting command
privilege.
Platform
Feature Name Releases Description
Increased SSH security; the SSH default 8.4(2) Starting in 8.4(2), you can no longer connect to the ASA
username is no longer supported. using SSH with the pix or asa username and the login
password. To use SSH, you must configure AAA
authentication using the aaa authentication ssh console
LOCAL command (CLI) or Configuration > Device
Management > Users/AAA > AAA Access >
Authentication (ASDM); then define a local user by
entering the username command (CLI) or choosing
Configuration > Device Management > Users/AAA > User
Accounts (ASDM). If you want to use a AAA server for
authentication instead of the local database, we recommend
also configuring local authentication as a backup method.
Support for administrator password policy 8.4(4.1), When you configure authentication for CLI or ASDM
when using the local database 9.1(2) access using the local database, you can configure a
password policy that requires a user to change their
password after a specified amount of time and also requires
password standards such as a minimum length and the
minimum number of changed characters.
We introduced the following commands:
change-password, password-policy lifetime,
password-policy minimum changes, password-policy
minimum-length, password-policy minimum-lowercase,
password-policy minimum-uppercase, password-policy
minimum-numeric, password-policy minimum-special,
password-policy authenticate enable, clear configure
password-policy, show running-config password-policy.
Support for SSH public key authentication 8.4(4.1), You can enable public key authentication for SSH
9.1(2) connections to the ASA on a per-user basis. You can specify
a public key file (PKF) formatted key or a Base64 key. The
PKF key can be up to 4096 bits. Use PKF format for keys
that are too large to for the ASA support of the Base64
format (up to 2048 bits).
We introduced the following commands: ssh
authentication.
PKF key format support is only in 9.1(2) and later.
Support for Diffie-Hellman Group 14 for the 8.4(4.1), Support for Diffie-Hellman Group 14 for SSH Key
SSH Key Exchange 9.1(2) Exchange was added. Formerly, only Group 1 was
supported.
We introduced the following command: ssh key-exchange.
Platform
Feature Name Releases Description
Support for a maximum number of management 8.4(4.1), You can set the maximum number of simultaneous ASDM,
sessions 9.1(2) SSH, and Telnet sessions.
We introduced the following commands: quota
management-session, show running-config quota
management-session, show quota management-session.
For the ASASM in multiple context mode, 8.5(1) Although connecting to the ASASM from the switch in
support for Telnet and virtual console multiple context mode connects to the system execution
authentication from the switch. space, you can configure authentication in the admin
context to govern those connections.
AES-CTR encryption for SSH 9.1(2) The SSH server implementation in the ASA now supports
AES-CTR mode encryption.
Improved SSH rekey interval An SSH connection is rekeyed after 60 minutes of
connection time or 1 GB of data traffic.
We introduced the following command: show ssh sessions
detail.
Improved one-time password authentication 9.2(1) Administrators who have sufficient authorization privileges
may enter privileged EXEC mode by entering their
authentication credentials once. The auto-enable option
was added to the aaa authorization exec command.
We modified the following command: aaa authorization
exec.
This chapter describes how to manage the Cisco ASA software and configurations.
• Upgrading the Software, page 36-1
• Managing Files, page 36-10
• Configuring the Images and Startup Configuration to Use, page 36-20
• Using the ROM Monitor to Load an Image, page 36-21
• Backing Up and Restoring Configurations or Other Files, page 36-24
• Downgrading Your Software, page 36-37
• Configuring Auto Update, page 36-39
• Feature History for Software and Configurations, page 36-46
Upgrade Path
See the following table for the upgrade path for your version. Some versions require an interim upgrade
before you can upgrade to the latest version.
Note There are no special requirements for Zero Downtime Upgrades for failover and ASA clustering with
the following exception. Upgrading ASA clustering from 9.0(1) or 9.1(1): due to CSCue72961, hitless
upgrading is not supported.
Configuration Migration
Depending on your current version, you might experience one or more configuration migrations when
you upgrade. For example, when upgrading from 8.0 to 9.3, you will experience all of these migrations:
• 8.2—See the 8.2 release notes.
• 8.3—See the Cisco ASA 5500 Migration Guide to Version 8.3.
• 8.4—See the 8.4 upgrade guide.
• 9.0—See the 9.0 upgrade guide.
Procedure
This procedure uses TFTP. For FTP or HTTP, see the copy command.
Step 1 (If there is a configuration migration) Show the configuration on the terminal so that you can back up
your configuration:
more system:running-config
Copy the output from this command, then paste the configuration in to a text file. For other methods of
backing up, see the configuration guide.
Step 2 Copy the ASA software to the active unit flash memory:
copy tftp://server[/path]/asa_image_name {disk0:/ | disk1:/}[path/]asa_image_name
Example:
ciscoasa# copy tftp://10.1.1.1/asa931-smp-k8.bin disk0:/asa931-smp-k8.bin
Example:
ciscoasa# copy tftp://10.1.1.1/asdm-731.bin disk0:/asdm-731.bin
Step 4 If you are not already in global configuration mode, access global configuration mode:
configure terminal
Example:
ciscoasa(config)# show running-config boot system
boot system disk0:/cdisk.bin
boot system disk0:/asa914-smp-k8.bin
The ASA uses the images in the order listed; if the first image is unavailable, the next image is used, and
so on. You cannot insert a new image URL at the top of the list; to specify the new image to be first, you
must remove any existing entries, and enter the image URLs in the order desired, according to Step 6
and Step 7.
Step 6 Remove any existing boot image configurations so that you can enter the new boot image as your first
choice:
no boot system {disk0:/ | disk1:/}[path/]asa_image_name
Example:
ciscoasa(config)# no boot system disk0:/cdisk.bin
ciscoasa(config)# no boot system disk0:/asa914-smp-k8.bin
Step 7 Set the ASA image to boot (the one you just uploaded):
boot system {disk0:/ | disk1:/}[path/]asa_image_name
Example:
ciscoasa(config)# boot system disk0://asa931-smp-k8.bin
Repeat this command for any backup images that you want to use in case this image is unavailable. For
example, you can re-enter the images that you previously removed in Step 6.
Step 8 Set the ASDM image to use (the one you just uploaded):
asdm image {disk0:/ | disk1:/}[path/]asdm_image_name
Example:
ciscoasa(config)# asdm image disk0:/asdm-731.bin
You can only configure one ASDM image to use, so you do not need to first remove the existing
configuration.
Step 9 Save the new settings to the startup configuration:
write memory
Procedure
Step 1 (If there is a configuration migration) Show the configuration on the terminal so that you can back up
your configuration:
more system:running-config
Example:
active# more system:running-config
Copy the output from this command, then paste the configuration in to a text file. For other methods of
backing up, see the configuration guide.
Step 2 Copy the ASA software to the active unit flash memory:
copy tftp://server[/path]/asa_image_name {disk0:/ | disk1:/}[path/]asa_image_name
Example:
active# copy tftp://10.1.1.1/asa931-smp-k8.bin disk0:/asa931-smp-k8.bin
Step 3 Copy the software to the standby unit; be sure to specify the same path as for the active unit:
failover exec mate copy /noconfirm tftp://server[/path]/filename {disk0:/ |
disk1:/}[path/]filename
Example:
active# failover exec mate copy /noconfirm tftp://10.1.1.1/asa931-smp-k8.bin
disk0:/asa931-smp-k8.bin
Step 4 Copy the ASDM image to the active unit flash memory:
copy tftp://server[/path]/asdm_image_name {disk0:/ | disk1:/}[path/]asdm_image_name
Example:
active# copy tftp://10.1.1.1/asdm-731.bin disk0:/asdm-731.bin
Step 5 Copy the ASDM image to the standby unit; be sure to specify the same path as for the active unit:
failover exec mate copy /noconfirm tftp://server[/path]/asdm_image_name {disk0:/ |
disk1:/}[path/]asdm_image_name
Example:
active# failover exec mate copy /noconfirm tftp://10.1.1.1/asdm-731.bin
disk0:/asdm-731.bin
Step 6 If you are not already in global configuration mode, access global configuration mode:
configure terminal
Example:
ciscoasa(config)# show running-config boot system
boot system disk0:/cdisk.bin
boot system disk0:/asa921-smp-k8.bin
The ASA uses the images in the order listed; if the first image is unavailable, the next image is used, and
so on. You cannot insert a new image URL at the top of the list; to specify the new image to be first, you
must remove any existing entries, and enter the image URLs in the order desired, according to Step 8
and Step 9.
Step 8 Remove any existing boot image configurations so that you can enter the new boot image as your first
choice:
no boot system {disk0:/ | disk1:/}[path/]asa_image_name
Example:
ciscoasa(config)# no boot system disk0:/cdisk.bin
ciscoasa(config)# no boot system disk0:/asa921-smp-k8.bin
Step 9 Set the ASA image to boot (the one you just uploaded):
boot system {disk0:/ | disk1:/}[path/]asa_image_name
Example:
ciscoasa(config)# boot system disk0://asa931-smp-k8.bin
Repeat this command for any backup images that you want to use in case this image is unavailable. For
example, you can re-enter the images that you previously removed in Step 8.
Step 10 Set the ASDM image to use (the one you just uploaded):
asdm image {disk0:/ | disk1:/}[path/]asdm_image_name
Example:
ciscoasa(config)# asdm image disk0:/asdm-731.bin
You can only configure one ASDM image to use, so you do not need to first remove the existing
configuration.
Step 11 Save the new settings to the startup configuration:
write memory
Wait for the standby unit to finish loading. Use the show failover command to verify that the standby
unit is in the Standby Ready state.
Step 13 Force the active unit to fail over to the standby unit:
no failover active
Step 14 Reload the former active unit (now the new standby unit):
reload
If you want to restore this unit to be active after it reloads, enter the failover active command.
Procedure
Step 1 (If there is a configuration migration) Show the configuration on the terminal so that you can back up
your configuration:
more system:running-config
Copy the output from this command, then paste the configuration in to a text file. For other methods of
backing up, see the configuration guide.
Step 2 Copy the ASA software to the primary unit flash memory:
copy tftp://server[/path]/asa_image_name {disk0:/ | disk1:/}[path/]asa_image_name
Example:
primary# copy tftp://10.1.1.1/asa931-smp-k8.bin disk0:/asa931-smp-k8.bin
Example:
primary# failover exec mate copy /noconfirm tftp://10.1.1.1/asa931-smp-k8.bin
disk0:/asa931-smp-k8.bin
Step 4 Copy the ASDM image to the primary unit flash memory:
copy tftp://server[/path]/asdm_image_name {disk0:/ | disk1:/}[path/]asdm_image_name
Example:
primary# copy tftp://10.1.1.1/asdm-731.bin disk0:/asdm-731.bin
Step 5 Copy the ASDM image to the secondary unit; be sure to specify the same path as for the active unit:
failover exec mate copy /noconfirm tftp://server[/path]/asdm_image_name {disk0:/ |
disk1:/}[path/]asdm_image_name
Example:
primary# failover exec mate copy /noconfirm tftp://10.1.1.1/asdm-731.bin
disk0:/asdm-731.bin
Step 7 If you are not already in global configuration mode, access global configuration mode:
configure terminal
Example:
primary(config)# configure terminal
Example:
ciscoasa(config)# show running-config boot system
boot system disk0:/cdisk.bin
boot system disk0:/asa921-smp-k8.bin
The ASA uses the images in the order listed; if the first image is unavailable, the next image is used, and
so on. You cannot insert a new image URL at the top of the list; to specify the new image to be first, you
must remove any existing entries, and enter the image URLs in the order desired, according to Step 9
and Step 10.
Step 9 Remove any existing boot image configurations so that you can enter the new boot image as your first
choice:
no boot system {disk0:/ | disk1:/}[path/]asa_image_name
Example:
ciscoasa(config)# no boot system disk0:/cdisk.bin
ciscoasa(config)# no boot system disk0:/asa921-smp-k8.bin
Step 10 Set the ASA image to boot (the one you just uploaded):
boot system {disk0:/ | disk1:/}[path/]asa_image_name
Example:
ciscoasa(config)# boot system disk0://asa931-smp-k8.bin
Repeat this command for any backup images that you want to use in case this image is unavailable. For
example, you can re-enter the images that you previously removed in Step 9.
Step 11 Set the ASDM image to use (the one you just uploaded):
asdm image {disk0:/ | disk1:/}[path/]asdm_image_name
Example:
ciscoasa(config)# asdm image disk0:/asdm-731.bin
You can only configure one ASDM image to use, so you do not need to first remove the existing
configuration.
Step 12 Save the new settings to the startup configuration:
write memory
Wait for the secondary unit to finish loading. Use the show failover command to verify that both failover
groups are in the Standby Ready state.
Step 14 Force both failover groups to become active on the secondary unit:
no failover active group 1
no failover active group 2
If the failover groups are configured with the preempt command, they automatically become active on
their designated unit after the preempt delay has passed. If the failover groups are not configured with
the preempt command, you can return them to active status on their designated units using the failover
active group command.
Procedure
Copy the output from this command, then paste the configuration in to a text file. For other methods of
backing up, see the general operations configuration guide.
Step 2 Copy the ASA software to all units in the cluster:
Example:
master# cluster exec copy /noconfirm tftp://10.1.1.1/asa931-smp-k8.bin
disk0:/asa931-smp-k8.bin
Example:
master# cluster exec copy /noconfirm tftp://10.1.1.1/asdm-731.bin disk0:/asdm-731.bin
Step 4 If you are not already in global configuration mode, access global configuration mode:
configure terminal
Example:
ciscoasa(config)# show running-config boot system
boot system disk0:/cdisk.bin
boot system disk0:/asa921-smp-k8.bin
The ASA uses the images in the order listed; if the first image is unavailable, the next image is used, and
so on. You cannot insert a new image URL at the top of the list; to specify the new image to be first, you
must remove any existing entries, and enter the image URLs in the order desired, according to Step 6
and Step 7.
Step 6 Remove any existing boot image configurations so that you can enter the new boot image as your first
choice:
no boot system {disk0:/ | disk1:/}[path/]asa_image_name
Example:
ciscoasa(config)# no boot system disk0:/cdisk.bin
ciscoasa(config)# no boot system disk0:/asa921-smp-k8.bin
Step 7 Set the ASA image to boot (the one you just uploaded):
boot system {disk0:/ | disk1:/}[path/]asa_image_name
Example:
ciscoasa(config)# boot system disk0://asa931-smp-k8.bin
Repeat this command for any backup images that you want to use in case this image is unavailable. For
example, you can re-enter the images that you previously removed in Step 6.
Step 8 Set the ASDM image to use (the one you just uploaded):
asdm image {disk0:/ | disk1:/}[path/]asdm_image_name
Example:
ciscoasa(config)# asdm image disk0:/asdm-731.bin
You can only configure one ASDM image to use, so you do not need to first remove the existing
configuration.
Step 9 Save the new settings to the startup configuration:
write memory
Step 10 Reload each slave unit when you repeat this command for each unit name:
cluster exec unit slave-unit reload noconfirm
Example:
master# cluster exec unit unit2 reload noconfirm
To avoid connection loss and allow traffic to stabilize, wait for each unit to come back up (approximately
5 minutes) before reloading the next unit. To view member names, enter cluster exec unit ?, or enter the
show cluster info command.
Step 11 Disable clustering on the master unit:
no enable
Wait for 5 minutes for a new master to be selected and traffic to stabilize. Do not enter write memory;
when the master unit reloads, you want clustering to be enabled on it.
Step 12 Reload the master unit:
reload noconfirm
A new election takes place for a new master unit. When the former master unit rejoins the cluster, it will
be a slave.
Managing Files
• Viewing Files in Flash Memory, page 36-10
• Deleting Files from Flash Memory, page 36-11
• Erasing the Flash File System, page 36-11
• Configuring File Access, page 36-11
• Copying a File to the ASA, page 36-16
• Copying a File to the Startup or Running Configuration, page 36-18
Enter disk0: for the internal flash memory. The disk1: keyword represents the external flash
memory. The internal flash memory is the default.
For example:
hostname# dir
Directory of disk0:/
500 -rw- 4958208 22:56:20 Nov 29 2004 cdisk.bin
2513 -rw- 4634 19:32:48 Sep 17 2004 first-backup
2788 -rw- 21601 20:51:46 Nov 23 2004 backup.cfg
2927 -rw- 8670632 20:42:48 Dec 08 2004 asdmfile.bin
• To view extended information about a specific file, enter the following command:
hostname# show file information [path:/]filename
The default path is the root directory of the internal flash memory (disk0:/).
For example:
hostname# show file information cdisk.bin
disk0:/cdisk.bin:
type is image (XXX) []
file size is 4976640 bytes version 7.0(1)
By default, the file is deleted from the current working directory if you do not specify a path. You may
use wildcards when deleting files. You are prompted with the filename to delete, and then you must
confirm the deletion.
Step 1 Connect to the ASA console port according to the instructions in Access the ASA Services Module
Console, page 2-2 or Access the Appliance Console, page 2-1.
Step 2 Power off the ASA, then power it on.
Step 3 During startup, press the Escape key when you are prompted to enter ROMMON mode.
Step 4 Enter the erase command, which overwrites all files and erases the file system, including hidden system
files.
rommon #1> erase [disk0: | disk1: | flash:]
Detailed Steps
Command Purpose
ftp mode passive Sets the FTP mode to passive.
Example:
ciscoasa(config)# ftp mode passive
Restrictions
• The server does not have directory support. The lack of directory support limits remote client access
to the ASA internal files.
• The server does not support banners.
• The server does not support wildcards.
Prerequisites
• Enable SSH on the ASA according to Configure SSH Access, page 35-4.
• The ASA license must have the strong encryption (3DES/AES) license to support SSH Version 2
connections.
Detailed Steps
Command Purpose
ssh scopy enable Enables the SCP server.
Example:
ciscoasa(config)# ssh scopy enable
Example
From a client on the external host, perform an SCP file transfer. For example, in Linux enter the
following command:
scp -v -pw password source_filename username@asa_address:{disk0|disk1}:/dest_filename
The -v is for verbose, and if -pw is not specified, you will be prompted for a password.
Prerequisites
For multiple context mode, complete this procedure in the system execution space. To change from the
context to the system execution space, enter the changeto system command.
Detailed Steps
Command Purpose
Step 1 [no] ssh stricthostkeycheck Enables or disables SSH host key checking. By default, this
option is enabled. When this option is enabled, you are prompted
to accept or reject the host key if it is not already stored on the
Example:
ciscoasa# ssh stricthostkeycheck
ASA. When this option is disabled, the ASA accepts the host key
ciscoasa# copy x scp://[email protected]/x automatically if it was not stored before.
The authenticity of host '10.86.95.9
(10.86.95.9)' can't be established.
RSA key fingerprint is
dc:2e:b3:e4:e1:b7:21:eb:24:e9:37:81:cf:bb:
c3:2a.
Are you sure you want to continue
connecting (yes/no)? yes
Warning: Permanently added '10.86.95.9'
(RSA) to the list of known hosts.
Source filename [x]?
Examples
The following example adds an already hashed host key for the server at 10.86.94.170:
ciscoasa(config)# ssh pubkey-chain
ciscoasa(config-ssh-pubkey-chain)# server 10.86.94.170
ciscoasa(config-ssh-pubkey-server)# key-hash sha256
65:d9:9d:fe:1a:bc:61:aa:64:9d:fc:ee:99:87:38:df:a8:8e:d9:e9:ff:42:de:e8:8d:2d:bf:a9:2b:85:
2e:19
The following example adds a host string key for the server at 10.7.8.9:
ciscoasa(config)# ssh pubkey-chain
ciscoasa(config-ssh-pubkey-chain)# server 10.7.8.9
ciscoasa(config-ssh-pubkey-server)# key-string
Enter the base 64 encoded RSA public key.
End with the word "exit" on a line by itself
ciscoasa(config-ssh-pubkey-server-string)# c1:b1:30:29:d7:b8:de:6c:97:77:10:d7:46:41:63:87
ciscoasa(config-ssh-pubkey-server-string)# exit
Detailed Steps
Command Purpose
tftp-server interface_name server_ip Predefines the TFTP server address and filename for use with configure
filename net and copy commands. You can override the filename when you enter the
command; for example, when you use the copy command, you can take
Example: advantage of the predefined TFTP server address but still enter any
ciscoasa(config)# tftp-server inside filename at the interactive prompts.
10.1.4.7 files/config1.cfg
For the copy command, enter tftp: to use the tftp-server value instead of
ciscoasa(config)# copy tftp: test.cfg
tftp://url.
Address or name of remote host [10.1.4.7]?
Source filename
[files/config1.cfg]?config2.cfg
Accessing
tftp://10.1.4.7/files/config2.cfg;int=outs
ide...
Guidelines
• For the IPS SSP software module, before you download the IPS software to disk0, make sure at least
50% of the flash memory is free. When you install IPS, IPS reserves 50% of the internal flash
memory for its file system.
• You cannot have two files with the same name but with different letter case in the same directory in
flash memory. For example, if you attempt to download the file, Config.cfg, to a location that
contains the file, config.cfg, you receive the following error message:
• For information about installing the Cisco SSL VPN client, see the Cisco AnyConnect VPN Client
Administrator Guide. For information about installing Cisco Secure Desktop on the ASA, see the
Cisco Secure Desktop Configuration Guide for Cisco ASA 5500 Series Administrators.
• To configure the ASA to use a specific application image or ASDM image if you have more than
one installed, or have installed them in external flash memory, see Configuring the Images and
Startup Configuration to Use, page 36-20.
• For multiple context mode, you must be in the system execution space.
Detailed Steps
Command Purpose
copy [/noconfirm] tftp://server[/path]/src_filename Copies from a TFTP server.
{disk0|disk1}:/[path/]dest_filename
Example:
ciscoasa# copy tftp://10.1.1.67/files/context1.cfg disk0:/context1.cfg
Example:
ciscoasa# copy ftp://jcrichton:[email protected]/files/context1.cfg
disk0:/contexts/context1.cfg
Example:
ciscoasa# copy https://asun:[email protected]/files/moya.cfg
disk0:/contexts/moya.cfg
Command Purpose
copy [/noconfirm] smb://[user[:password]@]server[/path]/src_filename Copies from an SMB server.
{disk0|disk1}:/[path/]dest_filename
Example:
ciscoasa# copy /noconfirm smb://chiana:[email protected]/test.xml
disk0:/test.xml
Please use the following commands to add the hash key to the configuration:
ssh pubkey-chain
server 10.86.94.170
key-hash sha256
65:d9:9d:fe:1a:bc:61:aa:64:9d:fc:ee:99:87:38:df:a8:8e:d9:e9:ff:42:de:e8:8d:2
d:bf:a9:2b:85:2e:19
Guidelines
When you copy a configuration to the running configuration, you merge the two configurations. A merge
adds any new commands from the new configuration to the running configuration. If the configurations
are the same, no changes occur. If commands conflict or if commands affect the running of the context,
then the effect of the merge depends on the command. You might get errors, or you might have
unexpected results.
Detailed Steps
To copy a file to the startup configuration or running configuration, enter one of the following commands
for the appropriate download server:
Command Purpose
copy [/noconfirm] tftp://server[/path]/src_filename {startup-config | Copies from a TFTP server.
running-config}
Example:
ciscoasa# copy tftp://10.1.1.67/files/old-running.cfg running-config
copy [/noconfirm] ftp://[user[:password]@]server[/path]/src_filename Copies from an FTP server.
{startup-config | running-config}
Example:
ciscoasa# copy ftp://jcrichton:[email protected]/files/old-startup.cfg
startup-config
copy [/noconfirm] Copies from an HTTP(S) server.
http[s]://[user[:password]@]server[:port][/path]/src_filename
{startup-config | running-config}
Example:
ciscoasa# copy https://asun:[email protected]/files/new-running.cfg
running-config
copy [/noconfirm] smb://[user[:password]@]server[/path]/src_filename Copies from an SMB server.
{startup-config | running-config}
Example:
ciscoasa# copy /noconfirm smb://chiana:[email protected]/new-running.cfg
running-config
copy [/noconfirm] Copies from a SCP server. The
scp://[user[:password]@]server[/path]/src_filename[;int=interface_name] ;int=interface option bypasses the
{startup-config | running-config}
route lookup and always uses the
specified interface to reach the SCP
Example: server.
ciscoasa# copy scp://pilot:[email protected]/new-startup.cfg startup-config
Examples
For example, to copy the configuration from a TFTP server, enter the following command:
ciscoasa# copy tftp://209.165.200.226/configs/startup.cfg startup-config
To copy the configuration from an FTP server, enter the following command:
ciscoasa# copy ftp://admin:[email protected]/configs/startup.cfg startup-config
To copy the configuration from an HTTP server, enter the following command:
ciscoasa# copy http://209.165.200.228/configs/startup.cfg startup-config
Default Settings
ASA Image
• Physical ASA—Boots the first application image that it finds in internal flash memory.
• ASAv—Boots the image in the read-only boot:/ partition that was created when you first deployed.
You can upgrade the image in flash memory and configure the ASAv to boot from that image. Note
that if you later clear your configuration (clear configure all), then the ASAv will revert to loading
the original deployment image.
ASDM Image
All ASAs—Boots the first ASDM image that it finds in internal flash memory, or if one does not exist
in this location, then in external flash memory.
Startup Configuration
By default, the ASA boots from a startup configuration that is a hidden file.
Detailed Steps
Command Purpose
Step 1 boot system url Sets the ASA boot image location. The URL can be:
• {disk0:/ | disk1:/}[path/]filename
Example: • tftp://[user[:password]@]server[:port]/[path/]filename
ciscoasa(config)# boot system
disk:/images/asa921.bin The TFTP option is not supported on all models.
You can enter up to four boot system command entries to specify
different images to boot from in order; the ASA boots the first
image it finds successfully. When you enter the boot system
command, it adds an entry at the bottom of the list. To reorder the
boot entries, you must remove all entries using the the clear
configure boot system command, and re-enter them in the order
you desire. Only one boot system tftp command can be
configured, and it must be the first one configured.
Note If the ASA is stuck in a cycle of constant booting, you can
reboot the ASA into ROMMON mode. For more
information about the ROMMON mode, see View
Debugging Messages, page 38-1.
Step 2 asdm image {disk0:/ | Sets the ASDM image to boot. If you do not specify the image to
disk1:/}[path/]filename boot, even if you have only one image installed, then the ASA
inserts the asdm image command into the running configuration.
Example: To avoid problems with Auto Update (if configured), and to avoid
ciscoasa(config)# asdm image the image search at each startup, you should specify the ASDM
disk0:/images/asdm721.bin image that you want to boot in the startup configuration.
Step 3 (Optional) Sets the startup configuration to be a known file instead of the
boot config {disk0:/ | default hidden file.
disk1:/}[path/]filename
Example:
ciscoasa(config)# boot config
disk0:/configs/startup1.cfg
Step 1 Connect to the ASA console port according to the instructions in Access the Appliance Console,
page 2-1.
Step 2 Power off the ASA, then power it on.
Step 3 During startup, press the Escape key when you are prompted to enter ROMMON mode.
Step 4 In ROMMOM mode, define the interface settings to the ASA, including the IP address, TFTP server
address, gateway address, software image file, and port, as follows:
Note For the ASA 5506-X, you do not need to include the PORT=Ethernet0/0 entry. Only the
management port is available.
Step 6 Ping the TFTP server by entering the ping server command.
rommon #7> ping server
Sending 20, 100-byte ICMP Echoes to server 10.129.0.30, timeout is 4 seconds:
VLAN=untagged
IMAGE=f1/asa840-232-k8.bin
CONFIG=
LINKTIMEOUT=20
PKTTIMEOUT=4
RETRY=20
Loading...N
After the software image is successfully loaded, the ASA automatically exits ROMMON mode.
Step 8 To verify that the correct software image has been loaded into the ASA, check the version in the ASA
by entering the following command:
ciscoasa# show version
Step 1 Connect to the ASA console port according to the instructions in Access the ASA Services Module
Console, page 2-2.
Step 2 Make sure that you reload the ASASM image.
Step 3 During startup, press the Escape key when you are prompted to enter ROMMON mode.
Step 4 In ROMMOM mode, define the interface settings to the ASASM, including the IP address, TFTP server
address, gateway address, software image file, port, and VLAN, as follows:
rommon #1> ADDRESS=172.16.145.149
rommon #2> SERVER=172.16.171.125
rommon #3> GATEWAY=172.16.145.129
rommon #4> IMAGE=f1/asa851-smp-k8.bin
rommon #5> PORT=Data0
rommon #6> VLAN=1
Data0
Link is UP
MAC Address: 0012.d949.15b8
IMAGE=f1/asa851-smp-k8.bin
CONFIG=
LINKTIMEOUT=20
PKTTIMEOUT=2
RETRY=20
Step 6 Ping the TFTP server by entering the ping server command.
rommon #8> ping server
Sending 20, 100-byte ICMP Echoes to server 172.16.171.125, timeout is 2 seconds:
After the software image is successfully loaded, the ASASM automatically exits ROMMON mode.
Note You must download the image to the system flash separately after ROMMON boot is complete;
booting the module into ROMMON mode does not preserve the system image across reloads.
Step 8 To verify that the correct software image has been loaded into the ASASM, check the version by entering
the following command:
hostname# show version
• Backing Up Additional Files Using the Export and Import Commands, page 36-31
• Using a Script to Back Up and Restore Files, page 36-31
Procedure
Example:
ciscoasa# backup location disk0:/sample-backup]
Backup location [disk0:/sample-backup]?
In multiple context mode from the system execution space, enter the context keyword to backup the
specified context files.
During the backup of VPN certificates and preshared keys, a secret key identified by the
cert-passphrase keyword is required to encode the certificates. You must provide a passphrase to be
used for encoding and decoding the certificates in PKCS12 format. The backup only includes RSA key
pairs tied to the certificates and excludes any standalone certificates.
The backup location can be a local disk or a remote URL. If you do not provide a location, the following
default names are used:
• Single mode—disk0:hostname.backup.timestamp.tar.gz
• Multiple mode—disk0:hostname.context-ctx-name.backup.timestamp.tar.gz
Step 2 Follow the prompts:
Example:
Begin backup…
Backing up [ASA version] … Done!
Backing up [Running Config] … Done!
Backing up [Startup Config] … Done!
Enter a passphrase to encrypt identity certificates. The default is cisco. You will be
required to enter the same passphrase while doing a restore: cisco
Backing up [Identity Certificates] … Done!
IMPORTANT: This device uses master passphrase encryption. If this backup file is used to
restore to a device with a different master passphrase, you will need to provide the
current master passphrase during restore.
Backing up [VPN Pre-shared keys] … Done!
Backing up [SSL VPN Configurations: Application Profile Custom Framework] … Done!
Backing up [SSL VPN Configurations: Bookmarks]… Done!
Backing up [SSL VPN Configurations: Customization] … Done!
Backing up [SSL VPN Configurations: Dynamic Access Policy] … Done!
Backing up [SSL VPN Configurations: Plug-in] … Done!
Backing up [SSL VPN Configurations: Pre-fill scripts for Connection Profile] … Done!
Backing up [SSL VPN Configurations: Proxy auto-config] … Done!
Backing up [SSL VPN Configurations: Translation table] … Done!
Backing up [SSL VPN Configurations: Web Content] … Done!
Backing up [Anyconnect(SVC) client images and profiles] … Done!
Backing up [Anyconnect(SVC) customizations and transforms] … Done!
Backing up [Cisco Secure Desktop and Host Scan images] … Done!
Backing up [UC-IME tickets] … Done!
Compressing the backup directory ... Done!
Copying Backup ... Done!
Cleaning up ... Done!
Backup finished!
Procedure
Example:
ciscoasa# restore location disk0:/5525-2051.backup.2014-07-09-223$
restore location [disk0:/5525-2051.backup.2014-07-09-223251.tar.gz]?
No passphrase was provided for identity certificates. Using the default value: cisco. If
the passphrase is not correct, certificates will not be restored.
Restoring Certificates ...
Enter the PKCS12 data in base64 representation....
ERROR: A keypair named Main already exists.
INFO: Import PKCS12 operation completed successfully
. Done!
Cleaning up ... Done!
Restore finished!
Detailed Steps
Command Purpose
copy [/noconfirm] {startup-config | running-config} Copies to a TFTP server.
tftp://server[/path]/dst_filename
Example:
ciscoasa# copy running-config tftp://10.1.1.67/files/new-running.cfg
copy [/noconfirm] {startup-config | running-config} Copies to an FTP server.
ftp://[user[:password]@]server[/path]/dst_filename
Example:
ciscoasa# copy startup-config
ftp://jcrichton:[email protected]/files/new-startup.cfg
copy [/noconfirm] {startup-config | running-config} Copies to an SMB server.
smb://[user[:password]@]server[/path]/dst_filename
Example:
ciscoasa# copy /noconfirm running-config
smb://chiana:[email protected]/new-running.cfg
copy [/noconfirm] {startup-config | running-config} Copies to a SCP server. The
scp://[user[:password]@]server[/path]/dst_filename[;int=interface_name] ;int=interface option bypasses the
route lookup and always uses the
Example: specified interface to reach the SCP
ciscoasa# copy startup-config server.
scp://pilot:[email protected]/new-startup.cfg
copy [/noconfirm] {startup-config | running-config} Copies to the local flash memory.
{disk0|disk1}:/[path/]dst_filename Be sure that the destination
directory exists. If it does not exist,
Example: first create the directory using the
ciscoasa# copy /noconfirm running-config disk0:/new-running.cfg mkdir command.
Detailed Steps
Command Purpose
copy [/noconfirm] {disk0|disk1}:/[path/]src_filename Copies from flash to a TFTP server.
tftp://server[/path]/dst_filename
Example:
ciscoasa# copy disk0:/asa-os.bin tftp://10.1.1.67/files/asa-os.bin
copy [/noconfirm] {disk0|disk1}:/[path/]src_filename Copies from flash to an FTP server.
ftp://[user[:password]@]server[/path]/dst_filename
Example:
ciscoasa# copy disk0:/asa-os.bin
ftp://jcrichton:[email protected]/files/asa-os.bin
copy [/noconfirm] {disk0|disk1}:/[path/]src_filename Copies from flash to an SMB
smb://[user[:password]@]server[/path]/dst_filename server.
Example:
ciscoasa# copy /noconfirm copy disk0:/asdm.bin
smb://chiana:[email protected]/asdm.bin
copy [/noconfirm] {disk0|disk1}:/[path/]src_filename Copies from flash to SCP server.
scp://[user[:password]@]server[/path]/dst_filename[;int=interface_name] The ;int=interface option bypasses
the route lookup and always uses
Example: the specified interface to reach the
ciscoasa# copy disk0:/context1.cfg SCP server.
scp://pilot:[email protected]/context1.cfg
copy [/noconfirm] {disk0|disk1}:/[path/]src_filename Copies from flash to the local flash
{disk0|disk1}:/[path/]dst_filename memory. Be sure that the
destination directory exists. If it
Example: does not exist, first create the
ciscoasa# copy /noconfirm disk1:/file1.cfg disk0:/file1.cfgnew-running.cfg directory using the mkdir
command.
• To copy the running configuration to a TFTP server connected to the context network, enter the
following command:
ciscoasa/contexta# copy running-config tftp:/server[/path]/filename
Copy the output from this command, and then paste the configuration into a text file.
Step 2 Run the export command for the file that you want to back up (in this example, the rdp file):
ciscoasa # export webvpn plug-in protocol rdp tftp://tftpserver/backupfilename
Note The existing CLI lets you back up and restore individual files using the copy, export, and import
commands. It does not, however, have a facility that lets you back up all ASA configuration files in one
operation. Running the script facilitates the use of multiple CLIs.
Prerequisites
To use a script to back up and restore an ASA configuration, first perform the following tasks:
• Install Perl with an Expect module.
• Install an SSH client that can reach the ASA.
• Install a TFTP server to send files from the ASA to the backup site.
Another option is to use a commercially available tool. You can put the logic of this script into such a
tool.
Step 1 Download or cut-and-paste the script file to any location on your system.
Step 2 At the command line, enter Perl scriptname, where scriptname is the name of the script file.
Step 3 Press Enter.
Step 4 The system prompts you for values for each option. Alternatively, you can enter values for the options
when you enter the Perl scriptname command before you press Enter. Either way, the script requires
that you enter a value for each option.
Step 5 The script starts running, printing out the commands that it issues, which provides you with a record of
the CLIs. You can use these CLIs for a later restore, which is particularly useful if you want to restore
only one or two files.
Sample Script
#!/usr/bin/perl
#Function: Backup/restore configuration/extensions to/from a TFTP server.
#Description: The objective of this script is to show how to back up
configurations/extensions before the backup/restore command is developed.
# It currently backs up the running configuration, all extensions imported via “import
webvpn” command, the CSD configuration XML file, and the DAP configuration XML file.
#Requirements: Perl with Expect, SSH to the ASA, and a TFTP server.
#Usage: backupasa -option option_value
# -h: ASA hostname or IP address
# -u: User name to log in via SSH
# -w: Password to log in via SSH
# -e: The Enable password on the security appliance
use Expect;
use Getopt::Std;
#global variables
%options=();
$restore = 0; #does backup by default
$restore_file = ‘’;
$asa = ‘’;
$storage = ‘’;
$user = ‘’;
$password = ‘’;
$enable = ‘’;
$prompt = ‘’;
$date = `date +%F’;
chop($date);
my $exp = new Expect();
getopts(“h:u:p:w:e:s:r:”,\%options);
do process_options();
do login($exp);
do enable($exp);
if ($restore) {
do restore($exp,$restore_file);
}
else {
$restore_file = “$prompt-restore-$date.cli”;
open(OUT,”>$restore_file”) or die “Can't open $restore_file\n”;
do running_config($exp);
do lang_trans($exp);
do customization($exp);
do plugin($exp);
do url_list($exp);
do webcontent($exp);
do dap($exp);
do csd($exp);
close(OUT);
}
do finish($exp);
sub enable {
$obj = shift;
$obj->send(“enable\n”);
unless ($obj->expect(15, ‘Password:’)) {
print “timed out waiting for Password:\n”;
}
$obj->send(“$enable\n”);
unless ($obj->expect(15, “$prompt#”)) {
print “timed out waiting for $prompt#\n”;
}
}
sub lang_trans {
$obj = shift;
$obj->clear_accum();
$obj->send(“show import webvpn translation-table\n”);
$obj->expect(15, “$prompt#” );
$output = $obj->before();
@items = split(/\n+/, $output);
for (@items) {
s/^\s+//;
s/\s+$//;
next if /show import/ or /Translation Tables/;
next unless (/^.+\s+.+$/);
($lang, $transtable) = split(/\s+/,$_);
$cli = “export webvpn translation-table $transtable language $lang
$storage/$prompt-$date-$transtable-$lang.po”;
$ocli = $cli;
$ocli =~ s/^export/import/;
print “$cli\n”;
print OUT “$ocli\n”;
$obj->send(“$cli\n”);
$obj->expect(15, “$prompt#” );
}
}
sub running_config {
$obj = shift;
$obj->clear_accum();
$cli =“copy /noconfirm running-config $storage/$prompt-$date.cfg”;
print “$cli\n”;
$obj->send(“$cli\n”);
$obj->expect(15, “$prompt#” );
}
sub customization {
$obj = shift;
$obj->clear_accum();
$obj->send(“show import webvpn customization\n”);
$obj->expect(15, “$prompt#” );
$output = $obj->before();
@items = split(/\n+/, $output);
for (@items) {
chop;
next if /^Template/ or /show import/ or /^\s*$/;
$cli = “export webvpn customization $_ $storage/$prompt-$date-cust-$_.xml”;
$ocli = $cli;
$ocli =~ s/^export/import/;
print “$cli\n”;
print OUT “$ocli\n”;
$obj->send(“$cli\n");
$obj->expect(15, “$prompt#” );
}
}
sub plugin {
$obj = shift;
$obj->clear_accum();
$obj->send(“show import webvpn plug-in\n”);
$obj->expect(15, “$prompt#” );
$output = $obj->before();
@items = split(/\n+/, $output);
for (@items) {
chop;
next if /^Template/ or /show import/ or /^\s*$/;
$cli = “export webvpn plug-in protocol $_ $storage/$prompt-$date-plugin-$_.jar”;
$ocli = $cli;
$ocli =~ s/^export/import/;
print “$cli\n”;
print OUT “$ocli\n”;
$obj->send(“$cli\n”);
$obj->expect(15, “$prompt#” );
}
}
sub url_list {
$obj = shift;
$obj->clear_accum();
$obj->send(“show import webvpn url-list\n”);
$obj->expect(15, “$prompt#” );
$output = $obj->before();
@items = split(/\n+/, $output);
for (@items) {
chop;
next if /^Template/ or /show import/ or /^\s*$/ or /No bookmarks/;
$cli=“export webvpn url-list $_ $storage/$prompt-$date-urllist-$_.xml”;
$ocli = $cli;
$ocli =~ s/^export/import/;
print “$cli\n”;
print OUT “$ocli\n”;
$obj->send(“$cli\n”);
$obj->expect(15, “$prompt#” );
}
}
sub dap {
$obj = shift;
$obj->clear_accum();
$obj->send(“dir dap.xml\n”);
$obj->expect(15, “$prompt#” );
$output = $obj->before();
return 0 if($output =~ /Error/);
sub csd {
$obj = shift;
$obj->clear_accum();
$obj->send(“dir sdesktop\n”);
$obj->expect(15, “$prompt#” );
$output = $obj->before();
return 0 if($output =~ /Error/);
sub webcontent {
$obj = shift;
$obj->clear_accum();
$obj->send(“show import webvpn webcontent\n”);
$obj->expect(15, “$prompt#” );
$output = $obj->before();
@items = split(/\n+/, $output);
for (@items) {
s/^\s+//;
s/\s+$//;
next if /show import/ or /No custom/;
next unless (/^.+\s+.+$/);
($url, $type) = split(/\s+/,$_);
$turl = $url;
$turl =~ s/\/\+//;
$turl =~ s/\+\//-/;
$cli = “export webvpn webcontent $url $storage/$prompt-$date-$turl”;
$ocli = $cli;
$ocli =~ s/^export/import/;
print “$cli\n”;
print OUT “$ocli\n”;
$obj->send(“$cli\n”);
$obj->expect(15, “$prompt#” );
}
}
sub login {
$obj = shift;
$obj->raw_pty(1);
$obj->log_stdout(0); #turn off console logging.
$obj->spawn(“/usr/bin/ssh $user\@$asa”) or die “can't spawn ssh\n”;
unless ($obj->expect(15, “password:” )) {
die “timeout waiting for password:\n”;
}
$obj->send(“$password\n”);
sub finish {
$obj = shift;
$obj->hard_close();
print “\n\n”;
sub restore {
$obj = shift;
my $file = shift;
my $output;
open(IN,“$file”) or die “can't open $file\n”;
while (<IN>) {
$obj->send(“$_”);
$obj->expect(15, “$prompt#” );
$output = $obj->before();
print “$output\n”;
}
close(IN);
}
sub process_options {
if (defined($options{s})) {
$tstr= $options{s};
$storage = “tftp://$tstr”;
}
else {
print “Enter TFTP host name or IP address:”;
chop($tstr=<>);
$storage = “tftp://$tstr”;
}
if (defined($options{h})) {
$asa = $options{h};
}
else {
print “Enter ASA host name or IP address:”;
chop($asa=<>);
}
if (defined ($options{u})) {
$user= $options{u};
}
else {
print “Enter user name:”;
chop($user=<>);
}
if (defined ($options{w})) {
$password= $options{w};
}
else {
print “Enter password:”;
chop($password=<>);
}
if (defined ($options{p})) {
$prompt= $options{p};
}
else {
print “Enter ASA prompt:”;
chop($prompt=<>);
}
if (defined ($options{e})) {
$enable = $options{e};
}
else {
print “Enter enable password:”;
chop($enable=<>);
}
if (defined ($options{r})) {
$restore = 1;
$restore_file = $options{r};
}
}
Note You must manually restore the old configuration before downgrading.
Detailed Steps
Where the /noconfirm option downgrades without prompting. The image_url is the path to the old image
on disk0, disk1, tftp, ftp, or smb. The old_config_url is the path to the saved, premigration configuration
(by default, t;his configuration was saved on disk0). If you need to revert to a pre-8.3 activation key, you
can enter the old activation key.
This command is a shortcut for completing the following functions:
1. Clearing the boot image configuration (clear configure boot).
2. Setting the boot image to be the old image (boot system).
The Auto Update specification provides the infrastructure necessary for remote management
applications to download ASA configurations, software images, and to perform basic monitoring from
a centralized location or multiple locations.
The Auto Update specification allows the Auto Update server to either push configuration information
and send requests for information to the ASA, or to pull configuration information by having the ASA
periodically poll the Auto Update server. The Auto Update server can also send a command to the ASA
to send an immediate polling request at any time. Communication between the Auto Update server and
the ASA requires a communications path and local CLI configuration on each ASA.
The following is an overview of the Auto Update process in failover configurations. This process
assumes that failover is enabled and operational. The Auto Update process cannot occur if the units are
synchronizing configurations, if the standby unit is in the failed state for any reason other than SSM card
failure, or if the failover link is down.
1. Both units exchange the platform and ASDM software checksum and version information.
2. The primary unit contacts the Auto Update Server. If the primary unit is not in the active state, the
ASA first fails over to the primary unit and then contacts the Auto Update Server.
3. The Auto Update Server replies with software checksum and URL information.
4. If the primary unit determines that the platform image file needs to be updated for either the active
or standby unit, the following occurs:
a. The primary unit retrieves the appropriate files from the HTTP server using the URL from the
Auto Update Server.
b. The primary unit copies the image to the standby unit and then updates the image on itself.
c. If both units have new image, the secondary (standby) unit is reloaded first.
– If hitless upgrade can be performed when secondary unit boots, then the secondary unit becomes
the active unit and the primary unit reloads. The primary unit becomes the active unit when it
has finished loading.
– If hitless upgrade cannot be performed when the standby unit boots, then both units reload at
the same time.
d. If only the secondary (standby) unit has new image, then only the secondary unit reloads. The
primary unit waits until the secondary unit finishes reloading.
e. If only the primary (active) unit has new image, the secondary unit becomes the active unit, and
the primary unit reloads.
f. The update process starts again at Step 1.
5. If the ASA determines that the ASDM file needs to be updated for either the primary or secondary
unit, the following occurs:
a. The primary unit retrieves the ASDM image file from the HTTP server using the URL provided
by the Auto Update Server.
b. The primary unit copies the ASDM image to the standby unit, if needed.
c. The primary unit updates the ASDM image on itself.
d. The update process starts again at Step 1.
6. If the primary unit determines that the configuration needs to be updated, the following occurs:
a. The primary unit retrieves the configuration file from the using the specified URL.
b. The new configuration replaces the old configuration on both units simultaneously.
c. The update process begins again at Step 1.
7. If the checksums match for all image and configuration files, no updates are required. The process
ends until the next poll time.
You can use the debug auto-update client or debug fover cmd-exe commands to display the actions
performed during the Auto Update process. The following is sample output from the debug auto-update
client command.
Auto-update client: Sent DeviceDetails to /cgi-bin/dda.pl of server 192.168.0.21
Auto-update client: Processing UpdateInfo from server 192.168.0.21
Component: asdm, URL: http://192.168.0.21/asdm.bint, checksum:
0x94bced0261cc992ae710faf8d244cf32
Component: config, URL: http://192.168.0.21/config-rms.xml, checksum:
0x67358553572688a805a155af312f6898
Component: image, URL: http://192.168.0.21/cdisk73.bin, checksum:
0x6d091b43ce96243e29a62f2330139419
Auto-update client: need to update img, act: yes, stby yes
name
ciscoasa(config)# Auto-update client: update img on stby unit...
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 1, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 501, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 1001, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 1501, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 2001, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 2501, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 3001, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 3501, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 4001, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 4501, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 5001, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 5501, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 6001, len = 1024
auto-update: Fover copyfile, seq = 4 type = 1, pseq = 6501, len = 1024
The following syslog message is generated if the Auto Update process fails:
%ASA4-612002: Auto Update failed: file version: version reason: reason
The file is “image”, “asdm”, or “configuration”, depending on which update failed. The version is the
version number of the update. And the reason is the reason that the update failed.
–
To configure the ASA as an Auto Update client, perform the following steps:
Step 1 To specify the URL of the Auto Update Server, enter the following command:
The source interface keyword and argument specify which interface to use when sending requests to the
Auto Update Server. If you specify the same interface specified by the management-access command,
the Auto Update requests travel over the same IPsec VPN tunnel used for management access.
For HTTPS, the verify-certificate keyword (the default) verifies the certificate returned by the Auto
Update Server. To disable verification (not recommended), specify the no-verification keyword.
Step 2 (Optional) To identify the device ID to send when communicating with the Auto Update Server, enter
the following command:
ciscoasa(config)# auto-update device-id {hardware-serial | hostname | ipaddress [if-name]
| mac-address [if-name] | string text}
The poll-period argument specifies how often (in minutes) to check for an update. The default is 720
minutes (12 hours).
The retry-count argument specifies how many times to try reconnecting to the server if the first attempt
fails. The default is zero.
The retry-period argument specifies how long to wait (in minutes) between retries. The default is five
minutes.
Step 4 (Optional) To schedule a specific time for the ASA to poll the Auto Update Server, enter the following
command:
ciscoasa(config)# auto-update poll-at days-of-the-week time [randomize minutes]
[retry_count [retry_period]]
The days-of-the-week argument is any single day or combination of days: Monday, Tuesday, Wednesday,
Thursday, Friday, Saturday, and Sunday. Other possible values are daily (Monday through Sunday),
weekdays (Monday through Friday), and weekends (Saturday and Sunday).
The time argument specifies the time in the format HH:MM at which to start the poll. For example, 8:00
is 8:00 a.m. and 20:00 is 8:00 p.m.
The randomize minutes keyword and argument specify the period to randomize the poll time following
the specified start time. The range is from 1 to 1439 minutes.
The retry_count argument specifies how many times to try reconnecting to the Auto Update Server if the
first attempt fails. The default is zero.
The retry_period argument specifies how long to wait between connection attempts. The default is five
minutes. The range is from 1 to 35791 minutes.
Step 5 (Optional) If the Auto Update Server has not been contacted for a certain period of time, entering the
following command causes it to stop passing traffic:
ciscoasa(config)# auto-update timeout period
The period argument specifies the timeout period in minutes between 1 and 35791. The default is to
never time out (zero minutes). To restore the default, enter the no form of this command.
Use the auto-update timeout command to be sure that the ASA has the most recent image and
configuration. This condition is reported with system log message 201008.
In the following example, an ASA is configured to poll an Auto Update Server with the IP address
209.165.200.224, at port number 1742, from the outside interface, with certificate verification.
The ASA is also configured to use the hostname as the device ID and to poll an Auto Update Server every
Friday and Saturday night at a random time between 10:00 p.m. and 11:00 p.m. On a failed polling
attempt, the ASA will try to reconnect to the Auto Update Server ten times, and will wait three minutes
between attempts at reconnecting, as shown in the following example:
ciscoasa(config)# auto-update server
https://jcrichton:[email protected]:1742/management source outside
verify-certificate
ciscoasa (config)# auto-update device-id hostname
hostname (config)# auto-update poll-at Friday Saturday 22:00 randomize 60 2 10
Step 2 Configure the following parameters for the client-update command that you want to apply to the ASAs:
client-update {component {asdm | image} | device-id dev_string |
family family_name | type type} url url-string rev-nums rev-nums}
The component {asdm | image} parameter specifies the software component, either ASDM or the boot
image of the ASA.
The device-id dev_string parameter specifies a unique string that the Auto Update client uses to identify
itself. The maximum length is 63 characters.
The family family_name parameter specifies the family name that the Auto Update client uses to identify
itself. It can be asa, pix, or a text string with a maximum length of seven characters.
The rev-nums rev-nums parameter specifies the software or firmware images for this client. Enter up to
four, in any order, separated by commas.
The type type parameter specifies the type of clients to notify of a client update. Because this command
is also used to update Windows clients, the list of clients includes several Windows operating systems.
The url url-string parameter specifies the URL for the software/firmware image. This URL must point
to a file appropriate for this client. For all Auto Update clients, you must use the protocol “http://” or
“https://” as the prefix for the URL.
Configure the parameters for the client update that you want to apply to all ASAs of a particular type.
That is, specify the type of ASA and the URL or IP address from which to get the updated image. In
addition, you must specify a revision number. If the revision number of the remote ASA matches one of
the specified revision numbers, there is no need to update the client, and the update is ignored.
To configure a client update for Cisco 5525-X ASAs, enter the following command:
ciscoasa(config)# client-update type asa5525 component asdm url
http://192.168.1.114/aus/asdm601.bin rev-nums 8.0(1)
Server: https://********@209.165.200.224:1742/management.cgi?1276
Certificate will be verified
Poll period: 720 minutes, retry count: 2, retry period: 5 minutes
Timeout: none
Device ID: host name [corporate]
Next poll in 4.93 minutes
Last poll: 11:36:46 PST Tue Nov 13 2004
Last PDM update: 23:36:46 PST Tue Nov 12 2004
Platform
Feature Name Releases Feature Information
Secure Copy client 9.1(5)/9.2(1) The ASA now supports the Secure Copy (SCP) client to
transfer files to and from a SCP server.
We introduced the following commands: ssh
pubkey-chain, server (ssh pubkey-chain), key-string,
key-hash, ssh stricthostkeycheck.
We modified the following command: copy scp.
Auto Update server certificate verification 9.2(1) The Auto Update server certificate verification is now
enabled by default enabled by default; for new configurations, you must
explicitly disable certificate verification. If you are
upgrading from an earlier release, and you did not enable
certificate verification, then certificate verification is not
enabled, and you see the following warning:
WARNING: The certificate provided by the
auto-update servers will not be verified. In order
to verify this certificate please use the
verify-certificate option.
System backup and restore using the CLI 9.3(2) You can now back up and restore complete system
configurations, including images and certificates, using the
CLI.
We introduced the following commands: backup and
restore.
This chapter describes how to configure the Embedded Event Manager (EEM).
• About the EEM, page 37-1
• Guidelines for the EEM, page 37-2
• Configure the EEM, page 37-3
• Examples for the EEM, page 37-6
• Monitoring the EEM, page 37-7
• History for the EEM, page 37-8
Supported Events
The EEM supports the following events:
• Syslog—The ASA uses syslog message IDs to identify syslog messages that trigger an event
manager applet. You may configure multiple syslog events, but the syslog message IDs may not
overlap within a single event manager applet.
• Timers—You may use timers to trigger events. You may configure each timer only once for each
event manager applet. Each event manager applet may have up to three timers. The three types of
timers are the following:
– Watchdog (periodic) timers trigger an event manager applet after the specified time period
following the completion of the applet actions and restart automatically.
– Countdown (one-shot) timers trigger an event manager applet once after the specified time
period and do not restart unless they are removed, then re-added.
– Absolute (once-a-day) timers cause an event to occur once a day at a specified time, and restart
automatically. The time-of-day format is in hh:mm:ss.
You may configure only one timer event of each type for each event manager applet.
• None—The none event is triggered when you run an event manager applet manually using the CLI
or ASDM.
• Crash—The crash event is triggered when the ASA crashes. Regardless of the value of the output
command, the action commands are directed to the crashinfo file. The output is generated before
the show tech command.
Output Destinations
You may send the output from the actions to a specified location using the output command. Only one
output value may be enabled at any one time. The default value is output none. This value discards any
output from the action commands. The command runs in global configuration mode as a user with
privilege level 15 (the highest). The command may not accept any input, because it is disabled.You may
send the output of the action CLI commands to one of three locations:
• None, which is the default and discards the output
• Console, which sends the output to the ASA console
• File, which sends the output to a file. The following four file options are available:
– Create a unique file, which creates a new, uniquely named file each time that an event manager
applet is invoked
– Create/overwrite a file, which overwrites a specified file each time that an event manager
applet is invoked.
– Create/append to a file, which appends to a specified file each time that an event manager
applet is invoked. If the file does not yet exist, it is created.
– Create a set of files, which creates a set of uniquely named files that are rotated each time that
an event manager applet is invoked.
Additional Guidelines
• During a crash, the state of the ASA is generally unknown. Some commands may not be safe to run
during this condition.
• The name of an event manager applet may not contain spaces.
• You cannot modify the None event and Crashinfo event parameters.
• Performance may be affected because syslog messages are sent to the EEM for processing.
• The default output is output none for each event manager applet. To change this setting, you must
enter a different output value.
• You may have only one output option defined for each event manager applet.
Step 1 Create an event manager applet, then configure various events. See Create an Event Manager Applet and
Configure Events, page 37-3.
Step 2 Configure an action on an event manager applet, then configure a destination for output from an action.
See Configure an Action and Destinations for Output from an Action, page 37-5.
Step 3 Run an event manager applet. See Run an Event Manager Applet, page 37-6.
Procedure
Step 1 Create an event manager applet and enter event manager applet configuration mode.
event manager applet name
Example:
ciscoasa(config)# event manager applet exampleapplet1
The name argument may be up to 32 alphanumeric characters long. Spaces are not allowed.
To remove an event manager applet, enter the no form of this command.
Step 2 Describe an event manager applet.
description text
Example:
ciscoasa(config-applet)# description applet1example
The text argument may be up to 256 characters long. You may include spaces in description text if it is
placed within quotes.
Step 3 To configure a specified event, enter one of the following commands. To remove the configured event,
enter the no form of each of the commands.
• To configure a syslog event, identify a single syslog message or a range of syslog messages that
trigger an event manager applet.
event syslog id nnnnnn[-nnnnnn] [occurs n] [period seconds]
Example:
ciscoasa(config-applet)# event syslog id 106201
The nnnnnn argument identifies the syslog message ID. The occurs n keyword-argument pair
indicates the number of times that the syslog message must occur for an event manager applet to be
invoked. The default is 1 occurrence every 0 seconds. Valid values are from 1 - 4294967295. The
period seconds keyword-argument pair indicates the number of seconds in which the event must
occur, and limits how frequently an event manager applet is invoked to at most once in the
configured period. Valid values are from 0 - 604800. A value of 0 means that no period is defined.
• To configure an event to occur once per configured period and restart automatically.
event timer watchdog time seconds
Example:
ciscoasa(config-applet)# event timer watchdog time 30
Example:
ciscoasa(config-applet)# event timer countdown time 60
The number of seconds may range from 1 - 604800. Use the no form of this command remove a
countdown timer event.
Note This timer reruns when you reboot if it is the startup configuration.
• To configure an event to occur once a day at a specified time and restart automatically.
event timer absolute time hh:mm:ss
Example:
ciscoasa(config-applet)# event timer absolute time 10:30:20
The time-of-day format is in hh:mm:ss. The time range is from 00:00:00 (midnight) to 23:59:59.
• Trigger a crash event when the ASA crashes.
event crashinfo
Example:
ciscoasa(config-applet)# event crashinfo
Regardless of the value of the output command, the action commands are directed to the crashinfo
file. The output is generated before the show tech command.
Procedure
Example:
ciscoasa(config-applet)# action 1 cli command “show version”
The n option is an action ID. Valid IDs range from 0 - 4294967295. The value of the command option
must be in quotes; otherwise, an error occurs if the command consists of more than one word. The
command runs in global configuration mode as a user with privilege level 15 (the highest). The command
may not accept any input, because it is disabled. Use the noconfirm option if the command has it
available.
Step 2 Choose one of the available output destination options. Use the no form of each command to remove an
output destination,
• The None option discards any output from the action commands, which is the default setting:
output none
Example:
ciscoasa(config-applet)# output none
• The Console option sends the output of the action commands to the console.
output console
Example:
ciscoasa(config-applet)# output console
• The New File option sends the output of the action commands to a new file for each event manager
applet that is invoked.
output file new
Example:
ciscoasa(config-applet)# output file new
The filename has the format of eem-applet-timestamp.log, in which applet is the name of the event
manager applet and timestamp is a dated time stamp in the format of YYYYMMDD-hhmmss.
• The New Set of Rotated Files option creates a set of files that are rotated. When a new file is to be
written, the oldest file is deleted, and all subsequent files are renumbered before the first file is
written.
output file rotate n
Example:
ciscoasa(config-applet)# output file rotate 50
The newest file is indicated by 0, and the oldest file is indicated by the highest number (n-1). The n
option is the rotate value. Valid values range from 2 - 100. The filename format is eem-applet-x.log,
in which applet is the name of the applet, and x is the file number.
• The Single Overwritten File option writes the action command output to a single file, which is
overwritten every time.
output file overwrite filename
Example:
ciscoasa(config-applet)# output file overwrite examplefile1
The filename argument is a local (to the ASA) filename. This command may also use FTP, TFTP,
and SMB targeted files.
• The Single Appended File option writes the action command output to a single file, but that file is
appended to every time.
output file append filename
Example:
ciscoasa(config-applet)# output file append examplefile1
Procedure
Example:
ciscoasa# event manager run exampleapplet1
If you run an event manager applet that has not been configured with the event none command, an error
occurs. The applet argument is the name of the event manager applet.
The following example shows an event manager applet that reboots the ASA every day at 1 am, saving
the configuration as needed:
ciscoasa(config)# event manager applet dailyreboot
ciscoasa(config-applet)# description “Reboot every night”
ciscoasa(config-applet)# event timer absolute time 1:00:00
ciscoasa(config-applet)# output none
ciscoasa(config-applet)# action 1 cli command “reload save-config noconfirm”
The following example shows event manager applets that disable the given interface between midnight
and 3 am.
ciscoasa(config)# event manager applet disableintf
ciscoasa(config-applet)# description “Disable the interface at midnight”
ciscoasa(config-applet)# event timer absolute time 0:00:00
ciscoasa(config-applet)# output none
ciscoasa(config-applet)# action 1 cli command “interface GigabitEthernet 0/0”
ciscoasa(config-applet)# action 2 cli command “shutdown”
ciscoasa(config-applet)# action 3 cli command “write memory”
Platform
Feature Name Releases Description
Embedded Event Manager 9.2(1) The EEM service enables you to debug problems and provides general purpose
(EEM) logging for troubleshooting. There are two components: events to which the
EEM responds or listens, and event manager applets that define actions as well
as the events to which the EEM responds. You may configure multiple event
manager applets to respond to different events and perform different actions.
We introduced or modified the following commands: event manager applet,
description, event syslog id, event none, event timer {watchdog time seconds
| countdown time seconds | absolute time hh:mm:ss}, event crashinfo, action
cli command, output {none | console | file {append filename | new | overwrite
filename | rotate n}}, show running-config event manager, event manager
run, show event manager, show counters protocol eem, clear configure event
manager, debug event manager, debug menu eem.
Capture Packets
Capturing packets may be useful when troubleshooting connectivity problems or monitoring suspicious
activity. We recommend that you contact Cisco TAC if you want to use the packet capture service.
To capture packets, perform the following steps:
Procedure
Step 1 Enable packet capture capabilities for packet sniffing and network fault isolation.
[cluster exec] capture capture_name [type {asp-drop all [drop-code] | tls-proxy | raw-data
| lacp | isakmp [ikev1 | ikev2] | inline-tag [tag] | webvpn user webvpn-user}]
[access-list access_list_name] [interface asa_dataplane] [buffer buf_size] [ethernet-type
type] [interface interface_name] [reinject-hide] [packet-length bytes] [circular-buffer]
[trace trace_count] [real-time] [trace] [match prot {host source-ip | source-ip mask
|any}{host destination-ip |destination-ip mask | any} [operator port]
Example:
For the complete syntax description, see the command reference or the CLI help (help capture). Not all
options can be specified in one command. See the CLI help for allowed combinations.
Use the same capture_name on multiple capture statements to capture multiple types of traffic.
The type asp-drop keyword captures packets dropped by the accelerated security path. In a cluster,
dropped forwarded data packets from one unit to another are also captured. In multiple context mode,
when this option is issued in system context, all dropped data packets are captured; when this option is
issued in a user context, only dropped data packets that enter from interfaces belonging to the user
context are captured.
The inline-tag tag keyword-argument pair specifies a tag for a particular SGT value or leaves it
unspecified to capture a tagged packet with any SGT value.
The buffer keyword defines the buffer size used to store the packet. When the byte buffer is full, packet
capture stops. When used in a cluster, this is the per-unit size, not the sum of all units. The
circular-buffer keyword overwrites the buffer, starting from the beginning, when the buffer is full.
The interface keyword sets the name of the interface on which to use packet capture. You must configure
an interface for any packets to be captured.
To capture packets on the dataplane, use the asa_dataplane keyword. To filter packets captured on the
ASA CX backplane, use the asa_dataplane option and follow these guidelines. In single mode, the
backplane control packets bypass the access list and are captured. In multiple context mode, only control
packets are captured in the system context. Data packets are captured in the user context. The access-list
and match options are only available in the user context.
To capture the traffic on the cluster control link, use the cluster keyword. If you configure type lacp,
specify the physical interface ID instead of the nameif name.
The match keyword captures matching the protocol and source and destination IP addresses and optional
ports. You can use this keyword up to three times in one command. The operator can be one of the
following:
• lt—less than
• gt—greater than
• eq—equal to
The type raw-data keywords capture inbound and outbound packets. This setting is the default.
The real-time keyword displays the captured packets continuously in real-time. To terminate real-time
packet capture, enter Ctrl + c. To permanently remove the capture, use the no form of this command.
This option applies only to raw-data and asp-drop captures. This option is not supported when you use
the cluster exec capture command.
The reinject-hide keyword specifies that no reinjected packets will be captured and applies only in a
clustering environment.
Note If ACL optimization is configured, you cannot use the access-list command in capture. You can
only use the access-group command. An error appears if you try to use the access-list command
in this case.
– Therefore, if you enable a capture in Context A for a VLAN that is also used by Context B, both
Context A and Context B ingress traffic are captured.
• For egress traffic, only the traffic of the context with the active capture is captured. The only
exception is when you do not enable the ICMP inspection (therefore the ICMP traffic does not have
a session in the accelerated path). In this case, both ingress and egress ICMP traffic for all contexts
on the shared VLAN is captured.
• Configuring a capture typically involves configuring an ACL that matches the traffic that needs to
be captured. After an ACL that matches the traffic pattern is configured, then you need to define a
capture and associate this ACL to the capture, along with the interface on which the capture needs
to be configured.
• After you have performed a cluster-wide capture, to copy the same cluster-wide capture file to a
TFTP server, enter the following command on the master unit:
ciscoasa (cfg-cluster)# cluster exec copy /pcap capture: cap_name
tftp://location/path/filename.pcap
• Multiple PCAP files, one from each unit, are copied to the TFTP server. The destination capture file
name is automatically attached with the unit name, such as filename_A.pcap, filename_B.pcap, and
so on. In this example, A and B are cluster unit names. A different destination name is generated if
you add the unit name at the end of the filename.
• To enable cluster-wide capture on a specified interface, you can add the cluster exec keywords in
front of each of the commands shown in the examples. These capture commands can only be
replicated from the master unit to the slave units. However, you can still configure a capture on the
specified interface for the local unit using any of these capture commands.
Examples
The following example shows how to create a cluster-wide LACP capture:
ciscoasa (config)# cluster exec capture lacp type lacp interface gigabitEthernet0/0
The following example shows how to create a capture for control path packets in the clustering link:
ciscoasa (config)# capture cp interface cluster match udp any eq 49495 any
ciscoasa (config)# capture cp interface cluster match udp any any eq 49495
The following example shows how to create a capture for data path packets in the clustering link:
ciscoasa (config)# access-list cc1 extended permit udp any any eq 4193
ciscoasa (config)# access-list cc1 extended permit udp any eq 4193 any
ciscoasa (config)# capture dp interface cluster access-list ccl
The following example shows how to capture data path traffic through the cluster:
ciscoasa (config)# capture abc interface inside match tcp host 1.1.1.1 host 2.2.2.2 eq www
ciscoasa (config)# capture abc interface inside match udp host 1.1.1.1 any
ciscoasa (config)# capture abc interface inside access-list xxx
The following example shows how to capture logical update messages for flows that match the real
source to the real destination, and capture packets forwarded over CCL that match the real source to the
real destination:
ciscoasa (config)# access-list dp permit ip real_src real_dst
The following example shows how to capture a certain type of data plane message, such as icmp echo
request/response, that is forwarded from one ASA to another ASA using the match keyword or the ACL
for the message type:
ciscoasa (config)# capture capture_name interface cluster access-list match icmp any any
The following example shows how to create a capture by using ACL 103 on a cluster control link:
ciscoasa (config)# access-list 103 permit ip A B
ciscoasa (config)# capture example1 interface cluster access-list 103
In the previous example, if A and B are IP addresses for the CCL interface, only the packets that are sent
between these two units are captured.
If A and B are IP addresses for through-device traffic, then the following is true:
• Forwarded packets are captured as usual, provided the source and destination IP addresses are
matched with the ACL.
• The data path logic update message is captured provided it is for the flow between A and B or for
an ACL (for example, access-list 103). The capture matches the five-tuple of the embedded flow.
Although the source and destination addresses in the UDP packet are CCL addresses, if this packet is to
update a flow that is associated with addresses A and B, then it is also captured. That is, as long as
addresses A and B that are embedded in the packet are matched, it is also captured.
• DP: 35%
• External Processes: 5%
• vSphere reports: 95%
• ASA (as ASAv reports): 40%
• ASA idle polling: 10%
• Overhead: 45%
The overhead is used to perform hypervisor functions and to move packets between NICs and vNICs
using the vSwitch.
Usage can exceed 100% because the ESXi server can use additional compute resources for overhead on
behalf of the ASAv.
When you compare the usage in MHz, both the vCenter and ASAv numbers match. According to the
vCenter graph, MHz % CPU usage is calculated as:
60/(2499 x 1 vCPU) = 2.4
This chapter describes how to log system messages and use them for troubleshooting.
• About Logging, page 39-1
• Guidelines for Logging, page 39-5
• Configure Logging, page 39-6
• Monitoring the Logs, page 39-19
• Examples for Logging, page 39-20
• History for Logging, page 39-21
About Logging
System logging is a method of collecting messages from devices to a server running a syslog daemon.
Logging to a central syslog server helps in aggregation of logs and alerts. Cisco devices can send their
log messages to a UNIX-style syslog service. A syslog service accepts messages and stores them in files,
or prints them according to a simple configuration file. This form of logging provides protected
long-term storage for logs. Logs are useful both in routine troubleshooting and in incident handling.
The Cisco ASA system logs provide you with information for monitoring and troubleshooting the ASA.
With the logging feature, you can do the following:
• Specify which syslog messages should be logged.
• Disable or change the severity level of a syslog message.
• Specify one or more locations where syslog messages should be sent, including an internal buffer,
one or more syslog servers, ASDM, an SNMP management station, specified e-mail addresses, or
to Telnet and SSH sessions.
• Configure and manage syslog messages in groups, such as by severity level or class of message.
• Specify whether or not a rate-limit is applied to syslog generation.
• Specify what happens to the contents of the internal log buffer when it becomes full: overwrite the
buffer, send the buffer contents to an FTP server, or save the contents to internal flash memory.
• Filter syslog messages by locations, severity level, class, or a custom message list.
Severity Levels
Table 39-1 lists the syslog message severity levels. You can assign custom colors to each of the severity
levels to make it easier to distinguish them in the ASDM log viewers. To configure syslog message color
settings, either choose the Tools > Preferences > Syslog tab or, in the log viewer itself, click Color
Settings on the toolbar.
Note The ASA and ASASM do not generate syslog messages with a severity level of zero (emergencies). This
level is provided in the logging command for compatibility with the UNIX syslog feature, but is not used
by the ASA.
You customize these criteria by creating a message list that you can specify when you set the output
destination. Alternatively, you can configure the ASA or ASASM to send a particular message class to
each type of output destination independently of the message list.
You can use syslog message classes in two ways:
• Specify an output location for an entire category of syslog messages using the logging class
command.
• Create a message list that specifies the message class using the logging list command.
The syslog message class provides a method of categorizing syslog messages by type, equivalent to a
feature or function of the ASA and ASASM. For example, the vpnc class denotes the VPN client.
All syslog messages in a particular class share the same initial three digits in their syslog message ID
numbers. For example, all syslog message IDs that begin with the digits 611 are associated with the vpnc
(VPN client) class. Syslog messages associated with the VPN client feature range from 611101 to
611323.
In addition, most of the ISAKMP syslog messages have a common set of prepended objects to help
identify the tunnel. These objects precede the descriptive text of a syslog message when available. If the
object is not known at the time that the syslog message is generated, the specific heading = value
combination does not appear.
The objects are prefixed as follows:
Group = groupname, Username = user, IP = IP_address
Where the group is the tunnel-group, the username is the username from the local database or AAA
server, and the IP address is the public IP address of the remote access client or Layer 2 peer.
Clustering
Syslog messages are an invaluable tool for accounting, monitoring, and troubleshooting in a clustering
environment. Each ASA unit in the cluster (up to eight units are allowed) generates syslog messages
independently; certain logging commands then enable you to control header fields, which include a time
stamp and device ID. The syslog server uses the device ID to identify the syslog generator. You can use
the logging device-id command to generate syslog messages with identical or different device IDs to
make messages appear to come from the same or different units in the cluster.
IPv6 Guidelines
Does not support IPv6.
Additional Guidelines
• The syslog server must run a server program called syslogd. Windows (except for Windows 95 and
Windows 98) provides a syslog server as part of its operating system. For Windows 95 and Windows
98, you must obtain a syslogd server from another vendor.
• To view logs generated by the ASA or ASASM, you must specify a logging output destination. If
you enable logging without specifying a logging output destination, the ASA and ASASM generate
messages but does not save them to a location from which you can view them. You must specify each
different logging output destination separately. For example, to designate more than one syslog
server as an output destination, enter a new command for each syslog server.
• Sending syslogs over TCP is not supported on a standby ASA.
• The ASA supports the configuration of 16 syslog servers with the logging host command in single
context mode. In multiple context mode, the limitation is 4 servers per context.
• The syslog server should be reachable through the ASA and ASASM. You should configure the
ASASM to deny ICMP unreachable messages on the interface through which the syslog server is
reachable and to send syslogs to the same server. Make sure that you have enabled logging for all
severity levels. To prevent the syslog server from crashing, suppress the generation of syslogs
313001, 313004, and 313005.
• When you use a custom message list to match only access list hits, the access list logs are not
generated for access lists that have had their logging severity level increased to debugging (level 7).
The default logging severity level is set to 6 for the logging list command. This default behavior is
by design. When you explicitly change the logging severity level of the access list configuration to
debugging, you must also change the logging configuration itself.
The following is sample output from the show running-config logging command that does not
include access list hits, because their logging severity level has been changed to debugging:
ciscoasa# show running-config logging
logging enable
logging timestamp
logging list test message 106100
logging buffered test
The following is sample output from the show running-config logging command that does include
access list hits:
ciscoasa# show running-config logging
logging enable
logging timestamp
logging buffered debugging
In this case, the access list configuration does not change and the number of access list hits appears,
as shown in the following example:
ciscoasa(config)# access-list global line 1 extended permit icmp any host 4.2.2.2 log
debugging interval 1 (hitcnt=7) 0xf36b5386
ciscoasa(config)# access-list global line 2 extended permit tcp host 10.1.1.2 any eq
www log informational interval 1 (hitcnt=18) 0xe7e7c3b8
ciscoasa(config)# access-list global line 3 extended permit ip any any (hitcnt=543)
0x25f9e609
Configure Logging
This section describes how to configure logging.
Note The minimum configuration depends on what you want to do and what your requirements are
for handling syslog messages in the ASA and ASASM.
Enable Logging
To enable logging, perform the following steps:
Procedure
Example:
ciscoasa(config)# logging enable
Procedure
Step 1 Configure the ASA and ASASM to send messages to a syslog server.
logging host interface_name syslog_ip [tcp[/port] | udp[/port] [format emblem]]
Example:
ciscoasa(config)# logging host dmz1 192.168.1.5 udp 1026 format emblem
The format emblem keyword enables EMBLEM format logging for the syslog server with UDP only.
The interface_name argument specifies the interface through which you access the syslog server. The
syslog_ip argument specifies the IP address of the syslog server. The tcp[/port] or udp[/port] keyword
and argument pair specify that the ASA and ASASM should use TCP or UDP to send syslog messages
to the syslog server.
You can configure the ASA to send data to a syslog server using either UDP or TCP, but not both. The
default protocol is UDP if you do not specify a protocol.
If you specify TCP, the ASA and ASASM discover when the syslog server fails and as a security
protection, new connections through the ASA and ASA Services Module are blocked. To allow new
connections regardless of connectivity to a TCP syslog server, see Step 3. If you specify UDP, the ASA
and ASASM continue to allow new connections whether or not the syslog server is operational. Valid
port values for either protocol are 1025 through 65535. The default UDP port is 514. The default TCP
port is 1470.
Step 2 Specify which syslog messages should be sent to the syslog server.
logging trap {severity_level | message_list}
Example:
ciscoasa(config)# logging trap errors
You can specify the severity level number (1 through 7) or name. For example, if you set the severity
level to 3, then the ASA and ASASM send syslog messages for severity levels 3, 2, and 1. You can
specify a custom message list that identifies the syslog messages to send to the syslog server.
Step 3 (Optional) Disable the feature to block new connections when a TCP-connected syslog server is down.
logging permit-hostdown
Example:
ciscoasa(config)# logging permit-hostdown
If the ASA or ASASM is configured to send syslog messages to a TCP-based syslog server, and if either
the syslog server is down or the log queue is full, then new connections are blocked. New connections
are allowed again after the syslog server is back up and the log queue is no longer full.
Step 4 (Optional) Set the logging facility to a value other than 20, which is what most UNIX systems expect.
logging facility number
Example:
ciscoasa(config)# logging facility 21
Procedure
Step 1 Specify which syslog messages should be sent to the internal log buffer, which serves as a temporary
storage location.
logging buffered {severity_level | message_list}
Example:
ciscoasa(config)# logging buffered critical
New messages are appended to the end of the list. When the buffer is full, that is, when the buffer wraps,
old messages are overwritten as new messages are generated, unless you configure the ASA and ASASM
to save the full buffer to another location. To empty the internal log buffer, enter the clear logging buffer
command.
Step 2 Change the size of the internal log buffer. The default buffer size is 4 KB.
logging buffer-size bytes
Example:
ciscoasa(config)# logging buffer-size 16384
Example:
ciscoasa(config)# logging flash-bufferwrap
• Save new messages to the internal log buffer and save the full log buffer content to an FTP server.
logging ftp-bufferwrap
Example:
ciscoasa(config)# logging flash-bufferwrap
When saving the buffer content to another location, the ASA and ASASM create log files with
names that use the following time-stamp format:
LOG-YYYY-MM-DD-HHMMSS.TXT
where YYYY is the year, MM is the month, DD is the day of the month, and HHMMSS is the time in
hours, minutes, and seconds.
• Identify the FTP server on which you want to store log buffer content.
logging ftp-server server path username password
Example:
ciscoasa(config)# logging ftp-server 10.1.1.1 /syslogs logsupervisor 1luvMy10gs
The server argument specifies the IP address of the external FTP server. The path argument specifies
the directory path on the FTP server where the log buffer data is to be saved. This path is relative to
the FTP root directory. The username argument specifies a username that is valid for logging into
the FTP server. The password argument indicates the password for the username specified.
• Save the current log buffer content to the internal flash memory.
logging savelog [savefile]
Example:
ciscoasa(config)# logging savelog latest-logfile.txt
Procedure
Example:
ciscoasa(config)# logging mail high-priority
When sent by e-mail, a syslog message appears in the subject line of the e-mail message. For this reason,
we recommend configuring this option to notify administrators of syslog messages with high severity
levels, such as critical, alert, and emergency.
Step 2 Specify the source e-mail address to be used when sending syslog messages to an e-mail address.
logging from-address email_address
Example:
ciscoasa(config)# logging from-address [email protected]
Step 3 Specify the recipient e-mail address to be used when sending syslog messages to an e-mail address.
Example:
ciscoasa(config)# logging recipient-address [email protected]
Step 4 Specify the SMTP server to be used when sending syslog messages to an e-mail address.
smtp-server ip_address
Example:
ciscoasa(config)# smtp-server 10.1.1.1
Procedure
Example:
ciscoasa(config)# logging asdm 2
The ASA or ASASM sets aside a buffer area for syslog messages waiting to be sent to ASDM and saves
messages in the buffer as they occur. The ASDM log buffer is a different buffer than the internal log
buffer. When the ASDM log buffer is full, the ASA or ASASM deletes the oldest syslog message to make
room in the buffer for new ones. Deletion of the oldest syslog message to make room for new ones is the
default setting in ASDM. To control the number of syslog messages retained in the ASDM log buffer,
you can change the size of the buffer.
Step 2 Specify the number of syslog messages to be retained in the ASDM log buffer.
logging asdm-buffer-size num_of_msgs
Example:
ciscoasa(config)# logging asdm-buffer-size 200
Enter the clear logging asdm command to empty the current content of the ASDM log buffer.
Procedure
Step 1 Specify which syslog messages should be sent to the console port.
logging console {severity_level | message_list}
Example:
ciscoasa(config)# logging console errors
Step 1 Enable SNMP logging and specify which messages are to be sent to SNMP servers.
logging history [logging_list | level]
Example:
ciscoasa(config)# logging history errors
Procedure
Step 1 Specify which syslog messages should be sent to a Telnet or SSH session.
logging monitor {severity_level | message_list}
Example:
ciscoasa(config)# logging monitor 6
Example:
ciscoasa(config)# terminal monitor
If you log out and then log in again, you need to reenter this command. Enter the terminal no monitor
command to disable logging to the current session.
Procedure
Step 1 Specify criteria for selecting messages to be saved in the internal log buffer. For example, if you set the
severity level to 3, then the ASA sends syslog messages for severity levels 3, 2, and 1.
logging list name {level level [class message_class] | message start_id[-end_id]}
Example:
ciscoasa(config)# logging list notif-list level 3
The name argument specifies the name of the list. The level level keyword and argument pair specify the
severity level. The class message_class keyword and argument pair specify a particular message class.
The message start_id[-end_id] keyword and argument pair specify an individual syslog message number
or a range of numbers.
Note Do not use the names of severity levels as the name of a syslog message list. Prohibited names
include emergencies, alert, critical, error, warning, notification, informational, and debugging.
Similarly, do not use the first three characters of these words at the beginning of an event list
name. For example, do not use an event list name that starts with the characters “err.”
Step 2 (Optional) Add more criteria for message selection to the list.
logging list name {level level [class message_class] | message start_id[-end_id]}
Example:
ciscoasa(config)# logging list notif-list message 104024-105999
Enter the same command as in the previous step, specifying the name of the existing message list and
the additional criterion. Enter a new command for each criterion that you want to add to the list. For
example, you can specify criteria for syslog messages to be included in the list as the following:
• Syslog message IDs that fall into the range of 104024 to 105999.
• All syslog messages with the critical severity level or higher (emergency, alert, or critical).
• All ha class syslog messages with the warning severity level or higher (emergency, alert, critical,
error, or warning).
Note A syslog message is logged if it satisfies any of these conditions. If a syslog message satisfies
more than one of the conditions, the message is logged only once.
Procedure
Step 1 Send syslog messages in EMBLEM format to a syslog server over UDP using port 514.
logging host interface_name ip_address {tcp[/port] | udp[/port]] [format emblem]
Example:
ciscoasa(config)# logging host interface_1 127.0.0.1 udp format emblem
The format emblem keyword enables EMBLEM format logging for the syslog server (UDP only). The
interface_name argument specifies the interface through which you access the syslog server. The
ip_address argument specifies the IP address of the syslog server. The tcp[/port] or udp[/port] keyword
and argument pair specify that the ASA and ASASM should use TCP or UDP to send syslog messages
to the syslog server.
You can configure the ASA and ASASM to send data to a syslog server using either UDP or TCP, but
not both. The default protocol is UDP if you do not specify a protocol.
You can use multiple logging host commands to specify additional servers that would all receive syslog
messages. If you configure two or more logging servers, make sure that you limit the logging severity
level to warnings for all logging servers.
If you specify TCP, the ASA or ASASM discovers when the syslog server fails and as a security
protection, new connections through the ASA are blocked. If you specify UDP, the ASA or ASASM
continues to allow new connections whether or not the syslog server is operational. Valid port values for
either protocol are 1025 through 65535. The default UDP port is 514. The default TCP port is 1470.
Procedure
Step 1 Send syslog messages in EMBLEM format to output destinations other than a syslog server, such as
Telnet or SSH sessions.
logging emblem
Example:
ciscoasa(config)# logging emblem
Procedure
Step 1 Specify the maximum amount of internal flash memory available for saving log files.
logging flash-maximum-allocation kbytes
Example:
ciscoasa(config)# logging flash-maximum-allocation 1200
By default, the ASA can use up to 1 MB of internal flash memory for log data. The minimum amount of
internal flash memory that must be free for the ASA and ASASM to save log data is 3 MB.
If a log file being saved to internal flash memory would cause the amount of free internal flash memory
to fall below the configured minimum limit, the ASA or ASASM deletes the oldest log files to ensure
that the minimum amount of memory remains free after saving the new log file. If there are no files to
delete or if, after all old files have been deleted, free memory is still below the limit, the ASA or ASASM
fails to save the new log file.
Step 2 Specify the minimum amount of internal flash memory that must be free for the ASA or ASASM to save
a log file.
logging flash-minimum-free kbytes
Example:
ciscoasa(config)# logging flash-minimum-free 4000
Procedure
Step 1 Specify the number of syslog messages that the ASA and ASASM can hold in its queue before sending
them to the configured output destination.
logging queue message_count
Example:
ciscoasa(config)# logging queue 300
The ASA and ASASM have a fixed number of blocks in memory that can be allocated for buffering
syslog messages while they are waiting to be sent to the configured output destination. The number of
blocks required depends on the length of the syslog message queue and the number of syslog servers
specified. The default queue size is 512 syslog messages. The queue size is limited only by block
memory availability. Valid values are from 0 to 8192 messages, depending on the platform. If the logging
queue is set to zero, the queue is the maximum configurable size (8192 messages).
Procedure
Step 1 Override the configuration in the specified output destination command. For example, if you specify that
messages at severity level 7 should go to the internal log buffer and that ha class messages at severity
level 3 should go to the internal log buffer, then the latter configuration takes precedence.
logging class message_class {buffered | console | history | mail | monitor | trap}
[severity_level]
Example:
ciscoasa(config)# logging class ha buffered alerts
The buffered, history, mail, monitor, and trap keywords specify the output destination to which syslog
messages in this class should be sent. The history keyword enables SNMP logging. The monitor
keyword enables Telnet and SSH logging. The trap keyword enables syslog server logging. Select one
destination per command line entry. To specify that a class should go to more than one destination, enter
a new command for each output destination.
Procedure
Example:
ciscoasa(config)# logging host inside 10.0.0.1 TCP/1500 secure
The interface_name argument specifies the interface on which the syslog server resides. The syslog_ip
argument specifies the IP address of the syslog server. The port argument specifies the port (TCP or UDP)
that the syslog server listens to for syslog messages. The tcp keyword specifies that the ASA or ASASM
should use TCP to send syslog messages to the syslog server. The udp keyword specifies that the ASA
or ASASM should use UDP to send syslog messages to the syslog server. The format emblem keyword
enables EMBLEM format logging for the syslog server. The secure keyword specifies that the
connection to the remote logging host should use SSL/TLS for TCP only.
Note Secure logging does not support UDP; an error occurs if you try to use this protocol.
Procedure
Step 1 Configure the ASA or ASASM to include a device ID in non-EMBLEM-format syslog messages. You
can specify only one type of device ID for syslog messages.
logging device-id {cluster-id |context-name | hostname | ipaddress interface_name [system]
| string text}
Example:
ciscoasa(config)# logging device-id hostname
The context-name keyword indicates that the name of the current context should be used as the device
ID (applies to multiple context mode only). If you enable the logging device ID for the admin context in
multiple context mode, messages that originate in the system execution space use a device ID of system,
and messages that originate in the admin context use the name of the admin context as the device ID.
Note In an ASA cluster, always use the master unit IP address for the selected interface.
The cluster-id keyword specifies the unique name in the boot configuration of an individual ASA unit
in the cluster as the device ID. The hostname keyword specifies that the hostname of the ASA should
be used as the device ID. The ipaddress interface_name keyword-argument pair specifies that the
interface IP address specified as interface_name should be used as the device ID. If you use the
ipaddress keyword, the device ID becomes the specified ASA interface IP address, regardless of the
interface from which the syslog message is sent. In the cluster environment, the system keyword dictates
that the device ID becomes the system IP address on the interface. This keyword provides a single,
consistent device ID for all syslog messages that are sent from the device. The string text
keyword-argument pair specifies that the text string should be used as the device ID. The string can
include as many as 16 characters.
You cannot use blank spaces or any of the following characters:
• & (ampersand)
• ‘ (single quote)
• “ (double quote)
• < (less than)
• > (greater than)
• ? (question mark)
Note If enabled, the device ID does not appear in EMBLEM-formatted syslog messages nor in SNMP
traps.
To include the date and time in syslog messages, perform the following steps:
Procedure
Step 1 Specify that syslog messages should include the date and time that they were generated.
logging timestamp
Example:
ciscoasa(config)# logging timestamp
LOG-2008-10-24-081856.TXT
To remove the date and time from syslog messages, enter the no logging timestamp command.
Procedure
Step 1 Prevent the ASA or ASASM from generating a particular syslog message.
Example:
ciscoasa(config)# no logging message 113019
To reenable a disabled syslog message, enter the logging message syslog_id command (for example,
logging message 113019). To reenable logging of all disabled syslog messages, enter the clear
configure logging disabled command.
Procedure
Example:
ciscoasa(config)# logging message 113019 level 5
To reset the severity level of a syslog message to its setting, enter the no logging message syslog_id level
severity_level command (for example, no logging message 113019 level 5). To reset the severity level
of all modified syslog messages to their settings, enter the clear configure logging level command.
Procedure
Step 1 Apply a specified severity level (1 through 7) to a set of messages or to an individual message (not the
destination) within a specified time period.
logging rate-limit {unlimited | {num [interval]}} message syslog_id | level severity_level
Example:
ciscoasa(config)# logging rate-limit 1000 600 level 6
Rate limits affect the volume of messages being sent to all configured destinations. To reset the logging
rate limit to the default value, enter the clear running-config logging rate-limit command. To reset the
logging rate limit, enter the clear configure logging rate-limit command.
Procedure
Example:
ciscoasa(config)# logging hide username
The default is to hide usernames in syslogs when the username’s validity in unknown. To view these
usernames, use the no logging hide username command.
Note The maximum number of syslog messages that are available to view is 1000, which is the
default setting. The maximum number of syslog messages that are available to view is 2000.
The following examples show how to control both whether a syslog message is enabled and the severity
level of the specified syslog message:
ciscoasa(config)# show logging message 403503
syslog 403503: -level errors (enabled)
Platform
Feature Name Releases Description
Logging 7.0(1) Provides ASA network logging information through various output destinations,
and includes the option to view and save log files.
Rate limit 7.0(4) Limits the rate at which syslog messages are generated.
We introduced the following command: logging rate-limit.
Logging list 7.2(1) Creates a logging list to use in other commands to specify messages by various
criteria (logging level, event class, and message IDs).
We introduced the following command: logging list.
Secure logging 8.0(2) Specifies that the connection to the remote logging host should use SSL/TLS.
This option is valid only if the protocol selected is TCP.
We modified the following command: logging host.
Logging class 8.0(4), 8.1(1) Added support for the ipaa event class of logging messages.
We modified the following command: logging class.
Logging class and saved 8.2(1) Added support for the dap event class of logging messages.
logging buffers We modified the following command: logging class.
Added support to clear the saved logging buffers (ASDM, internal, FTP, and
flash).
We introduced the following command: clear logging queue bufferwrap.
Platform
Feature Name Releases Description
Enhanced logging and 8.3(2) When you configure a syslog server to use TCP, and the syslog server is
connection blocking unavailable, the ASA blocks new connections that generate syslog messages
until the server becomes available again (for example, VPN, firewall, and
cut-through-proxy connections). This feature has been enhanced to also block
new connections when the logging queue on the ASA is full; connections resume
when the logging queue is cleared.
This feature was added for compliance with Common Criteria EAL4+. Unless
required, we recommended allowing connections when syslog messages cannot
be sent or received. To allow connections, continue to use the logging
permit-hostdown command.
We modified the following command: show logging.
We introduced the following syslog messages: 414005, 414006, 414007, and
414008.
Syslog message filtering 8.4(1) Support has been added for the following:
and sorting
• Syslog message filtering based on multiple text strings that correspond to
various columns
• Creation of custom filters
• Column sorting of messages. For detailed information, see the ASDM
configuration guide.
We modified the following screens:
Monitoring > Logging > Real-Time Log Viewer > View.
Monitoring > Logging > Log Buffer Viewer > View.
This feature interoperates with all ASA versions.
Clustering 9.0(1) Added support for syslog message generation in a clustering environment on the
ASA 5580 and 5585-X.
We modified the following command: logging device-id.
Hidden usernames in 9.3(3) You can now hide usernames in syslogs when the username's validity is
syslogs unknown.
We introduced the logging hide username command. To view these usernames,
use the no logging hide username command.
This chapter describes how to configure Simple Network Management Protocol (SNMP) to monitor the
Cisco ASA.
• About SNMP, page 40-1
• Guidelines for SNMP, page 40-20
• Configure SNMP, page 40-22
• Examples for SNMP, page 40-32
• Monitoring SNMP, page 40-31
• History for SNMP, page 40-33
About SNMP
SNMP is an application-layer protocol that facilitates the exchange of management information between
network devices and is part of the TCP/IP protocol suite. The ASA, ASAv, and ASASM provide support
for network monitoring using SNMP Versions 1, 2c, and 3, and support the use of all three versions
simultaneously. The SNMP agent running on the ASA interface lets you monitor the ASA and ASASM
through network management systems (NMSs), such as HP OpenView. The ASA, ASAv, and ASASM
support SNMP read-only access through issuance of a GET request. SNMP write access is not allowed,
so you cannot make changes with SNMP. In addition, the SNMP SET request is not supported.
You can configure the ASA, ASAv, and ASASM to send traps, which are unsolicited messages from the
managed device to the management station for certain events (event notifications) to an NMS, or you can
use the NMS to browse the Management Information Bases (MIBs) on the ASA. MIBs are a collection
of definitions, and the ASA, ASAv, and ASASM maintain a database of values for each definition.
Browsing a MIB means issuing a series of GET-NEXT or GET-BULK requests of the MIB tree from the
NMS to determine values.
The ASA, ASAv, and ASASM have an SNMP agent that notifies designated management stations if
events occur that are predefined to require a notification, for example, when a link in the network goes
up or down. The notification it sends includes an SNMP OID, which identifies itself to the management
stations. The ASA, ASAv, or ASASM SNMP agent also replies when a management station asks for
information.
SNMP Terminology
Table 40-1 lists the terms that are commonly used when working with SNMP.
Term Description
Agent The SNMP server running on the ASA. The SNMP agent has the following features:
• Responds to requests for information and actions from the network management station.
• Controls access to its Management Information Base, the collection of objects that the SNMP
manager can view or change.
• Does not allow SET operations.
Browsing Monitoring the health of a device from the network management station by polling required information
from the SNMP agent on the device. This activity may include issuing a series of GET-NEXT or
GET-BULK requests of the MIB tree from the network management station to determine values.
Management Standardized data structures for collecting information about packets, connections, buffers, failovers, and
Information so on. MIBs are defined by the product, protocols, and hardware standards used by most network devices.
Bases (MIBs) SNMP network management stations can browse MIBs and request specific data or events be sent as they
occur.
Network The PCs or workstations set up to monitor SNMP events and manage devices, such as the ASA, ASAv,
management and ASASM.
stations (NMSs)
Object identifier The system that identifies a device to its NMS and indicates to users the source of information monitored
(OID) and displayed.
Trap Predefined events that generate a message from the SNMP agent to the NMS. Events include alarm
conditions such as linkup, linkdown, coldstart, warmstart, authentication, or syslog messages.
Note In software versions 7.2(1), 8.0(2), and later, the interface information accessed through SNMP refreshes
about every 5 seconds. As a result, we recommend that you wait for at least 5 seconds between
consecutive polls.
Not all OIDs in MIBs are supported. To obtain a list of the supported SNMP MIBs and OIDs for a
specific ASA or ASASM, enter the following command:
ciscoasa(config)# show snmp-server oidlist
Note Although the oidlist keyword does not appear in the options list for the show snmp-server command
help, it is available. However, this command is for Cisco TAC use only. Contact the Cisco TAC before
using this command.
The following is sample output from the show snmp-server oidlist command:
ciscoasa(config)# show snmp-server oidlist
[0] 1.3.6.1.2.1.1.1. sysDescr
[1] 1.3.6.1.2.1.1.2. sysObjectID
[2] 1.3.6.1.2.1.1.3. sysUpTime
[3] 1.3.6.1.2.1.1.4. sysContact
[4] 1.3.6.1.2.1.1.5. sysName
[5] 1.3.6.1.2.1.1.6. sysLocation
[6] 1.3.6.1.2.1.1.7. sysServices
[7] 1.3.6.1.2.1.2.1. ifNumber
[8] 1.3.6.1.2.1.2.2.1.1. ifIndex
[9] 1.3.6.1.2.1.2.2.1.2. ifDescr
[10] 1.3.6.1.2.1.2.2.1.3. ifType
[11] 1.3.6.1.2.1.2.2.1.4. ifMtu
[12] 1.3.6.1.2.1.2.2.1.5. ifSpeed
[13] 1.3.6.1.2.1.2.2.1.6. ifPhysAddress
[14] 1.3.6.1.2.1.2.2.1.7. ifAdminStatus
[15] 1.3.6.1.2.1.2.2.1.8. ifOperStatus
[16] 1.3.6.1.2.1.2.2.1.9. ifLastChange
[17] 1.3.6.1.2.1.2.2.1.10. ifInOctets
[18] 1.3.6.1.2.1.2.2.1.11. ifInUcastPkts
[19] 1.3.6.1.2.1.2.2.1.12. ifInNUcastPkts
[20] 1.3.6.1.2.1.2.2.1.13. ifInDiscards
[21] 1.3.6.1.2.1.2.2.1.14. ifInErrors
[22] 1.3.6.1.2.1.2.2.1.16. ifOutOctets
[23] 1.3.6.1.2.1.2.2.1.17. ifOutUcastPkts
[24] 1.3.6.1.2.1.2.2.1.18. ifOutNUcastPkts
[25] 1.3.6.1.2.1.2.2.1.19. ifOutDiscards
[26] 1.3.6.1.2.1.2.2.1.20. ifOutErrors
[27] 1.3.6.1.2.1.2.2.1.21. ifOutQLen
[28] 1.3.6.1.2.1.2.2.1.22. ifSpecific
[29] 1.3.6.1.2.1.4.1. ipForwarding
[30] 1.3.6.1.2.1.4.20.1.1. ipAdEntAddr
[31] 1.3.6.1.2.1.4.20.1.2. ipAdEntIfIndex
[32] 1.3.6.1.2.1.4.20.1.3. ipAdEntNetMask
[33] 1.3.6.1.2.1.4.20.1.4. ipAdEntBcastAddr
[34] 1.3.6.1.2.1.4.20.1.5. ipAdEntReasmMaxSize
[35] 1.3.6.1.2.1.11.1. snmpInPkts
[36] 1.3.6.1.2.1.11.2. snmpOutPkts
[37] 1.3.6.1.2.1.11.3. snmpInBadVersions
[38] 1.3.6.1.2.1.11.4. snmpInBadCommunityNames
[39] 1.3.6.1.2.1.11.5. snmpInBadCommunityUses
[40] 1.3.6.1.2.1.11.6. snmpInASNParseErrs
[41] 1.3.6.1.2.1.11.8. snmpInTooBigs
ASA 5506 Adaptive Security Appliance ciscoASA5506K7sy (ciscoProducts ASA 5506-X Adaptive Security
System Context with No Payload 2125) Appliance System Context with No
Encryption Payload Encryption
ASA5585-SSP10 ciscoASA5585Ssp10 (ciscoProducts ASA 5585-X SSP-10
1194)
ASA5585-SSP20 ciscoASA5585Ssp20 (ciscoProducts ASA 5585-X SSP-20
1195)
ASA5585-SSP40 ciscoASA5585Ssp40 (ciscoProducts ASA 5585-X SSP-40
1196)
ASA5585-SSP60 ciscoASA5585Ssp60 (ciscoProducts ASA 5585-X SSP-60
1197)
ASA5585-SSP10 ciscoASA5585Ssp10sc (ciscoProducts ASA 5585-X SSP-10 security context
1198)
ASA5585-SSP20 ciscoASA5585Ssp20sc (ciscoProducts ASA 5585-X SSP-20 security context
1199)
ASA5585-SSP40 ciscoASA5585Ssp40sc (ciscoProducts ASA 5585-X SSP-40 security context
1200)
ASA5585-SSP60 ciscoASA5585Ssp60sc (ciscoProducts ASA 5585-X SSP-60 security context
1201)
ASA5585-SSP10 ciscoASA5585Ssp10sy (ciscoProducts ASA 5585-X SSP-10 system context
1202)
ASA5585-SSP20 ciscoASA5585Ssp20sy (ciscoProducts ASA 5585-X SSP-20 system context
1203)
ASA5585-SSP40 ciscoASA5585Ssp40sy (ciscoProducts ASA 5585-X SSP-40 system context
1204)
ASA5585-SSP60 ciscoASA5585Ssp60sy (ciscoProducts ASA 5585-X SSP-60 system context
1205)
ASA Services Module for Catalyst ciscoAsaSm1 (ciscoProducts 1277) Adaptive Security Appliance (ASA)
switches/7600 routers Services Module for Catalyst
switches/7600 routers
ASA Services Module for Catalyst ciscoAsaSm1sc (ciscoProducts 1275) Adaptive Security Appliance (ASA)
switches/7600 routers security context Services Module for Catalyst
switches/7600 routers security context
ASA Services Module for Catalyst ciscoAsaSm1K7sc (ciscoProducts 1334) Adaptive Security Appliance (ASA)
switches/7600 routers security context Services Module for Catalyst
with No Payload Encryption switches/7600 routers security context
with No Payload Encryption
ASA Services Module for Catalyst ciscoAsaSm1sy (ciscoProducts 1276) Adaptive Security Appliance (ASA)
switches/7600 routers system context Services Module for Catalyst
switches/7600 routers system context
ASA Services Module for Catalyst ciscoAsaSm1K7sy (ciscoProducts Adaptive Security Appliance (ASA)
switches system context/7600 routers 1335) Services Module for Catalyst
with No Payload Encryption switches/7600 routers system context
with No Payload Encryption
ASA Services Module for Catalyst ciscoAsaSm1K7 (ciscoProducts 1336) Adaptive Security Appliance (ASA)
switches/7600 routers system context Services Module for Catalyst
with No Payload Encryption switches/7600 routers with No Payload
Encryption
ASA 5512 ciscoASA5512 (ciscoProducts 1407) ASA 5512 Adaptive Security Appliance
ASA 5525 ciscoASA5525 (ciscoProducts 1408) ASA 5525 Adaptive Security Appliance
ASA 5545 ciscoASA5545 (ciscoProducts 1409) ASA 5545 Adaptive Security Appliance
ASA 5555 ciscoASA5555 (ciscoProducts 1410) ASA 5555 Adaptive Security Appliance
ASA 5512 Security Context ciscoASA5512sc (ciscoProducts 1411) ASA 5512 Adaptive Security Appliance
Security Context
ASA 5525 Security Context ciscoASA5525sc (ciscoProducts 1412) ASA 5525 Adaptive Security Appliance
Security Context
ASA 5545 Security Context ciscoASA5545sc (ciscoProducts 1413) ASA 5545 Adaptive Security Appliance
Security Context
ASA 5555 Security Context ciscoASA5555sc (ciscoProducts 1414) ASA 5555 Adaptive Security Appliance
Security Context
ASA 5512 System Context ciscoASA5512sy (ciscoProducts 1415) ASA 5512 Adaptive Security Appliance
System Context
ASA 5515 System Context ciscoASA5515sy (ciscoProducts 1416) ASA 5515 Adaptive Security Appliance
System Context
ASA 5525 System Context ciscoASA5525sy (ciscoProducts1417) ASA 5525 Adaptive Security Appliance
System Context
ASA 5545 System Context ciscoASA5545sy (ciscoProducts 1418) ASA 5545 Adaptive Security Appliance
System Context
ASA 5555 System Context ciscoASA5555sy (ciscoProducts 1419) ASA 5555 Adaptive Security Appliance
System Context
ASA 5515 Security Context ciscoASA5515sc (ciscoProducts 1420) ASA 5515 Adaptive Security Appliance
System Context
ASA 5515 ciscoASA5515 (ciscoProducts 1421) ASA 5515 Adaptive Security Appliance
ASAv ciscoASAv (ciscoProducts 1902) Cisco Adaptive Security Virtual
Appliance (ASAv)
ASAv System Context ciscoASAvsy (ciscoProducts 1903) Cisco Adaptive Security Virtual
Appliance (ASAv) System Context
ASAv Security Context ciscoASAvsc (ciscoProducts 1904) Cisco Adaptive Security Virtual
Appliance (ASAv) Security Contex
Cisco Adaptive Security Appliance (ASA) 5515 Adaptive cevChassisASA5515 (cevChassis 1114)
Security Appliance
Cisco Adaptive Security Appliance (ASA) 5515 Adaptive cevChassisASA5515K7 (cevChassis 1109 )
Security Appliance with No Payload Encryption
Cisco Adaptive Security Appliance (ASA) 5525 Adaptive cevChassisASA5525 (cevChassis 1115)
Security Appliance
Cisco Adaptive Security Appliance (ASA) 5525 Adaptive cevChassisASA5525K7 (cevChassis 1110 )
Security Appliance with No Payload Encryption
Cisco Adaptive Security Appliance (ASA) 5545 Adaptive cevChassisASA5545 (cevChassis 1116)
Security Appliance
Cisco Adaptive Security Appliance (ASA) 5545 Adaptive cevChassisASA5545K7 (cevChassis 1111 )
Security Appliance with No Payload Encryption
Cisco Adaptive Security Appliance (ASA) 5555 Adaptive cevChassisASA5555 (cevChassis 1117)
Security Appliance
Cisco Adaptive Security Appliance (ASA) 5555 Adaptive cevChassisASA5555K7 (cevChassis 1112 )
Security Appliance with No Payload Encryption
Central Processing Unit for Cisco Adaptive Security cevCpuAsa5512 (cevModuleCpuType 229)
Appliance 5512
Central Processing Unit for Cisco Adaptive Security cevCpuAsa5512K7 (cevModuleCpuType 224)
Appliance 5512 with no Payload Encryption
Central Processing Unit for Cisco Adaptive Security cevCpuAsa5515 (cevModuleCpuType 230)
Appliance 5515
Central Processing Unit for Cisco Adaptive Security cevCpuAsa5515K7 (cevModuleCpuType 225)
Appliance 5515 with no Payload Encryption
Central Processing Unit for Cisco Adaptive Security cevCpuAsa5525 (cevModuleCpuType 231)
Appliance 5525
Central Processing Unit for Cisco Adaptive Security cevCpuAsa5525K7 (cevModuleCpuType 226)
Appliance 5525 with no Payload Encryption
Central Processing Unit for Cisco Adaptive Security cevCpuAsa5545 (cevModuleCpuType 232)
Appliance 5545
Central Processing Unit for Cisco Adaptive Security cevCpuAsa5545K7 (cevModuleCpuType 227)
Appliance 5545 with no Payload Encryption
Central Processing Unit for Cisco Adaptive Security cevCpuAsa5555 (cevModuleCpuType 233)
Appliance 5555
Central Processing Unit for Cisco Adaptive Security cevCpuAsa5555K7 (cevModuleCpuType 228)
Appliance 5555 with no Payload Encryption
CPU for ASA 5585 SSP-10 cevCpuAsa5585Ssp10 (cevModuleCpuType 204)
CPU for ASA 5585 SSP-10 No Payload Encryption cevCpuAsa5585Ssp10K7 ( cevModuleCpuType 205)
CPU for ASA 5585 SSP-20 cevCpuAsa5585Ssp20 (cevModuleCpuType 206)
CPU for ASA 5585 SSP-20 No Payload Encryption cevCpuAsa5585Ssp20K7 (cevModuleCpuType 207)
CPU for ASA 5585 SSP-40 cevCpuAsa5585Ssp40 (cevModuleCpuType 208)
CPU for ASA 5585 SSP-40 No Payload Encryption cevCpuAsa5585Ssp40K7 (cevModuleCpuType 209)
Central Processing Unit Temperature Sensor for Cisco cevSensorASA5512CPUTemp (cevSensor 96)
Adaptive Security Appliance 5512
Cisco Adaptive Security Appliance (ASA) 5512 with No cevSensorASA5512K7ChassisFanSensor (cevSensor 125)
Payload Encryption Chassis Fan sensor
Central Processing Unit Temperature Sensor for Cisco cevSensorASA5512K7CPUTemp (cevSensor 102)
Adaptive Security Appliance 5512 with No Payload
Encryption
Sensor for Chassis Cooling Fan in Adaptive Security cevSensorASA5512K7PSFanSensor (cevSensor 116)
Appliance 5512 with No Payload Encryption
Sensor for Chassis Cooling Fan in Adaptive Security cevSensorASA5512PSFanSensor (cevSensor 119)
Appliance 5512
Cisco Adaptive Security Appliance (ASA) 5515 Chassis Fan cevSensorASA5515ChassisFanSensor (cevSensor 121)
sensor
Chassis Ambient Temperature Sensor for Cisco Adaptive cevSensorASA5515ChassisTemp (cevSensor 98)
Security Appliance 5515
Central Processing Unit Temperature Sensor for Cisco cevSensorASA5515CPUTemp (cevSensor 97)
Adaptive Security Appliance 5515
Cisco Adaptive Security Appliance (ASA) 5515 with No cevSensorASA5515K7ChassisFanSensor (cevSensor 126)
Payload Encryption Chassis Fan sensor
Central Processing Unit Temperature Sensor for Cisco cevSensorASA5515K7CPUTemp (cevSensor 103)
Adaptive Security Appliance 5515 with No Payload
Encryption
Sensor for Chassis Cooling Fan in Adaptive Security cevSensorASA5515K7PSFanSensor (cevSensor 115)
Appliance 5515 with No Payload Encryption
Sensor for Chassis Cooling Fan in Adaptive Security cevSensorASA5515PSFanSensor (cevSensor 118)
Appliance 5515
Cisco Adaptive Security Appliance (ASA) 5525 Chassis Fan cevSensorASA5525ChassisFanSensor (cevSensor 122)
sensor
Chassis Ambient Temperature Sensor for Cisco Adaptive cevSensorASA5525ChassisTemp (cevSensor 108)
Security Appliance 5525
Central Processing Unit Temperature Sensor for Cisco cevSensorASA5525CPUTemp (cevSensor 99)
Adaptive Security Appliance 5525
Cisco Adaptive Security Appliance (ASA) 5525 with No cevSensorASA5525K7ChassisFanSensor (cevSensor 127)
Payload Encryption Chassis Fan sensor
Central Processing Unit Temperature Sensor for Cisco cevSensorASA5525K7CPUTemp (cevSensor 104)
Adaptive Security Appliance 5525 with No Payload
Encryption
Sensor for Chassis Cooling Fan in Adaptive Security cevSensorASA5525K7PSFanSensor (cevSensor 114)
Appliance 5525 with No Payload Encryption
Sensor for Chassis Cooling Fan in Adaptive Security cevSensorASA5525PSFanSensor (cevSensor 117)
Appliance 5525
Cisco Adaptive Security Appliance (ASA) 5545 Chassis Fan cevSensorASA5545ChassisFanSensor (cevSensor 123)
sensor
Chassis Ambient Temperature Sensor for Cisco Adaptive cevSensorASA5545ChassisTemp (cevSensor 109)
Security Appliance 5545
Central Processing Unit Temperature Sensor for Cisco cevSensorASA5545CPUTemp (cevSensor 100)
Adaptive Security Appliance 5545
Cisco Adaptive Security Appliance (ASA) 5545 with No cevSensorASA5545K7ChassisFanSensor (cevSensor 128)
Payload Encryption Chassis Fan sensor
Chassis Ambient Temperature Sensor for Cisco Adaptive cevSensorASA5545K7ChassisTemp (cevSensor 90)
Security Appliance 5545 with No Payload Encryption
Central Processing Unit Temperature Sensor for Cisco cevSensorASA5545K7CPUTemp (cevSensor 105)
Adaptive Security Appliance 5545 with No Payload
Encryption
Sensor for Chassis Cooling Fan in Adaptive Security cevSensorASA5545K7PSFanSensor (cevSensor 113)
Appliance 5545 with No Payload Encryption
Presence Sensor for Power Supply input in Adaptive Security cevSensorASA5545K7PSPresence (cevSensor 87)
Appliance 5545 with No Payload Encryption
Temperature Sensor for Power Supply Fan in Adaptive cevSensorASA5545K7PSTempSensor (cevSensor 94)
Security Appliance 5545 with No Payload Encryption
Sensor for Power Supply Fan in Adaptive Security Appliance cevSensorASA5545PSFanSensor (cevSensor 89)
5545 with No Payload Encryption
Presence Sensor for Power Supply input in Adaptive Security cevSensorASA5545PSPresence (cevSensor 130)
Appliance 5545
Presence Sensor for Power Supply input in Adaptive Security cevSensorASA5545PSPresence (cevSensor 131)
Appliance 5555
Temperature Sensor for Power Supply Fan in Adaptive cevSensorASA5545PSTempSensor (cevSensor 92)
Security Appliance 5545
Cisco Adaptive Security Appliance (ASA) 5555 Chassis Fan cevSensorASA5555ChassisFanSensor (cevSensor 124)
sensor
Chassis Ambient Temperature Sensor for Cisco Adaptive cevSensorASA5555ChassisTemp (cevSensor 110)
Security Appliance 5555
Central Processing Unit Temperature Sensor for Cisco cevSensorASA5555CPUTemp (cevSensor 101)
Adaptive Security Appliance 5555
Cisco Adaptive Security Appliance (ASA) 5555 with No cevSensorASA5555K7ChassisFanSensor (cevSensor 129)
Payload Encryption Chassis Fan sensor
Chassis Ambient Temperature Sensor for Cisco Adaptive cevSensorASA5555K7ChassisTemp (cevSensor 111)
Security Appliance 5555 with No Payload Encryption
Central Processing Unit Temperature Sensor for Cisco cevSensorASA5555K7CPUTemp (cevSensor 106)
Adaptive Security Appliance 5555 with No Payload
Encryption
Sensor for Chassis Cooling Fan in Adaptive Security cevSensorASA5555K7PSFanSensor (cevSensor 112)
Appliance 5555 with No Payload Encryption
Presence Sensor for Power Supply input in Adaptive Security cevSensorASA5555K7PSPresence (cevSensor 88)
Appliance 5555 with No Payload Encryption
Temperature Sensor for Power Supply Fan in Adaptive cevSensorASA5555K7PSTempSensor (cevSensor 95)
Security Appliance 5555 with No Payload Encryption
Sensor for Power Supply Fan in Adaptive Security Appliance cevSensorASA5555PSFanSensor (cevSensor 91)
5555
Temperature Sensor for Power Supply Fan in Adaptive cevSensorASA5555PSTempSensor (cevSensor 93)
Security Appliance 5555
Sensor for power supply fan for ASA 5585-X cevSensorASA5585PSFanSensor (cevSensor 86)
Sensor for power supply input for ASA 5585-X cevSensorASA5585PSInput (cevSensor 85)
CPU temperature sensor for ASA 5585 SSP-10 cevSensorASA5585SSp10CPUTemp (cevSensor 77)
CPU temperature sensor for ASA 5585 SSP-10 No Payload cevSensorASA5585SSp10K7CPUTemp (cevSensor 78)
Encryption
CPU temperature sensor for ASA 5585 SSP-20 cevSensorASA5585SSp20CPUTemp (cevSensor 79)
CPU temperature sensor for ASA 5585 SSP-20 No Payload cevSensorASA5585SSp20K7CPUTemp (cevSensor 80)
Encryption
CPU temperature sensor for ASA 5585 SSP-40 cevSensorASA5585SSp40CPUTemp (cevSensor 81)
CPU temperature sensor for ASA 5585 SSP-40 No Payload cevSensorASA5585SSp40K7CPUTemp (cevSensor 82)
Encryption
CPU temperature sensor for ASA 5585 SSP-60 cevSensorASA5585SSp60CPUTemp (cevSensor 83)
CPU temperature sensor for ASA 5585 SSP-60 No Payload cevSensorASA5585SSp60K7CPUTemp (cevSensor 84)
Encryption
Adaptive Security Appliance 5555-X Field-Replaceable Solid cevModuleASA5555XFRSSD (cevModuleCommonCards
State Drive 396)
Adaptive Security Appliance 5545-X Field-Replaceable Solid cevModuleASA5545XFRSSD (cevModuleCommonCards
State Drive 397)
Adaptive Security Appliance 5525-X Field-Replaceable Solid cevModuleASA5525XFRSSD (cevModuleCommonCards
State Drive 398)
Adaptive Security Appliance 5515-X Field-Replaceable Solid cevModuleASA5515XFRSSD (cevModuleCommonCards
State Drive 399)
Adaptive Security Appliance 5512-X Field-Replaceable Solid cevModuleASA5512XFRSSD (cevModuleCommonCards
State Drive 400)
Cisco Adaptive Security Virtual Appliance cevChassisASAv (cevChassis 1451)
Note For a physical interface that has multiple VLAN interfaces associated with it, be aware that
SNMP counters for ifInOctets and ifOutoctets OIDs match the aggregate traffic counters for that
physical interface.
The examples in Table 40-6 show the differences in SNMP traffic statistics. Example 1 shows the
difference in physical and logical output statistics for the show interface command and the show traffic
command. Example 2 shows output statistics for a VLAN-only interface for the show interface
command and the show traffic command. The example shows that the statistics are close to the output
that appears for the show traffic command.
Table 40-6 SNMP Traffic Statistics for Physical and VLAN Interfaces
Example 1 Example 2
ciscoasa# show interface GigabitEthernet3/2 ciscoasa# show interface GigabitEthernet0/0.100
interface GigabitEthernet3/2 interface GigabitEthernet0/0.100
description fullt-mgmt vlan 100
nameif mgmt nameif inside
security-level 10 security-level 100
ip address 10.7.14.201 255.255.255.0 ip address 10.7.1.101 255.255.255.0 standby
management-only 10.7.1.102
The following examples show the SNMP output statistics for the
management interface and the physical interface. The ifInOctets
value is close to the physical statistics output that appears in the
show traffic command output but not to the logical statistics
output.
ifIndex of the mgmt interface:
IF_MIB::ifDescr.6 = Adaptive Security Appliance ‘mgmt’
interface
Security Models
For configuration purposes, the authentication and privacy options are grouped together into security
models. Security models apply to users and groups, which are divided into the following three types:
• NoAuthPriv—No Authentication and No Privacy, which means that no security is applied to
messages.
• AuthNoPriv—Authentication but No Privacy, which means that messages are authenticated.
• AuthPriv—Authentication and Privacy, which means that messages are authenticated and encrypted.
SNMP Groups
An SNMP group is an access control policy to which users can be added. Each SNMP group is
configured with a security model, and is associated with an SNMP view. A user within an SNMP group
must match the security model of the SNMP group. These parameters specify what type of authentication
and privacy a user within an SNMP group uses. Each SNMP group name and security model pair must
be unique.
SNMP Users
SNMP users have a specified username, a group to which the user belongs, authentication password,
encryption password, and authentication and encryption algorithms to use. The authentication algorithm
options are MD5 and SHA. The encryption algorithm options are DES, 3DES, and AES (which is
available in 128, 192, and 256 versions). When you create a user, you must associate it with an SNMP
group. The user then inherits the security model of the group.
SNMP Hosts
An SNMP host is an IP address to which SNMP notifications and traps are sent. To configure SNMP
Version 3 hosts, along with the target IP address, you must configure a username, because traps are only
sent to a configured user. SNMP target IP addresses and target parameter names must be unique on the
ASA and ASA Services Module. Each SNMP host can have only one username associated with it. To
receive SNMP traps, after you have added the snmp-server host command, make sure that you configure
the user credentials on the NMS to match the credentials for the ASA and ASASM.
Implementation Differences Between the ASA, ASA Services Module, and the Cisco IOS Software
The SNMP Version 3 implementation in the ASA and ASASM differs from the SNMP Version 3
implementation in the Cisco IOS software in the following ways:
• The local-engine and remote-engine IDs are not configurable. The local engine ID is generated when
the ASA or ASASM starts or when a context is created.
• No support exists for view-based access control, which results in unrestricted MIB browsing.
• Support is restricted to the following MIBs: USM, VACM, FRAMEWORK, and TARGET.
• You must create users and groups with the correct security model.
• You must remove users, groups, and hosts in the correct sequence.
• Use of the snmp-server host command creates an ASA, ASAv, or ASASM rule to allow incoming
SNMP traffic.
Note SNMP polling fails if SNMP syslog messages exceed a high rate (approximately 4000 per second).
Failover Guidelines
The SNMP client in each ASA, ASAv, or ASASM shares engine data with its peer. Engine data includes
the engineID, engineBoots, and engineTime objects of the SNMP-FRAMEWORK-MIB. Engine data is
written as a binary file to flash:/snmp/contextname.
IPv6 Guidelines
Does not support IPv6.
Additional Guidelines
• You must have Cisco Works for Windows or another SNMP MIB-II compliant browser to receive
SNMP traps or browse a MIB.
• Does not support view-based access control, but the VACM MIB is available for browsing to
determine default view settings.
• The ENTITY-MIB is not available in the non-admin context. Use the IF-MIB instead to perform
queries in the non-admin context.
• Does not support SNMP Version 3 for the AIP SSM or AIP SSC.
• Does not support SNMP debugging.
• Does not support retrieval of ARP information.
• Does not support SNMP SET commands.
• When using NET-SNMP Version 5.4.2.1, only supports the encryption algorithm version of
AES128. Does not support the encryption algorithm versions of AES256 or AES192.
• Changes to the existing configuration are rejected if the result places the SNMP feature in an
inconsistent state.
• For SNMP Version 3, configuration must occur in the following order: group, user, host.
• Before a group is deleted, you must ensure that all users associated with that group are deleted.
• Before a user is deleted, you must ensure that no hosts are configured that are associated with that
username.
• If users have been configured to belong to a particular group with a certain security model, and if
the security level of that group is changed, you must do the following in this sequence:
– Remove the users from that group.
– Change the group security level.
– Add users that belong to the new group.
• The creation of custom views to restrict user access to a subset of MIB objects is not supported.
• All requests and traps are available in the default Read/Notify View only.
• The connection-limit-reached trap is generated in the admin context. To generate this trap. you must
have at least one SNMP server host configured in the user context in which the connection limit has
been reached.
• You cannot query for the chassis temperature on the ASA 5585 SSP-40 (NPE).
• You can add up to 4000 hosts. However, only 128 of this number can be for traps.
• The total number of supported active polling destinations is 128.
• You can specify a network object to indicate the individual hosts that you want to add as a host
group.
• You can associate more than one user with one host.
• You can specify overlapping network objects in different host-group commands. The values that
you specify for the last host group take effect for the common set of hosts in the different network
objects.
• If you delete a host group or hosts that overlap with other host groups, the hosts are set up again
using the values that have been specified in the configured host groups.
• The values that the hosts acquire depend on the specified sequence that you use to run the
commands.
• The limit on the message size that SNMP sends is 1472 bytes.
• Members of a cluster do not synchronize their SNMPv3 engine IDs. Because of this, each unit in
the cluster should have a unique SNMPv3 user configuration.
Troubleshooting Tips
• To ensure that the SNMP process that receives incoming packets from the NMS is running, enter the
following command:
ciscoasa(config)# show process | grep snmp
• To capture syslog messages from SNMP and have them appear on the ASA, ASAv, or ASASM
console, enter the following commands:
ciscoasa(config)# logging list snmp message 212001-212015
ciscoasa(config)# logging console snmp
• To make sure that the SNMP process is sending and receiving packets, enter the following
commands:
ciscoasa(config)# clear snmp-server statistics
ciscoasa(config)# show snmp-server statistics
• If the NMS cannot request objects successfully or is not handing incoming traps from the ASA,
ASAv, or ASASM correctly, use a packet capture to isolate the problem, by entering the following
commands:
ciscoasa (config)# access-list snmp permit udp any eq snmptrap any
ciscoasa (config)# access-list snmp permit udp any any eq snmp
ciscoasa (config)# capture snmp type raw-data access-list snmp interface mgmt
ciscoasa (config)# copy /pcap capture:snmp tftp://192.0.2.5/exampledir/snmp.pcap
• If the ASA, ASAv, or ASASM is not performing as expected, obtain information about network
topology and traffic by doing the following:
– For the NMS configuration, obtain the following information:
Number of timeouts
Retry count
Engine ID caching
Username and password used
– Issue the following commands:
show block
show interface
show process
show cpu
show vm
• If a fatal error occurs, to help in reproducing the error, send a traceback file and the output of the
show tech-support command to Cisco TAC.
• If SNMP traffic is not being allowed through the ASA, ASAv, or ASASM interfaces, you might also
need to permit ICMP traffic from the remote SNMP server using the icmp permit command.
• For additional troubleshooting information, see the following URL:
http://www.cisco.com/c/en/us/support/docs/security/asa-5500-x-series-next-generation-firewalls/1
16423-troubleshoot-asa-snmp.html
Configure SNMP
This section describes how to configure SNMP.
Step 1 Enable the SNMP Agent and SNMP server. See Enable the SNMP Agent and SNMP Server, page 40-23.
Step 2 Configure SNMP traps. See Configure SNMP Traps, page 40-23.
Step 3 Configure SNMP Version 1 and 2c parameters or SNMP Version 3 parameters. See Configure
Parameters for SNMP Version 1 or 2c, page 40-25 or Configure Parameters for SNMP Version 3,
page 40-27.
Procedure
Step 1 Enable the SNMP agent and SNMP server on the ASA, ASAv, or ASASM. By default, the SNMP server
is enabled.
snmp-server enable
Example:
ciscoasa(config)# snmp-server enable
Procedure
Step 1 Send individual traps, sets of traps, or all traps to the NMS.
snmp-server enable traps [all | syslog | snmp [authentication | linkup | linkdown |
coldstart | warmstart] | config | entity [config-change | fru-insert | fru-remove |
fan-failure | cpu-temperature | chassis-fan- failure | power-supply-failure] |
chassis-temperature | power-supply-presence | power-supply-temperature
|accelerator-temperature] | ikev2 [start | stop] |ipsec [start | stop] | remote-access
[session-threshold-exceeded]| connection-limit-reached | cpu threshold rising |
interface-threshold | memory-threshold | nat [packet-discard]
Example:
ciscoasa(config)# snmp-server enable traps snmp authentication linkup linkdown coldstart
warmstart
This command enables syslog messages to be sent as traps to the NMS. The default configuration has
all SNMP standard traps enabled, as shown in the example. To disable these traps, use the no
snmp-server enable traps snmp command. If you enter this command and do not specify a trap type,
the default is the syslog trap. By default, the syslog trap is enabled. The default SNMP traps continue to
be enabled with the syslog trap. You need to configure both the logging history command and the
snmp-server enable traps syslog command to generate traps from the syslog MIB. To restore the
default enabling of SNMP traps, use the clear configure snmp-server command. All other traps are
disabled by default.
All other traps are available in the admin and user contexts in single mode.
In multiple context mode, the fan-failure trap, the power-supply-failure trap, and the cpu-temperature
trap are generated only from the admin context, and not the user contexts (applies only to the ASA
5512-X, 5515-X, 5525-X, 5545-X, and 5555-X).
The accelerator-temperature threshold trap applies only to the ASA 5506-X.
The chassis-fan-failure trap does not apply to the ASA 5506-X.
The config trap enables the ciscoConfigManEvent notification and the ccmCLIRunningConfigChanged
notification, which are generated after you have exited configuration mode.
The following traps do not apply to the ASA 5506-X: fan-failure, fru-insert, fru-remove,
power-supply, power-supply-failure, power-supply-presence, and power-supply-temperature.
If the CPU usage is greater than the configured threshold value for the configured monitoring period, the
cpu threshold rising trap is generated.
When the used system context memory reaches 80 percent of the total system memory, the
memory-threshold trap is generated from the admin context. For all other user contexts, this trap is
generated when the used memory reaches 80 percent of the total system memory in that particular
context.
Procedure
Step 1 Configure the threshold value for a high CPU threshold and the threshold monitoring period.
snmp cpu threshold rising threshold_value monitoring_period
Example:
ciscoasa(config)# snmp cpu threshold rising 75% 30 minutes
To clear the threshold value and monitoring period of the CPU utilization, use the no form of this
command. If the snmp cpu threshold rising command is not configured, the default for the high
threshold level is over 70 percent, and the default for the critical threshold level is over 95 percent. The
default monitoring period is set to 1 minute.
You cannot configure the critical CPU threshold level, which is maintained at a constant 95 percent.
Valid threshold values for a high CPU threshold range from 10 to 94 percent. Valid values for the
monitoring period range from 1 to 60 minutes.
Procedure
Example:
ciscoasa(config)# snmp interface threshold 75%
To clear the threshold value for an SNMP physical interface, use the no form of this command. The
threshold value is defined as a percentage of interface bandwidth utilization. Valid threshold values
range from 30 to 99 percent. The default value is 70 percent.
The snmp interface threshold command is available only in the admin context.
Physical interface usage is monitored in single mode and multimode, and traps for physical interfaces in
the system context are sent through the admin context. Only physical interfaces are used to compute
threshold usage.
Note This command is not supported on the ASA Services Module for Catalyst 6500 switches/7600
routers.
Procedure
Step 1 Specify the recipient of an SNMP notification, indicate the interface from which traps are sent, and
identify the name and IP address of the NMS or SNMP manager that can connect to the ASA.
snmp-server host {interface hostname | ip_address} [trap | poll] [community
community-string] [version {1 | 2c username}] [udp-port port]
Example:
ciscoasa(config)# snmp-server host mgmt 10.7.14.90 version 2
The trap keyword limits the NMS to receiving traps only. The poll keyword limits the NMS to sending
requests (polling) only. By default, SNMP traps are enabled. By default, the UDP port is 162. The
community string is a shared secret key between the ASA, ASAv, or ASASM and the NMS. The key is
a case-sensitive value up to 32 alphanumeric characters long. Spaces are not permitted. The default
community string is public. The ASA uses this key to determine whether or not the incoming SNMP
request is valid. For example, you could designate a site with a community string and then configure the
ASA and the management station with the same string. The ASA, ASAv, and ASASM use the specified
string and do not respond to requests with an invalid community string. After you have used an encrypted
community string, only the encrypted form is visible to all systems (for example, CLI, ASDM, CSM,
and so on). The clear text password is not visible. The encrypted community string is always generated
by the ASA; you normally enter the clear text form.
Note If you downgrade from version 8.3(1) to a lower version of the ASA software and have
configured encrypted passwords, you must first revert the encrypted passwords to clear text
using the no key config-key password encryption command, then save the results.
To receive traps after you have added the snmp-server host command, make sure that you configure the
user on the NMS with the same credentials as the credentials configured on the ASA, ASAv, and
ASASM.
Step 2 Set the community string, which is for use only with SNMP Version 1 or 2c.
snmp-server community community-string
Example:
ciscoasa(config)# snmp-server community onceuponatime
Example:
ciscoasa(config)# snmp-server location building 42
The text argument specifies the name of the contact person or the ASA system administrator. The name
is case sensitive and can be up to 127 characters. Spaces are accepted, but multiple spaces are shortened
to a single space.
Step 4 Set the listening port for SNMP requests.
snmp-server listen-port lport
Example:
ciscoasa(config)# snmp-server lport 192
The lport argument is the port on which incoming requests are accepted. The default listening port is
161. The snmp-server listen-port command is only available in admin context, and is not available in
the system context. If you configure the snmp-server listen-port command on a port that is currently in
use, the following message appears:
Warning The UDP port port is in use by another feature. SNMP requests to the device will fail until
the snmp-server listen-port command is configured to use a different port.
The existing SNMP thread continues to poll every 60 seconds until the port is available, and issues syslog
message %ASA-1-212001 if the port is still in use.
Procedure
Step 1 Specify a new SNMP group, which is for use only with SNMP Version 3.
snmp-server group group-name v3 [auth | noauth | priv]
Example:
ciscoasa(config)# snmp-server group testgroup1 v3 auth
When a community string is configured, two additional groups with the name that matches the
community string are autogenerated: one for the Version 1 security model and one for the Version 2
security model. For more information about security models, see Security Models, page 40-19. The auth
keyword enables packet authentication. The noauth keyword indicates no packet authentication or
encryption is being used. The priv keyword enables packet encryption and authentication. No default
values exist for the auth or priv keywords.
Step 2 Configure a new user for an SNMP group, which is for use only with SNMP Version 3.
snmp-server user username group-name {v3 [encrypted]] [auth {md5 | sha]} auth-password
[priv] [des | 3des | aes] [128 | 192 | 256] priv-password
Example:
ciscoasa(config)# snmp-server user testuser1 testgroup1 v3 auth md5 testpassword aes 128
mypassword
The username argument is the name of the user on the host that belongs to the SNMP agent. The
group-name argument is the name of the group to which the user belongs. The v3 keyword specifies that
the SNMP Version 3 security model should be used and enables the use of the encrypted, priv, and the
auth keywords. The encrypted keyword specifies the password in encrypted format. Encrypted
passwords must be in hexadecimal format. The auth keyword specifies which authentication level (md5
or sha) should be used. The priv keyword specifies the encryption level. No default values for the auth
or priv keywords, or default passwords exist. For the encryption algorithm, you can specify either the
des, 3des, or aes keyword. You can also specify which version of the AES encryption algorithm to use:
128, 192, or 256. The auth-password argument specifies the authentication user password. The
priv-password argument specifies the encryption user password.
Note If you forget a password, you cannot recover it and you must reconfigure the user. You can
specify a plain-text password or a localized digest. The localized digest must match the
authentication algorithm selected for the user, which can be either MD5 or SHA. When the user
configuration is displayed on the console or is written to a file (for example, the
startup-configuration file), the localized authentication and privacy digests are always displayed
instead of a plain-text password (see the second example). The minimum length for a password
is 1 alphanumeric character; however, we recommend that you use at least 8 alphanumeric
characters for security.
In clustering, you must manually update each clustered ASA with SNMPv3 users. You can do this by
entering the snmp-server user username group-name v3 command on the master unit with the
priv-password option and auth-password option in their non-localized forms.
An error message appears to inform you that the SNMPv3 user commands will not be replicated during
clustering replication or configuration. You may then configure SNMPv3 user and group commands on
slave ASAs independently. This also means that existing SNMPv3 user and group commands are not
cleared during replication, and you may enter SNMPv3 user and group commands on all slaves in the
cluster. For example:
On a master unit using commands entered with keys that have already been localized:
ciscoasa(config)# snmp-server user defe abc v3 encrypted auth sha
c0:e7:08:50:47:eb:2e:e4:3f:a3:bc:45:f6:dd:c3:46:25:a0:22:9a priv aes 256
cf:ad:85:5b:e9:14:26:ae:8f:92:51:12:91:16:a3:ed:de:91:6b:f7:f6:86:cf:18:c0:f0:47:d6:94:e5:
da:01
ERROR: This command cannot be replicated because it contains localized keys.
On a slave unit during cluster replication (appears only if an snmp-server user commands exist in the
configuration):
ciscoasa(cfg-cluster)#
Detected Cluster Master.
Beginning configuration replication from Master.
WARNING: existing snmp-server user CLI will not be cleared.
Step 3 Specify the recipient of an SNMP notification. Indicate the interface from which traps are sent. Identify
the name and IP address of the NMS or SNMP manager that can connect to the ASA.
snmp-server host interface {hostname | ip_address} [trap | poll] [community
community-string] [version {1 | 2c | 3 username}] [udp-port port]
Example:
ciscoasa(config)# snmp-server host mgmt 10.7.14.90 version 3 testuser1
The trap keyword limits the NMS to receiving traps only. The poll keyword limits the NMS to sending
requests (polling) only. By default, SNMP traps are enabled. By default, the UDP port is 162. The
community string is a shared secret key between the ASA and the NMS. The key is a case-sensitive value
up to 32 alphanumeric characters. Spaces are not permitted. The default community-string is public. The
ASA, ASAv, and ASASM use this key to determine whether the incoming SNMP request is valid. For
example, you could designate a site with a community string and then configure the ASA, ASAv, or
ASASM and the NMS with the same string. The ASA, ASAv, and ASASM use the specified string and
do not respond to requests with an invalid community string. After you have used an encrypted
community string, only the encrypted form is visible to all systems (for example, CLI, ASDM, CSM,
and so on). The clear text password is not visible. The encrypted community string is always generated
by the ASA; you normally enter the clear text form.
Note If you downgrade from version 8.3(1) to a lower version of the ASA software and have
configured encrypted passwords, you must first revert the encrypted passwords to clear text
using the no key config-key password encryption command, then save the results.
The version keyword specifies the SNMP trap version. The ASA does not support filtering based on
SNMP requests (polling).
When SNMP Version 3 hosts are configured on the ASA, ASAv, and ASASM, a user must be associated
with that host.
To receive traps after you have added the snmp-server host command, make sure that you configure the
user on the NMS with the same credentials as the credentials configured on the ASA, ASAv, or ASASM.
For more information about SNMP hosts, see SNMP Hosts, page 40-19.
Step 4 Set the SNMP server location or contact information.
snmp-server [contact | location] text
Example:
ciscoasa(config)# snmp-server location building 42
The text argument specifies the name of the contact person or the ASA system administrator. The name
is case sensitive and can be up to 127 characters. Spaces are accepted, but multiple spaces are shortened
to a single space.
Step 5 Set the listening port for SNMP requests.
snmp-server listen-port lport
Example:
ciscoasa(config)# snmp-server lport 192
The lport argument is the port on which incoming requests are accepted. The default listening port is
161. The snmp-server listen-port command is only available in admin context, and is not available in
the system context. If you configure the snmp-server listen-port command on a port that is currently in
use, the following message appears:
Warning The UDP port port is in use by another feature. SNMP requests to the device will fail until
the snmp-server listen-port command is configured to use a different port.
The existing SNMP thread continues to poll every 60 seconds until the port is available, and issues syslog
message %ASA-1-212001 if the port is still in use.
Procedure
Example:
ciscoasa(config)# snmp-server user-list engineering username user1
The listname argument specifies the name of the user list, which may be up to 33 characters long. The
username user_name keyword-argument pair specifies the users who may be configured in the user list.
You configure the users in the user list with the snmp-server user username command, which is
available only if you are using SNMP Version 3. The user list must have more than one user in it and can
be associated with a hostname or a range of IP addresses.
Procedure
Step 1 Associate a single user or a group of users in a user list with a network object.
snmp-server host-group net_obj_name [trap | poll] [community community-string] [version {1
| 2c | 3 {username | user-list list_name}] [udp-port port]
Example:
ciscoasa(config)# snmp-server host-group inside net1 trap community public version 1
The net_obj_name argument specifies the interface network object name with which a user or group of
users is associated. The trap keyword specifies that only traps can be sent, and that this host is not
allowed to browse (poll). The poll keyword specifies that the host is allowed to browse (poll), but no
traps can be sent. The community keyword specifies that a non-default string is required for requests
from the NMS, or when generating traps sent to the NMS. You can use this keyword only for SNMP
Version 1 or 2c. The community-string argument specifies the password-like community string that is
sent with the notification or in a request from the NMS. The community string can have a maximum of
32 characters. The version keyword sets the SNMP notification version to Version 1, 2c, or 3 to use for
sending traps. The username argument specifies the name of the user if you are using SNMP Version 3.
The user-list list_name keyword-argument pair specifies the name of the user list. The udp-port port
keyword-argument pair specifies that SNMP traps must be sent to an NMS host on a non-default port
and sets the UDP port number of the NMS host. The default UDP port is 162. The default version is 1.
SNMP traps are enabled by default.
Monitoring SNMP
See the following commands for monitoring SNMP.
• show running-config snmp-server [default]
This command shows all SNMP server configuration information.
• show running-config snmp-server group
This command shows SNMP group configuration settings.
• show running-config snmp-server host
This command shows configuration settings used by SNMP to control messages and notifications
sent to remote hosts.
• show running-config snmp-server host-group
This command shows SNMP host group configurations.
• show running-config snmp-server user
This command shows SNMP user-based configuration settings.
• show running-config snmp-server user-list
This command shows SNMP user list configurations.
• show snmp-server engineid
This command shows the ID of the SNMP engine configured.
• show snmp-server group
This command shows the names of configured SNMP groups. If the community string has already
been configured, two extra groups appear by default in the output. This behavior is normal.
• show snmp-server statistics
This command shows the configured characteristics of the SNMP server. To reset all SNMP counters
to zero, use the clear snmp-server statistics command.
• show snmp-server user
This command shows the configured characteristics of users.
Examples
The following example shows how to display SNMP server statistics:
ciscoasa(config)# show snmp-server statistics
0 SNMP packets input
0 Bad SNMP version errors
0 Unknown community name
0 Illegal operation for community name supplied
0 Encoding errors
0 Number of requested variables
0 Number of altered variables
0 Get-request PDUs
0 Get-next PDUs
0 Get-bulk PDUs
0 Set-request PDUs (Not supported)
0 SNMP packets output
0 Too big errors (Maximum packet size 512)
0 No such name errors
0 Bad values errors
0 General errors
0 Response PDUs
0 Trap PDUs
The following example shows how to display the SNMP server running configuration:
ciscoasa(config)# show running-config snmp-server
no snmp-server location
no snmp-server contact
snmp-server enable traps snmp authentication linkup linkdown coldstart
SNMP Version 3
The following example shows how the ASA can receive SNMP requests using the SNMP Version 3
security model, which requires that the configuration follow this specific order: group, followed by user,
followed by host:
ciscoasa(config)# snmp-server group v3 vpn-group priv
ciscoasa(config)# snmp-server user admin vpn group v3 auth sha letmein priv 3des cisco123
ciscoasa(config)# snmp-server host mgmt 10.0.0.1 version 3 priv admin
Platform
Feature Name Releases Description
SNMP Versions 1 7.0(1) Provides ASA, ASAv, and ASASM network monitoring and event information by
and 2c transmitting data between the SNMP server and SNMP agent through the clear text
community string.
SNMP Version 3 8.2(1) Provides 3DES or AES encryption and support for SNMP Version 3, the most secure
form of the supported security models. This version allows you to configure users,
groups, and hosts, as well as authentication characteristics by using the USM. In
addition, this version allows access control to the agent and MIB objects and includes
additional MIB support.
We introduced or modified the following commands: show snmp-server engineid,
show snmp-server group, show snmp-server user, snmp-server group,
snmp-server user, snmp-server host.
Platform
Feature Name Releases Description
ASA Services 8.5(1) The ASASM supports all MIBs and traps that are present in 8.4(1), except for the
Module (ASASM) following:
Unsupported MIBs in 8.5(1):
• CISCO-ENTITY-SENSOR-EXT-MIB (Only objects under the
entPhySensorTable group are supported).
• ENTITY-SENSOR-MIB (Only objects in the entPhySensorTable group are
supported).
• DISMAN-EXPRESSION-MIB (Only objects in the expExpressionTable,
expObjectTable, and expValueTable groups are supported).
Unsupported traps in 8.5(1):
• ceSensorExtThresholdNotification (CISCO-ENTITY-SENSOR-EXT-MIB).
This trap is only used for power supply failure, fan failure, and high CPU
temperature events.
• InterfacesBandwidthUtilization.
SNMP traps 8.6(1) Supports the following additional keywords for the ASA 5512-X, 5515-X, 5525-X,
5545-X, and 5555-X: entity power-supply-presence, entity power-supply-failure,
entity chassis-temperature, entity chassis-fan-failure, entity
power-supply-temperature.
We modified the following command: snmp-server enable traps.
VPN-related MIBs 9.0(1) An updated version of the CISCO-IPSEC-FLOW-MONITOR-MIB.my MIB has been
implemented to support the next generation encryption feature.
The following MIBs have been enabled for the ASASM:
• ALTIGA-GLOBAL-REG.my
• ALTIGA-LBSSF-STATS-MIB.my
• ALTIGA-MIB.my
• ALTIGA-SSL-STATS-MIB.my
• CISCO-IPSEC-FLOW-MONITOR-MIB.my
• CISCO-REMOTE-ACCESS-MONITOR-MIB.my
Cisco TrustSec MIB 9.0(1) Support for the following MIB was added: CISCO-TRUSTSEC-SXP-MIB.
SNMP OIDs 9.1(1) Five new SNMP Physical Vendor Type OIDs have been added to support the ASA
5512-X, 5515-X, 5525-X, 5545-X, and 5555-X.
NAT MIB 9.1(2) Added the cnatAddrBindNumberOfEntries and cnatAddrBindSessionCount OIDs to
support the xlate_count and max_xlate_count entries, which are the equivalent to
allowing polling using the show xlate count command.
Platform
Feature Name Releases Description
SNMP hosts, host 9.1(5) You can now add up to 4000 hosts. The number of supported active polling
groups, and user lists destinations is 128. You can specify a network object to indicate the individual hosts
that you want to add as a host group. You can associate more than one user with one
host.
We introduced or modified the following commands: snmp-server host-group,
snmp-server user-list, show running-config snmp-server, clear configure
snmp-server.
SNMP message size 9.2(1) The limit on the message size that SNMP sends has been increased to 1472 bytes.
SNMP OIDs and The ASA now supports the cpmCPUTotal5minRev OID.
MIBs
The ASAv has been added as a new product to the SNMP sysObjectID OID and
entPhysicalVendorType OID.
The CISCO-PRODUCTS-MIB and CISCO-ENTITY-VENDORTYPE-OID-MIB
have been updated to support the new ASAv platform.
A new SNMP MIB for monitoring VPN shared license usage has been added.
SNMP OIDs and 9.3(1) CISCO-REMOTE-ACCESS-MONITOR-MIB (OID 1.3.6.1.4.1.9.9.392) support has
MIBs been added for the ASASM.
SNMP MIBs and 9.3(2) The CISCO-PRODUCTS-MIB and CISCO-ENTITY-VENDORTYPE-OID-MIB
traps have been updated to support the ASA 5506-X.
The ASA 5506-X has been added as new products to the SNMP sysObjectID OID
and entPhysicalVendorType OID tables.
The ASA now supports the CISCO-CONFIG-MAN-MIB, which enables you to do
the following:
• Know which commands have been entered for a specific configuration.
• Notify the NMS when a change has occurred in the running configuration.
• Track the time stamps associated with the last time that the running configuration
was changed or saved.
• Track other changes to commands, such as terminal details and command
sources.
We modified the following command: snmp-server enable traps.
This chapter describes how to configure the Anonymous Reporting and Smart Call Home services.
• About Anonymous Reporting, page 41-1
• About Smart Call Home, page 41-2
• Guidelines for Anonymous Reporting and Smart Call Home, page 41-7
• Configure Anonymous Reporting and Smart Call Home, page 41-8
• Monitoring Anonymous Reporting and Smart Call Home, page 41-18
• Examples for Smart Call Home, page 41-19
• History for Anonymous Reporting and Smart Call Home, page 41-20
Note When you enable Anonymous Reporting, you acknowledge your consent to transfer the specified data
to Cisco or to vendors operating on Cisco’s behalf (including countries outside of the U.S.).
Cisco maintains the privacy of all customers. For information about Cisco’s treatment of personal
information, see the Cisco Privacy Statement at the following URL:
http://www.cisco.com/web/siteassets/legal/privacy.html
DNS Requirement
A DNS server must be configured correctly for the ASA to reach the Cisco Smart Call Home server and
send messages to Cisco. Because it is possible that the ASA resides in a private network and does not
have access to the public network, Cisco verifies your DNS configuration and then configures it for you,
if necessary, by doing the following:
1. Performing a DNS lookup for all DNS servers configured.
2. Getting the DNS server from the DHCP server by sending DHCPINFORM messages on the highest
security-level interface.
3. Using the Cisco DNS servers for lookup.
4. Randomly using a static IP addresses for tools.cisco.com.
These tasks are performed without changing the current configuration. (For example, the DNS server
that was learned from DHCP will not be added to the configuration.)
If there is no DNS server configured, and the ASA cannot reach the Cisco Smart Call Home Server,
Cisco generates a syslog message with the warning severity level for each Smart Call Home message
that is sent to remind you to configure DNS correctly.
See the syslog messages guide for information about syslog messages.
• show failover state—Displays the failover state of both units in a failover pair. The information
displayed includes the primary or secondary status of the unit, the Active/Standby status of the unit,
and the last reported reason for failover.
• show module—Shows information about any modules installed on the ASAs, for example,
information about an SSP installed on the ASA 5585-X, and information about an IPS SSP installed
on an ASA 5585-X.
• show environment—Shows system environment information for ASA system components, such as
hardware operational status for the chassis, drivers, fans, and power supplies, as well as temperature
status, voltage, and CPU usage.
Configuration alerts consist of output from the following commands:
• show context—Shows allocated interfaces and the configuration file URL, the number of contexts
configured, or if you enable Anonymous Reporting in the system execution space, from a list of all
contexts.
• show call-home registered-module status—Shows the registered module status. If you use system
configuration mode, the command displays system module status based on the entire device, not per
context.
• show running-config—Shows the configuration that is currently running on the ASA.
• show startup-config—Show the startup configuration.
• show access-list | include elements—Shows the hit counters and a time stamp value for an access
list.
Diagnostic alerts consist of output from the following commands:
• show failover—Displays information about the failover status of the unit.
• show interface—Displays interface statistics.
• show cluster info—Displays cluster information.
• show cluster history—Displays the cluster history.
• show crashinfo (truncated)—After an unexpected software reload, the device sends a modified
crash information file with only the traceback section of the file included, so only function calls,
register values, and stack dumps are reported to Cisco.
• show tech-support no-config—Displays the information that is used for diagnosis by technical
support analysts.
Environment alerts consist of output from the following commands:
• show environment—Shows system environment information for ASA system components, such as
hardware operational status for the chassis, drivers, fans, and power supplies, as well as temperature
status, voltage, and CPU usage.
• show cpu usage—Displays CPU usage information.
• show memory detail—Displays details of the free and allocated system memory.
Threat alerts consist of output from the following commands:
• show threat-detection rate—Displays threat detection statistics.
• show threat-detection shun—Displays currently shunned hosts.
• show shun—Displays shun information.
• show dynamic-filter reports top—Generates reports of the top 10 malware sites, ports, and
infected hosts classified by the Botnet Traffic Filter.
Message Syslog
Level Severity Level Severity Level Description
9 Catastrophic N/A Network-wide catastrophic failure.
8 Disaster N/A Significant network impact.
Table 41-1 Message Severity Level and Syslog Level Mapping (continued)
Message Syslog
Level Severity Level Severity Level Description
7 Determined by the 0 Emergency. System is unusable.
specified CLI
keyword:
subscribe-to-alert-
group name of alert
group severity
severity level
6 Determined by the 1 Alert. Critical conditions; immediate attention needed.
specified CLI
keyword:
subscribe-to-alert-
group name of alert
group severity
severity level
5 Determined by the 2 Critical. Major conditions.
specified CLI
keyword:
subscribe-to-alert-
group name of alert
group severity
severity level
4 Determined by the 3 Error. Minor conditions.
specified CLI
keyword:
subscribe-to-alert-
group name of alert
group severity
severity level
3 Warning 4 Warning conditions.
2 Notification 5 Basic notification and informational messages. Possibly
independently insignificant.
1 Normal 6 Information. Normal event, signifying a return to normal
state.
0 Debugging 7 Debugging messages (default setting).
Subscription Profiles
A subscription profile allows you to associate the destination recipients with interested groups. When an
event registered with a subscribed group in a profile is triggered, the message associated with the event
is sent to the configured recipients. Subscription profiles have the following attributes:
• You can create and configure multiple profiles.
• A profile may configure multiple e-mail or HTTPS recipients.
• A profile may subscribe multiple groups to a specified severity level.
• A profile supports three message formats: short text, long text, and XML.
• You can enable and disable a specific profile. Profiles are disabled by default.
• You can specify the maximum message size. The default is 3 MB.
A default profile, “Cisco TAC,” has been provided. The default profile has a predefined set of groups
(diagnostic, environment, inventory, configuration, and telemetry) to monitor and predefined destination
e-mail and HTTPS URLs. The default profile is created automatically when you initially configure
Smart Call Home. The destination e-mail is [email protected] and the destination URL is
https://tools.cisco.com/its/service/oddce/services/DDCEService.
Note You cannot change the destination e-mail or the destination URL of the default profile.
When you subscribe a destination profile to the configuration, inventory, telemetry, or snapshot alert
groups, you can choose to receive the alert group messages asynchronously or periodically at a specified
time.
Table 41-2 maps the default alert group to its severity level subscription and period (if applicable):
• If you are using a multiple context mode configuration, the dns, interface, and trustpoint
commands are in the admin context, and the call-home commands are in the system context.
Related Topics
• DNS Requirement, page 41-2
• Configure the DNS Server, page 14-14
Procedure
Step 1 Enable the Anonymous Reporting feature and create a new anonymous profile.
call-home reporting anonymous
Example:
ciscoasa(config)# call-home reporting anonymous
Entering this command creates a trust point and installs a certificate that is used to verify the identity of
the Cisco web server.
Step 2 (Optional) Make sure that you have connectivity to the server and that your system can send messages.
call-home test reporting anonymous
Example:
ciscoasa(config)# call-home test reporting anonymous
Step 1 Enable the Smart Call Home service. See Enable Smart Call Home, page 41-10.
Step 2 Configure the mail server through which Smart Call Home messages are delivered to subscribers. See
Configure the Mail Server, page 41-14.
Step 3 Set up contact information for the Smart Call Home messages. See Configure Customer Contact
Information, page 41-13.
Step 4 Define alert processing parameters, such as the maximum rate of events that can be handled. See
Configure Alert Group Subscription, page 41-12.
Step 5 Set up alert subscription profiles. See Configure a Destination Profile, page 41-16.
Each alert subscription profile identifies the following:
• The subscribers to whom the Smart Call Home messages are sent, such as a Smart Call Home server
at Cisco or a list of e-mail recipients.
• Information categories for which you want to receive alerts, such as configuration or inventory
information.
Procedure
Example:
ciscoasa(config)# service call-home
Example:
ciscoasa(config)# call home
Note You should set the trust point for no client-types/no validation-usage to prevent it from being used for
VPN validation.
To declare and authenticate the Cisco server security certificate and establish communication with the
Cisco HTTPS server for Smart Call Home service, perform the following steps:
Procedure
Step 1 (Multiple Context Mode only) Install the certificate in the admin context.
changeto context admincontext
Example:
ciscoasa(config)# changeto context contextA
Example:
ciscoasa(config)# crypto ca trustpoint cisco
Note If you use HTTP as the transport method, you must install a security certificate through a trust
point, which is required for HTTPS. Find the specific certificate to install at the following URL:
http://www.cisco.com/en/US/docs/switches/lan/smart_call_home/SCH31_Ch6.html#wp10353
80
Example:
ciscoasa(ca-trustpoint)# enroll terminal
Step 4 Authenticate the named CA. The CA name should match the trust point name specified in the crypto ca
trustpoint command. At the prompt, paste the security certificate text.
crypto ca authenticate trustpoint
Example:
ciscoasa(ca-trustpoint)# crypto ca authenticate cisco
Step 5 Specify the end of the security certificate text and confirm acceptance of the entered security certificate.
quit
Example:
ciscoasa(ca-trustpoint)# quit
yes
Procedure
Example:
ciscoasa(config)# alert-group-config environment
Procedure
Example:
ciscoasa(config)# call-home
Example:
ciscoasa(cfg-call-home)# alert-group syslog
Use the all keyword to enable all alert groups. By default, all alert groups are enabled.
Step 3 Enter the profile configuration mode for the specified destination profile.
profile profile-name
Example:
ciscoasa(cfg-call-home)# profile CiscoTAC-1
Example:
ciscoasa(cfg-call-home-profile)# subscribe-to-alert-group all
Example:
ciscoasa(cfg-call-home-profile)# subscribe-to-alert-group configuration periodic weekly
Wednesday 23:30
The periodic keyword configures the configuration alert group for periodic notification. The default
period is daily.
The daily keyword specifies the time of the day to send, in the hh:mm format, with a 24-hour clock (for
example, 14:30).
The weekly keyword specifies the day of the week and time of day in the day hh:mm format, where the
day of the week is spelled out (for example, Monday).
The monthly keyword specifies the numeric date, from 1 to 31, and the time of day, in the date hh:mm
format.
Procedure
Example:
ciscoasa(config)# call-home
Step 2 Specify the customer phone number. Spaces are allowed, but you must use quotes around the string if it
includes spaces.
phone-number phone-number-string
Example:
ciscoasa(cfg-call-home)# phone-number 8005551122
Step 3 Specify the customer address, which is a free-format string that may be up to 255 characters long. Spaces
are allowed, but you must use quotes around the string if it includes spaces.
street-address street-address
Example:
ciscoasa(cfg-call-home)# street-address “1234 Any Street, Any city, Any state, 12345”
Step 4 Specify the customer name, which may be up to 128 characters long. Spaces are allowed, but you must
use quotes around the string if it includes spaces.
contact-name contact-name
Example:
ciscoasa(cfg-call-home)# contact-name contactname1234
Step 5 Specify the Cisco customer ID, which may be up to 64 characters long. Spaces are allowed, but you must
use quotes around the string if it includes spaces.
customer-id customer-id-string
Example:
ciscoasa(cfg-call-home)# customer-id customer1234
Step 6 Specify the customer site ID, which may be up to 64 characters long. Spaces are allowed, but you must
use quotes around the string if it includes spaces.
site-id site-id-string
Example:
ciscoasa(cfg-call-home)# site-id site1234
Step 7 Specify the customer contract identification, which may be up to 128 characters long. Spaces are
allowed, but you must use quotes around the string if it includes spaces.
contract-id contract-id-string
Example:
ciscoasa(cfg-call-home)# contract-id contract1234
Examples
The following example shows how to configure contact information:
ciscoasa(config)# call-home
ciscoasa(cfg-call-home)# contact-email-addr [email protected]
ciscoasa(cfg-call-home)# phone-number 8005551122
ciscoasa(cfg-call-home)# street-address “1234 Any Street, Any city, Any state, 12345”
ciscoasa(cfg-call-home)# contact-name contactname1234
ciscoasa(cfg-call-home)# customer-id customer1234
ciscoasa(cfg-call-home)# site-id site1234
ciscoasa(cfg-call-home)# contract-id contract1234
Procedure
Example:
ciscoasa(config)# call-home
Example:
ciscoasa(cfg-call-home)# mail-server 10.10.1.1 smtp.example.com priority 1
You can specify up to five mail servers, using five separate commands. You must configure at least one
mail server for using e-mail transport of Smart Call Home messages.
The lower the number, the higher the priority of the mail server.
The ip-address argument can be an IPv4 or IPv6 mail server address.
Examples
The following example shows how to configure a primary mail server (named”smtp.example.com”) and
a secondary mail server at IP address 10.10.1.1:
ciscoasa(config)# call-home
ciscoasa(cfg-call-home)# mail-server smtp.example.com priority 1
ciscoasa(cfg-call-home)# mail-server 10.10.1.1 priority 2
ciscoasa(cfg-call-home)# exit
ciscoasa(config)#
Procedure
Example:
ciscoasa(config)# call-home
Step 2 Specify the number of messages that Smart Call Home can send per minute. The default value is 10
messages per minute.
rate-limit msg-count
ciscoasa(cfg-call-home)# rate-limit 5
Procedure
Example:
ciscoasa# call-home test [testing123] profile CiscoTAC-1
Procedure
Step 1 Send an alert group message to one destination profile, if specified. If no profile is specified, send
messages to all profiles that are subscribed to the inventory, configuration, snapshot, or telemetry alert
groups.
call-home send alert-group {inventory | configuration | snapshot | telemetry} [profile
profile-name]
Example:
To issue a CLI command and e-mail the command output to Cisco TAC or to an e-mail address that you
specify, perform the following steps:
Procedure
Step 1 Send command output to an e-mail address. The specified CLI command can be any command, including
commands for all registered modules.
call-home send cli command [email email]
Example:
ciscoasa# call-home send cli destination email [email protected]
If you specify an e-mail address, the command output is sent to that address. If no e-mail address is
specified, the output is sent to Cisco TAC. The e-mail is sent in log text format with the service number,
if specified, in the subject line.
The service number is required only if no e-mail address is specified, or if a Cisco TAC e-mail address
is specified.
Procedure
Example:
ciscoasa(config)# call-home
Step 2 Enter the profile configuration mode for the specified destination profile. If the specified destination
profile does not exist, it is created.
profile profile-name
Example:
ciscoasa(cfg-call-home)# profile newprofile
You can create a maximum of 10 active profiles. The default profile is to report back to Cisco TAC. If
you want to send call home information to a different location (for example, your own server), you can
configure a separate profile.
Step 3 Configure the destination, message size, message format, and transport method for the Smart Call Home
message receiver. The default message format is XML, and the default enabled transport method is
e-mail.
Example:
ciscoasa(cfg-call-home-profile)# destination address email [email protected]
The e-mail-address is the e-mail address of the Smart Call Home message receiver, which can be up to
100 characters long. By default, the maximum URL size is 5 MB.
Use the short-text format to send and read a message on a mobile device, and use the long text format to
send and read a message on a computer.
If the message receiver is the Smart Call Home back-end server, ensure that the preferred-msg-format
value is XML because the back-end server can accept messages in XML format only.
See Enable Smart Call Home, page 41-10 to set the transport method to HTTP. Use this command to
change the transport method back to e-mail.
Procedure
Example:
ciscoasa(config)# call-home
Example:
ciscoasa(cfg-call-home)# profile newprofile
Example:
ciscoasa(cfg-call-home)# copy profile newprofile profile1
The existing profile (src-profile-name) and the new profile (dest-profile-name) may be up to 23
characters long.
Examples
The following example shows how to copy an existing profile:
ciscoasa(config)# call-home
Procedure
Example:
ciscoasa(config)# call-home
Example:
ciscoasa(cfg-call-home)# profile newprofile
Example:
ciscoasa(cfg-call-home)# rename profile newprofile profile1
The existing profile (src-profile-name) and the new profile (dest-profile-name) may be up to 23
characters long.
Examples
The following example shows how to rename an existing profile:
ciscoasa(config)# call-home
ciscoasa(cfg-call-home)# profile newprofile
ciscoasa(cfg-call-home-profile)# rename profile newprofile profile1
Platform
Feature Name Releases Description
Smart Call Home 8.2(2) The Smart Call Home service offers proactive diagnostics
and real-time alerts on the ASA, and provides higher
network availability and increased operational efficiency.
We introduced or modified the following commands:
active (call home), call-home, call-home send
alert-group, call-home test, contact-email-addr,
customer-id (call home), destination (call home), profile,
rename profile, service call-home, show call-home, show
call-home detail, show smart-call-home alert-group,
show call-home profile, show call-home statistics, show
call-home mail-server status, show running-config
call-home, show call-home registered-module status all,
site-id, street-address, subscribe-to-alert-group all,
alert-group-config, subscribe-to-alert-group
configuration, subscribe-to-alert-group diagnostic,
subscribe-to-alert-group environment,
subscribe-to-alert-group inventory periodic,
subscribe-to-alert-group snapshot periodic,
subscribe-to-alert-group syslog,
subscribe-to-alert-group telemetry periodic.
Anonymous Reporting 9.0(1) You can help to improve the ASA platform by enabling
Anonymous Reporting, which allows Cisco to securely
receive minimal error and health information from a device.
We introduced the following commands: call-home
reporting anonymous, call-home test reporting
anonymous.
Table 41-3 History for Anonymous Reporting and Smart Call Home (continued)
Platform
Feature Name Releases Description
Smart Call Home 9.1(2) The show local-host command was changed to the show
local-host | include interface command for telemetry alert
group reporting.
Smart Call Home 9.1(3) A Smart Call Home message is sent to Cisco to report
important cluster events if you have enabled clustering and
configured Smart Call Home to subscribe to the Diagnostic
alert group with a Critical severity level. A Smart Call
Home clustering message is sent for only the following
three events:
• When a unit joins the cluster
• When a unit leaves the cluster
• When a cluster unit becomes the cluster master
Each message that is sent includes the following
information:
• The active cluster member count
• The output of the show cluster info command and the
show cluster history command on the cluster master
Reference
CH AP TE R 42
Using the Command-Line Interface
This chapter describes how to use the CLI on the Cisco ASA.
• Firewall Mode and Security Context Mode, page 42-1
• Command Modes and Prompts, page 42-2
• Syntax Formatting, page 42-3
• Abbreviate Commands, page 42-3
• Command-Line Editing, page 42-3
• Command Completion, page 42-4
• Command Help, page 42-4
• View the Running Configuration, page 42-4
• Filter show and more Command Output, page 42-5
• Command Output Paging, page 42-5
• Add Comments, page 42-6
• Text Configuration Files, page 42-6
• Supported Character Sets, page 42-8
Note The CLI uses similar syntax and other conventions to the Cisco IOS CLI, but the ASA operating system
is not a version of Cisco IOS software. Do not assume that a Cisco IOS CLI command works with or has
the same function on the ASA.
Note The various types of prompts are all default prompts and when configured, they can be different.
• When you are in the system configuration or in single context mode, the prompt begins with the
hostname:
ciscoasa
• When printing the prompt string, the prompt configuration is parsed and the configured keyword
values are printed in the order in which you have set the prompt command. The keyword arguments
can be any of the following and in any order: hostname, domain, context, priority, state.
asa(config)# prompt hostname context priority state
• When you are within a context, the prompt begins with the hostname followed by the context name:
ciscoasa/context
ciscoasa/context>
ciscoasa/context#
ciscoasa/context(config)#
From global configuration mode, some commands enter a command-specific configuration mode.
All user EXEC, privileged EXEC, global configuration, and command-specific configuration
commands are available in this mode. For example, the interface command enters interface
configuration mode. The prompt changes to the following:
ciscoasa(config-if)#
ciscoasa/context(config-if)#
Syntax Formatting
Command syntax descriptions use the conventions listed in Table 42-1.
Convention Description
bold Bold text indicates commands and keywords that you enter literally as shown.
italics Italic text indicates arguments for which you supply values.
[x] Square brackets enclose an optional element (keyword or argument).
| A vertical bar indicates a choice within an optional or required set of keywords or
arguments.
[x | y] Square brackets enclosing keywords or arguments separated by a vertical bar indicate
an optional choice.
{x | y} Braces enclosing keywords or arguments separated by a vertical bar indicate a required
choice.
[x {y | z}] Nested sets of square brackets or braces indicate optional or required choices within
optional or required elements. Braces and a vertical bar within square brackets indicate
a required choice within an optional element.
Abbreviate Commands
You can abbreviate most commands down to the fewest unique characters for a command; for example,
you can enter wr t to view the configuration instead of entering the full command write terminal, or
you can enter en to start privileged mode and conf t to start configuration mode. In addition, you can
enter 0 to represent 0.0.0.0.
Command-Line Editing
The ASA uses the same command-line editing conventions as Cisco IOS software. You can view all
previously entered commands with the show history command or individually with the up arrow or ^p
command. Once you have examined a previously entered command, you can move forward in the list
with the down arrow or ^n command. When you reach a command you wish to reuse, you can edit it or
press the Enter key to start it. You can also delete the word to the left of the cursor with ^w, or erase the
line with ^u.
The ASA permits up to 512 characters in a command; additional characters are ignored.
Command Completion
To complete a command or keyword after entering a partial string, press the Tab key. The ASA only
completes the command or keyword if the partial string matches only one command or keyword. For
example, if you enter s and press the Tab key, the ASA does not complete the command because it
matches more than one command. However, if you enter dis, the Tab key completes the disable
command.
Command Help
Help information is available from the command line by entering the following commands:
• help command_name
Shows help for the specific command.
• command_name ?
Shows a list of arguments available.
• string? (no space)
Lists the possible commands that start with the string.
• ? and +?
Lists all commands available. If you enter ?, the ASA shows only commands available for the
current mode. To show all commands available, including those for lower modes, enter +?.
Note If you want to include a question mark (?) in a command string, you must press Ctrl-V before typing the
question mark so that you do not inadvertently invoke CLI help.
Note Many passwords are shown as *****. To view the passwords in plain text, or in encrypted
form if you have a master passphrase enabled, use the more command.
• more system:running-config
Related Topics
Configure the Master Passphrase, page 14-10
or
ciscoasa# more system:running-config | {include | exclude | begin | grep [-v]} regexp
Note Entering the more command allows you to view the contents of any file, not just the running
configuration; see the command reference for more information.
In this command string, the first vertical bar (|) is the operator and must be included in the command.
This operator directs the output of the show command to the filter. In the syntax diagram, the other
vertical bars (|) indicate alternative options and are not part of the command.
The include option includes all output lines that match the regular expression. The grep option without
-v has the same effect. The exclude option excludes all output lines that match the regular expression.
The grep option with -v has the same effect. The begin option shows all the output lines starting with
the line that matches the regular expression.
Replace regexp with any Cisco IOS regular expression. The regular expression is not enclosed in quotes or
double-quotes, so be careful with trailing white spaces, which will be taken as part of the regular
expression.
When creating regular expressions, you can use any letter or number that you want to match. In addition,
certain keyboard characters called metacharacters have special meaning when used in regular
expressions.
Use Ctrl+V to escape all of the special characters in the CLI, such as a question mark (?) or a tab. For
example, type d[Ctrl+V]?g to enter d?g in the configuration.
The More prompt uses syntax similar to the UNIX more command:
• Press the Space bar to view another screen.
• Press the Enter key to view the next line.
• Press the q key to return to the command line.
Add Comments
You can precede a line with a colon ( : ) to create a comment. However, the comment only appears in the
command history buffer and not in the configuration. Therefore, you can view the comment with the
show history command or by pressing an arrow key to retrieve a previous command, but because the
comment is not in the configuration, the write terminal command does not display it.
In the text configuration file you are not prompted to enter commands, so the prompt is omitted:
context a
Line Order
For the most part, commands can be in any order in the file. However, some lines, such as ACEs, are
processed in the order they appear, and the order can affect the function of the access list. Other
commands might also have order requirements. For example, you must enter the nameif command for
an interface first because many subsequent commands use the name of the interface. Also, commands in
a command-specific configuration mode must directly follow the main command.
Passwords
The login, enable, and user passwords are automatically encrypted before they are stored in the
configuration. For example, the encrypted form of the password “cisco” might look like
jMorNbK0514fadBh. You can copy the configuration passwords to another ASA in its encrypted form,
but you cannot unencrypt the passwords yourself.
If you enter an unencrypted password in a text file, the ASA does not automatically encrypt it when you
copy the configuration to the ASA. The ASA only encrypts it when you save the running configuration
from the command line using the copy running-config startup-config or write memory command.
This chapter provides a quick reference for IP addresses, protocols, and applications.
• IPv4 Addresses and Subnet Masks, page 43-1
• IPv6 Addresses, page 43-5
• Protocols and Applications, page 43-10
• TCP and UDP Ports, page 43-11
• Local Ports and Protocols, page 43-14
• ICMP Types, page 43-15
Classes
IP host addresses are divided into three different address classes: Class A, Class B, and Class C. Each
class fixes the boundary between the network prefix and the host number at a different point within the
32-bit address. Class D addresses are reserved for multicast IP.
• Class A addresses (1.xxx.xxx.xxx through 126.xxx.xxx.xxx) use only the first octet as the network
prefix.
• Class B addresses (128.0.xxx.xxx through 191.255.xxx.xxx) use the first two octets as the network
prefix.
• Class C addresses (192.0.0.xxx through 223.255.255.xxx) use the first three octets as the network
prefix.
Because Class A addresses have 16,777,214 host addresses, and Class B addresses 65,534 hosts, you can
use subnet masking to break these huge networks into smaller subnets.
Private Networks
If you need large numbers of addresses on your network, and they do not need to be routed on the
Internet, you can use private IP addresses that the Internet Assigned Numbers Authority (IANA)
recommends (see RFC 1918). The following address ranges are designated as private networks that
should not be advertised:
• 10.0.0.0 through 10.255.255.255
• 172.16.0.0 through 172.31.255.255
• 192.168.0.0 through 192.168.255.255
Subnet Masks
A subnet mask lets you convert a single Class A, B, or C network into multiple networks. With a subnet
mask, you can create an extended network prefix that adds bits from the host number to the network
prefix. For example, a Class C network prefix always consists of the first three octets of the IP address.
But a Class C extended network prefix uses part of the fourth octet as well.
Subnet masking is easy to understand if you use binary notation instead of dotted decimal. The bits in
the subnet mask have a one-to-one correspondence with the Internet address:
• The bits are set to 1 if the corresponding bit in the IP address is part of the extended network prefix.
• The bits are set to 0 if the bit is part of the host number.
Example 1: If you have the Class B address 129.10.0.0 and you want to use the entire third octet as part
of the extended network prefix instead of the host number, then you must specify a subnet mask of
11111111.11111111.11111111.00000000. This subnet mask converts the Class B address into the
equivalent of a Class C address, where the host number consists of the last octet only.
Example 2: If you want to use only part of the third octet for the extended network prefix, then you must
specify a subnet mask like 11111111.11111111.11111000.00000000, which uses only 5 bits of the third
octet for the extended network prefix.
You can write a subnet mask as a dotted-decimal mask or as a /bits (“slash bits”) mask. In Example 1,
for a dotted-decimal mask, you convert each binary octet into a decimal number: 255.255.255.0. For a
/bits mask, you add the number of 1s: /24. In Example 2, the decimal number is 255.255.248.0 and the
/bits is /21.
You can also supernet multiple Class C networks into a larger network by using part of the third octet
for the extended network prefix. For example, 192.168.0.0/20.
Note The first and last number of a subnet are reserved, except for /32, which identifies a single host.
For a network between 2 and 254 hosts, the fourth octet falls on a multiple of the number of host
addresses, starting with 0. For example, Table 43-2 shows the 8-host subnets (/29) of 192.168.0.x.
Note The first and last address of a subnet are reserved. In the first subnet example, you cannot use
192.168.0.0 or 192.168.0.7.
To determine the network address to use with the subnet mask for a network with between 254 and
65,534 hosts, you need to determine the value of the third octet for each possible extended network
prefix. For example, you might want to subnet an address like 10.1.x.0, where the first two octets are
fixed because they are used in the extended network prefix, and the fourth octet is 0 because all bits are
used for the host number.
To determine the value of the third octet, follow these steps:
Step 1 Calculate how many subnets you can make from the network by dividing 65,536 (the total number of
addresses using the third and fourth octet) by the number of host addresses you want.
For example, 65,536 divided by 4096 hosts equals 16.
Therefore, there are 16 subnets of 4096 addresses each in a Class B-size network.
Step 2 Determine the multiple of the third octet value by dividing 256 (the number of values for the third octet)
by the number of subnets:
In this example, 256/16 = 16.
The third octet falls on a multiple of16, starting with 0.
Table 43-3 shows the 16 subnets of the network 10.1.
Note The first and last address of a subnet are reserved. In the first subnet example, you cannot use 10.1.0.0
or 10.1.15.255.
IPv6 Addresses
IPv6 is the next generation of the Internet Protocol after IPv4. It provides an expanded address space, a
simplified header format, improved support for extensions and options, flow labeling capability, and
authentication and privacy capabilities. IPv6 is described in RFC 2460. The IPv6 addressing architecture
is described in RFC 3513.
This section describes the IPv6 address format and architecture.
Related Topics
Configuring IPv6 Addressing, page 11-11
You do not need to include the leading zeros in an individual field of the address, but each field must
contain at least one digit. So the example address 2001:0DB8:0000:0000:0008:0800:200C:417A can be
shortened to 2001:0DB8:0:0:8:800:200C:417A by removing the leading zeros from the third through
sixth fields from the left. The fields that contained all zeros (the third and fourth fields from the left)
were shortened to a single zero. The fifth field from the left had the three leading zeros removed, leaving
a single 8 in that field, and the sixth field from the left had the one leading zero removed, leaving 800 in
that field.
It is common for IPv6 addresses to contain several consecutive hexadecimal fields of zeros. You can use
two colons (::) to compress consecutive fields of zeros at the beginning, middle, or end of an IPv6
address (the colons represent the successive hexadecimal fields of zeros). Table 43-4 shows several
examples of address compression for different types of IPv6 address.
Note Two colons (::) can be used only once in an IPv6 address to represent successive fields of zeros.
An alternative form of the IPv6 format is often used when dealing with an environment that contains
both IPv4 and IPv6 addresses. This alternative has the format x:x:x:x:x:x:y.y.y.y, where x represent the
hexadecimal values for the six high-order parts of the IPv6 address and y represent decimal values for
the 32-bit IPv4 part of the address (which takes the place of the remaining two 16-bit parts of the IPv6
address). For example, the IPv4 address 192.168.1.1 could be represented as the IPv6 address
0:0:0:0:0:0:FFFF:192.168.1.1 or ::FFFF:192.168.1.1.
Note There are no broadcast addresses in IPv6. Multicast addresses provide the broadcast functionality.
Unicast Addresses
This section describes IPv6 unicast addresses. Unicast addresses identify an interface on a network node.
Global Address
The general format of an IPv6 global unicast address is a global routing prefix followed by a subnet ID
followed by an interface ID. The global routing prefix can be any prefix not reserved by another IPv6
address type.
All global unicast addresses, other than those that start with binary 000, have a 64-bit interface ID in the
Modified EUI-64 format.
Global unicast address that start with the binary 000 do not have any constraints on the size or structure
of the interface ID portion of the address. One example of this type of address is an IPv6 address with
an embedded IPv4 address.
Related Topics
• IPv6 Address Prefixes, page 43-10
• Interface Identifiers, page 43-8
• IPv4-Compatible IPv6 Addresses, page 43-7
Site-Local Address
Site-local addresses are used for addressing within a site. They can be used to address an entire site
without using a globally unique prefix. Site-local addresses have the prefix FEC0::/10, followed by a
54-bit subnet ID, and end with a 64-bit interface ID in the modified EUI-64 format.
Site-local routers do not forward any packets that have a site-local address for a source or destination
outside of the site. Therefore, site-local addresses can be considered private addresses.
Link-Local Address
All interfaces are required to have at least one link-local address. You can configure multiple IPv6
addresses per interfaces, but only one link-local address.
A link-local address is an IPv6 unicast address that can be automatically configured on any interface
using the link-local prefix FE80::/10 and the interface identifier in modified EUI-64 format. Link-local
addresses are used in the neighbor discovery protocol and the stateless autoconfiguration process. Nodes
with a link-local address can communicate; they do not need a site-local or globally unique address to
communicate.
Routers do not forward any packets that have a link-local address for a source or destination. Therefore,
link-local addresses can be considered private addresses.
There are two types of IPv6 addresses that can contain IPv4 addresses.
The first type is the IPv4-compatibly IPv6 address. The IPv6 transition mechanisms include a technique
for hosts and routers to dynamically tunnel IPv6 packets over IPv4 routing infrastructure. IPv6 nodes
that use this technique are assigned special IPv6 unicast addresses that carry a global IPv4 address in the
low-order 32 bits. This type of address is termed an IPv4-compatible IPv6 address and has the format
::y.y.y.y, where y.y.y.y is an IPv4 unicast address.
Note The IPv4 address used in the IPv4-compatible IPv6 address must be a globally unique IPv4 unicast
address.
The second type of IPv6 address, which holds an embedded IPv4 address, is called the IPv4-mapped
IPv6 address. This address type is used to represent the addresses of IPv4 nodes as IPv6 addresses. This
type of address has the format ::FFFF:y.y.y.y, where y.y.y.y is an IPv4 unicast address.
Unspecified Address
The unspecified address, 0:0:0:0:0:0:0:0, indicates the absence of an IPv6 address. For example, a newly
initialized node on an IPv6 network may use the unspecified address as the source address in its packets
until it receives its IPv6 address.
Note The IPv6 unspecified address cannot be assigned to an interface. The unspecified IPv6 addresses must
not be used as destination addresses in IPv6 packets or the IPv6 routing header.
Loopback Address
The loopback address, 0:0:0:0:0:0:0:1, may be used by a node to send an IPv6 packet to itself. The
loopback address in IPv6 functions the same as the loopback address in IPv4 (127.0.0.1).
Note The IPv6 loopback address cannot be assigned to a physical interface. A packet that has the IPv6
loopback address as its source or destination address must remain within the node that created the packet.
IPv6 routers do not forward packets that have the IPv6 loopback address as their source or destination
address.
Interface Identifiers
Interface identifiers in IPv6 unicast addresses are used to identify the interfaces on a link. They need to
be unique within a subnet prefix. In many cases, the interface identifier is derived from the interface
link-layer address. The same interface identifier may be used on multiple interfaces of a single node, as
long as those interfaces are attached to different subnets.
For all unicast addresses, except those that start with the binary 000, the interface identifier is required
to be 64 bits long and to be constructed in the Modified EUI-64 format. The Modified EUI-64 format is
created from the 48-bit MAC address by inverting the universal/local bit in the address and by inserting
the hexadecimal number FFFE between the upper three bytes and lower three bytes of the of the MAC
address.
For example, and interface with the MAC address of 00E0.b601.3B7A would have a 64-bit interface ID
of 02E0:B6FF:FE01:3B7A.
Multicast Address
An IPv6 multicast address is an identifier for a group of interfaces, typically on different nodes. A packet
sent to a multicast address is delivered to all interfaces identified by the multicast address. An interface
may belong to any number of multicast groups.
An IPv6 multicast address has a prefix of FF00::/8 (1111 1111). The octet following the prefix defines
the type and scope of the multicast address. A permanently assigned (well known) multicast address has
a flag parameter equal to 0; a temporary (transient) multicast address has a flag parameter equal to 1. A
multicast address that has the scope of a node, link, site, or organization, or a global scope has a scope
parameter of 1, 2, 5, 8, or E, respectively. For example, a multicast address with the prefix FF02::/16 is
a permanent multicast address with a link scope. Figure 43-1 shows the format of the IPv6 multicast
address.
128 bits
0 Interface ID
4 bits 4 bits
1111 1111
0 if permanent
F F Flag Scope Flag =
1 if temporary
1 = node
8 bits 8 bits 2 = link
Scope = 4 = admin
5 = site
92617
8 = organization
E = global
IPv6 nodes (hosts and routers) are required to join the following multicast groups:
• The All Nodes multicast addresses:
– FF01:: (interface-local)
– FF02:: (link-local)
• The Solicited-Node Address for each IPv6 unicast and anycast address on the node:
FF02:0:0:0:0:1:FFXX:XXXX/104, where XX:XXXX is the low-order 24-bits of the unicast or
anycast address.
Note There are no broadcast addresses in IPv6. IPv6 multicast addresses are used instead of broadcast
addresses.
Anycast Address
The IPv6 anycast address is a unicast address that is assigned to more than one interface (typically
belonging to different nodes). A packet that is routed to an anycast address is routed to the nearest
interface having that address, the nearness being determined by the routing protocol in effect.
Anycast addresses are allocated from the unicast address space. An anycast address is simply a unicast
address that has been assigned to more than one interface, and the interfaces must be configured to
recognize the address as an anycast address.
The following restrictions apply to anycast addresses:
• An anycast address cannot be used as the source address for an IPv6 packet.
• An anycast address cannot be assigned to an IPv6 host; it can only be assigned to an IPv6 router.
Required Addresses
IPv6 hosts must, at a minimum, be configured with the following addresses (either automatically or
manually):
• A link-local address for each interface
• The loopback address
• The All-Nodes multicast addresses
• A Solicited-Node multicast address for each unicast or anycast address
IPv6 routers must, at a minimum, be configured with the following addresses (either automatically or
manually):
• The required host addresses
• The Subnet-Router anycast addresses for all interfaces for which it is configured to act as a router
• The All-Routers multicast addresses
ICMP Types
Table 43-9 lists the ICMP type numbers and names that you can enter in ASA commands.