SNMP

  Hace unos años participé en un proyecto inconcluso que se enunciaba como Gestor de redes TCP/IP basado en el protocolo de gestión SNMP sobre plataformas OS/2. Cuestiones políticas impidieron que aquel proyecto finalizara, sin embargo de él guardo una abundante documentación y un conocimiento bastante profundo del funcionamiento del TCP/IP y, por extensión, de Internet.
En esta página recojo aquellas referencias que, creo, pueden interesar al navegante ocasional que ha naufragado en esta página.

Participaron en el proyecto:

  • Alberto Mateos
  • Patxi Picaza
  • Javi Tobal (yo mismo)
  • Aitor Valgañón
  • Contenido:

  • ¿qué es y cómo funciona el SNMP?
  • ¿cómo hacer un gestor SNMP?
  • ¿qué es un RFC?
  • Links y referencias interesantes sobre SNMP
  • ¿qué es y cómo funciona el SNMP?

    SNMP significa Simple Network Management Protocol (Protocolo simple de gestión de red) y es un protocolo de nivel de aplicación que pertenece a la familia TCP/IP y que ofrece servicios de gestión de red. Data de 1990 y está apoyado por la mayoría de los fabricantes de equipos de comunicaciones.

    SNMP permite crear herramientas de gestión que:

  • informen del funcionamiento de la red o subred
  • detecten averías y funcionamientos incorrectos
  • permitan actuar sobre los elementos de la red: modificando su configuración, desconectando equipos, etc.


  • Como ya he dicho, SNMP es un protocolo del nivel de aplicación basado en paquetes UDP, es decir, es un protocolo "no orientado a la conexión". SNMP define una relación cliente/servidor entre el gestor de red (que actúa de cliente, ojo) y los elementos gestionados (que son los servidores y reciben el nombre de "agentes SNMP").

    Típicamente el gestor de red se ejecutará en una estación de trabajo (en nuestro proyecto iba a ser una máquina OS/2 2.1) controlada manualmente por el administrador de red o automáticamente por un plan de trabajo definido previamente.

    Los agentes pueden ser, por ejemplo:
  • Ordenadores conectados a la red (el software del agente puede estar en la ROM de la tarjeta de red)
  • Servidores de ficheros, webs, de correo, etc.
  • Bridges
  • Routers
  • Concentradores (de un segmento Ethernet)
  • Hubs de una red Token-Ring
  • Impresoras de red
  • etc.


  • Agentes y gestor manejan una base de datos de información gestionable (el MIB o Management Information Base) que contiene, organizados de forma jerárquica, un conjunto de informaciones estadísticas y valores de control que pueden ser estándar (well-known values) o ser extensiones propias de los fabricantes de los diferentes agentes/gestores.

    SNMP sólo define dos operaciones a realizar:
  • lectura por parte del gestor de un registro (un valor) del MIB del agente
  • modificación de uno de estos valores


  • El contenido del MIB de un agente concreto se define usando la ASN.1 (Abstract Syntax Notation) lo que permite al software gestor incorporar a su base de datos la información de gestión de cualquier nuevo agente.
    Manejando este MIB un gestor SNMP puede:
  • Modificar las tablas de rutado de un router
  • Conocer las estadísticas de funcionamiento de un servidor
  • Desconectar una estación de trabajo de la red
  • Ver los paquetes que circulan por una subred
  • ¡conocer la temperatura de funcionamiento de un concentrador!
  • etc.


  • Por supuesto todo ésto de forma gráfica con iconos para los agentes, planos de los edificios donde se sitúan las redes, mapas de situación (para redes internacionales), líneas de colores que indican el nivel de tráfico de los enlaces, etc. etc. etc.


    Ventajas de SNMP

  • Es muy popular y casi todo lo que se puede conectar a una red puede convertirse en un agente SNMP
  • Es flexible, se puede adaptar a las necesidades de gestión de cualquier elemento
  • Es extensible: un gestor bien diseñado puede aprender nuevos MIBs de forma atuomática
  • Es la única manera conocida de gestionar una red grande heterogénea (como la propia Internet)



  • Desventajas de SNMP

  • Es difícil de implementar
  • No es muy eficiente, ocupa demasiado ancho de banda



  • ¿cómo hacer un gestor SNMP?

    Si alguien está interesado en hacer un gestor SNMP aquí enumero un par de ideas al respecto:

    Prepara un escenario controlado para las pruebas
    Prepara una red TCP/IP propia (tu Internet particular): uno o varios servidores Webs, servidor de correo, DNS, todos los agentes que puedas, etc. Para ello lo mejor y más barato es recurrir a LINUX. No se pueden hacer pruebas "reales" sobre Internet hasta que tengas el proyecto bastante avanzado, de lo contrario entre Telefónica y tu proveedor te pueden arruinar; además, sería posible que te pusieras a "gestionar" sin querer máquinas que no son tuyas.

    Ponte al día respecto a la familia TCP/IP
    Puedes recurrir a buscar RFCs que traten sobre el tema. Te recomiendo como introducción el RFC1180. Sin embargo, no estaría de más que consiguieses un par de libros buenos sobre el tema. Mis preferencias en este tema son las siguientes:
  • Internetworking with TCP/IP: Principles, protocols, and architecture. de Comer.
  • Internetworking with TCP/IP: Design, implementation and internals. de Comer.
  • Internetworking with TCP/IP: Client/server programming and applications. de Comer.
  • Open systems networking: OSI & TCP/IP. de Piscitello.

  • Decide el sistema operativo sobre el que va a correr el gestor
    Te recomiendo Windows NT. Es barato y fácil de conseguir (incluídos compiladores y herramientas de desarrollo), hay abundante documentación sobre el tema y, si el proyecto funciona, será fácil "colocarle" el gestor a alguien. Además la programación de TCP/IP sobre Windows es bastante fácil con la librería WINSOCK.DLL. De paso recomiendo un libro que sirve tanto para conocer el funcionamiento de las redes TCP/IP como para aprender a programar la librería WINSOCK.DLL: Internet Programming, de Jamsa.

    Consigue toda la información que puedas sobre SNMP
    Lee esta página de cabo a rabo, especialmente las referencias que hay a continuación.

    Mándame un mail si te interesa realmente el proyecto y necesitas soporte técnico.
     




    ¿qué es un RFC?

    Un RFC (Request For Comment) es un documento que circula por Internet con especificaciones de un "estándar de facto", o parte de uno. Desde una introducción general, pedagógica y divertida sobre TCP/IP (RFC1180) hasta las particularidades del SNMP sobre redes IPX (RFC1419) los RFCs contienen las verdaderas especificaciones de funcionamiento de Internet. En caso de contradicción entre tu libro de Teleinformática y un RFC haz caso al RFC.

    Para conseguir un RFC determinado:

  • ftp.internic.net
  • http://ds.internic.net
  • ftp.uu.net
  • http://www.rediris.es/ftp/docs/network/rfc/

  • RFCs interesantes sobre SNMP:

  • RFC1157: SNMP
  • RFC1212: definiciones MIB
  • RFC1213: MIB-II, base de información gestionable para SNMP
  • RFC1270: servicios SNMP
  • RFC1303: convenciones para la descripción de agentes
  • RFC1418: SNMP y OSI
  • RFC1419: SNMP y IPX



  • Links y referencias interesantes sobre SNMP

    No son todos pero sí que representan un buen comienzo:

    comp.protocols.snmp
    La mayoría de los mensajes de este grupo tratan sobre productos comerciales pero es muy interesante.

    SNMP faq (parte 1)
    Primera parte de los FAQs sobre SNMP.

    SNMP faq (parte 2)
    Segunda parte de los FAQs sobre SNMP.

    SNMP faq (parte 1) en formato HTML
    Primera parte de los FAQs sobre SNMP en formato HTML.

    SNMP faq (parte 2) en formato HTML
    Segunda parte de los FAQs sobre SNMP en formato HTML.

    SNMP++
    Librería de clases de C++ desarrolladas por HP para la programación de agentes y gestores SNMP.

    http://www.undergrad.math.uwaterloo.ca/~tkvallil/snmp.html
    Una página personal dedicada en exclusiva al SNMP. Muy interesante.

    http://smurfland.cit.buffalo.edu/NetMan/index.html
    Otra página personal, esta vez dedicada a la gestión de red.

    Curso sobre SNMP
    El protocolo SNMP aplicado a la gestión de red. Cursos interesantes sobre este y otros temas. Los cursos sobre SNMP están organizados por CISCO: una garantía.

    Varios RFCs sobre SNMP en formato HTML.
    Faltan algunos interesantes pero hay bastante que leer aquí.

     







  • Autor: Javi Tobal
    Página personal: http://www.arrakis.es/~tobal/
    Última actualización: lunes 30 de agosto de 1999
    (Los comentarios son bien recibidos)