Lectura de DDM con herramientas: CLI, ethtool, SNMP, OpenConfig · Diagnóstico DDM/DOM · Transceptores y cables ópticos · Documentación · CodingBox
CodingBox Documentación

Lectura de DDM con herramientas: CLI, ethtool, SNMP, OpenConfig

Los mismos bytes de A2h le llegan por muchas puertas: una CLI de switch, una NIC de Linux, un poller SNMP, una canalización de telemetría en streaming o un volcado hexadecimal en bruto desde un programador. Esta página es el recetario: los comandos, los OID y las rutas, y cómo decodificar un volcado en bruto a mano cuando la herramienta que tiene delante no lo hace.

CLI de switch y router

PlataformaComando de DDMNotas
Cisco IOS / IOS-XEshow interfaces transceiver detaillos umbrales se muestran junto a los valores; show idprom interface para la identidad
Cisco NX-OSshow interface ethernet1/1 transceiver detailspor carril en QSFP
Cisco IOS-XRshow controllers optics 0/0/0/0incluye alarmas y tabla de carriles
Juniper Junosshow interfaces diagnostics optics xe-0/0/0incluye umbrales y estado de alarma
Arista EOSshow interfaces ethernet 1 transceiver dom… transceiver detail añade los umbrales
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 para detalles del módulo
SONiCshow interfaces transceiver eeprom -d Ethernet0sfputil show eeprom -d; … presence, … lpmode

Equivalentes orientados a la identidad y qué buscar: Verificación de la óptica en switches.

Linux: ethtool

ethtool -m eth0                 # decoded identity + DDM (when the driver supports module EEPROM)
ethtool -m eth0 raw on hex on   # raw dump: A0h at 0x0000–0x00ff, A2h at 0x0100–0x01ff (SFP)
ethtool -m eth0 hex on offset 256 length 128   # A2h lower page only
ethtool --show-fec eth0         # FEC mode
ethtool -S eth0 | grep -i fec   # fec_corrected_blocks / fec_uncorrectable_blocks

En los módulos QSFP/CMIS, el volcado sigue el diseño paginado que expone el controlador (página inferior, superior 00h, y luego las páginas 01h/02h/03h/10h/11h donde estén disponibles). ethtool decodifica por completo SFF-8472 y SFF-8636, y CMIS parcialmente, según la versión del kernel.

Decodificación manual de un volcado en bruto de A2h

La página inferior de A2h está en el desplazamiento 0x0100 de un volcado ethtool -m … raw on hex on. Los monitores en vivo empiezan en el byte 96 de A2h → desplazamiento 0x0160:

0x0160:  1a 80 80 e8 1b 58 0f a0 03 e8 ...
         └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘
        temp    Vcc   bias   Tx     Rx
BytesBrutoConversiónValor
96–97 temperatura1A 80 = 6784 (con signo)÷ 25626,5 °C
98–99 Vcc80 E8 = 33000× 100 µV3,300 V
100–101 polarización de Tx1B 58 = 7000× 2 µA14,0 mA
102–103 potencia de Tx0F A0 = 4000× 0,1 µW = 400 µW; 10·log10(0,400)−3,98 dBm
104–105 potencia de Rx03 E8 = 1000× 0,1 µW = 100 µW−10,0 dBm

Estas conversiones suponen calibración interna (A0h byte 92 bit 5); con calibración externa, aplique antes las constantes de A2h 56–91 (Calibración). Los umbrales están en A2h 0–39 con los mismos formatos; el estado/control y las banderas en 110–117 (Umbrales y alarmas). QSFP: los monitores del módulo están en los bytes 22–27, los monitores de carril en 34–57 de la página inferior; CMIS: página inferior 14–25 y página 11h 154–201 (Diagnóstico por carril).

SNMP

Estándar: ENTITY-SENSOR-MIB (RFC 3433)

La mayoría de las plataformas exponen cada valor de DDM como un sensor físico:

