基础知识

必要条件

在将 CUBE HA 部署为 Webex Calling 的本地网关之前,确保深入了解以下概念:

本文中提供的配置准则是假定您采用了没有现行语音配置的专用本地网关平台。如果要修改现有的 CUBE 企业版部署以同时利用 Cisco Webex Calling 的本地网关功能,请密切注意所应用的配置,以确保现有呼叫流程和功能不会中断,并确保遵守 CUBE HA 的设计要求。

硬件和软件组件

作为本地网关,CUBE HA 需要使用 IOS-XE V16.12.2 或更高版本以及同时支持 CUBE HA 和 LGW 功能的平台。


 

本文中的 show 命令和日志基于 vCUBE (CSR1000v) 上实施的 Cisco IOS-XE 16.12.2 的最低软件发行版。

参考资料

以下是各种平台的一些详细 CUBE HA 配置指南:

Webex Calling 解决方案概述

Cisco Webex Calling 是一款协作产品,可以为本地 PBX 电话服务提供基于多租户云的替代方案,并有多个 PSTN 选项可供客户选择。

本文重点介绍本地网关部署(如下所示)。Webex Calling 中的本地网关(本地部署 PSTN)中继支持连接到客户自有的 PSTN 服务。此外,它还提供与本地 IP PBX 部署(如 Cisco Unified CM)的连接。所有与云之间的通信都将使用 TLS 传输(对于 SIP)和 SRTP(对于媒体)进行保护。

下图显示了没有任何现行 IP PBX 的 Webex Calling 部署,适用于单站点或多站点部署。本文概述的配置基于此部署。

第 2 层设备对设备冗余

CUBE HA 第 2 层设备对设备冗余使用了冗余组 (RG) 基础结构协议来构成活动/待机路由器对。此路由器对在各自的接口上共享同一个虚拟 IP 地址 (VIP),并持续交换状态消息。系统将在路由器对之间就 CUBE 会话信息执行检查点检查,从而在活动路由器停止服务时让待机路由器立即接管所有的 CUBE 呼叫处理工作,以实现有状态信令和媒体保持。


 

检查点检查仅限于带有媒体数据包的已连接呼叫。处于过渡状态的呼叫(例如处于尝试状态或振铃状态)不会执行检查点检查。

在本文中,CUBE HA 是指用于实现有状态呼叫保持的 CUBE 高可用性 (HA) 第 2 层设备对设备 (B2B) 冗余

从 IOS-XE 16.12.2 开始,可以将 CUBE HA 部署为 Cisco Webex Calling 中继(本地部署 PSTN)部署的本地网关,我们将在本文中介绍设计注意事项和配置。此图显示了作为 Cisco Webex Calling 中继部署的本地网关的典型 CUBE HA 设置。

冗余组基础结构组件

冗余组 (RG) 基础结构组件将在两个 CUBE 之间提供设备对设备 (B2B) 通信基础结构支持,并协商最终的稳定冗余状态。此外,该组件还提供:

  • 一种类似于 HSRP 的协议,用于通过在两个 CUBE 之间(经控制接口,即上图中的 GigabitEthernet3)交换 keepalive 消息和 hello 消息,从而协商每个路由器的最终冗余状态。

  • 一种传输机制,用于对从活动路由器传输到待机路由器(经数据接口,即上图中的 GigabitEthernet3)的每个呼叫的信令和媒体状态执行检查点检查。

  • 流量接口(可以使用同一个 RG 组来配置多个流量接口)的虚拟 IP (VIP) 接口配置和管理 - 上图中的 GigabitEthernet 1 和 GigabitEthernet 2 被视为流量接口。

该 RG 组件必须要明确地配置为支持语音 B2B HA。

用于信令和媒体的虚拟 IP (VIP) 地址管理

B2B HA 依靠 VIP 来实现冗余。在 CUBE HA 对中,两个 CUBE 上的 VIP 和关联物理接口必须位于同一个 LAN 子网中。要想支持语音 B2B HA,必须配置 VIP 并将 VIP 接口绑定到特定的语音应用程序 (SIP) 上。外部设备(如 Unified CM、Webex Calling 接入 SBC、服务商或代理)将 VIP 用作穿越 CUBE HA 路由器的呼叫的目标 IP 地址。因此,从 Webex Calling 的角度讲,CUBE HA 对将充当单个本地网关。

