Key Exchange Protocols

Key exchange protocols enable secure communications over an untrusted network by deriving and distributing shared keys between two or more parties. The Internet Key Exchange (IKEv1) Protocol, originally defined in RFC 2409, provides a method for creating keys used by IPsec tunnels. Session Description Protocol Security Descriptions for Media Streams (SDES), defined in RFC 4568, provides alternative methods for creating keys used to encrypt Real-time Transport Protocol (RTP) and Real-time Transport Control Protocol (RTCP) transactions.

Each of these protocols is described in the following sections.

IKEv1 Protocol

IKEv1 is specified by a series of RFCs, specifically RFCs 2401 through 2412. The most relevant are:

  • RFC 2407, The Internet IP Security Domain of Interpretation for ISAKMP
  • RFC 2408, Internet Security Association and Key Management Protocol (ISAKMP)
  • RFC 2409, The Internet Key Exchange (IKE)
  • RFC 2412, Oakley Key Determination Protocol

IKEv1 combines features of the Internet Security Association and Key Management Protocol (ISAKMP) and Oakley Key Determination Protocol in order to negotiate Security Associations (SA) for two communicating peers. IKEv1 also provides for key agreement using Diffie-Hellman.

IKEv1 uses two phases. Phase 1 is used to establish an ISAKMP Security Association for IKEv1 itself. Phase 1 negotiates the authentication method and symmetric encryption algorithm to be used. Phase 1 requires either six messages (main mode) or three messages (aggressive mode).

Phase 2 negotiates the SA for two IPsec peers and is accomplished with three messages.

The initial IKEv1 implementation supports RFC 2409, Internet Key Exchange, and RFC 3706, A Traffic-Based Method of Detecting Dead Internet Key Exchange (IKE) Peers.

IKEv1 Configuration

IKEv1 configuration consists of five steps.

  1. Configure IKEv1 global parameters.
  2. Optionally, enable and configure Dead Peer Detection (DPD) Protocol.
  3. Configure IKEv1 interfaces.
  4. Configure IKEv1 Security Associations (SA).
  5. Assign the IKEv1 SA to an IPsec Security Policy.

IKEv1 Global Configuration

To configure global IKEv1 parameters:

Note:

DPD only works with IKEv2.
  1. From superuser mode, use the following command sequence to access ike-config configuration mode. While in this mode, you configure global IKEv1 configuration parameters.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ike
    ORACLE(ike)# ike-config
    ORACLE(ike-config)#
  2. Use the ike-version parameter to specify IKEv1.

    Use 1 to specify IKEv1 operations.

  3. Use the log-level parameter to specify the contents of the IKEv1 log.

    Events are listed below in descending order of criticality.

    • emergency (most critical)
    • critical
    • major
    • minor
    • warning
    • notice
    • info (least critical — the default)
    • trace (test/debug, not used in production environments)
    • debug (test/debug, not used in production environments)
    • detail (test/debug, not used in production environments)

    In the absence of an explicitly configured value, the default value of info is used.

  4. Use the optional udp-port parameter to specify the port monitored for IKEv1 protocol traffic.

    In the absence of an explicitly configured value, the default port number of 500 is used.

  5. Use the optional negotiation-timeout parameter to specify the maximum interval (in seconds) between Diffie-Hellman message exchanges.

    In the absence of an explicitly configured value, the default specifies a 15 second timeout value.

  6. Use the optional event-timeout parameter to specify the maximum time (in seconds) allowed for the duration of an IKEv1 event, defined as the successful establishment of an IKE or IPsec Security Association (SA).

    In the absence of an explicitly configured value, the default specifies a 60 second time span.

  7. Use the optional phase1-mode parameter to specify the IKE Phase 1 exchange mode.

    During Phase 1 the IKE initiator and responder establish the IKE SA, using one of two available methods.

    main mode — (the default) is more verbose, but provides greater security in that it does not reveal the identity of the IKE peers. Main mode requires six messages (3 requests and corresponding responses) to (1) negotiate the IKE SA, (2) perform a Diffie-Hellman exchange of cryptographic material, and (3) authenticate the remote peer.

    aggressive mode — is less verbose (requiring only three messages), but less secure in providing no identity protection, and less flexible in IKE SA negotiation.

    In the absence of an explicitly configured value, the default (main mode) is used.

  8. Use the optional phase1-dh-mode parameter to specify the Diffie-Hellman Group used during IKE Phase 1 negotiation.

    dh-group1 — as initiator, propose Diffie-Hellman group 1 (768-bit primes, less secure)

    dh-group2 — as initiator, propose Diffie-Hellman group 2 (1024-bit primes, more secure)

    first-supported — (the default) as responder, use the first supported Diffie-Hellman group proposed by initiator

  9. If functioning as the IKE initiator, use the optional phase1-life-seconds parameter to specify the proposed lifetime (in seconds) for the IKE SA established during IKE Phase 1 negotiations.

    Allowable values are within the range 1 through 999999999 (seconds) with a default of 3600 (1 hour).

    This parameter can safely be ignored if functioning as a IKE responder.

  10. If functioning as the IKE responder, use the optional phase1-life-seconds-max parameter to specify the maximum time (in seconds) accepted for IKE SA lifetime during IKE Phase 1 negotiations.

    Allowable values are within the range 1 through 999999999 (seconds) with a default of 86400 (1 day).

    This parameter can safely be ignored if functioning as a IKE initiator.

  11. If functioning as the IKE initiator, use the optional phase2-life-seconds parameter to specify the proposed lifetime (in seconds) for an IPsec SA established during IKE Phase 2 negotiations.

    Allowable values are within the range 1 through 999999999 (seconds) with a default of 28800 (8 hours).

    This parameter can safely be ignored if functioning as a IKE responder.

  12. If functioning as the IKE responder, use the optional phase2-life-seconds-max parameter to specify the maximum time (in seconds) accepted for IPsec SA lifetime during IKE Phase 2 negotiations.

    Allowable values are within the range 1 through 999999999 (seconds) with a default of 86400 (1 day).

    This parameter can safely be ignored if functioning as a IKE initiator.

  13. Use the optional phase2-exchange-mode parameter to specify the Diffie-Hellman group used in Phase 2 negotiations.

    dh-group1 — use Diffie-Hellman group 1 (768-bit primes, less secure)

    dh-group2 — use Diffie-Hellman group 2 (1024-bit primes, more secure)

    no-forward-secrecy — use the same key as used during Phase 1 negotiation

    Note:

    Forward security indicates that compromise of a single key permits access only to data encrypted with that specific key. Failure to generate a new key for IKE Phase 2 potentially compromises additional data.

    phase1-group — (the default) use the same Diffie-Hellman group as used during Phase 1 negotiation

  14. Use the shared-password parameter to specify the PSK (pre-shared key) used during authentication with the remote IKE peer.

    The PSK is a string of ACSII printable characters no longer than 255 characters (not displayed by the ACLI).

    This global PSK can be over-ridden by an interface-specific PSK.

  15. Use done, exit, and verify-config to complete configuration of IKEv1 global parameters instance.

IKEv1 Interface Configuration

To configure IKEv1 interface parameters:

  1. From superuser mode, use the following command sequence to access ike-config configuration mode. While in this mode, you configure IKEv1 interface parameters.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ike
    ORACLE(ike)# ike-interface
    ORACLE(ike-interface)#
  2. Use the state parameter to enable or disable this IKE interface.
  3. Use the version parameter to specify version 1 for this IKE interface.
  4. Use the address parameter to specify the IPv4 address of the interface.
  5. Use the realm-id parameter to specify the realm that contains the IP address assigned to this IKEv1 interface.
  6. Use the ike-mode parameter to specify the operational mode, either responder (the default) or initiator.
  7. If DPD has been enabled at the global level, use the dpd-params-name parameter to assign a DPD template, an operational set of DPD parameters, to the current IKEv1 interface.

    If DPD has not been enabled, this parameter can be safely ignored.

  8. Use the optional v1-ike-life-secs parameter to set the IKE SA lifetime in seconds if you plan to use rekey on this interface.
    • Default: 3600
    • Range: 1 to 999999999
  9. /use the optional v1-ipsec-life-secs parameter to set the IPsec SA lifetime in seconds if you plan to use rekey on this interface.
    • Default: 28800
    • Range: 1 to 999999999
  10. v1-rekey—(Optional) Enable or disable the automatic re-keying of expired IKEv1 or IPsec SAs on this IKEv1 interface.
  11. Use the optional shared-password parameter to assign an interface PSK.

    This IKEv1-interface-specific value over-rides the global default value set at the IKE configuration level.

  12. Use done, exit, and verify-config to complete configuration of IKEv1 interface.
  13. Repeat Steps 1 through 7 to configure additional IKEv1 interfaces.

IKEv1 Security Association Configuration

An IKEv1 SA identifies cryptographic material available for IPsec tunnel establishment.

To configure IKEv1 SA parameters:

  1. From superuser mode, use the following command sequence to access ike-sainfo configuration mode. While in this mode, you configure global IKEv1 SAs.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ike
    ORACLE(ike)# ike-sainfo
    ORACLE(ike-sainfo)#
  2. Use the required name parameter to provide a unique identifier for this ike-sainfo instance.

    name enables the creation of multiple ike-sainfo instances.

  3. Use the security-protocol parameter to specify the IPsec security (authentication and encryption) protocols supported by this SA.

    The following security protocols are available.

    Authentication Header (AH) — the default value — as defined by RFC 4302, IP Authentication Header, which provides authentication integrity to include the mutual identification of remote peers, non-repudiation of received traffic, detection of data that has been altered in transit, and detection of data that has been replayed, that is copied and then re-injected into the data stream at a later time. Authentication services utilize the authentication algorithm specified by the auth-algo property.

    Encapsulating Security Payload (ESP) as defined by RFC 4303, IP Encapsulating Security Payload, which provides both authentication and privacy services. Privacy services utilize the encryption algorithm specified by the encryption-algo property.

    ESP-AUTH (also RFC 4303-based), which supports ESP’s optional authentication.

    ESP-NULL (also RFC 4303-based) which proves NULL encryption as described in RFC 2410, The NULL Encryption Algorithm and Its Use With IPsec. This option provides no privacy services, and is not recommended for production environments.

    Refer to the following figures for additional details.

    Figure 13-1 AH Transport Mode

    AH Transport Mode

    Figure 13-2 AH Tunnel Mode

    AH Tunnel Mode

    Figure 13-3 ESP Transport Mode

    ESP Transport Mode

    Figure 13-4 ESP Tunnel Mode

    ESP Tunnel Mode
    ORACLE(ike-sainfo)# security-protocol esp
    ORACLE(ike-sainfo)#
  4. Use the auth-algo parameter to specify the authentication algorithms supported by this SA.

    The following authentication protocols are available

    Message Digest Algorithm 5 (md5) — as defined by RFC 1321, The MD5 Message-Digest Algorithm.

    Secure Hash Algorithm (sha) — as defined by RFC 3174, Secure Hash Standard.

    any (the default) — supports both MD5 and SHA-1.

    ORACLE(ike-sainfo)# auth-algo md5
    ORACLE(ike-sainfo)#
  5. Use the encryption-algo parameter to specify the encryption algorithms supported by this SA.

    The following encryption protocols are available

    Triple DES (3des) — as defined by ANSI X.9.52 1998, Triple Data Encryption Algorithm Modes of Operation.

    Advanced Encryption Standard (aes) — as defined by RFC 3565, Advanced Encryption Standard.

    NULL Encryption (null) — as described in RFC 2410, The NULL Encryption Algorithm and Its Use With IPsec. This option provides no privacy services, and is not recommended for production environments.

    any (the default) — supports all listed encryption protocols.

    ORACLE(ike-sainfo)# encryption-algo aes
    ORACLE(ike-sainfo)#
  6. Use the ipsec-mode parameter to specify the IPSec operational mode.

    Transport mode (the default) provides a secure end-to-end connection between two IP hosts. Transport mode encapsulates the IP payload.

    Tunnel mode provides VPN service where entire IP packets are encapsulated within an outer IP envelope and delivered from source (an IP host) to destination (generally a secure gateway) across an untrusted internet.

    Refer to the previous figures for encapsulation details.

    ORACLE(ike-sainfo)# ipsec-mode tunnel
    ORACLE(ike-sainfo)#
  7. If ipsec-mode is tunnel, use the required tunnel-local-addr parameter to specify the IP address of the local IKEv1 interface that terminates the IPsec tunnel.

    This parameter can safely be ignored if ipsec-mode is transport.

    ORACLE(ike-sainfo)# tunnel-local-addr 192.169.204.14
    ORACLE(ike-sainfo)#
  8. If ipsec-mode is tunnel, use the tunnel-remote-addr parameter to specify the IP address of the remote IKEv1 peer that terminates the IPsec tunnel.

    Provide the remote IP address, or use the default wild-card value (*) to match all IP addresses.

    This parameter can safely be ignored if ipsec-mode is transport.

    ORACLE(ike-sainfo)# tunnel-remote-addr *
    ORACLE(ike-sainfo)#
  9. Use done, exit, and verify-config to complete configuration of IKEv1 SA.
  10. Repeat Steps 1 through 9 to configure additional IKEv1 SAs.

