สามบรรทัดในโปรไฟล์ดูเหมือนจะปิดการบีบอัดทั้งหมด แต่จริง ๆ แล้วมีเพียงบรรทัดเดียวที่ทำเช่นนั้น ความแตกต่างนี้สำคัญเพราะคำเตือนที่คุณต้องการให้เงียบลงเป็นเพียงอาการ ขณะที่แนวนโยบายคือสิ่งที่ตัดสินว่าอีกฝั่งยังสามารถบีบอัดได้หรือไม่ การเปรียบเทียบตัวเลือกบนแกนเดียว คือสิ่งที่แต่ละตัวอนุญาตหลังการเปลี่ยนแปลง จะขจัดความกำกวมส่วนใหญ่ออกไป ตัวเลือกที่คุณต้องการขึ้นอยู่กับว่าคุณกำลังย้ายระบบหรือกำลังเข้าที่เข้าทาง

สามแนวนโยบายที่ดูคล้ายกันในไฟล์กำหนดค่า

แต่ละตัวเลือกตอบคำถามคนละข้อ allow-compression no ปฏิเสธเพย์โหลดที่บีบอัดแล้วโดยตรง allow-compression asym แตกข้อมูลที่เข้ามาและไม่เคยบีบอัดข้อมูลที่ออกไป ส่วน comp-lzo no แบบเก่ายังเปิดช่องให้อีกฝั่งสั่ง push เพื่อเปิดการบีบอัด มีเพียงตัวแรกเท่านั้นที่เป็นนโยบายที่เซิร์ฟเวอร์ข้ามไม่ได้

เขียนทั้งสามลงในตารางก่อนตัดสินใจ เพราะชื่อใกล้กันพอที่จะทำให้ผู้ตรวจเข้าใจผิด สองตัวยังคงเรียกใช้โค้ดแตกข้อมูลกับแพ็กเก็ตที่ได้รับ และนั่นคือประเด็นของข้อโต้แย้งด้านความปลอดภัย ตัวที่สามถอดความสามารถออกไปแทนที่จะจำกัดทิศทางของมัน หากบันทึกการเปลี่ยนแปลงระบุว่าปิดการบีบอัดแล้ว จะมีเพียงแถวเดียวที่ตรงกับประโยคนั้น

คำเตือนที่ทำให้เริ่มการสอบสวนไม่ใช่เป้าหมาย การทำให้เงียบลงโดยปล่อยให้แนวนโยบายแบบผ่อนปรนยังอยู่ จะได้บันทึกที่สะอาดและการเปิดเผยที่ไม่เปลี่ยนไป

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

no ในตัวเลือก LZO แบบเก่าหมายถึงอะไร

ในตัวเลือก LZO ที่เลิกใช้แล้ว no จะปิดการบีบอัดฝั่งท้องถิ่นโดยไม่ห้ามอีกฝั่งเปิดใช้งานในที่ที่นโยบายอนุญาต ความไม่สมมาตรนี้คือเหตุผลที่การย้ายโปรไฟล์ไปสู่การปฏิเสธอย่างเข้มงวดเปลี่ยนพฤติกรรมในแบบที่การทดสอบในห้องแล็บด้วยเซิร์ฟเวอร์เดียวอาจไม่เคยเปิดเผย

ข้อกังวลด้านความปลอดภัยเป็นเงื่อนไข ไม่ใช่แบบสัมบูรณ์ เมื่อผู้โจมตีสามารถวางข้อความธรรมดาที่เลือกไว้ข้างความลับและสังเกตว่าการบีบอัดเปลี่ยนขนาดของข้อมูลที่เข้ารหัสอย่างไร ก็มีช่องทางข้อมูลอยู่ การเปลี่ยนจาก LZO เป็น LZ4 เปลี่ยนอัลกอริทึมและการใส่เฟรม ไม่ใช่กลไกนั้น

ดังนั้นกรอบที่ซื่อตรงจึงเกี่ยวกับสิ่งที่คุณยินยอมให้ทำได้ ไม่ใช่ว่าอัลกอริทึมใดกำลังได้รับคำแนะนำในขณะนี้ การปฏิเสธอย่างเข้มงวดเป็นตัวเลือกเดียวที่ไม่ขึ้นกับความร่วมมือของอีกฝั่ง

การรับอย่างเดียวเป็นสถานะระหว่างการย้ายระบบ ไม่ใช่ปลายทาง