针对已建立的呼叫,系统将在活动路由器和待机路由器之间对其呼叫信令和 RTP 会话信息执行检查点检查。当活动路由器关闭时,待机路由器会接管其工作,并继续转发先前由第一个路由器路由的 RTP 流。

切换后,将不会保留在执行故障转移时处于过渡状态的呼叫。例如:未完全建立的呼叫,或是正在通过转接或保持功能进行修改的呼叫。切换后,已建立的呼叫可能会被断开。

将 CUBE HA 用作本地网关以实现有状态呼叫故障转移时,必须满足以下要求:

  • CUBE HA 不能让 TDM 或模拟接口处于同一位置

  • Gig1 和 Gig2 被称为流量 (SIP/RTP) 接口,而 Gig3 为冗余组 (RG) 控制接口/数据接口

  • 最多可以在同一个第 2 层域中放置 2 个 CUBE HA 对,其中一个具有组标识 1,另一个具有组标识 2。如果使用同一个组标识来配置 2 个 HA 对,则 RG 控制接口/数据接口必须属于不同的第 2 层域(vlan,单独的交换机)

  • RG 控制接口/数据接口和流量接口都支持端口通道

  • 所有信令/媒体均发送自/发送到虚拟 IP 地址

  • 每次在 CUBE HA 关系中重新加载某个平台时,该平台始终作为待机平台启动

  • 所有接口(Gig1、Gig2 和 Gig3)的低位地址都应该位于同一平台上

  • 在同一个第 2 层域中,一个对/接口组合的冗余接口标识符 (rii) 必须是唯一的

  • 两个 CUBE 的配置必须相同(包括物理配置),且必须在相同类型的平台和 IOS-XE 版本上运行

  • 环回接口不能用于绑定,因为它们始终处于打开状态

  • 多个流量 (SIP/RTP) 接口(Gig1 和 Gig2)要求配置接口跟踪

  • 在 RG 控制/数据链路 (Gig3) 的跨接线缆连接上,不支持 CUBE HA

  • 两个平台必须相同,且必须在所有类似接口之间通过物理交换机进行连接,这样 CUBE HA 才能正常工作。也就是说,CUBE-1 和 CUBE-2 的 GE0/0/0 必须端接到同一个交换机上,依此类推。

  • WAN 不能直接端接到 CUBE 上,且任一端不能端接到数据 HA 上

  • 活动/待机路由器必须位于同一个数据中心中

  • 必须为冗余使用单独的 L3 接口(RG 控制接口/数据接口,即 Gig3)。也就是说,用于流量的接口不能用于 HA keepalive 消息和检查点检查

  • 故障转移后,依照设计,先前的活动 CUBE 将进行重新加载,以实现信令和媒体保持

在两个 CUBE 上配置冗余

要想显示虚拟 IP,必须在计划用于 HA 对的两个 CUBE 上配置第 2 层设备对设备冗余。

1

在全局级别上配置接口跟踪功能,以跟踪接口的状态。

conf t
 track 1 interface GigabitEthernet1 line-protocol
 track 2 interface GigabitEthernet2 line-protocol
 exit 

VCUBE-1#conf t

VCUBE-1(config)#track 1 interface GigabitEthernet1 line-protocol

VCUBE-1(config-track)#track 2 interface GigabitEthernet2 line-protocol

VCUBE-1(config-track)#exit

VCUBE-2#conf t

VCUBE-2(config)#track 1 interface GigabitEthernet1 line-protocol

VCUBE-2(config-track)#track 2 interface GigabitEthernet2 line-protocol

VCUBE-2(config-track)#exit

Track CLI 在 RG 中用于跟踪语音流量接口状态,以便在流量接口关闭后让活动路由退出其活动角色。

2

配置一个 RG,供在应用程序冗余子模式下与 VoIP HA 配合使用。

