Monday, September 12, 2011

SNMP (Protocolo Simple de Administración de Red - Simple Network Management Protocol)

Como una araña en su red, una estación de administración de red SNMP tiene la tarea de monitorear un grupo de dispositivos en una red, dichos dispositivos administrados son servidores, enrutadores, hubs, switches, estaciones de trabajo, impresoras, etc; los cuales poseen un software llamado Agente de gestión (Managment Agent) que proporciona información de su estado y ademas permite su configuración.
  

SNMP hace parte de la suite de protocolos de Internet (TCP/IP) y está compuesto por un conjunto de normas de gestión de redes, incluyendo un protocolo de capa de aplicación, un esquema de base de datos, y un conjunto de objetos de datos. SNMP expone la gestión de datos en forma de variables que describen la configuración del sistema administrado. Estas variables pueden ser consultadas y configuradas por  medio de sus aplicaciones de gestión. 

Algunos de los objetivos SNMP
  • Gestión, configuración y monitoreo remoto de los dispositivos de red
  • Detección, localización y corrección de errores
  • Registro y estadísticas de utilización
  • Inventario y Topología de red
  • Planificación del crecimiento de la red.
Componentes SNMP
Una red con aplicaciones SNMP posee al menos uno o varias estaciones de Administración, cuya función es supervisar y administrar un grupo de dispositivos de red por medio de un software denominado NMS (Network Management System- Sistema de gestión de redes), este se encarga de proporciona los recursos de procesamiento y memoria requeridos para la gestión de la red administrada, la cual a su vez puede tener una o más instancias NMS.
El dispositivo administrado es un nodo de red que implementa la interfaz SNMP, este tambien intercambia datos con el NMS y permite el acceso (bidireccional o unidimensional -solo lectura) a la información específica del nodo. Cada dispositivo administrado ejecuta permanentemente un componente de software llamado agente, el cual reporta y traduce información a través de SNMP con la estación de administración.
En esencia, los agentes SNMP exponen los datos de gestión a las estaciones de administración en forma de variables organizadas en jerarquías, dichas jerarquías junto con  otros metadatos (como el tipo y la descripción de las variables), son descritos en una Base de Gestión de Información (MIB Managment Information Base).El protocolo también permite ejecutar tareas de gestión activa, como la modificación y la aplicación de una nueva configuración de forma remota, a través de la modificación de dichas variables. 

OID Object Identifier
Es el identificador único para cada objeto en SNMP, que proviene de una raíz común en un namespace jerárquicamente asignado por la IANA, Los OIDs están organizados sucesivamente para identificar cada nodo del árbol MIB desde la raíz hasta los nodos hojas.

MIB Management  Information Base

Base de datos con información jerárquicamente organizada en forma de arbol con los datos de todos los dispositivos que conforman una red. Sus principales funciones son: la asignación de nombres simbólicos, tipo de datos, descripción y parámetros de accesibilidad de los nodos OID.

PDU (Protocol Data Unit - Unidad de datos del Protocolo)
SNMP utiliza un servicio no orientado a conexión como UDP (User Datagram Protocol) para realizar las operaciones básicas de administración de la red, especialmente el envío de pequeños grupos de mensajes (denominados PDUs) entre las estaciones de administración y los agentes. Este tipo de mecanismo asegura que las tareas de gestión no afectan el rendimiento global de la red.  SNMP utiliza comúnmente los puertos 161 UDP para obtener y establecer mensajes y 162 UDP para capturar mensajes y traps.

 =============================================================
| Tipo de  | ID de     | ... | ... |  ... Variables  ...      |
| PDU      |Petición   | ... | ... |        MIB               |
 =============================================================

Petición y Respuesta GET (SNMPv1)
La estación de administración hace UNA petición al agente para obtener el valor de una o muchas variables del MIB, las cuales se especifican mediante asignaciones (los valores no se utilizan). el agente recupera los valores de las variables con operaciones aisladas y envía una respuesta indicando el éxito o fracaso de la petición. Si la petición fue correcta, el mensaje resultante contendrá el valor de la variable solicitada.

