Guest

Cisco ASA 5500-X Series Next-Generation Firewalls

Cisco ASA 5500 Migration to Version 8.3 and Later

  • Viewing Options

  • PDF (446.0 KB)
  • Feedback
Cisco ASA 5500 Migration to Version 8.3 and Later

Table Of Contents

Cisco ASA 5500 Migration to Version 8.3 and Later

Upgrading the Software

Information About Migration

Migrated Features

Automatic Backup of the Old Configuration, NAT Migration File, Bootup Error Log

Backup Configuration Files

NAT Migration File

Bootup Error Log File

Saving the Migrated Configuration

Real IP Addresses in Access List Migration

Features That Use Real IP Addresses

Features That Continue to Use Mapped IP Addresses

Real IP Address Migration Naming Conventions

Syslog Message Migration

Sample Real IP Address Migration

Real IP Address Migration Messages and Limitations

Real IP Address Migration Messages

For Interface IP Address in ACE, Real vs. Mapped Status Cannot Be Determined

NAT Migration

Old NAT Commands

New NAT Commands

Supporting Commands for NAT

Preserving the Order of NAT Rules

NAT Migration Guidelines and Limitations

Sample NAT Migration from 8.3 and 8.4 to 8.4(2)

Sample NAT Migration from 8.2 and Earlier

Static NAT/PAT

Dynamic NAT/PAT

NAT Exemption

NAT Control

DNS Rewrite

Connection Settings

Source and Destination NAT

alias Command

NAT Migration Messages

Network and Service Object Migration

Supported Features for Objects

Object Migration

Object Migration Naming Conventions

name Command Naming Conventions

Inline IP Address Naming Conventions

Inline Protocol Naming Conventions

Network Object Naming Conventions with Multiple global Commands with the Same NAT ID

Downgrading from Version 8.3

Information About Activation Key Compatibility

Performing the Downgrade


Cisco ASA 5500 Migration to Version 8.3 and Later


Released: March 8, 2010
Updated: April 3, 2013

This guide describes the configuration migration process when you upgrade from an earlier version of the Cisco ASA 5500 operating system (OS) to Version 8.3 and later.

This guide includes the following sections:

Upgrading the Software

Information About Migration

Real IP Addresses in Access List Migration

NAT Migration

Network and Service Object Migration

Downgrading from Version 8.3

Upgrading the Software

To upgrade the software using the CLI, see the "Managing Software and Configurations" chapter in Cisco ASA 5500 Series Configuration Guide using the CLI:

http://www.cisco.com/en/US/docs/security/asa/asa83/configuration/guide/admin_swconfig.html

To upgrade the software using ASDM, see the "Managing Software and Configurations" chapter in Cisco ASA 5500 Series Configuration Guide using ASDM:

http://www.cisco.com/en/US/docs/security/asa/asa83/asdm63/configuration_guide/admin_swconfig.html

Information About Migration

This section describes the migrated features, automatic backup of the original configuration file, and saving your new migrated configuration. This section includes the following topics:

Migrated Features

Automatic Backup of the Old Configuration, NAT Migration File, Bootup Error Log

Saving the Migrated Configuration

Migrated Features

The major changes in Version 8.3 that require migration are as follows:

Real IP addresses in access lists, where access lists are used in supported features—When using NAT or PAT, you used to have to specify the mapped addresses and ports in an access list for all features that use access lists. Now, for several supported features, you must use the real, untranslated IP address and ports. (Other features continue to use the mapped IP address).

NAT—The NAT feature has been redesigned for increased flexibility and functionality. All NAT and NAT-related commands have been redesigned.

Named Network and Service Objects—Network and service objects are automatically created for NAT.


Note Although you can use named network and service objects in other features, such as access lists and object groups, objects are not automatically created for any feature other than NAT.


When upgrading from 8.3 or 8.4(1) to 8.4(2), migration for static identity NAT will occur to preserve existing functionality. See the "Sample NAT Migration from 8.3 and 8.4 to 8.4(2)" section for more information.

Automatic Backup of the Old Configuration, NAT Migration File, Bootup Error Log

The old startup configuration is automatically saved in flash memory. The NAT migration file and the bootup error log, which includes any migration messages, is automatically saved to flash memory as well.

This section includes the following topics:

Backup Configuration Files

NAT Migration File

Bootup Error Log File

Backup Configuration Files

The following old startup configuration files are saved in flash memory:

Single mode configuration file or multiple mode system configuration—disk0:major_minor_maint_interim_startup_cfg.sav where major_minor_maint_interim is the old OS version number.

For example, 8_2_1_0_startup_cfg.sav.

Multiple mode context configuration (if present in flash memory)—disk0:major_minor_maint_interim_context_cfg.sav where major_minor_maint_interim is the old OS version number and context is the context name.

For example, 8_2_1_0_context1_cfg.sav.

If there is insufficient memory to save configuration files, an error message appears on the console of the ASA and is saved in the bootup error log file; any files saved as part of the migration will be removed, and the migration will be aborted.

NAT Migration File

When your NAT configuration is migrated, and the following file is added to the root directory: nat_ident_migrate. The presence of this empty file indicates that the configuration was migrated, and prevents re-migration at bootup.

Bootup Error Log File

To view the bootup error log, enter the show startup-config errors command. See the following sample log:

hostname# show startup-config errors
Reading from flash...
!
REAL IP MIGRATION: WARNING
In this version access-lists used in 'access-group', 'class-map',
'dynamic-filter classify-list', 'aaa match' will be migrated from
using IP address/ports as seen on interface, to their real values.
If an access-list used by these features is shared with per-user ACL
then the original access-list has to be recreated.
INFO: Note that identical IP addresses or overlapping IP ranges on
different interfaces are not detectable by automated Real IP migration.
If your deployment contains such scenarios, please verify your migrated
configuration is appropriate for those overlapping addresses/ranges.
Please also refer to the ASA 8.3 migration guide for a complete
explanation of the automated migration process.
 
   
INFO: MIGRATION - Saving the startup configuration to file
 
   
INFO: MIGRATION - Startup configuration saved to file 'flash:8_2_1_15_startup_cfg.sav'
*** Output from config line 4, "ASA Version 8.2(1)15 "
NAT migration logs:
INFO: NAT migration completed.
Real IP migration logs:
        ACL <1> has been migrated to real-ip version
 
   

Saving the Migrated Configuration

The migrated configuration is in running memory only; be sure to save the configuration to the startup configuration. If you do not save it, the next time you reload, the original configuration goes through the migration process again.

CLI—Enter the write memory command.

ASDM—Click Save at the top of the window.

Real IP Addresses in Access List Migration

When using NAT or PAT, mapped addresses and ports are no longer required in an access list for several features. You should now always 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 access lists. This section includes the following topics:

Features That Use Real IP Addresses

Features That Continue to Use Mapped IP Addresses

Real IP Address Migration Naming Conventions

Syslog Message Migration

Sample Real IP Address Migration

Real IP Address Migration Messages and Limitations

Features That Use Real IP Addresses

The following commands and features now use real IP addresses in the access lists. All of the access-list commands used for these features are automatically migrated unless otherwise noted. For access lists that use network object groups (the object-group network command), the IP addresses within the object group are migrated to the real IP addresses.

access-group command

Modular Policy Framework match access-list command

Botnet Traffic Filter dynamic-filter enable classify-list command

AAA aaa ... match commands

WCCP wccp redirect-list group-list command


Note The WCCP wccp redirect-list group-list command is not automatically migrated. The WCCP access list is downloaded after startup, so automatic migration cannot occur. You need to manually change the wccp redirect-list group-list command to use an access list with the real IP address.


For example, formerly if you wanted to allow an outside host to access an inside host that used NAT, you applied an inbound access list on the outside interface using the access-group command. In this scenario, you needed to specify the mapped address of the inside host in the access list because that address was the address that can be used on the outside network. Starting in 8.3, you need to specify the real address in the access list.

ASDM

Real IP addresses are now used in the following features instead of mapped addresses:

Access Rules

AAA Rules

Service Policy Rules

Botnet Traffic Filter classification

WCCP redirection


Note WCCP redirection is not automatically migrated. The WCCP ACL is downloaded after startup, so automatic migration cannot occur. You need to manually change the ACL to use the real IP address.


Features That Continue to Use Mapped IP Addresses

The following features use access lists, but these access lists will continue to use the mapped values as seen on an interface:

IPSec access lists

capture command access lists

Per-user access lists

Routing protocol access lists

All other feature access lists...

Real IP Address Migration Naming Conventions

In most cases after migration, the new access-list commands will be recreated with the original name so there will be no changes to the configuration that references the access list name. If an access list is applied to two or more features, and the conversion results in different ACEs, then two different access lists will be created; the original access list is removed. The new access lists will have the original name with appended suffixes: oldname_migration_X, where X is a number starting with 1.

When contents of an object group need to be changed to the real IP addresses, a new object-group command called oldname_X is created, where X is a number starting with 1. The new object-group command is referenced in the access list.

