Protocolo SNMPSimple Network Management Protocol
- 2018 -
Laboratorio de REDESRecuperación de Informacióny Estudios de la Web
Administración y Gestión de RedesLic. en Sistemas de Información
Equipo docente:
Fernando Lorge ([email protected])
Santiago Ricci ([email protected])
Alejandro Iglesias ([email protected])
Mauro Meloni ([email protected])
Estándares
CMIPCMIP SNMPSNMP NETCONFNETCONF
(OSI)(OSI) (IETF)(IETF) (IETF)(IETF)
Common Management Common Management Information ProtocolInformation Protocol
Simple Network Simple Network Management ProtocolManagement Protocol
Network Configuration Network Configuration ProtocolProtocol
Recomendaciones ITU-T Recomendaciones ITU-T X.700, ISO/IEC 9596-1X.700, ISO/IEC 9596-1
Varias RFC's (desde fines Varias RFC's (desde fines de 80's)de 80's)
RFC 6241 (2011)
Diseñado en los '80 Diseñado en los '80 como el standard para como el standard para
gestión de redesgestión de redes
Inicialmente standard Inicialmente standard simple mientras se simple mientras se
desarrollaban desarrollaban alternativas mejoresalternativas mejores
API formal expuesta por API formal expuesta por los dispositivoslos dispositivos
Utiliza el paradigma RPCUtiliza el paradigma RPCCodificación XMLCodificación XML
Estandarización muy Estandarización muy lentalenta
Desplegado y adoptado Desplegado y adoptado rápidamenterápidamente
En rápida adopciónEn rápida adopción
Complejo y requiere mas recursos que snmp
Muy utilizado para monitoreo, configuración
limitada
Seguridad y capacidad de configuración
SNMP
Simple Network Management Protocol
● Capa de aplicación, de la familia TCP/IP.
● Facilita el intercambio de información de administración entre dispositivos de red.
● SNMP permite crear herramientas de gestión que:
● Informen del funcionamiento de la red o subred
● Detecten fallas y funcionamientos incorrectos
● Permitan actuar sobre dispositivos de la red (por ejemplo, modificando su configuración, interfaces activas, etc.)
Arquitectura
agent data
agent data
agent data
agent data
managed device
managed device
managed device
managed device
managingentity data
networkmanagement
protocol
Los“Managed devices”
contienen“Managed objects”
cuyos datos son recolectados
dentro de una “Management
Information Base”usando un
“Network ManagementProtocol”
Arquitectura
● MIB: Management Información Base. - Colección de objetos identificados para la gestión, sus tipos y relaciones en una entidad gestionada.
● SMI: Structure of Management Information.
- Sintaxis usada para especificar una MIB (SMIv2). Define las reglas generales para nombrar los objetos, definir sus tipos y codificar sus valores.
● SNMP.- Protocolo para gestión. Sintaxis, semántica y temporización. Permite leer (y modificar) los valores de las variables de los objetos gestionados.
● Seguridad, capacidades de administración - Mayormente en la versión 3
Evolución
SNMPv1
Diseñado a mediados de los 80.
● Idea: Lograr una solución temporal hasta la llegada de protocolos de gestión mejores y más completos.
● Basado en el intercambio de información de red a través de mensajes (get y set), en texto plano.
● Agentes y entidad administradora asociados a un grupo denminado “comunidad”
● Read-Only, Read-and-write, Trap
● No estaba pensado para poder gestionar muchas redes (ni muy grandes)
Evolución
SNMPv2
Diseñado en 1993 y revisado en 1996 (SNMPv2c)
● Incorpora:
● Mensajes get-bulk-request (múltiples variables)
● Mayor detalle en la definición de las variables.
● Estructuras para facilitar el manejo de los datos.
No fue más que un parche, las innovaciones (como los mecanismos de seguridad) no se llegarona implementar.
Evolución
SNMPv3
Año 2002 - Internet Standard
● Énfasis en los mecanismos de seguridad.
● Integridad del Mensaje: Asegura que el paquete no haya sido alterado durante la transmisión.
● Autenticación: Asegura la identidad del emisor del mensaje. (Username, HMAC-MD5 y HMAC-SHA.)
● Cifrado: Asegurar que el contenido del mensaje sólo sea visible para las partes autorizadas.(DES, 3DES, AES128, AES192, AES256)
Componentes
Estructura de la MIB
● La ISO define una estructura jerárquica (niveles), donde se identifican los objetos.
● La MIB y los objetos contenidos en estas son situados en este árbol siguiendo las normas determinadas.
● Cada nivel, subnivel y objeto son representados con un nombre y un número dentro del árbol (OID).
● Se puede hacer referencia a un objeto empleando una secuencia de nombres o de números.
● Esta secuencia de nombres o números contiene la ruta que se sigue desde la “raiz” del árbol hasta la “hoja”.
● La hoja hace referencia al objeto que es la última entidad posible.
Jerarquía
OIDs
OID (Object identifier) ● Se define a cada objeto de acuerdo a la posición que ocupa dentro del árbol ISO.
● Siguiendo la secuencia desde la raíz se localiza e identifica a cada objeto. Dos formas de expresar un OID:
Composición textual de la localización.OID del objeto (numéricamente).
Ejemplo: para hacer referencia al objeto sysName
MIB-II
RFC 1213Management Information Base for Network Management
of TCP/IP-based internets: MIB-II
Grupos:
● System { mib-2 1 }● Interfaces { mib-2 2 }● Address Translation (deprecated) { mib-2 3 }● IP { mib-2 4 }● ICMP { mib-2 5 }● TCP { mib-2 6 }● UDP { mib-2 7 }● EGP { mib-2 8 }● Transmission { mib-2 10 }● SNMP { mib-2 11 }
MIBs
Para definir los objetos en la MIB se usa SMI, que establece reglas para:
● Nombrar cada objeto● Definir el tipo de valor● Control de acceso● Tipo de respuesta● Descripción
(Se definen usando SMI – SMIv2 – un subset de
ASN.1)
ipForwarding OBJECT-TYPE SYNTAX INTEGER { forwarding(1), -- acting as a gateway not-forwarding(2) -- NOT acting as a gateway } ACCESS read-write STATUS mandatory DESCRIPTION "The indication of whether this entity is acting as an IP gateway in respect to the forwarding of datagrams received by, but not addressed to, this entity. IP gateways forward datagrams. IP hosts do not (except those source-routed via the host).
Note that for some managed nodes, this object may take on only a subset of the values possible. Accordingly, it is appropriate for an agent to return a `badValue' response if a management station attempts to change this object to an inappropriate value." ::= { ip 1 }
ipDefaultTTL OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "The default value inserted into the Time-To-Live field of the IP header of datagrams originated at this entity, whenever a TTL value is not supplied by the transport layer protocol." ::= { ip 2 }
ipInReceives OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total number of input datagrams received from interfaces, including those received in error." ::= { ip 3 }
Árbol de MIB
Ejemplo
MIBs
EjemploudpTable OBJECT-TYPE
SYNTAX SEQUENCE OF UdpEntryACCESS not-accessibleSTATUS mandatoryDESCRIPTION
"A table containing UDP listener information."::= { udp 5 }
udpEntry OBJECT-TYPESYNTAX UdpEntryACCESS not-accessibleSTATUS mandatoryDESCRIPTION
"Information about a particular current UDPlistener."INDEX { udpLocalAddress, udpLocalPort }::= { udpTable 1 }
UdpEntry ::=SEQUENCE {
udpLocalAddressIpAddress,
udpLocalPortINTEGER (0..65535)
}
udpLocalAddress OBJECT-TYPESYNTAX IpAddressACCESS read-onlySTATUS mandatoryDESCRIPTION
"The local IP address for this UDP listener. Inthe case of a UDP listener which is willing toaccept datagrams for any IP interface associatedwith the node, the value 0.0.0.0 is used."
::= { udpEntry 1 }
udpLocalPort OBJECT-TYPESYNTAX INTEGER (0..65535)ACCESS read-onlySTATUS mandatoryDESCRIPTION
"The local port number for this UDP listener."::= { udpEntry 2 }
Ejemplo Snmpbulkwalk:
iso.3.6.1.2.1.7.5.1.1.10.0.0.204.123 = IpAddress: 10.0.0.204iso.3.6.1.2.1.7.5.1.2.10.0.0.204.123 = INTEGER: 123
MIB-II
System: { mib-2 1 }(Implementación Obligatoria)
● sysDescr {system1} Descripción del sistema (hardware, SO, version)● sysObjectID {system2} Identificación del objeto provista por el "vendor"● sysUpTime {system3} Tiempo transcurrido desde el arranque● sysContact {system4} Identificación de la persona de contacto● sysName {system5} Nombre asignado al nodo (por ej. nombre dns)● sysLocation {system6} Ubicación física del nodo● sysServices {system7} Servicios provistos por el nodo (en que capa ofrece
servicios)
RFC 1213
MIB-II
RFC 1213
Interfaces: { mib-2 2 }
● ifNumber {interfaces 1} Cantidad de interfaces de red en el sistema● ifTable {interfaces 2} Contiene información de las interfaces de red● ifDescr {ifEntry 2} Descripción de la interfaz● ifType {ifEntry 3} Tipo de interfaz (enlace-fisico)● ifMtu {ifEntry 4} Tamaño máximo de datagrama que se puede enviar por la
interfaz● ifSpeed {ifEntry 5} Estimación de la tasa de transferencia actual● ifPhysAddress {ifEntry 6} Dirección física (por ej MAC en ethernet)● ifAdminStatus {ifEntry 7} Estado deseado de la interfaz (up - down - testing)● ifOperStatus {ifEntry 8} Estado actual de la interfaz (up - down - testing)● ifLastChange {ifEntry 9} Momento del último cambio de estado● ifInOctets {ifEntry 10} Número total de bytes recividos● ...● ifOutOctets {ifEntry 16} Número total de bytes enviados● ifOutQlen {ifEntry 21} Tamaño de la cola de paquetes de salida
MIB-II
RFC 1213
Ip: { mib-2 4 }(Implementación obligatoria)
● ipForwarding {ip 1} Indica si la entidad actúa como ruteador● ipDeafultTTL {ip 2} Valor por omisión para el campo Time To Live● ipInReceives {ip 3} Número total de paquetes recibidos● ipInHdrErrors {ip 4} Número de paquetes descartados (por error en cheksum, ttl
excedido, etc.)● ipInAddrErrors {ip 5} Número de paquetes descartados (por dirección destino)● ipForwDatagrams {ip 6} Número de paquetes cuya ip destino no es el
dispositivo● ...● ipFragOKs {ip 17} Número de paquetes fragmentados con éxito● ipRouteTable {ip 21} Tabla de rutas● ipipNetToMediaTable {ip 22} Tabla de traducción de
direcciones IP a direcciones físicas
MIB-II
RFC 1213
ICMP: { mib-2 5 }(Implementación obligatoria)
● icmpInMsgs {icmp 1} Número total de mensajes ICMP recividos● icmpInErrors {icmp 2} Número total de mensajes ICMP errónes recibidos● icmpInDestUnreachs {icmp 3} Número total de mensajes ICMP del tipo destino
inalcazable recibidos● icmpInInTimeExcds {icmp 4} Número total de mensajes ICMP del tipo tiempo
excedido recibidos● ...● icmpInEchos {icmp 8} Número total de mensajes ICMP del tipo echo request
recibidos● icmpOutDestUnreachs {icmp 16} Número total de mensajes ICMP del tipo
destino inalcazable enviados● icmpOutEchoReps {icmp 22} Número total de mensajes ICMP
del tipo echo reply enviados
MIB-II
RFC 1213
TCP: { mib-2 6 }(Implementación obligatoria para todos los sistemas que implementen TCP)
● tcpRtoAlgorithm {tcp 1} Algoritmo usado para calcular el valor de timeout para retransmisión
● tcpMaxConn {tcp 4} Número máximo de conexiones TCP admitidas● tcpActiveOpens {tcp 5} Número de conexiones TCP en estado SYN-SENT● tcpCurrEstab {tcp 5} Número de conexiones TCP en estado ESTABLISHED o
CLOSE-WAIT● tcpInSegs {tcp 10} Número de segmentos recibidos● tcpOutSegs {tcp 11} Número de segmentos enviados● tcpRetranSegs {tcp 12} Número de segmentos retransmitidos● tcpConnTable {tcp 13} Tabla con información acerca de las conexiones TCP● tcpInErrors {tcp 14} Número de segmentos recibidos con error● tcpOutTsts {tcp 15} Número de segmentos enviados con el flag RST
MIB-II
RFC 1213
UDP: { mib-2 7 }(Implementación obligatoria para todos los sistemas que implementen UDP)
● udpInDatagrams {udp 1} Número total de datagramas enviados a usuarios UDP● udpNoPorts {udp 2} Número total de datagramas recibidos para los que no había
aplicación en el puerto destino● udpInErrors {udp 3} Número total de datagramas recibidos que no se entregaron
por razón distinta a la falta de aplicación en el puerto destino● udpOutDatagrams {udp 4} Número total de datagramas enviados por la
entitdad● udpTable {udp 5} Tabla conteniendo información de puertos en escucha
MIB-II
RFC 1213
SNMP: { mib-2 11 }(Implementación obligatoria para todos los sistemas que implementen una entidad SNMP)
● snmpInPkts {snmp 1} Número total de mensajes snmp entregados a la entidad snmp por la capa de transporte
● snmpOutPkts {snmp 2} Número total de mensajes snmp entregados por la entidad snmp al servicio de transporte
● snmpInBadVersions {snmp 3} Número total de mensajes snmp de versión no soportada
● snmpInBadCommunityNames {snmp 4} Número total de mensajes snmp con nombre de comunidad no conocido
● snmpInGetRequests {snmp 15} Número total de mensajes snmp GET-REQUEST procesados
● snmpInGetNets {snmp 16} Número total de mensajes snmp GET-NEXT procesados
● snmpInTraps {snmp 17} Número total TRAPS procesados● snmpoUTTraps {snmp 17} Número total TRAPS generados
MIB-Ejemplo Cisco
Ejemplo Fabricante – Cisco MIBsMIB Locatorhttps://mibs.cloudapps.cisco.com/ITDIT/MIBS/MainServlet
Public FTP – Cisco MIBsftp://ftp.cisco.com/pub/mibs/
SNMP: Frequently Asked Questions About MIBshttps://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/9226-mibs-9226.html
MIB Compilers and Loading MIBshttps://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/26015-mibcompilers.html
Ejemplo Router Cisco 2801 IOS 12.4(23d) – IP Base Feature Sethttps://mibs.cloudapps.cisco.com/ITDIT/MIBS/MainServlet?ReleaseSel=3755&PlatformSel=87&fsSel=776
Orden de Carga:
MIB-Ejemplo Cisco
Ejemplo Fabricante – Cisco MIBs
Modos de Operación
agent data
Managed device
managingentity
response
agent data
Managed device
managingentity
trap msgrequest
request/response mode trap mode
Ejemplos
SetRequest: modifica el valor de un objeto dentro del dispositivo, tras la modificación el Agente SNMP confirma la operación con un GetResponse.
TRAPs
Trap: es una comunicación asíncrona que parte desde el Agente hacia el Administrador SNMP. Tiene como objeto emitir una alerta al administrador ante un evento sucedido en el dispositivo.Hay seis tipos de trap estandarizados y se ha reservado un espacio para poder definir nuevos traps (propietarias).
Operación
Primitivas
Mensajes SNMP
Operación Función
get-request Solicita el valor de una variable específica
get-next-request Solicita el valor de una variable sin especificar su nombre. Utilizada para navegar un subárbol en órden lexicográfico
set-request Solicita la modificación del valor de una variable
get-bulk-request (v2 y 3) Solicita un conjunto de valores en una sola operación
get-response Respuesta a una petición get-request, get-next-request o set-request
Inform (v2 y 3) Permite el envío de traps con confirmación
report (v3) Permite la comunicación entre administradores
trap Mensaje asíncrono enviado por los agentes a la NMS para informar alguna condición especial
Códigos del Protocolo
Tipos de PDUs
Tipo Tag (Binario) Tag (Hex)
get-request 10100000 A0
get-next-request 10100001 A1
get-response 10100010 A2
set-request 10100011 A3
get-bulk-request (v2 y 3) 10100101 A5
Inform (v2 y 3) 10100110 A6
trap 10100111 A7
report (v3) 10101000 A8
PDU SNMP
Formato Mensajes (Get, Get-next, Set, Response)
Version Community SNMP PDU
String en texto plano (usada como password)
Nro Entero que identifica versión del protocolo
PDU Type
Request ID
Error Status
Error Index
Object1, value 1
Object2, value 2
Objectn, value n
Entero que indica tipo (función) de la PDU
Idenftificador único para vincular consultas-respuestas
Utilizado en respuestas para indicar estado
Apuntador al objeto que generó el error
Secuencia de pares nombre-valor
PDU SNMP
Formato Mensajes SNMPv3
Version ID Max Size Flags Security Model
AuthoritativeEngineID
AuthoritativeEngineBoots
AuthoritativeEngineTime
User Name SecurityParameters
ContextEngine ID
Contextname
PDU
Cifrado si se aplicaFormato igual a SNMPv2
Arquitectura SNMPv3 +------------------------------+ | Network | +------------------------------+ ^ ^ ^ v v v +-------------------------------------------------------------------+ | +--------------------------------------------------+ | | | Transport Subsystem | | | | +-----+ +-----+ +-----+ +-----+ +-------+ | | | | | UDP | | TCP | | SSH | | TLS | . . . | other | | | | | +-----+ +-----+ +-----+ +-----+ +-------+ | | | +--------------------------------------------------+ | | ^ | | | | | Dispatcher v | | +-------------------+ +---------------------+ +----------------+ | | | Transport | | Message Processing | | Security | | | | Dispatch | | Subsystem | | Subsystem | | | | | | +------------+ | | +------------+ | | | | | | +->| v1MP |<--->| | USM | | | | | | | | +------------+ | | +------------+ | | | | | | | +------------+ | | +------------+ | | | | | | +->| v2cMP |<--->| | Transport | | | | | Message | | | +------------+ | | | Security | | | | | Dispatch <--------->| +------------+ | | | Model | | | | | | | +->| v3MP |<--->| +------------+ | | | | | | | +------------+ | | +------------+ | | | | PDU Dispatch | | | +------------+ | | | Other | | | | +-------------------+ | +->| otherMP |<--->| | Model(s) | | | | ^ | +------------+ | | +------------+ | | | | +---------------------+ +----------------+ | | v | | +-------+-------------------------+---------------+ | | ^ ^ ^ | | v v v | | +-------------+ +---------+ +--------------+ +-------------+ | | | COMMAND | | ACCESS | | NOTIFICATION | | PROXY | | | | RESPONDER |<->| CONTROL |<->| ORIGINATOR | | FORWARDER | | | | Application | | | | Applications | | Application | | | +-------------+ +---------+ +--------------+ +-------------+ | | ^ ^ | | | | | | v v | | +----------------------------------------------+ | | | MIB instrumentation | SNMP entity | +-------------------------------------------------------------------+
ArquitecturaSMNPv3
Códigos del Protocolo
Tipos de errores (snmp v1)
Snmp v2 define tipos de errores con mayor especificidad (6-18)
Estado Nombre Significado
0 noError Sin error
1 tooBig Respuesta demasiado larga para un mensaje
2 noSuchName Variable inexistente
3 badValue El valor a almacenar es inválido
4 readOnly El valor no puede ser modificado
5 genErr Otros errores
Códigos del Protocolo
Tipos de errores (snmp v2)
TRAPs
Tipos genéricos de TRAPs:
● 0-Cold start: El agente ha sido inicializado/reinicializado
● 1-Warm start: La configuración del agente ha cambiado
● 2-Link down: Una interfaz se encuentra fuera de servicio
● 3-Link up: Una interfaz se encuentra en servicio
● 4-Authentication failure: El agente ha recibido un requerimiento de un NMS no autorizado
● 5-EGP neighbor loss: Cuando los routers usan EGP, un equipo adyacente se encuentra fuera de servicio
● 6-Enterprise: En esta categoría se encuentran todos los nuevos traps incluidos por los vendedores
TRAPs
Ejemplos
● Se “cae” una interfaz
● Se estropea el ventilador de un router
● La carga de procesos excede un límite
● Se llena una partición de disco
● Un UPS cambia de estado
● Intento de acceso no autorizado
● ...
RMON
Remote MonitoringDefine una MIB de monitorización remota ampliandosu funcionalidad.
• Objetivos:- Operación off-line- Detección y notificación de problemas (Monitoreo preventivo)- Datos de valor añadido- Gestores múltiples
• Control de monitores remotos– El monitor remoto es configurado para captura de datos
(especificando tipo de datos y forma de recolección):• Tabla de control: describe la configuración del monitor RMON
especificando la información que captura• Tabla de datos: almacena la información recogida.
RMON
Invocación de una acción
Mediante SNMP se puede enviar un comando(usando un objeto para representar un comando).
• El MIB RMON1 (el OID es 1.3.6.1.2.1.16 - iso.org.dod.internet.mgmt.mib-2.rmon) se divide en nueve grupos:
• Estadísticas (1.3.6.1.2.1.16.1): cantidad de bytes, paquetes, errores...(contadores)
• Historia (1.3.6.1.2.1.16.2):Muestras periódicas del grupo estadisticas.
• Alarma (1.3.6.1.2.1.16.3): Intervalo de muestreo y umbral de alarma para cualquier dato grabado por el agente RMON.
• Hosts (1.3.6.1.2.1.16.4): Datos sobre cada nodo de la red detectado.
• HostTopN (1.3.6.1.2.1.16.5): Lista ordenada por parámetros de objetos creados a partir de la tabla "host".
• Matriz (1.3.6.1.2.1.16.6): Información sobre tráfico y errores entre dos nodos.
• Filtro (1.3.6.1.2.1.16.7): Observar paquetes que “matchean” con un filtro. (patrón o estado)
• Captura de paquetes (1.3.6.1.2.1.16.8): Almacena paquetes que matchean con un filtro.
• Evento (1.3.6.1.2.1.16.9): Controla los eventos generados por alarmas.
RMON
Próxima: Laboratorio
Bibliografía:
Essential SNMP (2da Ed.), Douglas R. Mauro and Kevin J. Schmidt. O’Reilly Media, 2005
The Illustrated Network: How TCP/IP Works in a Modern Network, Chapter 24. Walter Goralski. Morgan Kaufmann, 2008
RFC's 2578, 1213, 3411-3418, 5590
Bibliografía