IPsec Security Policy Configuration

Use the following procedure to assign an IKEv1 SA to an existing IPsec Security Policy. Note that the network interface supported by the IPsec Security Policy must have been configured as an IKEv1 interface.

  1. From superuser mode, use the following command sequence to access ike-config configuration mode. While in this mode, you configure global IKEv1 configuration parameters.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ipsec
    ORACLE(ipsec)# security-policy
    ORACLE(security-policy)#
  2. Use the required ike-sainfo-name parameter to assign an IKv1 SA to this IPsec Security Policy.
  3. Use done, exit, and verify-config to complete configuration of IPsec Security Policy.

IKEv2 Protocol

IKEv2 is specified by a series of RFCs, specifically RFCs 2401 through 2412. The most relevant are:

  • RFC 2412, Oakley Key Determination Protocol
  • RFC 4301, Security Architecture for the Internet Protocol
  • RFC 4306, Internet Key Exchange (IKEv2) Protocol
  • RFC 4718, IKEv2 Clarifications and Implementation Guidelines
  • RFC 5996, Internet Key Exchange (IKEv2) Protocol

IKEv2 combines features of the Internet Security Association and Key Management Protocol (ISAKMP) and Oakley Key Determination Protocol in order to negotiate Security Associations (SA) for two communicating peers. IKEv2 also provides for key agreement using Diffie-Hellman.

The initial IKEv2 implementation supports RFC 4306, Internet Key Exchange (IKEv2) Protocol, and RFC 3706, A Traffic-Based Method of Detecting Dead Internet Key Exchange (IKE) Peers.

IKEv2 Support

The Oracle® Enterprise Session Border Controller (ESBC) supports version 2 of the Internet Key Exchange (IKE) protocol. IKEv2 provides an initial handshake in which IKE peers negotiate cryptographic algorithms, mutually authenticate, and establish session keys to create an IKEv2 Security Association (SA) and an IPsec SA.

Key elements of IKEv2 support include:

  • Peering/SIP Trunking solutions and access-side use cases
  • Mutual authentication between the ESBC and its peers, including:
    • IKE rekey
    • Dead Peer Detection (DPD)
    • Initiator mode
    • Responder mode
  • Per-interface IKEv2 configuration
  • Simultaneous support of IKEv1 and IKEv2 protocols
  • Either tunnel or transport mode supported per IKE interface
  • Transcoding
  • Separate interfaces and IP addressing for SIP and IKE for related traffic
  • Certificate-based authentication during IKEv2 tunnel establishment
  • Multiple endpoints beyond tunnel remote address

With respect to IKE, if the peer does not support any of the encryption, hashing and integrity algorithms and Diffie Hellman groups supported by the ESBC, it rejects the IKEv2 establishment. With respect to IPsec, if the peer does not support any of the encryption, hashing and integrity algorithms supported by the ESBC, it does not create the child SA.

This can be implemented by removing these from the default list but allow manual configuration to add support.

At the IKEv2 global configuration level, users can do the following:

  1. Configure IKEv2 global parameters.
  2. Configure a default certificate profile.
  3. Configure pre-shared-keys if authentication is based on the contents of the IKEv2 Identification payload (optional).

Global configuration establishes a seet of default values. For overlapping configuration, the interface level takes precedence over global configuration.

IKEv2 Global Configuration

This section covers IKEv2 global configuration parameters, omitting IKEv1 parameters. A parameter within the global ike-config element can be overridden by the same parameter within the ike-interface element.

  1. Access the ike-config configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ike
    ORACLE(ike)# ike-config
  2. state—Set to enable.
  3. ike-version—Select the IKE protocol version 2.

    WARNING:

    Enabling version 2 in the ike-config element disables version 1 globally.
  4. log-level—Specify the level of the IKEv2-related logs.

    Log messages are listed below in descending order of severity.

    • emergency
    • critical
    • major
    • minor
    • warning
    • notice
    • info — (default)
    • trace — (test/debug, not used in production environments)
    • debug — (test/debug, not used in production environments)
    • detail — (test/debug, not used in production environments)
  5. udp-port—Set to 500.
  6. negotiation-timeout —Use the optional parameter to specify the maximum interval (in seconds) between Diffie-Hellman message exchanges.

    In the absence of an explicitly configured value, the default specifies a 15 second timeout value.

  7. v2-ike-life-secs—Specify the default lifetime (in seconds) of the IKEv2 SA.

    Allowable values are within the range 1 through 999999999.

  8. v2-ipsec-life-secs—Specify the default lifetime (in seconds) for the IPsec SA.

    Allowable values are within the range 1 through 999999999.

  9. v2-rekey —Enable or disable the re-keying of expired IKEv2 or IPsec SAs.

    When v2-rekey is enabled, the ESBC initiates a new negotiation to restore an expired IKEv2 or IPsec SA. The ESBC makes a maximum of three retransmission attempts before abandoning the re-keying effort.

  10. anti-replay —(Optional) Enable or disable anti-replay protection on IPsec SAs.
  11. shared-password—If using a shared password, provide the PSK used while authenticating the remote IKEv2 peer.

    Ensure the remote peer is configured with the same PSK.

    The value of shared-password in the ike-interface configuration element takes precedence over this value.

  12. eap-bypass-identity—(Optional) Specify whether or not to bypass the EAP identity phase.
  13. dpd-time-interval—(Optional) Specify the maximum period of inactivity (in seconds) before the DPD protocol is initiated on an endpoint.

    Values are within the range 1 through 999999999 (seconds).

  14. overload-threshold—Set the percentage of CPU usage that triggers an overload state.

    Values are within the range 1 through 100, and less than the value of overload-critical-threshold.

  15. overload-interval—Set the interval (in seconds) between CPU load measurements while in the overload state.

    Values are within the range 0 through 60 (seconds).

  16. overload-action—Select the action to take when the Oracle Communications Session Border Controller (as a SG) CPU enters an overload state. The overload state is reached when CPU usage exceeds the percentage threshold specified by the overload-threshold.
    Available values are:
    • none—(the default)
    • drop-new-connection—use to implement call rejection
  17. overload-critical-threshold—Set the percentage of CPU usage that triggers a critical overload state. This value must be greater than the value of overload-threshold.

    Values are within the range 1 through 100.

  18. overload-critical-interval—Set the interval (in seconds) between CPU load measurements while in the critical overload state.

    Values are within the range 0 through 60 (seconds).

  19. sd-authentication-method—Select the method used for local authentication of the IKEv2 peer.
    Two authentication methods are supported:
    • shared-password — (the default) uses a pre-shared key (PSK) to authenticate the IKEv2 peer.
    • certificate — uses an X.509 certificate to authenticate the IKEv2 peer.

      Note:

      If using a certificate for authentication, see the "Certificate Configuration Process" section in the Security chapter of the ACLI Configuration Guide.

    The sd-authentication-method value can be overridden at the ike-interface level.

  20. certificate-profile-id—If using a certificate, specify the ike-certificate-profile configuration element that contains identification and verification credentials required for PKI certificate-based IKEv2 authentication.

    The ike-certificate-profile value can be over-ridden at the ike-interface level.

  21. id-auth-type —(Optional) Specify that the PSK used while authenticating the remote IKEv2 peer is associated with the asserted identity contained within an IKEv2 Identification payload.

    Note:

    This attribute can be safely ignored if the PSK is defined globally or at the IKEv2 Interface level.
    Available values are:
    • idi—use IDi KEY_ID for authentication
    • idr—use IDr KEY_ID for authentication
  22. account-group-list—(Optional) Designate one or two existing IPsec accounting groups as available to support IPsec accounting transactions.
  23. Type done.

Configuring IKEv2 Interfaces

After configuring global IKE parameters, use the procedures described in this chapter to configure and monitor IKEv2 interfaces.

IKEv2 interface configuration consists of the following steps.

  1. Configure IKE interface attributes
  2. Configure Security Associations
  3. Configure Security Policies
  4. Configure the Dead Peer Detection Protocol (optional)
  5. Configure the Online Certificate Status Protocol or Certificate Revocation List Support (optional)
  6. Configure Threshold Crossing Alerts (optional)
  7. Configure access control whit/black lists (optional)
Debugging IKEv2 IPsec Tunnel Establishment

The Oracle® Enterprise Session Border Controller provides details of all IKE endpoints that establish IKEv2/IPsec tunnels. Logging can also be enabled by IP address and 
userid.

In a typical deployment scenario, the IP address can be the public address of a NAT device that communicates with the Oracle® Enterprise Session Border Controller; the user-id can be the user-id of a femtocell or an IKE endpoint residing behind the NAT. The user-id can be an EAP identity exchanged during EAP authentication, or the identity contained in the IDi payload of the initial IKE_AUTH message. Typically the identity in the IDi payload is an IP address, an FQDN, or an address as defined in RFC 822, Standard for the Format of ARPA Internet Text Messages.

Enabling/Disabling Targeted Debugging

Targeted debugging is enabled by the security ike debug-logging peer-ip-userid ACLI command which takes a single string argument in the form ipAddress:userID. For example:

ORACLE# security ike debug-logging peer-ip-userid 172.16.20.1:12EDE12626719
ORACLE#

With endpoint-specific logging enabled, the log.iked, log.authd, and log.secured files are populated with data pertinent to the target endpoint only and exclude date for all other endpoints. Logging is based on an exact match of the IP address and user-id provided by the argument string.

Note:

This command is expensive and should be used to debug one or two endpoints at a time. The operating system imposes a hard limit of no more than 5 simultaneous targeted debugging sessions.

Use the no form of the command to stop an existing targeted debugging session

ORACLE# security ike debug-logging peer-ip-userid 172.16.20.1:12EDE12626719 no
ORACLE#