redundancy
  application redundancy
   group 1
    name LocalGateway-HA
    priority 100 failover threshold 75
    control GigabitEthernet3 protocol 1
    data GigabitEthernet3
    timers delay 30 reload 60
    track 1 shutdown
    track 2 shutdown
    exit
   protocol 1
    timers hellotime 3 holdtime 10
   exit
  exit
 exit 

VCUBE-1(config)#redundancy

VCUBE-1(config-red)#application redundancy

VCUBE-1(config-red-app)#group 1

VCUBE-1(config-red-app-grp)#name LocalGateway-HA

VCUBE-1(config-red-app-grp)#priority 100 failover threshold 75

VCUBE-1(config-red-app-grp)#control GigabitEthernet3 protocol 1

VCUBE-1(config-red-app-grp)#data GigabitEthernet3

VCUBE-1(config-red-app-grp)#timers delay 30 reload 60

VCUBE-1(config-red-app-grp)#track 1 shutdown

VCUBE-1(config-red-app-grp)#track 2 shutdown

VCUBE-1(config-red-app-grp)#exit

VCUBE-1(config-red-app)#protocol 1

VCUBE-1(config-red-app-prtcl)#timers hellotime 3 holdtime 10

VCUBE-1(config-red-app-prtcl)#exit

VCUBE-1(config-red-app)#exit

VCUBE-1(config-red)#exit

VCUBE-1(config)#

VCUBE-2(config)#redundancy

VCUBE-2(config-red)#application redundancy

VCUBE-2(config-red-app)#group 1

VCUBE-2(config-red-app-grp)#name LocalGateway-HA

VCUBE-2(config-red-app-grp)#priority 100 failover threshold 75

VCUBE-2(config-red-app-grp)#control GigabitEthernet3 protocol 1

VCUBE-1(config-red-app-grp)#data GigabitEthernet3

VCUBE-2(config-red-app-grp)#timers delay 30 reload 60

VCUBE-2(config-red-app-grp)#track 1 shutdown

VCUBE-2(config-red-app-grp)#track 2 shutdown

VCUBE-2(config-red-app-grp)#exit

VCUBE-2(config-red-app)#protocol 1

VCUBE-2(config-red-app-prtcl)#timers hellotime 3 holdtime 10

VCUBE-2(config-red-app-prtcl)#exit

VCUBE-2(config-red-app)#exit

VCUBE-2(config-red)#exit

VCUBE-2(config)#

以下是对此配置中所使用的字段的说明:

  • redundancy—Enters redundancy mode

  • application redundancy—Enters application redundancy configuration mode

  • group—Enters redundancy application group configuration mode

  • name LocalGateway-HA—Defines the name of the RG group

  • priority 100 failover threshold 75—Specifies the initial priority and failover thresholds for an RG

  • timers delay 30 reload 60—Configures the two times for delay and reload

    • 延迟计时器定义了接口打开后 RG 组初始化和角色协商的延迟时间(缺省值为 30 秒)。范围是 0 到 10000 秒

    • Reload - 此字段定义了重新加载后 RG 组初始化和角色协商的延迟时间(缺省值为 60 秒)。范围是 0 到 10000 秒

    • 建议使用缺省计时器,但您可以调整缺省计时器来适应启动/重新加载路由器期间可能发生的任何其他网络融合延迟,以确保路由后在已融合到某个稳定点的网络中进行 RG 协议协商。例如,如果在故障转移之后发现新的待机路由器最多要用时 20 秒才从新的活动路由器收到第一个 RG HELLO 数据包,则应根据此延迟中的倍数关系将计时器调整为“timers delay 60 reload 120”。

  • control GigabitEthernet3 protocol 1—Configures the interface used to exchange keepalive and hello messages between the two CUBEs, and specifies the protocol instance that will be attached to a control interface and enters redundancy application protocol configuration mode

  • data GigabitEthernet3—Configures the interface used for checkpointing of data traffic

  • track—RG group tracking of interfaces

  • protocol 1—Specifies the protocol instance that will be attached to a control interface and enters redundancy application protocol configuration mode

  • timers hellotime 3 holdtime 10—Configures the two timers for hellotime and holdtime:

    • Hellotime - 两条连续 hello 消息之间的间隔(缺省值为 3 秒)。范围是 250 毫秒到 254 秒

    • Holdtime - 从收到 Hello 消息到推定发送路由器已发生故障之间的间隔。此持续时间必须大于 hellotime,缺省值为 10 秒。范围是 750 毫秒到 255 秒

      建议将 holdtime 计时器配置为 hellotime 计时器的 3 倍或以上。

