此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍如何解决客户在部署阶段遇到的最常见的Collaboration Edge问题。
移动和远程访问(MRA)是虚拟专用无网络(VPN)Jabber功能的部署解决方案。此解决方案允许最终用户从全球任何地方连接到内部企业资源。本指南旨在让对Collaboration Edge解决方案进行故障排除的工程师能够快速确定并解决客户在部署阶段面临的最常见问题。
Cisco 建议您了解以下主题:
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
此症状可能由许多问题引起,其中一些问题在此概述。
要使Jabber客户端能够使用MRA成功登录,必须创建特定的协作边缘SRV记录并且可从外部访问。当Jabber客户端最初启动时,它将进行DNS SRV查询:
如果Jabber客户端已启动,且未收到针对_cisco-uds和_cuplogin的SRV应答,且未收到针对_collab-edge的应答,则它会使用此应答尝试联系SRV应答中列出的Expressway-E。
_collab-edge SRV记录指向具有端口8443的Expressway-E的完全限定域名(FQDN)。如果_collab-edge SRV未创建,或者不是外部可用,或者它可用,但无法访问端口8443,则Jabber客户端无法登录。
您可以确认_collab-edge SRV记录是否可解析,以及是否可以使用协作解决方案分析器(CSA)中的SRV检查器访问TCP端口8443。
如果端口8443无法访问,这可能是因为安全设备(防火墙)阻止该端口,或者Exp-E中的默认网关(GW)或静态路由配置错误。
在Jabber客户端收到_collab-edge的答案后,它通过端口8443与Expressway联系,尝试从Expressway检索证书,以设置TLS用于Jabber客户端与Expressway之间的通信。
如果Expressway没有包含Expressway FQDN或域的有效签名证书,则此操作会失败,并且Jabber客户端无法登录。
如果发生此问题,请在Expressway上使用证书签名请求(CSR)工具,该工具会自动将Expressway的FQDN作为主题备用名称(SAN)包含在内。
注意:MRA需要Expressway-C和Expressway-E之间以及Expressway-E和外部终端之间的安全通信。
在MRA部署指南中可找到具有Expressway证书要求功能的下一个表:
Jabber客户端成功与Expressway-E建立安全连接后,将要求进行边缘配置(get_edge_config)。此边缘配置包含_cuplogin和_cisco-uds的SRV记录。如果在边缘配置中未返回_cisco-uds SRV记录,则Jabber客户端无法继续登录。
要解决此问题,请确保_cisco-uds SRV记录是在内部创建的,并可由Expressway-C解析。
有关DNS SRV记录的详细信息,请参阅X8.11的MRA部署指南。
如果您位于双域中,这也是一种常见症状。如果您在双域中运行,并且发现Jabber客户端未返回任何用户数据服务(UDS),则必须确认在内部DNS中与外部域一起创建了_cisco-uds SRV记录。
注意:在Expressway版本X12.5之后,不再需要向内部DNS添加_cisco-UDS SRV记录。有关此增强功能的详细信息,请参阅通过Cisco Expressway进行移动和远程访问部署指南(X12.5)。
如果Expressway-E网络接口控制器(NIC)配置不正确,可能会导致无法更新可扩展通信平台(XCP)服务器。如果Expressway-E满足以下条件,则可能会遇到此问题:
要解决此问题,请将Use Dual Network Interfaces选项更改为No。
出现此问题的原因是Expressway-E在错误的网络接口上侦听XCP会话,从而导致连接失败/超时。Expressway-E在TCP端口7400上侦听XCP会话。如果使用 netstat
命令。
如果DNS页面配置中的Expressway-E服务器主机名/域与_collab-edge SRV应答中收到的不匹配,则Jabber客户端无法与Expressway-E通信。Jabber客户端使用get_edge_config响应中的xmppEdgeServer/Address元素建立到Expressway-E的XMPP连接。
以下是xmppEdgeServer/Address在从Expressway-E到Jabber客户端的get_edge_config响应中的示例:
<xmppEdgeServer>
<server>
<address>examplelab-vcse1.example URL</address>
<tlsPort>5222</tlsPort>
</server>
</xmppEdgeServer>
为避免这种情况,请确保_collab-edge SRV记录与Expressway-E主机名/域名匹配。Cisco Bug ID CSCuo83458已针对此进行了注册,并且在Cisco Bug ID CSCuo82526上添加了部分支持。
Windows版Jabber日志显示:
2014-11-22 19:55:39,122 INFO [0x00002808] [very\WebexCasLookupDirectorImpl.cpp(134)]
[service-discovery] [WebexCasLookupDirectorImpl::makeCasLookupWhenNetworkIs
Available] - makeCasLookupForDomain result is 'Code: IS_WEBEX_CUSTOMER; Server:
http://URL server;
Url: http://example URL server';;;.2014-11-22
19:55:39,122 INFO [0x00002808] [overy\WebexCasLookupDirectorImpl.cpp(67)]
[service-discovery] [WebexCasLookupDirectorImpl::determineIsWebexCustomer] -
Discovered Webex Result from server. Returning server result.2014-11-22 19:55:39,122
DEBUG [0x00002808] [ery\WebexCasLookupUrlConfigImpl.cpp(102)]
[service-discovery] [WebexCasLookupUrlConfigImpl::setLastCasUrl] - setting last_cas_
lookup_url : http://example URL server2014-11-22
19:55:39,123 DEBUG [0x00002808] [pters\config\ConfigStoreManager.cpp(286)]
[ConfigStoreManager] [ConfigStoreManager::storeValue] - key : [last_cas_lookup_url]
value : [http://example URL server/cas/FederatedSSO?org=example URL]2014-11-22
19:55:39,123 DEBUG [0x00002808] [common\processing\TaskDispatcher.cpp(29)]
[TaskDispatcher] [Processing::TaskDispatcher::enqueue] - Enqueue ConfigStore::persist
Values - Queue Size: 02014-11-22 19:55:39,123 DEBUG [0x00002808] [pters\config\ConfigStore
Manager.cpp(140)]
[ConfigStoreManager] [ConfigStoreManager::getValue] - key : [last_cas_lookup_url]
skipLocal : [0] value: [http://website URL/cas/FederatedSSO?org=example URL]
success: [true] configStoreName: [LocalFileConfigStore]
登录尝试被定向到WebEx Connect。
要获得永久解决方案,必须联系WebEx才能停用此站点。
解决方法
在短期内,您可以使用这些选项之一将其从查找中排除。
<?xml version="1.0" encoding="utf-8"?>
<config version="1.0">
<Policies>
<ServiceDiscoveryExcludedServices>WEBEX<
/ServiceDiscoveryExcludedServices>
</Policies>
</config>
msiexec.exe /i CiscoJabberSetup.msi /quiet CLEAR=1 AUTHENTICATOR=CUP EXCLUDED_SERVICES=WEBEX
注:第二个选项不适用于移动设备。
ciscojabber://provision?ServiceDiscoveryExcludedServices=WEBEX
有关UC服务发现以及如何在Cisco Jabber 12.8的本地部署中排除某些服务的详细信息,请参阅。
如果导航到Status(状态)> Unified Communications(统一通信)并看到错误消息, "Configured but with errors. Provisioning server: Waiting for traversal server info."
对于Unified CM注册和IM&P服务,Expressway-C上配置的内部DNS服务器具有两个Expressway-E的DNS A记录。Expressway-E的多个DNS A记录背后的原因可能是受影响的用户从Expressway-E上启用了静态NAT的单个NIC移至启用了静态NAT的双个NIC,反之亦然,并且忘记删除内部DNS服务器中的相应DNS A记录。因此,当您在Expressway-C中使用DNS查找实用程序并解析Expressway-E FQDN时,您会看到两个DNS A记录。
解决方案
如果Expressway-E NIC配置为使用静态NAT的单个NIC:
ipconfig /flushdns
影响。如果Expressway-E NIC配置为启用静态NAT的双NIC:
ipconfig /flushdns
影响。如果客户在与Jabber客户端相同的PC上使用Microsoft DirectAccess,当您尝试远程登录时,可能会中断MRA。DirectAccess强制DNS查询通过隧道传输到内部网络,就像PC使用VPN一样。
注意:Microsoft DirectAccess不支持MRA上的Jabber。任何故障排除都是尽力而为的。DirectAccess的配置由网络管理员负责。
有些客户成功阻止了Microsoft DirectAccess名称解析策略表中的所有DNS记录。这些记录不由DirectAccess处理(Jabber需要能够通过MRA的公共DNS解析这些记录):
从版本X8.8开始,Expressway/VCS需要为ExpE、ExpC和所有CUCM节点创建正向和反向DNS条目。
有关完整要求,请参阅适用于移动和远程访问的x8.8版本说明和DNS记录中的必备条件和软件依赖关系。
如果没有内部DNS记录,Expressway日志中可能会出现引用reverseDNSLookup的错误:
2016-07-30T13:58:11.102-06:00 hostname XCP_JABBERD[20026]: UTCTime="2016-07-30 19:58:11,102" ThreadID="139882696623872" Module="Jabber" Level="WARN " CodeLocation="cvsservice.cpp:409" Detail="caught exception: exception in reverseDNSLookup: reverse DNS lookup failed for address=x.x.x.x"
查询Expressway E IP的PTR记录时,Expressway-C仅收到一个FQDN。如果从DNS接收到错误的FQDN,则会在日志中显示此行并失败:
2020-04-03T17:48:43.685-04:00 hostname XCP_JABBERD[10043]: UTCTime="2020-04-03 21:48:43,685" ThreadID="140028119959296" Module="Jabber" Level="WARN " CodeLocation="cvsservice.cpp:601" Detail="Certificate verification failed for host=xx.xx.xx.xx, additional info: Invalid Hostname"
来自Expressway-C的诊断日志显示 SIP/2.0 405 Method Not Allowed
消息响应Jabber客户端发送的注册请求。这可能是由于Expressway-C和CUCM之间的当前会话发起协议(SIP)中继(端口5060/5061)。
SIP/2.0 405 Method Not Allowed
Via: SIP/2.0/TCP 10.10.40.108:5060;egress-zone=CollabZone;branch=z9hG4bK81e7f5f1c1
ab5450c0b406c91fcbdf181249.81ba6621f0f43eb4f9c0dc0db83fb291;proxy-call-id=da9e25aa-
80de-4523-b9bc-be31ee1328ce;rport,SIP/2.0/TLS 10.10.200.68:7001;egress-zone=Traversal
Zone;branch=z9hG4bK55fc42260aa6a2e3741919177aa84141920.a504aa862a5e99ae796914e85d35
27fe;proxy-call-id=6e43b657-d409-489c-9064-3787fc4919b8;received=10.10.200.68;rport=
7001;ingress-zone=TraversalZone,SIP/2.0/TLS
192.168.1.162:50784;branch=z9hG4bK3a04bdf3;received=172.18.105.10;rport=50784;
ingress-zone=CollaborationEdgeZone
From: <sip:5151@collabzone>;tag=cb5c78b12b4401ec236e1642-1077593a
To: <sip:5151@collabzone>;tag=981335114
Date: Mon, 19 Jan 2015 21:47:08 GMT
Call-ID: cb5c78b1-2b4401d7-26010f99-0fa7194d@192.168.1.162
Server: Cisco-CUCM10.5
CSeq: 1105 REGISTER
Warning: 399 collabzone "SIP trunk disallows REGISTER"
Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY
Content-Length: 0
要解决此问题,请将应用于在CUCM中配置的当前SIP中继的SIP中继安全配置文件上的SIP端口和用于CUCM的Expressway-C邻居区域更改为其他端口(例如5065)。本视频对此进行了进一步说明。以下是配置摘要:
CUCM
Expressway-C
"Unknown domain"
来自Expressway-C的诊断日志显示Event="Registration Rejected" Reason="Unknown domain"
Service="SIP" Src-ip="XXX.XXX.XXX" Src-port="51601" Protocol="TCP" AOR="sip:XXX.XXX.XXX.XXX"。
要解决此问题,请检查以下几点:
"Idle countdown expired"
在Jabber客户端发送REGISTER消息的时间范围内查看Expressway E日志时,请查找 Idle countdown expired
如代码片断所示的错误。
2015-02-02T19:46:31+01:00 collabedge tvcs: UTCTime="2015-02-02 18:46:31,144"
Module="network.tcp" Level="DEBUG": Src-ip="JabberPubIP" Src-port="4211"
Dst-ip="VCS-E_IP" Dst-port="5061" Detail="TCP Connecting"
2015-02-02T19:46:31+01:00 collabedge tvcs: UTCTime="2015-02-02 18:46:31,144"
Module="network.tcp" Level="DEBUG": Src-ip="JabberPubIP" Src-port="4211" Dst-ip=
"VCS-E_IP" Dst-port="5061" Detail="TCP Connection Established"2015-02-02T19:46:49+01:00
collabedge tvcs: UTCTime="2015-02-02 18:46:49,606"
Module="network.tcp" Level="DEBUG": Src-port="4211" Dst-ip=
"VCS-E_IP" Dst-port="5061" Detail="TCP Connection Closed" Reason="Idle
countdown expired"
此代码片断表示防火墙确实打开了端口5061;但是,在足够长的时间内,没有经过的应用层流量,因此TCP连接会关闭。
如果您遇到这种情况,Expressway-E前面的防火墙很可能启用了SIP检测/应用层网关(ALG)功能。要修复此问题,您必须禁用此功能。如果您不确定如何执行此操作,请参阅防火墙供应商产品文档。
有关SIP检测/ALG的详细信息,请参阅Cisco Expressway-E和Expressway-C基本配置部署指南的附录4。
来自Expressway-E的诊断日志在端口5061中显示TLS协商失败,但在端口8443中显示SSL握手成功。
2015-08-04T10:14:23-05:00 expe tvcs: UTCTime="2015-08-04 15:14:23,533" Module="network.tcp" Level="DEBUG": Src-port="24646" Dst-ip="10.2.0.2" Dst-port="5061" Detail="TCP Connecting"
2015-08-04T10:14:23-05:00 expe tvcs: UTCTime="2015-08-04 15:14:23,534" Module="network.tcp" Level="DEBUG": Src-port="24646" Dst-ip="10.2.0.2" Dst-port="5061" Detail="TCP Connection Established"
2015-08-04T10:14:23-05:00 expe tvcs: UTCTime="2015-08-04 15:14:23,535" Module="developer.ssl" Level="ERROR" CodeLocation="ppcmains/ssl/ttssl/ttssl_openssl.cpp(67)" Method="::TTSSLErrorOutput" Thread="0x7fae4ddb1700": TTSSL_continueHandshake: Failed to establish SSL connection
2015-08-04T10:14:23-05:00 expe tvcs: UTCTime="2015-08-04 15:14:23,535" Module="network.tcp" Level="DEBUG": Src-port="24646" Dst-ip="10.2.0.2" Dst-port="5061" Detail="TCP Connection Closed" Reason="Got EOF on socket"
2015-08-04T10:14:23-05:00 expe tvcs: Event="Inbound TLS Negotiation Error" Service="SIP" Src-port="24646" Dst-ip="10.2.0.2" Dst-port="5061" Detail="No SSL error available, probably remote disconnect" Protocol="TLS" Level="1" UTCTime="2015-08-04 15:14:23,535"
Jabber日志:
-- 2015-08-04 10:48:04.775 ERROR [ad95000] - [csf.cert.][checkIdentifiers] Verification of identity: 'URL address' failed.
-- 2015-08-04 10:48:04.777 INFO [ad95000] - [csf.cert][handlePlatformVerificationResultSynchronously] Verification result : FAILURE reason : [CN_NO_MATCH UNKNOWN]
-- 2015-08-04 10:48:05.284 WARNING [ad95000] - [csf.ecc.handyiron][ssl_state_callback] SSL alert read:fatal:handshake failure
type=eSIP, isRelevant=true, server=URL server name:5061, connectionState=eFailed, isEncrypted=true, failureReason=eTLSFailure, SSLErrorCode=336151568
type=eSIP, isRelevant=true, server=192.168.102.253:5060, connectionState=eFailed, isEncrypted=false, failureReason=eFailedToConnect, serverType=ePrimary, role=eNone
-- 2015-08-04 10:48:05.287 ERROR [ad95000] - [csf.ecc.handyiron][secSSLIsConnected] SSL_do_handshake() returned : SSL_ERROR_SSL.
来自Jabber的数据包捕获显示与Expressway E IP的SSL协商;但是,发送的证书并非来自此服务器:
FW已配置电话代理。
解决方案:
确认FW运行电话代理。要检查此情况,请输入 show run policy-map
命令的输出和输出结果类似:
class sec_sip
inspect sip phone-proxy ASA-phone-proxy
禁用电话代理以便电话服务成功连接。
以下是一些缺乏和不正确的配置,可导致单网卡和双网卡部署中出现此问题:
建议不要使用单个网卡进行静态NAT部署。以下是一些防止介质问题的注意事项:
issing
有关这方面的详细信息,请参阅Cisco Expressway-E和Expressway-C基本配置部署指南的附录4。
此问题是由于X8.5之前的Expressway受到限制所致。Cisco Bug ID CSCua72781描述了Expressway-C如何在穿越区域的183会话进程或180振铃时不会转发早期媒体。如果运行版本X8.1.x或X8.2.x,可以升级到版本X8.5,或者执行此处列出的解决方法。
如果创建SIP配置文件,将183转换为180并将其应用于传入拨号对等体,则可以使用思科统一边界元素(CUBE)上的解决方法。例如:
voice class sip-profiles 11
response 183 sip-header SIP-StatusLine modify "SIP/2.0 183 Session Progress"
"SIP/2.0 180 Ringing"
然后,它们将在CUCM > CUBE的SIP配置文件或CUBE自身在sip-ua配置模式下禁用180早期媒体。
disable-early-media 180
将CUCM添加到Expressway-C时,会遇到阻止添加CUCM的ASCII错误。
当Expressway-C将CUCM添加到其数据库时,它会运行一系列与get和list函数相关的AXL查询。例如getCallManager、listCallManager、listProcessNode、listProcessNodeService和getCCMVersion。运行getCallManager进程后,它被ExecuteSQLQuery集继承以检索所有CUCM Call Manager-trust或tomcat-trust。
CUCM收到查询并在查询上执行后,CUCM会报告回其所有证书。如果其中一个证书包含非ASCII字符,则Expressway会在网络界面中生成错误,类似于 ascii codec can't decode byte 0xc3 in position 42487: ordinal not in range(128)
.
此问题通过Cisco Bug ID CSCuo5489进行跟踪,并在X8.2版本中已解决。
当您在CUCM和Tomcat.pem/CallManager.pem上使用自签名证书时,会出现此问题。此问题通过Cisco Bug ID CSCun30200得到解决。解决此问题的方法是删除tomcat.pem并从Expressway-C上的CUCM配置中禁用TLS验证。
添加IM&P服务器时,Expressway-C会报告“此服务器不是IM and Presence服务器”或“无法与.AXL查询HTTP错误“HTTPError:500”,从而导致无法添加IM&P服务器。
作为添加IM&P服务器的一部分,Expressway-C使用AXL查询在显式目录中查找IM&P证书。由于Cisco Bug ID CSCul05131,证书不在该存储区中;因此,您会遇到错误信息。
要成功连接Jabber客户端语音邮件状态,您必须在Expressway-C上的HTTP允许列表中配置Cisco Unity Connection IP地址或主机名。
要从Expressway-C完成此操作,请执行相关步骤:
版本X8.1和X8.2的步骤
X8.5版的程序
移动和远程访问解决方案仅使用UDS解析联系人照片。这要求您有一台可用于存储照片的Web服务器。该配置本身是双重的。
<Directory>
<DirectoryServerType>UDS</DirectoryServerType>
<PhotoUriWithToken>http://%IP/Hostname%/photo%%uid%%.jpg<
/PhotoUriWithToken>
<UdsServer>%IP%</UdsServer>
<MinimumCharacterQuery>3</MinimumCharacterQuery>
</Directory>
注意:有关UDS联系人照片解析的详细信息,请参阅Jabber联系人照片文档。
此错误消息可能与未由客户端设备信任的公共CA签名的Expressway边缘证书或域在服务器证书中作为SAN缺失有关。
要从Expressway证书接受提示中停止Jabber客户端,必须满足下面列出的两个条件:
注意:如果您使用公共证书颁发机构,这很容易实现,因为移动设备包含一个大型证书信任库。
版本 | 发布日期 | 备注 |
---|---|---|
2.0 |
23-Feb-2023 |
重新认证 |
1.0 |
04-Feb-2015 |
初始版本 |