관리 메뉴

피터의 개발이야기

traceroute 명령어 사용법 본문

Linux

traceroute 명령어 사용법

기록하는 백앤드개발자 2024. 10. 14. 20:19
반응형

ㅁ 들어가며

ㅇ traceroute는 네트워크 패킷이 목적지까지 도달하는 경로를 추적하는 유용한 네트워크 진단 도구다. 이 명령어를 사용하면 네트워크 문제를 진단하고 패킷이 거치는 라우터들을 확인할 수 있다.

 

ㅁ traceroute의 원리

 traceroute는 Ping과 달리 특정 IP까지 라우팅 경로를 알려준다. 그 원리는 ICMP Error 메시지를 통해 진행된다.

ICMP TTL은 최대 이동할 수 있는 라우팅 홉을 의미한다. 그래서 TTL 1로 설정하여 패킷을 보내면, 다음 라우터에서 ICMP Error가 반환되는데, 그 에러 메시지를 통해  라우팅 IP를 알게 된다. traceroute를 실행하면 느린 이유는 TTL을 1부터 증가시켜 들어오는 에러 메시지를 확인하여 라우팅 IP를 출력하기 때문이다.

 

ㅁ 기본 사용법

traceroute [목적지 IP 또는 도메인]

 

ㅁ 출력 해석하기

$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
 1  10.200.200.200 (10.200.200.200)  14.737 ms  8.758 ms  8.593 ms
 2  172.31.241.65 (172.31.241.65)  9.477 ms  9.027 ms  9.001 ms
 3  172.31.255.234 (172.31.255.234)  10.022 ms  9.227 ms  9.456 ms
 4  172.31.255.217 (172.31.255.217)  10.273 ms  9.668 ms  9.523 ms
 5  * * *
 6  121.189.3.49 (121.189.3.49)  13.121 ms  10.985 ms  10.434 ms
 7  112.174.92.157 (112.174.92.157)  16.189 ms  16.764 ms  15.726 ms
 8  112.174.84.34 (112.174.84.34)  16.935 ms
    112.174.84.50 (112.174.84.50)  16.972 ms  17.124 ms
 9  142.250.165.78 (142.250.165.78)  38.327 ms  36.861 ms
    72.14.243.228 (72.14.243.228)  41.800 ms
10  * 216.239.59.149 (216.239.59.149)  37.768 ms *
11  dns.google (8.8.8.8)  41.596 ms  40.945 ms  40.696 ms

ㅇ 예를 들어, Google의 DNS 서버로 traceroute를 실행하려면 패킷이 목적지에 도달할 때까지 거치는 각 홉(hop)을 보여준다.

ㅇ 각 줄은 하나의 홉을 나타내며, 다음 정보를 포함한다.

  • 홉 번호
  • 라우터의 IP 주소 (및 호스트 이름, 가능한 경우)
  • 3개의 패킷에 대한 응답 시간 (밀리초 단위)

별표(*)는 해당 홉에서 응답을 받지 못했음을 의미한다.

 

ㅁ 주요 옵션

 

traceroute -I 8.8.8.8

ㅇ -I 또는 --icmp: ICMP ECHO 패킷을 사용

 

traceroute -T 8.8.8.8

-T 또는 --tcp: TCP SYN 패킷을 사용

 

traceroute -U 8.8.8.8

-U 또는 --udp: UDP 패킷을 사용(기본값).

 

traceroute -p 80 8.8.8.8

-p 또는 --port: 특정 포트 번호를 지정

 

traceroute -n 8.8.8.8

-n: IP 주소를 호스트 이름으로 변환하지 않는다.

 

ㅁ 고급 사용법

ㅇ 최대 홉 수 지정

 기본적으로 traceroute는 30홉까지 추적한다. 이를 변경하려면 -m 옵션을 사용한다.

traceroute -m 15 8.8.8.8

이 명령은 최대 15홉까지만 추적한다.

 

ㅇ 대체 포트 사용

traceroute -p 80 8.8.8.8

일부 방화벽은 기본 traceroute 포트를 차단할 수 있다. 이런 경우 웹 서버 포트인 80을 사용해 볼 수 있다.

 

소스 인터페이스 지정

traceroute -i eth0 8.8.8.8

특정 네트워크 인터페이스를 통해 traceroute를 실행하려면 -i 옵션을 사용한다.

 

ㅇ 패킷 크기 조정

traceroute -p 60000 8.8.8.8

- traceroute 패킷의 크기를 변경하려면 다음과 같이 한다.

- 이 명령은 60000바이트 크기의 패킷을 사용한다.

 

ㅁ 문제 해결 팁

ㅇ 별표(*) 응답

 일부 라우터가 ICMP 패킷을 차단하거나 응답하지 않을 수 있다. 이 경우 별표로 표시된다. 이는 반드시 문제를 의미하지는 않는다.

ㅇ 높은 지연 시간

 특정 홉에서 지연 시간이 급격히 증가한다면, 해당 구간에 네트워크 혼잡이나 문제가 있을 수 있다.

ㅇ 경로 변경

 동일한 목적지에 대해 여러 번 traceroute를 실행했을 때 경로가 변경된다면, 이는 로드 밸런싱이나 네트워크 토폴로지 변경을 의미할 수 있다.

ㅇ 목적지 미도달

 패킷이 목적지에 도달하지 못한다면, 네트워크 연결 문제나 방화벽 설정을 확인해야 한다.

 

ㅁ 마무리

  traceroute는 네트워크 문제를 진단하고 네트워크 토폴로지를 이해하는 데 매우 유용한 도구다. 기본적인 사용법부터 고급 옵션까지 숙지하면, 네트워크 관리와 문제 해결에 큰 도움이 될 것이다. traceroute를 효과적으로 활용하기 위해 다른 네트워크 진단 도구들(ping, nslookup, netstat 등)과 함께 사용하면 더욱 종합적인 네트워크 분석이 가능하다.

 

ㅁ 함께 보면 좋은 사이트

네트워크 경로 추적 명령어 tracert (traceroute) 이란?

리눅스 traceroute 명령어 사용법 및 이해

반응형
Comments