Ketika saya melakukan ping situs remote dengan set bit DF dan ukuran paket yang terlalu besar untuk router saya, pesan "fragmentasi diperlukan" ICMP pertama dikirim dari router. Setelah itu pesan datang dari localhost saya.
Netstat -rC (di Linux) memungkinkan saya untuk melihat cache tabel routing, tetapi
1) Tampaknya menunjukkan MTU di bawah kolom yang disebut MSS (yang saya harapkan akan menjadi TCP MSS tautan yang lebih rendah)
2) Selalu menunjukkan nilai 1500
Localhost saya harus men-caching PMTU di suatu tempat sehingga dapat menghasilkan pesan yang diperlukan fragmentasi. Tapi bagaimana saya melihatnya?
Berikut adalah contoh di komputer saya (-n di netstat menghambat pencarian DNS terbalik):
[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 ~]#
EDIT: Sesuai saran:
ip route get to 212.58.244.69
memberi
212.58.244.69 via 217.155.134.6 dev eth1 src 217.155.134.4
cache mtu 1500 advmss 1460 hoplimit 64
Yang juga tampak salah karena MSS hanya 40 kurang dari MTU, yang merupakan antarmuka MTU daripada PMTU
sumber
netstat -rCn
tidak mengembalikan apa pun, tetapiwatch ip route get to $HOST
menunjukkan apa yang terjadi, termasuk cache TTL.ip route show cached
menunjukkan mungkin juga menampilkan sesuatu tetapi tidak.Jawaban:
Mungkin
sumber
Di bawah Windows, gunakan perintah netsh untuk melihat "cache tujuan" yang menyimpan informasi ini. Misalnya (dengan asumsi IPv4):
sumber
MSS harus 40 byte kurang dari MTU Anda (tidak termasuk header byte IPv4 (20 byte) dan tcp (20)). Jadi itu benar.
Pesan ICMP fragmentasi yang dibutuhkan dikirim oleh router, bukan server Anda.
sumber