본문 바로가기

ComputerScience/Network

Traceroute 사용하기(네트워크 경로 추적하기)

자신이 어떠한 네트워크 경로를 통해서
다른host에 접속하는 지 알고 싶을 때
UNIX/LINUX의 프로그램인
Traceroute program을 사용하면 됩니다.

사용 법은 간단합니다.
Linux/UNix운영 체제에 셀 모드에서

traceroute 호스트명

을 치면 해당 호스트까지 어떠한 라우터를 거쳐 가는 지 알려줍니다.

예를 들어볼까요. traceroute www.naver.com 을  쳐 보았습니다. 

10번 이후부터는 보안 때문에 안나타나는 군요.

어찌되었든 대강 어떠한 경로를 통해 또는
몇번의 라우터를 걸쳐 해당 호스트를 찾아가는지 추적 할 수 있습니다.


이 프로그램의 원리는 우리가 이용하는 인터넷은 기본적으로 IPv4라는

네트워크 계층의 데이터그램 포맷을 사용하는데,

위의 IPv4데이터그램 포맷에는 TTL필드라는 것이 포함되어 있습니다.
이는 데이터그램이 네트워크에서 무한히 순환하지 않는 것을 보장하게 하는 필드로써
일반적으로 라우터를 하나 지날때마다 TTL값이 1씩 감소합니다.
그래서 들어간 TTL보다 큰 라우터를 지나게 되는 순간
데이터그램을 버림으로써 데이터그램이 소멸하게 되는 것 입니다.

그런데 이를 1부터 증가하는 순대로 집어넣으면,
목적지까지 지나는 라우터까지만!
패킷을 전송할수 있습니다.

패킷을 보내면 응답이 오고,
응답이 온 패킷을 분석해 라우터의 아이피를 얻어오는 것이
이 프로그램의 원리라고 할 수 있겠습니다.