Petición  GETNext


La estación de administración hace una petición al agente para obtener los valores de las variables disponibles. El agente retorna una respuesta con la siguiente variable según el orden alfabético del MIB. Con la aplicación de una petición GetNextRequest es posible recorrer completamente la tabla MIB si se empieza con el ID del Objeto 0. Las columnas de la tabla pueden ser leídas al especificar las columnas OIDs en los enlaces de las variables de las peticiones.

Petición  GETBulk (SNMPv2)

La estación de administración hace una petición al agente para obtener  múltiples iteraciones de GetNextRequest. El agente retorna una respuesta con múltiples variables MIB enlazadas. Los campos non-repeaters y max-repetitions se usan para controlar el comportamiento de las respuesta.





Set-Request & -Response
La estación de administración hace una petición al agente para cambiar el valor de una variable, una lista de variables MIB o para la configuración de los agentes. El acceso a las variables se especifica dentro de la petición para que el agente cambie las variables especificadas por medio de operaciones atómicas., despues se retorna una respuesta con los valores actualizados de las variables preestablecidas y  con los valores de las nuevas variables creadas. Así mismo existen conjunto de parámetros de configuración (por ejemplo, direcciones IP, switches, ...)

Notificaciones y Trampas(Traps)
Son mensaje SNMP generados por el agente que opera en un dispositivo monitoreado, estos mensajes no son solicitados por la consola y están clasificados según su prioridad  (Muy importante, urgente,... ) . Estas notificaciones se producen cuando el agente SNMP detecta un cambio de parámetros en las variables MIB. Estos mensajes son utilizados por los sistemas de alerta sin confirmación. Los tipos estándar de trampas indican los siguientes eventos:
  • (0) Coldstart:  El agente se ha reiniciado
  • (1) Warmstart: La configuración del agente ha cambiado.
  • (2) Linkdown: Alguna interfaz de comunicación está fuera de servicio (inactiva)
  • (3) Linkup: Alguna interfaz de comunicación está en servicio (activa).
  • (4) Authenticationfailure: El agente ha recibido una solicitud de un NMS no autorizado
  • (5) EGPNeighborLoss: Un equipo, junto a un sistema donde los routers están utilizando el protocolo EGP, está fuera de servicio;
  • (6) Enterprise:  Incluye nuevas traps configuradas manualmente por el administrador de red.
Versiones SMNP
Las versiones más utilizadas son la versión SNMPv1 y SNMPv2. El SNMPv3 última versión tiene cambios importantes con relación a sus predecesores, sobre todo en temas de seguridad, sin embargo, no ha sido ampliamente aceptada en la industria.
 
SNMPv1 
Esta es la versión inicial y la mas utilizada, principalmente debido a la simplicidad del esquema de autenticación y a las políticas de acceso que utiliza el agente SNMP para determinar cuales estaciones de administración pueden acceder a las variables MIB. Una política de acceso SNMP es una relación administrativa, que supone asociaciones entre una comunidad SNMP, un modo de acceso, y una vista MIB.
  • Una comunidad SNMP es un grupo de uno o más dispositivos y el nombre de comunidad (cadena de octetos que una estación de administración debe agregar en un paquete de solicitud SNMP con fines de autenticación).
  • El modo de acceso especifica como se accede a los dispositivos de la comunidad se les permite con respecto a la recuperación y modificación de las variables MIB de un agente SNMP específico. El modo de acceso: ninguno, sólo lectura, lectura-escritura o sólo escritura. 
  •  Una vista MIB define uno o más sub-árboles MIB a los cuales una comunidad SNMP específica puede tener acceso. La vista MIB puede ser el árbol MIB o un subconjunto limitado de todo el árbol MIB.
