Terowong menggugurkan pemindahan besar tetapi melepaskan ping, jadi nasihat datang cepat: turunkan MTU. Pembaikan itu kadang-kadang berkesan, dan kemudian ia digunakan pada setiap profil di setiap rangkaian. Di situlah pembaikan bersasar bertukar menjadi cukai prestasi kekal. Perbandingan yang perlu dibuat ialah antara had sebenar laluan dan kos mengecilkan setiap paket di bawahnya.

Apa yang sebenarnya mengecil apabila anda menurunkan MTU

Setiap paket membawa pengepala sebelum membawa data anda. Pada laluan Ethernet 1500 bait, IPv4 dan TCP menggunakan 40 bait dan meninggalkan 1460 untuk muatan; enkapsulasi menambah pengepala IP, UDP dan terowong luar di atasnya, jadi belanjawan muatan dalaman menurun semula. Menurunkan MTU antara muka mengecilkan belanjawan itu dengan sengaja.

Kos adalah berkadar dengan bilangan paket, bukan bilangan bait. Fail yang sama dibahagikan kepada lebih banyak paket memerlukan lebih banyak gangguan, lebih banyak keputusan penghalaan dan lebih banyak pemprosesan setiap paket pada setiap peranti di sepanjang laluan. Pada penghala yang sudah hampir dengan had paket sesaatnya, itu adalah kelembapan sebenar dan bukan ralat pembundaran. Kos itu muncul walaupun pemindahan itu sendiri berjaya.

Sebab itulah MTU yang lebih kecil ialah jalan memutar bagi sesuatu kekangan, bukan pengoptimuman umum. Ia membeli kebolehpercayaan terhadap laluan yang tidak dapat membawa bingkai lebih besar, dan ia mengenakan overhed pada setiap paket yang tidak memerlukan pengecilan.

Bila MTU yang lebih kecil ialah pembaikan yang betul

Gejala klasiknya khusus: jabat tangan TCP selesai, respons kecil tiba, dan muat turun besar tersekat atau ditetapkan semula. Ping dengan bit jangan-serpihan pada 1472 bait gagal manakala ping 1400 bait berjaya, yang menunjuk kepada laluan yang tidak dapat membawa paket bersaiz penuh dan tidak menyampaikan mesej ICMP yang akan memberitahu penghantar supaya mengecilkan.

Penemuan MTU laluan bergantung pada mesej ICMP keperluan serpihan itu. Apabila tembok api menggugurkannya, penghantar terus mencuba semula paket besar itu dan sambungan kelihatan tergantung. Menurunkan MTU di sebelah terowong mengelakkan percubaan semula, dan itu ialah pembaikan sah bagi rangkaian tersebut.

Teknologi akses juga mengenakan hadnya sendiri: PPPoE biasanya terhad pada 1492, sesetengah laluan mudah alih dan DSL lebih rendah, dan terowong bersarang menolak overhed dua kali. Ukur laluan sebenar daripada menyalin nombor daripada panduan, dan ingat bahawa IPv6 memerlukan sekurang-kurangnya 1280 bait MTU pada setiap pautan yang membawanya, seperti yang ditetapkan RFC 8200.

Bandingkan tiga kawalan sebelum menukar satu

MTU, MSS dan penyerpihan ialah kawalan berbeza pada lapisan berbeza, dan menukar yang salah membiarkan gejala itu kekal.

ControlLayerWhat it changesWhere it misleads
Interface MTUIP linkLargest frame the interface will sendPenalizes every protocol, not just the one that failed
TCP MSS clampTCPSegment size advertised in the handshakeLeaves UDP and QUIC untouched
DF and fragmentationIPWhether a router may split a packetCan break path MTU discovery and security assumptions
Tunnel overheadEncapsulationInner MTU after outer headersMismatch shows up only for large inner packets

Menghadkan MSS selalunya pembaikan paling kurang invasif kerana ia hanya menjejaskan TCP dan membiarkan antara muka bebas untuk trafik lain. MTU antara muka yang lebih rendah lebih luas dan lebih mudah difikirkan, sebab itulah ia biasa pada penghala pengguna, tetapi ia mengenakan masalah satu protokol kepada setiap protokol.

Mematikan tingkah laku jangan-serpihan menyembunyikan gejala dengan membenarkan penyerpihan, dan ia biasanya memburukkan kependaman sambil memecahkan maklum balas yang akan menemui saiz yang betul. Elakkannya sebagai pembaikan kekal.

Ukur pertukaran itu, bukan satu nombor

Cari had laluan dengan prob jangan-serpihan, mulakan tinggi dan turun sehingga balasan tiba:

ping -M do -s 1472 203.0.113.10
ping -M do -s 1400 203.0.113.10
tracepath 203.0.113.10

Kemudian bandingkan tugas sebenar pada kedua-dua tetapan: pemindahan fail yang sama, titik akhir yang sama dan rangkaian yang sama. Catat masa penyiapan dan penghantaran semula, contohnya dengan nstat -az TcpRetransSegs, dan pantau CPU peranti jika terowong berakhir pada penghala kecil. Ujian daya pemprosesan sintetik yang singkat boleh terlepas kesesakan yang hanya muncul selepas beberapa megabait.

Pembilang paket akan naik selepas pengecilan kerana pemindahan yang sama kini menggunakan lebih banyak paket. Itu dijangka dan bukan bukti daya pemprosesan yang lebih tinggi. Bandingkan data aplikasi yang selesai, bilangan penghantaran semula dan responsif, bukan hanya kadar paket.

Perkenalkan perubahan itu secara berperingkat dan kekalkan skopnya

Catat nilai asal, tukar satu kawalan, dan ulang pengukuran sebelum menjadikannya kekal. Jika bukti tidak menunjukkan faedah, pulihkan nilai sebelumnya dengan perintah antara muka yang sama yang anda gunakan untuk menetapkannya:

ip link set dev wg0 mtu 1420
ip link set dev wg0 mtu 1500

Hadkan hasilnya kepada rangkaian yang memerlukannya. Profil yang mesti berfungsi pada Wi-Fi hotel, hotspot mudah alih dan LAN pejabat tidak sepatutnya mewarisi nilai terendah yang diperlukan oleh mana-mana daripadanya, melainkan klien tidak dapat mengesan laluan itu.

Nilai yang betul ialah MTU terbesar yang bertahan pada laluan, bukan yang terkecil yang menghilangkan gejala. Dokumentasikan laluan, hasil prob dan pengembalian, dan semak semula tetapan apabila rangkaian akses berubah.

Artikel berkaitan