Syslog Message Migration

For the following syslog messages, the destination IP address has been changed from mapped-ip to real-ip format so that the addresses in the syslog will match what is configured:

Syslog ID 106001 is changed for the access-group command.

Syslog ID 106100 is changed for the access-group command.

Syslog ID 106023 is changed for the access-group command.

Syslog ID 201010, 201011, 201012, 201013 are changed for the set connection command.

Sample Real IP Address Migration

Table 1 shows how access lists are migrated to use the real IP address. The NAT configuration is shown in the old configuration for reference. For NAT migration, see the "NAT Migration" section.

Table 1 Real IP Address Migration Examples 

Description
Configuration Migration

Static NAT with ingress access group

Old Configuration

static (inside,outside) 172.23.57.1 10.50.50.50 netmask 255.255.255.255
 
        
access-list 1 permit ip any host 172.23.57.1
access-group 1 in interface outside
 
        

Migrated Configuration

access-list 1 permit ip any host 10.50.50.50
access-group 1 in interface outside

Static NAT with egress access group

Old Configuration

static (inside,outside) 172.23.57.170 10.50.50.50
 
        
object-group network hm
network-object host 172.23.57.170
access-list 2 extended deny tcp object-group hm any eq www 
access-group 2 out interface outside
 
        

Migrated Configuration

object-group network hm_1
network-object host 10.50.50.50
access-list 2 extended deny tcp object-group hm_1 any eq www 
access-group 2 out interface outside

Static host NAT with access list matching mapped subnet

Old Configuration

static (inside,outside) 172.23.57.170 10.50.50.50
 
        
access-list 1 extended permit ip any 172.23.57.0 255.255.255.0
access-group 1 in interface outside
 
        

Migrated Configuration

access-list 1 extended permit ip any host 10.50.50.50
access-list 1 extended permit ip any 172.23.57.0 255.255.255.0
access-group 1 in interface outside

Static PAT; only one ACE in the access rule matches the PAT

Old Configuration

static (inside,outside) tcp 172.23.57.170 5080 10.50.50.50 80
 
        
access-list 1 extended permit tcp any host 172.23.57.170 eq 5080 
access-list 1 extended permit udp any host 172.23.57.170 eq 5080
access-list 1 extended permit tcp any host 172.23.57.170 eq 10000
access-list 1 extended permit tcp any host 10.2.3.4 eq 5080
access-group 1 in interface outside
 
        

Migrated Configuration

access-list 1 extended permit tcp any host 10.50.50.50 eq 80
access-list 1 extended permit udp any host 172.23.57.170 eq 5080
access-list 1 extended permit tcp any host 172.23.57.170 eq 10000
access-list 1 extended permit tcp any host 10.2.3.4 eq 5080
access-group 1 in interface outside

Dynamic NAT with AAA.

Old Configuration

global (outside) 1 172.23.57.171-172.23.57.172
nat (inside) 1 10.50.50.0 255.255.255.0
nat (dmz) 1 192.168.4.0 255.255.255.0
 
        
object-group network mapped_pool
   network-object host 172.23.57.171
   network-object host 172.23.57.172
 
        
access-list 1 permit udp any object-group mapped_pool
 
        
aaa authentication match 1 outside TEST_SERVER
 
        

Migrated Configuration

access-list 1 permit udp any 10.50.50.0 255.255.255.0
access-list 1 permit udp any 192.168.4.0 255.255.255.0

Interface-
specific service policy

Old Configuration

static (inside,outside) tcp 172.23.57.170 6021 10.50.50.50 21
 
        
access-list 1 permit tcp any host 172.23.57.170 eq 6021
 
        
class-map ftpclass
match access-list 1
policy-map ftp_pol
class ftpclass
inspect ftp
service-policy ftp_pol interface outside
 
        

Migrated Configuration

access-list 1 permit tcp any host 10.50.50.50 eq ftp 
 
        
class-map ftpclass
match access-list 1
policy-map ftp_pol
class ftpclass
inspect ftp
service-policy ftp_pol interface outside

Global service policy; NAT for only a subset of interfaces

Old Configuration

static (inside,outside) 172.23.57.170 10.50.50.50
 
        
access-list 1 permit ip any host 172.23.57.170
 
        
class-map c1
match access-list 1
policy-map global_policy
class c1
ips inline fail-close
service-policy global_policy global
 
        

Migrated Configuration

access-list 1 permit ip any host 10.50.50.50
access-list 1 permit ip any host 172.23.57.170
 
        
class-map c1
match access-list 1
policy-map global_policy
class c1
ips inline fail-close
service-policy global_policy global

Shared access list between access group and service policy; Static host NAT with access list matching mapped subnet

Old Configuration

static (inside,outside) 172.23.57.170 10.50.50.50
 
        
access-list 1 extended permit ip any 172.23.57.0 255.255.255.0
access-group 1 in interface outside
 
        
class-map c1
match access-list 1
policy-map p1
class c1
inspect http
service-policy global_policy global
 
        

Migrated Configuration

access-list 1 extended permit ip any host 10.50.50.50
access-list 1 extended permit ip any 172.23.57.0 255.255.255.0
access-group 1 in interface outside
 
        
class-map c1
match access-list 1
policy-map p1
class c1
inspect http
service-policy global_policy global

Single access list converted to multiple access lists after migration

Old Configuration

static (outside,inside) 172.23.1.10 10.132.44.12 netmask 255.255.255.255 
static (outside,dmz) 172.23.1.10 10.132.44.135 netmask 255.255.255.255
 
        
access-list 1 extended permit ip any host 172.23.1.10 
access-group 1 in interface inside
access-group 1 in interface dmz
 
        

Migrated Configuration

access-list 1_1 extended permit ip any host 10.132.44.12 
access-group 1_1 in interface inside
access-list 1_2 extended permit ip any host 10.132.44.135 
access-group 1_2 in interface dmz

Policy NAT migration

Old Configuration

access-list policyacl1 extended permit ip host 10.50.50.50 10.0.0.0 255.0.0.0 
 
        
global (outside) 1 172.23.57.170
nat (inside) 1 access-list policyacl1
 
        
access-list 1 permit ip any host 172.23.57.170
access-group 1 in interface outside
 
        

Migrated Configuration

access-list 1 extended permit ip any host 10.50.50.50 
access-group 1 in interface outside

Object Group expansion

Old Configuration

object network obj-10.1.2.0
   subnet 10.1.2.0 255.255.255.0
 
        
object-group network TEST
   network-object object obj-10.1.2.0
   network-object host 192.168.101.10
 
        
static (inside,outside) 10.1.2.1 172.16.2.1
static (mgmt,outside) 192.168.101.10 172.16.2.10
 
        
access-list 1 extended permit ip any object-group TEST
access-group 1 in interface outside
 
        

Migrated Configuration

access-list 1 remark Migration, ACE (line 1) expanded: permit ip any object-group TEST
access-list 1 extended permit ip any host 172.16.2.1
access-list 1 extended permit ip any 10.1.2.0 255.255.255.0
access-list 1 extended permit ip any host 172.16.2.10
access-list 1 remark Migration: End of expansion

Access group with deny/permit ACEs

Old Configuration

global (outside) 1 10.10.10.128-10.10.10.255
nat (inside) 1 172.16.10.0 255.255.255.0
 
        
access-list 100 extended deny ip any host 10.10.10.210
access-list 100 extended permit ip any 10.10.10.211 255.255.255.128
access-group 100 in interface outside
 
        

Migrated Configuration

access-list 100 extended deny ip any 172.16.10.0 255.255.255.0
access-group 100 in interface outside

Real IP Address Migration Messages and Limitations

This section describes messages associated with real IP address migration. Some messages relate to configurations that cannot be migrated, and require user intervention. This section also lists any other conditions that do not result in a message. This section includes the following topics:

Real IP Address Migration Messages

For Interface IP Address in ACE, Real vs. Mapped Status Cannot Be Determined

Real IP Address Migration Messages

When you first reload with 8.3, you see the following message:

REAL IP MIGRATION: WARNING

In this version access-lists used in 'access-group', 'class-map',
'dynamic-filter classify-list', 'aaa match' will be migrated from
using IP address/ports as seen on interface, to their real values.
If an access-list used by these features is shared with per-user ACL
then the original access-list has to be recreated.
Please refer to documentation for more details.
 
   

Table 2 lists other messages you might see.

Table 2 Real IP Address Migration Messages 

Message and Description
Error Message    Couldn't migrate ACL <name> into real values, please manually migrate. Associated 
access-group config is removed.

Explanation    If an access list is used by an access-group command, and the access list is not migrated for some reason, then the access-group command is deleted so a security hole is not created.

Error Message    ACE converted to real IP/port values based on dynamic NAT or PAT. The new ACE(s) could 
be broader in scope than this original ACE.

