นอกเหนือจากคำตอบที่ดีอื่น ๆ เมื่อเร็ว ๆ นี้ฉันต้องใช้ตาราง mangle เพื่อปรับความคลาดเคลื่อนของ MTU (หน่วยการส่งข้อมูลสูงสุด) ที่เกิดจากการรับส่งข้อมูลผ่าน PPPoE, PPP และ ATM แต่ละเครื่องเพิ่มโอเวอร์เฮดซึ่งช่วยลดภาระสำหรับ IP จาก 1500 bytes ปกติของเฟรมอีเธอร์เน็ต
ระบบที่ปลายแต่ละด้านของไพพ์ตามปกติจะมี MTU เป็นค่าเริ่มต้นปกติที่ 1500 ดังนั้นพวกเขาจึงพยายามส่งเฟรม IP ที่มีขนาดใหญ่ เนื่องจากขนาดของโหลดที่แท้จริงที่มีอยู่มีขนาดเล็กลงสิ่งนี้อาจทำให้เกิดการแตกแฟรกเมนต์ของแพ็กเก็ตยกเว้นว่าบ่อยครั้งที่ผู้ส่งจะขอให้แพ็กเก็ตไม่แยกส่วนและเป็นเช่นนั้น
ในโลกอุดมคติการค้นพบเส้นทาง MTU จะอนุญาตให้จุดปลายปรับ MTU ตามต้องการ แต่การค้นพบนี้ขึ้นอยู่กับ ICMP และเครือข่ายที่อยู่นอกการควบคุมของฉันมักถูกกำหนดค่าให้วาง ICMP ด้วยเหตุผลด้านความปลอดภัย
ทางเลือกเดียวคือใช้แพ็กเก็ต mangling ในเราเตอร์ของฉันเพื่อปรับเปลี่ยนแพ็คเก็ต TCP SYN เพื่อลดขนาดเซกเมนต์สูงสุดที่เลเยอร์การขนส่ง:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
เรื่องแบบนี้ยุ่งและควรหลีกเลี่ยง แต่ฉันไม่มีทางเลือกอื่นและวิธีนี้ก็แก้ปัญหาได้
หวังว่าตัวอย่างเหล่านี้จะช่วยได้เช่นเดียวกับหน้าคน
iptables(8)
หน้าคนมีทั้งหมดของข้อมูลที่คุณต้องการรวมทั้งตัวอย่างที่ดีของการใช้งานหลายตารางฉีก