Linux (및 기타 모든 OS)에서 캐시 된 PMTU를 보는 방법


13

DF 비트가 설정되어 있고 라우터에 비해 너무 큰 패킷 크기로 원격 사이트를 ping하면 라우터에서 첫 번째 ICMP "조각 필요"메시지가 전송됩니다. 그 후 메시지는 내 로컬 호스트에서 온다.

Netstat -rC (Linux)에서는 라우팅 테이블 캐시를 볼 수 있지만

1) MSS라는 열 아래에 MTU를 표시하는 것 같습니다 (링크의 TCP MSS가 더 낮을 것으로 예상됩니다)

2) 항상 값을 1500으로 표시

로컬 호스트가 PMTU를 캐싱해야 조각화가 필요한 메시지를 생성 할 수 있습니다. 하지만 어떻게 알 수 있습니까?

다음은 내 컴퓨터의 예입니다 (netstat의 -n은 역방향 DNS 조회를 금지 함).

[root@vbcentos ~]# ping -c 4 -M do -s 1431 212.58.244.69
PING 212.58.244.69 (212.58.244.69) 1431(1459) bytes of data.
From 217.155.134.6 icmp_seq=1 Frag needed and DF set (mtu = 1458)
From 217.155.134.4 icmp_seq=2 Frag needed and DF set (mtu = 1458)
From 217.155.134.4 icmp_seq=2 Frag needed and DF set (mtu = 1458)
From 217.155.134.4 icmp_seq=2 Frag needed and DF set (mtu = 1458)

--- 212.58.244.69 ping statistics ---
1 packets transmitted, 0 received, +4 errors, 100% packet loss, time 1002ms

[root@vbcentos ~]# netstat -rCn
Kernel IP routing cache
Source          Destination     Gateway         Flags   MSS Window  irtt Iface
217.155.134.3   217.155.134.4   217.155.134.4   il        0 0          0 lo
217.155.134.4   212.58.244.69   217.155.134.6          1500 0          0 eth0
217.155.134.4   217.155.134.4   217.155.134.4   l     16436 0          0 lo
217.155.134.3   217.155.134.255 217.155.134.255 ibl       0 0          0 lo
217.155.134.4   212.58.244.69   217.155.134.6          1500 0          0 eth0
217.155.134.6   217.155.134.4   217.155.134.4   il        0 0          0 lo
212.58.244.69   217.155.134.4   217.155.134.4   l         0 0          0 lo
[root@vbcentos ~]#

편집 : 제안에 따라 :

ip route get to 212.58.244.69

준다

212.58.244.69 via 217.155.134.6 dev eth1  src 217.155.134.4
    cache  mtu 1500 advmss 1460 hoplimit 64

MSS가 mtu보다 40보다 작기 때문에 잘못된 것으로 보입니다 .PMTU가 아닌 인터페이스 mtu입니다.


1
Fedora 22에서는 netstat -rCn아무것도 반환하지 않지만 watch ip route get to $HOST캐시 TTL을 포함하여 현재 상태를 보여줍니다. ip route show cached아마 출력도 보여 주지만 그렇지 않습니다.
David Tonhofer

답변:


7

아마도

ip route get to 212.58.244.69

이것을 추가하기 위해 질문을 수정했습니다.
Neik

1

Windows에서 netsh 명령을 사용하여이 정보를 보유한 "대상 캐시"를보십시오. 예를 들어 (IPv4 가정) :

netsh interface ipv4 show destinationcache

1

MSS는 MTU보다 40 바이트 작아야합니다 (IPv4 (20 바이트) 및 tcp (20) 바이트 헤더는 포함하지 않음). 그래서 맞습니다.

ICMP 조각화 필요 메시지는 서버가 아닌 라우터에서 전송됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.