Explanation    When you have dynamic NAT and the access list includes a subset of the addresses in the global pool, then the access list is not migrated because the NAT command is more broad than the access list. Migrating the access list using the real IP address in the nat command would create a much broader access rule than the original. Note that the access-group command is deleted so a security hole is not created.

global (outside) 1 10.10.10.128-10.10.10.255
nat (inside) 1 192.168.10.0 255.255.255.0
 
        
access-list 100 extended permit ip any host 10.10.10.210 <---If this were migrated, it would be 
192.168.10.0, which is too broad.
access-group 100 in interface outside <---This is deleted
Error Message    ACE converted to real IP/port values based on dynamic/static Policy NAT. The new ACE(s) 
need to be checked for enforcing policy NAT ACL.

Explanation    When you migrate policy NAT, check that the new access list does not open any security holes. For example, the following pre-migration configuration translates 10.50.50.50 to 172.23.57.170 only when the destination address is on 10.0.0.0:

access-list policyacl1 extended permit ip host 10.50.50.50 10.0.0.0 255.0.0.0 
 
        
static (inside,outside) 172.23.57.170 access-list policyacl1
 
        

This access rule permits any traffic to the mapped address, but because this mapping only occurs when the traffic is to or from 10.0.0.0, this access list essentially only allows 10.0.0.0 to access the inside host:

access-list 1 permit ip any host 172.23.57.170
access-group 1 in interface outside
 
        

The migrated configuration permits any traffic to the inside host; however, because the access list now uses the real IP address, any traffic can access the inside host, and not just traffic from 10.0.0.0:

access-list 1 extended permit ip any host 10.50.50.50 
access-group 1 in interface outside
 
        

Recommended Action    You should fix the access list to be:

access-list 1 extended permit ip 10.0.0.0 255.0.0.0 host 10.50.50.50 
access-group 1 in interface outside
Error Message    ACL <inbound_auth> has been successfully migrated to real-ip version

Explanation    An access list was migrated, and the same name was used.

Error Message    After migration source network is 'any', originally it wasn't 'any'.
Error Message    After migration destination network is 'any', originally it wasn't 'any'.

Explanation    The access list was not migrated. Because the NAT configuration includes nat (inside) 1 0 0, the access-list would be migrated to any any. Because an any any access list opens a security hole, this migration is skipped. For example, all addresses are translated to a global pool:

global (outside) 1 172.23.57.0-172.23.57.255
nat (inside) 1 0 0
 
        

Then all addresses are permitted to access the global pool addresses:

object-group network mapped_pool
   network-object network 172.23.57.0 255.255.255.0

access-list 1 permit udp any object-group mapped_pool
access-group 1 in interface outside

Because migration would create this access rule, the rule is not migrated to the following:

access-list 1 permit udp any any
access-group 1 in interface outside
Error Message    Can't convert rule to hole.

Explanation    Internal error condition.

Error Message    Can't create new ACE with obj-grp.

Explanation    Internal error condition.

Error Message    Can't create new hole.

Explanation    Internal error condition.

Error Message    Conversion for interface <if_name> failed for line.

Explanation    Internal error condition.

Error Message    Destination changed for egress ACL, can't migrate this ACL.

Explanation    Internal error condition.

Error Message    During migration of access-list <name> expanded this object-group ACE.

Explanation    Access lists needed to be created for each address in an object group. See the "Object Group expansion" migration example.

Error Message    Failed to create acl element to track during migration.

Explanation    Internal error condition.

Error Message    INFO: Note that identical IP addresses or overlapping IP ranges on different interfaces 
are not detectable by automated Real IP migration. If your deployment contains such scenarios, 
please verify your migrated configuration is appropriate for those overlapping addresses/ranges. 
Please also refer to the ASA 8.3 migration guide for a complete explanation of the automated 
migration process.

Explanation    In some cases, you can change the access rules to accommodate the overlapping addresses (see the following example). If you cannot change the access rules, you might need to use a new IP addressing scheme for the overlapping networks.

For example, the following pre-migration configuration includes two static rules where the IP address 192.168.1.1 on two inside interfaces (group1 and group2) is mapped separately when it goes to the outside interface:

static (group1,outside) 10.10.1.1 192.168.1.1
static (group2,outside) 10.10.2.1 192.168.1.1
 
        

The following ACEs, when used in an access-group command applied to the outbound direction of the outside interface, permit the group1 mapped address (10.10.1.1) to exit the outside interface, but deny the group2 mapped address (10.10.2.1):

access-list out_acl extended permit ip host 10.10.1.1 any
access-list out_acl extended deny ip host 10.10.2.1 any
access-group out_acl out interface outside
 
        

However, when the ACEs are converted to real IP addresses, both the 10.10.1.1 and 10.10.2.1 mapped addresses are changed to the 192.168.1.1 real address; because the first ACE permits traffic to 192.168.1.1, the deny ACE will never be hit, and traffic will go to both the group1 and group2 hosts:

object foo
   host 192.168.1.1
   nat (group1,outside) static 10.10.1.1
object bar
   host 192.168.1.1
   nat (group2,outside) static 10.10.2.1
access-list out_acl extended permit ip object foo any
access-list out_acl extended deny ip object bar any <----This ACE will never be hit
access-group out_acl out interface outside
 
        

Recommended Action    In this case, you can alter the access rule as follows:

access-list out_acl1 extended permit ip object foo any
access-list out_acl2 extended deny ip object bar any
access-group out_acl1 in interface group1
access-group out_acl2 in interface group2
Error Message    No ACL was changed as part of Real-ip migration

Explanation    No access lists needed to be changed.

Error Message    Removing ACL <name>, it has been migrated to one or more ACLs with name format <name_x>, 
example <name_7>

Explanation    An access list was migrated and resulted in two or more access lists with new names. The old access list was removed.

Error Message    Something changed in conversion but not clear what changed.

Explanation    Internal error condition.

Error Message    Source changed for ingress ACL, can't migrate this ACL.

Explanation    Internal error condition.


For Interface IP Address in ACE, Real vs. Mapped Status Cannot Be Determined

If you have an ACE with an IP address that belongs to an interface, but the corresponding NAT command uses the interface keyword to identify the interface IP address, then the migration script cannot match the NAT command with the ACE, and it cannot know if the IP address in the ACE is real or mapped.

In this case, the migration script will not migrate the IP address; you will have to manually change the IP address to the real IP address. Alternatively, you can change the ACE to use the interface keyword.

For example, pre-migration, outside interface PAT is defined for an inside host:

static (inside,outside) tcp interface 80 10.2.2.2 80
 

You define an access list using the interface IP address, instead of the interface keyword:

access-list outside_access_in permit tcp any host 192.168.1.1 eq 80
access-group outside_access_in in interface outside
 
   

When you migrate to 8.3, the access list will not be migrated to the real IP address (10.2.2.2) because the static command could not be matched to the access-list command. If you had used the interface keyword, then the access list would have migrated correctly to use the real IP address instead of the interface keyword.

To fix the access list after migration, change the access list to use the real IP address (10.2.2.2):

access-list outside_access_in permit tcp any host 10.2.2.2 eq 80
 
   

NAT Migration

The NAT feature has been redesigned for increased flexibility and functionality. All NAT and NAT-related commands have been redesigned. This section describes how your NAT configuration is migrated to the new NAT commands. For ASDM users, see the relevant "ASDM" subsections. This section includes the following topics:

Old NAT Commands

New NAT Commands

Supporting Commands for NAT

Preserving the Order of NAT Rules

NAT Migration Guidelines and Limitations

Sample NAT Migration from 8.3 and 8.4 to 8.4(2)

Sample NAT Migration from 8.2 and Earlier

NAT Migration Messages


Note Almost all NAT configurations will migrate seamlessly. In the rare cases when user intervention is required, you will be notified. There will never be an unreported loss of security after migration. See the "NAT Migration Messages" section.


Old NAT Commands

The following commands are no longer supported; they are migrated to new commands, and are then removed from the configuration.

alias

global

nat (old version)

nat-control

static

sysopt nodnsalias—This command is not migrated; instead, configure the dns option within the new NAT commands.

ASDM

The alias command was never supported in ASDM.

New NAT Commands

Table 3 lists the new NAT commands. See also the "Supporting Commands for NAT" section.

Table 3 New NAT Commands 

New Commands
Configuration Mode
Syntax
Network Object NAT (Typically used for regular NAT configurations.)

nat dynamic

Object network

object network name

   nat [(real_ifc,mapped_ifc)] dynamic
    {[mapped_inline_host_ip] [interface] |
    [mapped_obj] [pat-pool mapped_obj [round-robin]] [interface]} [dns]

nat static

Object network

object network name

   nat [(real_ifc,mapped_ifc)] static
    {mapped_inline_ip | mapped_obj | interface}
    [dns | service {tcp | udp} real_port mapped_port]
    [no-proxy-arp] [route-lookup]

Twice NAT (Typically used for policy NAT configurations.)

nat source dynamic

Global