Use the show security ike peer-endpoint-logging ACLI command to display a list of configured debug-logging sessions

ORACLE# show security ike peer-endpoint-logging 
ORACLE#
IPaddress : Userid
==============
172.16.20.1:12EDE12626719
ORACLE#
High Availability Caveat

Since the security ike debug-logging peer-ip-userid command is expensive, this implementation intentionally does NOT synchronize log data on the active and standby HA devices. Consequently, in the event of a switchover from the active to the standby, no log data is available on the newly active device. To enable debug-logging on the new active device, the user should verify tunnel establishment, and then use security ike debug-logging peer-ip-userid command on the currently active member of the HA pair.

Configure an IKEv2 Interface

This section covers IKEv2 global configuration parameters, omitting IKEv1 parameters. You can override global values set in the ike-config configuration element with values set at the ike-interface level.

  1. Access the ike-interface configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ike
    ORACLE(ike)# ike-interface
    ORACLE(ike-interface)# 
  2. state—Enable the IKEv2 interface.
  3. ike-version—Set this attribute to 2.
  4. address—Specify the IPv4 or IPv6 address of the interface.
    ORACLE(ike-interface)# address 10.0.0.10
  5. realm-id—Specify the realm that contains the IP address assigned to this IKEv2 interface.
    ORACLE(ike-interface)# realm-id access-10
  6. ike-mode—Specify whether the ESBC will act as a responder or initiator.
  7. dpd-params-name—Enable the Dead Peer Detection Protocol on this IKEv2 interface.

    The protocol is initially enabled by setting a non-zero value to the dpd-time-interval parameter during IKEv2 global configuration process. The protocol is enabled at the local level by assigning an existing dpd-params configuration element to this IKEv2 interface.

    Refer to Dead Peer Detection Protocol Configuration in this chapter for information on configuring dpd-params configuration elements.

    ORACLE(ike-interface)# dpd-params-name ikeDPD
  8. v2-ike-life-seconds—(Optional) Specify the lifetime (in seconds) for the IKEv2 SAs supported by this IKEv2 interface.
    The default is 86400 (24 hours).
    • Min: 1
    • Max: 999999999
  9. v2-ipsec-life-seconds—(Optional) Specify the lifetime (in seconds) for the IPsec SAs supported by this IKEv2 interface.
    The default is 28800 (8 hours).
    • Min: 1
    • Max: 999999999
  10. v2-rekey—(Optional) Enable or disable the automatic re-keying of expired IKEv2 or IPsec SAs on this IKEv2 interface.
    The default is none.
    • disabled—Disable IKE/IPSEC rekey
    • enabled—Enable IKE/IPSEC rekey
    • none—Use the rekey value from the global ike-config element

    With automatic re-keying enabled, and with the global dpd-time-interval parameter set to a non-zero value, the ESBC retransmits the re-keying request if it does not receive a response from the remote IPsec peer within the interval specified by the ike-config dpd-time-interval parameter. The ESBC makes a maximum of three retransmission attempts before abandoning the re-keying effort.

  11. esnsupport—Enable to support Extended Sequence Number (ESN) per RFC 4304.
  12. shared-password—If using the shared-password authentication method, set the shared password.
  13. eap-protocol—(Optional) Set the EAP protocol.
    Available values are:
    • eap-md5
    • eap-tls
    • eap-leap
    • eap-sim
    • eap-srp
    • eap-ttls
    • eap-aka
    • eap-peap
    • eap-mschapv2
    • eap-fast
    • eap-psk
    • eap-radius-passthru
  14. sd-authentication-method—Select the interface-specific method used by IKEv2 peers to authenticate to each other.
    • shared-password—Use a pre-shared-secret to authenticate the remote IKEv2 peer.
    • certificate—Use an X.509 certificate to authenticate the remote IKEv2 peer.

    Note:

    sd-authentication-method can be safely ignored, if authentication utilizes any of the methods described in EAP-based Authentication.
    ORACLE(ike-interface)# sd-authentication-method shared-password
  15. certificate-profile-id-list—If using the certificate authentication method, identify the ike-certificate-profile configuration element that contains identification and validation credentials required for certificate-based IKEv2 authentication.
  16. cert-status-check—(Optional) Enable certificate status checking using either Online Certificate Status Profile (OCSP) or a local copy of a Certificate Revocation List.
    The default is disabled.
  17. cert-status-profile-list—(Optional) Assign one or more cert-status-profile configuration elements to this IKEv2 interface.

    Each assigned cert-status-profile provides the information needed to access either an OCSP responder or a CRL source.

    Note:

    Use quotation marks to assign multiple OCSP responders.
    ORACLE(ike-interface)# cert-status-profile-list "VerisignClass3Designate Verisign-1 Thawte-1"
  18. access-control-name—Specify the ike-access-control list to use on this IKE interface. The list assignment applies the IKEv2 DDOS, allowlist and blocklist protection configured within the ike-access-control object to the interface.

    This parameter is meaningful only when authentication uses a RADIUS server to implement the EAP-based authentication, and can otherwise be safely ignored. Allowlists and blocklists specify IMSI prefixes or MAC addresses that are allowed through or denied access to the RADIUS authentication server.

    ORACLE(ike-interface)# access-control-name allow_01
  19. tunnel-orig-name-list—(Optional) Specify the name the tunnel-origin-params element you want to apply to this IKE interface.
  20. Type done to save your configuration.
  21. Configure additional IKEv2 interfaces if required.
IPsec Security Policy Configuration

You first define ike-sainfo elements that identify cryptographic material available for Security Association negotiation, and then define interface-specific IPsec Security Policies.

IPsec SA Configuration

During the IKE_AUTH exchange, cooperating peers use the secure channel previously established by the IKE_SA_INIT exchange to negotiate child IPsec SAs to construct secure end-to-end IPsec tunnels between the peers. IKE_SA_INIT negotiations use the values provided by the ike-sainfo configuration element.

Use the following procedure to create an ike-sainfo configuration element that specifies cryptographic material used for IPsec tunnel establishment. You will later assign this ike-sainfo configuration element to an IPsec Security Policy which defines IPsec services for a specified IKEv2 interface.

  1. Access the ike-sainfo configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ike
    ORACLE(ike)# ike-sainfo
    ORACLE(ike-sainfo)#
  2. name—Provide a unique identifier for this ike-sainfo configuration element.
    ORACLE(ike-sainfo)# name SA-1
  3. security-protocol—Specify the IPsec security (authentication and encryption) protocols supported by this SA.
    The default value is ah. Supported values are:
    • ah—Authentication Header. Provides authentication integrity to include the mutual identification of remote peers, non-repudiation of received traffic, detection of data that has been altered in transit, and detection of data that has been replayed, that is copied and then re-injected into the data stream at a later time.
    • esp—Encapsulating Security Payload provides both authentication and privacy services.
    • esp-auth—Supports ESP’s optional authentication
    • esp-null—Provides NULL encryption.

      WARNING:

      This option provides no privacy services and is not recommended for production environments.
  4. auth-algo—Specify the authentication algorithms supported by this SA.
    Available protocols are:
    • any
    • md5
    • sha1
    • xcbc
    • sha2-256
    • sha2-384
    • sha2-512
  5. encryption-algo—Specify the encryption algorithms supported by this SA.
    The default is aes. Available protocols are:
    • any—Choose any
    • 3des—Triple DES
    • aes—AES with CBC mode
    • aes-ctr—AES with counter mode
    • null—NULL encryption
  6. ipsec-mode—Specify the IPsec operational mode.
    • tunnel—Provides a secure end-to-end connection between two IP hosts.
    • transport—Provides VPN service where the entire IP packets are encapsulated within an outer IP envelope and delivered from source (an IP host) to destination (generally a secure gateway) across an untrusted internet.
  7. tunnel-local-addr—If using tunnel mode, specify the IP address of the local IKEv2 interface that terminates the IPsec tunnel.
    ORACLE(ike-sainfo)# tunnel-local-addr 172.30.89.10
  8. tunnel-remote-addr—If using tunnel mode, specify the IP address of the remote IKEv2 peer that terminates the IPsec tunnel.

    Provide the remote IP address or use the default wild-card value (*) to match all IP addresses.

    ORACLE(ike-sainfo)# tunnel-remote-addr *
  9. Type done to save your configuration.
  10. If necessary, configure additional IPsec SAs.
Security Policy Configuration

Use the following procedure to define an IPsec Security Policy.

  1. Access the security-policy configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ipsec
    ORACLE(ipsec)# security-policy
    ORACLE(security-policy)#
  2. name—Identify this IPsec Security Policy.
    ORACLE(security-policy)# name requireIPsec
  3. network-interface—Provide the network interface name of the IKEv2 interface to which this security policy is applied.
    ORACLE(security-policy)# network-interface M00:0
  4. priority—(Optional) Assign a priority to this IPsec Security Policy.
    • Highest priority: 0
    • Lowest priority: 123
  5. action—Specify the processing of IPsec and non-IPsec traffic streams.
    • allow—Process non-IPsec traffic
    • ipsec—Allow only IPsec traffic
    • srtp—Allow only SRTP traffic
    • srtcp—Allow only SRTCP traffic
  6. direction—Identity the traffic streams subject to the processing specified by the action parameter.
    Available values are:
    • in
    • out
    • both
  7. local-ip-addr-match—(Optional) Specify the local IP address of the network interface.

    Provide the local IP address or retain the default value, 0.0.0.0, which matches all local IP addresses.

    ORACLE(security-policy)# local-ip-addr-match 172.30.89.10
  8. remote-ip-addr-match—(Optional) Specify the IP address of the remote IKEv2 peer.

    Provide the remote IP address or retain the default value, 0.0.0.0, which matches all remote IP addresses.

    ORACLE(security-policy)# remote-ip-addr-match 0.0.0.0
  9. local-port-match—(Optional) Specify the local ports to which this IPsec Security applies.
    Use 0 to specify all local ports.
    • Min: 1
    • Max: 65535
  10. local-port-match-max—(Optional) Specify the maximum value for the local port to which this IPsec Security applies.
    • Default: 65535
    • Min: 0
    • Max: 65535
  11. remote-port-match—(Optional) Specify the remote ports to which IPsec Security Policy applies.
    Use 0 to specify all remote ports.
    • Min: 1
    • Max: 65535
  12. remote-port-match-max—(Optional) Specify the maximum value for the remote port to which this IPsec Security applies.
    • Default: 65535
    • Min: 0
    • Max: 65535
  13. ike-sainfo-name—Assign an IPsec data SA to this Security Policy.
  14. Type done to save your configuration.

    Note:

    Oracle recommends you configure the local-port-match-max or remote-port-match-max value under security-policy to allow processing of IPsec or non-IPsec traffic streams, based on the action configured.
Enable Tunnel 
Pass-Through

Use IPsec Security Policies to enable tunnel pass-through.

Pass-through IPv4 traffic via an IPv4 tunnel

  1. Configure IPv4 allow policy for IKE protocol traffic
  2. Configure IPv4 ipsec policy for media traffic
  3. Configure the IKEv2 IPv4 interface with an IPv4 local address pool, or
  4. Configure the RADIUS server to return a Framed-IP-Address and/or 
Framed-IP-Netmask attribute

Pass-through IPv6 traffic via an IPv6 tunnel

  1. Configure IPv6 allow policy for IKE protocol traffic
  2. Configure IPv6 ipsec policy for media traffic
  3. Configure the IKEv2 IPv6 interface with an IPv6local address pool, or
  4. Configure the RADIUS server to return a Framed-IPv6-Prefix or 
