Document 7356856

Download Report

Transcript Document 7356856

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: protocolos
SNMP es independiente del protocolo (IPX de SPX/IPX
de Novell, IP con UDP)
SNMP se puede implementar usando comunicaciones
UDP o TCP, pero se suelen usar comunicaciones
UDP en la mayoría de los casos. 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
6
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.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,
codificación, transmisión y decodificación
SNMP
8
Ejemplo ASN.1
BoeCertificate ::= SIGNED {BoeCertificationData, PrivateSignatureKey}
BoeCertificationData ::= SEQUENCE {
entityId EntityId,
entityRole EntityRole,
entityName Text OPTIONAL,
publicKey Key,
signatoryId EntityId,
signatoryName Text OPTIONAL,
signatoryRole EntityRole,
date GeneralizedDateTime ,
validThru GeneralizedDateTime
}
SNMP
9
Ejemplo ASN.1. Implementación clase en Java
package es.uv.robotica.eri.asymmetrical.common;
import es.uv.robotica.asn1.per.ASN1;
import es.uv.robotica.asn1.per.SEQUENCE;
public class BoeCertificationData extends SEQUENCE{
private EntityId entityId;
private EntityRole entityRole;
private Text entityName; // OPTIONAL
private Key publicKey;
private EntityId signatoryId;
private Text signatoryName; //OPTIONAL
private EntityRole signatoryRole;
private GeneralizedDateTime date;
private GeneralizedDateTime validThru;
public BoeCertificationData() {
this.vector = new ASN1[9]; }
public EntityId getEntityId() {
return entityId;SNMP
}
…….}
10
SNMP
11
Elementos de la arquitectura SNMP (1/2)
• Nodos administrados que ejecutan agentes SNMP
(procesos, 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 (2/2)
- SMI Structure of Management Information (estructura de la
base de datos MIB)
 Nombre o OID (identificador de objetos)
 Tipo y Sintaxis
 Subconjunto de ASN.1 usado para SNMP. Forma de definir los
objetos gestionados usando una sintaxis especial
- MIB Management Information Base. 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.
 Un subconjunto es el MIB-2 (información común soportada
por todos los dispositivos)
SNMP
13
SMI: Structure of Management Information
Estructura en forma de árbol global para la
información de administración, convenciones,
sintaxis y las reglas para la construcción de
MIBs.
Ejemplo de grupos de variables en MIB-2:
System (objetos que permiten operar el sistema)
IP (contador de paquetes, fragmentación)
ICMP (contador de cada tipo de mensaje ICMP)
TCP (conexiones abiertas TCP)
UDP (estadísticas UDP)
Interfaces (estado de interfaces)
SNMP
14
Ejemplo de SMI para acceder a
Mib_2.Interfaces
ccitt (0)
Standard (0)
iso (1)
Directory (1)
... (0)
System (1)
Joing-iso-ccitt (3)
Registration -auth (1) Member-body (2)
... (0)
... (0)
itu (2)
DoD (6)
...
Internet (1)
Mgmt (2)
Interfaces (2)
SNMP
...
Experimental (3)
Mib_2 (1)
Org (3)
private (4)
...
...
Addr-translation (3)
...
15
Subárboles de la MIB-2
SNMP
16
Ejemplos de variables junto con su grupo en MIB-2
iso.org.dod.internet.mgmt.mib_2.grupo.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
Ejemplo de codificación de objetos según SMI
iso.org.dod.internet.mgmt.mib_2.interfaces
o su equivalente .1.3.6.1.2.1.2
Este formato para la representación de
variables puede ser expresadas tanto en
ASCII como números separados por puntos,
en una notación conocida como OID (Object
Identifier) o descriptor.
Así sucesivamente hasta especificar la variable
(u objeto) y el puerto a consultar.
SNMP
18
SNMP: comandos básicos
• OBTENER (GET), 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), 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
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. Se puede explotar for fuerza bruta.
A pesar de que es la versión inicial es la que se distribuye en muchos
equipos.
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).
SNMPv2 puede leer SNMPv1.
Versión 3: Para evitar la falta de seguridad en las transmisiones (con
cifrado y autenticación), proporciona una capa o parche complemento a
SNMPv1 y v2, que añade a los mensajes SNMP (v1 y v2) una
cabecera adicional.
Si no se dispone de seguridad suficiente, con carácter general es
aconsejable deshabilitar la ejecución de comandos SET.
SNMP
22
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
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, como el número de paquetes procesados.
SNMP
24
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.
SNMP
25
PRIMITIVAS
Operaciones SNMP
1.
2.
3.
4.
5.
6.
7.
8.
9.
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
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
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, NOTIFICATION, REPORT (en SNMP v2)
Mensajes de un dispositivo administrado a otros dispositivos para
intercambiar información, errores, confirmaciones, etc.
SNMP
28
SNMP
29
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.1.1 public iso.org.dod.internet.mgmt.mib_2.ip.ipDefaultTTL
snmpget 147.156.1.1 public 1.3.6.1.2.1.ip.ipDefaultTTL
SNMP
30
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,
ifOutOctets, sobre el puerto correspondiente de
un router.
snmpget IP_router public 1.3.6.1.2.1.2.ifInOctects.1
snmpget IP_router public 1.3.6.1.2.1.2.ifOutOctects.1
SNMP
31
Monitorización inteligente
Ejemplo 1:
Mediante SNMP, un router puede reportar un incremento de la carga cada
10 %.
“Si utiliza un sondeo dirigido por interrupción y se conoce la carga del
sondeo regular, puede dar instrucciones al router para enviar una
interrupción cuando se experimente un incremento significativo en la
carga,10%”
Después de recibir un mensaje de interrupción, el servidor puede seguir
sondeando al dispositivo para mayores detalles.
Ejemplo 2:
Otro caso de configuración, cuando el router de salida con acceso a Rediris
tiene tráfico de salida superior a 34 Mbps, que mande al administrador de la
red notificación o alerta
SNMP
32
Problema: SNMP y congestión
La monitorización se realiza por la propia red, por
tanto si la red está congestionada, puede conllevar
más problemas.
Si existe una fallo general en cualquier parte de la
red (p.ej fallo de la corriente eléctrica), cada
dispositivo administrado por SNMP tratará de
enviar al mismo tiempo, mensajes controlados por
interrupción hacia el servidor, para reportar el
problema. Esto puede congestionar la red y
producir una información errónea en el servidor.
SNMP
33
Otras redes, otros segmentos
Comentario a la monitorización
SNMP gestiona dispositivos individuales, pero no
permite diagnosticar fallos en una red remota u
otro segmento de red.
Para ello, el software de monitorización debe
trasladarse a cada segmento de red.
Esto se puede resolver mediante el uso de agentes en
los segmentos remotos de red, utilizando equipos
especiales o bien ordenadores de propósito
general, llamados sondas RMON (Remote
MONitor)
SNMP
34
RMON Remote Monitor (1/2)
Una de las mejoras principales de SNMP se denomina Monitoreo Remoto
(RMON).
Las extensiones de RMON a SNMP brindan la capacidad para observar la
red como un todo, en contraste con el análisis de dispositivos
individuales, declarándose para ello una MIB especial para guardar
información de monitorización de un segmento de red diferente.
La MIB asociada es 1.3.6.1.2.1.16
Las sondas RMON recopilan información y tiene la misma función que un
agente SNMP, transmitiendo la información periódicamente. Además,
pueden procesar la información a enviar a la estación de administrador.
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, en un switch, en un router u otro dispositivo específico). Además,
permite añadir redundancia a la administración de la red, ya que RMON
permite volcar los datos a varias consolas de administración.
SNMP
35
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.
SNMP
36
Funcionamiento de RMON
RED
INTERNA
Inform Request
Response
Gestor
RMON
Gestor
RMON
central
SNMP
37
MIBs de RMON1
1.- Statistics. Estadística en tiempo real de una LAN
(utilización, colisiones, errores CRC, …)
2.- History. Histórico de la estadística
3.- Alarm. Definiciones de Traps
4.- Hosts. Estadísticas de un host específico de la LAN
(bytes enviados/recibidos, …)
5.- Hosts top N. Registro de las conexiones “top N” más
activas en un periodo de tiempo
6.- Matrix. Matriz de tráfico enviado/recibido entre sistemas
7.- Filter. Filtrar según ciertos patrones (direcciones MAC,
puertos TCP
8.- Capture. Recoge paquetes que cumplen el filtro
9. Event. Envía alarmas (SNMP traps)
10.- Token Ring. Extensiones para Token Ring
SNMP
38
MIBs de RMON2
1.- Protocol Directory. Lista de protocolos que se puede
monitorizar
2.- Protocol Distribution. Estadística de tráfico para cada protocolo
3.- Address Map. Mapeo de direcciones IP y MAC
4.- Network-Layer Host. Estadísticas de la capa 3 para cada host
5.- Network-Layer Matrix. Estadística de la capa 3 (origen/destino)
para cada par de hosts
6.- Application-Layer Host. Estadísticas para la capa de aplicación
para cada host
7. Application-Layer Matrix. Estadística origen/destino para cada
par de hosts
8.- User History. Muestra en un periodo de algunas variables
9. Probe Configuration. Configuración remota de sondas
10. RMON Conformance. Requisitos de : requirements for RMON2
MIB conformance
SNMP
39
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.
• Genera páginas HTML con imágenes PNG, que ofrecen una visión en
tiempo real del tráfico.
• 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.
• Guarda la información por semanas, meses y años, monitorización
hasta 200 enlaces.
• Se utiliza generalmente para monitorizar la carga del sistema, sesiones
establecidas, tráfico, errores, etc
• Es de libre distribución y debe ser utilizado bajo los términos de GNU
http://www.mrtg.org/
SNMP
42
EJEMPLO DE MRTG: Esta página muestra el numero de líneas ocupadas en el servidor de acceso telefónico de la
Universitat: annexy. Annexy dispone de un primario RDSI (30B+D), con 30 líneas disponibles para conexiones vía
modem Las estadísticas se ejecuten cada 5 minutos.
Numero de lineas ocupadas de servidores annexy
Sistema:
annexy.uv.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
RFCs
• RFC 1155 (SNMPv1 y SMI) y RFC
1157: SNMPv1
• RFC 1902 (SNMPv2 y SMI), RFC 1441
HASTA RFC 1452: SNMP VERSION 2
• RMON1: RFC1271
• RMON2: RFC2021, 2034
• RFC 2570-2576: SNMPv3
SNMP
48
1.3.6.1.2.1.host(25).hrDevice(3).hrDeviceTable(2).hrDeviceEntry(1).hrDeviceStatus(5).puerto(1)
1.3.6.1.2.1.25.3.hrPrinterTable(5).hrPrinterEntry(1).hrPrinterStatus(1).puerto(1)
1.3.6.1.2.1.25.3.5.1.hrPrinterDetectedErrorState(2).puerto(1)
SNMP
49
1.3.6.1.2.1.host(25).hrDevice(3).hrDeviceTable(2).hrDeviceEntry(1).hrDeviceStatus(5).puerto(1)
5 = “down”  impresora caida
1.3.6.1.2.1.25.3.hrPrinterTable(5).hrPrinterEntry(1).hrPrinterStatus(1).puerto(1)
1 = “other” no da información del estado
1.3.6.1.2.1.25.3.5.1.hrPrinterDetectedErrorState(2).puerto(1)
SNMP
50
No hay ningún valor de String: Sin
errores