graph TD ROOT((Root)) --> ISO["1 (iso)"] ISO --> ORG["3 (org)"] ORG --> DOD["6 (dod)"] DOD --> INT["1 (internet)"] INT --> MGMT["2 (mgmt)"] MGMT --> MIB2["1 (mib-2)"] MIB2 --> SYS["1 (system)"] SYS --> SYSDESCR["1 (sysDescr)
1.3.6.1.2.1.1.1"] INT --> PRIV["4 (private)"] PRIV --> ENT["1 (enterprises)"] ENT --> CISCO["9 (cisco)"] ENT --> SIEMENS["4329 (siemens)"] SIEMENS --> TEMP[". (tempSensor)
1.3.6.1.4.1.4329."] style ROOT fill:#2c3e50,color:#fff style SYSDESCR fill:#27ae60,color:#fff style TEMP fill:#f39c12,color:#fff

1. El Desafío del Lenguaje Universal

En la lección anterior vimos que el Manager SNMP "pregunta" al Agente por su estado. El problema es: ¿cómo le pregunta exactamente por la temperatura? Si le envía el texto "Dime tu temperatura", un switch Siemens podría entenderlo, pero un router Cisco podría esperar la palabra "Temperature", y un PLC japonés podría esperar "Ondo". Para evitar este caos, SNMP no usa palabras, usa Identificadores de Objeto (OIDs - Object Identifiers) organizados en una MIB (Management Information Base).

Piensa en el OID como si fuera el número de Seguridad Social o el código de barras de una variable específica dentro de un equipo de red.



2. La Estructura del Árbol OID

Los OIDs no son números aleatorios. Se construyen navegando por un árbol jerárquico mundial, similar a la estructura de carpetas de un disco duro. La raíz del árbol está gestionada por organizaciones internacionales (ISO, ITU).

Todo OID de red industrial suele empezar con la misma secuencia: 1.3.6.1.

  • 1: ISO
  • 3: Organización
  • 6: Departamento de Defensa de EE. UU. (DoD)
  • 1: Internet

A partir del nodo "Internet", el árbol se divide en dos ramas fundamentales para nuestro trabajo: la rama mgmt (2) y la rama private (4).



3. MIB Estándar vs MIB Privada

Dependiendo de lo que queramos monitorizar, navegaremos por una rama u otra:

  • MIB-2 Estándar (1.3.6.1.2.1.): Es la rama universal. Todos los dispositivos de red del mundo que soporten SNMP deben responder a estos OIDs. Contienen información básica: sysDescr (Descripción del sistema), sysUpTime (Tiempo que lleva encendido), o el estado genérico de las interfaces de red (Up/Down).
  • MIB Privada o Enterprises (1.3.6.1.4.1.): Es la rama de los fabricantes. El nodo "enterprises (1)" está regulado por la IANA, que asigna un número único a cada empresa en el mundo. Por ejemplo, el 9 es Cisco, el 4329 es Siemens, y el 2468 es Rockwell Automation. Dentro de su propio nodo empresarial, cada fabricante es libre de crear su propio sub-árbol para exponer datos específicos (ej. la temperatura de la CPU, la carga de la batería del SAI o el voltaje de un puerto PoE).


4. El Archivo MIB y los "MIB Browsers"

Si el NMS (PRTG, Zabbix) hace un GET a un switch Siemens preguntando por el OID 1.3.6.1.4.1.4329.10.1.2.1 y recibe un "45", ¿cómo sabe el NMS si 45 son grados Celsius, RPMs o Voltios? El NMS es ciego; solo ve números.

Aquí es donde entra el Archivo MIB. Es un archivo de texto (un diccionario) proporcionado por el fabricante del switch (ej. un archivo .mib o .txt). El ingeniero de UF1795 debe descargar este archivo de la web del fabricante e importarlo (compilarlo) en su servidor NMS. Este archivo le dice al NMS: "Oye, si consultas el OID acabado en .1.2.1, el número que te devolveré es la temperatura de la CPU en grados Celsius".

Para investigar qué OIDs tiene un equipo en la planta antes de configurarlos en el servidor central, los técnicos usan herramientas portátiles llamadas MIB Browsers (como iReasoning MIB Browser). Conectan su portátil a la red, cargan el archivo MIB del fabricante, y pueden navegar por el árbol haciendo clics en lugar de escribir largas secuencias numéricas.

Infografía del árbol MIB y la estructura jerárquica de los OID en SNMP.
Figura 1: El Árbol MIB. Comprender esta jerarquía es vital. La rama "mib-2" (2.1) proporciona monitorización genérica de ping y estado de puertos. La rama "enterprises" (4.1) es donde se oculta la "magia" del diagnóstico industrial predictivo, permitiendo acceder a los sensores térmicos internos y voltajes propios de cada fabricante.
Fuente: Elaboración propia / Licencia: CC BY-NC 4.0.

📝 Evaluación Técnica: Estructura MIB

1. En el contexto del protocolo SNMP, ¿qué es un OID (Object Identifier)?

2. ¿Cuál es la diferencia principal entre interrogar OIDs que cuelgan de la rama estándar "MIB-2" (1.3.6.1.2.1) frente a los que cuelgan de la rama "Enterprises" (1.3.6.1.4.1)?

3. Has configurado tu servidor Zabbix/PRTG para interrogar un OID propietario de la rama Enterprises de un switch. El servidor recibe un valor de "300", pero en la pantalla lo muestra como un número crudo sin unidades en lugar de mostrar "300 RPM". ¿Qué paso de configuración te ha faltado realizar en el servidor NMS?

🤖 Ejercicio Práctico 2: Snmpwalk (Explorador de Árboles)

Objetivo: Comprender cómo los administradores de red descubren toda la información que un dispositivo puede ofrecer mediante la herramienta `snmpwalk`.

Copia el siguiente *prompt* y pégalo en un modelo de IA (como ChatGPT, Gemini o Claude).

Actúa como un administrador de sistemas OT. Escribe un script en Python utilizando la librería `easysnmp` o `pysnmp` que replique el comportamiento del comando de consola `snmpwalk`. El script debe: 1. Conectarse a un agente SNMP simulado en `localhost` usando la comunidad "public" (v2c). 2. Comenzar la exploración desde el nodo raíz de "system" (OID: `1.3.6.1.2.1.1`). 3. Utilizar una función `walk()` o un bucle `getnext()` para recorrer y descargar todos los OIDs secundarios (hijos) que cuelguen de esa rama. 4. Imprimir por pantalla una lista de los OIDs descubiertos junto con su valor (ej. `1.3.6.1.2.1.1.1.0 = "Hardware Siemens S7-1500"`, `1.3.6.1.2.1.1.3.0 = "Uptime: 45000"`). Comenta el código explicando cómo `snmpwalk` es la herramienta de diagnóstico más valiosa cuando no tienes el manual del equipo, ya que "tira del hilo" y extrae todo el árbol de variables soportadas por el dispositivo en segundos.