Linux에서 Traceroute 실행하는 방법 안내서

리눅스 컴퓨터를 떠나서 패킷이 어디로 가는지 알아야 한다면, 리눅스에서의 traceroute가 도움이 될 것입니다.

Traceroute는 네트워크 상에서 네트워크 패킷이 어떤 라우터를 통과하는지 추적하는 거의 모든 리눅스 배포판에 포함된 유용한 유틸리티입니다.

리눅스 배포판마다 같은 traceroute 명령을 포함하는 패키지가 있는 것은 아닙니다. 일부 배포판은 네트워크 도구 스위트의 일부로 traceroute를 포함하는 기존의 inetutils 패키지를 사용하고, 다른 배포판은 최신의 traceroute.x86_64 패키지를 사용합니다.

관련 정보: Windows 10에서 Traceroute 사용하는 방법 (Tracert)

Traceroute 매개변수 검사하기

시작하기 전에, 리눅스 traceroute 명령어로 어떤 작업이 가능한지 확인해 보겠습니다.

터미널을 열고 명령어 traceroute -?를 입력하여 매뉴얼 페이지에 접근합니다:

Usage: traceroute [OPTION...] HOST
Print the route packets trace to network host.

  -f, --first-hop=NUM        set initial hop distance, i.e., time-to-live
  -g, --gateways=GATES       list of gateways for loose source routing
  -I, --icmp                 use ICMP ECHO as probe
  -m, --max-hop=NUM          set maximal hop count (default: 64)
  -M, --type=METHOD          use METHOD (`icmp' or `udp') for traceroute
                             operations, defaulting to `udp'
  -p, --port=PORT            use destination PORT port (default: 33434)
  -q, --tries=NUM            send NUM probe packets per hop (default: 3)
      --resolve-hostnames    resolve hostnames
  -t, --tos=NUM              set type of service (TOS) to NUM
  -w, --wait=NUM             wait NUM seconds for response (default: 3)
  -?, --help                 give this help list
      --usage                give a short usage message
  -V, --version              print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Report bugs to <bug-inetutils@gnu.org>.

위에서 볼 수 있듯이, traceroute 작동 방식을 조정할 수 있는 다양한 옵션이 있습니다.

기본적인 Traceroute 기능

트레이서트(traceroute)를 조정하는 매개변수가 있지만, 실제로 그 모든 것들이 필요한 것은 아닙니다. 사실, 단지 트레이서트를 실행하고 추적할 호스트를 제공하기만 하면 됩니다. 아래에서 볼 수 있듯이, Linux에서 트레이서트는 60바이트 패킷을 보내고 목적지 호스트에 도달하기까지 거치는 각 을 따라갑니다.

패킷이 더 이상 수신되지 않을 때를 감지하기 위해 각 패킷에 시간-생존(TTL)을 사용하여 감소시키면서 이러한 홉을 추적할 수 있습니다.

Traceroute to google.com

트레이서트에는 최대 홉 수가 있습니다. 최대 30개의 홉까지만 이동합니다.

더 정확한 추적을 위한 스위치 추가하기

Linux의 기본 트레이서트 기능은 잘 작동하지만 할 수 있는 것은 훨씬 많습니다. 이제 사용 가능한 가장 인기 있는 기능과 유용한 스위치 중 많은 것을 다루도록 하겠습니다.

첫 번째 홉 스위치로 홉 제외하기

특정 라우터를 추적에서 제외하는 명령이 있습니다. -f 또는 --first-hop=NUM 매개변수를 사용하여 특정 라우터를 표시에서 제외할 수 있습니다. 이는 한 개 이상의 라우터가 문제를 일으키지 않는다고 확신하는 경우 매우 유용할 수 있습니다.

또한, 인터넷에서 지연의 가능한 원인을 좁히기 위해 트레이스를 네트워크 범위를 넘어서 시작하도록 -f 스위치를 사용할 수도 있습니다.

다음 GIF에서는 traceroute -f 3 google.com 명령이 실행되는 것을 볼 수 있습니다. 이 명령은 첫 번째 세 개의 라우터를 건너뛰어 집 네트워킹과 ISP 라우터를 우회합니다. 첫 번째 두 개의 홉이 누락된 것을 주목하세요.

traceroute -f example

위 예제에서는 내 네트워크에서 www.google.com에 도달하기 위해 15개의 홉이 필요합니다. 다음과 같이 표시됩니다:

  • 홉 수
  • 추적되는 경로 상의 라우터의 호스트명 또는 IP
  • 이전과 같은 응답 시간

출력에서 일부 홉에 대해 추가 인터페이스를 볼 수 있습니다. 이는 예상 동작입니다.

최대 홉 수 제한하기

이제 첫 번째 두 개의 홉을 건너뛰는 것 외에도 경로의 다섯 번째 홉까지의 경로를 원한다고 가정해 봅시다. 그럴 경우 -m 또는 --max-hop=NUM 스위치 매개변수를 사용합니다.

터미널에 traceroute -m 5 -f 3 http://www.google.com을 입력하고 Enter 키를 누르세요. 이 명령은 첫 번째 두 개의 홉을 건너뛰고 다섯 번째 홉에서 중단됩니다.

Traceroute skipping hops

-Q 스위치를 사용하여 전송하는 프로브 패킷 수 감소하기

Linux에서 기본적으로 Traceroute는 경로의 각 라우터에 세 개의 프로브 패킷을 보냅니다. traceroute 실행 시간을 줄이고 싶을 수도 있습니다. -q 매개변수를 사용하여 각 라우터에 전송되는 프로브 패킷 수를 변경할 수 있습니다.

터미널에 traceroute -q -m 5 -f 3 www.google.com을(를) 입력하고 Enter를 누르세요. 아래에서 볼 수 있듯이, traceroute는 각 홉 당 하나의 응답 시간만 받기 때문에 한 번의 패킷만을 보냅니다.

traceroute -q 6 example

또한, -q 매개변수에 인수를 지정하여 각 홉의 응답 시간을 평균화할 수 있는 패킷 프로브 수를 증가시킬 수도 있습니다. 패킷 프로브 수를 증가시킴으로써 각 홉의 응답 시간을 평균화하는 방법을 제공할 수 있습니다.

Argument for -q Parameter

요약

이 리눅스용 Traceroute에 관한 기사에서, 이 유용한 유틸리티를 사용하는 기본적인 내용을 배웠습니다. 이 명령어로 할 수 있는 것들은 훨씬 많습니다. 모든 스위치를 사용하는 방법을 알고 싶다면, 매뉴얼 페이지를 확인해보세요.

Source:
https://adamtheautomator.com/traceroute-linux/