Cuando el agente SNMP recibe una solicitud de una estación de administración, este verifica el nombre de la comunidad a la que pertenece y la dirección IP para determinar si el host solicitante en realidad  es miembro de la comunidad que dice pertenecer. El agente SNMP determina si concede el acceso hasta las variables MIB según lo defina la política de acceso asociada a esa comunidad. Si todos los criterios son verificados y se cumplen. De lo contrario, el agente SNMP genera una captura authenticationFailure o devuelve el mensaje de error correspondiente a la máquina solicitante.  
Formato del mensaje SNMP
 ======================================================================
| Versión    | Nombre de Comunidad | ...           PDU   ...           |
| (Integer)  | (Octet Str.)        |             (Sequence)            |
 ======================================================================
  El diseño de esta versión fue realizado en los años 80, cuando la prioridad era atender la  demanda de protocolos generado por el rápido crecimiento de las redes, así que es de esperarse que nadie se haya preocupado por los problemas de autenticación y de seguridad, siendo estas sus principales falencias. La autenticación de los clientes se realiza sólo por la cadena de octetos de Comunidad, en efecto tenemos un tipo de contraseña, que se transmite en texto plano.

SNMPv2
Incluye mejoras en rendimiento, seguridad, confidencialidad y comunicación entre estaciones de administración. Introduce GetBulkRequest, una alternativa a GetNextRequests iterativo para la recuperación de grandes cantidades de datos de administración en una sola solicitud. Sin embargo, no fue ampliamente aceptado debido a su complejidad y a la poca compatibilidad con los  NMSs de la versión anterior; sin embargo este inconveniente se soluciono utilizando agentes proxy y NMS bilingües para ambas versiones de NMS; adicionalmente se desarrolló la versión SNMPv2c un poco mas simple, pero sin embargo mas segura que la primera versión.

SNMPv3
Proporciona importantes características de seguridad y configuración remota:
  • Autenticación: Firmas digitales MD5 y SHA1 basadas en usuarios garantiza que el mensaje proviene de una fuente segura.
  • Confidencialidad: Cifrado de paquetes DES y AES para garantizar mayor privacidad
  • Integridad: Asegurar que el paquete no ha sido alterado en tránsito, incluye un mecanismo opcional de protección de paquetes reenviados. 
 Mas Información sobre herramientas SNMP aqui
References
http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol
http://h18000.www1.hp.com/products/quickspecs/10757_div/10757_div.HTML
Class Slides: N_Netzwerk-Management SNMP.pdf

Si tienes información adicional sobre este tema, tus comentarios son bienvenidos.

Thursday, September 08, 2011

Agregar un Archivo JAR a Eclipse