nat [(real_ifc,mapped_ifc)] [line | {after-object [line]}]
 source dynamic {real_obj | any}
 {[mapped_obj] [pat-pool mapped_obj [round-robin]] [interface]}
 [destination static {mapped_obj | interface} {real_obj | any}]
 [service {mapped_dest_svc_obj real_dest_svc_obj] [dns] [unidirectional]  [inactive] [description desc]

nat source static

Global

nat [(real_ifc,mapped_ifc)] [line | {after-object [line]}]
 source static {real_obj | any} {mapped_obj | interface | any}}
 [destination static {mapped_obj | interface} {real_obj | any}]
 [service {real_src_mapped_dest_svc_obj | any}
 mapped_src_real_dest_svc_obj] [dns] [unidirectional | [no-proxy-arp]
 [route-lookup]] [inactive] [description desc]



Note The no-proxy-arp, route-lookup, pat-pool, and round-robin keywords were added in 8.4(2).


ASDM

For ASDM, the existing NAT rules will be migrated to two new types of rules:

Network Object NAT:

Configuration > Firewall > Objects > Network Objects/Groups > Add/Edit Network Object.

Twice NAT:

Configuration > Firewall > NAT Rules

Supporting Commands for NAT

To achieve migration to the new NAT commands, additional commands are created as shown in Table 4:

Table 4 Supporting Commands for NAT

Generated Commands
Description

object network

For each network object NAT command, an object network command is created to represent the real IP address that you want to translate; the new nat command is a subcommand under the object network command. Similarly, object network commands are created for the mapped addresses inside the new nat commands when an inline address (one that is entered directly in the command) is not feasible.

For twice NAT, which can use only object network commands to identify IP addresses, and not inline addresses or access-list commands, IP addresses from your old configuration are converted into object network commands.

The name commands that are used in the NAT configuration are automatically migrated to the new object network commands; the name commands remain in the configuration for use with other features that do not yet support object network commands.

object service

For twice NAT, object service commands are created for any inline services or services identified in an access-list command that was formerly used in policy NAT.

object-group network

In network object NAT, for multiple mapped addresses, an object-group network command is created that contains multiple object network commands.


See the "Network and Service Object Migration" section for more information about network and service objects, including naming conventions for these generated commands.

ASDM

ASDM has supported named network objects for a number of releases; now, the platform has the commands to properly support them as well. In addition to showing all named network objects in the configuration, ASDM automatically creates objects for any IP addresses used in the configuration; these auto-created objects are identified by the IP address, and are not present as objects in the platform configuration. If you assign a name to one of these objects, then ASDM adds the named network object to the platform configuration.


Note ASDM no longer shows any objects derived from the name command. Previously, you might have used named objects derived from the name command in ASDM. If the name command IP address was not migrated (see the "Network and Service Object Migration" section), then these objects are replaced by auto-created objects identified by an IP address.


Preserving the Order of NAT Rules

In the old NAT configuration, the order that NAT commands were assessed depended on the type of NAT, and in some cases, the order in which the commands appeared in the configuration. The new NAT order uses a table with three sections:

Section 1 (twice NAT rules)—These rules are assessed based on the order they appear in the configuration. For migration purposes, this section includes migrated policy NAT rules.

Section 2 (network object NAT (generated) rules)—These rules are assessed according to internal rules; the order they appear in the configuration does not matter (For more information, see the Cisco ASA 5500 Series Configuration Guide using ASDM or the Cisco ASA 5500 Series Configuration Guide using the CLI). For migration purposes, this section includes regular NAT rules.

Section 3 (twice NAT rules that you specifically want to be evaluated after the network object NAT rules)—Like section 1, these rules are assessed in the order they appear in the configuration. However, they are assessed after section 1 and section 2 rules. This section is not used for NAT migration.

In the case of overlapping networks (for example, if a regular static NAT rule overlaps with a dynamic policy NAT rule), the regular static NAT rule will be migrated to section 1 instead of section 2 to preserve the order of the configuration. For example, the following old configuration has overlapping networks. In this case, the static command will be migrated to a twice NAT rule in section 1.

static (inside,outside) 209.165.202.129 10.1.1.6 netmask 255.255.255.255
access-list NET1 permit ip 10.1.1.0 255.255.255.0 209.165.202.0 255.255.255.0
nat (inside) 100 access-list NET1

NAT Migration Guidelines and Limitations

Dynamic identity NAT (the nat 0 command) will not be migrated. See the "NAT Migration Messages" section. Static identity NAT is treated like any other static command, and is converted depending on whether it is regular or policy NAT.

NAT exemption (the nat 0 access-list command) is migrated differently depending on the release to which you are upgrading. See the "NAT Exemption" section for more information.

When upgrading to 8.4(2) from 8.3(1), 8.3(2), or 8.4(1), migration for identity NAT will occur to preserve existing functionality. See the "Sample NAT Migration from 8.3 and 8.4 to 8.4(2)" section for more information.

Regular NAT commands with the dns option will be migrated. The dns option in static PAT and policy NAT commands will be ignored.

Connection Settings in old NAT commands—Options such as conn-max, emb-limit, norandomseq, or nailed will be moved to service policies.

The following naming conventions are used for the new service policies:

class-map—class-conn-param-protocol-n

access-list—acl-conn-param-protocol-n

policy-map—policy-conn-param-interface

For other naming conventions related to NAT migration, see the "Object Migration Naming Conventions" section.

Sample NAT Migration from 8.3 and 8.4 to 8.4(2)

If you are already running 8.3(1), 8.3(2), or 8.4(2). then to preserve existing functionality, all identity NAT statements are migrated to use the following new keywords:

no-proxy-arp

route-lookup (routed firewall mode only)

Starting in version 8.4(2), identity NAT now performs proxy ARP and uses the NAT configuration to determine the egress interface by default. To maintain the functionality that was in 8.3(1), 8.3(2), and 8.4(2), proxy ARP is disabled, and a route lookup is performed to determine the egress interface using the new keywords. If you want to enable proxy ARP (a rare requirement) or use the NAT configuration to determine the egress interface, you must manually remove the keyword(s) after migration.

If the unidirectional keyword is present (for example, from an original migration of NAT exemption rules to 8.3(2) or 8.4(1)), then the keyword is removed.

Table 5 lists static identity NAT migration examples.

Table 5 Identity NAT Migration Examples 

Description
Configuration Migration

Static object NAT

Old Configuration

object network obj-10.1.1.6
host 10.1.1.6
nat (inside,outside) static 10.1.1.6 

Migrated Configuration

object network obj-10.1.1.6
host 10.1.1.6
nat (inside,outside) static 10.1.1.6 no-proxy-arp route-lookup

Static twice NAT with unidirectional

Old Configuration

nat (inside,any) source static any any destination static obj-192.168.90.0-01 obj-192.168.90.0-01 unidirectional

Migrated Configuration

nat (inside,any) source static any any destination static obj-192.168.90.0-01 obj-192.168.90.0-01 no-proxy-arp route-lookup

Static twice NAT

Old Configuration

nat (inside,any) source static obj-10.1.2.0 obj-10.1.2.0
 
        
nat (dmz,outside) source static obj-10.1.2.0 obj-10.1.2.0
 
        

Migrated Configuration

nat (inside,any) source static obj-10.1.2.0 obj-10.1.2.0 no-proxy-arp route-lookup
 
        
nat (dmz,outside) source static obj-10.1.2.0 obj-10.1.2.0 no-proxy-arp route-lookup

Sample NAT Migration from 8.2 and Earlier

This section includes the following topics:

Static NAT/PAT

Dynamic NAT/PAT

NAT Exemption

NAT Control

DNS Rewrite

Connection Settings

Source and Destination NAT

alias Command

Static NAT/PAT

Table 6 lists static NAT/PAT migration examples.

Table 6 Static NAT/PAT Migration Examples 

Description
Configuration Migration
Type / Section

Regular Static NAT

Old Configuration

static (inside,outside) 209.165.201.15 10.1.1.6 netmask 255.255.255.255

Migrated Configuration

object network obj-10.1.1.6
host 10.1.1.6
nat (inside,outside) static 209.165.201.15 

Object / Section 2

Regular Static PAT

Old Configuration

static (inside,outside) tcp 10.1.2.45 80 10.1.1.16 8080 netmask 255.255.255.255

Migrated Configuration

object network obj-10.1.1.16
host 10.1.1.16
nat (inside,outside) static 10.1.2.45 service tcp 8080 www

Object / Section 2

Static Policy NAT

Old Configuration

access-list NET1 permit ip host 10.1.2.27 10.76.5.0 255.255.255.224

static (inside,outside) 209.165.202.129 access-list NET1

Migrated Configuration

object network obj-10.1.2.27
host 10.1.2.27
object network obj-209.165.202.129
host 209.165.202.129
object network obj-10.76.5.0
subnet 10.76.5.0 255.255.255.224
 
        

nat (inside,outside) source static obj-10.1.2.27 obj-209.165.202.129 destination static obj-10.76.5.0 obj-10.76.5.0

