สรุป
ค่า MTU เริ่มต้นป้องกันการถ่ายโอนข้อมูลสำหรับระบบเดียว การลดค่าด้วยตนเองทำให้สามารถถ่ายโอนข้อมูลได้อีกครั้ง แต่การปรับค่าด้วยตนเองนี้ไม่จำเป็นสำหรับระบบที่อยู่ติดกัน
พื้นหลัง
ฉันมีเซิร์ฟเวอร์สำรอง ฉันมีระบบ Raspberry Pi สองระบบในสถานที่ห่างไกล: ระบบหนึ่งอยู่ในสหราชอาณาจักรและอีกระบบหนึ่งอยู่ในแอลเบเนีย ควบคู่ไปกับ Albanian Pi คือ QNAP (เซิร์ฟเวอร์ไฟล์ที่ได้มาจาก Linux) ฉันมี IPSec VPN จากแอลเบเนียไปยังเครือข่ายเซิร์ฟเวอร์สำรองข้อมูล และ IPSec VPN อื่นจากสหราชอาณาจักรไปยังเครือข่ายเซิร์ฟเวอร์สำรองข้อมูล ทุกอย่างใช้ IPv4 แผนภาพนี้อาจช่วย:
|--แอลเบเนีย ปี
|<--IPSec-->|--เราเตอร์--|--Albania QNAP
เซ็นทรัล | | |--ระบบอื่นๆ
การสำรองข้อมูล--|--เราเตอร์--|
เซิร์ฟเวอร์ | | |
|<--IPSec-->|--เราเตอร์--|--UK Pi
|--ระบบอื่นๆ
ทั้งระบบ Pi และเซิร์ฟเวอร์สำรองทั้งหมดมี nftables โดยไม่มีกฎใดๆ และมีนโยบายเริ่มต้นเป็น ACCEPT
ระบบ RPi สองระบบ QNAP และเซิร์ฟเวอร์สำรองทั้งหมดมี MTU อีเธอร์เน็ตแบบมีสายเริ่มต้นที่ 1500 ตามที่คาดไว้
MTU ฝั่ง WAN ของเราเตอร์สำหรับแอลเบเนียคือ 1442 และสำหรับสหราชอาณาจักรคือ 1500 ตามตัวเลือก Path MTU Discovery ของเราเตอร์ ค่าเหล่านี้ถูกต้อง สำหรับไฟร์วอลล์ที่จัดการเครือข่ายที่มีเซิร์ฟเวอร์สำรองคือ 1500 และนี่ก็ถูกต้องเช่นกัน
ปัญหา
- ถ้าฉันถ่ายโอนบล็อกข้อมูลจาก Pi ในสหราชอาณาจักรไปยังเซิร์ฟเวอร์สำรองข้อมูลก็ใช้งานได้ดี
- ถ้าฉันถ่ายโอนบล็อกข้อมูลจาก QNAP ในแอลเบเนียไปยังเซิร์ฟเวอร์สำรอง ข้อมูลก็ใช้งานได้ดี
- หากฉันพยายามถ่ายโอนบล็อกข้อมูลจาก Pi ในแอลเบเนียไปยังเซิร์ฟเวอร์สำรอง ข้อมูลจะล้มเหลว
- ถ้าฉันลด MTU ของ Pi เป็น 1374 การถ่ายโอนจะสำเร็จ
ข้อมูลมากกว่านี้
นี่คือตัวอย่างประเภทของสิ่งที่ได้ผล/ล้มเหลว
# บนแอลเบเนีย Pi
dd bs=1M count=100 if=/dev/urandom >100M.dat
# บนเซิร์ฟเวอร์สำรองข้อมูล
ssh albanian_pi cat 100M.dat | pv >100M.dat
# การปรับ MTU บน Albanian Pi
ifconfig eth0 mtu 1500 # เริ่มต้นก่อนที่ฉันจะเริ่มเล่นซอ
ifconfig eth0 mtu 1374 # ค่าสูงสุดที่อนุญาตการไหลของข้อมูล
การถ่ายโอนเคยได้ผล แต่นั่นเกิดขึ้นก่อนการอัปเกรดจาก Stretch เป็น Buster ฉันไม่พบปัญหากับระบบ Pi อื่น ๆ ส่วนใหญ่ที่ฉันมี และโดยเฉพาะอย่างยิ่งไม่ใช่กับ UK Pi ที่ฉันกล่าวถึงในตอนต้นซึ่งตอนนี้กำลังเรียกใช้ Buster
ไม่มีใครในสำนักงานแอลเบเนียบ่นเกี่ยวกับปัญหาเครือข่าย
ฉันไม่ทราบว่ามีการตั้งค่าบิต "Do Not Fragment" สำหรับแพ็กเก็ตระหว่าง Albanian Pi และเซิร์ฟเวอร์สำรองข้อมูล ฉันไม่รู้ว่ามีอะไรขัดขวาง PMTU Discovery
สรุป:
- Albanian QNAP -> เซิร์ฟเวอร์สำรองข้อมูล: ดีทั้งหมด
- Albanian Pi -> เซิร์ฟเวอร์สำรอง: ล้มเหลวโดยไม่มีการลด MTU
- UK Pi -> เซิร์ฟเวอร์สำรอง: ดีทั้งหมด
ฉันมีวิธีแก้ปัญหา แต่ฉันไม่ควรลด MTU ในแต่ละระบบ
คำถาม
มีอะไรผิดปกติจริง ๆ และฉันจะวินิจฉัยและแก้ไขสาเหตุของปัญหาได้อย่างไร
คำแนะนำที่ได้รับอย่างสุดซึ้ง ขอบคุณ