目录

简介

先决条件

要求

使用的组件

配置

网络图

配置

验证

故障排除

简介

本文档介绍如何设置思科 Meeting Server (CMS) 上的可扩展消息传送和网真协议 (XMPP) 的恢复能力。

先决条件

要求

Cisco 建议您了解以下主题：

- 必须在XMPP恢复能力之前设置数据库群集。这是设置数据库群集的链接

https://www.cisco.com/c/en/us/support/docs/conferencing/meeting-server/210530-Configure-Cisco-Meeting-Server-Call-Brid.html

- CMS 上必须配置有 Callbridge 组件

- 思科建议您至少有 3 个 XMPP 节点再设置 XMPP 的恢复能力

- 当在“复原”模式下设置时，部署中的 XMPP 服务器都加载有相同的配置

- 对证书自签名、证书授权机构 (CA) 签名有一定的了解

- 必须使用域名服务器 (DNS)

- 需要本地证书授权机构或公共证书授权机构生成证书

注意：不建议在生产环境下使用自签名证书

使用的组件

本文档不限于特定的软件和硬件版本。

- CMS

- 主板管理处理器 (MMP) 的PuTTY 安全外壳 (SSH) 终端仿真软件

- Firefox 和 Chrome 等 Web 浏览器

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

配置

网络图

下图显示 XMPP 消息交换和路由流量。

配置

此 XMPP 恢复能力部署示例使用三个 XMPP 服务器，并且是第一次进行配置。

注意：如果之前部署过 XMPP 恢复能力，则建议重置所有服务器。

XMPP 服务器使用保持连接消息彼此监听和选择主服务器。XMPP 消息可以发送到任何服务器。如上图所示，消息转发到 XMPP主服务器。XMPP 服务器继续彼此监听，如果主服务器发生故障，则选择一个新的主服务器，其他 XMPP 服务器会将流量转发到主服务器。

第 1 步： 为 XMPP 组件生成证书。

生成 CSR，然后使用此命令通过所需的本地证书授权机构/公共证书授权机构生成相应的证书

pki csr  <密钥/证书基本名称>

步骤2.使用上述CSR并使用本地证书颁发机构生成证书。您可以使用 VCS 证书指南通过 Microsoft 证书授权机构生成证书（第 32 页附录 5）

https://www.cisco.com/c/dam/en/us/td/docs/telepresence/infrastructure/vcs/config_guide/X8-8/Cisco-VCS-Certificate-Creation-and-Use-Deployment-Guide-X8-8.pdf

使用 WINSCP/SFTP 服务器将证书上传到所有 3 个节点。要检查是否已上传证书，在 MMP/SSH 上使用以下命令

指令：pki list

注意：在实验中，所有 3 个 XMPP 节点使用一个证书。

第 3 步： 配置 CMS 以使用 XMPP 组件。

cb1> xmpp domain tptac9.com

cb1>xmpp listen a

cb1>xmpp certs abhiall.key abhiall.cer certall.cer

*certall.cer= CA certificate

提示：如果CA提供证书捆绑包，则将捆绑包作为单独的文件包含到证书中。证书捆绑包是一个文件(扩展名为.pem、.cer或.crt)，其中包含根CA证书和链中所有中间证书的副本。证书捆绑包中的证书有一定的顺序，其中根 CA 证书位于最后。在设置安全连接时，外部客户端（例如 Web 浏览器和 XMPP 客户端）要求 XMPP 服务器分别提供证书和证书捆绑包。

当需要证书捆绑包时，上述命令将是

cb1> xmpp certs abhiall.key abhiall.cer certallbundle.cer

certallbundle.cer= CA certificate + Intermediate CA + Intermediate CA1 + Intermediate CA2 +.... + Intermediate CAn +  Root CA

where n is an integer

当 3 个各自的 XMPP 节点使用 3 个证书时，请确保捆绑证书

xmppserver1.crt + xmppserver2.crt + xmppserver3.crt= xmpp-cluster-bundle.crt

本文档中使用一个证书 abhiall.cer。

请参阅以下指南获取有关证书的详细信息

https://www.cisco.com/c/dam/en/us/td/docs/conferencing/ciscoMeetingServer/Deployment_Guide/Version-2-2/Certificate-Guidelines-Scalable-and-Resilient-Deployments-2-2.pdf

第 4 步： 通过 SFTP 的证书将证书上传至运行 XMPP 组件的所有 CMS。

cb1>> xmpp cluster trust xmpp-cluster-bundle.crt

