Table Of Contents
IPsec NAT Transparency
Contents
Restrictions for IPsec NAT Transparency
Information About IPsec NAT Transparency
Benefit of IPsec NAT Transparency
Feature Design of IPsec NAT Traversal
IKE Phase 1 Negotiation: NAT Detection
IKE Phase 2 Negotiation: NAT Traversal Decision
UDP Encapsulation of IPsec Packets for NAT Traversal
UDP Encapsulated Process for Software Engines: Transport Mode and Tunnel Mode ESP Encapsulation
NAT Keepalives
How to Configure NAT and IPsec
Configuring NAT Traversal
Disabling NAT Traversal
Configuring NAT Keepalives
Verifying IPsec Configuration
Configuration Examples for IPsec and NAT
NAT Keepalives Configuration Example
Additional References
Related Documents
Standards
MIBs
RFCs
Technical Assistance
Command Reference
Glossary
IPsec NAT Transparency
The IPsec NAT Transparency feature introduces support for IP Security (IPsec) traffic to travel through Network Address Translation (NAT) or Port Address Translation (PAT) points in the network by addressing many known incompatabilites between NAT and IPsec.
Feature Specifications for the IPsec NAT Transparency feature
Feature History
|
|
Release
|
Modification
|
12.2(13)T
|
This feature was introduced.
|
Cisco IOS XE Release 2.1
|
This feature was introduced on Cisco ASR 1000 Series Routers.
|
Supported Platforms
|
For platforms supported in Cisco IOS Release 12.2(13)T, consult Cisco Feature Navigator.
|
Determining Platform Support Through Cisco Feature Navigator
Cisco IOS software is packaged in feature sets that are supported on specific platforms. To get updated information regarding platform support for this feature, access Cisco Feature Navigator. Cisco Feature Navigator dynamically updates the list of supported platforms as new platform support is added for the feature.
Cisco Feature Navigator is a web-based tool that enables you to determine which Cisco IOS software images support a specific set of features and which features are supported in a specific Cisco IOS image. You can search by feature or release. Under the release section, you can compare releases side by side to display both the features unique to each software release and the features in common.
To access Cisco Feature Navigator, you must have an account on Cisco.com. If you have forgotten or lost your account information, send a blank e-mail to cco-locksmith@cisco.com. An automatic check will verify that your e-mail address is registered with Cisco.com. If the check is successful, account details with a new random password will be e-mailed to you. Qualified users can establish an account on Cisco.com by following the directions found at this URL:
http://www.cisco.com/register
Cisco Feature Navigator is updated regularly when major Cisco IOS software releases and technology releases occur. For the most current information, go to the Cisco Feature Navigator home page at the following URL:
http://tools.cisco.com/ITDIT/CFN/jsp/index.jsp
Availability of Cisco IOS Software Images
Platform support for particular Cisco IOS software releases is dependent on the availability of the software images for those platforms. Software images for some platforms may be deferred, delayed, or changed without prior notice. For updated information about platform support and availability of software images for each Cisco IOS software release, refer to the online release notes or, if supported, Cisco Feature Navigator.
Contents
•
Restrictions for IPsec NAT Transparency
•
Information About IPsec NAT Transparency
•
How to Configure NAT and IPsec
•
Configuration Examples for IPsec and NAT
•
Additional References
•
Command Reference
•
Glossary
Restrictions for IPsec NAT Transparency
Although this feature addresses many incompatibilities between NAT and IPsec, the following problems still exist:
Internet Key Exchange (IKE) IP Address and NAT
This incompatibility applies only when IP addresses are used as a search key to find a preshared key. Modification of the IP source or destination addresses by NAT or reverse NAT results in a mismatch between the IP address and the preshared key.
Embedded IP Addresses and NAT
Because the payload is integrity protected, any IP address enclosed within IPsec packets cannot be translated by NAT. Protocols that use embedded IP addresses include FTP, Internet Relay Chat (IRC), Simple Network Mangement Protocol (SNMP), Lightweight Directory Access Protocol (LDAP), H.323, and Session Initiation Protocol (SIP).
Information About IPsec NAT Transparency
To configure the IPsec NAT Transparency feature, you must understand the following concepts:
•
Benefit of IPsec NAT Transparency
•
Feature Design of IPsec NAT Traversal
•
NAT Keepalives
Benefit of IPsec NAT Transparency
Before the introduction of this feature, a standard IPsec virtual private network (VPN) tunnel would not work if there were one or more NAT or PAT points in the delivery path of the IPsec packet. This feature makes NAT IPsec-aware, thereby, allowing remote access users to build IPsec tunnels to home gateways.
Feature Design of IPsec NAT Traversal
The IPsec NAT Transparency feature introduces support for IPsec traffic to travel through NAT or PAT points in the network by encapsulating IPsec packets in a User Datagram Protocol (UDP) wrapper, which allows the packets to travel across NAT devices. The following sections define the details of NAT traversal:
•
IKE Phase 1 Negotiation: NAT Detection
•
IKE Phase 2 Negotiation: NAT Traversal Decision
•
UDP Encapsulation of IPsec Packets for NAT Traversal
•
UDP Encapsulated Process for Software Engines: Transport Mode and Tunnel Mode ESP Encapsulation
IKE Phase 1 Negotiation: NAT Detection
During Internet Key Exchange (IKE) phase 1 negotiation, two types of NAT detection occur before IKE Quick Mode begins—NAT support and NAT existence along the network path.
To detect NAT support, you should exchange the vendor identification (ID) string with the remote peer. During Main Mode (MM) 1 and MM 2 of IKE phase 1, the remote peer sends a vendor ID string payload to its peer to indicate that this version supports NAT traversal. Thereafter, NAT existence along the network path can be determined.
Detecting whether NAT exists along the network path allows you to find any NAT device between two peers and the exact location of NAT. A NAT device can translate the private IP address and port to public value (or from public to private). This translation changes the IP address and port if the packet goes through the device. To detect whether a NAT device exists along the network path, the peers should send a payload with hashes of the IP address and port of both the source and destination address from each end. If both ends calculate the hashes and the hashes match, each peer knows that a NAT device does not exist on the network path between them. If the hashes do not match (that is, someone translated the address or port), then each peer needs to perform NAT traversal to get the IPsec packet through the network.
The hashes are sent as a series of NAT discovery (NAT-D) payloads. Each payload contains one hash; if multiple hashes exist, multiple NAT-D payloads are sent. In most environments, there are only two NAT-D payloads—one for the source address and port and one for the destination address and port. The destination NAT-D payload is sent first, followed by the source NAT-D payload, which implies that the receiver should expect to process the local NAT-D payload first and the remote NAT-D payload second. The NAT-D payloads are included in the third and fourth messages in Main Mode and in the second and third messages in Aggressive Mode (AM).
IKE Phase 2 Negotiation: NAT Traversal Decision
While IKE phase 1 detects NAT support and NAT existence along the network path, IKE phase 2 decides whether or not the peers at both ends will use NAT traversal. Quick Mode (QM) security association (SA) payload in QM1 and QM2 is used to for NAT traversal negotiation.
Because the NAT device changes the IP address and port number, incompatablities between NAT and IPsec can be created. Thus, exchanging the original source address bypasses any incompatablities.
UDP Encapsulation of IPsec Packets for NAT Traversal
In addition to allowing IPsec packets to traverse across NAT devices, UDP encapsulation also addresses many incompatability issues between IPsec and NAT and PAT. The resolved issues are as follows:
Incompatability Between IPsec ESP and PAT—Resolved
If PAT found a legislative IP address and port, it would drop the Encapsulating Security Payload (ESP) packet. To prevent this scenario, UDP encapulation is used to hide the ESP packet behind the UDP header. Thus, PAT treats the ESP packet as a UDP packet, processing the ESP packet as a normal UDP packet.
Incompatability Between Checksums and NAT—Resolved
In the new UDP header, the checksum value is always assigned to zero. This value prevents an intermediate device from validating the checksum against the packet checksum, thereby, resolving the TCP UDP checksum issue because NAT changes the IP source and destination addresses.
Incompatability Between Fixed IKE Destination Ports and PAT—Resolved
PAT changes the port address in the new UDP header for translation and leaves the original payload unchanged.
To see how UDP encapsulation helps to send IPSec packets see Figure 1 and Figure 2.
Figure 1 Standard IPsec Tunnel Through a NAT/PAT Point (No UDP Encapsulation)
Figure 2 IPsec Packet with UDP Encapsulation
UDP Encapsulated Process for Software Engines: Transport Mode and Tunnel Mode ESP Encapsulation
After the IPsec packet is encrypted by a hardware accelerator or a software crypto engine, a UDP header and a non-IKE marker (which is 8 bytes in length) are inserted between the original IP header and ESP header. The total length, protocol, and checksum fields are changed to match this modification. Figure 3 shows an IPsec packet before and after transport mode is applied; Figure 4 shows an IPsec packet before and after tunnel mode is applied.
Figure 3 Transport Mode—IPsec Packet Before and After ESP Encapsulation
Figure 4 Tunnel Mode—IPsec Packet Before and After ESP Encapsualtion
NAT Keepalives
NAT keepalives are enabled to keep the dynamic NAT mapping alive during a connection between two peers. NAT keepalives are UDP packets with an unencrypted payload of 1 byte. Although the currrent dead peer detection (DPD) implementation is similar to NAT keepalives, there is a slight difference: DPD is used to detect peer status, while NAT keepalives are sent if the IPsec entity did not send or receive the packet at a specified period of time—valid range is between 5 to 3600 seconds.
If NAT keepalives are enabled (via the crypto isamkp nat keepalive command), users should ensure that the idle value is shorter than the NAT mapping expiration time, which is 20 seconds.
How to Configure NAT and IPsec
This section contains the following procedures:
•
Configuring NAT Traversal (optional)
•
Disabling NAT Traversal (optional)
•
Configuring NAT Keepalives (optional)
•
Verifying IPsec Configuration (optional)
Configuring NAT Traversal
NAT Traversal is a feature that is auto detected by VPN devices. There are no configuration steps for a router running Cisco IOS Release 12.2(13)T. If both VPN devices are NAT-T capable, NAT Traversal is auto detected and auto negotiated.
Disabling NAT Traversal
You may wish to disable NAT traversal if you already know that your network uses IPsec-awareness NAT (spi-matching scheme). To disable NAT traversal, use the following commands:
SUMMARY STEPS:
1.
enable
2.
configure terminal
3.
no crypto ipsec nat-transparency udp-encapsulation
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
enable
Example:
Router> enable
|
Enables higher privilege levels, such as privileged EXEC mode.
Enter your password if prompted.
|
Step 2
|
configure terminal
Example:
Router# configure terminal
|
Enters global configuration mode.
|
Step 3
|
no crypto ipsec nat-transparency
udp-encapsulation
Example:
Router(config)# no crypto ipsec nat-transparency udp-encapsulation
|
Disables NAT traversal.
|
Configuring NAT Keepalives
To configure your router to send NAT keepalives, use the following commands:
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
crypto isakmp nat keepalive seconds
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
enable
Example:
Router> enable
|
Enables higher privilege levels, such as privileged EXEC mode.
Enter your password if prompted.
|
Step 2
|
configure terminal
Example:
Router# configure terminal
|
Enters global configuration mode.
|
Step 3
|
crypto isakmp nat keepalive seconds
Example:
Router(config)# crypto isakmp nat keepalive 20
|
Allows an IPsec node to send NAT keepalive packets.
• seconds—The number of seconds between keepalive packets; range is between 5 to 3,600 seconds.
|
Verifying IPsec Configuration
To verify your configuration, perform the following optional steps:
SUMMARY STEPS
1.
enable
2.
show crypto ipsec sa [map map-name | address | identity] [detail]
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
enable
Example:
Router> enable
|
Enables higher privilege levels, such as privileged EXEC mode.
Enter your password if prompted.
|
Step 2
|
show crypto ipsec sa [map map-name | address |
identity] [detail]
Example:
Router# show crypto ipsec sa
|
Displays the settings used by current SAs.
|
Configuration Examples for IPsec and NAT
This section provides the following configuration example:
•
NAT Keepalives Configuration Example
NAT Keepalives Configuration Example
The following example shows how to enable NAT keepalives to be sent every 20 seconds:
crypto isakmp key 1234 address 56.0.0.1
crypto isakmp nat keepalive 20
crypto ipsec transform-set t2 esp-des esp-sha-hmac
crypto map test2 10 ipsec-isakmp
match address 101
Additional References
The following sections provide additional references related to IPsec NAT Transparency:
•
Related Documents
•
Standards
•
MIBs
•
RFCs
•
Technical Assistance
Related Documents
Standards
MIBs
MIBs
|
MIBs Link
|
None
|
To locate and download MIBs for selected platforms, Cisco IOS software releases, and feature sets, use Cisco MIB Locator found at the following URL:
http://www.cisco.com/go/mibs
|
RFCs
|
|
Title
|
RFC 2402
|
IP Authentication Header
|
RFC 2406
|
IP Encapsulating Security Payload (ESP)
|
Technical Assistance
Description
|
Link
|
The Cisco Support website provides extensive online resources, including documentation and tools for troubleshooting and resolving technical issues with Cisco products and technologies.
To receive security and technical information about your products, you can subscribe to various services, such as the Product Alert Tool (accessed from Field Notices), the Cisco Technical Services Newsletter, and Really Simple Syndication (RSS) Feeds.
Access to most tools on the Cisco Support website requires a Cisco.com user ID and password.
|
http://www.cisco.com/techsupport
|
Command Reference
The following commands are introduced or modified in the feature or features
•
crypto isamkp nat keepalive
•
access-list (IP extended)
•
show crypto ipsec sa
For information about these commands, see the Cisco IOS Security Command Reference at
http://www.cisco.com/en/US/docs/ios/security/command/reference/sec_book.html.
For information about all Cisco IOS commands, see the Command Lookup Tool at
http://tools.cisco.com/Support/CLILookup or the Master Command List.
Glossary
IKE—Internet Key Exchange. Hybrid protocol that implements Oakley key exchange and Skeme key exchange inside the Internet Security Association Key Management Protocol (ISAKMP) framework. Although IKE can be used with other protocols, its initial implementation is with IPsec. IKE provides authentication of the IPsec peers, negotiates IPsec keys, and negotiates IPsec security associations (SAs).
IPsec—IP Security. Framework of open standards developed by the Internet Engineering Task Force (IETF). IPsec provides security for transmission of sensitive information over unprotected networks such as the Internet. IPsec acts at the network layer, protecting and authenticating IP packets between participating IPsec devices ("peers"), such as Cisco routers.
NAT—Network Address Translation. Translates a private IP address used inside the corporation to a public, routable address for use on the outside of the corporation, such as the Internet. NAT is considered a one-to-one mapping of addresses from private to public.
PAT—Port Address Translation. Like NAT, PAT also translated private IP address to public, routable addresses. Unlike NAT, PAT provides a many-to-one mapping of private addresses to a public address; each instance of the public address is associated with a particular port number to provide uniqueness. PAT can be used in environments where the cost of obtaining a range of public addresses is too expensive for an organization.
Note
Refer to the Internetworking Terms and Acronyms for terms not included in this glossary.
CCDE, CCENT, CCSI, Cisco Eos, Cisco HealthPresence, Cisco IronPort, the Cisco logo, Cisco Lumin, Cisco Nexus, Cisco Nurse Connect, Cisco StackPower, Cisco StadiumVision, Cisco TelePresence, Cisco Unified Computing System, Cisco WebEx, DCE, Flip Channels, Flip for Good, Flip Mino, Flip Video, Flip Video (Design), Flipshare (Design), Flip Ultra, and Welcome to the Human Network are trademarks; Changing the Way We Work, Live, Play, and Learn, Cisco Store, and Flip Gift Card are service marks; and Access Registrar, Aironet, AsyncOS, Bringing the Meeting To You, Catalyst, CCDA, CCDP, CCIE, CCIP, CCNA, CCNP, CCSP, CCVP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Cisco Unity, Collaboration Without Limitation, EtherFast, EtherSwitch, Event Center, Fast Step, Follow Me Browsing, FormShare, GigaDrive, HomeLink, Internet Quotient, IOS, iPhone, iQuick Study, IronPort, the IronPort logo, LightStream, Linksys, MediaTone, MeetingPlace, MeetingPlace Chime Sound, MGX, Networkers, Networking Academy, Network Registrar, PCNow, PIX, PowerPanels, ProConnect, ScriptShare, SenderBase, SMARTnet, Spectrum Expert, StackWise, The Fastest Way to Increase Your Internet Quotient, TransPath, WebEx, and the WebEx logo are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the United States and certain other countries.
All other trademarks mentioned in this document or website are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (0907R)
Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and coincidental.
© 2009 Cisco Systems, Inc. All rights reserved.