Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
VPN 연결의 패킷 손실 문제를 해결하려면 어떻게 해야 합니까?
VPN 연결에서 지속적 또는 간헐적인 패킷 손실과 높은 지연 시간 문제가 발생합니다.
해결 방법
리소스 사용률 확인
CPU, 메모리 또는 네트워크 대역폭 사용량이 많으면 패킷 손실이 발생합니다. CPUUtilization, NetworkIn, NetworkOut, NetworkPacketsIn 및 NetworkPacketsOut Amazon CloudWatch 지표를 모니터링하십시오. 소스 호스트와 대상 호스트 모두에서 리소스 사용률을 확인합니다.
네트워크 문제 확인
ICMP 또는 TCP 패킷 손실 또는 지연 시간을 확인하려면 로컬 온프레미스 시스템에 mtr 네트워크 도구를 설치합니다. Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에도 mtr을 설치합니다.
Amazon Linux의 경우 다음 명령을 실행합니다.
sudo yum install mtr
Ubuntu의 경우 다음 명령을 실행합니다.
sudo apt-get install mtr
Windows의 경우 SourceForge의 WinMTR을 사용합니다.
참고: WinMTR은 TCP 기반 MTR을 지원하지 않습니다.
AWS VPN 터널 내에 패킷 손실이 있는지 확인합니다. 터널을 사용하는 온프레미스 호스트에서 Amazon EC2 인스턴스의 프라이빗 IP 주소로의 연결을 테스트합니다. 또한 온프레미스 고객 게이트웨이에서 각 터널의 퍼블릭 IP 주소로의 연결도 테스트합니다. 고객 게이트웨이 디바이스에서 mtr을 사용할 수 없는 경우 고객 게이트웨이 디바이스와 인터넷 연결이 동일한 호스트를 사용합니다.
중요: 양방향 mtr 결과를 얻으십시오. 방향을 바꾸면 TCP와 IP 주소 네트워크의 노드 간 경로를 변경할 수 있습니다.
ICMP를 사용하여 프라이빗 IP 주소에서 다음 테스트를 실행합니다.
mtr -b -c 50 -rw Host_Instance_Private_IP
TCP를 사용하여 프라이빗 IP 주소에서 다음 테스트를 실행합니다.
mtr -b -c 50 -rw -T -P 443 Host_Instance_Private_IP
참고: 위 명령에서 Host_instance_private_IP를 EC2 인스턴스 또는 온프레미스 호스트의 프라이빗 IP 주소로, 443을 포트로 바꾸십시오.
ICMP를 사용하여 퍼블릭 IP 주소에서 다음 테스트를 실행합니다.
mtr -b -c 50 -rw AWS_Tunnel_Public_IP
UDP를 사용하여 퍼블릭 IP 주소에서 다음 테스트를 실행합니다.
mtr -b -c 50 -rw -u -P 500 AWS_Tunnel_Public_IP
mtr -b -c 50 -rw -u -P 4500 AWS_Tunnel_Public_IP
참고: 위 명령에서 AWS_Tunnel_Public_IP를 터널의 퍼블릭 IP 주소로, 500과 4500을 UDP 포트로 바꾸십시오.
단일 홉에서 패킷 손실과 왕복 시간(RTT) 증가가 예상됩니다. 패킷 손실과 RTT 증가는 모든 홉에서 보일 경우에만 문제가 됩니다. 다음 예시 출력은 홉 3에서 시작하여 마지막 홉까지 계속되는 일관된 손실을 보여줍니다.
HOST: localhost Loss% Snt Last Avg Best Wrst StDev 1. 63.247.74.43 0.0% 10 0.3 0.6 0.3 1.2 0.3 2. 63.247.64.157 0.0% 10 0.4 1.0 0.4 6.1 1.8 3. 209.51.130.213 60.0% 10 0.8 2.7 0.8 19.0 5.7 4. aix.pr1.atl.google.com 60.0% 10 6.7 6.8 6.7 6.9 0.1 5. 72.14.233.56 50.0% 10 7.2 8.3 7.1 16.4 2.9 6. 209.85.254.247 40.0% 10 39.1 39.4 39.1 39.7 0.2 7. 64.233.174.46 40.0% 10 39.6 40.4 39.4 46.9 2.3 8. gw-in-f147.1e100.net 40.0% 10 39.6 40.5 39.5 46.7 2.2
다음 예에서는 UDP 포트 500을 사용하는 터널의 퍼블릭 IP 주소 테스트를 보여 줍니다. 홉 1과 4 사이의 Loss% 열에는 손실률이 표시됩니다. 하지만 홉 5와 13 사이에는 패킷 손실이 없으므로 이 손실은 심각한 패킷 손실로 간주되지 않습니다. 홉 14와 최종 홉 사이의 손실은 100% 손실로 끝나는 지속적인 손실이기 때문에 상당한 패킷 손실입니다. 이 예시의 문제는 홉 14에서 발생합니다.
sudo mtr -b -c 30 -rw -u -P 500 185.156.137.215 Start: 2024-08-28T18:59:49+0000 HOST: ip-10-100-20-25 Loss% Snt Last Avg Best Wrst StDev 1. |-- ??? 100.0 30 0.0 0.0 0.0 0.0 0.0 2. |-- 240.1.84.6 73.3% 30 0.5 0.5 0.5 0.5 0.0 3. |-- 242.3.160.33 63.3% 30 1.4 1.0 0.6 1.4 0.3 4. |-- 241.0.6.67 63.3% 30 0.5 6.7 0.5 12.4 5.9 5. |-- 100.100.6.39 0.0% 30 0.5 3.1 0.5 27.7 6.2 6. |-- 100.100.72.6 0.0% 30 1.1 9.9 0.5 96.0 17.6 7. |-- 100.91.209.81 0.0% 30 11.5 20.6 11.1 127.3 24.3 8. |-- 100.100.6.107 0.0% 30 12.8 19.9 11.6 127.8 22.6 9. |-- 99.83.70.223 0.0% 30 12.3 18.1 11.7 117.0 19.2 10.|-- 100.100.92.209 0.0% 30 11.9 13.7 11.6 50.6 7.0 11.|-- 100.100.16.88 0.0% 30 13.2 14.0 11.9 33.1 3.8 12.|-- gw-as249.retn.net (87.245.240.41) 0.0% 30 13.2 13.2 11.8 19.9 1.5 13.|-- thw.sw01.loudltd.net (185.156.136.14) 0.0% 30 11.4 12.5 11.4 14.2 1.0 14.|-- no-ptr.pckear.com (185.116.108.124) 20.0% 30 14.8 13.2 12.5 14.8 0.5 15.|-- thw.sw01.loudltd.net (185.156.136.14) 40.0% 30 14.1 13.6 12.5 15.5 0.8 16.|-- thw.sw01.loudltd.net (185.156.136.14) 40.0% 30 16.5 14.5 13.3 16.5 0.8 17.|-- ??? 100.0% 30 0.0 0.0 0.0 0.0 0.0
지연 시간 및 라우팅 문제 확인
Traceroute 도구는 데이터가 네트워크를 통해 이동하는 경로를 보여줍니다. 이 정보를 사용하여 지연이 발생하는 위치를 파악할 수 있습니다.
Amazon Linux에 traceroute를 설치하려면 다음 명령을 실행합니다.
sudo yum install traceroute
Ubuntu에 traceroute를 설치하려면 다음 명령을 실행합니다.
sudo apt-get install traceroute
Windows의 경우 traceroute 대신 tracert 도구를 사용하십시오. 이 도구는 기본적으로 모든 Windows 시스템에 설치됩니다. 참고로 tracert는 TCP 추적을 허용하지 않습니다. 전체 기능을 보려면 tracetcp 도구를 설치할 수 있습니다.
Amazon EC2 인스턴스의 프라이빗 및 퍼블릭 IP 주소와 온프레미스 호스트 사이에서 다음 테스트를 실행합니다.
중요: 양방향 결과를 얻으십시오. 방향을 바꾸면 TCP와 IP 주소 네트워크의 노드 간 경로를 변경할 수 있습니다.
Linux의 경우 다음 명령을 실행합니다.
sudo traceroute -T -p 80 Host_IP
참고: Host_IP를 EC2 인스턴스 또는 온프레미스 호스트의 프라이빗 IP 주소로, 80을 포트로 바꾸십시오. 정확도를 높이기 위해 위 예에서는 TCP 기반 추적(T)을 사용하여 터널 내부의 트래픽 경로를 테스트합니다. 인터넷을 통한 트래픽 경로를 테스트하려면 Host_IP를 터널의 퍼블릭 IP 주소로 바꾸십시오.
다음 예와 비슷한 출력이 표시됩니다.
traceroute -T -p 443 aws.com traceroute to aws.com (3.161.213.43), 30 hops max, 60 byte packets 1 SEA-1801842641.mshome.net (172.28.96.1) 0.363 ms 0.346 ms 0.362 ms 2 192.168.50.1 (192.168.50.1) 5.514 ms 5.508 ms 5.501 ms 3 172.27.232.1 (172.27.232.1) 45.179 ms 52.879 ms 52.871 ms 4 * * * 5 * * * 6 * * * 7 * * * 8 * * * 9 server.yul62.r.ct.net (3.161.213.43) 57.452 ms 57.741 ms 62.604 ms
이 예시 출력은 응답이 없는 중간 홉을 보여줍니다. 디바이스가 요청된 443 포트에서 응답하지 않았지만 대상이 여전히 예상대로 응답하므로 문제가 없습니다.
Windows의 경우 tracert를 실행합니다. 또는 tracetcp를 설치한 경우 다음 PowerShell 명령을 실행합니다.
tracetcp.exe Host_IP:80
참고: Host_IP를 EC2 인스턴스 또는 온프레미스 호스트의 프라이빗 IP 주소로, 80을 포트로 바꾸십시오. 정확도를 높이기 위해 위 예에서는 TCP 기반 추적(T)을 사용하여 터널 내부의 트래픽 경로를 테스트합니다. 인터넷을 통한 트래픽 경로를 테스트하려면 Host_IP를 터널의 퍼블릭 IP 주소로 바꾸십시오.
다음 예와 비슷한 출력이 표시됩니다.
PS C:\Users\UserA> tracetcp.exe aws.com:443 Tracing route to 18.239.168.29 [server-18-239-168-29.bos50.r.cloudfront.net] on port 443 Over a maximum of 30 hops. 1 5 ms 7 ms 6 ms 192.168.50.1 2 41 ms 42 ms 44 ms 172.27.232.1 3 * * * Request timed out. 4 * * * Request timed out. 5 * * * Request timed out. 6 51 ms 43 ms 45 ms 241.0.11.143 7 62 ms 54 ms 43 ms 241.0.11.135 8 53 ms 53 ms 55 ms 240.4.8.24 9 52 ms 56 ms 53 ms 240.4.8.17 10 56 ms 59 ms 62 ms 240.64.239.162 11 57 ms 56 ms 61 ms 240.64.239.162 12 57 ms 55 ms 57 ms 240.64.239.162 13 58 ms Destination Reached in 54 ms. Connection established to 18.239.168.29 Trace Complete.
엔드투엔드 TCP 성능 테스트
hping3을 사용하여 엔드투엔드 TCP 패킷 손실 및 지연 시간을 테스트합니다. 이 도구를 사용하면 호스트 간의 TCP 성능을 직접 평가할 수 있습니다.
Amazon Linux에 hping3을 설치하려면 다음 명령을 실행합니다.
sudo yum --enablerepo=epel install hping3
Ubuntu에 hping3을 설치하려면 다음 명령을 실행합니다.
sudo apt-get install hping3
hping3을 실행하려면 다음 명령을 실행합니다.
hping3 -S -c 50 -V Host_IP
참고: Host_IP를 EC2 인스턴스 또는 온프레미스 호스트의 프라이빗 IP 주소나 터널의 퍼블릭 IP 주소로 바꾸십시오.
다음 예시 출력은 포트 TCP 8443을 사용하는 VPN 엔드포인트의 퍼블릭 IP 주소에 대한 테스트를 보여줍니다.
sudo hping3 -S -c 3 -p 8443 -V 34.233.155.9 using eth0, addr: 172.28.100.111, MTU: 1500 HPING 34.233.155.9 (eth0 34.233.155.9): S set, 40 headers + 0 data bytes len=44 ip=34.233.155.9 ttl=60 DF id=0 tos=0 iplen=44 sport=8443 flags=SA seq=0 win=26883 rtt=49.6 ms seq=2996814187 ack=1585541078 sum=22f7 urp=0 len=44 ip=34.233.155.9 ttl=60 DF id=0 tos=0 iplen=44 sport=8443 flags=SA seq=1 win=26883 rtt=49.6 ms seq=3555645549 ack=1207738370 sum=29a5 urp=0 len=44 ip=34.233.155.9 ttl=60 DF id=0 tos=0 iplen=44 sport=8443 flags=SA seq=2 win=26883 rtt=49.2 ms seq=4045561197 ack=742863285 sum=f78c urp=0
네트워크 또는 애플리케이션 문제 확인
문제 발생 시 EC2 인스턴스와 온프레미스 호스트 모두에서 동시 패킷 캡처를 가져옵니다. 패킷 캡처를 사용하여 네트워크 또는 애플리케이션의 문제를 확인합니다.
Linux 인스턴스의 패킷 캡처를 가져오려면 tcpdump를 사용합니다.
Amazon Linux에 tcpdump를 설치하려면 다음 명령을 실행합니다.
sudo yum install tcpdump
Ubuntu에 tcpdump를 설치하려면 다음 명령을 실행합니다.
sudo apt-get install tcpdump
Windows의 경우 tcpdump 대신 Wireshark를 사용하십시오. 도구를 다운로드하려면 Wireshark 웹 사이트에서 Wireshark 다운로드를 참조하십시오.
패킷 캡처는 다음 예와 비슷합니다.
tcpdump -i any -nnvv port 500 and port 4500 tcpdump: listening on any, link-type EN10MB (Ethernet), capture size 65535 bytes 18:12:54.944933 IP (tos 0x0, ttl 63, id 43082, offset 0, flags [DF], proto UDP (17), length 212) 10.20.20.80.500 > 23.20.145.20.500: [udp sum ok] isakmp 1.0 msgid 00000000 cookie 19e7adeabfefca84→0000000000000000: phase 1 I ident: (sa: doi=ipsec situation=identity (p: #1 protoid=isakmp transform=1 (t: #1 id=ike (type=lifetype value=sec)(type=lifeduration value=7080)(type=enc value=aes)(type=keylen value=0080)(type=auth value=preshared)(type=hash value=sha1)(type=group desc value=modp1024)))) (vid: len=16) (vid: len=16) (vid: len=16) (vid: len=16) (vid: len=16) out slot1/tmm0 lis=$_ike_1061b_out_23.20.145.20 port=1.0 trunk= 18:12:54.946069 IP (tos 0x0, ttl 253, id 56278, offset 0, flags [none], proto UDP (17), length 152) 23.20.145.20.500 > 10.20.20.80.500: [udp sum ok] isakmp 1.0 msgid 00000000 cookie 19e7adeabfefca84→cfa493578af1f691: phase 1 R ident: (sa: doi=ipsec situation=identity (p: #1 protoid=isakmp transform=1 (t: #1 id=ike (type=enc value=aes)(type=keylen value=0080)(type=hash value=sha1)(type=group desc value=modp1024)(type=auth value=preshared)(type=lifetype value=sec)(type=lifedura tion value=7080)))) (vid: len=16) (vid: len=16) in slot1/tmm0 lis= port=1.0 trunk= 18:12:54.949988 IP (tos 0x0, ttl 63, id 43084, offset 0, flags [DF], proto UDP (17), length 256) 10.20.20.80.500 > 23.20.145.20.500: [udp sum ok] isakmp 1.0 msgid 00000000 cookie 19e7adeabfefca84→cfa493578af1f691: phase 1 I ident: (ke: key len=128) (nonce: n len=16 data=(e84ae917994501b5b4f4...1a547b3cf720e35995f5b0c69198c9f796b5d9f9)) (pay20) (pay20) out slot1/tmm0 lis=$_ike_1061a_in_10.20.20.80 port=1.0 trunk= 18:12:54.951858 IP (tos 0x0, ttl 253, id 56279, offset 0, flags [none], proto UDP (17), length 272) 23.20.145.20.500 > 10.20.20.80.500: [udp sum ok] isakmp 1.0 msgid 00000000 cookie 19e7adeabfefca84→cfa493578af1f691: phase 1 R ident: (ke: key len=128) (nonce: n len=32 data=(c5170686e88069e33323...4448aaf06cc37d4b32d67df97e275e5756a534d8)) (pay20) (pay20) in slot1/tmm0 lis=$_ike_1061a_in_10.20.20.80 port=1.0 trunk=
(Windows만 해당) ECN 비활성화
Windows 인스턴스에 명시적 혼잡 알림(ECN)이 활성화된 경우 패킷 손실 또는 성능 문제가 발생할 수 있습니다.
ECN이 활성화되어 있는지 확인하려면 다음 PowerShell 명령을 실행합니다.
netsh interface tcp show global
ECN을 비활성화하려면 다음 PowerShell 명령을 실행합니다.
netsh interface tcp set global ecncapability=disabled
관련 정보
Site-to-Site VPN을 사용할 때 애플리케이션에 지연 시간 및 성능 문제가 발생하는 이유는 무엇입니까?

관련 콘텐츠
- 질문됨 2달 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 2년 전