Twice / Section 1


Dynamic NAT/PAT

Table 7 lists dynamic NAT/PAT migration examples.

Table 7 Dynamic NAT/PAT Migration Examples 

Description
Configuration Migration
Type / Section

Regular Dynamic PAT

Old Configuration

nat (inside) 1 192.168.1.0 255.255.255.0

nat (dmz) 1 10.1.1.0 255.255.255.0

global (outside) 1 209.165.201.3

Migrated Configuration

object network obj-192.168.1.0
subnet 192.168.1.0 255.255.255.0
nat (inside,outside) dynamic 209.165.201.3
object network obj-10.1.1.0
subnet 10.1.1.0 255.255.255.0
nat (dmz,outside) dynamic 209.165.201.3

Object / Section 2

Regular Dynamic PAT (2)

Old Configuration

nat (inside) 1 10.1.2.0 255.255.255.0

global (outside) 1 209.165.201.3

global (dmz) 1 172.16.4.5

Migrated Configuration

object network obj-10.1.2.0
subnet 10.1.2.0 255.255.255.0
nat (inside,outside) dynamic 209.165.201.3
object network obj-10.1.2.0-01
subnet 10.1.2.0 255.255.255.0
nat (inside,dmz) dynamic 172.16.4.5

Object / Section 2

Regular Dynamic PAT (3)

Old Configuration

nat (inside) 1 0 0

global (outside) 1 interface

Migrated Configuration

object network obj_any
subnet 0.0.0.0 0.0.0.0
nat (inside,outside) dynamic interface

Object / Section 2

Dynamic Policy NAT

Old Configuration

object-group network og-net-src
network-object 192.168.1.0 255.255.255.0
network-object 192.168.2.0 255.255.255.0
object-group network og-net-dst
network-object 209.165.201.0 255.255.255.224
object-group service og-ser-src
service-object tcp gt 2000
service-object tcp eq 1500
 
        

access-list NET6 extended permit object-group og-ser-src object-group og-net-src object-group og-net-dst

nat (inside) 10 access-list NET6

global (outside) 10 209.165.200.225

Migrated Configuration

object-group network og-net-src
network-object 192.168.1.0 255.255.255.0
network-object 192.168.2.0 255.255.255.0
object-group network og-net-dst
network-object 209.165.201.0 255.255.255.224
object network obj-209.165.200.225
host 209.165.200.225
object service obj_tcp_range_2001_65535
service tcp destination range 2001 65535
object service obj_tcp_eq_1500
service tcp destination eq 1500
 
        

nat (inside,outside) source dynamic og-net-src obj-209.165.200.225 destination static og-net-dst og-net-dst service obj_tcp_range_2001_65535 obj_tcp_range_2001_65535

nat (inside,outside) source dynamic og-net-src obj-209.165.200.225 destination static og-net-dst og-net-dst service obj_tcp_eq_1500 obj_tcp_eq_1500

Twice / Section 1

Policy Dynamic NAT (with multiple ACEs)

Old Configuration

access-list ACL_NAT permit ip 172.29.0.0 255.255.0.0 172.29.37.0 255.255.255.0
access-list ACL_NAT permit ip 172.29.0.0 255.255.0.0 10.231.110.0 255.255.255.0

access-list ACL_NAT permit ip 172.29.0.0 255.255.0.0 10.107.204.0 255.255.255.0

access-list ACL_NAT permit ip 172.29.0.0 255.255.0.0 192.168.5.0 255.255.255.0

nat (inside) 1 access-list ACL_NAT

global (outside) 1 209.165.200.225
 
        

Migrated Configuration

object network obj-172.29.0.0
subnet 172.29.0.0 255.255.0.0
object network obj-209.165.200.225
host 209.165.200.225
object network obj-172.29.37.0
subnet 172.29.37.0 255.255.255.0
object network obj-10.231.110.0
subnet 10.231.110.0 255.255.255.0
object network obj-10.107.204.0
subnet 10.107.204.0 255.255.255.0
object network obj-192.168.5.0
subnet 192.168.5.0 255.255.255.0
 
        

nat (inside,outside) source dynamic obj-172.29.0.0 obj-209.165.200.225 destination static obj-172.29.37.0 obj-172.29.37.0

nat (inside,outside) source dynamic obj-172.29.0.0 obj-209.165.200.225 destination static obj-10.231.110.0 obj-10.231.110.0

nat (inside,outside) source dynamic obj-172.29.0.0 obj-209.165.200.225 destination static obj-10.107.204.0 obj-10.107.204.0

 
        

nat (inside,outside) source dynamic obj-172.29.0.0 obj-209.165.200.225 destination static obj-192.168.5.0 obj-192.168.5.0

Twice / Section 1

Outside NAT

Old Configuration

global (inside) 1 10.1.2.30-10.1.2.40

nat (dmz) 1 10.1.1.0 255.255.255.0 outside

static (inside,dmz) 10.1.1.5 10.1.2.27 netmask 255.255.255.255

Migrated Configuration

object network obj-10.1.2.30-10.1.2.40
range 10.1.2.30 10.1.2.40
object network obj-10.1.2.27
host 10.1.2.27
nat (inside,dmz) static 10.1.1.5
object network obj-10.1.1.0
subnet 10.1.1.0 255.255.255.0
nat (dmz,inside) dynamic obj-10.1.2.30-10.1.2.40

Object / Section 2

NAT & Interface PAT together

Old Configuration

nat (inside) 1 10.1.2.0 255.255.255.0

global (outside) 1 interface

global (outside) 1 209.165.201.1-209.165.201.2

Migrated Configuration

object network obj-209.165.201.1_209.165.201.2
range 209.165.201.1 209.165.201.2
object network obj-10.1.2.0
subnet 10.1.2.0 255.255.255.0
nat (inside,outside) dynamic obj_209.165.201.1_209.165.201.2 interface

Object / Section 2


NAT Exemption

NAT exemption (the nat 0 access-list command) is a form of policy NAT, and is converted to static twice NAT. Rules are created between the exempted interface and all lower-security level interfaces. For outside NAT, rules are created between the exempted interface and all higher-security level interfaces. If you enabled same security level communication, rules are also created between the exempted interface and same-security level interfaces.

These rules will be placed at the top of section 1.

NAT exemption (the nat 0 access-list command) is migrated to a twice NAT rule. See the following notes for the version you are upgrading to for specific information about how NAT exemption is migrated:

For Version 8.3(1)—In some cases, you might see caveat #CSCtf89372. We recommend migrating directly to 8.4(2). For more information about this caveat, see the Bug Toolkit at the following URL:

http://tools.cisco.com/Support/BugToolKit/action.do?hdnAction=searchBugs

For Version 8.3(2) through 8.4(1)—The unidirectional keyword was added. The unidirectional keyword only allows traffic on the source network to initiate connections. This migration change was made to fix CSCtf89372. Because NAT exemption is normally bidirectional, you might need to remove the unidirectional keyword to restore the original function. Specifically, this change adversely affects many VPN configurations that include NAT exemption rules (see CSCti36048 for this new issue). To avoid manual intervention, we recommend migrating to 8.4(2) instead.

If you are impacted by this issue, you will see a syslog message like the following:

%ASA-5-305013: Asymmetric NAT rules matched for forward and reverse flows; Connection for icmp src Outside:192.168.1.5 dst inside:10.10.5.20 (type 8, code 0) denied due to NAT reverse path failure

For Version 8.4(2) and later—The unidirectional keyword is no longer added. Instead, the new no-proxy-arp and route-lookup keywords are added. Both the CSCtf89372 and CSCti36048 caveats are resolved in this release.

The examples in this section are for a system with three interfaces: inside (level 100), outside (level 0), and dmz (level 50).

Table 8 lists NAT exemption migration examples.

Table 8 NAT Exemption Migration Examples 

Description
Configuration Migration
Type / Section

Regular NAT exemption (overlapping dynamic NAT shown)

Old Configuration

access-list outside_nat_outbound extended permit ip 192.168.90.0 255.255.254.0 host 10.1.4.5

nat (outside) 2 access-list outside_nat_outbound outside

global (inside) 2 interface

access-list inside_nat0_outbound_1 extended permit ip any 192.168.90.0 255.255.254.0

nat (inside) 0 access-list inside_nat0_outbound_1

Migrated Configuration

8.3(1):

nat (outside,inside) source dynamic obj-192.168.90.0-01 interface destination static obj-10.1.4.5 obj-10.1.4.5

nat (inside,any) source static any any destination static obj-192.168.90.0-01 obj-192.168.90.0-01

8.3(2) through 8.4(1):

nat (outside,inside) source dynamic obj-192.168.90.0-01 interface destination static obj-10.1.4.5 obj-10.1.4.5

nat (inside,any) source static any any destination static obj-192.168.90.0-01 obj-192.168.90.0-01 unidirectional

8.4(2) and later:

