tracepath
첫 번째 홉이 항상 두 번 표시되는 이유는 무엇입니까 ?
$ tracepath -n X.Y.Z.T
1?: [LOCALHOST] pmtu 1500
1: 172.16.5.2 0.586ms
1: 172.16.5.2 0.420ms
2: no reply
3: X.Y.Z.T 6.199ms reached
Resume: pmtu 1500 hops 3 back 3
그리고 traceroute
다음은 아닙니다:
$ traceroute -n X.Y.Z.T
traceroute to X.Y.Z.T (X.Y.Z.T), 30 hops max, 60 byte packets
1 172.16.5.2 0.672 ms 0.705 ms 0.723 ms
2 * * *
3 X.Y.Z.T 1.192 ms 1.220 ms 1.218 ms
그런데 172.16.5.2
게이트웨이 그룹에 있는 두 개의 물리적 라우터 중 하나인 논리적 게이트웨이 라우터는 다음과 같습니다 172.16.5.1
.
$ ip route get X.Y.Z.T
X.Y.Z.T via 172.16.5.1 dev ens160 src 172.16.5.X uid 1000
cache
EDIT0: MTU=1500 사용:
$ tracepath -n X.Y.Z.T -l 1500
1: 172.16.5.2 0.598ms
2: no reply
3: X.Y.Z.T 6.368ms reached
Resume: pmtu 1500 hops 3 back 3
MTU=1501 사용:
$ tracepath -n X.Y.Z.T -l 1501
1?: [LOCALHOST] pmtu 1500
1: 172.16.5.2 0.600ms
1: 172.16.5.2 0.394ms
2: no reply
3: X.Y.Z.T 6.139ms reached
Resume: pmtu 1500 hops 3 back 3
MTU=3*1500+1 사용:
$ tracepath -n X.Y.Z.T -l $((3*1500+1))
1?: [LOCALHOST] pmtu 1500
1: 172.16.5.2 0.653ms
1: 172.16.5.2 1.239ms
2: no reply
3: X.Y.Z.T 6.098ms reached
Resume: pmtu 1500 hops 3 back 3
답변1
이는 초기 패킷 길이가 너무 크기 때문입니다. 옵션을 사용해 -l
패킷 크기를 최대값으로 설정해 보세요. 당신의 MTU. mtu가 1500이면 -l 1500
괜찮지만 -l 1501
두 자리 숫자가 됩니다.
편집: 추적 경로가 pmtu 감지와 일치하지 않습니다. 여기는 1460일 때도 있고 1500일 때도 있습니다. 어떤 경우에도 더 낮은 값이 작동하며 실제로는 100만큼 작아야 합니다.
답변2
man tracepath
출력 부분 에 따르면
첫 번째 열에는 프로브의 TTL이 표시되고 그 뒤에 콜론이 표시됩니다. 일반적으로 TTL의 값은 네트워크의 응답에서 얻어지지만 때로는 응답에 필요한 정보가 포함되어 있지 않아 이를 추측해야 합니다. 이 경우 숫자 뒤에는 ?가 붙습니다.