Tiga baris dalam profil kelihatan semuanya mematikan pemampatan, dan hanya satu yang benar-benar berbuat demikian. Perbezaannya penting kerana amaran yang ingin anda senyapkan hanyalah gejala, manakala dasar itulah yang menentukan sama ada pihak lain masih boleh memampatkan. Membandingkan pilihan pada satu paksi, iaitu apa yang dibenarkan setiap satu selepas perubahan, menghapuskan sebahagian besar kekaburan. Yang mana anda mahu bergantung pada sama ada anda berhijrah atau menetap.

Tiga dasar yang kelihatan serupa dalam fail konfigurasi

Setiap pilihan menjawab soalan yang berbeza. allow-compression no menolak muatan termampat secara langsung, allow-compression asym menyahmampat apa yang masuk dan tidak pernah memampatkan apa yang keluar, dan comp-lzo no lama meninggalkan ruang untuk push pihak lain mengaktifkan pemampatan. Hanya yang pertama ialah dasar yang tidak boleh diatasi oleh pelayan.

Tulis ketiga-tiganya dalam jadual sebelum memilih, kerana namanya cukup hampir untuk mengelirukan penyemak. Dua daripadanya masih menjalankan kod penyahmampatan pada paket yang diterima, dan itulah pokok hujah keselamatan. Yang ketiga membuang keupayaan itu dan bukan mengehadkan arahnya. Jika rekod perubahan menyatakan pemampatan dilumpuhkan, tepat satu baris memenuhi ayat itu.

Amaran yang memulakan siasatan bukanlah matlamatnya. Menyenyapkannya sambil membiarkan dasar permisif kekal menghasilkan log bersih dan pendedahan yang tidak berubah.

SettingWhat it permitsWhen it is the right answer
allow-compression noNo compressed payloads, and no compression framing under offloadBoth ends can be changed now
allow-compression asymDecompress inbound onlyA dated migration while peers catch up
comp-lzo noOff locally, still pushable by a peerLegacy compatibility you can still justify

Apa maksud no pada pilihan LZO lama

Pada pilihan LZO yang usang, no melumpuhkan pemampatan untuk bahagian tempatan tanpa melarang pihak lain mengaktifkannya di tempat dasar membenarkannya. Asimetri itulah sebabnya memindahkan profil kepada penolakan tegas mengubah tingkah laku dengan cara yang mungkin tidak pernah didedahkan oleh ujian makmal satu pelayan.

Kebimbangan keselamatan adalah bersyarat, bukan mutlak. Apabila penyerang boleh meletakkan teks biasa pilihan di sebelah rahsia dan memerhati bagaimana pemampatan mengubah saiz trafik tersulit, wujud saluran maklumat. Beralih daripada LZO kepada LZ4 mengubah algoritma dan pembingkaian, bukan mekanisme itu.

Jadi kerangka jujur menyentuh tentang apa yang anda sanggup benarkan, bukan algoritma yang disyorkan sekarang. Penolakan tegas ialah satu-satunya pilihan yang tidak bergantung pada kerjasama pihak lain.

Menerima sahaja ialah keadaan migrasi, bukan destinasi

Penerimaan asimetri wujud supaya satu pihak boleh berhenti memampatkan sementara pihak lain masih menjangkakannya. Ia jambatan, dan jambatan memerlukan tarikh tamat serta pemilik. Catat rakan mana yang masih menghantar trafik termampat, kerana dasar membenarkan trafik itulah. Tanpa senarai itu, keadaan migrasi menjadi konfigurasi kekal kerana inersia.

Klien tidak boleh memaksa pelayan yang tidak serasi meninggalkan pembingkaian lama dengan menyunting failnya sendiri. Arah push diputuskan di pelayan, jadi migrasi sebenarnya berakhir dalam konfigurasi pelayan dan fail setiap kliennya.

Mod stub mengekalkan pembingkaian sambil melangkau kerja pemampatan itu sendiri, dan ia bukan setara langsung pilihan lama. Ujinya terhadap rakan tertua yang masih perlu anda sokong sebelum memilih salah satu.

Di mana offload saluran data mengubah jawapannya

Offload saluran data memindahkan pengendalian paket ke dalam kernel, dan profil yang masih bergantung pada pembingkaian pemampatan mungkin tidak sesuai dengan laluan itu. Kegagalan tidak selalunya kuat: klien bersambung dan kemudian berkelakuan berbeza daripada terowong yang anda uji.

Semak pelaksanaan mana yang aktif sebelum dan selepas perubahan, bukan hanya sama ada sambungan berjaya. Apabila laluan offload menolak pembingkaian pemampatan, dasar penolakan tegas dan penggunaan offload bersetuju, manakala dasar permisif dan penggunaan offload tidak.

Gabungan itu wajar diuji sendiri, kerana di situlah fail yang kelihatan betul secara senyap bukan fail yang digunakan. Bandingkan keadaan yang dirundingkan dengan niat yang direkodkan dalam profil, kerana hanya satu daripadanya kelihatan dalam log.

Pilih dasar, kemudian sahkan hasil yang dirundingkan

Pilih penolakan tegas apabila anda boleh mengubah kedua-dua hujung, penerimaan asimetri apabila belum boleh, dan pemampatan penuh hanya apabila anda boleh menjelaskan mengapa pendedahan itu wajar. Kemudian sahkan apa yang dirundingkan dan bukan apa yang dikatakan fail. Log yang lebih senyap hanya bukti apabila sepadan dengan dasar yang anda mahu gunakan.

Simpan keputusan itu di sebelah profil yang berkaitan, bersama tarikh dan rakan yang masih dikecualikan. Enam bulan kemudian, nota itu ialah perbezaan antara pengecualian yang disengajakan dan kemalangan yang tiada siapa dapat tarikhkannya. Tulis di repositori yang sama dengan profil supaya penyunting seterusnya melihat sebabnya sebelum arahan itu.

Artikel berkaitan