การยอมรับแบบไม่สมมาตรมีอยู่เพื่อให้ฝั่งหนึ่งหยุดบีบอัดได้ ขณะที่อีกฝั่งยังคาดหวังสิ่งนั้น สะพานนี้ต้องมีวันสิ้นสุดและผู้รับผิดชอบ บันทึกว่าเพื่อนร่วมเครือข่ายใดยังส่งข้อมูลที่บีบอัดอยู่ เพราะนโยบายอนุญาตข้อมูลนั้นพอดี หากไม่มีรายการนั้น สถานะระหว่างการย้ายระบบจะกลายเป็นการกำหนดค่าถาวรด้วยแรงเฉื่อย

ไคลเอนต์ไม่สามารถบังคับเซิร์ฟเวอร์ที่เข้ากันไม่ได้ให้เลิกใช้การใส่เฟรมแบบเก่าได้ด้วยการแก้ไขไฟล์ของตนเอง ทิศทางของ push ถูกตัดสินบนเซิร์ฟเวอร์ ดังนั้นการย้ายระบบจึงสิ้นสุดลงจริงในการกำหนดค่าของเซิร์ฟเวอร์และไฟล์ต่อไคลเอนต์

โหมด stub รักษาการใส่เฟรมไว้แต่ข้ามงานบีบอัดเอง และไม่ใช่สิ่งที่เทียบเท่าโดยตรงกับตัวเลือกเก่า ทดสอบกับเพื่อนร่วมเครือข่ายที่เก่าที่สุดที่คุณยังต้องรองรับก่อนตัดสินใจเลือก

ที่ที่ offload ของช่องสัญญาณข้อมูลเปลี่ยนคำตอบ

offload ของช่องสัญญาณข้อมูลย้ายการจัดการแพ็กเก็ตเข้าไปในเคอร์เนล และโปรไฟล์ที่ยังพึ่งพาการใส่เฟรมแบบบีบอัดอาจไม่เข้ากับเส้นทางนั้น ความล้มเหลวไม่ได้ดังก้องเสมอ: ไคลเอนต์เชื่อมต่อได้แล้วจากนั้นก็ทำงานต่างจากอุโมงค์ที่คุณทดสอบ

ตรวจสอบว่าการใช้งานใดทำงานอยู่ก่อนและหลังการเปลี่ยนแปลง ไม่ใช่แค่ว่าการเชื่อมต่อสำเร็จหรือไม่ เมื่อเส้นทางที่ใช้ offload ปฏิเสธการใส่เฟรมแบบบีบอัด นโยบายปฏิเสธอย่างเข้มงวดกับการติดตั้งที่ใช้ offload จะสอดคล้องกัน ขณะที่นโยบายแบบผ่อนปรนกับการติดตั้งที่ใช้ offload ไม่สอดคล้องกัน

การรวมกันนั้นสมควรได้รับการทดสอบของตัวเอง เพราะที่นั่นคือที่ที่ไฟล์ที่ดูถูกต้องกลับไม่ใช่ไฟล์ที่ถูกใช้อย่างเงียบ ๆ เปรียบเทียบสถานะที่เจรจากับเจตนาที่บันทึกไว้ในโปรไฟล์ เพราะมีเพียงหนึ่งในสองอย่างเท่านั้นที่มองเห็นได้ในบันทึก

เลือกนโยบาย แล้วตรวจสอบผลลัพธ์ที่เจรจาได้

เลือกการปฏิเสธอย่างเข้มงวดเมื่อคุณเปลี่ยนได้ทั้งสองฝั่ง เลือกการยอมรับแบบไม่สมมาตรเมื่อยังทำไม่ได้ และเลือกการบีบอัดเต็มรูปแบบเมื่อคุณอธิบายได้ว่าทำไมการเปิดเผยจึงยอมรับได้ จากนั้นตรวจสอบสิ่งที่เจรจากัน ไม่ใช่สิ่งที่ไฟล์ระบุ บันทึกที่เงียบกว่าจะเป็นหลักฐานก็ต่อเมื่อตรงกับนโยบายที่คุณตั้งใจจะใช้งาน

เก็บการตัดสินใจไว้ข้างโปรไฟล์ที่ใช้บังคับ พร้อมวันที่และเพื่อนร่วมเครือข่ายที่ยังได้รับการยกเว้น ผ่านไปครึ่งปี บันทึกนั้นคือความแตกต่างระหว่างข้อยกเว้นที่ตั้งใจกับอุบัติเหตุที่ไม่มีใครระบุวันที่ได้ เขียนไว้ในที่เก็บเดียวกับโปรไฟล์ เพื่อให้ผู้แก้ไขคนถัดไปเห็นเหตุผลก่อนคำสั่ง

บทความที่เกี่ยวข้อง