Tempat saya tinggal sekarang, koneksi internet (kabel) menunjukkan gejala aneh berikut. Mereka tampaknya tidak tergantung apakah saya menggunakan nama host atau alamat IP.
- Ping bekerja
- Skype berfungsi
- Wget terhubung, tetapi tidak pernah menerima respons. (Terus menunggu di "Permintaan HTTP terkirim, menunggu respons" hingga batas waktu habis.)
- Kecuali untuk sebagian kecil domain, yang berfungsi.
- perintah ssh (
ssh host ls
) berfungsi. - Ssh Interaktif berfungsi untuk sementara waktu, tetapi hang dengan cepat, misalnya pada saat pertama
ls
- pada titik yang sama setiap waktu. - Di bawah Windows, semuanya berfungsi dengan baik.
Apa yang bisa saya lakukan untuk mendiagnosis ini lebih lanjut? Sejauh ini, saya baru saja melihat layer aplikasi. Karena ada koneksi internet yang jelas, pasti ada beberapa cara untuk menggali Firefox, tetapi saya ingin menjelaskan masalahnya terlebih dahulu.
Ini sangat mungkin terkait dengan paket-paket besar yang tidak berhasil. Saya menemukan bahwa ada MTU, tetapi mengaturnya untuk eth0 tidak menyelesaikan masalah saya. Saya pikir saya berada di belakang PPPOE dan router. IP eksternal sama pada Windows dan Linux.
Output dari beberapa perintah:
ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1024 qdisc mq state UP qlen 1000
link/ether 00:26:aa:aa:aa:61 brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether c4:17:aa:aa:aa:ff brd ff:ff:ff:ff:ff:ff
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 5e:49:aa:aa:aa:27 brd ff:ff:ff:ff:ff:ff
ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.4 metric 1
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
169.254.0.0/16 dev eth0 scope link metric 1000
default via 192.168.1.1 dev eth0 proto static
ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1024 qdisc mq state UP qlen 1000
link/ether 00:26:2d:78:ac:61 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.4/24 brd 192.168.1.255 scope global eth0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether c4:17:fe:3b:56:ff brd ff:ff:ff:ff:ff:ff
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 5e:49:01:03:55:27 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
inet6 fe80::5c49:1ff:fe03:5527/64 scope link
valid_lft forever preferred_lft forever
Saya dapat mengirim ping hingga ukuran 1468.
tim@milagros:/$ ping -M do -c 1 -s 1470 stackexchange.com
PING stackexchange.com (64.34.119.12) 1470(1498) bytes of data.
--- stackexchange.com ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
tim@milagros:/$ ping -M do -c 1 -s 1468 stackexchange.com
PING stackexchange.com (64.34.119.12) 1468(1496) bytes of data.
1476 bytes from stackoverflow.com (64.34.119.12): icmp_seq=1 ttl=52 time=176 ms
--- stackexchange.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 176.539/176.539/176.539/0.000 ms
tim@milagros:~/projekt/perl$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:26:2d:78:ac:61
inet addr:192.168.1.4 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:161 errors:0 dropped:0 overruns:0 frame:0
TX packets:194 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:143947 (143.9 KB) TX bytes:67727 (67.7 KB)
Interrupt:16
ifconfig
mengklaim bahwa MTU memang diatur dengan benar.Jawaban:
Tim, dengan hormat saya mendorong Anda untuk mengabaikan keraguan Anda tentang perubahan MTU. Masalah Anda memiliki masalah MTU yang ditulis di atasnya dan saya telah menjadi insinyur jaringan profesional selama lebih dari 15 tahun.
Untuk membuktikan apakah MTU membantu, lakukan tes dari mesin linux Anda menggunakan ping dengan
DF
bit yang diatur di header IP ...Saya menghitung
-s
parameter dengan asumsi PPPoE IP MTU Anda adalah 1300 byte. Jika ping itu berhasil, gunakan-s 1472
dan perhatikan apa yang terjadi ... jika ping itu gagal, Anda memiliki bukti konklusif bahwa ada masalah MTU (dengan asumsi Anda belum menyetel MTU tautan Ethernet Anda lebih rendah). FYI,-s 1472
akan mengirimkan permintaan echo-ethernet-payload 1500-byte;-M do -s 1472
mengirimkan muatan 1500-byte yang sama dengan set DF-bit di header IP.Ingat juga bahwa MTU harus disetel di kedua sisi tautan ... jadi Anda perlu melakukan ini pada modem Anda juga.
EDIT
Tim, Anda masih belum menjalankan perintah yang saya minta . Biarkan saya memberi Anda contoh apa yang salah dengan apa yang Anda lakukan (saya perlu memodifikasi host tujuan ke stackexchange.com, karena firewall untuk fragmentasi IP di jalur saya ke 8.8.8.8)
Contoh negatif (menggunakan flag ping Anda)
Pertanyaan retoris: bagaimana paket ping 64KB dapat melewati segmen ethernet 1500-byte? (lihat Catatan akhir A) Saya tidak dapat membantu kecuali Anda memposting informasi yang saya minta. Ini adalah contoh yang sama, dengan
ping -M do
Contoh positif
ping -M do
memberikan informasi tentang MTU maksimum di sepanjang jalan (dalam hal ini, kita tahu segmen ethernet hop pertama memilikiIP MTU
1500-byte).Catatan Akhir:
A. Ping Anda dapat diselesaikan sebagai serangkaian fragmen IP, karena secara default
ping
memungkinkan fragmentasi IP. Jika Anda mencoba menemukan ukuran paket maksimum yang akan melewati tautan, Anda harus memodifikasi header IP (yang saya ilustrasikan dengan-M do
) untuk memastikan Anda tidak mendapatkan banyak tanggapan terfragmentasi yang dijahit bersama di akhir. Menggunakanping -c 1 -s 65507 64.34.119.12
:sumber
ifconfig eth0 mtu 1232
, saya pikir), itu tidak mengubah masalah. Mengatur MTU jauh lebih rendah dari batas tidak, baik. Saya tidak menyadari bahwa saya harus mengatur MTU untuk sisi lain dari tautan - bagaimana Windows 7, yang tampaknya menyetel otomatis MTU-nya, melakukan itu?ifconfig eth0 mtu 1500
, ukuran ping tampaknya dibatasi pada 1468, yang, dengan