Sumit 씨가
AWS VPN 연결을 통한
성능 문제를 조사하는 데 도움이 됩니다.

Sumit_SYD_0218

VPN 연결에서 패킷 손실 및 지연 시간 증가 문제가 지속적으로 또는 간헐적으로 발생합니다. 문제가 Amazon Virtual Private Cloud(Amazon VPC) 내부에서 일어나는 것이 아님을 확인하려면 어떤 테스트를 실행해야 합니까?

성능 테스트를 시작하기 전에, 다음과 같이 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스를 시작하고 구성하십시오.

  1. 인스턴스 시작의 단계에 따라 동일 VPC에 속하는 두 개 이상의 가용 영역에서 Linux 인스턴스를 시작한 다음, 여기에서 네트워크 성능 테스트를 실행할 수 있습니다.
  2. 현실적으로 가능한 최고의 네트워크 성능을 얻으려면 Linux용 향상된 네트워킹을 지원하는 인스턴스를 동일한 VPC에서 시작해야 합니다.
  3. 동일한 배치 그룹에 공존하지 않는 인스턴스 또는 점보 프레임을 지원하지 않는 인스턴스 간에 네트워크 테스트를 수행하려면 Linux 인스턴스에서 MTU 확인 및 설정 단계를 따르십시오.
  4. Linux 인스턴스에 연결 단계를 완료하여 해당 액세스에 액세스할 수 있는지 확인합니다.

mtr을 사용하여 ICMP 또는 TCP 패킷 손실 및 지연 시간 확인

​두 인스턴스에 ​mtr​ 네트워크 도구를 설치하여 ICMP 또는 TCP 패킷 손실 및 지연 시간을 확인합니다. mtr은 시간 경과에 따른 네트워크 성능을 분석할 수 있도록 출력을 지속적으로 업데이트합니다. mtr은 traceroute 기능과 ping 기능을 네트워크 진단 도구 하나로 통합한 것입니다.

Amazon Linux에 mtr을 설치합니다.  

sudo yum install mtr

Ubuntu에 mtr을 설치합니다.

sudo apt-get install mtr

EC2 인스턴스 및 온프레미스 호스트의 프라이빗 IP 주소와 퍼블릭 IP 주소 간에 다음 테스트를 양방향으로 실행합니다. 방향을 바꾸면 TCP/IP 네트워크의 노드 간 경로가 바뀔 수 있으며, 따라서 양 방향 모두에서 mtr의 결과를 확보해야 합니다.

첫 번째 mtr 테스트는 ICMP 기반으로 이루어지지만 두 번째 테스트에는 -T 옵션이 있어 TCP 기반의 결과를 얻게 됩니다. TCP 기반의 결과를 통해 애플리케이션으로 인한 패킷 손실이 있는지 또는 연결에 지연 시간이 있는지 여부를 확인할 수 있습니다. MTR 버전 0.85 이상에는 TCP 옵션이 있습니다.

프라이빗 IP 테스트:

mtr -n -c 200 <Private IP EC2 instance/on-premises host> --report
mtr -n -T -c 200 <Private IP EC2 instance/on-premises host> --report

퍼블릭 IP 테스트:

mtr -n -c 200 <Public IP EC2 instance/on-premises host> --report
mtr -n -T -c 200 <Public IP EC2 instance/on-premises host> --report

Linux traceroute 유틸리티를 사용하여 지연 시간 또는 라우팅 문제 파악

Linux traceroute 유틸리티는 클라이언트 노드에서 지정된 대상 노드로 가는 경로를 식별할 뿐 아니라, 해당 경로에서 확인된 라우터당 요청 응답 시간(단위: 밀리초 단위)도 파악해 줍니다. 또한 이 유틸리티는 대상 주소에 도착할 때까지 각 홉에서 걸린 시간의 양을 계산하여 표시해 줍니다. traceroute가 설치되지 않았다면 인스턴스에 설치하십시오.

Amazon Linux에 traceroute를 설치합니다.

sudo yum install traceroute

Ubuntu에 traceroute를 설치합니다.

sudo apt-get install traceroute

EC2 인스턴스 및 온프레미스 호스트의 프라이빗 IP 주소와 퍼블릭 IP 주소 간에 다음 테스트를 양방향으로 실행합니다. 방향을 바꾸면 TCP/IP 네트워크의 노드 간 경로가 바뀔 수 있으며, 따라서 양 방향 모두에서 traceroute 결과를 확보해야 합니다.

프라이빗 IP 테스트:

sudo traceroute <private IP of EC2 instance/on-premises host>
sudo traceroute -T -p 80 <private IP of EC2 instance/on-premises host>

퍼블릭 IP 테스트:

sudo traceroute <public IP of EC2 instance/on-premises host>
sudo traceroute -T -p 80 <public IP of EC2 instance/on-premises host>

참고: -T -p 80 -n 인수는 포트 80에서 TCP 기반의 추적을 실행합니다. 포트 80 또는 테스트 중인 포트가 양방향으로 열려 있는지 확인하십시오.

대부분의 인터넷 장치는 ICMP 기반의 추적 요청을 낮은 우선 순위로 취급하기 때문에, ICMP 대신 TCP 기반의 추적을 지정하는 Linux traceroute 옵션이 유용합니다. 요청 중 일부가 시간 초과되는 경우가 많으므로, 경로의 마지막 홉이나 대상 주소에서 패킷 손실이 발생하는지 주의하십시오. 여러 홉에서 누적되는 패킷 손실은 문제가 될 수 있습니다.

참고: traceroute로 네트워크 연결 문제를 해결할 때는 클라이언트에서 서버로, 이어서 다시 서버에서 클라이언트로 양쪽 방향에서 명령을 실행하는 것이 도움이 됩니다.

hping3을 사용하여 지연 시간 또는 TCP 패킷 손실 문제 파악

hping은 명령줄에서 시작되는 TCP/IP 패킷 조립기/분석기입니다. ICMP 에코 요청 외에 TCP, UDP, RAW-IP 프로토콜도 지원하고, 대상 채널 간에 파일을 전송하는 기능과 traceroute 모드가 있으며, 그 밖에 다양한 기능이 있습니다.

hping3이 설치되지 않은 경우, Amazon Linux에서 다음 명령을 실행하십시오.

sudo yum --enablerepo=epel install hping3

이어서 다음 명령을 실행합니다.

hping3 -S -c 50 -V <Public IP of EC2 instance or on-premises host>
hping3 -S -c 50 -V <Private IP of EC2 instance or on-premises host>

참고: hping3은 기본적으로 어떠한 tcp 플래그도 지정하지 않고 winsize 64의 TCP 헤더를 대상 호스트의 포트 0으로 보냅니다.

tcpdump를 사용한 패킷 캡처 샘플

문제를 재현할 때 EC2 인스턴스(여러 가용 영역에 존재)와 온프레미스 호스트에서 패킷 캡처를 수행하면 VPN 연결에 애플리케이션 문제 또는 네트워크 계층 문제가 있는지 파악하는 데 도움이 됩니다. 패킷 캡처를 수행하려면 인스턴스에 tcpdump를 설치하십시오.

Amazon Linux에 tcpdump를 설치합니다.

sudo yum install tcpdump

Ubuntu에 tcpdump를 설치합니다.

sudo apt-get install tcpdump

참고: 분석 및 문제 해결을 위해 네트워크 장치를 확인하는 방법에 대한 지침은 해당 공급업체의 설명서를 참조하십시오.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2017년 2월 23일

업데이트된 날짜: 2018년 7월 27일