nat (outside,inside) source dynamic obj-192.168.90.0-01 interface destination static obj-10.1.4.5 obj-10.1.4.5

nat (inside,any) source static any any destination static obj-192.168.90.0-01 obj-192.168.90.0-01 no-proxy-arp route-lookup

Twice / Section 1

(placed at the top)

Regular NAT exemption

Old Configuration

access-list EXEMPT permit ip 10.1.2.0 255.255.255.0 any
 
        
nat (inside) 0 access-list EXEMPT
nat (dmz) 0 access-list EXEMPT

Migrated Configuration

8.3(1):

object network obj-10.1.2.0
   subnet 10.1.2.0 255.255.255.0
 
        
nat (inside,any) source static obj-10.1.2.0 obj-10.1.2.0
 
        
nat (dmz,outside) source static obj-10.1.2.0 obj-10.1.2.0
 
        

8.3(2) through 8.4(1):

object network obj-10.1.2.0
   subnet 10.1.2.0 255.255.255.0
 
        
nat (inside,any) source static obj-10.1.2.0 obj-10.1.2.0 unidirectional
 
        
nat (dmz,outside) source static obj-10.1.2.0 obj-10.1.2.0 unidirectional
 
        

8.4(2) and later:

object network obj-10.1.2.0
   subnet 10.1.2.0 255.255.255.0
 
        
nat (inside,any) source static obj-10.1.2.0 obj-10.1.2.0 no-proxy-arp route-lookup
 
        
nat (dmz,outside) source static obj-10.1.2.0 obj-10.1.2.0 no-proxy-arp route-lookup

Twice / Section 1

(placed at the top)

Same security level enabled

Old Configuration

same-security-level permit intra-interface
 
        
access-list EXEMPT permit ip 10.1.2.0 255.255.255.0 any
 
        
nat (dmz) 0 access-list EXEMPT 

Migrated Configuration

8.3(1):

same-security-level permit intra-interface
 
        
object network obj-10.1.2.0
   subnet 10.1.2.0 255.255.255.0
 
        
nat (dmz,outside) source static obj-10.1.2.0 obj-10.1.2.0
 
        
nat (dmz,dmz) source static obj-10.1.2.0 obj-10.1.2.0
 
        

8.3(2) through 8.4(1):

same-security-level permit intra-interface
 
        
object network obj-10.1.2.0
   subnet 10.1.2.0 255.255.255.0
 
        
nat (dmz,outside) source static obj-10.1.2.0 obj-10.1.2.0 unidirectional
 
        
nat (dmz,dmz) source static obj-10.1.2.0 obj-10.1.2.0 unidirectional
 
        

8.4(2) and later:

same-security-level permit intra-interface
 
        
object network obj-10.1.2.0
   subnet 10.1.2.0 255.255.255.0
 
        
nat (dmz,outside) source static obj-10.1.2.0 obj-10.1.2.0 no-proxy-arp route-lookup
 
        
nat (dmz,dmz) source static obj-10.1.2.0 obj-10.1.2.0 no-proxy-arp route-lookup

Twice / Section 1

(placed at the top)

Outside NAT

Old Configuration

access-list EXEMPT permit ip 10.1.2.0 255.255.255.0 any
 
        
nat (dmz) 0 access-list EXEMPT outside
 
        
nat (outside) 0 access-list EXEMPT outside

Migrated Configuration

8.3(1):

object network obj-10.1.2.0
   subnet 10.1.2.0 255.255.255.0
 
        
nat (dmz,inside) source static obj-10.1.2.0 obj-10.1.2.0
 
        
nat (outside,dmz) source static obj-10.1.2.0 obj-10.1.2.0
 
        
nat (outside,inside) source static obj-10.1.2.0 obj-10.1.2.0
 
        

8.3(2) through 8.4(1):

object network obj-10.1.2.0
   subnet 10.1.2.0 255.255.255.0
 
        
nat (dmz,inside) source static obj-10.1.2.0 obj-10.1.2.0 unidirectional
 
        
nat (outside,dmz) source static obj-10.1.2.0 obj-10.1.2.0 unidirectional
 
        
nat (outside,inside) source static obj-10.1.2.0 obj-10.1.2.0 unidirectional
 
        

8.4(2) and later:

object network obj-10.1.2.0
   subnet 10.1.2.0 255.255.255.0
 
        
nat (dmz,inside) source static obj-10.1.2.0 obj-10.1.2.0 no-proxy-arp route-lookup
 
        
nat (outside,dmz) source static obj-10.1.2.0 obj-10.1.2.0 no-proxy-arp route-lookup
 
        
nat (outside,inside) source static obj-10.1.2.0 obj-10.1.2.0 no-proxy-arp 
route-lookup

Twice / Section 1

(placed at the top)

Multiple ACEs

Old Configuration

access-list EXEMPT extended permit ip 10.1.2.0 255.255.255.0 any

access-list EXEMPT extended permit ip 10.1.3.0 255.255.255.0 20.2.4.0 255.255.255.0

access-list EXEMPT extended permit ip any 20.2.20.0 255.255.255.0

nat (inside) 0 access-list EXEMPT

Migrated Configuration

8.3(1):

object network obj-10.1.2.0

   subnet 10.1.2.0 255.255.255.0

object network obj-10.1.3.0

   subnet 10.1.3.0 255.255.255.0

object network obj-20.2.4.0

   subnet 20.2.4.0 255.255.255.0

object network obj-20.2.20.0

   subnet 20.2.20.0 255.255.255.0

nat (inside,any) source static obj-10.1.2.0 obj-10.1.2.0

nat (inside,any) source static obj-10.1.3.0 obj-10.1.3.0 destination static obj-20.2.4.0 obj-20.2.4.

nat (inside,any) source static any any destination static obj-20.2.20.0 obj-20.2.20.0

 
        

8.3(2) through 8.4(1):

object network obj-10.1.2.0

   subnet 10.1.2.0 255.255.255.0

object network obj-10.1.3.0

   subnet 10.1.3.0 255.255.255.0

object network obj-20.2.4.0

   subnet 20.2.4.0 255.255.255.0

object network obj-20.2.20.0

   subnet 20.2.20.0 255.255.255.0

nat (inside,any) source static obj-10.1.2.0 obj-10.1.2.0 unidirectional

nat (inside,any) source static obj-10.1.3.0 obj-10.1.3.0 destination static obj-20.2.4.0 obj-20.2.4.0 unidirectional

nat (inside,any) source static any any destination static obj-20.2.20.0 obj-20.2.20.0 unidirectional

 
        

8.4(2) and later:

object network obj-10.1.2.0

   subnet 10.1.2.0 255.255.255.0

object network obj-10.1.3.0

   subnet 10.1.3.0 255.255.255.0

object network obj-20.2.4.0

   subnet 20.2.4.0 255.255.255.0

object network obj-20.2.20.0

   subnet 20.2.20.0 255.255.255.0

nat (inside,any) source static obj-10.1.2.0 obj-10.1.2.0 no-proxy-arp route-lookup

nat (inside,any) source static obj-10.1.3.0 obj-10.1.3.0 destination static obj-20.2.4.0 obj-20.2.4.0 no-proxy-arp route-lookup

nat (inside,any) source static any any destination static obj-20.2.20.0 obj-20.2.20.0 no-proxy-arp route-lookup

Twice / Section 1

(placed at the top)


NAT Control

The nat-control command is deprecated. To maintain the requirement that all traffic from a higher security interface to a lower security interface be translated, a NAT rule will be inserted at the end of section 2 for each interface to disallow any remaining traffic. The nat-control command was used for NAT configurations defined with earlier versions of the ASA. The best practice is to use access rules for access control instead of relying on the absence of a NAT rule to prevent traffic through the ASA.

Table 9 lists NAT control migration examples.

Table 9 NAT Control Migration Examples 

Description
Configuration Migration
Type / Section

Four interfaces: inside, outside, dmz, and mgmt

Old Configuration

nat-control

Migrated Configuration

object network obj_any

subnet 0.0.0.0 0.0.0.0
nat (inside,outside) dynamic obj-0.0.0.0

object network obj-0.0.0.0

host 0.0.0.0

object network obj_any-01

subnet 0.0.0.0 0.0.0.0
nat (inside,mgmt) dynamic obj-0.0.0.0

object network obj_any-02

subnet 0.0.0.0 0.0.0.0
nat (inside,dmz) dynamic obj-0.0.0.0

object network obj_any-03

subnet 0.0.0.0 0.0.0.0
nat (mgmt,outside) dynamic obj-0.0.0.0

object network obj_any-04

subnet 0.0.0.0 0.0.0.0
nat (dmz,outside) dynamic obj-0.0.0.0

object network obj_any-05

subnet 0.0.0.0 0.0.0.0
nat (dmz,mgmt) dynamic obj-0.0.0.0 

Object / Section 2

(placed at the bottom)


DNS Rewrite

Regular NAT commands with the dns option will be migrated. The dns option in static PAT and policy NAT commands will be ignored.

