Anda memiliki gejala masalah MTU : beberapa koneksi TCP membeku, lebih atau kurang dapat direproduksi untuk perintah atau URL yang diberikan tetapi tanpa pola keseluruhan yang mudah terlihat. Gejala utamanya adalah sesi ssh interaktif berfungsi dengan baik tetapi transfer file hampir selalu gagal. Selain itu pppoe adalah pembawa masalah MTU nomor satu bagi pengguna rumahan. Jadi saya meresepkan cek MTU.
Apa itu?
The m aximum t ransmission u nit adalah ukuran maksimum paket melalui link jaringan. MTU bervariasi dari media transportasi ke media transportasi, misalnya kabel Ethernet dan wifi (802.11) memiliki MTU yang berbeda, dan tautan ATM (yang membentuk sebagian besar infrastruktur jarak jauh) masing-masing memiliki MTU mereka sendiri.
PPPOE adalah protokol terenkapsulasi, yang berarti bahwa setiap paket terdiri dari beberapa byte header diikuti oleh paket yang mendasarinya - sehingga menurunkan ukuran paket maksimum dengan ukuran header.
IP memungkinkan router untuk memecah paket jika mereka mendeteksi bahwa mereka terlalu besar untuk hop berikutnya, tetapi ini tidak selalu berhasil. Secara teori, MTU yang tepat harus ditemukansecara otomatis , tetapi ini juga tidak selalu berhasil. Khususnya di Google, Network Manager tidak selalu bertindak dengan benar pada informasi MTU yang diperoleh dari penemuan MTU, tapi saya tidak tahu versi apa yang terpengaruh atau apa kasus penggunaan yang bermasalah.
Bagaimana mengukurnya.
Jika Anda memilikitracepath
dari iputils Linux , jalankan tracepath 8.8.8.8
untuk melihat MTU melalui jalur ke server DNS Google. Jika versi Anda traceroute
memiliki --mtu
opsi, jalankan traceroute -n --mtu 8.8.8.8
. Lihat Temukan MTU antara saya dan IP tujuan untuk opsi lebih lanjut.
Karena tidak memiliki alat otomatis, Anda dapat mengukur secara manual. Coba kirim paket ping dengan ukuran tertentu ke host luar yang meresponsnya, misalnya ping -c 1 -s 42 8.8.8.8
(di Linux; di sistem lain, lihat dokumentasi ping
perintah Anda ). Paket Anda harus melewati untuk nilai cukup kecil dari 42 (jika 42 tidak bekerja, ada sesuatu yang menghalangi ping.) Untuk nilai yang lebih besar, paket tidak akan bisa melewatinya. 1464 adalah nilai maksimum tipikal jika infrastruktur yang membatasi adalah jaringan Ethernet lokal Anda. Jika Anda beruntung, ketika Anda mengirim paket yang terlalu besar, Anda akan melihat pesan seperti Frag needed and DF set (mtu = 1492)
. Jika Anda tidak beruntung, teruslah bereksperimen dengan nilai sampai Anda menemukan apa yang maksimum, kemudian tambahkan 28 ( -s
tentukan ukuran payload, dan ada 28 byte header di samping itu). Lihat jugaCara Mengoptimalkan Koneksi Internet Anda menggunakan MTU dan RWIN di forum Ubuntu.
Cara mengaturnya (ganti 1454 dengan MTU yang telah Anda tentukan, dan eth0
dengan nama antarmuka jaringan Anda)
- Sebagai sekali saja (Linux): jalankan
ifconfig eth0 mtu 1454
- Permanen (Debian dan turunannya seperti Ubuntu, jika tidak menggunakan Network Manager): Edit
/etc/network/interfaces
. Tepat setelah entri untuk antarmuka jaringan Anda (setelah iface eth0 …
arahan), tambahkan baris denganpre-up ifconfig $IFACE mtu 1454
. Atau, jika alamat IP Anda statis, Anda dapat menambahkan mtu 1454
parameter ke iface eth0 inet static
arahan.
Permanen (Debian dan turunannya seperti Ubuntu, dengan atau tanpa Network Manager): Buat skrip yang disebut /etc/network/if-pre-up.d/mtu
dengan konten berikut dan menjadikannya dapat dieksekusi-dunia ( chmod a+rx
):
#!/bin/sh
ifconfig $IFACE mtu 1454
Sumber lebih lanjut