Network

네트워크 진단 #1

PON_Z 2024. 7. 3. 23:42

- tracert는 네트워크 연결 상태를 구체적으로 파악하는 데 사용되는 진단 도구이다. ping이 단순히 목적지 IP 주소의 통신 가능 여부를 확인하는 수준이라면, tracert는 패킷이 출발지에서 목적지까지 이동하는 길목 하나하나를 확인할 수 있다.

 

- tracert와 traceroute는 같은 기능을 한다. 윈도우에서는 CMD를 통해 tracert로, 리눅스와 맥에서는 터미널을 통해 traceroute로 사용한다.

 

- traceroute는 ping과 마찬가지로 목적지에 ICMP(Internet Control Message Protocol) 패킷을 보내는 방식으로 작동한다. 패킷은 출발지에서 목적지로 한 번에 이동하지 않고, 복수의 경로를 거치게 된다. 이때 각 구간을 홉(hop)이라고 부릅니다.

 

네트워크 패킷(packet)이란?

 

- 패킷이 지나는 홉마다의 IP 주소와 구간 별 패킷이 이동하는 시간을 체크할 수 있다. traceroute를 사용하는 목적은 아래와 같이 정리할 수 있다.

 

1. 패킷이 목적지로 향하는 전체 경로를 파악할 수 있음

2. 경로에 존재하는 라우터의 정보를 확인할 수 있음

3. 각 경로에 도착하는데 걸리는 시간을 확인할 수 있음

 

결론적으로 통신에 문제가 있을 때 구체적으로 어디에서 패킷이 막히는 건지, 속도가 지연되는 건지를 확인할 수 있다.

 

 

 

홉의 개념을 알았으니 TTL에 대해 알아보자. 패킷의 헤더 정보에는 TTL(Time to Live)이라는 필드가 존재한다.. TTL은 패킷이 폐기되기 전 최대 몇 개의 홉을 이동할 수 있는지 명시한 정보이다. traceroute는 TTL을 기준으로 출발지와 목적지 사이의 거리를 측정하고 그 사이의 홉을 찾아낸다.

 

예를 들어, 로컬호스트(127.0.0.1)에서 google.com까지 패킷을 보내려면 30개의 홉이 필요한데, 패킷의 TTL이 20이면 google.com까지 도달하지 못한다. 만약 이러한 제한이 전혀 없다면 목적지를 찾아가지 못하는 패킷도 무한히 라우터를 돌아다니는 문제가 발생할 수 있기 때문에 TTL은 꼭 필요하다.

 

그렇다면, tracert 사용법을 알아보자

# DOS
# -d: DNS 조회를 하지 않습니다. IP 주소만 표시합니다.
# -h maximum_hops: 최대 홉(hop) 수를 지정합니다. 기본값은 30입니다.
# -w timeout: 각 응답을 기다리는 시간(밀리초)을 지정합니다. 기본값은 4000(4초)입니다.
# -R: 라우팅 헤더를 사용하여 경로를 추적합니다 (IPv6에만 해당).
# -S srcaddr: 사용할 소스 주소를 지정합니다.
# -4: IPv4만 사용하도록 강제합니다.
# -6: IPv6만 사용하도록 강제합니다.

# ex) 
tracert -d -h 15 -w 500 www.example.com

 

 

첫 줄에는 패킷이 다른 네트워크로 나가는 출구인 게이트웨이의 IP 주소가 표기되고, 그 다음 줄부턴 거쳐가는 라우터들의 IP가 표기된다. 최종적으로 google 도메인에 해당하는 IP가 표기된다.

 

 

 

ref) https://change-words.tistory.com/entry/tracert-traceroute

 

728x90