簡介
本文檔介紹如何排除ASA上Cisco AnyConnect安全移動客戶端的一些最常見通訊問題。
必要條件
需求
思科建議您瞭解以下主題:
- Cisco AnyConnect Security Mobility Solution — 遠端存取
- 調適型安全裝置(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
tunnel-group AnyConnectTG型別遠端訪問
tunnel-group AnyConnectTG general-attributes
default-group-policy AnyConnectGP-Split
隧道組AnyConnectTG webvpn屬性
group-alias AnyConnectTG enable
ASA# show running-config group-policy AnyConnectGP-Split
group-policy AnyConnectGP-Split internal
group-policy AnyConnectGP-Split attributes
dns伺服器值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)組態。
在同一視窗中,導覽至管理>選擇訪問清單>編輯拆分隧道的訪問清單
- 確保您嘗試從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.0
access-list Split-ACL remark Internal Network3
access-list Split-ACL standard permit 10.0.3.0 255.255.255.0
步驟 2.檢驗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
對象網路InternalNetwork1
子網10.0.1.0 255.255.255.0
ASA# show running-config object id InternalNetwork2
對象網路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
步驟 3.驗證訪問規則。
根據您的訪問規則配置,確保允許來自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
tunnel-group AnyConnectTG型別遠端訪問
tunnel-group AnyConnectTG general-attributes
default-group-policy AnyConnectGP-Split
隧道組AnyConnectTG webvpn屬性
group-alias AnyConnectTG enable
ASA# show run group-policy AnyConnectGP-Split
group-policy AnyConnectGP-Split internal
group-policy AnyConnectGP-Split attributes
dns伺服器值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
tunnel-group AnyConnectTG型別遠端訪問
tunnel-group AnyConnectTG general-attributes
default-group-policy AnyConnectGP-Split
隧道組AnyConnectTG webvpn屬性
group-alias AnyConnectTG enable
ASA# show run group-policy AnyConnectGP-Split
group-policy AnyConnectGP-Split internal
group-policy AnyConnectGP-Split attributes
dns伺服器值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。
步驟 2.驗證動態轉換的髮夾配置。
為了使AnyConnect客戶端可以通過VPN隧道訪問網際網路,您需要確保髮夾NAT配置正確,以便流量轉換為介面的IP地址。
- 導航到NAT配置:Configuration > Firewall > NAT Rules
- 確保為作為源和目標(髮夾)的正確介面(ISP鏈路)配置了動態PAT(隱藏)規則。此外,檢查是否已在原始源地址中選擇了用於AnyConnect VPN地址池的網路,並且已為轉換後的源選擇了外部介面(或用於網際網路訪問的介面):
等效的CLI配置:
ASA# show run object id AnyConnectPool
對象網路AnyConnectPool
nat(outside,outside)動態介面
或
ASA# show run nat
nat(outside,outside)source dynamic AnyConnectPool interface
步驟 3.驗證訪問規則。
根據您的訪問規則配置,確保允許來自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
步驟 2.驗證訪問規則。
根據您的訪問規則配置,確保允許來自AnyConnect客戶端的流量。
等效的CLI配置:
access-list outside_access_in extended permit ip object AnyConnectPool對象AnyConnectPool
access-group outside_access_in in interface outside
AnyConnect客戶端,具有下列配置下的隧道網路
如果為AnyConnect客戶端配置了下面列出的隧道網路,則只有特定流量必須通過VPN隧道轉發到。但是,我們需要確保頭端具有正確的配置,以允許在AnyConnect客戶端內進行通訊。
步驟 1.檢驗NAT免除配置。
請檢查同一部分中第1點的第1步。
步驟 2.驗證分割隧道配置。
要使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
tunnel-group AnyConnectTG型別遠端訪問
tunnel-group AnyConnectTG general-attributes
default-group-policy AnyConnectGP-Split
隧道組AnyConnectTG webvpn屬性
group-alias AnyConnectTG enable
group-policy AnyConnectGP-Split internal
group-policy AnyConnectGP-Split attributes
dns伺服器值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.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
步驟 3.驗證訪問規則。
根據您的訪問規則配置,確保允許來自AnyConnect客戶端的流量。
等效的CLI配置:
access-list outside_access_in extended permit ip object AnyConnectPool對象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地址,這會導致不同的問題,因此,當您希望通過AnyConnect VPN使用語音服務時,建議禁用該檢測。
要禁用SIP檢測,請完成以下步驟:
步驟 1.導航到Configuration > Firewall > Service Policy Rules。
步驟 2.編輯Global Policy Rule > Rule Actions。
取消選中SIP protocol框。
等效的CLI配置:
ASA# show run policy-map
!
policy-map type inspect dns preset_dns_map
引數
message-length maximum client auto
消息長度最大值512
no tcp-inspection
policy-map global_policy
class inspection_default
檢查dns預設_dns_map
inspect ftp
inspect h323 h225
inspect h323 ras
inspect rsh
inspect rtsp
檢查esmtp
inspect sqlnet
inspect skinny
inspect sunrpc
檢查xdmcp
檢查sip
檢查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 client auto
消息長度最大值512
no tcp-inspection
policy-map global_policy
class inspection_default
檢查dns預設_dns_map
inspect ftp
inspect h323 h225
inspect h323 ras
inspect rsh
inspect rtsp
檢查esmtp
inspect sqlnet
inspect skinny
inspect sunrpc
檢查xdmcp
檢查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)組態。
在同一視窗中,導覽至管理>選擇訪問清單>編輯拆分隧道的訪問清單。
確保語音伺服器和AnyConnect IP池網路列在拆分隧道訪問控制清單(ACL)中。
等效的CLI配置:
tunnel-group AnyConnectTG型別遠端訪問
tunnel-group AnyConnectTG general-attributes
default-group-policy AnyConnectGP-Split
隧道組AnyConnectTG webvpn屬性
group-alias AnyConnectTG enable
group-policy AnyConnectGP-Split internal
group-policy AnyConnectGP-Split attributes
dns伺服器值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.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
步驟 2.檢驗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目標靜態AnyConnectPool AnyConnectPool no-proxy-arp route-lookup
nat(outside,outside)source static AnyConnectPool AnyConnectPool destination static AnyConnectPool AnyConnectPool no-proxy-arp route-lookup
步驟 3.驗證SIP檢測是否已禁用。
請複習上一節AnyConnect Clients Cannot Establish Phone Calls(AnyConnect客戶端無法建立電話呼叫),瞭解如何禁用SIP檢測。
步驟 4.驗證訪問規則。
根據您的訪問規則配置,確保允許來自AnyConnect客戶端的流量到達語音伺服器和相關的網路。
等效的CLI配置:
access-list outside_access_in extended permit ip object AnyConnectPool對象AnyConnectPool
access-list outside_access_in extended permit ip object AnyConnectPool object-group VoiceServers
access-group outside_access_in in interface outside
相關資訊