traceroute는 자신의 컴퓨터가 인터넷을 통해 특정 컴퓨터를 찾아가면서 거치는 루트 (각 마다 거치게 되는 게이트웨이 컴퓨터)를 기록하는 유틸리티이다. 이것은 각 홉에 걸리는 시간의 합을 계산하여 표시해주기도 한다. traceroute는 인터넷상에 문제점이 있는 네트웍을 파악하고, 또한 인터넷 그 자체에 대해 좀더 자세한 느낌을 갖게 하는 두 가지 목적을 위해 편리한 도구이다. 다른 유틸리티로서 이 있는데, 이는 특정 호스트가 현재 네트웍 상에 존재하는지를 알기 위해 traceroute를 쓰기에 앞서 자주 사용된다.

traceroute 유틸리티는 윈도우95/98/NT, 유닉스 기반의 시스템을 포함한 여러 종류의 운영체계에 포함되거나, TCP/IP 패키지의 일부로서 딸려 나온다. 만약 자신의 시스템에 이 유틸리티가 포함되어 있지 않다면, 다운로드할 수 있는 프리웨어 버전들이 꽤 있으므로, 이를 이용하여 설치하면 된다.

아래 그림에 traceout의 출력 결과의 예가 하나 있다. 윈도우에서는, 게이트웨이 컴퓨터의 IP 주소 앞에 홉에 걸린 시간이 보여진다. 그림의 예에서 보면, 연세대학교 웹서버까지 도달하는데 모두 7개의 게이트웨이를 거친 것을 알 수 있다.

사용자 삽입 이미지
 

사용자가 traceroute 명령어를 입력하면, 그 유틸리티는 ICMP를 이용하여 시간제한 값(TTL ; time to live)을 포함하고 있는 패킷을 하나 전송하는데, 이 패킷을 받는 첫 번째 라우터에 의해 시간이 초과되도록 설계되어있으며, 첫 번째 라우터는 시간초과 메시지(Time Exceeded)를 반환할 것이다. 이것은 traceroute가 첫 번째 라우터까지의 홉에 걸린 시간을 결정할 수 있게 해준다. traceroute는 다시 시간 제한 값을 증가시켜, 목적지로 향하는 두 번째 라우터까지 도달할 수 있도록 패킷을 재전송하면, 두 번째 라우터에 의해 또다른 시간초과 메시지가 반환되는 식으로 진행된다. traceroute는 정상범위가 아닌 포트 번호를 포함하는 것으로 패킷이 목적지에 도달하였을 때를 결정한다. 그것이 최종 목적지 컴퓨터에 수신되면, 포트에 접근할 수 없다는 메시지(Port Unreachable)가 반환됨으로써, 마지막 홉에 걸린 시간을 측정할 수 있게 된다. 루트 추적 과정이 진행되면서, 매 홉마다 그 기록들이 표시된다. 실제로, 각 홉은 세 번씩 측정된다 (기록 중에 "*"가 나타나는 것은, 그 홉이 시간제한치를 넘었다는 것을 표시한다).

자신의 컴퓨터에 윈도우95이나 98 또는 NT 운영체계가 설치된 환경이라면, 콘솔창에서 다음과 같이 입력해봄으로써 루트 추적을 시험해 볼 수 있다.

tracert www.yonsei.ac.kr

tracert 다음에는, 위의 예에서와 같이 자신이 추적해보기 원하는 어떠한 도메인 이름이라도 입력할 수 있으며, IP 주소를 입력해도 된다.

'Network' 카테고리의 다른 글

서버 테스트 방법  (0) 2008.04.25
TCPView  (1) 2008.02.26
Traceroute - 네트워크 경로 추적 프로그램  (0) 2008.02.18
유닉스/라우터에서의 Traceroute  (0) 2008.02.18
윈도우 계열에서의 Traceroute  (0) 2008.02.18
NMap - 네트워크 스캐닝 툴  (0) 2008.02.18
Posted by 엘키 엘키

댓글을 달아 주세요

(그림 2)는 유닉스와 라우터에서 traceroute를 수행하는 과정이다.

유닉스·라우터에서의 traceroute는 윈도우 계열 OS와 달리 traceroute로 ICMP echo-request 대신 udp를 이용한다. 이때 포트 번호는 상대방이 사용하지 않을 것으로 예상되는 3만 번 이상으로 보낸다(화면 4).


(화면 4) udp 포트 번호 3만번 이상의 패킷

물론, TTL 값을 하나씩 증가시켜 보내는 것은 윈도우 계열과 같은 방법이다. 이렇게 udp 3만번 이상의 포트로 패킷을 보내면 최종 목적지에서는 해당 포트 번호를 사용하지 않으므로 ICMP Destination Unreachable(Type:3 Destination unreachable, Code:3 Port unreachable)로 응답한다(화면 5).


(화면 5) ICMP unreachable

'Network' 카테고리의 다른 글

TCPView  (1) 2008.02.26
Traceroute - 네트워크 경로 추적 프로그램  (0) 2008.02.18
유닉스/라우터에서의 Traceroute  (0) 2008.02.18
윈도우 계열에서의 Traceroute  (0) 2008.02.18
NMap - 네트워크 스캐닝 툴  (0) 2008.02.18
ARP - Address Resolution Protocol.  (0) 2008.02.12
Posted by 엘키 엘키

댓글을 달아 주세요

(그림 1)은 윈도우 계열에서의 traceroute가 수행되는 과정이다.


윈도우 계열을 OS로 사용하는 컴퓨터는 ICMP echo request(Type:8 Echo request, Code:0)를 보낸다(화면 1).

(화면 1) echo request

이때 TTL 값을 하나씩 증가시켜서 보내면 중간에 경유하는 라우터로부터 TTL exceeded라는 메시지를 받는다. TTL(Time To Live) 값은 라우터 하나를 거칠수록 1씩 감소하고, TTL 값이 0인 패킷을 받는 호스트는 ICMP 메시지인 TTL exceeded(Type:11 Time-to-live exceeded, Code:0 Time to live exceeded in transit)라는 메시지를 보낸다. 이를 근거로 TTL exceeded 메시지를 보내는 호스트의 IP 리스트를 나열한 것이 traceroute 결과 값이다(화면 2).
 

(화면 2) TTL exceeded

이제 중간 라우터를 모두 경유하고 최종 목적지에 왔을 때 최종 목적지의 호스트는 echo-reply(Type:0 Echo reply, Code:0)로 대답한다(화면 3).


(화면 3) echo reply

Posted by 엘키 엘키

댓글을 달아 주세요

이전버튼 1 이전버튼

블로그 이미지
Software Engineer
엘키

공지사항

Yesterday31
Today29
Total1,605,483

달력

 « |  » 2020.8
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

글 보관함