En el caso de querer desarrollar aplicaciones usando una IDE como es el caso de Eclipse, es necesario agregar los archivos libvirt-0.4.7.jar and jna.jar al class path. A continuación describo paso a paso como hacerlo:

  • Creamos un nuevo proyecto en File>New>Project, Aparece un asistente, seleccionamos Java Project y click en el boton Next>
  • Asignamos un nombre al nuevo proyecto y y click en el boton Next>, se genera una carpeta con el nombre que hemos asignado
  • Sobre esta nueva carpeta con el nombre del proyecto abrimos el menú desplegable con el click derecho del mouse y elegimos "propiedades"
  • En la ventana que se abre, hay un menú a la izquierda elegimos "Java Build Path".
  • En el lado derecho de la ventana, elegimos la pestaña "Libraries"
  • Click al botón "Add External JARs"
  • Vamos a la carpeta que previamente hemos descomprimido en el post anterior: libvirt-java-0.4.7_compiled/target/jars 
  • buscamos libvirt-0.4.7.jar y jna.jar las seleccionamos una por una. click en OK y listo ya forma parte de nuestro proyecto Eclipse y podemos usarlo en nuestro programa 
  • Si tienes información adicional sobre este tema, tus comentarios o links de referencia son bienvenidos. 

    Wednesday, September 07, 2011

    Como vincular la librería Libvirt con Java

    Ya que este es el punto de partida para empezar a desarrollar aplicaciones con herramientas de virtualización, me parece importante describir el proceso paso a paso para instalar la librería Libvirt y vincularla con Java. Estas instrucciones van dirigidas a sistemas operativos como debian o Ubuntu.
    1. Verificar si el procesador del equipo en el que trabajamos tiene hardware de soporte para virtualización. El hecho de no obtener salida alguna, indica que no hay soporte para esta característica, sin embargo, es posible trabajar con algunas aplicaciones pero con bajo rendimiento, se recomienda usar con propósitos de investigación pero nunca para correr servidores reales.
      sudo egrep '(vmx|svm)' /proc/cpuin
    2. Libvirt está escrita en C y se instala con el siguiente comando:
      sudo apt-get install libvirt-dev
    3. Para editar las características del paquete escribimos:
      apt-get source -d libvirt
      sudo apt-get build-dep libvirt
      dpkg-source -x libvirt*dsc
    4. Es necesario instalar Los siguientes paquetes adicionales:
      sudo apt-get install sun-java6-jdk libjna-java junit ant
      sudo update-alternatives --config java
    5. Para confirmar la versión de Java y apache Ant
      javac -version
      ant -version 
    6. Crear una carperta llamada source para guardar el paquete a descargar
      mkdir -p ~/source
      cd ~/source 
    7. Ahora es necesario indexar la librería livbirt para utilizarla en Java. El paquete de archivos para vincular dicha librería se pueden descargar aqui.
    8. Guárdelo en la carpeta source y extráigalo con la siguiente línea de comandos:
      tar xvfz libvirt-java-0.4.7_compiled.tar.gz 
    9. La carpeta "libvirt-java-0.4.7_compiled.tar.gz" provee un archivo precompilado .jar. A continuación ingresamos a la carpeta y construimos el archivo .jar
      cd libvirt-java-0.4.7_compiled.tar.gz
      ant build
    10. El archivo construido se copia en el directorio que contiene las librerías de Java
      sudo cp libvirt-java-0.4.7_compiled.jar /usr/share/java/
      sudo ln -s /usr/share/java/libvirt-java-0.4.7_compiled.jar /usr/share/java/libvirt.jar
      
    11. El CLASSPATH debe apuntar al directorio actual y el directorio que contiene los archivos jna.jar y libvirt.jar.
      export CLASSPATH=.:/usr/share/java/*

    12. La variable LD_LIBRARY_PATH debe apuntar al archivo libjnidispatch.so.
      export LD_LIBRARY_PATH=/usr/lib/jni/
    13. El test descrito a continuación debe trabajar en cualquier maquina sin que se haya instalado previamente algún hipervisor ya que Libvirt provee un hypervisor de prueba.
    14. En la carpeta libvirt-java-0.4.7_compiled vaya al directorio target/testclasses para correr el siguiente shell script:
      cd
      cd ~/libvirt-java-0.4.7_compiled/target/testclasses
      ./run_test.sh

    Si libvirt está correctamente instalada, obtendremos una larga lista de salidas, si no, Java mostrará un mensaje de error.



    Si tienes información adicional sobre este tema, tus comentarios o links de referencia son bienvenidos. 

    Thursday, June 23, 2011

    Google Hacking

    Renuncia de Responsabilidad: La información que aquí se presenta es públicamente accesible, es para demostración y únicamente con fines educativos, y no una solicitud de hackear o atacar cualquier sistema.

    El motor de búsqueda de Google es una herramienta que le permite a cualquier usuario, tener acceso a información sensible sobre los servicios web que ofrecen las miles de páginas que conforman la Internet, con una simple búsqueda es posible encontrar fugas de información en nuestras propias páginas web.

    Como Prevenirlo

    • Nunca publique datos sensibles en su sitio web (incluso temporalmente)
    • Compruebe regularmente Google para confirmar sus "huellas" utilizando consultas en cada uno de sus anfitriones.
    • Una fuente interezante de información es la página Web de Johnny Long http://johnny.ihackstuff.com 

    Estructura de los Operadores:

    Los operadores avanzados de Google ayudan a refinar las búsquedas y la sintaxis  se usa de la siguiente forma:
    operador:búsqueda

    Tenga en cuenta que no hay espacio entre el operador, los dos puntos y el término de búsqueda. Los operadores mas comunes son:
    Site: restringe la búsqueda a un sitio web o dominio específico, El sitio web buscado debe ser suministrado después de los dos puntos
    Filetype: busca texto sólo dentro de un tipo particular de archivo
    Link: buscar dentro de hipervínculos
    Cache: muestra la versión de una página web, como aparece cuando Google ha rastreado el sitio
    Intitle: búsqueda de un término en el título de un documento
    Inurl: buscar un término solamente dentro de la URL (dirección web) de un documento. es similar a allurl, por ejemplo allurl:passwd.txt o allurl:admin.php


    carácteres de búsqueda
    (+) Fuerza la inclusión de un término de búsqueda
    (-) Excluye un término de búsqueda
    (") Comillas que definen frases de búsqueda
    (.) Un único carácter comodín, por ejemplo un espacio en blanco
    (*) Cualquier palabra

    Rastreo
    Para encontrar cualquier página web , Google ha tenido que rastrear a través del sitio que estamos buscando. Para localizar específicamente los servidores adicionales de este sitio web, se utiliza el carater (-) que elimina de la consulta los nombres de dominio de los hosts, por ejemplo:

    La pesca milagrosa 
    Fuentes de Información Ejemplo
    Listas de Directorio intitle:index.of/root
    Portales de inicio de sesión
    nurl:/admin/login.asp
    Usuarios VNC “vnc desktop” inurl:5800
    Impresoras de red inurl:”port_255″ -htm
    Acceso a Administradores PHP intitle:phpMyAdmin “Welcome to phpMyAdmin ***” “running on *as root@*”
    Passwords intitle:"index of" administrators.pwd
    intitle: "Index of" passwords.xls
    Esquemas SQL "# Dumping data for table"



    Si tienes información adicional sobre este tema, tus comentarios o links de referencia son bienvenidos. 

    Friday, May 27, 2011

    Protocolos de Arbol Extensible STP, RSTP PVSTP y MSTP


    Entender la teoría de Grafos es fundamental a la hora de estudiar STP y sus variantes, así que haremos una pequeña introducción a esta teoría y explicaremos como funcionan algunos de los algoritmos mas comunes a la hora de generar arboles extensibles.

    ¿Que es un árbol extensible?

    Si tenemos un grafo G compuesto de nodos y aristas, un árbol extensible (Spanning Tree) es un subgrafo sin ciclos que contiene todos los nodos de G.

    Si alguno de los vértices falla, se desconectaría la ramificación haciendo inaccesible al nodo o a el grupo de nodos desde la raíz, así que los árboles extensibles son poco tolerantes a fallos.


    Mínimo árbol extensible (MST -Minimun Spanning Tree)
    MST es un árbol de expansión donde la suma total del peso de las aristas que conforman un camino es el mínimo posible. Para encontrar este se utiliza el Algoritmo de Prim-Jarnik (similar al de Dijkstra)

    1. Se comienza con un nodo v arbitrario
    2. El árbol se construye nodo por nodo
    3. Se añade el nodo u formando la arista (v, u) en la que:
      • El nodo v ya se encuentra en el árbol
      • El nodo u no está aún en el árbol
      • El peso del vértice (v,u) es el mínimo de los pesos de todos los posibles candidatos u
    1. Cada nodo almacenado en D[u]
      • es un nodo que aún no ha sido visitado. El siguiente u debe estar adyacente a v, es decir solo a un paso de distancia, así se formará la arista (v,u) con menor peso.
      • Ventaja: reducción del tiempo de búsqueda del la arista (v,u).
    Ejemplo del Algoritmo de Prim-Jarnik

    Spanning Tree Protocol (STP)

    Este es un protocolo de red que funciona en la capa de enlace de datos del modelo OSI. Existen dos versiones del protocolo que no son compatibles entre si, la original y la estandarizada por el IEEE, esta segunda es la que se usa comunmente hoy en día. Este protocolo es transparente para el host del usuario, y proporciona un canal de comunicación óptimos entre los hosts de una red.
    STP utiliza el algoritmo de árbol extensible para configurar los puertos del switch formando topología jerárquicas de red que evitan la formación de bucles o loops, los cuales se presentan debido a la existencia de enlaces redundantes.
     STP activa automáticamente los enlaces de ciertas interfaces y bloquea las rutas físicas redundantes para garantizar un sólo camino lógico en cualquier configuración de bridges, esto asegura una topología libre de loops. Un puerto se considera bloqueado cuando el tráfico de red no puede entrar o salir de el. 

    Redundancia
    En un diseño jerárquico, la redundancia se logra al distribuir las aplicaciones y los dispositivos de red a través de hardware adicional y redundante,  así se generan múltiples rutas alternativas entre los dispositivos de red, Así cuando se presente la interrupción o fallo de algun camino, no hay perdida de conectividad, ya que hay  otro enlace de reserva para soportar el tráfico y la transmisión de datos.

    Componentes STP
    Root bridge
    El algoritmo de árbol extensible designa un solo switch comocido como Root bridge, y lo utiliza como punto de referencia en todos los cálculos para determinar las rutas redundantes que serán bloqueadas, ya sea en una LAN conmutada o en un dominio de difusión. La duración máxima del árbol de expansión es de cinco minutos, este sigue siendo válido hasta que se produce un cambio de topología, el cual es detectado automáticamente por el protocolo. 
    Cuando uno de estos cambios se produce, el root bridge actual redefine la topología del árbol de expansión o elige un nuevo root bridge. Los bridges se comunican entre sí mediante mensajes de configuración llamados BPDUs ( Bridge  Protocol Data Units).
    El protocolo establece identificadores (ID) de Bridge, y elige al que tiene la mayor prioridad (número más pequeño) como root. El root bridge establece el camino mas corto (la ruta de menor costo) para toda la red, cada puerto tiene un parámetro configurable llamado Span Path Cost.

    Bridge Designado
    Son los bridges que se encuentran en el camino de menor costo y son elegidos entre todos los bridges que conectan un segmento de red para transmitir tramas al root, si hay dos puentes con el mismo costo, el criterio de selección esta definido según la dirección MAC más baja. El puerto en el bridge designado que conecta un segmento, se denomina puerto designado y ofrece el camino de menor costo hacia el puerto root. Todos los demás puertos y rutas son bloqueados en un estado estacionario.
    Si la configuración STP cambia o un segmento de red redundantes se vuelve inalcanzable, el algoritmo reconfigura los enlaces y restaura la conectividad, activando uno de los enlaces reservados. Si el protocolo falla, es posible que dos conexiones estén activas simultáneamente, lo que podría llevar un loop de tráfico en la LAN.

    Variaciones de STP
    Cualquier disposición de puentes puede ser configurada con una topología de árbol a través de cualquiera de las cuatro versiones STP: el clásico descrito por la norma IEEE 802.1d y revisado previamente, RSTP rápido (IEEE 802.1w RSTP), STP Múltiple (MSTP 802.1s) y VLAN STP (VSTP).

    MSTP: Cuando una red se divide en segmentos unidos por varios puentes, el protocolo bloquea algunos puentes para evitar que un mensaje se quede merodeando en la red.

    RSTP mantiene una gran parte de la terminología STP y la mayoría de los parámetros no cambian.  Utiliza el mismo formato de BPDU, con la excepción de que el campo de la versión se establece en 2 para indicar que es RSTP. Este protocolo gestiona enlaces redundantes, reduciendo significativamente el tiempo de convergencia de la topología de la red cuando hay algún cambio o después de un fallo o durante la recuperación de un switch, el puerto o el enlace. En otras palabras, lo detecta y utiliza topologías de red que proporcionan una convergencia más rápida del árbol extensible sin crear bucles de reenvío. RSTP activa puede confirmar que un puerto pueden someterse a una transición segura para el envío de Estado sin depender de ninguna configuración del temporizador.
    VLAN STP (VSTP).




    Referencias: Diapositivas de Clase JKU Linz :
    Univ Prof J.R.Mühlbacher & DI. Ing R.Hörmanseder, Netzwerke Management
    Univ. Prof Dr Allois Fersha. Algorithem und Datenstrukturen II


     
    Si tienes información adicional sobre este tema, tus comentarios o links de referencia son bienvenidos. 

      Thursday, May 26, 2011

      Protocolo de Descubrimiento de capa de enlace (LLDP -Link Layer Discovery Protocol)


      LLDP es un Protocolo de Descubrimiento de Vecindario (Neighbor Discovery Protocol NDP), el cual ha sido diseñado para dispositivos de redes Ethernet (como switches y routers), Los NDP se usan para recibir y/o transmitir información relacionada con los dispositivos de otros nodos de la red, también para almacenar la información aprendida acerca de otros dispositivos.

      LLDP es un protocolo de “un salto”; es decir que la información LLDP sólo se puede enviar y recibir por medio de dispositivos adyacentes, los cuales están conectados directamente entre sí por el mismo enlace, dichos dispositivos se denominan “vecinos”. La información anunciada nunca se reenvía a otros dispositivos en la red.

      Este es un protocolo independiente que opera únicamente en la capa 2 (enlace de datos) del modelo OSI, ha sido definido por el Estándar IEEE 802.1AB-2005. LLDP permite que los dispositivos de red Ethernet anuncien información detallada acerca de ellos mismos a otros dispositivos que también están conectados directamente a la red y que también usan LLDP, esto permite que dos sistemas que ejecutan diferentes protocolos de capa de red aprendan uno del otro. La información compartida comprende datos de configuración, capacidad, identificación, TTL, entre otros.

      ¿Como funciona LLDP?

      Los anuncios son enviados en paquetes llamados unidades de datos LLDP (LLDPDUs -LLDP Data units). Los datos enviados y recibidos a través de LLDPDUs son útiles por muchas razones. Por ejemplo, el switch puede descubrir cuáles  dispositivos en la red son vecinos, y los puerto por donde se conectan entre sí.

      Un switch se puede configurar para:
      Transmitir información sobre sí mismo a los vecinos
      Recibir información enviada desde los dispositivos vecinos
      Almacenar y administrar la información recibida en la base de gestión de información (MIB -Managment information base) para LLDP

      Cada dispositivo que utiliza LLDP tiene su propio agente LLDP, este es una entidad de software que permite la administración de accesibilidad a capas superiores y recoge la información de puntos terminales de los dispositivos adyacentes. El agente LLDP es responsable de la recepción,transmisión y gestión de LLDP.

      LLDP define:
      Un conjunto de mensajes de anuncios comunes (del tipo valores de longitud).
      Un protocolo para transmitir y recibir anuncios.
      Un método para almacenar la información que está contenida dentro de anuncios recibidos


      LLDP y SNMP

      LLDP está diseñado para operar con el Protocolo Simple de Administración de Red(SNMP - Simple Network Management Protocol). El cual nos proporcionan una interfaz de línea de comandos para administrar LLDP, sin embargo SNMP es la interfaz recomendada ya que LLDP está diseñado para ser administrado  automáticamente desde el sistemas de gestión de redes (NMS -Network Managment Systems).

      Para visualizar el vencindario LLDP se utilizan los siguientes comandos:

      Switch
      Mostrar dispositivos en el vencidario

      show lldp info remote-device
      show lldp neighbors

      Parte de esta información fue extraída de el siguiente documento:
      Descargar Documentación aquí
      Si tienes información adicional sobre este tema, tus comentarios o links de referencia son bienvenidos.