簡介
本檔案介紹如何在思科會議伺服器(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,然後輸入以下內容:
- 新增唯一的呼叫網橋名稱,無需域部件。
- 輸入XMPP伺服器域tptac9.com的域
- XMPP伺服器的伺服器地址。如果您希望此呼叫網橋僅使用共置的XMPP伺服器,或者沒有配置DNS,請設定此欄位。使用共置XMPP伺服器可降低延遲。
- 將此欄位留空以允許此呼叫橋在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