Linux에서 traceroute 명령을 사용하는 방법

0
3368
Linux 컴퓨터에서 터미널 창의 명령 행.
Fatmawati Achmad Zaenuri / 셔터 스톡

당신은 리눅스를 사용할 수 있습니다 traceroute 네트워크 패킷의 이동 경로를 느리게 파악하고 느린 네트워크 연결 문제를 해결하도록 명령합니다. 우리는 당신에게 방법을 보여줄 것입니다!

traceroute의 작동 방식

당신이 어떻게 감사합니다 traceroute 작동하면 결과를 훨씬 쉽게 이해할 수 있습니다. 네트워크 패킷이 목적지에 도달하기 위해 수행해야하는 경로가 복잡할수록 속도 저하가 발생하는 위치를 정확히 찾아내는 것이 어렵습니다.

소규모 조직의 LAN (Local Area Network)은 비교적 단순 할 수 있습니다. 아마도 하나 이상의 서버와 라우터가있을 것입니다. 다른 위치 또는 인터넷을 통해 통신하는 WAN (Wide Area Network)에서는 복잡성이 증가합니다. 그런 다음 네트워크 패킷은 라우터 및 게이트웨이와 같은 많은 하드웨어를 만나고 전달 및 라우팅됩니다.

데이터 패킷의 메타 데이터 헤더는 길이, 출처, 출처, 사용중인 프로토콜 등을 설명합니다. 프로토콜 사양에 따라 헤더가 정의됩니다. 프로토콜을 식별 할 수 있으면 헤더에서 각 필드의 시작과 끝을 결정하고 메타 데이터를 읽을 수 있습니다.

traceroute TCP / IP 프로토콜 제품군을 사용하고 사용자 데이터 그램 프로토콜 패킷을 보냅니다. 헤더에는 8 비트 정수 값이 포함 된 TTL (Time to Live) 필드가 있습니다. 이름에서 알 수 있듯이 지속 시간이 아니라 카운트를 나타냅니다.

패킷은 라우터를 통해 출발지에서 목적지로 이동합니다. 패킷이 라우터에 도착할 때마다 TTL 카운터가 감소합니다. TTL 값이 1에 도달하면 패킷을 수신하는 라우터가 값을 줄이고 이제 0임을 알 수 있습니다. 그런 다음 패킷은 “시간 초과”되었기 때문에 버리고 여행의 다음 홉으로 전달되지 않습니다.

라우터는 ICMP (Internet Message Control Protocol) Time Exceeded 메시지를 패킷의 원점으로 되돌려 패킷 타임 아웃을 알립니다. Time Exceeded 메시지는 원본 헤더와 원본 패킷 데이터의 첫 64 비트를 포함합니다. 이것은 의견 요청 792의 6 페이지에 정의되어 있습니다.

그래서 만약 traceroute 패킷을 전송 한 다음 TTL 값을 1로 설정하면 패킷은 삭제되기 전에 첫 번째 라우터까지만 가져옵니다. 라우터로부터 ICMP 시간 초과 메시지를 수신하고 왕복에 걸린 시간을 기록 할 수 있습니다.

그런 다음 TTL을 2로 설정하여 운동을 반복합니다. 두 번의 홉 후에 실패합니다. traceroute TTL을 3으로 증가시키고 다시 시도하십시오. 대상에 도달하거나 최대 홉 수 (기본적으로 30)가 테스트 될 때까지이 프로세스가 반복됩니다.

일부 라우터는 잘 재생되지 않습니다

일부 라우터에는 버그가 있습니다. 패킷을 버리고 ICMP 시간 초과 메시지를 올리는 대신 TTL이 0 인 패킷을 전달하려고합니다.

시스코에 따르면 일부 인터넷 서비스 제공 업체 (ISP)는 라우터가 릴레이하는 ICMP 메시지의 수를 제한합니다.

일부 장치는 ICMP 패킷을 보내지 않도록 구성되어 있습니다. 이것은 종종 스머프 공격과 같은 분산 서비스 거부에 참여하도록 장치가 무의식적으로 강요되지 않도록하기위한 것입니다.

traceroute 응답에 대한 기본 시간 제한은 5 초입니다. 5 초 내에 응답을받지 못하면 시도는 취소됩니다. 이는 매우 느린 라우터의 응답이 무시됨을 의미합니다.

