目錄

簡介

必要條件

需求

採用元件

設定

網路圖表

組態

驗證

疑難排解

簡介

本檔案介紹如何在思科會議伺服器(CMS)上設定可擴充訊息傳送和狀態通訊協定(XMPP)復原能力。

必要條件

需求

思科建議您瞭解以下主題：

- 必須在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等網路瀏覽器

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

設定

網路圖表

此圖顯示XMPP消息和路由流量的交換。

組態

此XMPP恢復部署示例使用三個XMPP伺服器，並首次對其進行配置。

附註：如果以前部署了XMPP恢復能力，則建議重置所有伺服器。

XMPP伺服器使用keep-alive消息相互監控並選舉領導。XMPP消息可以傳送到任何伺服器。如前圖所示，消息轉發到Leader XMPP伺服器。XMPP伺服器繼續相互監控，如果Leader發生故障，則會選舉新的Leader，其他XMPP伺服器會將流量轉發到新的Leader。

步驟1.為XMPP元件生成證書。

生成CSR，然後使用此命令以根據需要通過本地證書頒發機構/公共證書頒發機構生成相應的證書

pki csr <key/cert basename>

步驟2.使用上述CSR，並使用本地憑證授權單位產生憑證。您可以使用VCS證書指南使用Microsoft證書頒發機構生成證書，附錄5第32頁

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 cluster trust 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群集初始化

重新啟用此節點

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 > Configuration > General，然後輸入以下內容：

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

Secret:kvgP1SRzWVabhiPVAb1

同樣地，對於cb2和cb3，對所有3個呼叫網橋cb1、cb2和cb3重複這些步驟。

執行這些步驟後，請檢查所有三個呼叫網橋上的集群狀態

驗證

運行cb1>> xmpp cluster status，使用此命令可獲取xmpp群集的活動狀態報告。如果群集失敗，則此命令返回xmpp伺服器的統計資訊，該統計資訊僅在此會議伺服器上運行。使用此命令可以嘗試並幫助診斷連線問題。

此圖顯示節點，一個作為引線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.com86400入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入SRV 0 0 5223 cb1.tptac9.com

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

_xmpp-component._tcp.tptac9.com。86400入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