在实验室中，XMPP 集群信任 abhiall.cer

cb1>>xmpp cluster trust abhiall.cer

第 5 步： 将呼叫网桥添加到 XMPP 服务器。

cb1> xmpp callbridge add cb1

生成密钥，这将配置 XMPP 服务器允许连接名为 cb1 的呼叫网桥。

注意：生成域、呼叫网桥名称和密钥，您稍后会在配置呼叫网桥到 XMPP 服务器的访问权限（以便呼叫网桥向 XMPP 服务器提供身份验证详细信息）时需要此信息

上述命令用于向同一 XMPP 节点添加其他呼叫网桥。

cb1> xmpp callbridge add cb2

cb1> xmpp callbridge add cb3

注意：每个呼叫网桥必须有唯一名称。如果您尚未几下添加到 XMPP 服务器的呼叫网桥的详细信息，请使用以下命令：xmpp callbridge list

cb1> xmpp disable

这将禁用 XMPP 服务器节点

第 6 步： 启用 XMPP 集群。

cb1> xmpp cluster enable

在此节点上初始化 XMPP 集群。此命令会创建 1 个节点的 XMPP 集群，其他节点（XMPP 服务器）加入此集群。

cb1> xmpp cluster initialize

重新启用此节点

cb1>xmpp enable

第 7 步： 将呼叫网桥添加到第二个 XMPP 节点并将其加入集群。

向此节点添加每个呼叫网桥。这要求使用第一个 XMPP 服务器节点提供的同一呼叫网桥名称和密钥添加呼叫网桥。使用以下命令可以实现上述操作：

cb2>> xmpp callbridge add-secret cb1

输入呼叫网桥的密钥

药查看密钥，请运行 xmpp call bridge list 命令。它会列出第一个节点上生成的所有密钥。

将所有呼叫网桥密钥添加到第二个节点后。

cb2>> xmpp disable

cb2>> xmpp cluster enable

cb2>> xmpp enable

cb2>> xmpp cluster join <cluster>

集群：是第一个节点的 IP 地址或域名

第 8 步： 将呼叫网桥添加到第三个 XMPP 节点并将其加入集群。

向此节点添加每个呼叫网桥。这要求使用第一个 XMPP 服务器节点提供的同一呼叫网桥名称和密钥添加呼叫网桥。使用以下命令可以实现上述操作：

cb3>> xmpp callbridge add-secret cb1

输入呼叫网桥的密钥

现在查看密钥。您可以运行 xmpp callbridge list 命令。此命令会列出第一个节点上生成的所有密钥。

将所有呼叫网桥密钥添加到此节点后执行以下步骤。

cb3>> xmpp disable

cb3>> xmpp cluster enable

cb3>> xmpp enable

cb3>> xmpp cluster join <cluster>

集群：是第一个节点的 IP 地址或域名

第 9 步： 使用集群中 XMPP 服务器的身份验证详细信息配置每个呼叫网桥。这可让呼叫网桥访问 XMPP 服务器。

导航至 Webadmin > 配置 > 常规并输入以下信息：

1. 添加唯一的呼叫网桥名称，不需要域名部分。

2. 输入 XMPP 服务器域的域名 tptac9.com

3. XMPP 服务器的服务器地址。如果您希望此呼叫网桥仅使用同一个位置的 XMPP 服务器，或者未配置 DNS，则设置此字段。使用同一位置的 XMPP 服务器可减少延迟。

4. 将此字段留空可让此呼叫网桥在 XMPP 服务器之间进行故障切换，这需要设置 DNS 条目。

如果您打算使用域名服务器 (DNS) 连接呼叫网桥和 XMPP 服务器，还需要为 XMPP 集群设置 DNS SRV 记录，以便解析到集群中每个 XMPP 服务器的 DNS A 记录。DNS SRV 记录的格式为：  _xmpp-component._tcp.

_xmpp-component._tcp.example.com. 86400 IN SRV 0 0 5222 xmppserver1.example.com,  _xmpp-component._tcp.example.com. 86400 IN SRV 0 0 5223 xmppserver2.example.com, _xmpp-component._tcp.example.com. 86400 IN SRV 0 0 5223 xmppserver3.example.com.

上面的示例指定使用端口 5223（如果已使用 5223，则使用其他端口）。

各自呼叫网桥使用的共享密钥。例如，在上述屏幕截图中

Cb1 密钥为

Callbridge：cb1

域：tptac9.com

密钥：kvgP1SRzWVabhiPVAb1

