ความเข้ากันได้ของทรานซีฟเวอร์กับ NIC: รายการอนุญาตของไดรเวอร์ · การ์ดอินเทอร์เฟซเครือข่าย · การ์ดเครือข่ายและสวิตช์ · เอกสารประกอบ · CodingBox
CodingBox เอกสารประกอบ

ความเข้ากันได้ของทรานซีฟเวอร์กับ NIC: รายการอนุญาตของไดรเวอร์

บนสวิตช์ นโยบายเกี่ยวกับโมดูลเป็นเพียงบรรทัดหนึ่งใน OS เครือข่าย แต่บนเซิร์ฟเวอร์มันคือการตัดสินใจของไดรเวอร์และเฟิร์มแวร์ของ NIC ซึ่งต่างกันไปตามผู้ผลิต ระบบปฏิบัติการ และเวอร์ชันของไดรเวอร์ การ์ด Intel เป็นกลุ่มที่ปฏิเสธโมดูลที่ไม่อยู่ในรายการ ส่วนผู้ผลิตรายอื่นส่วนใหญ่ยอมรับทุกอย่างที่แปลงค่าได้ หน้านี้รวบรวมพฤติกรรมแยกตามผู้ผลิตและระบบปฏิบัติการ วิธีข้ามการตรวจสอบที่มีเอกสารรองรับ กฎ FEC/การเจรจาอัตโนมัติที่ตัดสินว่า DAC และออปติกจะลิงก์ได้หรือไม่ และสิ่งที่ข้อมูลระบุตัวตนที่เขียนโค้ดไว้ต้องผ่านในฝั่งเซิร์ฟเวอร์

พฤติกรรมแยกตามผู้ผลิต

ผู้ผลิต / ไดรเวอร์การตรวจสอบเมื่อไม่ผ่านการข้ามการตรวจสอบหมายเหตุ
Intel ixgbe (X520, X540, X550 SFP+)รายชื่อ OUI ของผู้ผลิต / PN ของ SFP+ ที่ Intel รับรองfailed to load because an unsupported SFP+ or QSFP module type was detected, พอร์ตดับพารามิเตอร์โมดูล allow_unsupported_sfp=1 (Linux); โหลดไดรเวอร์ใหม่DAC ยอมรับได้โดยทั่วไป; SFP 1G ถูกจำกัด
Intel i40e (X710, XXV710, XL710)การรับรองโมดูลระดับเฟิร์มแวร์unsupported module ใน dmesg, ลิงก์ดับ หรือ “module not qualified” ใน ethtoolallow_unsupported_sfp=1 บน i40e รุ่นใหม่; รุ่นเก่าไม่มีโมดูล 25G ของ XXV710 ถูกตรวจสอบอย่างเข้มงวด
Intel ice (E810)การรับรองระดับ NVM/เฟิร์มแวร์Possible mis-configuration of the Ethernet port detected / โมดูลไม่ผ่านการรับรองขึ้นอยู่กับ NVM และรุ่นไดรเวอร์; บางรุ่นรองรับการตั้งค่าที่อนุญาตโมดูลที่ไม่ผ่านการรับรอง บางรุ่นปฏิเสธ — ตรวจสอบบันทึกการเปลี่ยนแปลงของ Intelผ่อนปรนที่สุดในสาย Intel สำหรับ NVM รุ่นล่าสุด
Intel บน Windows (ไดรเวอร์ PROSet)รายการเดียวกันอุปกรณ์แสดง “Network cable unplugged”, คำเตือนในบันทึกเหตุการณ์ไม่มีวิธีข้ามการตรวจสอบที่มีเอกสารรองรับใช้โมดูลที่อยู่ในรายการของ Intel หรือเขียนโค้ดแบบ Intel
Intel บน VMware ESXi (ixgben, i40en, icen)รายการเดียวกันลิงก์ดับ, vmkernel.log แจ้ง “unsupported module”พารามิเตอร์โมดูลผ่าน esxcli system module parameters set ในไดรเวอร์ที่เปิดให้ตั้งค่า allow_unsupported_sfp — ไม่มีในทุกเวอร์ชันเลือกใช้โมดูลที่ผ่านการรับรองในระบบโปรดักชัน
Nvidia / Mellanox mlx5 (ConnectX)แปลงค่า EEPROM; Ethernet: ไม่มีรายการลิงก์ขึ้น; mlxlink แสดงข้อมูลโมดูลไม่จำเป็นโหมด InfiniBand: ตัวจัดการแฟบริกตรวจสอบข้อมูลระบุตัวตนของสาย/โมดูล และอาจตั้งค่าสถานะหรือลดระดับให้ (สายเคเบิล IB)
Broadcom bnxt_en (NetXtreme-E)แปลงค่า; ไม่มีรายการในเอสเคยูส่วนใหญ่ขึ้น—เฟิร์มแวร์ของ OEM (Dell, HPE) อาจเพิ่มการตรวจสอบเข้ามา
Marvell / QLogic qedeแปลงค่าขึ้น——
AMD Solarflare sfcแปลงค่าขึ้น——
Chelsio cxgb4แปลงค่าขึ้น——
Pensando ionicแปลงค่าขึ้น——
NIC ของ OEM ฝั่งเซิร์ฟเวอร์ (Dell, HPE, Lenovo, Cisco UCS VIC)อาจเพิ่มรายการของตัวเอง โดยเฉพาะ Cisco VIC“unsupported transceiver” ใน CIMC/UCSMไม่มีอย่างเป็นทางการUCS VIC ยอมรับโมดูลที่เขียนโค้ดแบบ Cisco

