ทดสอบว่ากรอบจัมโบ้ทำงานได้จริงหรือไม่


28

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

ฉันเป็นโฮสต์ ESXi กับ Ubuntu VM ซึ่งติดตั้ง Dell MD3000i ผ่าน iSCSI ฉันสงสัยว่าเฟรมจัมโบ้จะไม่เปิดใช้งานบนสวิตช์และไม่สามารถเข้าถึงผู้ดูแลระบบได้อย่างง่ายดาย ฉันมีตัวเลือกในการเชื่อมต่อดิสก์อาร์เรย์โดยตรงกับโฮสต์ ESXi แต่ต้องการวิธียืนยันว่าเฟรมจัมโบ้มีปัญหาก่อน

คำตอบ:


42

การเปิดใช้งาน Jumbo Frames หมายถึงการอนุญาตให้มี Maximum Transmission Unit (MTU) ขนาดใหญ่กว่าปกติโดยการตั้งค่า MTU เป็น 9000

ในการตรวจสอบว่ามันใช้งานได้คุณสามารถใช้ping ใน windowsด้วยแฟล็ก -l เพื่อตั้งค่าขนาดแพ็คเก็ตและแฟล็ก -f เพื่อตั้งค่าสถานะ Don't Fragment ในแพ็คเก็ต

ping my.test.host -f -l 8972

หากแพ็กเก็ตได้รับการแยกส่วนคุณจะเห็น

Packet needs to be fragmented by DF set

แทนที่สิ่งที่คุณจะเห็นตามปกติ

สำหรับ Linux คำสั่ง pingใช้แฟล็กต่างกัน -sตั้งค่าขนาดของแพ็คเก็ตและ-M doตั้งค่า Do Not Fragment ดังนั้นคำสั่งดังกล่าวจะเป็น:

ping my.test.host -M do -s 8972

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

สิ่งนี้จะไม่บอกคุณเองว่า MTU ที่ต่ำที่สุดคืออะไรคุณอาจสามารถใช้งานการทดสอบกับอุปกรณ์ต่าง ๆ ในเส้นทาง แต่อาจมีเราเตอร์โปร่งใสที่ จำกัด MTU แต่ไม่แสดงขึ้นมา tracerouteสำหรับ

โปรดทราบว่ามีโอเวอร์เฮดที่ 28 ไบต์สำหรับส่วนหัว ICMP ดังนั้น MTU จึงมีขนาดใหญ่กว่ารูปแบบที่คุณสร้างด้วยวิธีดังกล่าว 28 ไบต์ ดังนั้นเพื่อตรวจสอบ MTU ของ 9000 คุณจำเป็นต้องตั้งค่าขนาด ping แพ็กเก็ตเป็น 9000-28 = 8972

อัปเดตฉันพบทรัพยากรบางอย่างซึ่งจะคำนวณ MTU ข้ามเส้นทางระหว่างโฮสต์และเป้าหมายโดยเฉพาะ:

  • สำหรับ Windows mturoute
  • สำหรับ * nix tracepath หรือ traceroute --mtu

และบางการอภิปรายมากขึ้นในการหา MTU ของเส้นทาง


+1 คำตอบที่ดี ฉันคิดแบบนี้เช่นกัน แต่ก็ไม่แน่ใจว่ามันจะช่วยให้เขาตรวจพบว่าขนาดของเฟรมที่สนับสนุนสวิตช์คืออะไร ฉันไม่คิดว่าจะเป็นการทดสอบเส้นทาง MTU
joeqwerty

1
ดี .. บน Windows การเปลี่ยนแปลงเล็กน้อยเพื่อให้มันทำงานบน linux [ping 10.1.1.101 -s 1472] โดยที่ 1472 คือขนาด MTU โปรดแก้ไขคำถามของคุณเพื่อรวมสิ่งนี้และฉันจะยอมรับ
pufferfish

นี่คือเครื่องมือที่ใช้วิธีการที่อธิบายโดย dunxd: elifulkerson.com/projects/mturoute.php
Chris

2
หน้า Ok - man จะช่วยคุณได้ทันที แต่ฉันได้อัปเดตด้วยรายละเอียดเฉพาะสำหรับ Linux ห้ามแฟล็กแฟรกเมนต์จำเป็นสำหรับการทดสอบเพื่อให้ทำงานได้อย่างถูกต้องและสิ่งนี้ไม่ชัดเจนใน Linux ping เหมือนกับใน Windows
dunxd

1
หากคุณเปิดใช้งาน SSH เป็นครั้งแรกในโฮสต์ ESXi และเข้าสู่ระบบคุณสามารถใช้vmkping -d -s 8972 10.1.1.101โดยที่ -s กำหนดขนาดแพ็คเก็ตและ -d ตั้งค่าสถานะ Do Not Fragment
Eric3

1

ฉันไม่แน่ใจว่าจะใช้งานได้ แต่คุณสามารถลองได้:

บนคอมพิวเตอร์ที่มีไคลเอ็นต์ MDSM ตรวจสอบให้แน่ใจว่ารองรับและเปิดใช้งาน Jumbo Frames แล้วไปที่แท็บการสนับสนุนในไคลเอนต์ MDSM และเลือกลิงค์ "รวบรวมข้อมูลสนับสนุน" เลือกตำแหน่งบนไคลเอนต์ MDSM เพื่อดาวน์โหลดไฟล์ไปที่ เริ่มต้นการดักจับแพ็กเก็ตบนไคลเอนต์ MDSM และคลิกปุ่มเริ่มเพื่อเริ่มรวบรวมและดาวน์โหลดข้อมูลสนับสนุน (ไฟล์ zip) เมื่อการรวบรวม / ดาวน์โหลดเสร็จสิ้นให้ดูที่การจับภาพและดูว่าเฟรม Ethernet มีขนาดใหญ่เพียงใดจาก MD3000i ไปจนถึงไคลเอนต์ MDSM หากสวิตช์, MD300i และไคลเอนต์ MDSM ได้รับการกำหนดค่าทั้งหมดสำหรับ Jumbo Frames คุณจะเห็นว่าในขนาดเฟรม Ethernet ในการจับภาพ


1

ใน ESXi คุณต้องระบุว่าจะใช้อินเตอร์เฟสใดมิฉะนั้น ping จะถูกกำหนดเส้นทางผ่านอินเทอร์เฟซ mgmt และใน -d เพื่อตั้งค่า DF (ไม่ต้องแยกส่วน):

vmkping -I vmkX -s 8972 -d xxxx

http://kb.vmware.com/kb/1003728


-1

คุณยังสามารถตรวจสอบได้จากคอนโซล ESXi ผ่าน SSH: เปิด Security-> Firewall-> Remote Tech.support (SSH) และหลังจากล็อกอิน ssh ทำ "vmkping -s 8000" หรืออะไรทำนองนั้น (จำตัวเลือกไม่ได้)


4
ค้นหาตัวเลือกและอาจมีคนโหวตให้คุณ
dunxd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.