简介
本文档介绍如何排除ASA上Cisco AnyConnect安全移动客户端的一些最常见通信问题。
先决条件
要求
Cisco 建议您了解以下主题:
- Cisco AnyConnect 安全移动客户端
- 自适应安全设备(ASA)
使用的组件
- 由ASDM 7.13管理的ASA 9.12
- AnyConnect 4.8
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
推荐的故障排除过程
本指南适用于连接到远程访问客户端VPN网关(ASA)时遇到的常见通信问题。这些部分提出以下问题并提供这些问题的解决方案:
- AnyConnect客户端无法访问内部资源
- AnyConnect客户端无法访问Internet
- AnyConnect客户端无法相互通信
- AnyConnect客户端无法建立电话呼叫
- AnyConnect客户端可以建立电话呼叫,但呼叫中没有音频
AnyConnect客户端无法访问内部资源
请完成以下步骤:
步骤1:检验分割隧道配置。
- 导航到用户连接的连接配置文件:Configuration > Remote Access VPN > Network(Client)Access > AnyConnect Connection Profile > Select the Profile
- 导航到分配给该配置文件的组策略:组策略>管理>编辑>高级>分割隧道
- 检查分割隧道配置。
等效 CLI 配置:
ASA# show running-config tunnel-group
隧道组AnyConnectTG类型远程访问
tunnel-group AnyConnectTG general-attributes
default-group-policy AnyConnectGP-Split
tunnel-group AnyConnectTG webvpn-attributes
group-alias AnyConnectTG enable
ASA# show running-config group-policy AnyConnectGP-Split
group-policy AnyConnectGP-Split internal
组策略AnyConnectGP-Split属性
dns-server value 10.0.1.1
vpn-tunnel-protocol ikev2 ssl-client
split-tunnel-policy tunnelspecified
split-tunnel-network-list value Split-ACL
split-dns none
split-tunnel-all-dns disable
- 如果配置为下面列出的隧道网络,请验证访问控制列表(ACL)配置。
在同一窗口中导航到Manage > Select the Access List > Edit the Access List for Split tunnel
- 确保您尝试从AnyConnect VPN客户端访问的网络列在访问控制列表(ACL)中。
等效 CLI 配置:
ASA# show running-config access-list Split-ACL
access-list Split-ACL standard permit 10.28.28.0 255.255.255.0
access-list Split-ACL remark Internal Network1
access-list Split-ACL standard permit 10.0.1.0 255.255.255.0
access-list Split-ACL remark Internal Network2
access-list Split-ACL standard permit 10.0.2.0 255.255.255.0
access-list Split-ACL remark Internal Network3
access-list Split-ACL standard permit 10.0.3.0 255.255.255.0
第二步:检验NAT免除配置。
请记住,必须配置NAT免除规则以避免将流量转换为接口IP地址,通常配置为用于互联网访问(使用端口地址转换)PAT)。
- 导航至NAT配置:Configuration > Firewall > NAT Rules
- 确保为正确的源(内部)和目标(AnyConnect VPN池)网络配置了NAT免除规则。此外,检查是否选择了正确的源接口和目标接口。
注意:配置NAT免除规则时,请检查no-proxy-arp并执行route-lookup选项作为最佳实践。
等效 CLI 配置:
ASA# show running-config nat
nat(inside,outside)source static INTERNAL_NETWORKS INTERNAL_NETWORKS destination static AnyConnectPool AnyConnectPool no-proxy-arp route-lookup
ASA# show running-config object-group id INTERNAL_NETWORKS
object-group network INTERNAL_NETWORKS
network-object InternalNetwork1
network-object InternalNetwork2
network-object InternalNetwork3
ASA# show running-config object id InternalNetwork1
object network InternalNetwork1
子网10.0.1.0 255.255.255.0
ASA# show running-config object id InternalNetwork2
object network InternalNetwork2
子网10.0.2.0 255.255.255.0
ASA# show running-config object id InternalNetwork3
对象网络InternalNetwork3
子网10.0.3.0 255.255.255.0
ASA# show running-config object id AnyConnectPool
对象网络AnyConnectPool
子网192.168.1.0 255.255.255.0
第三步:验证访问规则。
根据您的访问规则配置,确保允许来自AnyConnect客户端的流量到达选定的内部网络。
等效 CLI 配置:
ASA# show run access-group
access-group outside_access_in in interface outside
ASA# show run access-list outside_access_in
access-list outside_access_in extended permit ip object AnyConnectPool object-group INTERNAL_NETWORKS log disable
AnyConnect客户端无法访问Internet
此问题有两种可能的方案:
发往互联网的流量不得通过VPN隧道
确保将组策略配置为将隧道分割为下面列出的隧道网络,而不是配置为所有隧道网络。
等效 CLI 配置:
ASA# show running-config tunnel-group
隧道组AnyConnectTG类型远程访问
tunnel-group AnyConnectTG general-attributes
default-group-policy AnyConnectGP-Split
tunnel-group AnyConnectTG webvpn-attributes
group-alias AnyConnectTG enable
ASA# show run group-policy AnyConnectGP-Split
group-policy AnyConnectGP-Split internal
组策略AnyConnectGP-Split属性
dns-server value 10.0.1.1
vpn-tunnel-protocol ikev2 ssl-client
split-tunnel-policy tunnelspecified
split-tunnel-network-list value Split-ACL
split-dns none
split-tunnel-all-dns disable
发往互联网的流量必须通过VPN隧道
在这种情况下,拆分隧道的最常见组策略配置是选择Tunnel All Networks。
等效 CLI 配置:
ASA# show run tunnel-group
隧道组AnyConnectTG类型远程访问
tunnel-group AnyConnectTG general-attributes
default-group-policy AnyConnectGP-Split
tunnel-group AnyConnectTG webvpn-attributes
group-alias AnyConnectTG enable
ASA# show run group-policy AnyConnectGP-Split
group-policy AnyConnectGP-Split internal
组策略AnyConnectGP-Split属性
dns-server value 10.0.1.1
vpn-tunnel-protocol ikev2 ssl-client
split-tunnel-policy tunelall
split-dns none
split-tunnel-all-dns disable
步骤1:检验NAT免除配置以实现内部网络可达性。
请记住,我们仍然必须配置NAT免除规则才能访问内部网络。请复习上一节的第2步。
第二步:验证动态转换的发夹配置。
要使AnyConnect客户端通过VPN隧道访问互联网,您需要确保发夹NAT配置正确,以便流量转换为接口的IP地址。
- 导航至NAT配置:Configuration > Firewall > NAT Rules
- 确保将动态PAT(隐藏)规则配置为正确的接口(ISP链路)作为源和目标(发夹)。此外,检查用于AnyConnect VPN地址池的网络是否在Original source address中选择以及外部接口(或用于Internet访问的接口)是否为Translated source选择:
等效 CLI 配置:
ASA# show run object id AnyConnectPool
对象网络AnyConnectPool
nat(outside,outside)动态接口
或者
ASA# show run nat
nat(outside,outside)源动态AnyConnectPool接口
第三步:验证访问规则。
根据您的访问规则配置,确保允许来自AnyConnect客户端的流量访问外部资源。
等效 CLI 配置:
access-list outside_access_in extended permit ip object AnyConnectPool any
access-list outside_access_in extended permit ip any object AnyConnectPool
access-group outside_access_in in interface outside
AnyConnect客户端无法相互通信
此问题有两种可能的方案:
AnyConnect客户端,具有隧道所有网络配置
当Tunnel All Networks配置为AnyConnect时,意味着所有内部和外部流量都必须转发到AnyConnect前端,当您拥有用于公共Internet访问的网络地址转换(NAT)时,这将成为问题,因为从AnyConnect客户端发往另一个AnyConnect客户端的流量会转换为接口IP地址,因此通信失败。
步骤1:检验NAT免除配置。
要解决此问题,必须配置手动NAT免除规则以允许AnyConnect客户端内的双向通信。
- 导航至NAT配置:Configuration > Firewall > NAT Rules。
- 确保为正确的源(AnyConnect VPN池)和目标(AnyConnect VPN池)网络配置了NAT免除规则。此外,检查是否采用了正确的发夹配置。
等效 CLI 配置:
ASA# show run nat
nat(outside,outside)source static AnyConnectPool AnyConnectPool destination static AnyConnectPool AnyConnectPool no-proxy-arp route-lookup
第二步:验证访问规则。
根据您的访问规则配置,确保允许来自AnyConnect客户端的流量。
等效 CLI 配置:
access-list outside_access_in extended permit ip object AnyConnectPool object AnyConnectPool
access-group outside_access_in in interface outside
具有下列隧道网络的AnyConnect客户端配置到位
为AnyConnect客户端配置了下面列出的隧道网络后,只有特定流量必须通过VPN隧道转发到。但是,我们需要确保头端具有适当的配置,以允许AnyConnect客户端内部的通信。
步骤1:检验NAT免除配置。
请检查同一部分中第1点的第1步。
第二步:检验分割隧道配置。
要使AnyConnect客户端之间通信,我们需要将VPN池地址添加到拆分隧道访问控制策略(ACL)。
- 请阅读AnyConnect客户端无法访问内部资源部分的第1步。
- 确保AnyConnect VPN池网络在拆分隧道访问控制列表(ACL)中列出。
注:如果AnyConnect客户端有多个IP池,并且需要在不同池之间进行通信,请确保在拆分隧道ACL中添加所有池。此外,为所需的IP池添加NAT免除规则。
等效 CLI 配置:
ip local pool RAVPN-Pool 192.168.1.1-192.168.1.254 mask 255.255.255.0
隧道组AnyConnectTG类型远程访问
tunnel-group AnyConnectTG general-attributes
default-group-policy AnyConnectGP-Split
tunnel-group AnyConnectTG webvpn-attributes
group-alias AnyConnectTG enable
group-policy AnyConnectGP-Split internal
组策略AnyConnectGP-Split属性
dns-server value 10.0.1.1
vpn-tunnel-protocol ikev2 ssl-client
split-tunnel-policy tunnelspecified
split-tunnel-network-list value Split-ACL
split-dns none
split-tunnel-all-dns disable
ASA# show run access-list Split-ACL
access-list Split-ACL standard permit 10.28.28.0 255.255.255.0
access-list Split-ACL remark Internal Network1
access-list Split-ACL standard permit 10.0.1.0 255.255.255.0
access-list Split-ACL remark Internal Network2
access-list Split-ACL standard permit 10.0.2.0 255.255.255.0
access-list Split-ACL remark Internal Network3
access-list Split-ACL standard permit 10.0.3.0 255.255.255.0
access-list Split-ACL remark AnyConnect池子网
access-list Split-ACL standard permit 192.168.1.0 255.255.255.0
第三步:验证访问规则。
根据您的访问规则配置,确保允许来自AnyConnect客户端的流量。
等效 CLI 配置:
access-list outside_access_in extended permit ip object AnyConnectPool object AnyConnectPool
access-group outside_access_in in interface outside
AnyConnect客户端无法建立电话呼叫
有时,我们需要通过VPN建立电话呼叫和视频会议。
AnyConnect客户端可以连接到AnyConnect头端,而不会有任何问题。它们可以访问内部和外部资源,但无法建立电话呼叫。
对于这种情况,我们需要考虑以下几点:
- 语音的网络拓扑。
- 涉及的协议。例如,会话初始协议(SIP)、快速生成树协议(RSTP)等。
- VPN电话如何连接到Cisco Unified Communications Manager(CUCM)。
默认情况下,ASA在其全局策略映射中默认启用应用检测。
在大多数情况下,VPN电话无法与CUCM建立可靠通信,因为AnyConnect头端已启用修改信号和语音流量的应用检测。
有关可在其中应用应用检测的语音和视频应用的详细信息,请参阅下一文档:
章节:语音和视频协议检测
要确认全局策略映射是否丢弃或修改了应用流量,您可以使用show service-policy命令,如下所示:
ASA#show service-policy
全球政策:
Service-policy:global_policy
类映射:inspection_default
.
<省略部分输出>
.
检查:sip、packet 792114、lock fail 0、drop 10670、reset-drop 0、5-min-pkt-rate 0 pkts/sec、v6-fail-close 0 sctp-drop-override 0
.
<省略部分输出>
在这种情况下,SIP检测会丢弃流量。
此外,SIP检测还可以转换负载内部的IP地址,而不是IP报头中的IP地址,这会导致不同的问题,因此当您希望使用AnyConnect VPN上的语音服务时,建议禁用该检测。
要禁用SIP检测,请完成以下步骤:
步骤1:导航到Configuration > Firewall > Service Policy Rules。
第二步:编辑Global Policy Rule > Rule Actions。
取消选中SIP protocol框。
等效 CLI 配置:
ASA# show run policy-map
!
policy-map type inspect dns preset_dns_map
参数
消息长度最大客户端自动
message-length maximum 512
no tcp-inspection
policy-map global_policy
class inspection_default
inspect dns preset_dns_map
inspect ftp
inspect h323 h225
inspect h323 ras
inspect rsh
inspect rtsp
inspect esmtp
inspect sqlnet
inspect skinny
inspect sunrpc
inspect xdmcp
inspect sip
inspect netbios
inspect tftp
inspect ip-options
!
下一步是禁用SIP检测:
ASA#配置终端
ASA(config)# policy-map global_policy
ASA(config-pmap)# class inspection_default
ASA(config-pmap-c)# no inspect sip
确保从全局策略映射禁用SIP检测:
ASA# show run policy-map
!
policy-map type inspect dns preset_dns_map
参数
消息长度最大客户端自动
message-length maximum 512
no tcp-inspection
policy-map global_policy
class inspection_default
inspect dns preset_dns_map
inspect ftp
inspect h323 h225
inspect h323 ras
inspect rsh
inspect rtsp
inspect esmtp
inspect sqlnet
inspect skinny
inspect sunrpc
inspect xdmcp
inspect netbios
inspect tftp
inspect ip-options
AnyConnect客户端可以建立电话呼叫,但呼叫中没有音频
如上一节所述,AnyConnect客户端的一个非常普遍的需求是在连接到VPN时建立电话呼叫。在某些情况下,可以建立呼叫,但客户端可能遇到音频不足的问题。这适用于以下场景:
- AnyConnect客户端与外部号码之间的呼叫无音频。
- AnyConnect客户端与其他AnyConnect客户端之间的呼叫无音频。
为了修复此问题,您可以检查以下步骤:
步骤1:检验分割隧道配置。
- 导航到用户连接的连接配置文件:Configuration > Remote Access VPN > Network(Client)Access > AnyConnect Connection Profile > Select the Profile。
- 导航到分配给该配置文件的组策略;组策略>管理>编辑>高级>分割隧道。
- 检查分割隧道配置。
- 如果配置为下面列出的隧道网络,请验证访问控制列表(ACL)配置。
在同一窗口中,导航到Manage > Select the Access List > Edit the Access List for Split tunnel。
确保语音服务器和AnyConnect IP池网络在拆分隧道访问控制列表(ACL)中列出。
等效 CLI 配置:
隧道组AnyConnectTG类型远程访问
tunnel-group AnyConnectTG general-attributes
default-group-policy AnyConnectGP-Split
tunnel-group AnyConnectTG webvpn-attributes
group-alias AnyConnectTG enable
group-policy AnyConnectGP-Split internal
组策略AnyConnectGP-Split属性
dns-server value 10.0.1.1
vpn-tunnel-protocol ikev2 ssl-client
split-tunnel-policy tunnelspecified
split-tunnel-network-list value Split-ACL
split-dns none
split-tunnel-all-dns disable
access-list Split-ACL standard permit 10.28.28.0 255.255.255.0
access-list Split-ACL remark Internal Network1
access-list Split-ACL standard permit 10.0.1.0 255.255.255.0
access-list Split-ACL remark Internal Network2
access-list Split-ACL standard permit 10.0.2.0 255.255.255.0
access-list Split-ACL remark Internal Network3
access-list Split-ACL standard permit 10.0.3.0 255.255.255.0
access-list Split-ACL remark AnyConnect池子网
access-list Split-ACL standard permit 192.168.1.0 255.255.255.0
access-list Split-ACL remark Voice Servers子网
access-list Split-ACL standard permit 10.1.100.0 255.255.255.240
第二步:检验NAT免除配置。
必须配置NAT免除规则,以免除从AnyConnect VPN网络到语音服务器网络的流量,并允许AnyConnect客户端内的双向通信。
- 导航至NAT配置:Configuration > Firewall > NAT Rules。
确保为正确的源(语音服务器)和目标(AnyConnect VPN池)网络配置了NAT免除规则,并且建立了允许AnyConnect客户端与AnyConnect客户端通信的发夹NAT规则。此外,根据网络设计,检查每个规则的入站和出站接口配置是否正确。
等效 CLI 配置:
nat(inside,outside)source static INTERNAL_NETWORKS INTERNAL_NETWORKS destination static AnyConnectPool AnyConnectPool no-proxy-arp route-lookup
nat(inside,outside)源静态VoiceServers VoiceServers destination static AnyConnectPool AnyConnectPool no-proxy-arp route-lookup
nat(outside,outside)source static AnyConnectPool AnyConnectPool destination static AnyConnectPool AnyConnectPool no-proxy-arp route-lookup
第三步:验证SIP检测是否已禁用。
请复习上一节AnyConnect Clients Cannot Establish Phone Calls,了解如何禁用SIP检测。
第四步:验证访问规则。
根据您的访问规则配置,确保允许来自AnyConnect客户端的流量访问语音服务器和涉及的网络。
等效 CLI 配置:
access-list outside_access_in extended permit ip object AnyConnectPool object AnyConnectPool
access-list outside_access_in extended permit ip object AnyConnectPool object-group VoiceServers
access-group outside_access_in in interface outside
相关信息
- 如需更多帮助,请联系TAC。需要有效的支持合同:思科全球支持联系人
- 您还可以在此处访问Cisco VPN社区。