You are on page 1of 50

SNMP

Simple Network Management Protocol

SNMP

1

Administración de la red
ISO divide la administración de la red en cinco partes
que se definen dentro del Modelo OSI:
• Administración de la contabilidad: Proporciona información
sobre costos y los usos contables.
• Administración de la configuración: Administra la
configuración real de la red.
• Administración de fallos: Detecta, aísla y corrige los fallos,
incluyendo el mantenimiento de un registro y un diagnóstico de
los errores.
• Administración del desempeño (prestaciones): Mantiene
una eficiencia y un desempeño máximos, incluyendo la
recopilación de estadísticas y el mantenimiento de registros
para definir un “baseline”
• Administración de la seguridad: Mantiene un sistema seguro
y administra el acceso.
SNMP

2

Administración en TCP/IP
El Comité Asesor de Internet (Internet Advisory Board, IAB) ha
elaborado o adoptado varias normas para la administración de
la red. En su mayoría, éstas se han diseñado específicamente
para ajustarse a los requisitos de TCP/IP, aunque cuando es
posible cumplen con la arquitectura OSI. Para cubrir dichas
necesidades se han creado dos protocolos, ambos con
funcionalidades parecidas:
1.- SNMP: Simple Network Management Protocol
2.- TCP/IP(CMOT): Common Management Information Services
and Protocol Over TCP/IP. Una norma para TCP/IP y para la
administración OSI.
– Servicios Comunes de Información sobre la Administración
(Common Management Information Services, CMIS)
– Protocolo Común de Información sobre la Administración (Common
Management Information Protocol, CMIP)
SNMP

3

SNMP
Protocolo de nivel de aplicación para administrar (consulta
u otras operaciones) de diferentes dispositivos (routers,
switches, hubs, hosts, modems, impresoras, etc).
Cada equipo conectado a la red ejecuta unos procesos
(agentes).
Dichos procesos van actualizando variables (manteniendo
históricos) en una base de datos.
Por ejemplo, en el caso de:
- un router: interfaces activos, la velocidad de sus enlaces serie,
número de errores, bytes emitidos, bytes recibidos, ...
- en una impresora: que se terminó el papel, ...
- en un modem: la pérdida de conexión, …
- en un switch: bocas conectadas, desconectar un boca en el caso
de IPs duplicadas, si la máquina está infectada de virus, etc
SNMP

4

SNMP: funcionamiento
La forma normal de uso del SNMP es el sondeo (pooling):
1.- Pregunta: la estación administradora envía una solicitud
a un agente (proceso que atiende petición SNMP)
pidiéndole información o mandándole actualizar su
estado de cierta manera.
2.- Respuesta: la información recibida del agente es la
respuesta o la confirmación a la acción solicitada.
Problema: incremento con los nodos administrados y
puede llegar a perjudicar el rendimiento de la red
Método Interrupción (trap): un agente manda la
información al nodo administrador puntualmente,
ante una situación predeterminada (por ejemplo una
anomalía detectada en la red)
SNMP

5

SNMP 6 . Con UDP. el protocolo SNMP se implementa utilizando los puertos 161 y 162. • puerto 161 se utiliza para las transmisiones tipo sondeo • puerto 162 se utiliza para los mensajes de tipo “trap” o interrupción.SNMP: protocolos SNMP es independiente del protocolo (IPX de SPX/IPX de Novell. pero se suelen usar comunicaciones UDP en la mayoría de los casos. IP con UDP) SNMP se puede implementar usando comunicaciones UDP o TCP.

Pila de protocolos en SNMP FTP SNMP NFS ASN1 HTTP SMTP RPC Telnet DNS TCP XDR T F T P RPC UDP IP PROTOCOLOS de ACCESO al MEDIO SNMP 7 .

ASN. codificación. transmisión y decodificación SNMP 8 .1 Notación Sintáctica Abstracta Uno Norma para representar datos independiente de la máquina que los reciba o use Describe estructuras de datos para representación.

