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

เครื่องมือและการวินิจฉัย NIC: อ่านข้อมูลโมดูลจากเซิร์ฟเวอร์

เซิร์ฟเวอร์ไม่มีคำสั่ง show interface transceiver แต่มีข้อมูลชุดเดียวกันอยู่อีกเลเยอร์หนึ่งลงไป ไดรเวอร์ของ NIC จะอ่าน EEPROM ของโมดูลแล้วแสดงผ่าน ethtool ยูทิลิตีของผู้ผลิต และบน Windows กับ ESXi ผ่านคำสั่งของตัวเอง หน้านี้รวบรวมเครื่องมือตามระบบปฏิบัติการและผู้ผลิต สิ่งที่แต่ละตัวแสดง (ข้อมูลระบุตัวตน, DDM, ตัวนับ FEC, สถานะลิงก์, PCIe) และวิธีตีความผลลัพธ์เมื่อลิงก์ล่มหรือมีข้อผิดพลาดสะสม

Linux: ethtool

คำสั่งแสดง
ethtool eth0สถานะลิงก์, ความเร็ว, ดูเพล็กซ์, การเจรจาอัตโนมัติ, โหมดที่รองรับ/ประกาศ, ชนิดพอร์ต (FIBRE/DA)
ethtool -m eth0 (--module-info)EEPROM ที่ถอดรหัสแล้ว: ตัวระบุ, ผู้ผลิต, PN, SN, วันที่, ความสอดคล้อง, ความยาวคลื่น, ความยาว; DDM (อุณหภูมิ, Vcc, ไบอัส, กำลัง Tx/Rx, ค่าเกณฑ์, แฟล็กอะลาร์ม) ถ้าโมดูลมี
ethtool -m eth0 raw on hex onดัมป์ดิบของ A0h (และ A2h) สำหรับเทียบกันทีละไบต์ (แผนผังหน่วยความจำ)
ethtool -m eth0 page 0x11 … (รุ่นใหม่กว่า)เพจ CMIS บนโมดูล 400G ขึ้นไป
ethtool -i eth0ไดรเวอร์, เวอร์ชัน, เวอร์ชันเฟิร์มแวร์/NVM, แอดเดรสบัส
ethtool -S eth0สถิติ รวมถึงข้อผิดพลาด CRC, FEC ที่แก้ไขแล้ว/แก้ไขไม่ได้ในไดรเวอร์บางตัว
ethtool --show-fec eth0 / --set-fec eth0 encoding rsโหมด FEC ที่คอนฟิกไว้และที่ใช้งานอยู่
ethtool -s eth0 speed 25000 duplex full autoneg offบังคับความเร็ว
ethtool -p eth0 5กะพริบไฟ LED ของพอร์ตเพื่อระบุตำแหน่งพอร์ต
ethtool --show-priv-flags eth0แฟล็กเฉพาะของไดรเวอร์ (เช่น link-down-on-close)

แหล่งข้อมูลอื่นบน Linux: dmesg กรองด้วยคำ sfp, module และ link (ข้อความจากไดรเวอร์เกี่ยวกับการตรวจสอบคุณสมบัติของโมดูล), lspci -vv -s <addr> (ความกว้าง/ความเร็วลิงก์ PCIe ใต้ LnkSta), ip -s link show eth0 (ตัวนับ), /sys/class/net/eth0/ (carrier, ความเร็ว)

เครื่องมือของผู้ผลิต

ผู้ผลิตเครื่องมือการใช้งานหลัก
Nvidia / Mellanoxmlxlink -d <pci> -m -e -cข้อมูลโมดูลและ DDM (-m), ไดอะแกรมตา/BER และ FEC (-e, -c), คู่ลิงก์; mlxlink … --fec_override, --speeds
Nvidia / Mellanoxmlxconfig -d <pci> q / setชนิดพอร์ต (IB/ETH), ชนิดลิงก์, KEEP_ETH_LINK_UP, การโอเวอร์ไรด์ FEC, เบรกเอาต์
Nvidia / Mellanoxmst status, mlxfwmanagerรายชื่ออุปกรณ์, เฟิร์มแวร์
Nvidia / Mellanoxibstat, ibportstate, iblinkinfoสถานะพอร์ต InfiniBand, ความกว้าง, ความเร็ว (ฟาบริก IB)
Intelethtool -mหลัก; Intel ไม่มีเครื่องมือดัมป์โมดูลเฉพาะของตัวเอง
Intelnvmupdate64e, epct64eอัปเดตเฟิร์มแวร์ NVM; คอนฟิกพอร์ต (ตัวเลือกพอร์ตของ E810 เช่น 2×100G เทียบกับ 4×25G)
Inteldmesgข้อความ ixgbe/i40e/ice: unsupported module (ความเข้ากันได้ของออปติก)
Broadcombnxtnvm, niccliNVM, การตั้งค่าพอร์ต, FEC/AN, ข้อมูลทรานซีฟเวอร์
Marvellqedctl—
AMD Solarflaresfupdate, sfbootเฟิร์มแวร์, โหมดพอร์ต
Chelsiocxgbtool—

Windows

