본문 바로가기
리눅스

[Linux] 리눅스 네트워크 경로 및 병목 지점 확인: traceroute & mtr

by ImirAin 2025. 10. 25.

네트워크 통신 문제를 진단하고 경로의 상태를 파악하는 데는 단순히 연결 여부만 확인하는 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)로 실행하여 결과를 실시간으로 보여주지 않고 최종 결과만 출력합니다. (스크립트나 자동화된 진단에 유용)