Framed-IPv6-Pool attribute

Pass-through IPv4 traffic via an IPv6 tunnel

  1. Configure IPv6 allow policy for IKE protocol traffic
  2. Configure IPv4 ipsec policy for media traffic
  3. Configure the IKEv2 IPv6 interface with an IPv4 local address pool, or
  4. Configure the RADIUS server to return a Framed-IP Address and/or 
Framed-IP-Netmask attribute

Pass-through IPv6 traffic via an IPv4 tunnel

  1. Configure IPv4 allow policy for IKE protocol traffic
  2. Configure IPv6 ipsec policy for media traffic
  3. Configure the IKEv2 IPv4 interface with an IPv6local address pool, or
  4. Configure the RADIUS server to return a Framed-IPv6-Prefix or 
Framed-IPv6-Pool attribute
IPSec SA Rekey on Sequence Number Overflow

The Oracle® Enterprise Session Border Controller establishes a new IPSec security association (SA) when the counter for the outbound 32-bit Sequence Number (SN) or the 64-bit Extended Sequence Number (ESN) overflows.

The SN or ESN counter is incremented for every outbound packet. These counters can overflow when the ESBC is handling packet intensive services such as video streaming or long duration calls. In accordance with RFCs 4303 and 7296, the ESBC establishes new security associations, as part of rekeying, before the SN or ESN counters can roll over. It does this through the use of two parameters in the ipsec-global-config configuration element: rekey-on-sn-overflow, the default for which is enabled, and sn-rekey-threshold, which identifies the threshold for rekeying security associations as a percentage of the counter capacity and for which the default is 95.

There are four ACLI commands you can use to monitor SN and ESN counter overflows:

show datapath etc-stats ppms ipsec

Issuing this command shows, along with other existing IPSec PPM-related statistics, the total number of times SN overflow occurred. The four pertinent parameters are:
  • ob-sn-threshold-overflows — This counter is incremented when the SN for an outbound SA for a tunnel exceeds the user-configured threshold value.
  • ob-sn-32bit-overflows — This counter is incremented when the lower 32-bits of the outbound ESN (when ESN is enabled) overflows.
  • standby-ob-sn-overflows — This counter is incremented when the SN or ESN for an outbound SA for a tunnel overflows the threshold value installed on the standby node during SA installation or update on the standby system.
  • ib-sn-32bit-overflows — This counter is incremented when the lower 32 bits of the inbound ESN (when ESN is enabled) overflows.

show datapath netlink show

Issuing this command shows the total number of SN overflow notifications received by the netlink layer on the host processor. The four newly-added parameters are the same as those in show datapath etc-stats ppms ipsec.

show sa stats ike

Issuing this command shows the number of times an SN overflow triggered a request for an IPsec rekey to acquire a new SA, as well as the number of times rekey requests succeeded and failed.

show security ike statistics

Issuing this command shows, with the parameter RekeyOnSNoverflow the number of times an SN overflow triggered an IPsec rekey.

IPSec SA Rekey on Sequence Number Overflow Configuration
  1. Access the ipsec-global-config configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ipsec
    ORACLE(ipsec)# ipsec-global-config
    ORACLE(ipsec-global-config)#
  2. Select the ipsec-global-config object to edit.
    ORACLE(ipsec-global-config)# select
    ORACLE( ipsec-global-config)#
  3. rekey-on-sn-overflow — Identifies whether to enable IPSec rekey on sequence number (SN) or extended sequence number (ESN) overflow. Rekey initiation is independent of the value of the parameter v2-rekey in the ike-interface configuration element. Allowable values are enabled and disabled. The default is enabled.
  4. sn-rekey-threshold — Identifies the threshold for triggering an IPSec security association (SA) rekey on SN or ESN overflow as a percentage of the SN (32-bit) or ESN (64-bit) number space. The allowable range is 80 to 100 and the default is 95.
  5. Type done to save your configuration.
Pre-Populated ARP Table

In certain topologies remote IPsec endpoints can require access to core network hosts reachable through a Oracle® Enterprise Session Border Controller core interface. In these instances, the ESBC receives the tunneled packet, and masks the received IP destination address against its own local addresses to determines if direct delivery is possible. If so, the ESBC issues an ARP request to obtain the physical destination address.

This process can be expedited by pre-populating the interface-specific ARP table with a list of commonly accessed core network host reachable by that interface. With the ARP table pre-populated with IP addresses, the ARP process issues ARP requests at 5 second intervals until a response is received. Once the pre-populated IP address has been resolved, periodic ARP refreshes are used to maintain the currency of the resolution.

Pre-Populate An Interface-Specific ARP Table
  1. Access the network-interface configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# system
    ORACLE(system)# network-interface
    ORACLE(network-interface)
  2. Select the network-interface object to edit.
    ORACLE(network-interface)# select
    <name>:<sub-port-id>:
    1: wancom0:0 ip=10.0.0.2 gw=10.0.4.1
    
    selection: 1
    ORACLE(network-interface)#
  3. add-neighbor-ip—Add the initial IP address to the 
core-interface-specific ARP table.
    ORACLE(network-interface)# add-neighbor-ip 10.0.0.101
  4. If necessary, add an additional IP address to the core-interface-specific ARP table.

    You can add a maximum of ten IP addresses to a single network interface.

  5. Use the show command to examine the pre-populated ARP table, referred to as the neighbor list.
    ORACLE(network-interface)# show
    network-interface
            ...
            neighbor-list                  10.0.0.101
                                           10.0.0.102
                                           10.0.0.103
                                           10.0.0.104
                                           10.0.0.105
                                           10.0.0.106
                                           10.0.0.107
                                           10.0.0.108
                                           10.0.0.109
                                           10.0.0.110
            ...
  6. Type done to save your configuration.
Configure Dead Peer Detection

Dead Peer Detection is enabled by setting the dpd-time-interval parameter to a non-zero value. DPD exchanges are asynchronous, consisting of a simple R-U-THERE and an ACK.

  1. Access the dpd-params configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ike
    ORACLE(ike)# dpd-params
    ORACLE(dpd-params)#
  2. name—Provide a unique identifier for this 
dpd-params instance.
    ORACLE(dpd-params)# name ikeDPD
  3. max-loop—Specify the maximum number DPD peers whose liveliness is examined every dpd-interval period.

    Periodic liveliness is tested by the Oracle® Enterprise Session Border Controller issuing an R-U-THERE message to each peer in the current group. If the peer acknowledges receipt of the message, it is confirmed as alive. If the peer fails to respond, its status is determined by the max-retrans and max-attempts parameter values.

    • Min: 1
    • Max: 999999999
  4. max-retrans—Specify the maximum number of times that the ESBC, acting as a DPD initiator, retransmits an unacknowledged R-U-THERE message while performing periodic liveliness tests.
    The default is 3.
    • Min: 1
    • Max: 4
  5. max-attempts—Specify the number of failed liveliness tests required to declare a peer as dead and take down the IKE tunnel.
    The default is 1.
    • Min: 1
    • Max: 4
  6. max-endpoints—Specify the maximum number of simultaneous DPD protocol negotiations supported when the CPU is not under load, as specified by max-cpu-limit.
    The default is 25.
    • Min: 1
    • Max: 15000

    If CPU workload surpasses the threshold set by max-cpu-limit, this value is over-ridden by load-max-endpoints.

  7. max-cpu-limit—Specify a threshold value (expressed as a percentage of CPU capacity) at which DPD protocol operations are minimized to conserve CPU resources.
    The default is 60.
    • Min: 0
    • Max: 100
  8. load-max-loop—Specify the maximum number of endpoints examined every dpd-time-interval when the CPU is under load, as specified by max-cpu-limit.
    The default is 40.
    • Min: 1
    • Max: 999999999

    Ensure that the configured value is less than the value assigned to max-loop.

  9. load-max-endpoints—Specify the maximum number of simultaneous DPD Protocol negotiations supported when the CPU is under load, as specified by max-cpu-limit.
    The default is 5.
    • Min: 1
    • Max: 15000

    Ensure that the configured value is less than the value assigned to max-endpoints.

  10. Type done to save your configuration.
  11. If necessary, configure additional dpd-params configuration elements.
  12. Access the ike-interface configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ike
    ORACLE(ike)# ike-interface
    ORACLE(ike-interface)# 
  13. dpd-params-name—Enable Dead Peer Detection on this IKEv2 interface.
    ORACLE(ike-interface)# dpd-params-name ikeDPD
  14. Type done to save your configuration.
Certificate Revocation Lists

A Certificate Revocation List (CRL) contains a list of the serial numbers of certificates that have been revoked by the issuing Certification Authority (CA). Such issuing authorities update CRLs periodically, and make the updates lists available to subscribers. CRL updates can be deliver in either PEM (Privacy Enhanced Email) or DER (Distinguished Encoding Rules) format. PEM is base-64 encoded ASCII that provides BEGIN CERTIFICATE and END CERTIFICATE statements; DIR is a binary rendering of the PEM format. Both formats (PEM and DIR) are supported by the Oracle® Enterprise Session Border Controller.

When authentication of remote IKEv2 peers is certificate-based, you can enable CRL usage on IKEv2 interfaces to verify certificate status.

CRL-Based Certificate Verification

This section provides instruction on using the ACLI to configure periodic retrieval of CRLs.

Configuration of CRL-based certificate verification is a three-step process.

  1. Specify the information and cryptological resources required to access one or more CRL sources.
  2. If not already done, enable CRL usage on an IKEv2 interface.
  3. Associate one or more CRLs with an IKEv2 interface.
Configure CRL Certificate Verification

The cert-status-profile element is a container for the information required to access a specific CRL source.

  1. Access the cert-status-profile configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# cert-status-profile
    ORACLE(cert-status-profile)#
  2. name—Provide a unique name for this profile.
  3. type—Select the certificate revocation check method.
    Available values are:
    • OCSP
    • CRL
  4. Specify either the IP address or the hostname of the CRL source.
    • ip-address—Specify the IP address of the CRL source.
    • host-name—Specify the hostname of the CRL source

    Note:

    If values are provided for both attributes, the ESBC uses the IP address and ignores the host-name value.
  5. crl-list—Specify the source filepath(s) to one or more requested CRLs.
    For example:
    ORACLE(cert-status-profile)# crl-list /crl/v2/tc_class_3_ca_II.crl
  6. realm-id—Specifies the realm used to request and receive CRLs.
    In the absence of an explicitly configured value, the ESBC provides a default value of wancom0, specifying CRL-related transmissions across the wancom0 management interface.

    Note:

    If the CRL source is identified by its FQDN, the realm identified by realm-id must be DNS-enabled.
  7. responder-cert—Identify the certificate used to validate the received CRL (the public key of the CRL source).

    Provide the name of the certificate configuration element that contains the certificate used to validate the signed CRL.

  8. retry-count—Specify the maximum number of times to retry an CRL source in the event of connection failure.
    The default is 1.
    • Min: 0
    • Max: 10
  9. dead-time—Specify the quarantine period imposed on an unavailable CRL source.
    The default is 0.
    • Min: 0
    • Max: 3600
  10. crl-update-interval—Specify the interim in seconds between CRL updates.
    The default is 86400.
    • Min: 600
    • Max: 2600000

    CRLs are stored in the /code/crls directory. Outdated, invalid CRLs are over-written with the each newly-obtained current CRL.

  11. Type done to save your configuration.
  12. If necessary, configure additional cert-status-profile configuration elements.
