
네트워크 통신 문제를 진단하고 경로의 상태를 파악하는 데는 단순히 연결 여부만 확인하는 ping 외에, 패킷이 목적지까지 거쳐가는 경로 자체를 추적하는 명령어가 필요합니다. 바로 traceroute와 이를 시각적으로 개선한 mtr입니다.
1. traceroute: 네트워크 경로 추적의 기본
traceroute 명령어는 실행하는 컴퓨터에서 목적지 서버로 가는 네트워크 경로(라우팅 경로)를 확인해 줍니다. 각 라우터(홉, Hop)마다 응답 시간을 측정하여 경로상의 지연을 파악할 수 있습니다.
- 동작 원리: traceroute는 ICMP 프로토콜을 이용하며, TTL(Time-To-Live) 값을 1부터 1씩 증가시키면서 패킷을 보냅니다. TTL이 0이 될 때마다 중간 라우터는 ICMP 'Time Exceeded' 메시지를 반환하는데, 이를 통해 각 홉의 주소와 응답 시간을 기록합니다.
- 명령 구문:
traceroute [IP 주소 | 도메인명] - 제한 사항: ping과 마찬가지로 ICMP 프로토콜을 제한하거나 차단하는 라우터가 중간에 존재할 경우, 해당 홉에서는 정보를 파악할 수 없으며 * * * 형태로 표시됩니다.
| 유용한 옵션 (추가 내용) | 설명 |
| -n | IP 주소를 이름으로 해석하지 않고 숫자 IP로만 표시합니다. (조회 속도 향상) |
| -I | ICMP 대신 UDP 프로토콜을 사용하여 경로를 추적합니다. (방화벽 우회 목적으로 사용되기도 함) |
| -m [숫자] | 경로 추적에 사용할 최대 홉(Hop) 수를 지정합니다. |
2. mtr (My TraceRoute): 실시간 병목 진단 도구
mtr (My TraceRoute)은 traceroute와 ping의 기능을 결합하여 더 가시화시키고 실시간으로 상태를 모니터링할 수 있도록 만든 도구입니다. 네트워크 병목 지점이나 불안정한 구간을 찾는 데 매우 효과적입니다.
- 명령 구문:
mtr [IP 주소 | 도메인명]
mtr 출력 항목 상세 설명
mtr 실행 시 출력되는 정보는 실시간으로 갱신되며, 네트워크 상태를 동적으로 보여줍니다.
| 항목 | 설명 | 활용 |
| Host | 목적지까지 도달하기 위해 거쳐가는 게이트웨이(라우터)의 주소. | 경로를 따라 각 홉의 위치를 파악합니다. |
| Loss% | 해당 홉에서 목적지까지 도달하지 못한 패킷 손실률. | 특정 구간에서 손실률이 높으면 해당 홉이나 구간에 네트워크 문제(과부하)가 있음을 의미합니다. |
| Snt | Ping 발송 횟수 (Sent). | 지금까지 테스트를 위해 보낸 패킷의 총 개수. |
| Last | 가장 최근 Ping 응답 시간 (ms). | 현재 시점의 지연 시간. |
| Avg | 평균 Ping 응답 시간 (ms). | 전체 테스트 기간 동안의 평균 응답 속도. |
| Best | 가장 빠른 Ping 응답 시간 (ms). | 최소 지연 시간. |
| Wrst | 가장 느린 Ping 응답 시간 (ms). | 최대 지연 시간. (높을수록 네트워크 불안정) |
| StDev | 표준 편차 (Standard Deviation). | 응답 시간의 변동성. 이 값이 높으면 응답 시간이 들쭉날쭉하여 해당 구간의 네트워크가 불안정하다는 것을 나타냅니다. |
mtr 활용 팁
mtr은 특히 클라우드 환경에서 "어느 구간"에서 지연이 발생하는지 정확히 파악할 때 필수적입니다.
- 병목 지점 찾기: 특정 홉에서 Loss%가 0% 인데 갑자기 Avg 값이 급증한다면, 해당 홉 이후 구간이 아닌 해당 홉 자체에 부하가 걸리거나 처리 지연이 발생하고 있을 가능성이 높습니다.
- -c [횟수] 옵션: traceroute처럼 정해진 횟수만 테스트하고 결과를 출력할 수 있습니다. (예: mtr -c 10 [주소])
- -r 옵션: 보고서 모드(Report Mode)로 실행하여 결과를 실시간으로 보여주지 않고 최종 결과만 출력합니다. (스크립트나 자동화된 진단에 유용)
'리눅스' 카테고리의 다른 글
| [Linux] 리눅스 텍스트 처리 및 검색 명령어: find, grep, awk, sed (0) | 2025.10.25 |
|---|---|
| [Linux] 리눅스 쉘 스크립트의 시작: SheBang(#!) (0) | 2025.10.25 |
| [Linux] 리눅스 네트워크 진단 및 데이터 통신 명령어 (0) | 2025.10.25 |
| [Linux] 리눅스 네트워크 연결 및 포트 확인: netstat vs ss (0) | 2025.10.25 |
| [Linux] 리눅스 라우팅 설정의 핵심: ip route (0) | 2025.10.25 |