entityRole EntityRole. publicKey Key. validThru GeneralizedDateTime } SNMP 9 . signatoryId EntityId. signatoryName Text OPTIONAL.Ejemplo ASN. PrivateSignatureKey} BoeCertificationData ::= SEQUENCE { entityId EntityId. date GeneralizedDateTime . signatoryRole EntityRole.1 BoeCertificate ::= SIGNED {BoeCertificationData. entityName Text OPTIONAL.

1. private EntityId signatoryId.asn1.uv.vector = new ASN1[9].SEQUENCE.eri.ASN1. public class BoeCertificationData extends SEQUENCE{ private EntityId entityId.uv.robotica.common.per.per. } public EntityId getEntityId() { return entityId. private GeneralizedDateTime validThru. //OPTIONAL private EntityRole signatoryRole. Implementación clase en Java package es. import es.robotica. private EntityRole entityRole. private GeneralizedDateTime date.robotica.} 10 . public BoeCertificationData() { this.Ejemplo ASN. private Text entityName.asn1.asymmetrical. // OPTIONAL private Key publicKey. import es.SNMP } …….uv. private Text signatoryName.

SNMP 11 .

daemons. …) • Estación administradora o consola de administración encargados de hacer el pooling o recibir el trap de los agentes  mantienen una base de datos MIB con formato SMI SNMP 12 .Elementos de la arquitectura SNMP (1/2) • Nodos administrados que ejecutan agentes SNMP (procesos.

1 usado para SNMP.MIB Management Information Base.SMI Structure of Management Information (estructura de la base de datos MIB)  Nombre o OID (identificador de objetos)  Tipo y Sintaxis  Subconjunto de ASN.  Un subconjunto es el MIB-2 (información común soportada por todos los dispositivos) SNMP 13 . Base de datos relacional (organizada por objetos o variables y sus atributos o valores) que contiene información del estado de un nodo administrado y es actualizada por los agentes SNMP. Forma de definir los objetos gestionados usando una sintaxis especial .Elementos de la arquitectura SNMP (2/2) .

fragmentación) ICMP (contador de cada tipo de mensaje ICMP) TCP (conexiones abiertas TCP) UDP (estadísticas UDP) Interfaces (estado de interfaces) SNMP 14 . convenciones. Ejemplo de grupos de variables en MIB-2: System (objetos que permiten operar el sistema) IP (contador de paquetes. sintaxis y las reglas para la construcción de MIBs.SMI: Structure of Management Information Estructura en forma de árbol global para la información de administración.

Ejemplo de SMI para acceder a Mib_2.Interfaces ccitt (0) Standard (0) iso (1) Directory (1) . Experimental (3) Mib_2 (1) Org (3) private (4) . Addr-translation (3) . (0) itu (2) DoD (6) .. Internet (1) Mgmt (2) Interfaces (2) SNMP ............. (0) System (1) Joing-iso-ccitt (3) Registration -auth (1) Member-body (2) ... . (0) .. 15 .

Subárboles de la MIB-2 SNMP 16 .

org.mib_2.internet.dod.mgmt.variable.puerto grupo variable significado system sysUpTime Tiempo desde el último arranque interfaces ifNumber Número de interfaces de red interfaces ifInErrors Número de paquetes entrantes en los que el agente ha encontrado error ip ipInReceives Número de paquetes recibidos icmp icmpInEchos Número de solicitudes de Echo ICMP recibidas tcp tcpInSegs Número de paquetes TCP recibidos udp udpInDatagrams Número de datagramas UDP recibidos Todas las variables en RFC-1213 SNMP 17 .grupo.Ejemplos de variables junto con su grupo en MIB-2 iso.

en una notación conocida como OID (Object Identifier) o descriptor.Ejemplo de codificación de objetos según SMI iso.2 Este formato para la representación de variables puede ser expresadas tanto en ASCII como números separados por puntos.internet.1.interfaces o su equivalente . SNMP 18 .dod.6.mgmt.1.mib_2. Así sucesivamente hasta especificar la variable (u objeto) y el puerto a consultar.3.1.2.org.

que implica que la consola de administración recupera datos del agente • COLOCAR (SET). que implica que la consola de administración establece los valores de los objetos en el agente • CAPTURAR (TRAP).SNMP: comandos básicos • OBTENER (GET). que implica que el agente notifica a la consola de administración acerca de los sucesos de importancia por interrupción SNMP 19 .

Ejemplo funcionamiento protocolo SNMP ? ? RED INTERNA ?  SNMP 20 .

Ejemplo funcionamiento protocolo SNMP RED INTERNA  SNMP 21 .

con carácter general es aconsejable deshabilitar la ejecución de comandos SET. que añade a los mensajes SNMP (v1 y v2) una cabecera adicional. Si no se dispone de seguridad suficiente. A pesar de que es la versión inicial es la que se distribuye en muchos equipos. SNMP 22 .SNMP: Versiones Versión 1: La seguridad se basa en comunidades (que usan passwords comunes sobre texto plano) que permiten usar dispositivos si se conoce el password. proporciona una capa o parche complemento a SNMPv1 y v2. Se puede explotar for fuerza bruta. Versión 3: Para evitar la falta de seguridad en las transmisiones (con cifrado y autenticación). SNMPv2 puede leer SNMPv1. Versión 2: Reduce la carga de tráfico adicional para la monitorización (con uso de GetBulk e Informs) y soluciona los problemas de monitorización remota o distribuida (con las sondas RMON).

Obtención de información NODO ADMINISTRADO ESTACIÓN ADMINISTRADORA ? UDP 161  MIB UDP 161 AGENTE Consulta/Solicitud de variable: Software: • NetFlow • CiscoWorks • HP OpenView ?   GET REQUEST  GET NEXT REQUEST  GET BULK (SNMP v.2) Respuesta a solicitud:  GET RESPONSE SNMP 23 .

como el número de paquetes procesados. SNMP 24 .Modificación de información NODO ADMINISTRADO ESTACIÓN ADMINISTRADORA UDP 161  ! MIB UDP 161 AGENTE Modificación de valor de variable: ! Software: • NetFlow • CiscoWorks • HP OpenView   SET REQUEST  SET NEXT REQUEST Respuesta a solicitud:  GET RESPONSE EJEMPLO: Se puede usar para resetear el valor de los contadores.

SNMP 25 .Generación de interrupciones NODO ADMINISTRADO ESTACIÓN ADMINISTRADORA UDP 162 MIB  AGENTE Software: • NetFlow • CiscoWorks • HP OpenView  Un Agente informa de un evento:  TRAP EJEMPLO: El Agente de un router informa de que un enlace ha caído.

6.PRIMITIVAS Operaciones SNMP 1. 5. GET REQUEST GET NEXT REQUEST GET BULK (en SNMP v2) SET REQUEST y SET NEXT REQUEST GET RESPONSE TRAP INFORM (en SNMP v2) NOTIFICATION (en SNMP v2) REPORT (en SNMP v2) Implementación en Linux: snmpget snmpwalk (get next) snmpset SNMP snmptrap 26 . 7. 2. 8. 3. 4. 9.

PRIMITIVAS (1/2) GET REQUEST Solicita (y se recoge en la contestación) el valor de un objeto (o variable) GET NEXT REQUEST Solicita el siguiente atributo de un objeto una vez se ha usado el anterior. Se usa para recorrer una tabla GET BULK (en SNMP v2) Lo mismo que el anterior pero más eficiente ya que en una sola petición se trae todos los valores de la tabla SET REQUEST (y SET NEXT REQUEST) Solicita modificar el valor de un objeto SNMP 27 .

errores. SNMP 28 . NOTIFICATION. etc. confirmaciones.PRIMITIVAS (2/2) GET RESPONSE Respuesta del agente con los valores solicitados Es la respuesta de un agente ante un Get o Set request TRAP Mensaje generado por agente para informar de ciertas situaciones (alertas) INFORM. REPORT (en SNMP v2) Mensajes de un dispositivo administrado a otros dispositivos para intercambiar información.

SNMP 29 .

1 public 1.6.3.mib_2.Ejemplo de consulta SNMP (snmpget) (1/2) snmpget dominio comunidad OID dominio es la dirección IP de la máquina donde nos vamos a conectar comunidad “public” cuando queremos leer algo OID “Object Identifier” de lo que queremos leer snmpget 147.156.dod.1.ip.1.mgmt.1.ipDefaultTTL snmpget 147.ipDefaultTTL SNMP 30 .156.1 public iso.org.1.ip.internet.2.

3.2.1.1 SNMP 31 .1.2. snmpget IP_router public 1.ifOutOctects.1 snmpget IP_router public 1. ifOutOctets.2. sobre el puerto correspondiente de un router.6.1.2.ifInOctects.3.Ejemplo de consulta SNMP (snmpget) (2/2) Calculo de la utilización de un interface es decir la relación de entre bytes recibidos y enviados en un interfaz Las variables a procesar son ifInOctets.1.6.

un router puede reportar un incremento de la carga cada 10 %.Monitorización inteligente Ejemplo 1: Mediante SNMP. Ejemplo 2: Otro caso de configuración. que mande al administrador de la red notificación o alerta SNMP 32 .10%” Después de recibir un mensaje de interrupción. el servidor puede seguir sondeando al dispositivo para mayores detalles. “Si utiliza un sondeo dirigido por interrupción y se conoce la carga del sondeo regular. cuando el router de salida con acceso a Rediris tiene tráfico de salida superior a 34 Mbps. puede dar instrucciones al router para enviar una interrupción cuando se experimente un incremento significativo en la carga.

Esto puede congestionar la red y producir una información errónea en el servidor. mensajes controlados por interrupción hacia el servidor. SNMP 33 . Si existe una fallo general en cualquier parte de la red (p. por tanto si la red está congestionada.ej fallo de la corriente eléctrica). cada dispositivo administrado por SNMP tratará de enviar al mismo tiempo. puede conllevar más problemas. para reportar el problema.Problema: SNMP y congestión La monitorización se realiza por la propia red.

Para ello. Esto se puede resolver mediante el uso de agentes en los segmentos remotos de red. llamados sondas RMON (Remote MONitor) SNMP 34 . el software de monitorización debe trasladarse a cada segmento de red. otros segmentos Comentario a la monitorización SNMP gestiona dispositivos individuales.Otras redes. pero no permite diagnosticar fallos en una red remota u otro segmento de red. utilizando equipos especiales o bien ordenadores de propósito general.

6. pueden procesar la información a enviar a la estación de administrador. declarándose para ello una MIB especial para guardar información de monitorización de un segmento de red diferente.16 Las sondas RMON recopilan información y tiene la misma función que un agente SNMP.1. en contraste con el análisis de dispositivos individuales. transmitiendo la información periódicamente. Una forma de trabajar puede ser poniendo las sondas RMON en cada segmento de la red que se quiere monitorizar (pueden introducirse en un host.3.1.2. SNMP 35 . Además. en un switch. en un router u otro dispositivo específico). permite añadir redundancia a la administración de la red.RMON Remote Monitor (1/2) Una de las mejoras principales de SNMP se denomina Monitoreo Remoto (RMON). ya que RMON permite volcar los datos a varias consolas de administración. La MIB asociada es 1. Además. Las extensiones de RMON a SNMP brindan la capacidad para observar la red como un todo.

SNMP 36 .RMON Remote Monitor (2/2) RMON1 trabaja en las capas 1 y 2 Envía a la estación administradora información de una red entera (LAN o WAN) a nivel de capas 1 y 2 RMON2 trabaja en las capas 3 y superiores Proporciona información a nivel de red y de aplicación.

Funcionamiento de RMON RED INTERNA Inform Request Response Gestor RMON Gestor RMON central SNMP 37 .

errores CRC. Definiciones de Traps 4. Histórico de la estadística 3. Recoge paquetes que cumplen el filtro 9.Matrix...Hosts top N. puertos TCP 8. Extensiones para Token Ring SNMP 38 . Estadística en tiempo real de una LAN (utilización.History. …) 2. Filtrar según ciertos patrones (direcciones MAC. colisiones. Matriz de tráfico enviado/recibido entre sistemas 7..Token Ring. Registro de las conexiones “top N” más activas en un periodo de tiempo 6. Envía alarmas (SNMP traps) 10..MIBs de RMON1 1. Event.Alarm..Hosts. Estadísticas de un host específico de la LAN (bytes enviados/recibidos.Capture.Filter...Statistics.. …) 5..

Protocol Directory. Estadísticas de la capa 3 para cada host 5. RMON Conformance..Address Map... Lista de protocolos que se puede monitorizar 2.MIBs de RMON2 1. Estadística de tráfico para cada protocolo 3.User History. Requisitos de : requirements for RMON2 MIB conformance SNMP 39 .Network-Layer Matrix.Application-Layer Host. Application-Layer Matrix.....Protocol Distribution. Estadística de la capa 3 (origen/destino) para cada par de hosts 6. Muestra en un periodo de algunas variables 9.Network-Layer Host. Probe Configuration. Mapeo de direcciones IP y MAC 4. Configuración remota de sondas 10. Estadística origen/destino para cada par de hosts 8. Estadísticas para la capa de aplicación para cada host 7.

sFlow RFC 3176 Evolución de las RMONs Sirve para capturar tráfico en redes conmutadas de alto ancho de banda haciendo un muestreo del tráfico Puerto por defecto 6343 SNMP 40 .

Como analizar la red? SNMP 41 .

MRTG: Multi Router Traffic Grapher • Multi Router Traffic Grapher (MRTG) es una herramienta para monitorización de tráfico en las redes y sus enlaces tanto internos como externos. etc • Es de libre distribución y debe ser utilizado bajo los términos de GNU http://www. monitorización hasta 200 enlaces. • Guarda la información por semanas. errores. • Genera páginas HTML con imágenes PNG. • Funciona tanto en UNIX y Windows • Es un script en Perl que utiliza SNMP para leer cualquiera de los atributos de los objetos de los routers (o conmutadores) y un programa en C que procesa la información para visualizarla gráficamente en tiempo real. tráfico. meses y años. que ofrecen una visión en tiempo real del tráfico.org/ SNMP 42 . • Se utiliza generalmente para monitorizar la carga del sistema. sesiones establecidas.mrtg.

Numero de lineas ocupadas de servidores annexy Sistema: annexy.uv.EJEMPLO DE MRTG: Esta página muestra el numero de líneas ocupadas en el servidor de acceso telefónico de la Universitat: annexy. con 30 líneas disponibles para conexiones vía modem Las estadísticas se ejecuten cada 5 minutos. Annexy dispone de un primario RDSI (30B+D).es Máximo esperado: 30 `Yearly' Graph (1 Day Average) BLUE ### VIOLET### Líneas ocupadas en annexy Máximo de líneas ocupadas en annexy SNMP 43 .

Aplicación SNMP: Netflow Network Planning Sonda RMON Accounting/Billing NetFlow Accounting: NetFlow FlowCollector: • Recolección de datos • Conmutación • Filtrado Network Data Analyzer: • Exportación • Agregación • Presentación de los datos • Agregación • Almacenamiento de datos • NFC Control y Configuración SNMP 44 .

SNMP 45 .

Otros usos Tráfico de salida: 31/03/2007 Tráfico de salida: 03/04/2007 SNMP 46 .

SNMP 47 .

2034 • RFC 2570-2576: SNMPv3 SNMP 48 . RFC 1441 HASTA RFC 1452: SNMP VERSION 2 • RMON1: RFC1271 • RMON2: RFC2021.RFCs • RFC 1155 (SNMPv1 y SMI) y RFC 1157: SNMPv1 • RFC 1902 (SNMPv2 y SMI).

6.puerto(1) 1.2.puerto(1) 1.1.5.3.1.1.1.hrPrinterStatus(1).2.host(25).puerto(1) SNMP 49 .hrDeviceTable(2).3.3.hrPrinterDetectedErrorState(2).1.1.1.6.hrPrinterEntry(1).1.2.25.3.25.3.hrDevice(3).hrPrinterTable(5).hrDeviceEntry(1).hrDeviceStatus(5).6.

hrDevice(3).hrPrinterTable(5).6.3.hrDeviceStatus(5).25.25.1.hrPrinterDetectedErrorState(2).1.1.puerto(1) 5 = “down”  impresora caida 1.6.hrDeviceEntry(1).2.hrDeviceTable(2).3.hrPrinterEntry(1).1.puerto(1) 1 = “other” no da información del estado 1.host(25).3.5.2.1.3.6.puerto(1) SNMP 50 No hay ningún valor de String: Sin errores .3.1.1.2.1.hrPrinterStatus(1).