พฤติกรรมเปลี่ยนไปตามเวอร์ชันของไดรเวอร์และเฟิร์มแวร์ (NVM) ควรตรวจสอบกับชุดค่าผสมที่ใช้งานจริงเสมอ (ตารางความเข้ากันได้และเฟิร์มแวร์)

การเปิดใช้ตัวเลือกข้ามการตรวจสอบของ Intel (Linux)

# temporary (until reload)
modprobe -r ixgbe && modprobe ixgbe allow_unsupported_sfp=1
# persistent
echo "options ixgbe allow_unsupported_sfp=1" > /etc/modprobe.d/ixgbe.conf
echo "options i40e allow_unsupported_sfp=1"  > /etc/modprobe.d/i40e.conf
dracut -f   # or update-initramfs -u
# verify
cat /sys/module/ixgbe/parameters/allow_unsupported_sfp
dmesg | grep -iE 'sfp|module|unsupported'
ethtool -m eth0

สำหรับการ์ดหลายพอร์ต พารามิเตอร์นี้รับรายการคั่นด้วยจุลภาค (หนึ่งค่าต่อพอร์ต) ในไดรเวอร์บางตัว การตั้งค่านี้ไม่ได้รับการรองรับจาก Intel สำหรับใช้งานจริง มันเอาเฉพาะการตรวจสอบออกไป ไม่ได้ยกเลิกข้อกำหนดทางไฟฟ้า

FEC และการเจรจาอัตโนมัติบน NIC

ชนิดลิงก์ANFECหมายเหตุ
25G DACเปิด (Clause 73) ทั้งสองด้านเจรจาได้ (RS หรือ BASE-R ตามคลาสของสาย)กรณี “DAC ไม่ลิงก์” ส่วนใหญ่เกิดจาก AN ถูกปิดที่ด้านใดด้านหนึ่ง
ออปติก 25G SR / LRปิด; บังคับที่ 25000RS-FEC สำหรับ SR (บังคับ), LR: RS หรือไม่มี — ต้องตรงกับสวิตช์ethtool --set-fec eth0 encoding rs
100G DACเปิดRS-FEC—
100G SR4 / CWDM4 / DRปิดต้องมี RS-FEC—
100G LR4ปิดไม่มี (RS ในบางแพลตฟอร์ม)ให้ตรงกับสวิตช์ (FEC และการเจรจาอัตโนมัติ)
200G / 400GปิดสำหรับออปติกRS(544) KP4 เสมอ—
10Gปิดไม่มี—

