Odczyt DDM narzędziami: CLI, ethtool, SNMP, OpenConfig
Te same bajty A2h trafiają do ciebie wieloma drogami: przez CLI przełącznika, kartę sieciową Linuksa, odpytywanie SNMP, potok telemetrii strumieniowej albo surowy zrzut hex z programatora. Ta strona to zbiór przepisów: polecenia, OID-y i ścieżki oraz sposób ręcznego dekodowania surowego zrzutu, gdy narzędzie pod ręką tego nie potrafi.
CLI przełącznika i routera
| Platforma | Polecenie DDM | Uwagi |
|---|---|---|
| Cisco IOS / IOS-XE | show interfaces transceiver detail | progi pokazane obok wartości; show idprom interface dla danych identyfikacyjnych |
| Cisco NX-OS | show interface ethernet1/1 transceiver details | dla QSFP w rozbiciu na linie |
| Cisco IOS-XR | show controllers optics 0/0/0/0 | zawiera alarmy i tabelę linii |
| Juniper Junos | show interfaces diagnostics optics xe-0/0/0 | zawiera progi i stan alarmów |
| Arista EOS | show interfaces ethernet 1 transceiver dom | … transceiver detail dodaje progi |
| 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 pokazuje szczegóły modułu |
| SONiC | show interfaces transceiver eeprom -d Ethernet0 | sfputil show eeprom -d; … presence, … lpmode |
Odpowiedniki związane z danymi identyfikacyjnymi i na co zwrócić uwagę: Weryfikacja optyki na przełącznikach.
Linux: ethtool
ethtool -m eth0 # zdekodowane dane identyfikacyjne + DDM (gdy sterownik obsługuje EEPROM modułu)
ethtool -m eth0 raw on hex on # surowy zrzut: A0h pod 0x0000–0x00ff, A2h pod 0x0100–0x01ff (SFP)
ethtool -m eth0 hex on offset 256 length 128 # tylko dolna strona A2h
ethtool --show-fec eth0 # tryb FEC
ethtool -S eth0 | grep -i fec # fec_corrected_blocks / fec_uncorrectable_blocks
W przypadku modułów QSFP/CMIS zrzut ma układ stronicowany, jaki udostępnia sterownik (strona dolna, górna 00h, potem strony 01h/02h/03h/10h/11h, jeśli są obsługiwane). ethtool dekoduje SFF-8472 i SFF-8636 w pełni, a CMIS częściowo, zależnie od wersji jądra.
Ręczne dekodowanie surowego zrzutu A2h
Dolna strona A2h zaczyna się pod offsetem 0x0100 w zrzucie ethtool -m … raw on hex on. Bieżące wielkości mierzone zaczynają się od bajtu 96 A2h → offset zrzutu 0x0160:
0x0160: 1a 80 80 e8 1b 58 0f a0 03 e8 ...
└─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘
temp Vcc bias Tx Rx
| Bajty | Wartość surowa | Przeliczenie | Wartość |
|---|---|---|---|
| 96–97 temperatura | 1A 80 = 6784 (ze znakiem) | ÷ 256 | 26,5 °C |
| 98–99 Vcc | 80 E8 = 33000 | × 100 µV | 3,300 V |
| 100–101 polaryzacja Tx | 1B 58 = 7000 | × 2 µA | 14,0 mA |
| 102–103 moc Tx | 0F A0 = 4000 | × 0,1 µW = 400 µW; 10·log10(0,400) | −3,98 dBm |
| 104–105 moc Rx | 03 E8 = 1000 | × 0,1 µW = 100 µW | −10,0 dBm |
Te przeliczenia zakładają kalibrację wewnętrzną (A0h bajt 92 bit 5); przy kalibracji zewnętrznej najpierw zastosuj stałe z A2h 56–91 (Kalibracja). Progi znajdują się w A2h 0–39 w tych samych formatach, a stan/sterowanie i flagi w 110–117 (Progi i alarmy). QSFP: wielkości mierzone modułu w bajtach 22–27, wielkości mierzone linii w 34–57 dolnej strony; CMIS: dolna strona 14–25 i strona 11h 154–201 (Diagnostyka poszczególnych linii).
SNMP
Standard: ENTITY-SENSOR-MIB (RFC 3433)
Większość platform udostępnia każdą wartość DDM jako czujnik fizyczny:
| Obiekt | OID | Znaczenie |
|---|---|---|
| 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 = jednostki, 7 = mili, 6 = mikro… |
| entPhySensorPrecision | 1.3.6.1.2.1.99.1.1.1.3 | liczba miejsc dziesiętnych w wartości |
| entPhySensorValue | 1.3.6.1.2.1.99.1.1.1.4 | odczyt |
| entPhySensorOperStatus | 1.3.6.1.2.1.99.1.1.1.5 | 1 ok, 2 niedostępny, 3 niedziałający |
Indeks czujnika jest mapowany na port przez ENTITY-MIB (entPhysicalDescr, entPhysicalContainedIn). Wartość typu 14 (dBm), skali 8, precyzji 2 i wartości −1234 oznacza −12,34 dBm.
MIB-y producentów
| Producent | MIB / przykładowy obiekt |
|---|---|
| Cisco | CISCO-ENTITY-SENSOR-MIB entSensorValue (1.3.6.1.4.1.9.9.91.1.1.1.1.4), progi w 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 i wiele innych | tylko ENTITY-SENSOR-MIB |
| Huawei | obiekty optyczne HUAWEI-ENTITY-EXTENT-MIB (moc Rx/Tx, polaryzacja, temperatura) |
| MikroTik | MIKROTIK-MIB mtxrOpticalTable (moc Rx/Tx, temperatura, napięcie, polaryzacja) |
Otwarte systemy NMS (LibreNMS, szablony Zabbiksa, Observium) wykrywają je automatycznie i rysują ich wykresy; Prometheus używa snmp_exporter z tymi samymi OID-ami.
Telemetria strumieniowa (gNMI / OpenConfig)
openconfig-platform-transceiver modeluje moduł jako komponent z kanałami fizycznymi:
/components/component[name=Ethernet1/1]/transceiver/state/… producent, numer katalogowy, numer seryjny, format obudowy
/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
Każdy węzeł leaf niesie instant, avg, min, max w oknie próbkowania. Subskrybuj w trybie SAMPLE co 10–60 s; typowy potok to gnmic → Prometheus/InfluxDB → Grafana. Natywne modele producentów (Cisco, Juniper, Arista) udostępniają te same dane pod własnymi ścieżkami i zwykle dodają liczniki FEC oraz stan alarmów.
Windows i inne hosty
W Windows nie ma natywnego narzędzia DDM; narzędzia producentów kart sieciowych (adaptery serwerowe) czasem pokazują dane modułu. FreeBSD pokazuje dane identyfikacyjne SFP i DDM poleceniem ifconfig <if> -v na obsługiwanych sterownikach. Na hoście, który nie potrafi odczytać modułu, rozwiązaniem zapasowym jest stanowisko.
Częstotliwość odpytywania i etykieta
- Wielkości mierzone modułu odświeżają się kilka razy na sekundę; odpytywanie co 1–5 minut wystarcza do śledzenia trendu i jest łagodne dla magistrali dwuprzewodowej.
- Niektóre platformy szeregują wszystkie odczyty modułów przez jeden procesor zarządzający: agresywne przejścia SNMP po setkach portów mogą go spowolnić albo doprowadzić do przekroczenia czasu.
- Nigdy nie uruchamiaj drugiego mastera (zacisku programatora, narzędzia in-band) na magistrali, którą odpytuje host (Interfejs dwuprzewodowy).
Porównywanie źródeł
CLI, SNMP i telemetria czytają te same bajty; różnice rzędu kilku dziesiątych dB między nimi wynikają z czasu odczytu, nie z błędu. Warto rozumieć różnicę między odczytem hosta a odczytem tego samego modułu na stanowisku: temperatura, Vcc i sposób obsługi kalibracji zmieniają liczby (Dokładność i ograniczenia).
W CodingBox
CodingBox to drzwi na stanowisko: DDM pokazuje zdekodowane wielkości mierzone i flagi, a surowe bajty są o jedno kliknięcie dalej w EEPROM editor; eksport CSV zasila te same dashboardy, które przyjmują dane z SNMP czy telemetrii, dzięki czemu moduł ma jedną historię od kontroli wejściowej po wycofanie z eksploatacji (Monitorowanie).