3

为 CUBE 应用程序启用设备对设备冗余。在 voice service voip 下面,配置上一步中的 RG。这样,CUBE 应用程序就能够控制冗余过程。

voice service voip
   redundancy-group 1
   exit

VCUBE-1(config)#voice service voip

VCUBE-1(config-voi-serv)#redundancy-group 1

 % Created RG 1 association with Voice B2B HA; reload the router for the new configuration to take effect 

VCUBE-1(config-voi-serv)# exit

VCUBE-2(config)#voice service voip

VCUBE-2(config-voi-serv)#redundancy-group 1

 % Created RG 1 association with Voice B2B HA; reload the router for the new configuration to take effect 

VCUBE-2(config-voi-serv)# exit

redundancy-group 1—Adding and removing this command requires a reload for the updated configuration to take effect. 我们将会在所有配置都已应用后再重新加载平台。

4

如下所示,为 Gig1 接口和 Gig2 接口配置相应的虚拟 IP,并应用冗余接口标识符 (rii)

VCUBE-1(config)#interface GigabitEthernet1

VCUBE-1(config-if)# redundancy rii 1

VCUBE-1(config-if)# redundancy group 1 ip 198.18.1.228 exclusive

VCUBE-1(config-if)# exit

VCUBE-1(config)#

VCUBE-1(config)#interface GigabitEthernet2

VCUBE-1(config-if)# redundancy rii 2

VCUBE-1(config-if)# redundancy group 1 ip 198.18.133.228 exclusive

VCUBE-1(config-if)# exit

VCUBE-2(config)#interface GigabitEthernet1

VCUBE-2(config-if)# redundancy rii 1

VCUBE-2(config-if)# redundancy group 1 ip 198.18.1.228 exclusive

VCUBE-2(config-if)# exit

VCUBE-2(config)#

VCUBE-2(config)#interface GigabitEthernet2

VCUBE-2(config-if)# redundancy rii 2

VCUBE-2(config-if)# redundancy group 1 ip 198.18.133.228 exclusive

VCUBE-v(config-if)# exit

以下是对此配置中所使用的字段的说明:

  • redundancy rii—Configures the redundancy interface identifier for the redundancy group. 生成虚拟 MAC (VMAC) 地址时会用到此标识符。对于具有同一个 VIP 的每个路由器(活动/待机)而言,必须在其接口上使用相同的 rii ID 值。


     

    If there is more than one B2B pair on the same LAN, each pair MUST have unique rii IDs on their respective interfaces (to prevent collision). ‘show redundancy application group all’ should indicate the correct local and peer information.

  • redundancy group 1—Associates the interface with the redundancy group created in Step 2 above. 配置 RG 组以及分配给此物理接口的 VIP。


     

    必须为冗余使用单独的接口。也就是说,用于语音流量的接口不能用作上述步骤 2 中指定的控制接口和数据接口。在本例中,千兆位接口 3 用作 RG 控制接口/数据接口

5

保存第一个 CUBE 的配置,然后重新加载。

最后要重新加载的平台始终为待机平台。

VCUBE-1#wr

 Building configuration... 

 [OK] 

VCUBE-1#reload

 Proceed with reload? [confirm] 

VCUBE-1 完全启动后,保存 VCUBE-2 的配置,然后重新加载。

VCUBE-2#wr

 Building configuration... 

 [OK] 

VCUBE-2#reload

 Proceed with reload? [confirm] 

6

验证设备对设备冗余配置是否符合预期。相关的输出以粗体高亮显示。