cb2 和 cb3 与此类似，对于所有 3 个呼叫网桥 cb1、cb2 和 cb3 重复这些步骤。

执行这些步骤后，请在所有三个呼叫网桥上检查集群的状态

验证

运行 cb1>>  xmpp cluster status，此命令可获取有关 XMPP 集群的实时状态。如果集群发生故障，此命令会返回 XMPP 服务器（仅运行在此 Meeting Server 上）的统计信息。使用此命令可尝试帮助诊断连接问题。

下图显示节点，一个是主节点 10.106.81.30，其他两个是从属节点。

同样，在其他两个节点上检查状态。

在第二个节点上

在第三个节点上

故障排除

XMPP 恢复能力已成功设置。使用 XMPP 恢复能力时可能会出现问题。

场景 1： 检查 DNS 配置，屏幕截图上的错误表示出现了 DNS 问题。

如果看到这些错误，请检查 SRV 记录的配置。

在 XMPP 恢复能力中，呼叫网桥连接的 XMPP 服务器通过 DNS 进行控制。此选项基于给定的 DNS 优先级和权重。呼叫网桥一次仅连接一台 XMPP 服务器。不要求所有呼叫网桥都连接到同一台 XMPP 服务器，因为所有流量都会转发到主服务器。如果某个网络问题导致呼叫网桥到 XMPP 服务器的连接中断，呼叫网桥会尝试重新连接到其他 XMPP 服务器。必须为可以连接呼叫网桥的任何 XMPP 服务器配置呼叫网桥。

要启用客户端连接（使用 WebRTC 客户端），需要使用 _xmpp-client._tcp 记录。在典型部署中，其解析为端口 5222。在局域网内部，如果核心服务器可直接路由，则可解析为核心服务器上运行的 XMPP 服务。

例如：_xmpp-client._tcp.tptac9.com  可以有以下 SRV 记录：

_xmpp-client._tcp.tptac9.com 86400 IN SRV 10 50 5222 cb1.tptac9.com

有关为 XMPP 服务器节点设置 DNS 记录的建议。为了实现 XMPP 恢复能力，您需要使用 DNS 连接呼叫网桥和 XMPP 服务器，还需要为 XMPP 集群设置 DNS SRV 记录，以便解析到集群中每个 XMPP 服务器的 DNS A 记录。DNS SRV 记录的格式为：_xmpp-component._tcp.tptac9.com

根据针对 3 台 XMPP 服务器讨论的设置，可解析为所有三台服务器的记录如下所示

_xmpp-component._tcp.tptac9.com.86400 IN SRV 0 0 5223 cb1.tptac9.com

_xmpp-component._tcp.tptac9.com.86400 IN SRV 0 0 5223 cb2.tptac9.com

_xmpp-component._tcp.tptac9.com.86400 IN SRV 0 0 5223 cb3.tptac9.com

在此示例中指定的端口是 5223，如果已在使用 5223，也可以使用任何其他端口。但是，请确保必须打开所使用的端口。

场景2.当CMS状态页显示身份验证失败时。

如果未输入共享密钥或输入不正确，我们通常会看到身份验证失败。请确保已输入共享密钥，如果忘记密钥或者不方便获取密钥，请使用 SSH 登录服务器，然后运行此命令：xmpp callbridge list

本文档介绍 XMPP 恢复能力设置。因此，在所有 3 台服务器上运行命令，确保所有服务器上生成的密钥相同。如图所示，在服务器cb1上可以看到它，所使用的共享密钥与反映给cb3的共享密钥相同。在您检查其他服务器后，会断定为cb1输入的密钥不正确。

场景3.在XMPP节点的xmpp集群状态重复条目。

此输出显示节点 10.61.7.91:5222 的重复条目

cb1> xmpp cluster status

State: LEADER

List of peers

10.61.7.91:5222

10.61.7.91:5222

10.59.103.71:5222

10.59.103.70:5222 (Leader)

注意：建议在重置xmpp节点之前从群集中删除这些节点。如果在仍位于集群中的节点上执行 XMPP 重置，然后将节点重新加入到现有 XMPP 集群中，那么当通过 XMPP 集群状态检查状态时，就会创建此节点的重复条目。

这样会导致恢复能力设置出现问题。发现缺陷

https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvi67717

请查看以下指南的第 94 页

https://www.cisco.com/c/dam/en/us/td/docs/conferencing/ciscoMeetingServer/Deployment_Guide/Version-2-3/Cisco-Meeting-Server-2-3-Scalable-and-Resilient-Deployments.pdf