Siapa yang memilih MTU WireGuard: wg-quick, kernel, atau Anda
WireGuard tidak menegosiasikan MTU. Alat penyiapan, manajer jaringan, atau baris konfigurasi Anda yang memutuskan, dan nilai bawaannya adalah dugaan tentang jalur, bukan pengukuran.
WireGuard tidak memiliki negosiasi MTU. Ia mengenkripsi apa pun yang diberikan antarmuka kepadanya dan mengirim hasilnya, dan jika paket yang dienkapsulasi melebihi jalur, paket itu dibuang atau difragmentasi di suatu tempat yang tidak dapat Anda lihat. Seseorang harus memilih MTU antarmuka, dan orang itu adalah alat yang menaikkan antarmuka.
Ada tiga kandidat, dan mudah tertukar.
Tiga tempat asal nilai tersebut
Nilai itu dapat diatur secara eksplisit dalam konfigurasi antarmuka, dihitung oleh alat penyiapan dari informasi rute, atau diatur oleh manajer jaringan mana pun yang memiliki antarmuka. Pemanggilan wg biasa tidak melakukan satu pun dari itu, karena wg hanya mengelola kunci dan peer. MTU berada pada antarmuka jaringan, itulah sebabnya ip link show wg0 adalah tempat Anda membacanya.
Jika Anda tidak yakin mana yang berlaku, baca MTU lebih dulu, lalu cari tahu siapa yang memulai antarmuka.
Putuskan berdasarkan siapa yang menjalankan antarmuka
Jika wg-quick yang memulainya, baris MTU eksplisit yang menang, dan jika tidak, ia menghitung nilai. Jika manajer jaringan yang memulainya, profil manajer itulah yang menentukan. Jika runtime kontainer atau klien penyedia yang memulainya, baca dokumentasi mereka alih-alih menganggap perilaku wg-quick.
Keputusannya bukanlah angka mana yang terbaik secara abstrak. Melainkan komponen mana yang benar-benar dapat Anda konfigurasi.
Apa yang dilakukan perhitungan bawaan
wg-quick mencari rute ke titik akhir peer, mengambil MTU antarmuka keluar itu, dan mengurangi biaya enkapsulasi. Dengan header luar IPv4 itu sekitar 60 byte; dengan IPv6 sekitar 80. Hasilnya dibatasi agar jalur 1500 byte menghasilkan 1420, bukan nilai yang hanya bekerja pada satu keluarga alamat. Itu nilai bawaan yang wajar, bukan pengukuran jalur Anda.
Ia tidak dapat mengetahui tentang terowongan berikutnya, tautan seluler, atau jalur ICMP yang tersaring.
Batas itu menyembunyikan pertanyaan nyata. Jika jalur Anda benar-benar 9000 byte dari ujung ke ujung, 1420 meninggalkan kinerja di atas meja, dan jika jalurnya 1400, 1420 sudah terlalu besar. Nilai bawaan adalah kompromi, dan harus diperlakukan seperti itu.
Ketika jalur berubah di bawah Anda
Laptop yang berpindah dari Ethernet ke Wi-Fi lalu ke hotspot ponsel mempertahankan MTU antarmuka yang dipakai saat mulai. Jalur luar mungkin sekarang lebih kecil, dan tidak ada yang menegosiasikan ulang. Terowongan bersarang memperburuknya, karena setiap lapisan mengurangi biaya sendiri dari anggaran yang sama. Nilai yang berhasil di kantor bukanlah nilai yang berhasil di bandara.
Handshake terbaru membuktikan kuncinya bekerja. Itu tidak membuktikan apa pun tentang apakah paket besar muat.
Uji satu angka setiap kali
Pertahankan aplikasi dan tujuan yang sama, ubah satu nilai, lalu ukur. ping -M do -s 1372 menguji paket 1400 byte dengan bit DF disetel, dan itulah bentuk uji yang Anda inginkan. Jika permintaan kecil berhasil dan yang besar macet, Anda punya masalah ukuran, bukan perutean.
Ubah MTU saja. Menyetel beberapa opsi paket sekaligus tidak memberi tahu Anda mana yang penting.
Dan jangan berharap perubahan MTU memperbaiki rute balik yang hilang, aturan penerusan, atau kegagalan DNS. Itu juga menghasilkan gejala tanpa lalu lintas, dan punya ujinya sendiri. manual wg-quick mendokumentasikan pemilihan otomatis.