SNMP Traps

An SNMP trap is thrown, and a major alarm generated, if the Oracle® Enterprise Session Border Controller is unable to retrieve a CRL from the server. This trap includes the server’s FQDN, assuming that the FQDN has been identified during the configuration process, the server’s IP address, the reason for the failure, and the time of the last successful CRL retrieval, with the time expressed as the number of seconds since midnight January 1, 1970.

A second SNMP trap is thrown when the ESBC successfully retrieves a CRL. This trap includes the server’s FQDN, assuming that the FQDN has been identified during the configuration process, and the server’s IP address. The issue of this trap also clears any associated major alarm.

Configuring Manual CRL Updates

The ACLI provides the ability to perform an immediate manual refresh of one or more CRLs.

Use the following command to refresh a single CRL.

ORACLE# load-crl local-file <fileName>

where <fileName> is a remote filepath specified by the crl-list attribute.

Use the following command to refresh all CRLs.

ORACLE# load-crl local-file all

Use the following command to refresh all CRLs from a specific CRL source.

ORACLE# load-crl cert-status-profile <certStatusProfileName>

where <certStatusProfileName> references the certificate-status-profile configuration element that contains the CRL source IP address or FQDN.

Use the following command to refresh all CRLs.

ORACLE# load-crl cert-status-profile all
Online Certificate Status Protocol

The Online Certificate Status Protocol (OCSP) enables users to determine the revocation state of a specific certificate. Because OCSP ensures access to the freshest CRL, it can provide a more timely source of revocation information than is possible with dynamically or manually loaded CRLs. Guaranteed access to the most recent CRL, however, comes at the expense of increased traffic: a single request/response exchange for each revocation check.

If the OCSP responder returns a status of good, the certificate is accepted and authentication succeeds. If the OCSP responder returns a status other than good, the certificate is rejected and authentication fails.

Certificate status is reported as

  • good—which indicates a positive response to the status inquiry. At a minimum, a positive response indicates that the certificate is not revoked, but does not necessarily mean that the certificate was ever issued or that the time at which the response was produced is within the certificate’s validity interval.
  • revoked—which indicates a negative response to the status inquiry. The certificate has been revoked, either permanently or temporarily.
  • unknown—which indicates a negative response to the status inquiry. The responder cannot identify the certificate.

When authentication of remote IKEv2 peers is certificate-based, you can enable OCSP on IKEv2 interfaces to verify certificate status.

OCSP-Based Certificate Verification

The following sections provides instruction on using the ACLI to configure OCSP-based certificate verification.

Configuration of OCSP-based certificate verification is a three-step process.

  1. Specify the information and cryptological resources required to access one or more OSCP responders.
  2. Enable OCSP on an IKEv2 interface.
  3. Associate one or more OCSP responders with an IKEv2 interface.
