故障診斷 AWS Client VPN:VPC 的通道連線問題 - AWS Client VPN

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

故障診斷 AWS Client VPN:VPC 的通道連線問題

當您的 AWS Client VPN 連線遇到連線問題時,請遵循此系統疑難排解方法來識別並解決問題。本節提供step-by-step程序,以診斷遠端用戶端與 Amazon VPC 資源之間的常見 Client VPN 連線問題。

網路連線先決條件

在對 Client VPN 連線進行故障診斷之前,請確認這些網路先決條件:

  • 確保 Client VPN 端點子網路具有網際網路連線能力 (透過網際網路閘道或 NAT 閘道)。

  • 確認 Client VPN 端點與不同可用區域中的子網路相關聯,以獲得高可用性。

  • 檢查 VPC 是否有足夠的 IP 地址空間,且不與用戶端 CIDR 區塊衝突。

  • 確認目標子網路具有適當的路由表關聯。

檢查 Client VPN 端點狀態

首先,確認您的 Client VPN 端點處於正確狀態:

  1. 使用 AWS CLI 檢查 Client VPN 端點狀態:

    aws ec2 describe-client-vpn-endpoints --region your-region
  2. 在輸出中尋找端點狀態。狀態應為 available

  3. 確認端點具有相關聯的目標網路 (子網路)。

  4. 如果狀態不是 available,請檢查可能表示組態問題的任何錯誤訊息或擱置狀態。

驗證用戶端連線

檢查用戶端連線至 Client VPN 端點的狀態:

  1. 檢查作用中的用戶端連線:

    aws ec2 describe-client-vpn-connections --client-vpn-endpoint-id cvpn-endpoint-id --region your-region
  2. 檢閱連線狀態和輸出中的任何錯誤訊息。

  3. 檢查用戶端身分驗證日誌是否有失敗的身分驗證嘗試。

  4. 確認用戶端正在從設定的用戶端 CIDR 區塊接收 IP 地址。

注意

如果用戶端無法連線,問題可能是身分驗證組態、授權規則或網路連線。

驗證用戶端身分驗證

身分驗證問題是 Client VPN 連線問題的常見原因:

  • 對於交互身分驗證,請確保用戶端憑證有效且未過期。

  • 針對 Active Directory 身分驗證,驗證使用者登入資料和網域連線。

  • 對於以 SAML 為基礎的聯合身分驗證,請檢查 IdP 組態和使用者許可。

  • 檢閱 CloudWatch 中的身分驗證日誌,以取得詳細的錯誤資訊。

  • 確認端點上設定的身分驗證方法符合用戶端組態。

檢查授權規則

授權規則控制用戶端可存取的網路資源:

  1. 列出目前的授權規則:

    aws ec2 describe-client-vpn-authorization-rules --client-vpn-endpoint-id cvpn-endpoint-id --region your-region
  2. 確認用戶端需要存取的目標網路存在規則。

  3. 檢查規則是否指定正確的 Active Directory 群組 (如果使用 AD 身分驗證)。

  4. 確保授權規則處於 active 狀態。

驗證 Client VPN 路由

適當的路由組態對於 Client VPN 連線至關重要:

  1. 檢查 Client VPN 端點路由:

    aws ec2 describe-client-vpn-routes --client-vpn-endpoint-id cvpn-endpoint-id --region your-region
  2. 驗證用戶端需要存取的目標網路是否有路由。

  3. 檢查 Amazon VPC 路由表,以確保傳回流量可以到達 Client VPN 端點:

    aws ec2 describe-route-tables --filters "Name=vpc-id,Values=vpc-id" --region your-region
  4. 確認目標網路關聯已正確設定。

驗證安全群組和網路 ACLs

安全群組和網路 ACLs可以封鎖 Client VPN 流量:

  1. 檢查目標 EC2 執行個體的安全群組:

    aws ec2 describe-security-groups --group-ids sg-xxxxxxxxx --region your-region
  2. 驗證傳入規則允許來自 Client VPN CIDR 區塊的流量:

    • Client VPN CIDR 的 SSH (連接埠 22): 10.0.0.0/16

    • 來自 Client VPN CIDR 的 HTTP (連接埠 80): 10.0.0.0/16

    • 來自 Client VPN CIDR 的 HTTPS (連接埠 443): 10.0.0.0/16

    • 視需要自訂應用程式連接埠

  3. 對於 Client VPN 端點安全群組 (如果適用),請確保它允許:

    • 從 0.0.0.0/0 的 UDP 連接埠 443 (OpenVPN)

    • 所有傳出至 VPC CIDR 區塊的流量

  4. 檢查網路 ACLs是否未封鎖流量。網路 ACLs 是無狀態的,因此必須設定傳入和傳出規則。

  5. 驗證您嘗試傳送之特定流量的傳入和傳出規則。

測試用戶端連線

測試從 Client VPN 用戶端到 Amazon VPC 資源的連線:

  1. 從連線的 Client VPN 用戶端,測試與 Amazon VPC 資源的連線:

    ping vpc-resource-ip traceroute vpc-resource-ip
  2. 測試特定應用程式連線:

    telnet vpc-resource-ip port
  3. 如果使用私有 DNS 名稱,請驗證 DNS 解析:

    nslookup private-dns-name
  4. 如果已啟用分割通道,則測試網際網路資源的連線能力。