คำสั่งแยกตามระบบปฏิบัติการ: เครื่องมือ NIC และการวินิจฉัย; ฝั่งสวิตช์: สูตรการคอนฟิกพอร์ต

สิ่งที่โมดูลที่เขียนโค้ดต้องผ่านสำหรับ NIC

เป้าหมายขั้นต่ำ
Intel ixgbe/i40e โดยไม่ข้ามการตรวจสอบชื่อผู้ผลิตและ PN จากรายการที่ Intel รับรอง (ตราสินค้า Intel เช่น E10GSFPSR/E10GSFPLR/E25GSFP28SR หรือชิ้นส่วนของ OEM ที่ Intel นำมาขายต่อ), รหัสความสอดคล้องและเช็กซัมที่สอดคล้องกัน
Intel เมื่อข้ามการตรวจสอบ, ผู้ผลิตที่ยอมรับทุกอย่างเช็กซัมและรหัสความสอดคล้องที่ถูกต้อง — ไม่ต้องเขียนโค้ดแบบ OEM
Cisco UCS VICข้อมูลระบุตัวตนสไตล์ Cisco เหมือนกับสวิตช์ Cisco (แต่ละ NOS ตรวจสอบโมดูลอย่างไร)
HCA ของ InfiniBandข้อมูลระบุตัวตนของสาย/โมดูลที่ถูกต้องตาม IBTA และรายการของผู้ผลิตแฟบริก

แนวทางการเขียนโค้ด: การล็อกผู้ผลิตและการเขียนโค้ด, การกำหนดหมายเลขชิ้นส่วน

อาการทั่วไปฝั่ง NIC

อาการสาเหตุที่เป็นไปได้ตรวจสอบ
พอร์ตหายไปหรือขึ้น “unsupported module” ใน dmesgไวท์ลิสต์ของไดรเวอร์dmesg, ethtool -m, ข้ามการตรวจสอบหรือใช้โมดูลที่เขียนโค้ดไว้
ลิงก์ดับ, ตรวจพบโมดูล, ระดับสัญญาณดีFEC/AN ไม่ตรงกัน, บังคับความเร็วผิดethtool eth0, ethtool --show-fec eth0 (ความเร็วและอัตรา)
ลิงก์ขึ้นแต่ผิดความเร็วเลือกอัตโนมัติได้ 10G บนโมดูลสองอัตราเร็วบังคับความเร็ว
ลิงก์ขึ้นแต่ทรูพุตต่ำความกว้าง/ความเร็วของ PCIelspci -vv (พอร์ตและ PCIe)
โมดูลร้อน, มีอะลาร์มอุณหภูมิการ์ดอยู่ในทางลมร้อนที่ระบายออกดู DDM ผ่าน ethtool -m; ย้ายการ์ดหรือปรับปรุงการไหลเวียนอากาศ
ใช้งานได้ใน Linux แต่ไม่ได้ใน Windows/ESXiนโยบายของไดรเวอร์ต่างกันใช้โมดูลที่ผ่านการรับรองสำหรับระบบปฏิบัติการนั้น
ลิงก์ InfiniBand ที่ความกว้าง/ความเร็วลดลงสายไม่อยู่ในรายการหรือยาวเกินไปibstat, mlxlink

ใน CodingBox

การถูกปฏิเสธฝั่งเซิร์ฟเวอร์วินิจฉัยได้จากไบต์ชุดเดียวกับฝั่งสวิตช์ อ่านชื่อผู้ผลิต, PN, OUI, รหัสความสอดคล้อง และเช็กซัมได้ที่ Check transceiver สำหรับฝูงอุปกรณ์ที่ใช้ Intel ล้วน code database สามารถเก็บข้อมูลระบุตัวตนแบบ Intel ที่ไดรเวอร์ยอมรับไว้ได้


หากพบข้อมูลที่ไม่ถูกต้องหรือข้อผิดพลาดในบทความนี้ ให้เลือกข้อความส่วนนั้นแล้วกด Ctrl+Enter เพื่อ