Ivy Consultants Inc.

Consulting Services for Security, Networking, Wi-Fi and Windows Server

What is IPSEC?

IPSec stands for “IP Security” and the standard definition of IPSEC is–

“A security protocol in the network layer will be developed to provide cryptographic security services that will flexibly support combinations of authentication, integrity, access control, and confidentiality” (IETF)

It is a standard for privacy, integrity and authenticity.

IPSEC Protocol Architecture

IPSEC is basically a combination of three primary protocols ESP(protocol 50), AH(protocol 51) and IKE(UDP 500)

For Authentication: Authentication Header (AH) and  Encapsulating Security Payload (ESP)

For Integrity Check: Encapsulating Security Payload (ESP)

For Confidentiality: Encapsulating Security Payload  (ESP)

Bringing it all together: Internet key Exchange (IKE)

IPSEC is implemented in the following five stages:

Decision to use IPSEC between two end points across internet

Configuration of the two gateways between the end points to support IPSEC

Initiation of an IPSEC tunnel between the two gateways due to ‘interesting traffic’

Negotiation of IPSEC/IKE parameters between the two gateways

Passage of encrypted traffic

IPSec Troubleshooting Steps

  • Check  for interesting traffic to initiate tunnel, check crypto ACLs for hit      counts

–        If not, verify Routing (static or RRI)

  • Verify  if IKE SA is up (QM_Idle) for that peer

–        If not, verify for matching Pre-shared keys

–        Verify that the IKE policies (encr, auth, DH) are matching

–        Verify for matching IKE Identities

  • Verify  if IPSec SAs are up (Inbound and Outbound SPIs)

–        If not, verify for matching IPSec transform sets

–        Verify for mirrored crypto ACLs on each side

–        Verify that the Crypto Map is applied on the right interface

  • Turn on IKE/IPSec debugs

IPSec Show Commands

  • To show IKE SA information:

–        show crypto isakmp sa <vrf> [detail]

–        show crypto isakmp peer <ip-addr>

  • To show IPSec SA information:

–        show crypto ipsec sa [ address | detail | interface | map | per | vrf ]

  • To  show IKE and IPSec information together :

–        show crypto session  [ fvrf | group | ivrf ] username | detail ]

–        show crypto engine connection active

Cisco IOS IPSec Debugging

  • These are the current IKE/IPSec debugs available; the highlighted ones are the      most useful typically
  • Make  sure to use Crypto Conditional Debugs when trying to troubleshoot      production routers

        debug crypto isakmp

        debug crypto isakmp error

        debug crypto isakmp ha          

        debug crypto ipsec      

        debug crypto ipsec error         

        debug crypto routing       

        debug crypto ha        

        debug crypto engine error      

        debug crypto engine packet     

Crypto Conditional Debugging

We can use crypto conditional debugging when we are troubleshooting live networks and specially where there are multiple tunnels running on the device.

  • The crypto conditional debug CLIs—debug crypto condition, debug crypto condition unmatched, and show crypto debug-condition— allow you to specify conditions (filter values) in which to generate and display debug messages related only to the specified conditions
  • The router will perform conditional debugging only after at least one of the global crypto debug commands—debug crypto isakmp, debug crypto ipsec, or debug crypto engine—has been enabled; thi s requirement helps to ensure that the performance of the router will not be impacted when conditional debugging is not being used
  • To  enable crypto conditional debugging:

–        debug crypto condition <cond-type> <cond-value>

–        debug crypto { isakmp | ipsec | engine }

  • To view crypto condition debugs that have been enabled:

–        show crypto debug-condition [ all | peer | fvrf | ivrf | isakmp | username | connid | spi ]

  • To disable crypto condition debugs:

–        debug crypto condition reset

Crypto Conditional Debugging

FvrfThe name string of a virtual private network (VPN) routing and forwarding (VRF)   instance; relevant debug messages will be shown if the current IPSec operation uses this VRF instance as its front-door VRF (FVRF)
ivrfThe name string of a VRF instance; relevant debug messages will be shown if the   current IPSec operation uses this VRF instance as its inside VRF (IVRF)
isakmp   profileThe name string of the isakmp profile to be matched against for debugging
Local   ipv4The IP address string of the local IKE endpoint
Peer   groupA ezvpn   group name string; relevant debug messages will be shown if the peer is using   this group name as its identity
Peer   ipv4A single IP address; relevant debug messages will be shown if the current IPSec   operation is related to the IP address of this peer
Peer   subnetA subnet and a subnet mask that specify a range of peer IP addresses; relevant debug   messages will be shown if the IP address of the current IPSec peer falls into the specified subnet range
Peer   hostnameA fully qualified domain name (FQDN) string; relevant debug messages will be shown if   the peer is using this string as its identity
usernameThe username string (XAuth username or PKI-aaa username obtained from a   certificate)

Clearing VPN Tunnel

  • To clear IKE Phase ( Phase 1)

clear crypto isakmp sa

  • To clear IPSEC Phase (Phase2)

   clear crypto ipsec sa

Crypto Logging

Two crypto logging enhancements were introduced in recent Cisco IOS images

Hub(config)# crypto logging ?

–          ezvpn                  ezvpn logging enable/disable

–          session               logging up/down session

–        Crypto logging session, introduced in 12.3(14)T, displays tunnel up/down messages:

–        %CRYPTO-5-SESSION_STATUS: Crypto tunnel is UP  .  Peer 40.10.1.1:500       Id: 40.10.1.1

–        %CRYPTO-5-SESSION_STATUS: Crypto tunnel is DOWN.  Peer 40.10.1.1:500       Id: 40.10.1.1

–        Crypto logging ezvpn, introduced in 12.4(4)T, displays EasyVPN connection messages

–        %CRYPTO-5-SESSION_STATUS: Crypto tunnel is DOWN.  Peer 2.2.2.2:500 f_vrf:  FVRF1     Id: cisco

–        %CRYPTO-6-EZVPN_CONNECTION_DOWN: (Server)  Mode=NEM  Client_type=CISCO_IOS  User=  Group=cisco  Client_public_addr=2.2.2.2  Server_public_addr=1.1.1.2  f_vrf=FVRF1

–        %CRYPTO-5-SESSION_STATUS: Crypto tunnel is UP  .  Peer 2.2.2.2:500 f_vrf:  FVRF1     Id: cisco

–        %CRYPTO-6-EZVPN_CONNECTION_UP: (Server)  Mode=NEM  Client_type=CISCO_IOS  User=  Group=cisco  Client_public_addr=2.2.2.2  Server_public_addr=1.1.1.2  f_vrf=FVRF1