最后重新加载 VCUBE-2;依据设计思路,最后要重新加载的平台始终为待机平台。

 VCUBE-1#show redundancy application group all Faults states Group 1 info: Runtime priority: [100] RG Faults RG State: Up. Total # of switchovers due to faults: 0 Total # of down/up state changes due to faults: 0 Group ID:1 Group Name:LocalGateway-HA Administrative State: No Shutdown Aggregate operational state: Up My Role: ACTIVE Peer Role: STANDBY Peer Presence: Yes Peer Comm: Yes Peer Progression Started: Yes RF Domain: btob-one RF state: ACTIVE Peer RF state: STANDBY HOT RG Protocol RG 1 ------------------ Role: Active Negotiation: Enabled Priority: 100 Protocol state: Active Ctrl Intf(s) state: Up Active Peer: Local Standby Peer: address 10.1.1.2, priority 100, intf Gi3 Log counters: role change to active: 1 role change to standby: 1 disable events: rg down state 0, rg shut 0 ctrl intf events: up 1, down 0, admin_down 0 reload events: local request 0, peer request 0 RG Media Context for RG 1 -------------------------- Ctx State: Active Protocol ID: 1 Media type: Default Control Interface: GigabitEthernet3 Current Hello timer: 3000 Configured Hello timer: 3000, Hold timer: 10000 Peer Hello timer: 3000, Peer Hold timer: 10000 Stats: Pkts 1509, Bytes 93558, HA Seq 0, Seq Number 1509, Pkt Loss 0 Authentication not configured Authentication Failure: 0 Reload Peer: TX 0, RX 0 Resign: TX 0, RX 0 Standy Peer: Present. Hold Timer: 10000 Pkts 61, Bytes 2074, HA Seq 0, Seq Number 69, Pkt Loss 0 VCUBE-1#
 VCUBE-2#show redundancy application group all Faults states Group 1 info: Runtime priority: [100] RG Faults RG State: Up. Total # of switchovers due to faults: 0 Total # of down/up state changes due to faults: 0 Group ID:1 Group Name:LocalGateway-HA Administrative State: No Shutdown Aggregate operational state: Up My Role: STANDBY Peer Role: ACTIVE Peer Presence: Yes Peer Comm: Yes Peer Progression Started: Yes RF Domain: btob-one RF state: ACTIVE Peer RF state: STANDBY HOT RG Protocol RG 1 ------------------ Role: Active Negotiation: Enabled Priority: 100 Protocol state: Active Ctrl Intf(s) state: Up Active Peer: address 10.1.1.2, priority 100, intf Gi3 Standby Peer: Local Log counters: role change to active: 1 role change to standby: 1 disable events: rg down state 0, rg shut 0 ctrl intf events: up 1, down 0, admin_down 0 reload events: local request 0, peer request 0 RG Media Context for RG 1 -------------------------- Ctx State: Active Protocol ID: 1 Media type: Default Control Interface: GigabitEthernet3 Current Hello timer: 3000 Configured Hello timer: 3000, Hold timer: 10000 Peer Hello timer: 3000, Peer Hold timer: 10000 Stats: Pkts 1509, Bytes 93558, HA Seq 0, Seq Number 1509, Pkt Loss 0 Authentication not configured Authentication Failure: 0 Reload Peer: TX 0, RX 0 Resign: TX 0, RX 0 Standy Peer: Present. Hold Timer: 10000
            Pkts 61, Bytes 2074, HA Seq 0, Seq Number 69, Pkt Loss 0

VCUBE-2#

在两个 CUBE 上配置本地网关

在配置示例中,我们使用 Control Hub 中的以下中继信息在 VCUBE-1 和 VCUBE-2 这两个平台上构建本地网关配置。此设置的用户名和密码如下所示:

  • 用户名:Hussain1076_LGU

  • 密码:lOV12MEaZx

1

确保先使用如下所示的命令来创建密码的配置密钥,然后才能在凭证或共享密钥中使用该配置密钥。第 6 类型的密码使用 AES 密码和这一用户定义的配置密钥进行加密。

 LocalGateway#conf t LocalGateway(config)#key config-key password-encrypt Password123 LocalGateway(config)#password encryption aes

