IPv4 memecahkan semasa transit; IPv6 menghantar mesej paket terlalu besar sebagai gantinya
Hanya penghala IPv4 boleh memecahkan paket terlalu besar. IPv6 menjangka penghantar bertindak balas terhadap mesej paket terlalu besar, yang boleh dirosakkan oleh terowong atau peraturan ICMP yang ditapis.
Kegagalan IPv6 jauh lebih kerap disalahkan pada protokol daripada saiz paket yang menyebabkannya. Kedua-dua keluarga benar-benar mengendalikan paket terlalu besar secara berbeza, dan terowonglah yang menjadikan perbezaan itu penting. Penghala IPv4 boleh memecahkan paket apabila peraturan membenarkan, manakala penghala IPv6 tidak boleh memecahkan semasa transit sama sekali. IPv6 memberitahunya kepada penghantar, dan penghantar dijangka bertindak balas. Semua yang salah selepas itu bergantung pada sama ada mesej itu sampai.
Apa yang dilakukan setiap keluarga
Jadual itu ialah mekanisme dalam empat baris, dan satu baris menjelaskan sebahagian besar kekeliruan.
| Behaviour | IPv4 | IPv6 |
|---|---|---|
| Router fragments an oversized packet | Allowed while DF is clear | Never |
| Signal returned to the sender | ICMP Fragmentation Needed | ICMPv6 Packet Too Big |
| Size that must always work | 68 bytes | 1280 bytes |
| Fragmentation possible | Routers or source | Source only |
IPv6 tidak mempunyai pemecahan semasa transit dan tiada bendera DF untuk dibersihkan, jadi tiada apa untuk berpaut apabila paket terlalu besar. Penghantar perlu diberitahu, dan penghantar perlu mempercayainya.
Terowong menyempitkan laluan secara senyap
VPN menambah pengepala luar, dan dalam kes disulitkan data integriti juga, sebelum paket meninggalkan hos. Paket dalam boleh masuk ke dalam MTU antara muka yang dilihatnya manakala paket luar melebihi had pautan seterusnya, dan itulah sebabnya ini muncul dahulu dalam terowong. Turunkan MTU antara muka terowong dengan sengaja, atau ketatkan TCP MSS pada laluan, dan catat nombor yang anda pilih dan sebabnya.
Overhed ESP bergantung pada mod dan algoritma, jadi MTU terowong yang betul ialah pengiraan, bukan konvensyen. Apa pun yang anda pilih, ia mesti meninggalkan ruang untuk paket IPv6 dalam bersaiz penuh 1280 bait, kerana setiap pautan IPv6 wajib membawa sebanyak itu. Terowong yang tidak dapat membawa 1280 bait IPv6 bukan masalah penalaan; ia laluan rosak bagi keluarga itu. Kekangan itulah yang hilang apabila nilai MTU disalin daripada penggunaan yang hanya IPv4.
Mengapa gejalanya kelihatan seperti tersekat
Kegagalan itu bukan ralat bersih, dan itulah sebabnya ia salah didiagnosis. Jabat tangan TCP selesai, respons kecil tiba, dan sambungan tersekat sebaik sahaja respons besar atau muat naik besar bermula, kerana itulah paket pertama yang cukup besar untuk digugurkan. SSH bersambung dan kemudian tersekat pada output besar pertama, dan pengepala halaman dimuatkan manakala badannya tidak pernah selesai.
Jika mesej paket terlalu besar ICMPv6 ditapis, penghantar tidak pernah tahu dan terus mengulangi saiz yang sama. Itu lubang hitam, bukan laluan perlahan, dan tandanya ialah sempadan saiz yang berulang, bukan kehilangan rawak. Membenarkan trafik kawalan yang berkaitan ialah sebahagian daripada penggunaan IPv6 yang berfungsi, bukan ihsan.
Jangan matikan mesej yang menjadi sandaran laluan anda sendiri dan kemudian gambarkan hasilnya sebagai kerosakan IPv6. Hujah yang sama terpakai pada mesej Fragmentation Needed IPv4, yang sama tidak popular di kalangan penulis tembok api dan sama perlu.
Ukur sempadan itu, kemudian betulkan lapisan
Periksa daripada meneka: gunakan bendera don't-fragment pada IPv4 dan saiz muatan tetap pada IPv6, dan catat di mana respons berhenti. ping -M do -s 1472 dan ping -6 -s 1400 cukup untuk menetapkan bentuk masalah, dan tracepath melaporkan MTU laluan yang ditemui di sepanjang jalan.
Kemudian betulkan lapisan yang memiliki nombor itu: MTU antara muka terowong, pengapitan MSS untuk TCP, atau laluan itu sendiri. RFC 8200 ialah rujukan untuk peraturan IPv6, dan bacanya lebih singkat daripada insiden yang dicegahnya.
Uji keluarga yang benar-benar digunakan oleh aplikasi, kerana nama tindan berganda boleh menjawab pada satu keluarga dan tidak pada yang lain, dan aplikasi boleh bertukar selepas perubahan rangkaian. Catat alamat yang anda uji, kerana hasil terhadap rekod A tidak mengatakan apa-apa tentang rekod AAAA.
Anggap sempadan saiz sebagai bukti
Sempadan saiz yang berulang ialah salah satu daripada beberapa kerosakan rangkaian yang menghasilkan semula dengan tepat, pada bilangan bait yang sama, dari sumber yang sama, setiap kali. Itu menjadikannya hadiah dan bukan misteri, dan juga bermakna pembetulan boleh disahkan dan bukan diharapkan.
Tulis MTU yang ditemui, MTU terowong yang anda konfigurasikan dan ujian yang membuktikan perbezaan itu ke dalam tiket. Orang seterusnya akan bertemu aritmetik yang sama pada pautan lain.