AWS Client VPN 문제 해결: VPC에 대한 터널 연결 문제
AWS Client VPN 연결에 연결 문제가 발생하는 경우, 이 체계적인 문제 해결 접근 방식에 따라 문제를 식별하고 해결합니다. 이 섹션에서는 원격 클라이언트와 Amazon VPC 리소스 간의 일반적인 Client VPN 연결 문제를 진단하는 단계별 절차를 제공합니다.
주제
네트워크 연결 사전 조건
Client VPN 연결 문제를 해결하기 전에 다음 네트워크 사전 조건을 확인합니다.
-
Client VPN 엔드포인트 서브넷에 인터넷 연결이 있는지 확인합니다(인터넷 게이트웨이 또는 NAT 게이트웨이를 통해).
-
Client VPN 엔드포인트가 고가용성을 위해 서로 다른 가용성 영역의 서브넷과 연결되어 있는지 확인합니다.
-
VPC에 충분한 IP 주소 공간이 있고 클라이언트 CIDR 블록과 충돌하지 않는지 확인합니다.
-
대상 서브넷에 적절한 라우팅 테이블 연결이 있는지 확인합니다.
Client VPN 엔드포인트 상태 확인
먼저 다음과 같이 Client VPN 엔드포인트가 올바른 상태인지 확인합니다.
-
AWS CLI를 사용하여 Client VPN 엔드포인트의 상태를 확인합니다.
aws ec2 describe-client-vpn-endpoints --regionyour-region -
출력에서 엔드포인트 상태를 찾습니다. 상태는
available이어야 합니다. -
엔드포인트에 연결된 대상 네트워크(서브넷)가 있는지 확인합니다.
-
상태가
available이 아닌 경우, 구성 문제를 나타낼 수 있는 오류 메시지 또는 보류 중 상태가 있는지 확인합니다.
클라이언트 연결 확인
Client VPN 엔드포인트에 대한 클라이언트 연결 상태를 확인합니다.
-
활성 클라이언트 연결 확인:
aws ec2 describe-client-vpn-connections --client-vpn-endpoint-idcvpn-endpoint-id--regionyour-region -
출력의 연결 상태 및 오류 메시지를 검토합니다.
-
클라이언트 인증 로그에 실패한 인증 시도가 있는지 확인합니다.
-
클라이언트가 구성된 클라이언트 CIDR 블록에서 IP 주소를 수신하고 있는지 확인합니다.
참고
클라이언트가 연결할 수 없는 경우 인증 구성, 권한 부여 규칙 또는 네트워크 연결에 문제가 있을 수 있습니다.
클라이언트 인증 확인
인증 문제는 Client VPN 연결 문제의 일반적인 원인입니다.
-
상호 인증을 위해 클라이언트 인증서가 유효하며 만료되지 않았는지 확인합니다.
-
Active Directory 인증의 경우 사용자 자격 증명 및 도메인 연결을 확인합니다.
-
SAML 기반 페더레이션 인증의 경우 IdP 구성 및 사용자 권한을 확인합니다.
-
자세한 오류 정보는 CloudWatch의 인증 로그를 검토하세요.
-
엔드포인트에 구성된 인증 방법이 클라이언트 구성과 일치하는지 확인합니다.
권한 부여 규칙 확인
권한 부여 규칙은 클라이언트가 액세스할 수 있는 네트워크 리소스를 제어합니다.
-
현재 권한 부여 규칙 나열:
aws ec2 describe-client-vpn-authorization-rules --client-vpn-endpoint-idcvpn-endpoint-id--regionyour-region -
클라이언트가 액세스해야 하는 대상 네트워크에 대한 규칙이 있는지 확인합니다.
-
규칙이 올바른 Active Directory 그룹을 지정하는지 확인합니다(AD 인증을 사용하는 경우).
-
권한 부여 규칙이
active상태인지 확인합니다.
Client VPN 경로 검증
Client VPN 연결에는 적절한 라우팅 구성이 필수적입니다.
-
Client VPN 엔드포인트 라우팅 확인:
aws ec2 describe-client-vpn-routes --client-vpn-endpoint-idcvpn-endpoint-id--regionyour-region -
클라이언트가 액세스해야 하는 대상 네트워크에 경로가 있는지 확인합니다.
-
Amazon VPC 라우팅 테이블을 확인하여 반환 트래픽이 Client VPN 엔드포인트에 도달할 수 있는지 확인합니다.
aws ec2 describe-route-tables --filters "Name=vpc-id,Values=vpc-id" --regionyour-region -
대상 네트워크 연결이 올바르게 구성되었는지 확인합니다.
보안 그룹 및 네트워크 ACL 확인
보안 그룹 및 네트워크 ACLs Client VPN 트래픽을 차단할 수 있습니다.
-
대상 EC2 인스턴스의 보안 그룹을 확인합니다.
aws ec2 describe-security-groups --group-idssg-xxxxxxxxx--regionyour-region -
인바운드 규칙이 Client VPN CIDR 블록의 트래픽을 허용하는지 확인합니다.
Client VPN CIDR의 SSH(포트 22):
10.0.0.0/16Client VPN CIDR의 HTTP(포트 80):
10.0.0.0/16Client VPN CIDR의 HTTPS(포트 443):
10.0.0.0/16필요에 따라 사용자 지정 애플리케이션 포트
-
Client VPN 엔드포인트 보안 그룹(해당하는 경우)에서 다음을 허용하는지 확인합니다.
0.0.0.0/0의 UDP 포트 443(OpenVPN)
VPC CIDR 블록으로 아웃바운드되는 모든 트래픽
-
네트워크 ACL 트래픽을 차단하지 않는지 확인합니다. 네트워크 ACL은 상태 비저장이므로 인바운드 및 아웃바운드 규칙을 모두 구성해야 합니다.
-
전송하려는 특정 트래픽에 대한 인바운드 및 아웃바운드 규칙을 모두 확인합니다.
클라이언트 연결 테스트
Client VPN 클라이언트에서 Amazon VPC 리소스로의 연결을 테스트합니다.
-
연결된 Client VPN 클라이언트에서 Amazon VPC 리소스에 대한 연결을 테스트합니다.
pingvpc-resource-iptraceroutevpc-resource-ip -
지정된 애플리케이션 연결성 테스트:
telnetvpc-resource-ipport -
프라이빗 DNS 이름을 사용하는 경우 DNS 확인을 확인합니다.
nslookupprivate-dns-name -
분할 터널링이 활성화된 경우 인터넷 리소스에 대한 연결을 테스트합니다.
클라이언트 디바이스 진단
클라이언트 디바이스에서 다음 검사를 수행합니다.
-
클라이언트 구성 파일(.ovpn)에 올바른 설정이 포함되어 있는지 확인합니다.
올바른 서버 엔드포인트 URL
유효한 클라이언트 인증서 및 프라이빗 키
적절한 인증 방법 구성
-
클라이언트 로그에서 연결 오류를 확인합니다.
Windows: 이벤트 뷰어 → 애플리케이션 및 서비스 로그 → OpenVPN
macOS: 콘솔 앱, ‘Tunnelblick’ 또는 ‘OpenVPN’ 검색
Linux:
/var/log/openvpn/또는 시스템 저널
-
클라이언트의 기본 네트워크 연결을 테스트합니다.
ping 8.8.8.8 nslookupcvpn-endpoint-id.cvpn.region.amazonaws.com
DNS 확인 문제 해결
DNS 문제는 프라이빗 DNS 이름을 사용한 리소스 액세스를 방해할 수 있습니다.
-
Client VPN 엔드포인트에 DNS 서버가 구성되어 있는지 확인합니다.
aws ec2 describe-client-vpn-endpoints --client-vpn-endpoint-idscvpn-endpoint-id--query 'ClientVpnEndpoints[0].DnsServers' -
클라이언트에서 DNS 확인을 테스트합니다.
nslookupprivate-resource.internaldigprivate-resource.internal -
사용자 지정 DNS 확인을 사용하는 경우 Route 53 Resolver 규칙을 확인합니다.
-
보안 그룹이 Client VPN CIDR에서 DNS 서버로의 DNS 트래픽(UDP/TCP 포트 53)을 허용하는지 확인합니다.
성능 문제 해결
Client VPN 연결의 성능 문제를 해결합니다.
-
CloudWatch 지표를 사용하여 수신/송신 바이트에 대한 대역폭 사용률을 모니터링합니다.
-
클라이언트의 지속적 ping 테스트를 사용하여 패킷 손실을 확인합니다.
-
Client VPN 엔드포인트가 연결 제한에 도달하지 않는지 확인합니다.
-
로드 배포에 여러 Client VPN 엔드포인트를 사용하는 것이 좋습니다.
-
다양한 클라이언트 위치로 테스트하여 리전별 성능 문제를 식별합니다.
Client VPN 지표 모니터링
CloudWatch를 사용하여 Client VPN 엔드포인트 지표를 모니터링합니다.
-
활성 연결 지표 확인:
aws cloudwatch get-metric-statistics \ --namespace AWS/ClientVPN \ --metric-name ActiveConnectionsCount \ --dimensions Name=Endpoint,Value=cvpn-endpoint-id\ --start-timestart-time\ --end-timeend-time\ --period 300 \ --statistics Average -
인증 실패 지표 검토:
aws cloudwatch get-metric-statistics \ --namespace AWS/ClientVPN \ --metric-name AuthenticationFailures \ --dimensions Name=Endpoint,Value=cvpn-endpoint-id\ --start-timestart-time\ --end-timeend-time\ --period 300 \ --statistics Sum -
수신/송신 바이트 및 패킷과 같은 기타 사용 가능한 지표를 검토합니다.
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분을 기다립니다.
- 연결 끊김/불안정
-
연결이 자주 끊기거나 불안정합니다. 클라이언트 디바이스에서 네트워크 정체, 방화벽 간섭 또는 전원 관리 설정을 확인합니다.