Đọc DDM bằng công cụ: CLI, ethtool, SNMP, OpenConfig · Chẩn đoán DDM/DOM · Transceiver quang và cáp · Tài liệu · CodingBox
CodingBox Tài liệu

Đọc DDM bằng công cụ: CLI, ethtool, SNMP, OpenConfig

Cùng những byte A2h đó đến với bạn qua nhiều cửa khác nhau: CLI của switch, NIC Linux, bộ thăm dò SNMP, chuỗi xử lý đo từ xa liên tục, hoặc dump hex thô từ bộ lập trình. Trang này là cẩm nang — các lệnh, các OID và đường dẫn, và cách giải mã dump thô bằng tay khi công cụ trước mặt bạn không làm được việc đó.

CLI của switch và router

Nền tảngLệnh DDMGhi chú
Cisco IOS / IOS-XEshow interfaces transceiver detailngưỡng hiển thị cùng với giá trị; show idprom interface để xem thông tin nhận dạng
Cisco NX-OSshow interface ethernet1/1 transceiver detailstheo từng làn đối với QSFP
Cisco IOS-XRshow controllers optics 0/0/0/0gồm cả báo động và bảng làn
Juniper Junosshow interfaces diagnostics optics xe-0/0/0có kèm ngưỡng và trạng thái báo động
Arista EOSshow interfaces ethernet 1 transceiver dom… transceiver detail bổ sung thêm ngưỡng
Huawei VRPdisplay transceiver interface XGigabitEthernet0/0/1 verbose—
MikroTik RouterOS/interface ethernet monitor sfp1sfp-temperature, sfp-tx-power, sfp-rx-power, sfp-tx-bias-current
Dell OS10show interface ethernet 1/1/1 transceiver—
NVIDIA Cumulus / Onyxl1-show swp1 / show interfaces ethernet 1/1 transceivermlxlink -d <dev> -p <port> -m để xem chi tiết module
SONiCshow interfaces transceiver eeprom -d Ethernet0sfputil show eeprom -d; … presence, … lpmode

Các lệnh tương đương để xem thông tin nhận dạng và những gì cần chú ý: Kiểm tra module quang trên switch.

Linux: ethtool

ethtool -m eth0                 # thông tin nhận dạng đã giải mã + DDM (khi driver hỗ trợ EEPROM của module)
ethtool -m eth0 raw on hex on   # dump thô: A0h tại 0x0000–0x00ff, A2h tại 0x0100–0x01ff (SFP)
ethtool -m eth0 hex on offset 256 length 128   # chỉ trang dưới của A2h
ethtool --show-fec eth0         # chế độ FEC
ethtool -S eth0 | grep -i fec   # fec_corrected_blocks / fec_uncorrectable_blocks

Đối với module QSFP/CMIS, dump theo đúng cách bố trí theo trang mà driver cung cấp (trang dưới, trang trên 00h, sau đó các trang 01h/02h/03h/10h/11h ở nơi được hỗ trợ). ethtool giải mã đầy đủ SFF-8472 và SFF-8636, và giải mã một phần CMIS tùy theo phiên bản kernel.

Giải mã dump A2h thô bằng tay

Trang dưới của A2h nằm tại offset 0x0100 trong dump từ lệnh ethtool -m … raw on hex on. Các đại lượng giám sát trực tiếp bắt đầu từ byte 96 của A2h → offset 0x0160 trong dump:

0x0160:  1a 80 80 e8 1b 58 0f a0 03 e8 ...
         └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘
         nhiệt   Vcc  dòng   Tx     Rx
ByteThôQuy đổiGiá trị
96–97 nhiệt độ1A 80 = 6784 (có dấu)÷ 25626,5 °C
98–99 Vcc80 E8 = 33000× 100 µV3,300 V
100–101 dòng phân cực Tx1B 58 = 7000× 2 µA14,0 mA
102–103 công suất Tx0F A0 = 4000× 0,1 µW = 400 µW; 10·log10(0,400)−3,98 dBm
104–105 công suất Rx03 E8 = 1000× 0,1 µW = 100 µW−10,0 dBm

Các phép quy đổi này giả định hiệu chuẩn nội bộ (A0h byte 92 bit 5); với hiệu chuẩn ngoài, trước tiên hãy áp dụng các hằng số từ A2h 56–91 (Hiệu chuẩn). Ngưỡng nằm tại A2h 0–39 theo cùng định dạng; trạng thái/điều khiển và cờ nằm tại 110–117 (Ngưỡng và báo động). QSFP: các đại lượng giám sát của module nằm tại byte 22–27, các đại lượng giám sát theo làn nằm tại 34–57 của trang dưới; CMIS: trang dưới 14–25 và trang 11h 154–201 (Chẩn đoán theo từng làn).

SNMP

Chuẩn: ENTITY-SENSOR-MIB (RFC 3433)

Hầu hết các nền tảng đưa ra mọi giá trị DDM dưới dạng một cảm biến vật lý:

Đối tượngOIDÝ nghĩa
entPhySensorType1.3.6.1.2.1.99.1.1.1.14 voltsDC, 5 amperes, 8 celsius, 14 dBm
entPhySensorScale1.3.6.1.2.1.99.1.1.1.28 = đơn vị, 7 = mili, 6 = micro…
entPhySensorPrecision1.3.6.1.2.1.99.1.1.1.3số chữ số thập phân trong giá trị
entPhySensorValue1.3.6.1.2.1.99.1.1.1.4giá trị đọc được
entPhySensorOperStatus1.3.6.1.2.1.99.1.1.1.51 ok, 2 unavailable, 3 nonoperational