Table 10 lists DNS rewrite migration examples.

Table 10 DNS Rewrite Migration Examples 

Description
Configuration Migration
Type / Section

Static command with dns option

Old Configuration

static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 dns

Migrated Configuration

object network obj-192.168.100.10
host 192.168.100.10
nat (inside,outside) static 172.20.1.10 dns

Object / Section 2


Connection Settings

Connection Settings in old NAT commands—Options such as conn-max, emb-limit, norandomseq, or nailed will be moved to service policies.

For naming conventions, see the "NAT Migration Guidelines and Limitations" section.

Table 11 lists connection setting migration examples.

Table 11 Connection Settings Migration Examples 

Description
Configuration Migration
Type / Section

TCP and UDP Max Connections, random sequence number disabling, and nailed option.

Old Configuration

static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 tcp 10 20 norandomseq nailed

Migrated Configuration

access-list acl-conn-param-tcp-01 extended permit tcp host 192.168.100.10 any

t

class-map class-conn-param-tcp-01

match access-list acl-conn-param-tcp-01

policy-map policy-conn-param-inside

class class-conn-param-tcp-01
set connection per-client-max 10 per-client-embryonic-max 20 
random-sequence-number disable
 
        
set connection advanced-options tcp-state-bypass
 
        

service-policy policy-conn-param-inside interface inside

 
        
object network obj-192.168.100.10
host 192.168.100.10
nat (inside,outside) static 172.20.1.10

Object / Section 2

UDP Max Connections

Old Configuration

access-list NAT_ACL permit ip host 10.76.6.111 any

nat (dmz) 101 access-list NAT_ACL udp 6

global (outside) 101 225.22.22.1

Migrated Configuration

access-list NAT_ACL extended permit ip host 10.76.6.111 any

class-map class-conn-param-udp-01

match access-list NAT_ACL

policy-map policy-conn-param-dmz

class class-conn-param-udp-01
set connection per-client-max 6

service-policy policy-conn-param-dmz interface dmz

object network obj-10.76.6.111

host 10.76.6.111
nat (dmz,outside) dynamic 225.22.22.1

Object / Section 2


Source and Destination NAT

Before 8.3, policy NAT let you specify the source and destination addresses, but NAT was only performed on the source address. In 8.3 and later, you can also configure NAT for the destination address if desired. In the old configuration to achieve this functionality, you had to configure two separate NAT rules for source and destination NAT for a single connection. As part of migration the two, independent NAT rules are tied together to form a single twice NAT command.

Table 12 lists source and destination NAT migration examples.

Table 12 Source and Destination NAT Migration Examples 

Description
Configuration Migration
Type / Section

Static commands for source and destination NAT

Old Configuration

access-list NET1 permit ip host 192.168.1.1 host 192.168.1.10

access-list NET2 permit ip host 209.165.200.225 host 209.165.200.228

static (inside,outside) 209.165.200.228 access-list NET1

static (outside,inside) 192.168.1.10 access-list NET2

Migrated Configuration

object network obj-192.168.1.1

host 192.168.1.1

object network obj-209.165.200.228

host 209.165.200.228

object network obj-209.165.200.225

host 209.165.200.225

object network obj-192.168.1.10

host 192.168.1.10
 
        

nat (inside,outside) source static obj-192.168.1.1 obj-209.165.200.228 destination static obj-192.168.1.10 obj-209.165.200.225

(The following rules are created by the migration script, but they may not be necessary; in rare circumstances, traffic might use one of these rules.)

nat (inside,outside) source static obj-192.168.1.1 obj-209.165.200.228 destination static obj-192.168.1.10 obj-192.168.1.10

nat (outside,inside) source static obj-209.165.200.225 obj-192.168.1.10 destination static obj-209.165.200.228 obj-209.165.200.228

Twice / Section 1

Static and Dynamic commands for source and destination NAT

Old Configuration

access-list NET1 permit ip host 192.168.1.1 host 192.168.1.10

access-list NET2 permit ip host 209.165.200.225 host 209.165.200.228

static (outside,inside) 192.168.1.10 access-list NET2

global (outside) 100 209.165.200.228

nat (inside) 100 access-list NET1

Migrated Configuration

object network obj-192.168.1.1

host 192.168.1.1

object network obj-209.165.200.228

host 209.165.200.228

object network obj-209.165.200.225

host 209.165.200.225

object network obj-192.168.1.10

host 192.168.1.10
 
        

nat (inside,outside) source dynamic obj-192.168.1.1 obj-209.165.200.228 destination static obj-192.168.1.10 obj-209.165.200.225

(The following rule is created by the migration script, but it may not be necessary; in rare circumstances, traffic might use this rule.)

nat (inside,outside) source dynamic obj-192.168.1.1 obj-209.165.200.228 destination static obj-192.168.1.10 obj-192.168.1.10

nat (outside,inside) source static obj-209.165.200.225 obj-192.168.1.10 destination static obj-209.165.200.228 obj-209.165.200.228

Twice / Section 1


alias Command

The alias command translates addresses on an IP network residing on any interface into addresses on another IP network connected through a different interface.

Table 13 lists alias migration examples.

Table 13 alias Command Migration Examples 

Description
Configuration Migration
Type / Section

Alias command

Old Configuration

alias (inside) 209.165.200.225 192.168.100.10

Migrated Configuration

object network obj-192.168.100.10

host 192.168.100.10
nat (any,inside) static 209.165.200.225 dns

Object / Section 2


NAT Migration Messages

Some NAT configurations cannot be migrated automatically, or are slightly different from the original configuration. Table 14 lists error messages you might see, and information about the messages.

Table 14 NAT Migration Messages 

Message and Description
Error Message    The following 'nat' command didn't have a matching 'global' rule on interface '<name>' 
and was not migrated.

Explanation    Missing global command. If a nat command does not have a matching global command, the nat command will be removed and will not be migrated.

Recommended Action    If you intended to have a matching global command, you will need to recreate the configuration using the new NAT commands.

Example:

Old Configuration

nat (dmz) 1 10.1.1.0 255.255.255.0
 
        

Migrated Configuration

Not migrated.

Error Message    Alias command was migrated between interfaces `any' and `inside' as an estimate.

Explanation    alias command migration. The alias command is applied between same and lower security level interfaces. After migration, the rules are added between a given interface and any. This is semantically different as the new rule applies to all interfaces including itself.

Recommended Action    This is relatively safe to migrate and needs no attention in most cases. See the "alias Command" section for an example migration.

Example:

Old Configuration

alias (inside) 209.165.200.225 192.168.100.10

Migrated Configuration

object network obj-192.168.100.10

host 192.168.100.10
nat (any,inside) static 209.165.200.225 dns
Error Message    Identity-NAT was not migrated. If required, an appropriate bypass NAT rule needs to be 
added.

Explanation    Identity NAT not migrated. Identity NAT (the nat 0 command) is not migrated; also a nat-control command on that interface is not migrated.

Recommended Action    Manually add a new Identity NAT rule using a static NAT command (either object or twice NAT).

Example:

Old Configuration

nat (inside) 0 192.168.1.0 255.255.255.0

Migrated Configuration

Not migrated.

Error Message    Range a.b.c.d-p.q.r.s also includes broadcast address as mapped value.

Explanation    Outside static policy NAT with overlapping destination and broadcast address. You used to be able to configure the old global command to automatically remove the broadcast addresses from the global pool by using a /31 subnet. You cannot configure the same functionality in the new NAT commands. If there is a dynamic NAT rule and an outside static policy NAT rule with overlapping destinations, then the migrated configuration will include the broadcast address in the mapped source. User intervention is required to manually remove those addresses.

Recommended Action    Remove the broadcast address from the mapped object.

Example:

Old Configuration

nat (inside) 10 10.0.0.0 255.0.0.0

global (outside) 10 192.168.1.3-192.168.2.3 netmask 255.255.255.254

(The following broadcast address is automatically removed from the pool: 192.168.1.255.)

access-list SNAT extended permit ip 10.10.10.0 255.255.255.0 192.168.2.0 255.255.255.0

static (outside,inside) 10.1.1.0 access-list SNAT

Migrated Configuration

object network obj-192.168.1.3-192.168.2.3

range 192.168.1.3 192.168.2.3
 
        

(192.168.1.255 is not automatically removed from this pool. To avoid assigning 192.168.1.255, you should instead create a network group, and use it in the nat command:

object network global_pool1

range 192.168.1.3 192.168.1.254

object network global_pool2

range 192.168.2.1 192.168.2.3

object-group network global_pool

network-object object global_pool1
network-object object global_pool2

)

object network obj-10.10.10.0

subnet 10.10.10.0 255.255.255.0

object network obj-10.1.1.0

subnet 10.1.1.0 255.255.255.0

object network obj-192.168.2.0

subnet 192.168.2.0 255.255.255.0

object network obj-10.0.0.0

subnet 10.0.0.0 255.0.0.0
nat (inside,outside) dynamic obj-192.168.1.3-192.168.2.3