Configure OCSP Certificate Verification
  1. Access the cert-status-profile configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# cert-status-profile
    ORACLE(cert-status-profile)#
  2. name—Provide a unique name for this profile.
  3. Specify either the IP address or the hostname of the CRL source.
    • ip-address—Specify the IP address of the CRL source.
    • host-name—Specify the hostname of the CRL source

    Note:

    If values are provided for both attributes, the ESBC uses the IP address and ignores the host-name value.
  4. port—Identifies the port monitored by the HTTP server for incoming OCSP requests.

    The port attribute can be safely ignored if the ESBC is specified as a FQDN by the host-name attribute, but is required if the ESBC is identified by the ip-address attribute.

  5. type—Select the certificate revocation check method.
    Available values are:
    • OCSP
    • CRL
  6. trans-protocol—Retain the default value (http) for trans-protocol attribute, which identifies the transport method used to access the ESBC.
  7. requester-cert—Specify the certificate used to sign requests.
    Ignore this attribute if requests are not signed. If a signed request is required by the OCSP responder, provide the name of the certificate configuration element that contains the certificate used to sign OCSP requests.
  8. responder-cert—Identifies the certificate used to validate signed OCSP response (a public key of the OCSP responder).

    Note:

    RFC 2560 requires that all OCSP responders digitally sign OCSP responses, and that OCSP requesters validate incoming signatures.
  9. trusted-cas—A list of certificate configuration objects that identifies the approved DoD-approved CAs that sign ESBC certificates.

    In DISA/DoD environments that support the delegated trust model, you must provide a list of CAs used to validate the received certificate.

    If a certificate or a certificate chain is appended to the OCSP response, the OCSP client verifies that the first certificate signed the response, and that the CA is trusted by the ESBC (that is, the CA certificate is contained in the trusted-cas list. The client then walks through each additional certificate (if any exist) ensuring that each certificate is also trusted. If all certificates are trusted, the OCSP response is accepted; otherwise, it is rejected.

  10. realm-id—Specify the realm used to transmit OCSP requests and receive OCSP responses.

    In the absence of an explicitly configured value, the ESBC provides a default value of wancom0, specifying OCSP protocol transmissions across the wancom0 management interface.

  11. retry-count—Specify the maximum number of times to retry an CRL source in the event of connection failure.
    The default is 1.
    • Min: 0
    • Max: 10
  12. dead-time—Specify the quarantine period imposed on an unavailable CRL source.
    The default is 0.
    • Min: 0
    • Max: 3600
  13. Type done to save your configuration.
  14. If necessary, configure additional cert-status-profile configuration elements.
SNMP Traps

An SNMP trap is thrown if a configured OSCP responder becomes unreachable.

A second SNMP trap is thrown when connectivity is re-established with a previously unreachable OCSP responder.

Enable Certificate Verification on an IKEv2 Interface
  1. Access the ike-interface configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ike
    ORACLE(ike)# ike-interface
    ORACLE(ike-interface)# 
  2. Select the ike-interface object to edit.
    ORACLE(ike-interface)# select
    <address>:
    
    ORACLE(ike-interface)#
  3. cert-status-check—Enable certificate status checking on this IKEv2 interface.
  4. cert-status-profile-list—Assign a CRL source or sources to the IKEv2 interface

    Note:

    Use quotation marks to assign multiple CRL sources.
    ORACLE(ike-interface)# cert-status-profile-list "CRL1-VS CRL2-VS CRL3-VS"
    ORACLE(ike-interface)#
  5. Type done to save your configuration.
Threat Protection

IKEv2 threat protection is composed of:

  • IP-header based firewalls
Stateless Firewall

The ESBC provides enhanced security-policy-based filters that can be applied to data packets coming through IPSec tunnels on the protected interfaces, and to non-IPSec packets on the trusted interfaces. These filters evaluate only the IP header layer, and treat each individual packet as a discrete event. As such, the functionality they provide can be compared to that provided by a stateless firewall.

Available filters are discussed in the following sections.

ICMP Filtering

Internet Control Message Protocol (ICMP) messages can be filtered based on message Type and associated message Codes.

ICMP Policy Configuration

Use the following procedure to define security-policy-based filtering of ICMP packets. This sample policy discards ICMP message type 0, Echo Reply, code 0, Net Unreachable.

  1. From superuser mode, use the following command sequence to access security-policy configuration mode. While in this mode, you configure new security policies or modify existing policies.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ipsec
    ORACLE(ipsec)# security-policy
    ORACLE(security-policy)#
  2. Use the required name parameter to identify this policy.
    ORACLE(security-policy)# name deny_icmp-type0_code0
    ORACLE(security-policy)#
  3. Use the required network-interface parameter to provide the network interface name of the IKEv2 interface to which this security policy is applied.
    ORACLE(security-policy)# network-interface M00:433
    ORACLE(security-policy)#
  4. Use the optional local-ip-addr-match parameter to specify the local IP address of the network interface.

    Provide the local IP address or retain the default value, 0.0.0.0, which matches all local IP addresses.

    ORACLE(security-policy)# local-ip-addr-match 192.168.89.10
    ORACLE(security-policy)#
  5. Use the optional local-ip-mask parameter to specify the local address mask.
    ORACLE(security-policy)# local-ip-mask 255.255.0.0
    ORACLE(security-policy)#
  6. Use the optional remote-ip-addr-match parameter to specify the local IP address of the network interface.

    Provide the remote IP address or retain the default value, 0.0.0.0, which matches all remote IP addresses.

    ORACLE(security-policy)# remote-ip-addr-match 15.0.0.0
    ORACLE(security-policy)#
  7. Use the optional remote-ip-mask parameter to specify the remote address mask.
    ORACLE(security-policy)# local-ip-mask 255.0.0.0
    ORACLE(security-policy)#
  8. Use the optional local-port-match parameter in conjunction with the local-port-match-max parameter to specify a contiguous range of local ports to which this security policy applies.

    To specify a single local port:

    ORACLE(security-policy)# local-port-match 64000
    ORACLE(security-policy)# local-port-match-max 64000
    ORACLE(security-policy)#

    To specify a local port range:

    ORACLE(security-policy)# local-port-match 64000
    ORACLE(security-policy)# local-port-match-max 64500
    ORACLE(security-policy)#

    To specify all local ports:

    ORACLE(security-policy)# local-port-match 0
    ORACLE(security-policy)# local-port-match-max 65535
    ORACLE(security-policy)#
  9. Use the optional remote-port-match parameter in conjunction with the remote-port-match-max parameter to specify a contiguous range of remote ports to which this security policy applies.

    To specify a single remote port:

    ORACLE(security-policy)# remote-port-match 32000
    ORACLE(security-policy)# remote-port-match-max 32000
    ORACLE(security-policy)#

    To specify a local port range:

    ORACLE(security-policy)# remote-port-match 64000
    ORACLE(security-policy)# remote-port-match-max 64500
    ORACLE(security-policy)#

    To specify all local ports:

    ORACLE(security-policy)# remote-port-match 0
    ORACLE(security-policy)# remote-port-match-max 65535
    ORACLE(security-policy)#
  10. Use the optional priority parameter to assign a priority to this security policy.

    Supported values are integers within the range 0 (the highest priority) through 254 (the lowest priority).

    You can assign more than one security policy to a specific interface. With multiple security policy assignments, each policy is applied in order of its priority (highest to lowest).

    ORACLE(security-policy)# priority 0
    ORACLE(security-policy)#
  11. Use the optional trans-protocol-match parameter to identify the filtered protocol, in this example, ICMP.
    ORACLE(security-policy)# trans-protocol-match icmp
    ORACLE(security-policy)#
  12. Use the optional trans-sub-protocol-match parameter to identify a specific ICMP message type.

    The ICMP 8-bit Type field specifies the message type. Contents of the Type field are administered by the Internet Assigned Numbers Authority (IANA). Current Type numbers can be viewed at http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml#icmp-parameters-types.

    The following command sequence designates the ICMP Echo Reply message.

    ORACLE(security-policy)# trans-sub-protocol-match 0
    ORACLE(security-policy)#
  13. Use the optional trans-sub-protocol-code-match parameter to identify a specific ICMP code.

    Many ICMP message types have associated numeric codes which provide additional information pertinent to that message types. ICMP code values are administered by the Internet Assigned Numbers Authority (IANA). Up to date codes can be viewed at http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml#icmp-parameters-codes.

    In the absence of a specifically identified code, all codes are filtered.

    The following command sequence designates the Net Unreachable code.

    ORACLE(security-policy)# trans-sub-protocol-code-match 0
    ORACLE(security-policy)#
  14. Use the optional action parameter to specify how incoming ICMP messages that match filtering criteria are processed.

    Use discard to drop all ICMP messages that match filtering criteria.

    Use allow to pass-thru all ICMP messages that match filtering criteria.

    ORACLE(security-policy)# action discard
    ORACLE(security-policy)#
  15. Use the optional direction parameter to identity the traffic streams subject to the processing specified by the action parameter.

    Use both to apply the specified processing to both inbound and outbound traffic.

    ORACLE(security-policy)# direction both
    ORACLE(security-policy)#
  16. Ignore the ike-sainfo-name parameter.
  17. Use done, exit, and verify-config to complete configuration of the security policy.
  18. Repeat Steps 1 through 17 to configure additional security policies.
SCTP Filters

Internet Control Message Protocol (ICMP) messages can be filtered based on Payload Protocol Identifiers.

SCTP Policy Configuration

Use the following procedure to define security-policy-based filtering of SCTP packets. This sample policy allows SCTP, Payload Protocol Identifier 34, Diameter in SCTP DATA chunk.

  1. From superuser mode, use the following command sequence to access security-policy configuration mode. While in this mode, you configure new security policies or modify existing policies.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ipsec
    ORACLE(ipsec)# security-policy
    ORACLE(security-policy)#
  2. \Use the required name parameter to identify this policy.
    ORACLE(security-policy)# name allow_sctp-ppid_46
    ORACLE(security-policy)#
  3. Use the required network-interface parameter to provide the network interface name of the IKEv2 interface to which this security policy is applied.
    ORACLE(security-policy)# network-interface M00:433
    ORACLE(security-policy)#
  4. Use the optional local-ip-addr-match parameter to specify the local IP address of the network interface.

    Provide the local IP address or retain the default value, 0.0.0.0, which matches all local IP addresses.

    ORACLE(security-policy)# local-ip-addr-match 192.168.89.10
    ORACLE(security-policy)#
  5. Use the optional local-ip-mask parameter to specify the local address mask.
    ORACLE(security-policy)# local-ip-mask 255.255.0.0
    ORACLE(security-policy)#
  6. Use the optional remote-ip-addr-match parameter to specify the remote IP address of the network interface.

    Provide the remote IP address or retain the default value, 0.0.0.0, which matches all local IP addresses.

    ORACLE(security-policy)# remote-ip-addr-match 192.168.89.10
    ORACLE(security-policy)#
  7. Use the optional remote-ip-mask parameter to specify the remote address mask.
    ORACLE(security-policy)# remote-ip-mask 255.255.0.0
    ORACLE(security-policy)#
  8. Use the optional local-port-match parameter in conjunction with the local-port-match-max parameter to specify a contiguous range of local ports to which this security policy applies.

    To specify a single local port:

    ORACLE(security-policy)# local-port-match 64000
    ORACLE(security-policy)# local-port-match-max 64000
    ORACLE(security-policy)#

    To specify a local port range:

    ORACLE(security-policy)# local-port-match 64000
    ORACLE(security-policy)# local-port-match-max 64500
    ORACLE(security-policy)#

    To specify all local ports:

    ORACLE(security-policy)# local-port-match 0
    ORACLE(security-policy)# local-port-match-max 65535
    ORACLE(security-policy)#
  9. Use the optional remote-port-match parameter in conjunction with the remote-port-match-max parameter to specify a contiguous range of remote ports to which this security policy applies.

    To specify a single remote port:

    ORACLE(security-policy)# remote-port-match 32000
    ORACLE(security-policy)# remote-port-match-max 32000
    ORACLE(security-policy)#

    To specify a local port range:

    ORACLE(security-policy)# remote-port-match 64000
    ORACLE(security-policy)# remote-port-match-max 64500
    ORACLE(security-policy)#

    To specify all local ports:

    ORACLE(security-policy)# remote-port-match 0
    ORACLE(security-policy)# remote-port-match-max 65535
    ORACLE(security-policy)#
  10. Use the optional priority parameter to assign a priority to this security policy.

    Supported values are integers within the range 0 (the highest priority) through 254 (the lowest priority).

    You can assign more than one security policy to a specific interface. With multiple security policy assignments, each policy is applied in order of its priority (highest to lowest).

    ORACLE(security-policy)# priority 0
    ORACLE(security-policy)#
  11. Use the optional trans-protocol-match parameter to identify the filtered protocol, in this example, SCTP.
    ORACLE(security-policy)# trans-protocol-match sctp
    ORACLE(security-policy)#
  12. Use the optional trans-sub-protocol-match parameter to identify a specific SCTP Protocol Payload Identifier.

    SCTP DATA chunks contain a 32-bit Payload Protocol Identifier field specifying the protocol that originated the data contained in the SCTP chunk. SCTP Payload Protocol Identifiers are administered by the IANA. Current identifiers can be found at http://www.iana.org/assignments/sctp-parameters/sctp-parameters.xml#sctp-parameters-25.

    The following command sequence designates DIAMETER data.

    ORACLE(security-policy)# trans-sub-protocol-match 46
    ORACLE(security-policy)#
  13. Ignore the optional trans-sub-protocol-code-match parameter, which is not currently used for SCTP filter configuration.
  14. Use the optional action parameter to specify how incoming SCTP messages that match filtering criteria are processed.

    Use discard to drop all SCTP messages that match filtering criteria.

    Use allow to pass-thru all SCTP messages that match filtering criteria.

    ORACLE(security-policy)# action allow
    ORACLE(security-policy)#
  15. Use the optional direction parameter to identity the traffic streams subject to the processing specified by the action parameter.

    Use both to apply the specified processing to both inbound and outbound traffic.

    ORACLE(security-policy)# direction both
    ORACLE(security-policy)#
  16. Ignore the ike-sainfo-name parameter.
  17. Use done, exit, and verify-config to complete configuration of the security policy.
  18. Repeat Steps 1 through 17 to configure additional security policies.
Source Routing Packets

The ESBC can unconditionally discard all source routed packets at the global level. Source routed packets are identified by the presence of either a Loose Source Route/Record (LSRR) or a Strict Source Route/Record (SSRR) option within the IP header Options header.

Both options have the potential to mask malicious intent. An attacker can use the specified routes to hide the true source of a packet, or to gain access to a protected network. Consequently, such packets are often dropped upon network entry.

Use the following procedure to unconditionally discard all source routed packets.

  1. From superuser mode, use the following command sequence to access ipsec-global-config configuration mode.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ipsec
    ORACLE(ipsec)# ipsec-global-config
    ORACLE(ipsec-global-config)#
  2. Use the options command in conjunction with the source-routing-drop argument to unconditionally discard all source routing packets — identified by the presence of either an SSRR or LSRR option in the IP header Options header.
    ORACLE(ipsec-global-config)# options +source-routing-drop
    ORACLE(ipsec-global-config)#
  3. Use the done and exit to complete configuration.
Fragmented Packets

The ESBC can unconditionally discard all inbound fragmented Encapsulating Security Protocol (ESP) packets using a global option. Refer to Figure 3, ESP Transport Mode, and Figure 5, ESP Tunnel Mode, for ESP details.

Upon reception, the SG re-assembles such packets and then decrypts the re-assembled packet. After decryption, if the decrypted packet is still a fragment, the new option mandates that the packet fragment be discarded in light of the SG’s inability to do a proper policy check on an incomplete message.

Use the following procedure to unconditionally discard all fragmented ESP packets.

  1. From superuser mode, use the following command sequence to access ipsec-global-config configuration mode.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ipsec
    ORACLE(ipsec)# ipsec-global-config
    ORACLE(ipsec-global-config)#
  2. Use the options command in conjunction with the fragmented-packet-drop argument to unconditionally discard all inbound fragmented ESP packets.
    ORACLE(ipsec-global-config)# options +fragmented-packet-drop
    ORACLE(ipsec-global-config)#
  3. Use the done and exit to complete configuration.
ACLI show Commands

Two new ACLI commands display filtering statistics.

  • show security security-policy statistics all, which displays statistics for all filtering policies
  • show security security-policy [policyName], which displays statistics for a specific filtering policy
Threshold Crossing Alert Configuration

Threshold Crossing Alerts (TCAs) monitor specific MIB variables or counters, and generate SNMP traps when object values cross defined thresholds. Three types of TCAs are supported:

  • IKE Failed Authentication (monitors IKE negotiation counters)
  • IPsec Tunnel Removal (monitors IPsec tunnel counters)
  • Dead Peer Detections (monitors DPD protocol counters)

Threshold levels, listed in order of increasing importance are clear, minor, major, and critical. Each threshold level is user-configurable and is accompanied by a associated reset-counter, also user-configurable, which prevents the issue of extraneous SNMP traps when a counter is bouncing across threshold values.

A threshold crossing event occurs when the associated counter value rises above the next-highest threshold value, or when the associated counter value falls below the next-lowest reset-threshold value. An SNMP trap, raising the alert level, is generated as soon as the counter value exceeds the next-highest threshold. An SNMP trap, lowering the alert level, occurs only during a check period when the TCA examines all counter values. Such check periods occur at 100 second intervals.

The following scenario illustrates TCA operations. The sample TCA, ike-tca-group, monitors the count of dead IKEv2 peers. Threshold and reset values are shown. A minor alarm threshold and its associated reset threshold have not been configured.

nameike-tca-group
tca-typeike-dpd
critical100
reset-critical90
major80
reset-major50
minor0
reset-minor0

t=time

t=0 ike-dpd counter= 30 ike-dpd alert level=clear

t=1 ike-dpd counter= 60 ike-dpd alert level=clear

t=2 ike-dpd counter= 80 ike-dpd alert level=major trap sent

t=3 ike-dpd counter= 95 ike-dpd alert level=major

t=4 ike-dpd counter=100 ike-dpd alert level=critical trap sent

t=5 ike-dpd counter=120 ike-dpd alert level=critical

t=6 ike-dpd counter= 99 ike-dpd alert level=critical

t=7 ike-dpd counter= 90 ike-dpd alert level=major trap sent

t=8 ike-dpd counter= 60 ike-dpd alert level=major

t=9 ike-dpd counter= 0 ike-dpd alert level=clear trap sent

Use the following procedure to configure TCAs.

  1. From superuser mode, use the following command sequence to access 
threshold-crossing-alert-group configuration mode. While in this mode, you configure threshold-crossing-alert-group configuration elements.
    ORACLE# configure terminal
    ORACLE(configure)# system
    ORACLE(system)# threshold-crossing-alert-group
    ORACLE(threshold-crossing-alert-group)#
  2. Use the name parameter to provide a unique identifier for this 
threshold-crossing-alert-group instance.

    name enables the creation of multiple threshold-crossing-alert-group instances.

    ORACLE(threshold-crossing-alert-group)# name ikeTCA
    ORACLE(threshold-crossing-alert-group)#
  3. Use the threshold-crossing-alert parameter to enter threshold-crossing-alert configuration mode. While in this mode, you create specific TCA types and associated values.
    ORACLE(threshold-crossing-alert-group)# threshold-crossing-alert
    ORACLE(threshold-crossing-alert)#
  4. Use the type parameter to specify the TCA type.

    Supported values are:

    • ike-failed-auth — (the default) tracks authentication failures
    • ipsec-tunnel-removal — tracks the destruction of IPsec tunnels
    • ike-dpd — tracks the detection of dead DPD peers
    ORACLE(threshold-crossing-alert)# type ike-dpd
    ORACLE(threshold-crossing-alert)#
  5. Use the critical parameter to specify the critical threshold level.

    The default value (0) indicates that the threshold is not configured.

    ORACLE(threshold-crossing-alert)# critical 100
    ORACLE(threshold-crossing-alert)#
  6. Use the reset-critical parameter to specify the value at which the critical level is replaced with the next lowest configured threshold level (major, minor, or clear, depending on configuration values).

    The default value (0) indicates that the threshold is not configured.

    ORACLE(threshold-crossing-alert)# reset-critical 90
    ORACLE(threshold-crossing-alert)#
  7. Use the major parameter to specify the major threshold level.

    The default value (0) indicates that the threshold is not configured.

    ORACLE(threshold-crossing-alert)# major 80
    ORACLE(threshold-crossing-alert)#
  8. Use the reset-major parameter to specify the value at which the major level is replaced with the next lowest configured threshold level (minor or clear, depending on configuration values).

    The default value (0) indicates that the threshold is not configured.

    ORACLE(threshold-crossing-alert)# reset-major 50
    ORACLE(threshold-crossing-alert)#
  9. Use the minor parameter to specify the minor threshold level.

    The default value (0) indicates that the threshold is not configured.

    ORACLE(threshold-crossing-alert)# minor 0
    ORACLE(threshold-crossing-alert)#
  10. Use the reset-minor parameter to specify the value at which the minor level is replaced with the next lowest configured threshold level (clear).

    The default value (0) indicates that the threshold is not configured.

    ORACLE(threshold-crossing-alert)# reset-minor 0
    ORACLE(threshold-crossing-alert)#
  11. If required, repeat Steps 4 through 10 to add other TCA types to the current threshold-crossing-alert-group configuration element.

    The threshold-crossing-alert-group configuration element can contain a maximum of three individual threshold-crossing-alerts, one of each supported type.

  12. Use done, exit, and verify-config to complete configuration of the 
threshold-crossing-alert-group configuration element.
  13. If necessary, repeat Steps 1 through 12 to configure additional 
threshold-crossing-alert-group configuration elements.
  14. From superuser mode, use the following command sequence to access ike-config configuration mode. While in this mode, you configure IKEv2 interface parameters.
    ORACLE# configure terminal
    ORACLE(configure)# security
    ORACLE(security)# ike
    ORACLE(ike)# ike-interface
    ORACLE(ike-interface)#
  15. Use the optional threshold-crossing-alert-group-name parameter to assign an existing threshold-crossing-alert-group configuration element to this IKEv2 interface.
    ORACLE(ike-interface)# threshold-crossing-alert-group-name ikeTCA
    ORACLE(ike-interface)#
  16. Use done, exit, and verify-config to complete configuration of the TCA.
IKEv2 Interface Management

The following two sections provide details on available counters that gather usage and error data related to IKEv2/IPsec operations on the Oracle® Enterprise Session Border Controller.

The first section, IKEv2 Protocol Operations, describes a series of 32-bit counters that report interface-specific data on various protocol transactions. Protocol operations counter values are available with SNMP, through the ACLI show security ike statistics command, and can also be obtained by subscription to the ike_stats HDR group.

The second section, IKEv2 Negotiation Errors, describes a series of 32-bit counters that report interface-specific errors encountered during IKEv2 negotiations. Negotiation errors counter values are also available with SNMP, through the ACLI show security ike statistics command, and can also be obtained by subscription to the ike-stats HDR group.

The third section, RADIUS Protocol Operations, describes a series of 32-bit counters that report RADIUS-server-specific data. RADIUS protocol operations counter values are also available with SNMP, through the ACLI show radius command, and can also be obtained by subscription to the radius-stats HDR group.

The final section, Diameter Protocol Operations, describes a series of 32-bit counters that report Diameter-server-specific data. Diameter protocol operations counter values are also available with SNMP, and can also be obtained by subscription to the diameter-stats HDR group.

IKEv2 Protocol Operations
The SNMP MIB is formed by appending the value in the SNMP MIB Ending column to 1.3.6.1.4.1.9148.3.9.1.9.X (apSecurityIkeInterfaceInfoTable), where X specifies the interface index. For example, the SNMP MIB for the Current Child SA Pairs is 1.3.6.1.4.1.9148.3.9.1.9.X.33, where X specifies the interface index.

Note:

The range for all 32-bit counters is 0 to 4294967295.
Name Description Type SNMP MIB Ending
Current Child SA Pairs The number of current child IPsec SA pairs on the interface. As each IPsec tunnel requires two unidirectional SAs, this number equals the current number of tunnels on the interface. Note that this count is available through both an ACLI show command and an SNMP GET operation. gauge .33
Maximum Child SA Pairs The largest number of child IPsec SA pairs on the interface since this counter was last reset. As each IPsec tunnel requires a single SA pair, this value equates to the largest number of tunnels on the interface. gauge
Last Reset Timestamp The time that this interface was last reset -- expressed as a UNIX timestamp containing the number of seconds since January 1, 1970. UNIX timestamp
Child SA Request The number of requests to add a child SA pair that were received on the interface. These requests include IPsec SA rekey requests. counter .1
Child SA Success The number of requests to add a child SA pair that were successfully completed on the interface. These successes include new children created by IPsec SA rekeys. counter .2
Child SA Failure The number of requests to add a child SA pair that were not successfully completed on the interface. These failures include unsuccessful IPsec SA rekeys. counter .3
Child SA Delete Requests The number of requests to delete a child SA pair that were received on the interface. These requests include deletion requests associated with IPsec SA rekeys. counter .4
Child SA Delete Success The number of requests to delete a child SA pair that were successfully completed on the interface. These successes include children deleted by IPsec SA rekeys. counter .5
Child SA Delete Failure The number of requests to delete a child SA pair that were not successfully completed on the interface. These failures include unsuccessful deletions associated IPsec SA rekeys. counter .6
Child SA Rekey The number of child IPsec rekey exchanges transacted on the interface. counter .7
Initial Child SA Establishment The number of initial child SA pair establishments, in other words, the number of successful IKE_AUTH exchanges transacted on the interface. counter .8
DPD Received Port Change The number of DPD messages received on the interface that contained a port change from the previously received message. The port change indicates that the IKEv2 has moved to another port, or that an intervening NAT device has changed port mapping. These actions do not impact SA functions. counter .9
DPD Received IP Change The number of DPD messages received on the interface that contained an IP address change from the previously received message. counter .10
DPD Response Received The number of DPD ACK responses received on the interface. An ACK is sent by an IKEv2 peer in response to an R-U-THERE issued by the Oracle® Enterprise Session Border Controller. A successful R-U-THERE/ACK exchange establishes availability on the remote IKEv2 peer. counter .11
DPD Response Not Received The number of R-U-THERE messages transmitted on the interface that were not acknowledged within the DPD allowed interval. counter .12
DPD Received The number of all DPD protocol messages received on the interface. counter .13
DPD Retransmitted The number of R-U-THERE messages that were re-transmitted because the original R-U-THERE message was not acknowledged. counter .14
DPD Sent The number of R-U-THERE messages that were sent across the interface, to include retransmitals. counter .15
IKE SA Packets Sent The number of IKEv2 SA packets sent across the interface. counter .16
IKE SA Packets Received The number of IKEv2 SA packets received across the interface. counter .17
IKE SA Packets Dropped The number of IKEv2 SA packets dropped by the interface. counter .18
Authentication Failures The number of authentication failures that occurred after the purported identity of the remote IKEv2 peer was ascertained. counter .19
IKE Message Errors The number of otherwise uncharacterized IKEv2 message errors. counter .20
Authentication ID Errors The number of errors that occurred during the identification stage of the authentication process. counter .21
Certificate Status Requests The number of certificate status requests sent across the interface to an OCSP responder. counter .22
Certificate Status Success The total number of OCSP successes, that is the number of OCSP requests that generated a good status from an OCSP responder. counter .23
Certificate Status Fail The total number of OCSP failures, to include unacknowledged OCSP requests and those requests that generated a revoked or unknown response from an OCSP responder. counter .24
DDoS Sent The number of suspicious, and possibly malicious, endpoints reported by the interface-specific DDoS process (if configured as described in the IKEv2 DDoS Protection section of the Oracle® Enterprise Session Border Controller Essentials guide). counter .25
DDoS Received The number of suspicious, and possibly malicious, endpoints reported by statically provisioned deny lists (as described in SIP Signaling Services and Security chapters of the ACLI Configuration Guide). counter .26
IKE Message Retransmissions The total number of IKEv2 message re-transmissions. counter .27
SA Init Messages Received The total number of IKEv2 message re-transmissions. counter .28
SA Init Message Sent The total number of IKEv2 message re-transmissions. counter .29
SA Establishment Attempts The total number of IKEv2 message re-transmissions. counter .30
SA Establishment Success The total number of IKEv2 SA successfully established on the IKEv2 interface. counter .31
Tunnel Rate Specifies the tunnel establishment rate, in terms of tunnels created per second. Note that this count is available through both an ACLI show command and an SNMP GET operation. gauge .32
IKEv2 Negotiation Errors

The SNMP MIB is formed by appending the value in the SNMP MIB Ending column to 1.3.6.1.4.1.9148.3.9.1.3.X (apSecurityIkeInterfaceStatsEntry), where X specifies the interface index. For example, the SNMP MIB for the CPU Overload Errors is 1.3.6.1.4.1.9148.3.9.1.3.X.3, where X specifies the interface index.

Name Description SNMP MIB Ending
CPU Overload Errors The number of IKEv2 requests that were rejected because of CPU load constraints. .3
Init Cookie Errors The number of all IKEv2 exchanges that failed because of faulty Security Parameter Index (SPI) values. SPIs provide a local SA identifier and are exchanged between IKEv2 peers in the common IKEv2 header and in Notify Payloads. .4
Auth Errors The number of failed IKE_AUTH exchanges, regardless of the specific reason for failure. .5
EAP Access Request Errors The number of authentication failures that occur ed during the EAP access phase. .6
EAP Access Challenge Errors The number of authentication failures that occur ed during the EAP challenge phase. .7
TS Errors The number of CREATE_CHILD_SA exchanges that failed because of faulty TS payload contents, or failure on the part of the remote peers to negotiate the offered traffic selectors. .8
CP Errors The number of IKE_AUTH and/or CREATE_CHILD_SA exchanges that failed because of faulty, unsupported, or unknown Configuration Payload contents. .9
IKE Errors The number of IKE_SA_INIT and/or CREATE_CHILD_SA exchanges that failed because of faulty, unsupported, or unknown Key Exchange Payload contents. .10
Proposal Errors The number of failed negotiations that resulted from the inability to reconcile crytographic proposals contained in the Security Association Payloads exchanged by IKEv2 peers. Security Association Payloads are exchanged during the IKE_SA_INIT, IKE_AUTH, and CREATE_CHILD_SA stages. .11
Syntax Errors The number of failed negotiations, of any type, resulting from otherwise uncharacterized errors. .12
Critical Payload Errors The number of failed negotiations that resulted from the presence of a Critical flag in a payload that could not be parsed, or was not supported. IKEv2 adds a critical flag to each payload header for further flexibility for forward compatibility. If the critical flag is set and the payload type is unrecognized, the message must be rejected and the response to the IKE request containing that payload MUST include a Notify payload UNSUPPORTED_CRITICAL_PAYLOAD, indicating an unsupported critical payload was included. If the critical flag is not set and the payload type is unsupported, that payload must be ignored. .13
Diameter Protocol Operations

The SNMP MIB is formed by appending the value in the SNMP MIB Ending column to 1.3.6.1.4.1.9148.3.13.1.1.2.2.X (apDiamInterfaceStatsTable), where X specifies the diameter server index. For example, the SNMP MIB for the Diameter Messages Sent is 1.3.6.1.4.1.9148.3.13.1.1.2.2.X.3, where X specifies the diameter server index.

Name Description SNMP MIB Ending
Diameter Messages Sent Contains the number of messages sent by this Diameter server. .3
Diameter Messages Sent Failed Contains the number of unacknowledged messages sent by this Diameter server. .4
Diameter Messages Resent Contains the number of messages re-transmitted to this Diameter server. .5
Diameter Messages Received Contains the number of messages received by this Diameter server. .6
Diameter Messages Processed Contains the number of messages processed by this Diameter server. .7
Diameter Connection Timeouts Contains the number of connection timeouts on the Diameter server. .8
Diameter BadState Drops Contains the number of packets dropped because of faulty state on the Diameter server. .9
Diameter BadType Drops Contains the number of packets dropped because of faulty type on the Diameter server. .10
Diameter BadID Drops Contains the number of packets dropped because of faulty ID on the Diameter server. .11
Diameter AuthFail Drops Contains the number of failed authentications on the Diameter server. .12
Diameter Invalid Peer Messages Contains the number of client messages that could not be parsed on the Diameter server. .13
ACLI Show Commands

ACLI show commands

  • display and reset IKEv2 performance and error counters
  • display IKEv2 SA data
  • display IKEv2 TCA data
Performance and Error Counters

Three ACLI commands display and reset IKEv2 performance and error counters.

Use the show security command to display performance and error counters for a specified IKEv2 interface, or for all IKEv2 interfaces.

ORACLE# show security 192.169.204.15

with a specified interface, displays performance and error counters for the target interface

ORACLE# show security all

with all, displays performance and error counters for all IKEv2 interfaces

Use the reset ike-stats command to reset (set to 0) performance and error counters for a specified IKEv2 interface, or for all IKEv2 interfaces.

ORACLE# reset ike-stats 192.169.204.15

with a specified interface, resets performance and error counters for the target interface

ORACLE# reset ike-stats all

with all, resets performance and error counters for all IKEv2 interfaces

Use the reset ike-mib command to reset (set to 0) MIB-based error counters for all IKEv2 interfaces.

ORACLE# reset ike-mib

re-sets the MIB-based error counters for all IKEv2 interfaces

IKEv2 and Child SAs

Use the show security command with optional arguments to display IKEv2 and child SA information to include:

  • IP address and port of remote end-point
  • intervening NAT device (yes | no)
  • local IP address
  • tunnel state (up | down)
  • initiator cookie
  • responder cookie
  • remote inner (tunnel) IP address
  • incoming/outgoing Security Parameter Indexes (SPI) of the child SA
ORACLE# show security sad ike-interface 192.169.204.15

with a specified interface address, displays SA information for a single IKEv2 interface

ORACLE# show security sad ike-interface all

with all, displays SA information for all IKEv2 interfaces

ORACLE# show security sad ike-interface all
Displaying the total (4321) number of entries may take long and could affect system performance.
Continue? [y/n]?: y
Peer: 6.0.0.36:500 (NAT: No) Host: 172.16.101.2 State: Up
    IKE Cookies: 0x23e71b73d5a10c58[I] 0xd2017a6fb84a4fa6[R]
    Child Peer IP: 101.0.0.36:0 Child SPI: 4236760138[I] 1721373661[O]
Peer: 6.0.0.28:500 (NAT: No) Host: 172.16.101.2 State: Up
    IKE Cookies: 0xf64d031d32525730[I] 0xcea2d5ae3c91050f[R]
    Child Peer IP: 101.0.0.28:0 Child SPI: 3632387333[I] 1421117246[O]
Peer: 6.0.0.9:500 (NAT: No) Host: 172.16.101.2 State: Up
    IKE Cookies: 0x84ec95a1cd0a4c5d[I] 0x1b61b385c4e627b4[R]
    Child Peer IP: 101.0.0.9:0 Child SPI: 2432742837[I] 3872387177[O]
Peer: 6.0.0.25:500 (NAT: No) Host: 172.16.101.2 State: Up
    IKE Cookies: 0x541b2651e88c9368[I] 0xdc393a61af6dc909[R]
    Child Peer IP: 101.0.0.25:0 Child SPI: 785656546[I] 148357787[O]
Peer: 6.0.0.27:500 (NAT: No) Host: 172.16.101.2 State: Up
    IKE Cookies: 0x3ba43c5c685e37e6[I] 0x7bfa6f0781dce1a8[R]
    Child Peer IP: 101.0.0.27:0 Child SPI: 767765646[I] 3797275291[O]
Peer: 6.0.0.22:500 (NAT: No) Host: 172.16.101.2 State: Up
    IKE Cookies: 0x925e540ecbd58dbb[I] 0x7e1101371a5a5823[R]
    Child Peer IP: 101.0.0.22:0 Child SPI: 787745714[I] 876969665[O]
Peer: 6.0.0.2:500 (NAT: No) Host: 172.16.101.2 State: Up
    IKE Cookies: 0xda0f568684ba5e2c[I] 0x74c533da2fd29901[R]
    Child Peer IP: 101.0.0.2:0 Child SPI: 3884481109[I] 1862217459[O]
Peer: 6.0.0.7:500 (NAT: No) Host: 172.16.101.2 State: Up
    IKE Cookies: 0x6166bac4438f3ca7[I] 0x71d1049a0f8520f4[R]
    Child Peer IP: 101.0.0.7:0 Child SPI: 2798332266[I] 2789214337[O]
Peer: 6.0.0.15:500 (NAT: No) Host: 172.16.101.2 State: Up
    IKE Cookies: 0x0e060701115069bf[I] 0x2e69adbf15438000[R]
    Child Peer IP: 101.0.0.15:0 Child SPI: 713005957[I] 1985608540[O]
Continue? [y/n]?: y
...
...

Use show security with the peer address obtained by the previous command to display more detailed information regarding a specific tunnel to include:

  • IKE version
  • Diffie Hellman group
  • the IKE SA hash algorithm
  • the IKE SA message authentication code algorithm
  • the IKE SA encryption algorithm
  • seconds since SA creation
  • SA lifetime in seconds
  • remaining lifetime in seconds
  • IPsec operational mode (tunnel | transport)
  • IPsec security protocol (AH |ESP)
  • IPsec authentication protocol (SHA1 | MD5 | any)
  • IPsec encryption protocol (AES | 3DES | null| any)
ORACLE# show security sad ike-interface <ipAddress> peer <ipAddress> 
ORACLE# show security sad ike-interface 172.16.101.2 peer 6.0.0.36:500 

IKE SA:

    IKE Version : 2
    Tunnel State : Up
    Last Response [Seconds] : 212
    AAA Identity :
    NAT : No

    IP Addresses [IP:Port]
        Peer : 6.0.0.36:500
        Server Instance : 172.16.101.2:500

    Cookies
        Initiator : 0x23e71b73d5a10c58
        Responder : 0xd2017a6fb84a4fa6

    Algorithms
        DH Group : 2
        Hash : HMAC-SHA1
        MAC : SHA1-96
        Cipher : 3DES

    SA Times [Seconds]
        Creation : 141
        Expiry : 86400
        Remaining : 86188

IPSec SA:

    IP Addresses [IP:Port]
        Destination : 101.0.0.36:0
        Source : 172.16.101.2:0

    SPI
        Outbound : 1721373661
        Inbound : 4236760138

    Algorithms
        Mode : TUNNEL
        Protocol : ESP
        Authentication : SHA1
        Encryption : AES

    Traffic Selectors [Start IP - End IP]
        Destination : 101.0.0.36 - 101.0.0.36
        Source : 172.16.101.2 - 172.16.101.2
TCA Counters

An ACLI command is provided to display TCA information.

ORACLE# show security ike threshold-crossing-alert <ipAddress> || all

with a specified IPv4/IPv6 interface address, displays TCA information for the specified IKEv2 interface, otherwise displays TCA information for all IKEv2 interfaces

ORACLE# show security ike threshold-crossing-alert all
ORACLE# show security ike threshold-crossing-alert all
IKE Threshold Crossing Alerts
tca-type: ike-auth-failure
           reset            reset                          reset
critical     critical    major     major       minor      minor
---------- ---------- ---------- ---------- ---------- ----------
       40         30         25         24         12          1
current value:
   Window Total Maximum
        0    0        0
current level: clear

tca-type: ipsec-tunnel-removal
             reset               reset                    reset
critical     critical    major     major       minor      minor
---------- ---------- ---------- ---------- ---------- ----------
        0          0         10          5          0          0
current value:
     Window Total Maximum
          0     0       0
current level: clear
TCA Traps

TCAs generate SNMP traps to report crossing of threshold levels, or to clear threshold levels.

Historical Data Records

Various statistical counts are available as comma separated values (CSV) Historical Data Record (HDR) files. HDR files are specified and pushed to an accounting server as described in the Overview chapter of the 4000 C-Series Historical Data Recording (HDR) Resource Guide.

IKEv2 Interface HDR

CSV header fields for IKEv2 Interface HDRs are listed below.

IKEv2 Interface HDR Type
TimeStamp Integer
Interface IP Address
Current Child SA Pairs Counter
Maximum Child SA Pairs Counter
Last Reset TimeStamp Integer
Child SA Requests Counter
Child SA Success Counter
Child SA Failure Counter
Child SA Delete Request Counter
Child SA Delete Success Counter
Child SA Delete Failure Counter
Child SA Rekey Counter
Initial Child SA Establishment Counter
DPD Received Port Change Counter
DPD Received IP Change Counter
DPD Response Received Counter
DPD Response Not Received Counter
DPD Received Counter
DPD Retransmitted Counter
DPD Sent Counter
IKE SA Packets Sent Counter
IKE SA Packets Received Counter
IKE SA Packets Dropped Counter
Authentication Failures Counter
IKE Message Errors Counter
Authentication ID Errors Counter
Certificate Status Requests Counter
Certificate Status Success Counter
Certificate Status Fail Counter
DDoS Sent Counter
DDoS Received Counter
IKE Message Retransmissions Counter
Tunnel Rate Counter
Child SA Pair Guage
IKE SA INIT Messages Received Counter
IKE SA INIT Messages Sent Counter
IKE SA Establishment Attempts Counter
IKE SA Establishment Success Counter
IKE CPU Overload Error Counter
IKE init Cookie Error Counter
IKE EapAccessRequestError Counter
IKE EapAccessChallengeError Counter
IKE TS Error Counter
IKE CP Error Counter
IKE KE Error Counter
IKE Proposal Error Counter
IKE Syntax Error Counter
IKE Critica; Payload Error Counter
Diameter HDR

CSV header fields for Diameter HDRs are listed below.

IKEv2 Interface HDR Type
Time Stamp Integer
Diameter Sever IP Address IP Address
Diameter Server Port Port Address
Messages Sent Counter
Messages Sent Failed Counter
Messages Resent Counter
Messages Received Counter
Messages Processed Counter
Connection Timeouts Counter
Bad State Drops Counter
Bad Type Drops Counter
Bad ID Drops Counter
Auth Failed Drops Counter
Invalid Peer Messages Counter