추적 경로 설치

traceroute 이미 Fedora 31에 설치되었지만 Manjaro 18.1 및 Ubuntu 18.04에 설치해야합니다. 설치하기 위해서 traceroute Manjaro에서 다음 명령을 사용하십시오.

sudo pacman -Sy traceroute

터미널 창에서 "sudo pacman -Sy traceroute"명령

설치하기 위해서 traceroute 우분투에서 다음 명령을 사용하십시오.

sudo apt-get install traceroute

터미널 창에서 "sudo apt-get install traceroute"명령

traceroute 사용

위에서 다룬 것처럼 traceroute's 컴퓨터에서 대상까지의 각 홉에서 라우터의 응답을 이끌어내는 것이 목적입니다. 어떤 사람들은 꽉 끼고 아무것도 줄 수없는 반면, 다른 사람들은 아마도 자질없이 콩을 쏟을 것입니다.

예를 들어, traceroute 유명한 Blarney Stone의 본거지 인 아일랜드의 “Blarney Castle”웹 사이트로. 전설에 따르면 Blarney Stone에 키스하면“Gab의 선물”을받을 수 있습니다. 우리가 만나는 라우터가 적절하게 엉망이 되길 바랍니다.

다음 명령을 입력합니다 :

traceroute www.blarneycastle.ie

터미널 창에있는 "traceroute www.blarneycastle.ie"명령.

첫 번째 줄은 다음 정보를 제공합니다.

  • 대상 및 해당 IP 주소
  • 홉 수 traceroute 포기하기 전에 시도합니다.
  • 전송중인 UDP 패킷의 크기입니다.

다른 모든 줄에는 홉 중 하나에 대한 정보가 포함됩니다. 자세한 내용을 살펴보기 전에 컴퓨터와 Blarney Castle 웹 사이트 사이에 11 개의 홉이 있다는 것을 알 수 있습니다. 홉 11은 또한 우리가 목적지에 도착했다고 말합니다.

각 홉 라인의 형식은 다음과 같습니다.

  • 장치의 이름 또는 장치가 자신을 식별하지 못하는 경우 IP 주소입니다.
  • IP 주소
  • 세 가지 테스트 각각에 대해 왕복 시간이 걸렸습니다. 별표가 있으면 해당 테스트에 대한 응답이 없음을 의미합니다. 장치가 전혀 응답하지 않으면 장치 이름이나 IP 주소가없는 별표 3 개가 표시됩니다.

아래 내용을 검토하겠습니다.

  • 홉 1 : 첫 번째 호출 포트 (펀칭되지 않음)는 로컬 네트워크의 DrayTek Vigor 라우터입니다. UDP 패킷이 로컬 네트워크를 떠나 인터넷에 연결되는 방식입니다.
  • 홉 2 : 이 기기가 응답하지 않았습니다. ICMP 패킷을 보내지 않도록 구성되었을 수 있습니다. 또는 아마도 응답했지만 너무 느 렸습니다. traceroute 시간 초과.
  • 홉 3 : 기기가 응답했지만 이름이없고 IP 주소 만 얻었습니다. 이 줄에는 별표가 표시되어 세 가지 요청 모두에 대한 답변을받지 못했습니다. 이는 패킷 손실을 나타낼 수 있습니다.
  • 홉 4와 5 : 더 많은 익명 홉.
  • 홉 6 : 여기에는 다른 원격 장치가 3 개의 UDP 요청 각각을 처리했기 때문에 많은 텍스트가 있습니다. 각 장치의 (더 긴) 이름과 IP 주소가 인쇄되었습니다. 이는 대량의 트래픽을 처리 할 하드웨어가 많은 “풍부하게 채워진”네트워크를 만나면 발생할 수 있습니다. 이 홉은 영국에서 가장 큰 ISP 중 하나에 속하기 때문에 동일한 원격 하드웨어가 3 개의 연결 요청을 처리하면 약간의 기적 일 것입니다.
  • 홉 7 : 이것은 UDP 패킷이 ISP 네트워크를 떠날 때 만들어진 홉입니다.
  • 홉 8 : 다시 한 번, 장치 이름이 아닌 IP 주소를 얻습니다. 세 테스트 모두 성공적으로 반환되었습니다.
  • 홉 9 그리고 10 : 익명의 홉이 두 개 더 있습니다.
  • 홉 11 : 우리는 Blarney Castle 웹 사이트에 도착했습니다. 성은 아일랜드 코크에 있지만 IP 주소 지리 위치에 따르면 웹 사이트는 런던에 있습니다.