診斷用戶端裝置

在用戶端裝置上執行這些檢查:

  1. 確認用戶端組態檔案 (.ovpn) 包含正確的設定:

    • 正確的伺服器端點 URL

    • 有效的用戶端憑證和私有金鑰

    • 適當的身分驗證方法組態

  2. 檢查用戶端日誌是否有連線錯誤:

    • Windows:事件檢視器 → 應用程式和服務日誌 → OpenVPN

    • macOS:主控台應用程式,搜尋「Tunnelblick」或「OpenVPN」

    • Linux: /var/log/openvpn/或系統化日誌

  3. 從用戶端測試基本網路連線:

    ping 8.8.8.8 nslookup cvpn-endpoint-id.cvpn.region.amazonaws.com

故障診斷 DNS 解析

DNS 問題可能會阻止使用私有 DNS 名稱存取資源:

  1. 檢查 DNS 伺服器是否已在 Client VPN 端點中設定:

    aws ec2 describe-client-vpn-endpoints --client-vpn-endpoint-ids cvpn-endpoint-id --query 'ClientVpnEndpoints[0].DnsServers'
  2. 從用戶端測試 DNS 解析:

    nslookup private-resource.internal dig private-resource.internal
  3. 如果使用自訂 DNS 解析,請確認 Route 53 Resolver 規則。

  4. 檢查安全群組是否允許從 Client VPN CIDR 到 DNS 伺服器的 DNS 流量 (UDP/TCP 連接埠 53)。

對效能進行故障診斷

解決 Client VPN 連線的效能問題:

  • 使用 CloudWatch 指標監控傳入/傳出位元組的頻寬使用率。

  • 使用用戶端的持續 ping 測試來檢查封包遺失。

  • 確認 Client VPN 端點未達到連線限制。

  • 考慮使用多個 Client VPN 端點進行負載分佈。

  • 使用不同的用戶端位置進行測試,以識別區域效能問題。

監控 Client VPN 指標

使用 CloudWatch 監控 Client VPN 端點指標:

  1. 檢查作用中連線指標:

    aws cloudwatch get-metric-statistics \ --namespace AWS/ClientVPN \ --metric-name ActiveConnectionsCount \ --dimensions Name=Endpoint,Value=cvpn-endpoint-id \ --start-time start-time \ --end-time end-time \ --period 300 \ --statistics Average
  2. 檢閱身分驗證失敗指標:

    aws cloudwatch get-metric-statistics \ --namespace AWS/ClientVPN \ --metric-name AuthenticationFailures \ --dimensions Name=Endpoint,Value=cvpn-endpoint-id \ --start-time start-time \ --end-time end-time \ --period 300 \ --statistics Sum
  3. 檢閱其他可用的指標,例如輸入和輸出位元組和封包。

檢查 Client VPN 日誌

Client VPN 連線日誌提供有關連線嘗試和錯誤的詳細資訊:

  • 如果尚未設定,請啟用 Client VPN 連線記錄。

  • 檢閱 CloudWatch 日誌是否有連線嘗試、身分驗證失敗和授權錯誤。

  • 尋找指出連線問題根本原因的特定錯誤代碼和訊息。

  • 檢查失敗連線中可能表示組態問題的模式。

常見問題與解決方案

可能影響 Client VPN 連線的常見問題:

身分驗證失敗

用戶端憑證過期或無效,或 Active Directory 憑證不正確。驗證身分驗證組態和憑證有效性。

缺少授權規則

由於授權規則遺失或不正確,用戶端無法存取目標網路。為所需的網路新增適當的授權規則。

分割通道問題

由於通道組態分割,流量路由不正確。視需要檢閱和調整分割通道設定。

用戶端 IP 集區耗盡

用戶端 CIDR 區塊中沒有可用的 IP 地址。展開用戶端 CIDR 範圍或中斷連接未使用的用戶端。

MTU 問題

由於 MTU 大小限制,大型封包正在捨棄。嘗試將 MTU 設定為 1436 位元組,或在用戶端裝置上啟用路徑 MTU 探索。

DNS 解析問題

用戶端無法解析私有 DNS 名稱。驗證 DNS 伺服器組態,並確保透過安全群組允許 DNS 流量。

重疊 IP 範圍

用戶端 CIDR 區塊與本機網路範圍衝突。檢查並解決用戶端 CIDR 和本機網路之間任何重疊的 IP 地址範圍。

TLS 交握失敗

TLS 交涉期間連線失敗。檢查憑證有效性、確保正確的密碼套件,並確認已正確設定用戶端和伺服器憑證。

路由傳播延遲

用戶端無法立即使用新路由。變更 Client VPN 路由後,請等待 1-2 分鐘進行路由傳播。

連線中斷/不穩定

經常中斷連線或連線不穩定。檢查用戶端裝置上的網路擁塞、防火牆干擾或電源管理設定。