คำสั่งแสดง
Get-NetAdapterสถานะลิงก์, ความเร็ว
Get-NetAdapterAdvancedProperty -Name "Ethernet 2"ความเร็ว/ดูเพล็กซ์, โหมด FEC, เฟรมจัมโบ้ — ตั้งค่าได้ด้วย Set-NetAdapterAdvancedProperty
Get-NetAdapterHardwareInfoสล็อต PCIe, ความกว้าง/ความเร็วลิงก์
Get-NetAdapterStatisticsตัวนับ
Intel PROSet: Get-IntelNetAdapter, Get-IntelNetAdapterSettingการตั้งค่าเฉพาะของ Intel; ข้อมูลโมดูลใน Device Manager → แท็บ Link Speed
Nvidia WinOF-2: mlx5cmd -Stat, mlxlink (รุ่นบิลด์ Windows)ข้อมูลโมดูลและการวินิจฉัยลิงก์
Event Viewer → Systemข้อความจากไดรเวอร์เกี่ยวกับโมดูลที่ไม่รองรับ

ไดรเวอร์ของ Windows มักไม่เปิดให้เข้าถึง DDM ให้ใช้เครื่องมือของผู้ผลิตหรืออ่านโมดูลบนโต๊ะทดสอบแทน

VMware ESXi

คำสั่งแสดง
esxcli network nic list / get -n vmnic0ลิงก์, ความเร็ว, ไดรเวอร์, เฟิร์มแวร์
esxcli network nic stats get -n vmnic0ตัวนับ
esxcli system module parameters list -m ixgben / set -m ixgben -p "…"พารามิเตอร์ของไดรเวอร์ในรุ่นที่รองรับ
esxcli intnet … (ปลั๊กอินของ Intel), esxcli mellanox … / mlxlink (ปลั๊กอินของ Nvidia)การวินิจฉัยของผู้ผลิต รวมถึงข้อมูลโมดูล
vmkernel.log“unsupported module”, ลิงก์กระพริบ
esxcli hardware pci listสถานะลิงก์ PCIe

การอ่านผลลัพธ์

สิ่งที่สังเกตเห็นความหมายขั้นถัดไป
ethtool -m: “Cannot get module EEPROM information: Operation not supported”ไดรเวอร์ไม่เปิดให้เข้าถึง, พอร์ตไม่มีโมดูลเสียบอยู่ หรือ I²C ของโมดูลไม่ตอบสนองตรวจสอบ dmesg, เสียบใหม่, ลองพอร์ตอื่น (ข้อผิดพลาดในการอ่าน/เขียน)
อ่านข้อมูลระบุตัวตนได้, Link detected: no, กำลังรับ (Rx) ปกติความเร็ว/FEC/AN ไม่ตรงกันethtool --show-fec, เทียบกับสวิตช์ (FEC และ AN)
กำลังรับ (Rx) −40 dBm / "-inf"ไม่มีแสงใยแก้วนำแสง, ปลายทางอีกฝั่ง, โพลาริตี (ไม่มีลิงก์)
ไบอัสและกำลังส่ง (Tx) ปกติดี, Rx ก้ำกึ่งคอนเนกเตอร์สกปรก, ลิงก์ระยะไกลทำความสะอาด, ตรวจงบประมาณ (กำลังรับและงบประมาณลิงก์)
ตัวนับ FEC ที่แก้ไขไม่ได้เพิ่มขึ้นลิงก์ใกล้ขีดจำกัดระดับค่าใน DDM, คลาสของสาย, อุณหภูมิ (ค่าตรวจวัด VDM และ FEC)
อุณหภูมิ > 70 °C ในเซิร์ฟเวอร์ 1Uการไหลเวียนอากาศจัดตำแหน่งใหม่, สล็อต OCP (พอร์ตและ PCIe)
LnkSta: Speed 8GT/s, Width x8 บนการ์ด 2×100Gคอขวดของ PCIeสล็อต/การแบ่งเลน PCIe
dmesg: unsupported modulewhitelist ของไดรเวอร์ความเข้ากันได้ของออปติกบน NIC

การตรวจติดตามจากเซิร์ฟเวอร์

  • ผลลัพธ์จาก ethtool -m แยกวิเคราะห์ด้วยโปรแกรมได้ งาน cron หรือ node exporter ที่มีตัวเก็บข้อมูล ethtool จะส่งออกค่า DDM ไปยังระบบตรวจติดตามแบบ Prometheus ได้ (การตรวจติดตาม)
  • ผลลัพธ์ JSON ของ mlxlink (--json) จาก Nvidia และตัวนับ FEC ของ ethtool -S จาก Intel เป็นสัญญาณเตือนล่วงหน้าก่อนเกิดความล้มเหลวที่ดี (ความน่าเชื่อถือของลิงก์และการตรวจติดตาม)
  • ช่วงเวลาโพล 30–60 s ก็เพียงพอ; ตัว DDM เองอัปเดตได้เร็วสุดคือทุกวินาที

ใน CodingBox

ethtool -m raw on hex on และ CodingBox อ่านไบต์ชุดเดียวกัน เมื่อโมดูลทำงานต่างกันบน NIC และบนโต๊ะทดสอบ ให้เทียบดัมป์ทั้งสองทีละฟิลด์ — ไดรเวอร์ที่ไม่เขียนทับอะไรเลยจะแสดงข้อมูลตรงกันทุกประการ และความต่างใด ๆ ที่พบชี้ไปที่เพจไดนามิกของโมดูลเองหรือข้อผิดพลาดในการอ่าน (Check transceiver, การอ่านค่า DDM ด้วยเครื่องมือ)


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