以下是根据如上所示的 Control Hub 参数而应用于两个平台的本地网关配置,请保存并重新加载。SIP Digest credentials from Control Hub are highlighted in bold.

 configure terminal crypto pki trustpoint dummyTp revocation-check crl exit sip-ua crypto signaling default trustpoint dummyTp cn-san-validate server transport tcp tls v1.2 end configure terminal crypto pki trustpool import clean url http://www.cisco.com/security/pki/trs/ios_core.p7b end configure terminal voice service voip ip address trusted list ipv4 x.x.x.x y.y.y.y exit allow-connections sip to sip media statistics media bulk-stats no supplementary-service sip refer no supplementary-service sip handle-replaces fax protocol pass-through g711ulaw stun stun flowdata agent-id 1 boot-count 4 stun flowdata shared-secret 0 Password123! sip g729 annexb-all early-offer forced end configure terminal voice class sip-profiles 200 rule 9 request ANY sip-header SIP-Req-URI modify "sips:(.*)" "sip:\1" rule 10 request ANY sip-header To modify "<sips:(.*)" "<sip:\1" rule 11 request ANY sip-header From modify "<sips:(.*)" "<sip:\1" rule 12 request ANY sip-header Contact modify "<sips:(.*)>" "<sip:\1;transport=tls>" rule 13 response ANY sip-header To modify "<sips:(.*)" "<sip:\1" rule 14 response ANY sip-header From modify "<sips:(.*)" "<sip:\1" rule 15 response ANY sip-header Contact modify "<sips:(.*)" "<sip:\1" rule 20 request ANY sip-header From modify ">" ";otg=hussain1076_lgu>" rule 30 request ANY sip-header P-Asserted-Identity modify "sips:(.*)" "sip:\1" voice class codec 99 codec preference 1 g711ulaw codec preference 2 g711ulaw exit voice class srtp-crypto 200 crypto 1 AES_CM_128_HMAC_SHA1_80 exit voice class stun-usage 200 stun usage firewall-traversal flowdata exit voice class tenant 200 registrar dns:40462196.cisco-bcld.com scheme sips expires 240 refresh-ratio 50 tcp tls credentials number Hussain5091_LGU username Hussain1076_LGU password 0 lOV12MEaZx realm Broadworks authentication username Hussain5091_LGU password 0 lOV12MEaZx realm BroadWorks authentication username Hussain5091_LGU password 0 lOV12MEaZx realm 40462196.cisco-bcld.com no remote-party-id sip-server dns:40462196.cisco-bcld.com connection-reuse srtp-crypto 200 session transport tcp tls url sips error-passthru asserted-id pai bind control source-interface GigabitEthernet1 bind media source-interface GigabitEthernet1 no pass-thru content custom-sdp sip-profiles 200 outbound-proxy dns:la01.sipconnect-us10.cisco-bcld.com privacy-policy passthru voice class tenant 100 session transport udp url sip error-passthru bind control source-interface GigabitEthernet2 bind media source-interface GigabitEthernet2 no pass-thru content custom-sdp voice class tenant 300 bind control source-interface GigabitEthernet2 bind media source-interface GigabitEthernet2 no pass-thru content custom-sdp voice class uri 100 sip host ipv4:198.18.133.3 voice class uri 200 sip pattern dtg=hussain1076.lgu dial-peer voice 101 voip description Outgoing dial-peer to IP PSTN destination-pattern BAD.BAD session protocol sipv2 session target ipv4:198.18.133.3 voice-class codec 99 voice-class sip tenant 100 dtmf-relay rtp-nte no vad dial-peer voice 201 voip description Outgoing dial-peer to Webex Calling destination-pattern BAD.BAD session protocol sipv2 session target sip-server voice-class codec 99 voice-class stun-usage 200 no voice-class sip localhost voice-class sip tenant 200 dtmf-relay rtp-nte srtp no vad voice class dpg 100 description Incoming WebexCalling(DP200) to IP PSTN(DP101) dial-peer 101 preference 1 voice class dpg 200 description Incoming IP PSTN(DP100) to Webex Calling(DP201) dial-peer 201 preference 1 dial-peer voice 100 voip desription Incoming dial-peer from IP PSTN session protocol sipv2 destination dpg 200 incoming uri via 100 voice-class codec 99 voice-class sip tenant 300 dtmf-relay rtp-nte no vad dial-peer voice 200 voip description Incoming dial-peer from Webex Calling session protocol sipv2 destination dpg 100 incoming uri request 200 voice-class codec 99 voice-class stun-usage 200 voice-class sip tenant 200 dtmf-relay rtp-nte srtp no vad end copy run start 

