Cisco ASA 5500 Migration to Version 8.3

This guide describes the configuration migration process when you upgrade from a pre-8.3 version of the Cisco ASA 5500 operating system (OS) to Version 8.3. If you upgrade directly to 8.4, then the 8.3 migrations are still applied; you do not need to upgrade to 8.3 first and then to 8.4. Due to additional configuration migration in Version 9.0 (see the 9.0 upgrade guide), we suggest that you upgrade to Version 8.4 first, and then to Version 9.0.

This guide includes the following sections:

Upgrading the Software

To upgrade the software, see the upgrade instructions for your target version:

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

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

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

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

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.

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

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

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

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

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.
 

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.

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.

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’.

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
 

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

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.

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
 

keyword:

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

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:


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

command was never supported in ASDM.

New NAT Commands

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

Object network

]

Object network

]

Global

]

Global

]


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

:

 

Table 4 Supporting Commands for NAT

Generated Commands
Description

commands when an inline address (one that is entered directly in the command) is not feasible.

commands.

commands.

command that was formerly used in policy NAT.

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:

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.

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.

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

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

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

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.

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:

  • 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).

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

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.

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

option in static PAT and policy NAT commands will be ignored.

lists DNS rewrite migration examples.

 

Table 10 DNS Rewrite Migration Examples

Description
Configuration Migration
Type / Section

Static command with dns option

Old Configuration

 

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

will be moved to service policies.

.

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

 

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

 

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.

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
 

 

(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.)

 

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
 

 

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

 

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

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

lists alias migration examples.

 

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

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.

command will be removed and will not be migrated.

command, you will need to recreate the configuration using the new NAT commands.

 

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.

. This is semantically different as the new rule applies to all interfaces including itself.

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.

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

 

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.

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.

 

Old Configuration

nat (inside) 10 10.0.0.0 255.0.0.0

netmask 255.255.255.254

 

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

 

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
 

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.

command is no longer supported.

option in the new NAT commands to enable/disable DNS rewrite.

 

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

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

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.

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.

.


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:

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

name Command Naming Conventions

command.

command used in NAT:

name 10.1.1.1 test
 

command is created:

object network test
host 10.1.1.1
 

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.

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

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

.

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

.

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

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]
 

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:

).

).

).

). This sets the BOOT environment variable to the old image, so when you reload, the old image is loaded.

).

).

For example:

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

 

For ASDM:


.

The Downgrade Software dialog box appears.

Figure 1 Downgrade Software

 

.

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.

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.

.

This tool is a shortcut for completing the following functions:

).

).

).

). This sets the BOOT environment variable to the old image, so when you reload, the old image is loaded.

).

).