혼합 가방이었습니다. 일부 기기는 공을 사용하고 일부 기기는 응답했지만 이름을 알려주지 않았으며 일부 기기는 완전히 익명으로 유지되었습니다.

그러나 우리는 목적지에 도착했고 11 홉 거리에 있었고 여행에 소요되는 왕복 시간은 13.773과 14.715 밀리 초였습니다.

장치 이름 숨기기

앞에서 살펴본 것처럼 때때로 장치 이름을 포함하면 화면이 어수선 해집니다. 데이터를보다 쉽게 ​​볼 수 있도록 -n (매핑 없음) 옵션.

예제를 통해이를 수행하려면 다음을 입력하십시오.

traceroute -n blarneycastle.ie

터미널 창에서 "traceroute -n blarneycastle.ie"명령

이를 통해 병목 현상을 나타낼 수있는 왕복 타이밍을 위해 많은 수를 쉽게 선택할 수 있습니다.

홉 3은 약간의 용의자로 보이기 시작했습니다. 지난 번에는 두 번만 응답했으며 이번에는 한 번만 응답했습니다. 이 시나리오에서는 물론 통제 할 수 없습니다.

그러나 회사 네트워크를 조사하는 경우 해당 노드를 조금 더 깊이 파고 드는 것이 좋습니다.

트레이스 루트 타임 아웃 값 설정

기본 시간 초과 기간 (5 초)을 연장하면 더 많은 응답을 얻을 수 있습니다. 이를 위해 우리는 -w (대기 시간) 옵션을 사용하여 7 초로 변경하십시오. (이것은 부동 소수점 숫자입니다.)

다음 명령을 입력합니다 :

traceroute -w 7.0 blarneycastle.ie

터미널 창에서 "traceroute -w 7.0 blarneycastle.ie"명령

그다지 큰 차이는 없었으므로 응답 시간이 초과되었을 수 있습니다. 익명의 홉이 의도적으로 비밀을 유지하고있는 것 같습니다.

테스트 횟수 설정

기본적으로, traceroute 각 홉에 3 개의 UDP 패킷을 보냅니다. 우리는 사용할 수 있습니다 -q (쿼리 수) 옵션을 사용하여 위 또는 아래로 조정할 수 있습니다.

속도를 높이려면 traceroute 테스트 할 때 다음을 입력하여 하나에 보내는 UDP 프로브 패킷 수를 줄입니다.

traceroute -q 1 blarneycastle.ie

터미널 창에서 "traceroute -q 1 blarneycastle.ie"명령

그러면 각 홉에 단일 프로브가 전송됩니다.

초기 TTL 값 설정

TTL의 초기 값을 1이 아닌 다른 값으로 설정하고 일부 홉을 건너 뛸 수 있습니다. 일반적으로 TTL 값은 첫 번째 테스트 집합에 대해 1, 다음 테스트 집합에 대해 2로 설정됩니다. 5로 설정하면 첫 번째 테스트는 5를 홉하고 1에서 4까지 홉을 건너 뛰려고 시도합니다.

Blarney Castle 웹 사이트가이 컴퓨터에서 11 홉이라는 것을 알고 있으므로 다음을 입력하여 Hop 11로 바로 이동하십시오.

traceroute -f 11 blarneycastle.ie

터미널 창에서 "traceroute -f 11 blarneycastle.ie"명령

이는 목적지와의 연결 상태에 대한 좋은 요약 보고서를 제공합니다.

배려

traceroute 네트워크 라우팅을 조사하고 연결 속도를 확인하거나 병목 현상을 식별 할 수있는 훌륭한 도구입니다. Windows에는 또한 tracert 비슷하게 작동하는 명령.

그러나 수많은 UDP 패킷을 사용하여 알 수없는 장치를 폭격하고 포함하지 않도록주의하십시오. traceroute 스크립트 또는 무인 작업에서.

traceroute 네트워크에 배치하면 성능에 부정적인 영향을 줄 수 있습니다. 현재 상황이 해결되지 않는 한 정상적인 업무 시간 이외의 시간에 사용할 수 있습니다.