为了显示 show 命令的输出,我们依次重新加载了 VCUBE-2VCUBE-1,其中 VCUBE-1 为待机 CUBE,而 VCUBE-2 为活动 CUBE

2

在任何给定时间,只有一个平台会向“Webex Calling 接入 SBC”进行活动注册(作为本地网关)。让我们来看看以下 show 命令的输出。

show redundancy application group 1

show sip-ua register status

 VCUBE-1#show redundancy application group 1 Group ID:1 Group Name:LocalGateway-HA Administrative State: No Shutdown Aggregate operational state : Up My Role: Standby Peer Role: ACTIVE Peer Presence: Yes Peer Comm: Yes Peer Progression Started: Yes RF Domain: btob-one RF state: STANDBY HOT Peer RF state: ACTIVE VCUBE-1#show sip-ua register status VCUBE-1#

 VCUBE-2#show redundancy application group 1 Group ID:1 Group Name:LocalGateway-HA Administrative State: No Shutdown Aggregate operational state : Up My Role: ACTIVE Peer Role: STATUS Peer Presence: Yes Peer Comm: Yes Peer Progression Started: Yes RF Domain: btob-one RF state: ACTIVE Peer RF state: STANDBY HOT VCUBE-2#show sip-ua register status Tenant: 200 --------------------Registrar-Index 1 --------------------- Line peer expires(sec) reg survival P-Associ-URI ============================== ========== ============ === ======== ============ Hussain5091_LGU -1 48 yes normal VCUBE-2#

From the output above, you can see that VCUBE-2 is the active LGW maintaining the registration with Webex Calling access SBC, whereas the output of the “show sip-ua register status” is blank in VCUBE-1

3

现在,请在 VCUBE-1 上启用以下调试

 VCUBE-1#debug ccsip non-call SIP Out-of-Dialog tracing is enabled VCUBE-1#debug ccsip info SIP Call info tracing is enabled VCUBE-1#debug ccsip message

4

在活动 LGW(在本例中为 VCUBE-2)上发出以下命令,以模拟故障转移。

 VCUBE-2#redundancy application reload group 1 self

除了上面列出的 CLI 之外,下列情况下也会从活动 LGW 切换到待机 LGW

  • 重新加载活动路由器时

  • 重新开启活动路由器电源时

  • 关闭启用了跟踪功能的活动路由器上的 RG 配置接口时

5

检查 VCUBE-1 是否已向“Webex Calling 接入 SBC”进行注册。VCUBE-2 现在应该已重新加载。

 VCUBE-1#show sip-ua register status Tenant: 200 --------------------Registrar-Index 1 --------------------- Line peer expires(sec) reg survival P-Associ-URI ============================== ========== ============ === ======== ============ Hussain5091_LGU -1 56 yes normal VCUBE-1#

VCUBE-1 现在为活动 LGW。

6

查看有关 VCUBE-1 通过虚拟 IP 向 Webex Calling 发送 SIP REGISTER 并收到 200 OK 的相关调试日志。

 VCUBE-1#show log Jan 9 18:37:24.769: %RG_MEDIA-3-TIMEREXPIRED: RG id 1 Hello Time Expired. Jan 9 18:37:24.771: %RG_PROTCOL-5-ROLECHANGE: RG id 1 role change from Standby to Active Jan 9 18:37:24.783: %VOICE_HA-2-SWITCHOVER_IND: SWITCHOVER, from STANDBY_HOT to ACTIVE state. Jan 9 18:37:24.783: //-1/xxxxxxxxxxxx/SIP/Info/info/4096/sip_ha_notify_active_role_event: Received notify active role event Jan 9 18:37:25.758: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:发送时间:REGISTER sip: 40462196.cisco-bcld.com:5061 SIP/2.0 Via: SIP/2.0/TLS 198.18.1.228:5061;branch=z9hG4bK0374 From: <sip:Hussain5091_LGU@40462196.cisco-bcld.com;otg=hussain1076_lgu>;tag=8D573-189 To: <sip:Hussain5091_LGU@40462196.cisco-bcld.com> Date: Thu, 09 Jan 2020 18:37:24 GMT Call-ID: FFFFFFFFEA0684EF-324511EA-FFFFFFFF800281CD-FFFFFFFFB5F93B97 User-Agent: Cisco-SIPGateway/IOS-16.12.02 Max-Forwards: 70 Timestamp: 1578595044 CSeq: 2 REGISTER Contact: <sip:Hussain5091_LGU@198.18.1.228:5061;transport=tls> Expires: 240 Supported: path Content-Length: 0 

