Traceroute 또는 tcptraceroute를 사용하여 60바이트보다 긴 TCP 패킷을 보낼 수 없습니다.

Traceroute 또는 tcptraceroute를 사용하여 60바이트보다 긴 TCP 패킷을 보낼 수 없습니다.
[root@host33cn ~]# traceroute -M tcp -f 255 -m 255 -q 10 -w 1 -p 9101 10.11.1.6 1400
traceroute to 10.11.1.6 (10.11.1.6), 255 hops max, 60 byte packets
255  host05cn.zen.com (10.11.1.6)  0.112 ms  0.133 ms  0.070 ms  0.156 ms  0.091 ms  0.098 ms  0.072 ms  0.106 ms  0.113 ms  0.075 ms
[root@host33cn ~]#

위의 명령을 사용하여 1400바이트를 보내보세요. 인터페이스 MTU는 1500입니다. 그러나 여전히 TCP의 경우 기본 60바이트 패킷을 보냅니다.

60바이트보다 작은 1000개의 패킷을 시도했습니다. 비록 여전히 데이터 패킷의 60바이트만 차지하지만.

내가 놓친 것이 있나요?

답변1

tcp 메소드( -M tcp)를 사용할 때, Traceroute는 기본적으로 TCP SYN 패킷을 사용합니다. ~에서 경로 추적(8):

tcp -T

    방화벽을 우회하도록 설계된 잘 알려진 최신 방법입니다. 일정한 대상 포트(기본값 80, http)를 사용합니다.

    네트워크 경로에 일부 필터가 있는 경우 "가능성이 없는" UDP 포트(기본 방법의 경우) 또는 심지어 icmp echo(icmp의 경우)가 필터링되고 전체 추적 경로가 이러한 방화벽 중지에서 차단됩니다. 네트워크 필터를 우회하려면 허용된 프로토콜/포트 조합만 사용해야 합니다. 특정 메일 서버를 추적하면-T -p 25닿아도 닿을 수 있어-I할 수 없습니다.

    이 방법은 대상 호스트의 응용 프로그램이 우리의 프로브를 볼 수 없도록 하는 잘 알려진 "반 개방형 기술"을 사용합니다. 일반적으로 tcp syn이 전송됩니다. 비수신 포트의 경우 TCP 재설정을 수신하면 완료됩니다. 활성 수신 포트의 경우 tcp syn+ack를 수신하지만 예상되는 tcp ack 대신 tcp 재설정으로 응답하므로 애플리케이션이 인식하지 못하더라도 원격 TCP 세션이 삭제됩니다.

알 수있는 바와 같이이 게시물, TCP SYN 패킷에는 페이로드가 포함되어서는 안 됩니다. 이는 아마도 이 경우 Traceroute가 패킷 길이를 무시하는 이유일 것입니다.

Traceroute는 이 경우 사용자 혼란을 피하기 위해 좀 더 명확하게 경고를 표시하거나 실행을 거부할 수 있습니다.

매뉴얼 페이지에는 어떤 경우에는 패킷 길이를 무시할 수 있다고 언급되어 있습니다.

    선택 과목packet_len`gth는 프로브 패킷의 전체 크기입니다(기본값은 IPv4의 경우 60바이트, IPv6의 경우 80바이트). 어떤 경우에는 지정된 크기를 무시하거나 최소값으로 늘릴 수 있습니다.

    (위의 "`"는 매뉴얼 페이지에 나타나며 오타인 것 같습니다.)

관련 정보