Score:1

NFS ยืนยันที่จะส่งแพ็กเก็ตผ่าน MTU nftables อาจเป็นทางออก

ธง id

ฉันมีการติดตั้ง NFS บนอุโมงค์ Strongswan IPSec ซึ่งห่อหุ้มอยู่ในอุโมงค์ 6to4 IPSec เป็นเพราะฉันต้องการการเข้ารหัสสำหรับทราฟฟิก NFS 6to4 เป็นเพราะผู้ให้บริการ VPS จะไม่กำหนดคำนำหน้า IPv6 ดั้งเดิมให้กับเซิร์ฟเวอร์ของฉัน เนื่องจากฉันมีปัญหา MTU กับอุโมงค์ 6to4 ฉันจึงต้องลด MTU บนอินเทอร์เฟซอุโมงค์ให้เหลือน้อยที่สุด (1280 â หากฉันพยายามตั้งค่าอะไรที่ต่ำกว่านี้ ฉันได้รับข้อความ "ข้อผิดพลาด: mtu น้อยกว่าค่าต่ำสุดของอุปกรณ์" ).

NFS ยังคงต้องการส่งแพ็กเก็ตผ่าน MTU ฉันรู้เรื่องนี้เพราะฉันมีกฎ nftables เพื่อบันทึกแพ็กเก็ต ESP:

    เอาต์พุตลูกโซ่ {
    ประเภทตัวกรองลำดับความสำคัญของเอาต์พุตของตะขอตัวกรอง; นโยบายยอมรับ;
    ip6 nexthdr esp ตัวนับแพ็กเก็ต 303367 ไบต์ 323173696 บันทึกการยอมรับ
}

ดังนั้นฉันจึงเห็นแพ็กเก็ตเหล่านี้เข้าสู่ระบบ syslog/journal:

29 มกราคม 21:41:18 เคอร์เนล nfsclient: IN= OUT=he-ipv6 SRC=fd48:2b50:6a95:a6db:0000:0000:0000:0004 DST=fdc8:d5f9:cbbf:b206:0000:0000:0000: 2001 LEN=1316 TC=0 HOPLIMIT=64 FLOWLBL=155038

(IPs ถูกเปลี่ยนเป็นส่วนตัวด้วยเหตุผลด้านความเป็นส่วนตัว)

ตอนนี้ฉันไม่เห็นแพ็กเก็ตที่บันทึกไว้ด้วย tcpdump เนื่องจากถูกกล่าวหาว่าเคอร์เนลถูกทิ้งเนื่องจากเกิน MTUฉันถือว่า NFS พยายามปฏิบัติตามการตั้งค่า MTU แต่ไม่ทราบว่าแพ็คเกจของมันจะถูกห่อหุ้มใน IPSec ดังนั้นแม้ว่า NFS จะสร้างแพ็กเก็ตที่มีขนาดต่ำกว่า 1280 ไบต์ ส่วนหัวของ ESP ที่เพิ่มเข้าไปจะได้รับแพ็กเก็ตมากกว่า MTU ที่ตั้งไว้ ฉันยังสงสัยว่า NFS ตั้งค่าสถานะ DF บนแพ็กเก็ต เพราะมิฉะนั้นการแยกส่วนจะทำงานได้ (ผมทดสอบด้วย ping6 -M ต้องการ และแพ็กเก็ตที่แยกส่วนผ่านไป) ดังนั้นฉันจึงไม่สามารถลด MTU ได้ NFS ยืนยันที่จะส่งแพ็กเก็ตที่จะผ่าน MTU เมื่อเข้ารหัสและแม้แต่ตั้งค่าสถานะ DF

ตอนนี้ฉันทำอะไรได้บ้าง สิ่งต่อไปนี้ที่ฉันคิดเกี่ยวกับ แต่ไม่รู้วิธีการใช้:

  1. กำหนดขนาดแพ็กเก็ตสูงสุดสำหรับ NFS เช่น ด้วยตัวเลือกการเมานต์ แต่ฉันไม่คิดว่าจะมีการตั้งค่าดังกล่าว ฉันค้นหาแล้ว
  2. กำหนดค่า Strongswan เพื่อจัดการกับสถานการณ์ แต่ฉันไม่พบตัวเลือกดังกล่าวเช่นกัน
  3. ตั้งกฎ nftables ที่แจ้ง NFS ว่าควรสร้างแพ็กเก็ตที่มีขนาดเล็กลง เช่น. รายงาน MTU ที่ต่ำกว่าสำหรับ NFS เมื่อค้นหา - ไม่ทราบว่าเป็นไปได้หรือไม่
  4. ลบแฟล็ก DF ออกจากแพ็กเก็ตเพื่อบังคับให้แยกส่วน ไม่ทราบว่าต้องทำอย่างไรครับ หรือเป็นไปได้ครับ

