DDM auslesen: CLI, ethtool, SNMP, OpenConfig
Dieselben A2h-Bytes erreichen Sie über viele Wege: eine Switch-CLI, eine Linux-NIC, einen SNMP-Poller, eine Streaming-Telemetrie-Pipeline oder einen rohen Hex-Dump von einem Programmiergerät. Diese Seite ist das Kochbuch – die Befehle, die OIDs und Pfade, und wie man einen Rohdump von Hand dekodiert, wenn das Tool vor Ihnen es nicht tut.
Switch- und Router-CLI
| Plattform | DDM-Befehl | Hinweise |
|---|---|---|
| Cisco IOS / IOS-XE | show interfaces transceiver detail | Schwellwerte werden neben den Werten angezeigt; show idprom interface für die Identität |
| Cisco NX-OS | show interface ethernet1/1 transceiver details | pro Lane bei QSFP |
| Cisco IOS-XR | show controllers optics 0/0/0/0 | enthält Alarme und Lane-Tabelle |
| Juniper Junos | show interfaces diagnostics optics xe-0/0/0 | Schwellwerte und Alarmstatus enthalten |
| Arista EOS | show interfaces ethernet 1 transceiver dom | … transceiver detail fügt Schwellwerte hinzu |
| Huawei VRP | display transceiver interface XGigabitEthernet0/0/1 verbose | — |
| MikroTik RouterOS | /interface ethernet monitor sfp1 | sfp-temperature, sfp-tx-power, sfp-rx-power, sfp-tx-bias-current |
| Dell OS10 | show interface ethernet 1/1/1 transceiver | — |
| NVIDIA Cumulus / Onyx | l1-show swp1 / show interfaces ethernet 1/1 transceiver | mlxlink -d <dev> -p <port> -m für Moduldetails |
| SONiC | show interfaces transceiver eeprom -d Ethernet0 | sfputil show eeprom -d; … presence, … lpmode |
Identitätsbezogene Äquivalente und worauf zu achten ist: Optik verifizieren.
Linux: ethtool
ethtool -m eth0 # dekodierte Identität + DDM (wenn der Treiber Modul-EEPROM unterstützt)
ethtool -m eth0 raw on hex on # Rohdump: A0h bei 0x0000–0x00ff, A2h bei 0x0100–0x01ff (SFP)
ethtool -m eth0 hex on offset 256 length 128 # nur die untere A2h-Seite
ethtool --show-fec eth0 # FEC-Modus
ethtool -S eth0 | grep -i fec # fec_corrected_blocks / fec_uncorrectable_blocks
Bei QSFP/CMIS-Modulen folgt der Dump dem seitenweisen Layout, das der Treiber offenlegt (untere Seite, obere 00h, dann Seiten 01h/02h/03h/10h/11h, sofern unterstützt). ethtool dekodiert SFF-8472 und SFF-8636 vollständig und CMIS je nach Kernel-Version teilweise.
Einen rohen A2h-Dump von Hand dekodieren
Die untere Seite von A2h liegt bei Offset 0x0100 in einem ethtool -m … raw on hex on- Dump. Die Live-Monitore beginnen bei A2h Byte 96 → Dump-Offset 0x0160:
0x0160: 1a 80 80 e8 1b 58 0f a0 03 e8 ...
└─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘
Temp Vcc Bias Tx Rx
| Bytes | Rohwert | Umrechnung | Wert |
|---|---|---|---|
| 96–97 Temperatur | 1A 80 = 6784 (vorzeichenbehaftet) | ÷ 256 | 26,5 °C |
| 98–99 Vcc | 80 E8 = 33000 | × 100 µV | 3,300 V |
| 100–101 Tx-Bias | 1B 58 = 7000 | × 2 µA | 14,0 mA |
| 102–103 Tx-Leistung | 0F A0 = 4000 | × 0,1 µW = 400 µW; 10·log10(0,400) | −3,98 dBm |
| 104–105 Rx-Leistung | 03 E8 = 1000 | × 0,1 µW = 100 µW | −10,0 dBm |
Diese Umrechnungen setzen interne Kalibrierung voraus (A0h Byte 92 Bit 5); bei externer Kalibrierung zuerst die Konstanten aus A2h 56–91 anwenden (Kalibrierung). Schwellwerte liegen in denselben Formaten bei A2h 0–39; Status/Steuerung und Flags bei 110–117 (Schwellwerte & Alarme). QSFP: Modulmonitore bei Byte 22–27, Lane-Monitore bei 34–57 der unteren Seite; CMIS: untere Seite 14–25 und Seite 11h 154–201 (Diagnose je Lane).
SNMP
Standard: ENTITY-SENSOR-MIB (RFC 3433)
Die meisten Plattformen stellen jeden DDM-Wert als physischen Sensor bereit:
| Objekt | OID | Bedeutung |
|---|---|---|
| entPhySensorType | 1.3.6.1.2.1.99.1.1.1.1 | 4 voltsDC, 5 amperes, 8 celsius, 14 dBm |
| entPhySensorScale | 1.3.6.1.2.1.99.1.1.1.2 | 8 = units, 7 = milli, 6 = micro… |
| entPhySensorPrecision | 1.3.6.1.2.1.99.1.1.1.3 | Dezimalstellen im Wert |
| entPhySensorValue | 1.3.6.1.2.1.99.1.1.1.4 | der Messwert |
| entPhySensorOperStatus | 1.3.6.1.2.1.99.1.1.1.5 | 1 ok, 2 unavailable, 3 nonoperational |
Der Index des Sensors wird über die ENTITY-MIB einem Port zugeordnet (entPhysicalDescr, entPhysicalContainedIn). Ein Wert vom Typ 14 (dBm), Skala 8, Präzision 2 und Wert −1234 bedeutet −12,34 dBm.
Hersteller-MIBs
| Hersteller | MIB / Beispielobjekt |
|---|---|
| Cisco | CISCO-ENTITY-SENSOR-MIB entSensorValue (1.3.6.1.4.1.9.9.91.1.1.1.1.4), Schwellwerte in entSensorThresholdTable |
| Juniper | JUNIPER-DOM-MIB: jnxDomCurrentRxLaserPower (…2636.3.60.1.1.1.1.5, 0,01 dBm), jnxDomCurrentTxLaserBiasCurrent (.6), jnxDomCurrentTxLaserOutputPower (.7), jnxDomCurrentModuleTemperature (.8) |
| Arista, Dell und viele andere | nur ENTITY-SENSOR-MIB |
| Huawei | optische Objekte der HUAWEI-ENTITY-EXTENT-MIB (Rx-/Tx-Leistung, Bias, Temperatur) |
| MikroTik | MIKROTIK-MIB mtxrOpticalTable (Rx-/Tx-Leistung, Temperatur, Spannung, Bias) |
Open-Source-NMS (LibreNMS, Zabbix-Templates, Observium) erkennen diese automatisch und stellen sie grafisch dar; Prometheus nutzt snmp_exporter mit denselben OIDs.
Streaming-Telemetrie (gNMI / OpenConfig)
openconfig-platform-transceiver bildet ein Modul als Komponente mit physischen Kanälen ab:
/components/component[name=Ethernet1/1]/transceiver/state/… Hersteller, Teilenummer, Seriennummer, Formfaktor
/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
Jedes Leaf trägt instant, avg, min, max über das Abtastintervall. Abonnieren im SAMPLE-Modus alle 10–60 s; gnmic → Prometheus/InfluxDB → Grafana ist die übliche Pipeline. Herstellereigene Modelle (Cisco, Juniper, Arista) stellen dieselben Daten unter eigenen Pfaden bereit und ergänzen meist FEC-Zähler und Alarmstatus.
Windows und andere Hosts
Unter Windows gibt es kein natives DDM-Tool; Hersteller-Utilities für NICs (Server-Adapter) zeigen mitunter Moduldaten. FreeBSD zeigt SFP-Identität und DDM mit ifconfig <if> -v bei unterstützten Treibern. Auf einem Host, der das Modul nicht lesen kann, ist die Werkbank der Ausweichweg.
Abfrageraten und Umgangsformen
- Modulmonitore aktualisieren sich mehrmals pro Sekunde; eine Abfrage alle 1–5 Minuten genügt für Trends und schont den Zweidraht-Bus.
- Manche Plattformen serialisieren alle Modulzugriffe über eine Management-CPU — aggressive SNMP-Walks über Hunderte Ports können sie verlangsamen oder zum Timeout bringen.
- Nie einen zweiten Master (Programmiergerät-Klemme, In-Band-Tool) auf einem Bus betreiben, den der Host abfragt (Zweidraht-Schnittstelle).
Quellen im Vergleich
CLI, SNMP und Telemetrie lesen alle dieselben Bytes; Unterschiede von wenigen Zehntel dB zwischen ihnen sind Zeitversatz, kein Fehler. Eine Abweichung zwischen dem Wert des Hosts und dem Wert der Werkbank für dasselbe Modul lohnt eine Erklärung: Temperatur, Vcc und die Behandlung der Kalibrierung verändern die Zahlen (Genauigkeit & Grenzen).
In CodingBox
CodingBox ist die Tür zur Werkbank: DDM zeigt die dekodierten Monitore und Flags, die Rohbytes sind im EEPROM editor einen Klick entfernt, und der CSV-Export speist dieselben Dashboards, die auch SNMP oder Telemetrie verarbeiten — so hat ein Modul eine einzige Historie vom Wareneingang bis zur Außerbetriebnahme (Überwachung).