nat (inside,outside) source dynamic obj-10.0.0.0 obj-192.168.1.3-192.168.2.3 destination static obj-10.1.1.0 obj-10.10.10.0

nat (outside,inside) source static obj-10.10.10.0 obj-10.1.1.0 destination static obj-192.168.2.0 obj-192.168.2.0

Error Message    The nodnsalias option is deprecated. Use 'dns' option in nat command to enable/disable 
dns rewrite.

Explanation    sysopt nodnsalias command not migrated. The sysopt nodnslias command is deprecated because the alias command is no longer supported.

Recommended Action    Use the dns option in the new NAT commands to enable/disable DNS rewrite.

Example:

Old Configuration

sysopt nodnsalias

Migrated Configuration

Not migrated.


Network and Service Object Migration

This section describes network and service object migration and includes the following topics:

Supported Features for Objects

Object Migration

Supported Features for Objects

Version 8.3 introduces named network and service objects for use with the following features:

NAT—See the "NAT Migration" section for more information. You can no longer use a named IP address (using the name command) in NAT.

Access lists—access-list command. You can no longer use a named IP address (using the name command) in an access list.

Object groups—object-group network and object-group service commands. Named IP addresses are still allowed in object groups, as well as network objects.

Object Migration

New network and service objects (the object network and object service commands) are substituted into existing commands in the following cases:

For each network object NAT command, an object network command is created to represent the real IP address that you want to translate.

When new nat commands require an object instead of an inline value, network and service objects are automatically created.

If you use a named IP address in NAT (using the name command) and the names command is enabled, then a network object is created even if an inline IP address could be used in the new nat command.

If an access-list command includes an IP address that was used in NAT, and the NAT migration created a network object for that IP address, then the network object replaces the IP address in the access-list command.

If you use a named IP address in the access-list command (using the name command) and the names command is enabled, then an object replaces the name.

For multiple global commands that share the same NAT ID, a network object group is created that contains the network objects created for the inline IP addresses.

Objects are not created for the following cases:

A name command exists in the configuration, but is not used in a nat or access-list command.

An inline value that is still allowed in the nat command.

name commands used under object-group commands.

IP addresses used in access-list commands that are not used in NAT or named with a name command.


Note The name commands continue to exist in your configuration for use with other features that do not yet support network objects.


ASDM

ASDM has supported named network objects for a number of releases; now, the platform has the commands to properly support them as well.

ASDM also automatically creates non-named objects for any IP addresses used in the configuration. These auto-created objects are identified by the IP address only, do not have a name, and are not present as named objects in the platform configuration.

If you manually assign a name to one of these non-named ASDM objects, then ASDM adds the named network object to the platform configuration. If you do not add a name, it remains an ASDM-only object.

When the ASA creates named objects as part of the migration, the matching non-named ASDM-only objects are replaced with the named objects. The only exception are non-named objects in a network object group. When the ASA creates named objects for IP addresses that are inside a network object group, ASDM retains the non-named objects as well, creating duplicate objects in ASDM. To merge these objects, choose Tools > Migrate Network Object Group Members.


Note ASDM no longer shows any objects derived from the name command. Previously, you might have used named objects derived from the name command in ASDM. If the name command IP address was not migrated, then these objects are replaced by auto-created objects identified by an IP address.


Object Migration Naming Conventions

This section includes the following topics:

name Command Naming Conventions

Inline IP Address Naming Conventions

Inline Protocol Naming Conventions

Network Object Naming Conventions with Multiple global Commands with the Same NAT ID

For details about when a name or IP address is migrated, see the "Object Migration" section.

name Command Naming Conventions

When the names command is enabled, then for migrated name commands, the same name is used for the object network command.

For example, for the following name command used in NAT:

name 10.1.1.1 test
 
   

An object network command is created:

object network test
host 10.1.1.1
 
   

If the names command is not enabled, and IP addresses are migrated to network objects, then your configuration might include network objects where the IP addresses are the same as in name commands, but the name of the network object is automatically generated (see the "Inline IP Address Naming Conventions" section), and not the same name as the name command.

Inline IP Address Naming Conventions

For migrated IP addresses used inline, network objects are created using the following naming convention:

Hosts and subnets—obj-a.b.c.d.


Note Only one instance of NAT can be enabled on an object. If you have more than one NAT policy applied on a given host or subnet, then a separate network object will be created: obj-a.b.c.d-01.


Table 15 lists host and subnet inline object migration naming examples.

Table 15 Host and Subnet Inline Object Migration Naming Examples

Inline Value
Network Object Name

10.76.6.111 255.255.255.255

obj-10.76.6.111

10.76.0.0 255.255.0.0

obj-10.76.0.0


Ranges—obj-a.b.c.d-p.q.r.s

Table 16 lists range inline object migration naming examples.

Table 16 Range Inline Object Migration Naming Examples

Inline Value
Network Object Name

10.76.6.111-10.76.6.112

obj-10.76.6.111-10.76.6.112


Inline Protocol Naming Conventions

For migrated protocols used inline, service objects are created using the following naming convention: obj-inline_text.

Table 17 lists protocol inline object migration naming examples.

Table 17 Protocol Inline Object Migration Naming Examples

Inline Value
Service Object Name

tcp source range 20 50 eq 2000

obj-tcp_source_range_20_50_eq_2000

tcp gt 1500

obj-tcp_gt_1500


Network Object Naming Conventions with Multiple global Commands with the Same NAT ID

For multiple global commands that share the same NAT ID, a network object group is created that contains the network objects created for the inline IP addresses. The following naming convention is used: og-global-interface_nat-id.

Old Configuration

global (outside) 1 10.76.6.111

global (outside) 1 10.76.6.109-10.76.6.110

New Network Objects and Groups

object network obj-10.76.6.111

host 10.76.6.111

object network obj-10.76.6.109-10.76.6.110

range 10.76.6.109-10.76.6.110

object-group og-global-outside_1

network-object obj-10.76.6.111
network-object obj-10.76.6.109-10.76.6.110

Downgrading from Version 8.3

When you upgrade to Version 8.3, your configuration is migrated. The old configuration is automatically stored in flash memory. For example when you upgrade from 8.2(1) to 8.3(1), the old 8.2(1) configuration is stored in flash memory in a file called 8_2_1_0_startup_cfg.sav.

This section describes how to downgrade, and includes the following topics:

Information About Activation Key Compatibility

Performing the Downgrade

Information About Activation Key Compatibility

Your activation key remains compatible if you upgrade to the latest version from any previous version. However, you might have issues if you want to maintain downgrade capability:

Downgrading to Version 8.1 or earlier—After you upgrade, if you activate additional feature licenses that were introduced before 8.2, then the activation key continues to be compatible with earlier versions if you downgrade. However if you activate feature licenses that were introduced in 8.2 or later, then the activation key is not backwards compatible. If you have an incompatible license key, then see the following guidelines:

If you previously entered an activation key in an earlier version, then the ASA uses that key (without any of the new licenses you activated in Version 8.2 or later).

If you have a new system and do not have an earlier activation key, then you need to request a new activation key compatible with the earlier version.

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.

Performing the Downgrade

To downgrade from 8.3, perform the following steps.

Detailed Steps

For the CLI:


Step 1 Enter the following command:

hostname(config)# downgrade [/noconfirm] old_image_url old_config_url [activation-key 
old_key] 
 
   

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, pre-migration configuration (by default this was saved on disk0). If you need to revert to a pre-8.3 activation key, then 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).

3. (Optional) Entering a new activation key (activation-key).

4. Saving the running configuration to startup (write memory). This sets the BOOT environment variable to the old image, so when you reload, the old image is loaded.

5. Copying the old configuration to the startup configuration (copy old_config_url startup-config).

6. Reloading (reload).

For example:

hostname(config)# downgrade /noconfirm disk0:/asa821-k8.bin disk0:/8_2_1_0_startup_cfg.sav
 
   

For ASDM:


Step 1 Choose Tools > Downgrade Software.

The Downgrade Software dialog box appears.

Figure 1 Downgrade Software

Step 2 For the ASA Image, click Select Image File.

The Browse File Locations dialog box appears.

Step 3 Click one of the following radio buttons:

Remote Server—Choose ftp, smb, or http from the drop-down list, and type the path to the old image file.

Flash File System—Click Browse Flash to choose the old image file on the local flash file system.

Step 4 For the Configuration, click Browse Flash to choose the pre-migration configuration file. (By default this was saved on disk0).

Step 5 (Optional) In the Activation Key field, enter the old activation key if you need to revert to a pre-8.3 activation key.

Step 6 Click Downgrade.

This tool 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).

3. (Optional) Entering a new activation key (activation-key).

4. Saving the running configuration to startup (write memory). This sets the BOOT environment variable to the old image, so when you reload, the old image is loaded.

5. Copying the old configuration to the startup configuration (copy old_config_url startup-config).

6. Reloading (reload).