Traceroute가 대상 이후에 추가 홉으로 종료되는 이유는 무엇입니까?

Traceroute가 대상 이후에 추가 홉으로 종료되는 이유는 무엇입니까?

트래픽을 차단하는 항목이 없으면 traceroute일반적으로 대상 IP를 마지막 홉으로 사용하여 종료됩니다. (이 경우 10.1.1.10)

보통은 traceroute이렇겠죠.

user@linux:~$ traceroute 10.1.1.10
traceroute to 10.1.1.10 (10.1.1.10), 30 hops max, 60 byte packets
 1  10.2.8.2 (10.2.8.2)  0.572 ms  0.692 ms  0.837 ms
 2  10.1.9.50 (10.1.9.50)  202.638 ms 10.1.9.78 (10.1.9.78)  202.547 ms 10.1.9.50 (10.1.9.50)  202.139 ms
 3  10.1.4.9 (10.1.4.9)  202.508 ms  202.483 ms 10.1.4.13 (10.1.4.13)  204.149 ms
 4  10.1.1.10 (10.1.1.10)  202.133 ms  202.100 ms  202.692 ms
user@linux:~$ 

최근 출력에 추가 홉(10.1.1.9)이 있는 문제가 발생했습니다 traceroute(홉 5 참조).

소스 IP 주소: 10.2.8.8

user@linux:~$ ifconfig | head -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.2.8.8  netmask 255.255.255.0  broadcast 10.2.8.255
user@linux:~$ 

대상 IP 주소: 10.1.1.10

추가 홉: 10.1.1.9 ???

user@linux:~$ traceroute 10.1.1.10
traceroute to 10.1.1.10 (10.1.1.10), 30 hops max, 60 byte packets
 1  10.2.8.2 (10.2.8.2)  0.572 ms  0.692 ms  0.837 ms
 2  10.1.9.50 (10.1.9.50)  202.638 ms 10.1.9.78 (10.1.9.78)  202.547 ms 10.1.9.50 (10.1.9.50)  202.139 ms
 3  10.1.4.9 (10.1.4.9)  202.508 ms  202.483 ms 10.1.4.13 (10.1.4.13)  204.149 ms
 4  10.1.1.10 (10.1.1.10)  202.133 ms  202.100 ms  202.692 ms
 5  10.1.1.9 (10.1.1.9)  6201.720 ms !H * *
user@linux:~$ 

그리고 홉 2, 3을 보면 추가 IP 주소(10.1.9.78 & 10.1.9.50)가 있습니다.

왜 이런 일이 일어났나요? 나는 전에 이런 것을 본 적이 없습니다.

서버 구성 때문일까요?

답변1

traceroute순차적으로 증가하는 TTL(Time-to-Live) 필드를 사용하여 UDP 또는 ICMP 에코 패킷을 전송하여 작동합니다. TTL은 패킷을 처리하는 각 라우터에 의해 1씩 감소됩니다.

프로브에 대한 두 가지 유형의 응답을 기대합니다.

  • 라우터가 TTL을 감소시킬 때 TTL이 0에 도달하면 ICMP Time-Exceeded 메시지로 응답하고 패킷을 전달하지 않습니다.
  • 최종 목적지는 ICMP Port-Unreachable 메시지(UDP의 경우) 또는 ICMP Echo-Response 메시지(ICMP의 경우)로 응답합니다.

두 번째 유형을 수신하면 대상에 도달했음을 알고 더 높은 TTL을 사용하여 프로브 전송을 중지합니다. 참고하세요그렇지 않다응답이 오는 주소에 따라 이 결정을 내립니다. 대상 주소에서 시간 초과 메시지를 받으면 계속해서 증가합니다.

따라서 추적에서는 라우터가 Time-Exceeded 및 대상 주소를 소스로 응답했음을 나타냅니다. 이는 아마도 NAT를 수행하는 라우터이고 대상 주소는 그 뒤에 있는 개인 주소에 해당하는 공용 주소임을 의미합니다.

그런데 이상한 점은 최종 응답이 A로부터 나왔다는 것입니다.다른주소. 일반적으로 응답이 라우터를 통해 되돌아갈 것으로 예상하므로 해당 개인 IP는 공용 IP로 다시 변환됩니다. 이 경우 주소가 10.1.1.10인 두 개의 행이 표시됩니다.

분명히 이 경우에는 10.1.1.9에서 원래 머신까지의 경로가 NAT 라우터를 통과할 필요가 없으므로 주소가 변환되지 않습니다. 비대칭 라우팅은 종종 비정상적인 traceroute결과를 생성할 수 있습니다. 이 경우 모든 시스템은 10.0.0.0/8 개인 주소 공간 내에 있으므로 직접 경로를 사용할 수 있다는 것은 전혀 놀라운 일이 아닙니다.

답변2

라우터의 구성을 모르면 확신할 수 있는 방법이 없습니다. 그러나 가능한 이유는 대상 NAT(역방향 NAT라고도 함) 또는 포트 전달(이 경우에는 노출된 호스트) 때문일 수 있습니다.

10.1.1.10 라우터는 전달/DNAT로 구성될 수 있습니다.모든 것개인 IP의 요청을 포함하여 10.1.1.9 호스트(=노출된 호스트)로 전송됩니다. 공용 IP에서는 실제 대상 10.1.1.9가 NAT 라우터에 의해 숨겨지기 때문에 이중 마지막 홉이 표시됩니다. 이 경우 요청만 DNATed되고 응답은 있는 그대로 전달될 수 있습니다.

10.1.1.10과 10.1.1.9가 모두 다른 곳에서 DNATed되고 후자가 기본 응답 주소일 수도 있습니다. 이는 RTT의 큰 증가를 설명합니다.

답변3

시간에 주의를 기울이십시오. Traceroute는 스위치나 라우터에 "처리 중"이라는 응답으로 소스에 응답하도록 요청하는 패킷을 보냅니다. 그러나 이 패킷은 TTL 및 응답 시간 구성에 따라 다양한 순서로 대상(이 예에서는 시스템)을 가져올 수 있으며, 사이의 장치 구성, 라우팅 테이블 및 네트워크 토폴로지에 따라 달라집니다.

관련 정보