About CUBE High Availability on Cisco ISR-G2
CUBE supports Box-to-box redundancy on Cisco Integrated Services Router Generation 2 Router (ISR-G2) and uses Hot Standby Routing Protocol (HSRP) technology to provide High Availability.
Box-to-Box Redundancy
Box-to-box redundancy enables configuring a pair of routers to act as back up for each other. In the router pair, active router is determined based on the failover conditions. The router pair continuously exchange status messages. Cisco UBE session information is checkpointed across the active and standby router. This enables the standby router to immediately take over all Cisco UBE call processing responsibilities when the active router becomes unavailable.
Hot Standby Router Protocol (HSRP)
Hot Standby Router Protocol (HSRP) technology provides high network availability by not relying on any single router for routing IP traffic from hosts on the network.
By sharing an IP address and a MAC (Layer 2) address, two or more routers consist a virtual router group that is called a Standby group or HSRP group. This HSRP group acts as a single virtual router to hosts on the LAN. HSRP is used to select an active router and a standby router in an HSRP group. The active router forwards packets that the host sends to the virtual router group. Active and standby routers continually exchange periodic HSRP messages once the protocol has completed the router selection process.
HSRP monitors both the inside and outside interfaces. If any of the interfaces go down, the whole router is considered down and the standby router takes over the responsibilities of the active router.
The RTP streams of established calls are checkpointed between the active and standby routers through the HSRP protocol. Therefore the media streams of established calls are preserved over the HSRP failover from the active to the standby routers. Calls in the transient state (calls that are not established yet, or are in the process of being modified with transfer or hold function) at the time of failover are disconnected.
Note |
For redundant solutions that use HSRP, CDRs are only generated by the active router. |
HSRP Features
-
Preemption—The HSRP preemption feature enables the router with the highest priority to immediately become the active router. Priority is determined as follows.
-
Priority value that you configure.
-
IP address.
In each case, higher value is of a greater priority.
-
-
Preempt Delay—The preempt delay feature allows you to delay the preemption for a configurable time period. Preempt delay allows the router to populate its routing table before becoming the active router.
-
Interface Tracking—Allows you to specify details of another interface on the router of the HSRP group. Interface tracking helps to monitor the change in the HSRP priority of a given HSRP group.
Network Topology
This section describes how to configure the following dual-attached and single-attached network topology. The dual-attached network topology is the most common configuration, in which an active and standby pair of routers is used in a SIP trunk deployment between a Cisco Unified Communications Manager (Unified CM) and a service provider (SP) SIP trunk for PSTN access. It is also possible to configure CUBE HSRP Box-to-box redundancy with a single-attached network topology.
In these topologies, both active and standby routers have the same configuration and both platforms are connected through a physical switch across similar interfaces. This is required for Cisco UBE HA to work. For example, the CUBE-1 and CUBE-2 interface towards WAN must terminate on the same switch. Multiple interfaces or sub-interfaces can be used on either LAN or WAN side. Also, one Cisco UBE has a lower IP address across all three interfaces on the same Cisco UBE paltform. This criteria decides the HSRP active state.
We recommend that you keep the following in mind when configuring these topologies:
-
Configure all interfaces of an HSRP group with the same priority.
-
The active and standby router pair, and interface combination on a particular LAN must have a unique HSRP group number.
Configure CUBE High Availability Using HSRP
Before you begin
It is recommened that you have the knowledge of the following topics:
-
How to configure and use Cisco IOS® Voice.
-
How to configure and use CUBE.
-
How HSRP high availability works on general router platforms.
Components used:
-
Minimum software release of CUBE 8.5 (Cisco IOS Release 15.1.2T), implemented on a Cisco 2900 or 3900 Series Integrated Service Router Generation 2 (ISR G2).
-
Two identical ISR G2s equipped with the UC Technology Package license (SL-29-UC-K9 or SL-39-UC-K9) installed, 1G DRAM memory, and Cisco IOS Software Release 15.1.2T or later.
-
Both routers must be physically located on the same Ethernet LAN.
-
The CUBE configuration of both routers is identical and must be manually copied from one router to the other.
-
SIP-SIP call flows.
SUMMARY STEPS
- Enable CUBE and CUBE Redundancy.
- Enable HSRP.
- Configure HSRP Communication Transport.
- Configure HSRP on Interfaces.
- Configure HSRP Timers.
- Configure Media Inactivity Timer.
- Configure SIP Binding to HSRP Address
- Reload Routers.
- Point Attached Softswitches to CUBE HSRP Virtual Address
DETAILED STEPS
Command or Action | Purpose | |||||
---|---|---|---|---|---|---|
Step 1 |
Enable CUBE and CUBE Redundancy. Example:
Example:
|
Enables CUBE on both routers. Also, enables CUBE redundancy and call check pointing on both routers. |
||||
Step 2 |
Enable HSRP. Example:
|
Enables router redundancy schemes on both routers, where:
|
||||
Step 3 |
Configure HSRP Communication Transport. Example:Active Configuration:
Standby Configuration:
|
Enables the HSRP Inter-Device Communication Transport.
|
||||
Step 4 |
Configure HSRP on Interfaces. Example:Active Configuration:
Standby Configuration:
|
Configures the HSRP Inter-Device Communication Transport.
|
||||
Step 5 |
Configure HSRP Timers. |
There are two important HSRP timers:
In the previous configuration, the Hello timer is set to 2 seconds and the Hold timer to 40 milliseconds.
|
||||
Step 6 |
Configure Media Inactivity Timer. |
The Media Inactivity Timer enables the Active/Standby router pair to monitor and disconnect calls if no Real-Time Protocol (RTP) packets are received within a configurable time period. When RTP packets for a call are not received by the Active/Standby router, the SIP Media Inactivity Timer releases the session. This is used to guard against any hung sessions that might have resulted from the failover in the event that a normal call disconnect does not clear the call. The same duration for the Media Inactivity Timer must be configured on both routers. The default value is 28 seconds. This timer is configured as follows:
|
||||
Step 7 |
Configure SIP Binding to HSRP Address |
Configures the CUBE SIP messaging in order to use the HSRP virtual address in SIP messaging:
Once HSRP is configured under the physical interface and the bind command has been issued, calls to the physical IP address will fail. This is because the SIP listening socket is now bound to the virtual IP address but the signaling packets use the physical IP address, and therefore cannot be handled. |
||||
Step 8 |
Reload Routers. |
Once all the above configurations have been completed, the redundancy show output is as follows:
When you reload the router, the HSRP configuration is enabled as follows: Active Router Configuration:
Standby Router Configuration:
|
||||
Step 9 |
Point Attached Softswitches to CUBE HSRP Virtual Address |
The CUCM, IP-PBX, SIP proxy or SP SBCs or SP softswitches that route calls to CUBE must use the HSRP virtual address in their SIP messaging. SIP messages to the CUBE physical IP addresses are not handled with an HSRP configuration. |
Example
In these configurations, the HSRP Hello and Hold timers use their default values of 3 and 8 seconds respectively, and are not shown explicitly in the CLI output.
Active Configuration:
ipc zone default
association 1
no shutdown
protocol sctp
local-port 5000
local-ip 10.10.24.14
remote-port 5000
remote-ip 10.10.24.13
!
voice service voip
mode border-element
allow-connections sip to sip
redundancy
!
redundancy inter-device
scheme standby SB
!
redundancy
!
interface GigabitEthernet0/0
ip address 10.10.25.14 255.255.255.0
duplex auto
keepalive
speed auto
standby delay minimum 30 reload 60
standby version 2
standby 0 ip 10.10.25.1
standby 0 preempt
standby 0 priority 50
standby 0 track 2 decrement 10
standby 0 name SB
!
interface GigabitEthernet0/1
ip address 10.10.24.14 255.255.255.0
duplex auto
speed auto
media-type rj45
standby delay minimum 30 reload 60
standby version 2
standby 6 ip 10.10.24.1
standby 6 priority 50
standby 6 track 1 decrement 10
!
ip rtcp report interval 3000
!
track 1 interface GigabitEthernet0/0 line-protocol
!
track 2 interface GigabitEthernet0/1 line-protocol
!
dial-peer voice 100 voip
description to-SIP
destination-pattern 9T
session protocol sipv2
session target ipv4:x.x.x.x
voice-class sip bind control source-interface GigabitEthernet0/0
voice-class sip bind media source-interface GigabitEthernet0/0
!
dial-peer voice 200 voip
description to-CUCM
destination-pattern 555....
session protocol sipv2
session target ipv4:y.y.y.y
voice-class sip bind control source-interface GigabitEthernet0/1
voice-class sip bind media source-interface GigabitEthernet0/1
!
gateway
media-inactivity-criteria all
timer receive-rtcp 5
timer receive-rtp 1200
Standby Configuration:
ipc zone default
association 1
no shutdown
protocol sctp
local-port 5000
local-ip 10.10.24.13
remote-port 5000
remote-ip 10.10.24.14
!
voice service voip
mode border-element
allow-connections sip to sip
redundancy
!
redundancy inter-device
scheme standby SB
!
redundancy
!
interface GigabitEthernet0/0
ip address 10.10.25.13 255.255.255.0
duplex auto
keepalive
speed auto
standby delay minimum 30 reload 60
standby version 2
standby 0 ip 10.10.25.1
standby 0 preempt
standby 0 priority 50
standby 0 name SB
standby 0 track 2 decrement 10
!
interface GigabitEthernet0/1
ip address 10.10.24.13 255.255.255.0
duplex auto
speed auto
media-type rj45
standby delay minimum 30 reload 60
standby version 2
standby 6 ip 10.10.24.1
standby 6 priority 50
standby 6 preempt
standby 6 track 1 decrement 10
!
ip rtcp report interval 3000
!
track 1 interface GigabitEthernet0/0 line-protocol
!
track 2 interface GigabitEthernet0/1 line-protocol
!
dial-peer voice 100 voip
description to-SIP
destination-pattern 9T
session protocol sipv2
session target ipv4:x.x.x.x
voice-class sip bind control source-interface GigabitEthernet0/0
voice-class sip bind media source-interface GigabitEthernet0/0
!
dial-peer voice 200 voip
description to-CUCM
destination-pattern 555....
session protocol sipv2
session target ipv4:y.y.y.y
voice-class sip bind control source-interface GigabitEthernet0/1
voice-class sip bind media source-interface GigabitEthernet0/1
!
gateway
media-inactivity-criteria all
timer receive-rtcp 5
timer receive-rtp 1200
Sample Configuration for Single-Attached CUBE HSRP RedundancyWhile a dual-attached CUBE is the most common configuration, especially for SP SIP trunk connections, it is also possible to configure CUBE HSRP box-to-box redundancy with a single-attached CUBE deployment as given in this section.
Active Router Configuration:
ipc zone default
association 1
no shutdown
protocol sctp
local-port 5000
local-ip 1.2.175.8
remote-port 5000
remote-ip 1.2.175.12
!
voice service voip
mode border-element
allow-connections sip to sip
redundancy
sip
bind control source-interface GigabitEthernet0/0
bind media source-interface GigabitEthernet0/0
!
redundancy inter-device
scheme standby SB
!
redundancy
!
interface GigabitEthernet0/0
ip address 1.2.175.8 255.255.0.0
duplex auto
speed auto
keepalive
standby delay minimum 30 reload 60
standby version 2
standby 0 ip 1.2.175.100
standby 0 preempt
standby 0 priority 50
standby 0 name SB
standby 0 track 1 decrement 10
!
ip rtcp report interval 3000
!
dial-peer voice 5 voip
description to-SIP-application
destination-pattern 9T
session protocol sipv2
session target ipv4:x.x.x.x
!
dial-peer voice 9 voip
description to-CUCM
destination-pattern 555....
session protocol sipv2
session target ipv4:y.y.y.y
!
gateway
media-inactivity-criteria all
timer receive-rtcp 5
timer receive-rtp 1200
Standby Router Configuration:
ipc zone default
association 1
no shutdown
protocol sctp
local-port 5000
local-ip 1.2.175.12
remote-port 5000
remote-ip 1.2.175.8
!
voice service voip
mode border-element
allow-connections sip to sip
redundancy
sip
bind control source-interface GigabitEthernet0/0
bind media source-interface GigabitEthernet0/0
!
redundancy inter-device
scheme standby SB
!
redundancy
!
interface GigabitEthernet0/0
ip address 1.2.175.12 255.255.0.0
duplex auto
speed auto
standby delay minimum 30 reload 60
standby version 2
standby 0 ip 1.2.175.100
standby 0 priority 50
standby 0 preempt
standby 0 name SB
standby 0 track 1 decrement 10
!
ip rtcp report interval 3000
!
dial-peer voice 5 voip
description to-SIP-application
destination-pattern 9T
session protocol sipv2
session target ipv4:x.x.x.x
!
dial-peer voice 9 voip
description to-CUCM
destination-pattern 555....
session protocol sipv2
session target ipv4:y.y.y.y
!
gateway
media-inactivity-criteria all
timer receive-rtcp 5
timer receive-rtp 1200
Verify Redundancy State
SUMMARY STEPS
- Use the show redundancy inter-Router and show redundancy state commands to verify the redundancy state.
DETAILED STEPS
Command or Action | Purpose |
---|---|
Use the show redundancy inter-Router and show redundancy state commands to verify the redundancy state. |
The following is a sample output for the command show redundancy inter-Router after the inter-router configuration and before router reload:
The following are sample outputs for the commands show redundancy inter-Router and show redundancy state after the router reload:
The following are sample outputs for the commands show redundancy inter-Router and show redundancy state during a switchover:
The following are sample outputs for the commands show redundancy inter-Router and show redundancy state after a switch over, but before the routers exchange Hello status messages:
The following are sample outputs for the commands show redundancy inter-Router and show redundancy state after the exchange of Hello status messages:
|
Verify Call State After a Switchover
Use the show voice high-availability summary command to verify the following:
-
The checkpointing of calls on the standby router after a switchover
-
The media-inactivity count on the active router when the calls are over
-
To check for native and nonnative (for example, preserved) calls when both types of calls are present
-
To identify the presence of leaked RTP, HA, SPI sessions
Verify checkpointing of calls on the standby router after a switchover
In this example, 800 calls were checkpointed from active to standby after the switchover.
Router#show voice high-availability summary
======== Voice HA DB INFO ========
Number of calls in HA DB: 0
Number of calls in HA sync pending DB: 0
Number of calls in HA preserved session DB: 0
-----------------------------
First a few entries in HA DB:
-----------------------------
---------------------------------------
First a few entries in Sync Pending DB:
---------------------------------------
----------------------------
======== Voice HA Process INFO ========
Active process current tick: 3100
Active process number of tick events pending: 0
Active process number of tick events processed: 0
voice service voip is configured to have redundancy
======== Voice HA RF INFO ========
Voice HA RF Client Name: VOIP RF CLIENT
Voice HA RF Client ID: 1345
My current rf state STANDBY HOT
Peer current rf state ACTIVE
Voice HA Standby is not available.
System has not experienced switchover.
======== Voice HA CF INFO ========
Voice HA CF Client Name: CHKPT VOIP SYMPHONY
Voice HA CF Client ID: 252
Voice HA CF Client Status: Peer NOT READY; TP flow ON.
======== Voice HA COUNTERS ========
Total number of checkpoint requests sent (Active): 0
Total number of checkpoint requested received (Standby): 971
Total CREATE received on Standby: 800
Total MODIFY received on Standby: 0
Total DELETE received on Standby: 800
Media Inactivity event count: 0
Checkpoint CREATE overflow: 0
Checkpoint MODIFY overflow: 0
Checkpoint DELETE overflow: 0
HA DB elememnt pool overrun count: 0
HA DB aux element pool overrun count: 0
HA DB insertion failure count: 0
HA DB deletion failure count: 0
Tick event pool overrun count: 0
Tick event queue overrun count: 0
Checkpoint send failure count: 0
Checkpoint get buffer failure count: 0
Verify the media-inactivity count on the active router when the calls are over
In this example, 800 calls are cleared by the media-inactivity timer.
Router#show voice high-availability summary
======== Voice HA DB INFO ========
Number of calls in HA DB: 0
Number of calls in HA sync pending DB: 0
Number of calls in HA preserved session DB: 0
-----------------------------
First a few entries in HA DB:
-----------------------------
---------------------------------------
First a few entries in Sync Pending DB:
---------------------------------------
----------------------------
======== Voice HA Process INFO ========
Active process current tick: 4213
Active process number of tick events pending: 0
Active process number of tick events processed: 0
voice service voip is configured to have redundancy
======== Voice HA RF INFO ========
Voice HA RF Client Name: VOIP RF CLIENT
Voice HA RF Client ID: 1345
My current rf state ACTIVE
Peer current rf state STANDBY HOT
Voice HA Active and Standby are in sync.
System has experienced switchover.
======== Voice HA CF INFO ========
Voice HA CF Client Name: CHKPT VOIP SYMPHONY
Voice HA CF Client ID: 252
Voice HA CF Client Status: Peer READY; TP flow ON.
======== Voice HA COUNTERS ========
Total number of checkpoint requests sent (Active): 971
Total number of checkpoint requested received (Standby): 800
Total CREATE received on Standby: 800
Total MODIFY received on Standby: 0
Total DELETE received on Standby: 0
Media Inactivity event count: 800
Checkpoint CREATE overflow: 0
Checkpoint MODIFY overflow: 0
Checkpoint DELETE overflow: 0
HA DB elememnt pool overrun count: 0
HA DB aux element pool overrun count: 0
HA DB insertion failure count: 0
HA DB deletion failure count: 0
Tick event pool overrun count: 0
Tick event queue overrun count: 0
Checkpoint send failure count: 0
Checkpoint get buffer failure count: 0
Verify native and non-native (preserved) calls when both are present
The numbers of calls on the system are shown as follows:
-
Total number of calls = "Number of calls in HA DB" + "Number of calls in HA sync pending DB". This is 100 + 50 = 150 in the example output below.
-
Total number of preserved (nonnative) calls = "Number of calls in HA preserved session DB". This is 70 in the example output below.
-
Total number of native calls (calls set up since the failover and therefore not preserved over the failover) is the difference in the previous two numbers. In this example, it is 150 - 70 = 80.
Router#show voice high-availability summary
======== Voice HA DB INFO ========
Number of calls in HA DB: 100
Number of calls in HA sync pending DB: 50
Number of calls in HA preserved session DB: 70
Identify the presence of leaked RTP, HA, SPI Sessions
The total number of preserved (non-native) calls cleared by Media Inactivity is equal to the total CREATE received on standby router minus total DELETE received on standby router. Compare this number with the Media Inactivity event count and the number of media down events, as shown in the output of the show voip fpi stats command.
Router# show voice high-availability summary
======== Voice HA DB INFO ========
Number of calls in HA DB: 0
Number of calls in HA sync pending DB: 0
Number of calls in HA preserved session DB: 0
======== Voice HA COUNTERS ========
Total number of checkpoint requests sent (Active): 971
Total number of checkpoint requested received (Standby): 800
Total CREATE received on Standby: 800
Total MODIFY received on Standby: 0
Total DELETE received on Standby: 0
Media Inactivity event count: 800
Considerations and Restrictions
The following is a list of further considerations and restrictions you should know before configuring this topology:
Considerations
-
There are slight differences in the HSRP configuration between active and standby routers.
-
Configuration synchronization between the active and standby router is manual.
-
HSRP virtual addresses support only IPv4 addressing.
-
Only active calls are checkpointed (Calls that are connected with 200 OK or ACK transaction completed).
-
Upon failover, the previously active CUBE reloads by design.
-
Multiple traffic (SIP/RTP) interfaces require Preemption and Interface Tracking.
-
In High Availability deployments, CUBE uses a primary IP address to communicate the Smart Licensing information.
-
Box-to-box redundancy configuration supports only SIP-SIP calls flows, the SIP transport can be either UDP-UDP or UDP-TCP.
-
Port channel interfaces are supported only from Cisco IOS Release 15.6(3)M onwards.
Restrictions
-
IPv6 is not supported.
-
All SCCP-based media resources (Conference bridge, Transcoding, Hardware MTP, and Software MTP) are not supported.
-
Cisco Unified Survivable Remote Site Telephony (Unified SRST) or TDM Gateway co-location on Cisco UBE HA is not supported.
-
Calls that involve supplementary services such as transcoding, DTMF-interworking, IVR, SIP-TLS, RSVP, STUN, RTP-SRTP conversion, or fax/modem features are not preserved during the failover.
-
Box-to-box redundancy configuration supports multiple HSRP groups per router, but only a single HSRP group per physical interface.
-
Loopback addresses with HSRP are not supported, the SIP bind command must use the HSRP virtual IP address.
-
No support for media-flow around or UC Services API (Cisco Unified Communications Manager - Network-Based Recording).
-
WANs cannot terminate directly on the CUBE or on data HSRP on either sides.
-
Call Progress Analysis (CPA) calls (before to being transferred to the agent), SCCP-based media resources, Noise Reduction, Acoustic Shock Protection (ASP), and transrating calls are not checkpointed.
-
Courtesy Callback (CCB) feature is not supported if a callback was registered with Cisco Unified Customer Voice Portal (CVP) and then a switchover was done on CUBE.