IP 주소를 추적 할 수는 있지만 ping 할 수는 없습니다.


19

Windows에서 Google에 추적하면 다음과 같은 결과가 나타납니다.

C:\Users\Dave>tracert -d -w 100 www.google.com

Tracing route to www.google.com [216.58.220.100]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.1.1
  2    17 ms     *       16 ms  [redacted]
  3    17 ms    16 ms    17 ms  [redacted]
  4    34 ms    34 ms    34 ms  150.101.33.18
  5    35 ms    43 ms    33 ms  72.14.221.174
  6    33 ms    33 ms    33 ms  66.249.95.234
  7    31 ms    31 ms    31 ms  209.85.142.11
  8    33 ms    33 ms    38 ms  216.58.220.100

Trace complete.

이제 세 번째 마지막 IP 주소 66.249.95.234를 핑하면이 결과가 나타납니다.

C:\Users\Dave>ping 66.249.95.234

Pinging 66.249.95.234 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 66.249.95.234:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

tracert 내부의 'ping'이 어떻게 실제 ping과 다르게 작동합니까? 그것들은 어떻게 다릅니 까? ping을 tracert처럼 작동 시키려면 어떻게해야합니까?


3
ICMP ECHO가 차단 된 것일 수 있습니다.
Burhan Khalid

답변:


27

그것은 모두 tracert의 작동 방식과 관련이 있습니다. Ping은 지점 A에서 지점 B까지의 직선 ICMP이며 라우팅 규칙을 통해 네트워크를 통과합니다. ICMP를 사용하더라도 Tracert는 매우 다르게 작동합니다.

Tracert는 최종 홉을 대상으로 지정하지만 TTL을 제한하고 시간 초과 메시지를 기다렸다가 다음 반복을 위해 하나씩 증가시켜 작동합니다. 따라서 수신되는 응답은 진행중인 호스트의 ICMP 에코 요청에 대한 ICMP 에코 응답이 아니라 해당 호스트의 메시지를 초과 한 시간입니다. 따라서 ICMP를 사용하더라도 매우 다른 방식으로 사용합니다. .

자세한 내용은 여기를 참조하십시오 .


12
핑 시간이 초과되는 최종 요점을 추가하려면 다음을 수행하십시오. 마지막 세 번째 호스트는 트래픽 위한 라우터 (ICMP TTL EXCEEDED 제어 메시지 전송 실패 포함) 로 작동하도록 구성 되었지만 트래픽 대한 응답은하지 않습니다. ICMP ECHO REQ. 그런데 traceroute 클라이언트는 최종 홉이있는 대상을 대상으로 보낼 있습니다. ICMP ECHO REQ 일 수도 있지만 TCP JYN 일 수도 있습니다 (예 : 대상 jhost에 도달하면 다른 ICMP 메시지를 트리거 할 수 있음). 실제로는 OS마다 구현 방식이 다르지만 다음과 같은 사항이 있습니다 tracepath.
Hagen von Eitzen

@HagenvonEitzen 그 자체로 괜찮은 답변을 드리겠습니다 (최고의 IMO!)
궤도

3
또한 많은 "tracert"구현은 ICMP 패킷을 전송하지도 않습니다. 적어도 tracerouteWindows 버전이 무엇인지 확실하지 않지만 UDP 데이터 그램을 보내는 대부분의 Linux 의 경우입니다 . 중간 홉은 ICMP뿐만 아니라 모든 종류의 패킷에 대해 ICMP TTL EXCEEDED를 보내야합니다.
디지털 외상

1
@DigitalTrauma Wireshark는 tracertWindows 7에서 ICMP 에코 요청을 보냅니다.
Bob

4

먼저 두 명령 모두 서로 다른 대상 IP 주소를 가진 패킷을 전송합니다. 즉, 다른 경로를 이용할 수 있습니다.

66.249.95.234가는 경로를 216.58.220.100보면 대상 주소를 가진 패킷이 66.249.95.234해당 지점에 도달 할 때까지 동일한 경로를 사용 한다고 가정 할 수 있습니다 . 그러나 이것은 유효한 가정이 아닙니다.

경로가 경로 66.249.95.234보다 길어야합니다 216.58.220.100. 때로는 중간 라우터로 패킷을 가져갈 수있는 경로가 없지만 경우에 따라 잘 설계된 네트워크가 아닐 수도 있습니다.

둘 다 사용하는 tracertping명령이 동일한 프로토콜을 사용 하는지 모르겠습니다 . 대부분의 핑 구현은 ICMP 에코 요청 패킷을 사용합니다. 그러나 ICMP 에코 요청, TCP SYN 및 UDP 패킷을 포함한 광범위한 프로토콜을 지원하는 추적 경로 구현이 존재합니다. 두 프로토콜이 다른 프로토콜을 사용하는 경우 다른 결과를 보는 데 기여할 수 있습니다.

마지막으로는 모든 패킷이 도달하더라도 66.249.95.234, 그 수 66.249.95.234는 필요가 있는지 여부에 따라 격렬하게 다른 행동 것입니다 :

  • 패킷 전달
  • 자체적으로 주소가 지정된 패킷에서 ICMP 오류 생성
  • 다른 사람에게 주소가 지정된 패킷에서 ICMP 오류 생성

세 가지 경우 중 하나에서 자동으로 패킷을 삭제하도록 선택하면 많은 네트워크 진단 도구가 중단 될 수 있지만 일부 시스템 관리자는 그렇게하지 않습니다.


0

네트워크의 보안이 꾸준히 증가함에 따라 많은 사람들이하는 한 가지 쉬운 일은 기본적으로 ICMP 프로토콜의 측면을 비활성화하는 것입니다. 이렇게하면 추적 경로에 응답하고 홉에서 FQDN을 반환하지 못합니다. 때때로 관리자는 핑조차도 작동하지 않는 것을 잠급니다. 이것은 관련된 시스템 관리자의 결정입니다.

또한 시스템이 광범위한 네트워킹로드를 처리 할 가능성이 있으며 ICMP는 일반적으로 실제 데이터와 비교하여 처리 할 때 우선 순위가 매우 낮습니다.


5
이것은 실제로 질문에 대답하지 않습니다. 문제는 traceroute와 ping이 모두 ICMP를 사용하는 경우 ping이 실패하고 traceroute가 성공하는 이유입니다.
MaQleod 2019 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.