ObjetoOIDSignificado
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 = units, 7 = milli, 6 = micro…
entPhySensorPrecision1.3.6.1.2.1.99.1.1.1.3número de decimales del valor
entPhySensorValue1.3.6.1.2.1.99.1.1.1.4la lectura
entPhySensorOperStatus1.3.6.1.2.1.99.1.1.1.51 ok, 2 unavailable, 3 nonoperational

El índice del sensor se asocia a un puerto mediante ENTITY-MIB (entPhysicalDescr, entPhysicalContainedIn). Un valor de tipo 14 (dBm), escala 8, precisión 2 y valor −1234 significa −12,34 dBm.

MIB de fabricante

FabricanteMIB / objeto de ejemplo
CiscoCISCO-ENTITY-SENSOR-MIB entSensorValue (1.3.6.1.4.1.9.9.91.1.1.1.1.4), umbrales en entSensorThresholdTable
JuniperJUNIPER-DOM-MIB: jnxDomCurrentRxLaserPower (…2636.3.60.1.1.1.1.5, 0,01 dBm), jnxDomCurrentTxLaserBiasCurrent (.6), jnxDomCurrentTxLaserOutputPower (.7), jnxDomCurrentModuleTemperature (.8)
Arista, Dell y muchos otrossolo ENTITY-SENSOR-MIB
Huaweiobjetos ópticos de HUAWEI-ENTITY-EXTENT-MIB (potencia Rx/Tx, polarización, temperatura)
MikroTikMIKROTIK-MIB mtxrOpticalTable (potencia Rx/Tx, temperatura, tensión, polarización)

Los NMS de código abierto (LibreNMS, plantillas de Zabbix, Observium) los descubren automáticamente y los grafican; Prometheus usa snmp_exporter con los mismos OID.

Telemetría en streaming (gNMI / OpenConfig)

openconfig-platform-transceiver modela un módulo como un componente con canales físicos:

/components/component[name=Ethernet1/1]/transceiver/state/…            vendor, part, serial, 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

Cada leaf incluye instant, avg, min, max a lo largo del intervalo de muestreo. Suscríbase en modo SAMPLE a 10–60 s; gnmic → Prometheus/InfluxDB → Grafana es la canalización habitual. Los modelos nativos de cada fabricante (Cisco, Juniper, Arista) exponen los mismos datos bajo sus propias rutas y suelen añadir contadores de FEC y estado de alarma.

Windows y otros hosts

Windows no tiene una herramienta DDM nativa; las utilidades del fabricante de la NIC (adaptadores de servidor) a veces muestran los datos del módulo. FreeBSD muestra la identidad SFP y el DDM con ifconfig <if> -v en los controladores compatibles. En un host que no puede leer el módulo, el banco es el recurso de respaldo.

Frecuencia de sondeo y buenas prácticas

  • Los monitores del módulo se actualizan varias veces por segundo; sondear cada 1–5 minutos basta para ver la tendencia y es suave con el bus de dos hilos.
  • Algunas plataformas serializan todas las lecturas de módulos a través de una sola CPU de gestión: un walk SNMP agresivo de cientos de puertos puede ralentizarse o agotar el tiempo de espera.
  • Nunca ejecute un segundo maestro (pinza de programador, herramienta in-band) en un bus que el host está sondeando (Interfaz de dos hilos).

Comparación de fuentes

La CLI, el SNMP y la telemetría leen todos los mismos bytes; las diferencias de unas décimas de dB entre ellos son cuestión de temporización, no de error. Una diferencia entre la lectura del host y la del banco para el mismo módulo merece entenderse: la temperatura, la Vcc y el tratamiento de la calibración cambian las cifras (Precisión y límites).

En CodingBox

CodingBox es la puerta del banco: DDM muestra los monitores y las banderas decodificados con los bytes en bruto a un clic de distancia en el EEPROM editor, y la exportación a CSV alimenta los mismos paneles que consumen SNMP o telemetría, de modo que un módulo tiene un único historial desde la inspección de entrada hasta la baja (Monitorización).


Si encuentra una inexactitud o un error en este material, seleccione el fragmento correspondiente y pulse Ctrl+Enter para .