简介
 
  本文档介绍如何排除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社区。