เรามีอุปกรณ์ฝังตัวจำนวนมากติดตั้งไว้ที่ลูกค้าทุกคนโทรกลับบ้านเพื่อใช้บริการ OpenVPN ของเรา โดยทั่วไปแล้วใช้งานได้ดี แต่ลูกค้าของเราบางรายมีปัญหาเกี่ยวกับเส้นทางของ MTU ที่รุนแรง อิทธิพลของเราที่มีต่อลูกค้าในการแก้ไขปัญหาเครือข่ายของพวกเขานั้นมี จำกัด ดังนั้นเราจึงต้องการ OpenVPN เพื่อจัดการกับมัน โดยสรุปคำถามของฉันคือ:
ฉันจะลด MTU ที่มีพา ธ ต่ำของลูกค้าบางรายบนฐานต่อไคลเอ็นต์ได้อย่างไรโดยไม่ต้องใช้การตั้งค่าร่วมที่รองรับกรณีที่เลวร้ายที่สุดสำหรับลูกค้าทั้งหมด
โปรดทราบว่ากรณีที่เลวร้ายที่สุดของเรามันค่อนข้างแย่: เส้นทาง MTU 576 ลดลงทุกส่วนไม่แยกส่วนไม่ให้เกียรติ DF-bit คุณเห็นว่าทำไมฉันถึงไม่ต้องการแก้ปัญหานี้ในระดับโลก
OpenVPN manpageมีจำนวนของ MTU --link-mtu, --tun-mtu, --fragment and --mssfix
เกี่ยวข้องกับตัวเลือกที่โดดเด่นที่สุด แต่มันก็บอกว่า
--link-mtu [... ] เป็นการดีที่สุดที่จะไม่ตั้งค่าพารามิเตอร์นี้จนกว่าคุณจะรู้ว่าคุณกำลังทำอะไรอยู่
--tun-mtu [... ] วิธีที่ดีที่สุดคือใช้ตัวเลือก --fragment และ / หรือ --mssfix เพื่อจัดการกับปัญหาการปรับขนาด MTU
ดังนั้นผมจึงเริ่มการทดลองด้วย--fragment
และ--mssfix
แต่เร็ว ๆ นี้จะต้องตระหนักว่าอย่างน้อยในอดีตจะต้องตั้งค่าไม่เพียง แต่ฝั่งไคลเอ็นต์ แต่ยังฝั่งเซิร์ฟเวอร์ จากนั้นฉันก็ดูการกำหนดค่าฝั่งเซิร์ฟเวอร์ต่อไคลเอนต์ผ่านทาง--client-config-dir
แต่มันบอกว่า
ตัวเลือกต่อไปนี้ถูกต้องตามกฎหมายในบริบทเฉพาะลูกค้า: --push, --push-reset, - เส้นทาง, --ifconfig-push และ --config
ไม่มีการพูดถึงตัวเลือก MTU!
ดังนั้นนี่คือคำถามที่เฉพาะเจาะจงของฉัน:
- ทำไม
link-mtu
และtun-mtu
ท้อแท้แน่นอน? ปัญหาที่อาจเกิดขึ้นกับตัวเลือกเหล่านี้คืออะไร? โปรดทราบว่าฉันค่อนข้างสบายใจที่มีส่วนหัว IP ต่ำในระดับต่ำ - ตัวเลือก
link-mtu tun-mtu fragment mssfix
ใดที่ต้องทำมิเรอร์บนฝั่งเซิร์ฟเวอร์เพื่อให้ทำงานได้? - ซึ่งในตัวเลือกที่
link-mtu tun-mtu fragment mssfix
สามารถใช้ในการclient-config-dir
? - ในกรณีที่ทั้งสี่ตัวเลือกจะต้องทำมิเรอร์ฝั่งเซิร์ฟเวอร์และไม่สามารถใช้ภายใน
client-config-dir
: มีทางเลือกอื่นในการต่อสู้กับ MTU ที่มีพา ธ ต่ำต่อลูกค้าหรือไม่?
หมายเหตุ:
- บางส่วนของคำถามของฉันถูกถามเมื่อ 5 ปีที่แล้วที่นี่แต่พวกเขายังไม่ได้รับคำตอบจริงๆดังนั้นฉันกล้าทำซ้ำ
- เซิร์ฟเวอร์ OpenVPN ปัจจุบันคือ 2.2.1 บน Ubuntu 12.04 เรากำลังเตรียมการอัพเกรดเป็น 2.3.2 บน Ubuntu 14.04
- ไคลเอนต์ OpenVPN คือ 2.2.1 บนเดเบียน 7.6
- ฉันมีความสุขที่จะตรวจสอบเส้นทางของ MTU ของลูกค้าด้วยตนเอง
- ขณะนี้เราไม่สามารถทดสอบฝั่งเซิร์ฟเวอร์ได้มาก แต่เรากำลังสร้างเตียงทดสอบแยกที่สมบูรณ์ควรจะพร้อมในไม่ช้า
ฉันขอบคุณสำหรับคำแนะนำที่เป็นประโยชน์ใด ๆ
iptables
กฎเพื่อลด MSS ในแพ็กเก็ต SYN ทั้งหมดไปยังหรือจากที่อยู่ IP ไคลเอนต์นั้น