ฉันคิดว่า nftables เป็นวิธีที่จะไป แต่ถ้าสามารถแก้ไขได้ในระดับ NFS ก็จะดียิ่งขึ้น ฉันยังชื่นชมวิธีแก้ปัญหาด้วย iptables ฉันสามารถค้นหาสิ่งที่เทียบเท่ากับ nftables

เนื่องจากมีการถามในความคิดเห็น ฉันจึงให้ข้อมูลเกี่ยวกับอินเทอร์เฟซของฉัน

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP โหมด DEFAULT กลุ่มเริ่มต้น qlen 1000
    ลิงค์/อีเธอร์ aa:00:11:4d:f7:01 brd ff:ff:ff:ff:ff:ff
4: he-ipv6@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1280 qdisc noqueue state UNKNOWN mode DEFAULT กลุ่มเริ่มต้น qlen 1000
    ลิงค์/นั่ง 192.168.32.84 เพียร์ 216.66.84.42

และนี่คืออุโมงค์ (อุโมงค์ไอพี):

sit0: ipv6/ip remote ใดๆ ในเครื่อง ttl ใดๆ 64 nopmtudisc 6rd-prefix 2002::/16
he-ipv6: ipv6/ip ระยะไกล 216.66.84.42 ท้องถิ่น 192.168.32.84 ttl 255 6rd-prefix 2002::/16

(เปลี่ยน IPv4 สาธารณะของฉันเป็นที่อยู่ส่วนตัว แต่ในความเป็นจริง ฉันมีที่อยู่ที่กำหนดเส้นทางได้ทั่วโลกสำหรับ ท้องถิ่น; 216.66.84.42 เป็นเกตเวย์อุโมงค์ HE 6to4 ซึ่งเป็นที่รู้จักดีจึงทิ้งไว้ที่นี่)

และนี่คือเส้นทางเริ่มต้นที่ใช้สำหรับการรับส่งข้อมูล:

ค่าเริ่มต้นผ่าน fd48:2b50:6a95:a6db::1 dev he-ipv6 metric 1024 onlink pref medium

ดังนั้นแอปพลิเคชันเชื่อว่าแพ็กเก็ตของพวกเขาจะออกไป เขา-ipv6ซึ่งมี MTU เท่ากับ 1280 แต่แพ็กเก็ตของแพ็กเก็ตจะถูกห่อหุ้มใน IPSec ESP ก่อน จากนั้นจึงส่งผ่าน เขา-ipv6 อุโมงค์. ผลลัพธ์คือแพ็กเก็ตข้อมูล NFS ที่เข้ารหัสด้วย IPSec ซึ่งห่อหุ้มอยู่ในแพ็กเก็ต 6to4 ซึ่งตัวมันเองออกไปที่ eth0 อินเตอร์เฟสไปยัง 216.66.84.42 (เกตเวย์ HE)

drookie avatar
za flag
บิต DF ไม่ได้ใช้โดยตรงกับแพ็กเก็ต reincapsulating - เคอร์เนลสแต็กของเครือข่ายสามารถคัดลอกมันได้จริงๆ หรือสามารถข้ามมันไปบนแพ็กเก็ตที่สร้างขึ้นใหม่ซึ่งบรรจุเพย์โหลดของ DF'ed ดังนั้นเคอร์เนลหลังสามารถแยกส่วนแม้ว่าเพย์โหลดจะจำกัดก็ตาม . ดังนั้นการวินิจฉัยของคุณจึงไม่สมบูรณ์เป็นอย่างน้อย อย่าเล่นกับ MTU เล่นด้วยการคัดลอกบิต DF
us flag
โปรดแสดงผลลัพธ์ของ `ip link` และระบุว่าอินเทอร์เฟซใดที่ใช้สำหรับการรับส่งข้อมูลนี้
MegaBrutal avatar
id flag
@TeroKilkanen เจ้าหนู ขอบคุณสำหรับความคิดเห็นของคุณ! ฉันแก้ไขโพสต์ของฉันด้วยอินเทอร์เฟซและรายละเอียดอุโมงค์ของฉัน กรุณาถามหากคุณจำเป็นต้องรู้อะไรอีก

โพสต์คำตอบ

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