es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Muchos OID para interfaz y otros en SFP

Cuando hago snmpwalk en la interfaz obtengo múltiples descripciones duplicadas:

Imagen1

¿Alguien sabe cómo obtener solo las interfaces activas siIndex? ¿Sin duplicados?

Y:

Imagen2

¿Por qué el módulo SFP tiene esta ID (.17236997)? ¿Si está asignado a Gigabitethernet0/3/4?

Imagen3

Estoy escribiendo un script en python (pysnmp) y buscando OIDs para parámetros específicos de la interfaz.
¡Gracias por cualquier ayuda!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    P1: Cuando hago snmpwalk en la interfaz, obtengo múltiples descripciones duplicadas, ¿cómo obtengo solo el ifIndex para las interfaces activas sin duplicados?

    Para obtener solo las interfaces activas sin duplicados, puedes utilizar el siguiente comando:

    snmpwalk -v2c -c <cadena_de_comunidad> <dirección_ip_del_dispositivo> .1.3.6.1.2.1.2.2.1.2 | grep -v inactivo | sort -u

    Este comando realizará un SNMP walk en el dispositivo y devolverá la lista de todas las descripciones de interfaz. La opción grep -v inactivo filtrará todas las interfaces inactivas y la opción sort -u eliminará los duplicados de la lista.

    P2: ¿Por qué el módulo SFP tiene este ID (.17236997)? ¿Cómo se asigna a Gigabitethernet0/3/4?

    El ID .17236997 es el valor del ifIndex para la interfaz GigabitEthernet0/3/4. Este valor es único y representa la interfaz dentro del dispositivo. El módulo SFP puede estar instalado físicamente en esta interfaz, de ahí que el ID esté asociado a ella. Sin embargo, también es posible que el ID esté asociado a otra interfaz si el módulo SFP no está instalado actualmente o si el dispositivo está configurado para asignar el ID a una interfaz diferente.

    P3: ¿Puedes proporcionar ayuda para encontrar OIDs para parámetros específicos de la interfaz utilizando pysnmp?

    ¡Por supuesto! Aquí tienes algunos OIDs comunes para parámetros de interfaz:

    • ifDescr (OID: 1.3.6.1.2.1.2.2.1.2) – Descripción de la interfaz
    • ifOperStatus (OID: 1.3.6.1.2.1.2.2.1.8) – Estado operativo de la interfaz
    • ifInOctets (OID: 1.3.6.1.2.1.2.2.1.10) – Octetos de entrada en la interfaz
    • ifOutOctets (OID: 1.3.6.1.2.1.2.2.1.16) – Octetos de salida en la interfaz
    • ifInErrors (OID: 1.3.6.1.2.1.2.2.1.14) – Errores de entrada en la interfaz
    • ifOutErrors (OID: 1.3.6.1.2.1.2.2.1.20) – Errores de salida en la interfaz

    Para obtener el valor de un OID utilizando pysnmp, puedes utilizar el siguiente fragmento de código:

    from pysnmp.hlapi import *
    
    # Especifica el OID del que deseas obtener el valor
    oid = ObjectIdentity('1.3.6.1.2.1.2.2.1.2')
    
    # Configura una operación SNMP GET
    errorIndication, errorStatus, errorIndex, varBinds = next(
        getCmd(SnmpEngine(),
               CommunityData('<cadena_de_comunidad>'),
               UdpTransportTarget(('<dirección_ip_del_dispositivo>', 161)),
               ContextData(),
               ObjectType(oid))
    )
    
    # Verifica si hay errores e imprime el valor del OID
    if errorIndication:
        print(errorIndication)
    else:
        for varBind in varBinds:
            print(varBind.prettyPrint())
    

    Este código realizará una operación SNMP GET para obtener el valor del OID especificado. Solo necesitas reemplazar <cadena_de_comunidad> y <dirección_ip_del_dispositivo> con los valores adecuados para tu dispositivo.</dirección_ip_del_dispositivo></dirección_ip_del_dispositivo></dirección_ip_del_dispositivo>

Comments are closed.