Chỉ số của cảm biến được ánh xạ tới một cổng thông qua ENTITY-MIB (entPhysicalDescr, entPhysicalContainedIn). Một giá trị kiểu 14 (dBm), thang đo 8, độ chính xác 2 và giá trị −1234 có nghĩa là −12,34 dBm.

MIB của nhà sản xuất

Nhà sản xuấtMIB / đối tượng ví dụ
CiscoCISCO-ENTITY-SENSOR-MIB entSensorValue (1.3.6.1.4.1.9.9.91.1.1.1.1.4), ngưỡng trong entSensorThresholdTable
JuniperJUNIPER-DOM-MIB: jnxDomCurrentRxLaserPower (…2636.3.60.1.1.1.1.5, 0,01 dBm), jnxDomCurrentTxLaserBiasCurrent (.6), jnxDomCurrentTxLaserOutputPower (.7), jnxDomCurrentModuleTemperature (.8)
Arista, Dell và nhiều hãng khácchỉ ENTITY-SENSOR-MIB
Huaweicác đối tượng quang của HUAWEI-ENTITY-EXTENT-MIB (công suất Rx/Tx, dòng phân cực, nhiệt độ)
MikroTikMIKROTIK-MIB mtxrOpticalTable (công suất Rx/Tx, nhiệt độ, điện áp, dòng phân cực)

NMS mã nguồn mở (LibreNMS, mẫu Zabbix, Observium) tự động phát hiện các giá trị này và vẽ đồ thị; Prometheus dùng snmp_exporter với cùng các OID đó.

Đo từ xa liên tục (gNMI / OpenConfig)

openconfig-platform-transceiver mô hình hóa module dưới dạng một thành phần có các kênh vật lý:

/components/component[name=Ethernet1/1]/transceiver/state/…            nhà sản xuất, mã sản phẩm, số sê-ri, form factor
/components/component[name=…]/transceiver/physical-channels/channel[index=0]/state/input-power/instant
/components/component[name=…]/transceiver/physical-channels/channel[index=0]/state/output-power/instant
/components/component[name=…]/transceiver/physical-channels/channel[index=0]/state/laser-bias-current/instant
/components/component[name=…]/state/temperature/instant

Mỗi trường dữ liệu mang giá trị instant, avg, min, max trong khoảng thời gian lấy mẫu. Đăng ký ở chế độ SAMPLE với chu kỳ 10–60 s; chuỗi xử lý phổ biến là gnmic → Prometheus/InfluxDB → Grafana. Các mô hình riêng của từng nhà sản xuất (Cisco, Juniper, Arista) đưa ra cùng loại dữ liệu đó theo đường dẫn riêng của mình, và thường bổ sung thêm bộ đếm FEC và trạng thái báo động.

Windows và các host khác

Windows không có công cụ DDM dựng sẵn; các tiện ích của nhà sản xuất NIC (dành cho adapter máy chủ) đôi khi hiển thị dữ liệu module. FreeBSD hiển thị thông tin nhận dạng và DDM của SFP bằng ifconfig <if> -v trên các driver được hỗ trợ. Trên host không đọc được module, phương án dự phòng là bàn thử.

Tần suất thăm dò và quy tắc ứng xử

  • Các đại lượng giám sát của module cập nhật vài lần mỗi giây; thăm dò mỗi 1–5 phút là đủ để theo dõi xu hướng và nhẹ nhàng với bus hai dây.
  • Một số nền tảng dồn mọi lượt đọc module qua một CPU quản lý duy nhất — các đợt quét SNMP dồn dập trên hàng trăm cổng có thể làm chậm hệ thống hoặc bị hết thời gian chờ.
  • Không bao giờ chạy một master thứ hai (kẹp bộ lập trình, công cụ trong băng) trên bus mà host đang thăm dò (Giao diện hai dây).

So sánh các nguồn

CLI, SNMP và đo từ xa đều đọc cùng những byte đó; chênh lệch vài phần mười dB giữa chúng là do thời điểm đọc khác nhau, không phải do sai số. Chênh lệch giữa giá trị đọc trên host và giá trị đọc trên bàn thử của cùng một module là điều đáng tìm hiểu: nhiệt độ, Vcc và cách xử lý hiệu chuẩn làm thay đổi các con số (Độ chính xác và giới hạn).

Trong CodingBox

CodingBox là cánh cửa bàn thử: DDM hiển thị các đại lượng giám sát và cờ đã giải mã, với byte thô chỉ cách một cú nhấp trong EEPROM editor, còn việc xuất CSV cấp dữ liệu cho cùng những trang tổng quan vốn cũng nhận dữ liệu từ SNMP hay đo từ xa — nhờ vậy một module có một lịch sử duy nhất từ kiểm tra đầu vào đến khi ngừng sử dụng (Giám sát).


Nếu bạn phát hiện thông tin chưa chính xác hoặc lỗi trong bài viết này, hãy chọn đoạn liên quan và nhấn Ctrl+Enter để .