Jan 9 18:37:25.995: //-1/000000000000/SIP/Msg/ccsipDisplayMsg:Received: SIP/2.0 401 Unauthorized Via: SIP/2.0/TLS 198.18.1.228:5061;received=173.38.218.1;branch=z9hG4bK0374;rport=4742 From: <sip:Hussain5091_LGU@40462196.cisco-bcld.com;otg=hussain1076_lgu>;tag=8D573-189 To: <sip:Hussain5091_LGU@40462196.cisco-bcld.com>;tag=SD1u8bd99-1324701502-1578595045969 Date: Thu, 09 Jan 2020 18:37:24 GMT Call-ID: FFFFFFFFEA0684EF-324511EA-FFFFFFFF800281CD-FFFFFFFFB5F93B97 Timestamp: 1578595044 CSeq: 2 REGISTER WWW-Authenticate; DIGEST realm="BroadWorks",qop="auth",nonce="BroadWorksXk572qd01Ti58zliBW",algorithm=MD5 Content-Length: 0 

Jan 9 18:37:26.000: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:发送时间:REGISTER sip:40462196.cisco-bcld.com:5061 SIP/2.0 Via: SIP/2.0/TLS 198.18.1.228:5061;branch=z9hG4bK16DC From: <sip:Hussain5091_LGU@40462196.cisco-bcld.com;otg=hussain1076_lgu>;tag=8D573-189 To: <sip:Hussain5091_LGU@40462196.cisco-bcld.com> Date: Thu, 09 Jan 2020 18:37:25 GMT Call-ID: FFFFFFFFEA0684EF-324511EA-FFFFFFFF800281CD-FFFFFFFFB5F93B97 User-Agent:Cisco-SIPGateway/IOS-16.12.02 Max-Forwards: 70 Timestamp: 1578595045 CSeq: 3 REGISTER Contact: <sip:Hussain5091_LGU@198.18.1.228:5061;transport=tls> Expires: 240 Supported: path Authorization: Digest username="Hussain1076_LGU",realm="BroadWorks",uri="sips:40462196.cisco-bcld.com:5061",response="b6145274056437b9c07f7ecc08ebdb02",nonce="BroadWorksXk572qd01Ti58z1iBW",cnonce="3E0E2C4D",qop=auth,algorithm=MD5,nc=00000001 Content-Length: 0 

Jan 9 18:37:26.190: //1/000000000000/SIP/Msg/ccsipDisplayMsg:Received: SIP/2.0 200 OK Via: SIP/2.0/TLS 198.18.1.228:5061;received=173.38.218.1;branch=z9hG4bK16DC;rport=4742 From: <sip:Hussain5091_LGU@40462196.cisco-bcld.com;otg=hussain1076_lgu>;tag=8D573-189 To: <sip:Hussain5091_LGU@40462196.cisco-bcld.com>;tag=SD1u8bd99-1897486570-1578595-46184 Call-ID: FFFFFFFFEA0684EF-324511EA-FFFFFFFF800281CD-FFFFFFFFB5F93B97 Timestamp: 1578595045 CSeq: 3 REGISTER Contact: <sip:Hussain5091_LGU@198.18.1.228:5061;transport=tls>;expires=120;q=0.5 Allow-Events: call-info,line-seize,dialog,message-summary,as-feature-event,x-broadworks-hoteling,x-broadworks-call-center-status,conference Content-Length: 0