Professional Documents
Culture Documents
NDICE
PROTOCOLO SNMP: ESTUDIO EN PROFUNDIDAD
1. INTRODUCCIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. CONCEPTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 3. MODELO DE INFORMACIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 4. MODELO ADMINISTRATIVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 5. MODELO OPERACIONAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
La principal tecnologa de interconexin de redes es el conjunto de protocolos de Internet llamados TCP/IP, que se crearon en la Agencia de Proyectos de Investigacin Avanzada de Defensa (DARPA) y que son los que se usan en la Red Internet, (con mayscula, la red de redes global) pero tambin en la interconexin de redes menores internet. SNMP se sita en el tope de la capa de transporte de la pila OSI, o por encima de la capa UDP de la pila de protocolos TCP/IP. Siempre en la capa de transporte. Grficamente se podra ver as:
El protocolo Snmpv1 fue diseado a mediados de los 80 por Case, McCloghrie, Rose, and Waldbusser, como una solucin a los problemas de comunicacin entre diferentes tipos de redes.
En un principio, su principal meta era el lograr una solucin temporal hasta la llegada de protocolos de gestin de red con mejores diseos y mas completos. Pero esos administradores de red no llegaron y SNMPv1 se convirti en la nica opcin para la gestin de red. El manejo de este protocolo era simple, se basaba en el intercambio de informacin de red a travs de mensajes (PDUs). Adems de ser un protocolo fcilmente extensible a toda la red, debido a esto su uso se estandarizo entre usuarios y empresas que no queran demasiadas complicaciones en la gestin de sus sistemas informticos dentro de una red. No obstante este protocolo no era perfecto, adems no estaba pensado para poder gestionar la inmensa cantidad de redes que cada da iban apareciendo. Para subsanar sus carencias surgi la versin 2 (SNMP v2). Las mayores innovaciones respecto a la primera versin son:
El impacto de aadir una administracin de red a un nodo administrable debe ser mnimo, reflejando un comn denominador ms bajo.
El axioma fundamental se debe a las grandes diferencias entre los distintos nodos administrables que existen. 1.2 Caractersticas de los Nodos Administrables Podemos considerar que cada nodo administrable est formado por tres componentes: 1.Funciones de usuario. 2.Un protocolo de administracin, que permite monitorizar y controlar el nodo administrable. 3.Instrucciones de administracin, que interactan con la implementacin del nodo administrable para permitir la monitorizacin y el control. La interaccin entre estos tres componentes es sencilla: las instrucciones actan como un pegamento entre las funciones de usuario y el protocolo de administracin. Esto se debe a un mecanismo de comunicacin interno en el que las estructuras de datos de las funciones de usuario deben ser accesibles y modificables a peticin del protocolo de administracin. 1.3 Modelo Administrativo Actualmente los intercambios de informacin son insuficientes para proporcionar la administracin de los nodos. El protocolo de administracin trabaja en el entorno del modelo administrativo, que mantiene polticas de autorizacin y autentificacin. Esto permite determinar al nodo cmo se est administrando, de modo que slo los procesos de aplicaciones autorizadas realicen la administracin.
10
La eleccin de un servicio de transporte por parte del protocolo de administracin es importante ya que de los mecanismos internos del servicio de transporte depende la efectividad del protocolo, y de acuerdo con el axioma fundamental, hay que elegir la forma de comunicacin menos impactante en el proceso.
La aplicacin de administracin es la que debe decidir el nivel de fiabilidad deseado e implementar el algoritmo apropiado, sin dejar esta decisin en manos del servicio de transporte. De esta manera, el nodo tendra menos carga debido a esta eleccin. Todo esto conduce a elegir un servicio de transporte no orientado a conexin. Esta eleccin implica un comportamiento sin preocupaciones por parte del agente y permite a la aplicacin controlar el nivel de fiabilidad. Hay otro motivo para elegir servicios de transporte no orientados a conexin. Cuando la red est congestionada y es difcil establecer una conexin, un protocolo orientado a conexin realiza sta en tres pasos. Si la red est perdiendo paquetes, es ms difcil establecer este modo de conexin que otro modo de un solo paso. Por tanto es conveniente usar la segunda forma, ya que en esos casos es cuando realmente la red necesita ser controlada y administrada. 4. Informacin de administracin Finalmente, hemos de explicar la informacin a intercambiar entre la estacin de administracin y el nodo, utilizando el protocolo de administracin. Una unidad de informacin de administracin se denomina objeto administrado (managed object), y un conjunto de dichos objetos se denomina Mdulo de Base de Informacin de Administracin (Mdulo MIB).
La caracterstica ms importante de los mtodos usados para describir la informacin de administracin es la extensibilidad, de modo que se pueda comenzar con un pequeo conjunto de definiciones, para aumentarlo segn crezcan las necesidades.
Un efecto lateral de la extensibilidad, es que los vendedores de dispositivos pueden aadir sus propios objetos para mejorar sus productos, lo que puede influir en la estandarizacin de la tecnologa de administracin.
11
2. 3.
4.
12
13
Antes de comenzar, hay que aclarar la relacin entre variables, objetos y tipos de objetos. Un objeto administrable tiene asociado una sintaxis y una semntica de tipo abstracto, mientras que una variable es una instancia de un objeto particular. En este caso tambin se denomina instancia de un objeto. ESTRUCTURA DE LA INFORMACIN DE ADMINISTRACIN
La Estructura de la Informacin de Administracin (SMI) define las reglas para definir la informacin de administracin independientemente de los detalles de implementacin. La SMI se define usando ASN.1 (Abstract Syntax Notation).
Si se piensa que una coleccin de objetos administrados est almacenada, por ejemplo, en una base de datos, la SMI define el esquema de esa base de datos. En realidad, esa base de datos se denomina Base de Informacin de Administracin (MIB). 1. Mdulos de Informacin Existen tres clases de mdulos ASN.1, tambin llamados Mdulos de Informacin, definidos por el SMI: - Mdulos MIB, que define una coleccin de objetos de administracin afines. - Sentencias de Conformidad, que definen un conjunto de requisitos de los nodos con respecto a uno o ms mdulos MIB. - Sentencias de Capacidad, que describe la capacidad de un nodo para implementar los objetos definidos en uno o ms mdulos MIB.
14
15
16
Una vez que los recursos son identificados, slo resta determinar las operaciones SNMP empleadas en ellos. A esto se denomina Poltica de Acceso, y es usada para el control del flujo de informacin entre la entidad agente SNMP y una entidad de aplicacin de gestin dada.
2. Comunidades
SNMP v2 esta diseado para soportar mltiples entornos de administracin. El entorno que veremos se denomina entorno de gestin basado en comunidades, debido a que usa el concepto de comunidad empleado en el SNMP original.
SNMP define una comunidad como una relacin entre entidades SNMP. Una comunidad SNMP se escribe como una cadena de octetos sin interpretacin. Esta cadena se llama nombre de comunidad. Cada octeto toma un valor entre 0 y 255. Cuando se intercambian mensajes SNMP, contienen dos partes: - Una cadena de comunidad, enviada en texto sencillo y, - Datos, conteniendo una operacin SNMP y los operandos asociados.
17
18
19
SNMP tiene pocos requisitos de transporte ya que usa un servicio de transporte no orientado a conexin, y que normalmente es UDP. Aunque sto ratifica el Axioma Fundamental, hay una razn ms importante: Las funciones de administracin de red se realizan cuando hay problemas, de modo que la aplicacin de administracin es la que decide qu restricciones realiza para el trfico de administracin. La eleccin de un servicio de transporte no orientado a conexin permite a la estacin determinar el nivel de retransmisin necesario para complacer a las redes congestionadas. 1. Interacciones del Protocolo Una interaccin SNMP consiste en una peticin de algn tipo, seguida por una respuesta. Hay cuatro resultados posibles de una operacin: Una respuesta sin excepcin o error. Una respuesta con una o ms excepciones. Una respuesta con error. Sobrepasar el tiempo de espera (timeout).
A continuacin se describen los campos del tipo de dato PDU. - request-id, valor entero usado por la aplicacin para distinguir entre peticiones pendientes, lo que permite a la aplicacin mandar rpidamente varios mensajes SNMP, reconocer mensajes duplicados en la red y medir el tiempo del trfico que genera. Los agentes no pueden modificar este campo. - error-status, si no es cero, representa un error al procesar la peticin y que debera ignorarse el campo variable-bindings. - error-index, si no es cero indica qu variable de la peticin es errnea. - variable-bindings, Lista de variables, con su nombre y valor.
20
21
22
1.1.4 De la Interaccin al Procesamiento Para procesar las peticiones, primero debe aceptarse una estructura Message para que la evale la entidad. Cuando la peticin se procesa, se examina la lista de variables instanciadas; en el caso que el campo variablebindings est vaco, termina el procesamiento devolviendo una respuesta noError.
2. Peticiones de Recuperacin
Para examinar eficientemente la informacin de administracin, el entorno de administracin usa un mtodo inteligente para identificar las instancias: Es usado un OBJECT IDENTIFIER, formado por la concatenacin del nombre del tipo objeto con un sufijo.
1.2.1 El Operador Get Si la aplicacin de administracin conoce las instancias que necesita, realiza una get-request. Slo se pueden devolver los errores tooBig y genErr. Por otro lado, para cada variable de la peticin, la instancia se recupera de la vista del MIB con esta operacin: - Si el agente no implementa el tipo objeto asociado con la variable, se devuelve la excepcin noSuchObject. - Si la instancia no existe o no la soporta el MIB, se devuelve la excepcin noSuchInstance. - Se devuelve el valor asociado a la instancia.
23
24
BulkPDU ::= SEQUENCE { request-id Integer32, non-repeaters INTEGER(0..max-bindings), max-repetitions INTEGER(0..max-bindings), variable-bindings VarBindingList }
Este formato es estructuralmente idntico la del resto de operaciones SNMP, y los campos se describen a continuacin: request-id, el usual. non-repeaters, nmero de variables que deberan recuperarse de una vez. max-repetitions, nmero mximo de veces que otras variables deberan recuperarse. variable-bindings, el usual ignorando los valores. Cuando un agente recibe una get-bulk, calcula el mnimo de: El tamao mximo del mensaje del emisor. El tamao de la generacin de mensajes del propio agente. De aqu resta la suma de dos cantidades: El tamao de las capas de privacidad/autentificacin de la generacin de la respuesta. El tamao de una respuesta sin variables instanciadas.
Dicha diferencia indica la cantidad mxima de espacio posible para las instancias de las variables en la respuesta. Si la diferencia es menor de cero, la respuesta se pierde; si no, se genera la respuesta, que tendr cero o ms variables instanciadas. El agente examina las variables de la peticin usando el operador get-next y aadiendo cada nueva instancia con su valor a la respuesta y decrementando la cantidad de espacio libre. Si no hay suficiente espacio, se enva la respuesta antes de colapsar el espacio libre.
25
Slo hay una peticin de modificacin: El operador set. Cuando una aplicacin de administracin conoce exactamente las instancias que necesita, genera una set-request.
La semntica de la operacin set es tal que la operacin tiene xito si y slo si todas las variables se actualizan. Para explicarlo usaremos el concepto del compromiso de las dos fases, pero antes de empezar, se asegura que la respuesta no sea tan grande como para no poder ser enviada, ya que si no, se generara un error tooBig. Dicho concepto consta de dos pasadas. En la primera, cada instancia se examina y se hace una comprobacin para verificar que: - La variable es soportada por la vista del MIB para esa operacin. - Si la variable existe, el agente puede modificar las instancias del tipo objeto correspondiente.
26
3. 4. 5. 6.
7.
8.
9.
27
Desde la perspectiva del protocolo, no existe el concepto de fila en SNMP . En particular no existe relacin entre las variables presentadas en una lista de variables. Cualquier relacin existe como una caracterstica del diseo de MIB, no por operaciones de protocolo.
Podemos considerar un reto el crear instancias en una fila de conceptos, dado el modelo operacional que usa el entorno de administracin. Hay que tener en cuenta: 1. 2. 3. 4. 5. El agente puede no ser capaz de implementar algunas columnas en una fila de conceptos. El agente puede necesitar que algunas columnas se creen antes de usarlas. Los valores de todas las columnas pueden no entrar en una sola PDU. La aplicacin de administracin puede querer examinar los valores de algunas columnas. Las aplicaciones que cooperan no quieren comisionar al crear nuevas filas.
28
RowStatus ::= TEXTUAL-CONVENTION ... SYNTAX INTEGER { dos valores de estado/accin que pueden ser leidos o escritos. active(1), notInService(2), un valor de estado, que solo puede ser ledo. notReady(3), tres valores de accin que slo pueden ser escritos createAndGo(4), createAndWait(5), destroy(6) }
EN RESUMEN La principal tecnologa de interconexin de redes es el conjunto de protocolos de Internet llamados TCP/IP, que se crearon en la Agencia de Proyectos de Investigacin Avanzada de Defensa(DARPA) y que son los que se usan en la Red Internet, (con mayscula, la red de redes global) pero tambin en la interconexin de redes menores internet, (con minscula, redes locales).
29
30
Primero se selecciona el identificador deseado. Entonces la aplicacin decide lanzar un get para determinar los requisitos del agente para la columna. Todos los valores devueltos deberan ser excepcionales, ya que si no se indicara que la fila ya existe.
Entonces la aplicacin enviar al agente un set, que contiene valores para las columnas con un MAX-ACCESS de read-create y el estado de la columna puesto a createAndGo. Cuando el agente procesa la columna de estados en las instancias, si la variable ya existe, devuelve un error inconsistentValue; si no, el agente comprueba que tiene suficiente informacin (procedente del set y de informacin local) para crear y activar la fila. Si hay suficiente informacin, entonces: - Se crea la fila. - Se devuelve una respuesta con noError - El agente asigna valores por defecto a las columnas de las filas cuyos valores no se especificaron en el set. - La columna de estado se pone a active. Si no hay suficiente informacin, se devuelve un error inconsistentValue.
Se debera tener en cuenta que puede que no todas las filas entren en una sola PDU. Tambin, la respuesta de get indica que aquellas columnas que implemente el agente deben ser superconjuntos de las columnas que son obligatorias. As, en el set, la aplicacin slo tiene que preocuparse de las columnas con un MAX-ACCESS de read-create.
Para que esta aproximacin funcione, la versin del mdulo MIB que conoce la aplicacin y el agente debe coincidir.
31
32
33
Las dos primeras instancias son especiales: sysUpTime.0, momento en que se gener la invocacin. snmpTrapOID.0, el identificador de objeto de la invocacin. El Grupo snmpTrap Hay dos objetos escalares relacionados con las invocaciones SNMP.
snmpTrap OBJECT IDENTIFIER ::={snmpMIBObjects 4} snmpTrapOID OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS accesible-for-notify ... ::= {snmpTrap 1}
1.6 Interacciones entre Administradores Cuando una aplicacin quiere informar a otra aplicacin, genera una inform-request. El formato de la InformRequest-PDU es idntico al de las otras PDU del resto de peticiones. Al igual que snmpV2-trap, las dos primeras instancias indican el momento del evento y su identidad. Como es de esperar, slo algunos dispositivos pueden tener el papel de administrador. Hay que tener cuidado para minimizar el nmero de informes que se generan. Actualmente, el control de la generacin y retransmisin de informes es una tarea especfica de implementacin.
34
Se trata de dispositivos que contienen agentes y aplicaciones de administracin. Estos dispositivos recogen y procesan informacin de los agentes y la proporcionan a la administracin. As, segn el entorno SNMPv2, una aplicacin de administracin es algo que inicia una interaccin entre peticiones y respuestas.
4. 2. Mapeo de Transporte
Las operaciones SNMP son independientes del protocolo de transporte, utilizando slo un servicio de transporte no orientado a conexin.
Para definir el mapeo de transporte, se especifican dos pasos: - Reglas para tomar la estructura de un mensaje y transformarlo en una cadena de octetos para formar un paquete. - Reglas para enviar el paquete por el servicio de transporte. Hay varios mapeos de transportes definidos y usan el mismo conjunto de reglas para el primer paso. Como todos los objetos y estructuras SNMP se definen con el ASN.1 de OSI, el entorno de administracin usa BER (Basic Encoding Rules) de OSI para codificar las estructuras en octetos. Cuando stos se reciben, se transforman en una estructura de datos con una semntica idntica.
35
36
La entidad que enva transforma y enva el mensaje como un nico datagrama UDP a la direccin de transporte de la entidad receptora. Por convencin, los agentes SNMP escuchan en el puerto UDP 161 y envan las notificaciones al puerto UDP 162, aunque una entidad debera configurarse para usar cualquier selector de transporte aceptable.
Todas las entidades receptoras deben admitir mensajes de al menos 1472 octetos de longitud. 2.1.2 Dominios snmpCLNSDomain y snmpCONSDomain Identifican el uso de SNMPv2 en los servicios de transporte no orientados a conexin de OSI (CLTS): snmpCLNSDomain se usa cuando CLTS se ejecuta en servicios de red no orientados a conexin de OSI (CLNS), mientras que snmpCONSDomain se usa cuando CLTS se ejecuta en servicios de red orientados a conexin de OSI (CONS). Si un objeto TDomain tiene alguno de estos dos valores, el correspondiente objeto TAddress se codifica as:
37
La entidad que enva transforma el mensaje y lo enva como una nica unidad de datos del servicio de transporte (TSDU) a la direccin de transporte de la entidad receptora. Los selectores de transporte por defecto son:
Una entidad debera poder configurarse para usar cualquier selector de transporte aceptable. Todas las entidades receptoras deben admitir mensajes de al menos 1472 octetos de longitud. 2.1.3 Dominio snmpDDPDomain Identifica el uso de SNMPv2 sobre Appletalks DDP. Si un objeto TDomain tiene un valor de snmpDDPDomain, entonces el correspondiente objeto TAddress se codifica as:
38
La entidad que enva transforma el mensaje y lo enva como un nico datagrama DDP a la direccin de transporte de la entidad receptora. Todos los agentes SNMP escuchan en el tipo NBP SNMP Agent y las notificaciones se envan al tipo NBP SNMP Trap Handler. Todas las entidades receptoras deben admitir mensajes de al menos 484 octetos de longitud.
2.1.4 Dominio snmpIPXDomain Identifica el uso de SNMPv2 sobre NetWares IPX Si un objeto TDomain tiene un valor de snmpIPXDomain, entonces el correspondiente objeto TAddress se codifica as: SnmpIPXAddress ::= TEXTUAL-CONVENTION DISPLAY-HINT 4x.1x:1x:1x:1x:1x:1x.2d STATUS current DESCRIPTION
39
SYNTAX OCTET STRING (SIZE (12)) La entidad que enva transforma y enva el mensaje como un nico datagrama IPX a la direccin de transporte de la entidad receptora. Por convencin, los agentes SNMP escuchan en el socket IPX 36879 y envan las notificaciones al socket IPX 36880, aunque una entidad debera configurarse para usar cualquier selector de transporte aceptable. Todas las entidades receptoras deben admitir mensajes de al menos 546 octetos de longitud.
EN RESUMEN Para definir el mapeo de transporte, se especifican dos pasos: - Reglas para tomar la estructura de un mensaje y transformarlo en una cadena de octetos para formar un paquete. - Reglas para enviar el paquete por el servicio de transporte.
40