IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau Discussion :

[SNMP] Problème de lecture de ifTable


Sujet :

Réseau

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut [SNMP] Problème de lecture de ifTable
    Bonjour,

    Ma question ne concerne pas directement linux mais plutôt le protocole SNMP (mais je pense être dans la bonne section du forum).

    Avec un client SNMP (NuDesign Virtual MIBrowser), j'essaie de lire la table iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).interfaces(2).ifTable(2)

    Voici une capture d'écran du résultat pour deux switchs différents :

    => on peut voir que certains champs ont des erreurs
    => j'ai les mêmes résultats avec Net-SNMP


    - Comment se fait-il que les champs ifType et ifOperStatus contiennent des valeurs non définies dans la MIB-2 (il ne faut pas utiliser les MIBs standards ?)?

    Pour le switch CISCO :
    - Pourquoi l'index ne commence pas à 1 et pourquoi la table contient 21 entrées alors que le switch n'a que 10 ports ?
    - Comment se fait-il que les ports 49-58 ont des adresses MAC différentes ? ... l'adresse MAC du switch est normalement 00:08:30:28:ec:a5
    => je ne vois pas très bien comment exploiter cette table de façon générique

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Il y a une MIB spécifique pour le SG-300 :

    http://www.cisco.com/cisco/pub/softw...reid=283415684

    Cf notamment le readme

    In SG300 device family:
    The ports are mapped to ifIndex 49 and above.
    A noter que la normalisation SNMP n'impose en aucun cas de démarrer l'IfIndex à 1...
    De plus, les erreurs proviennent du fait que la MIB du 300 est héritée d'autres MIBs plus génériques.

    Concernant les MAC adresses, effectivement Cisco a choisi l'option de "hard coder" plusieurs MAC adresses contrairement à beaucoup de constructeurs qui utilisent une seule MAC adresse pour toutes les fonctions.

    Ainsi, sur un équipement Cisco L2 configuré en PVST et ses dérivés, l'IOS associe un Bridge ID unique par instance Spanning Tree, ce qui est parfois très utile dans les grosses architectures PVST. De même dans les aggrégats EtherChannel/LACP : les neighbors sont identifiables au travers de leurs MAC adresses, ce qui est pratique en cas de troubleshooting.

    Steph

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Merci pour ta réponse

    En chargeant pleins de MIB, j'ai réussi à avoir un affichage correcte. Ensuite j'ai supprimer toutes les MIBs CISCO puis chargé une à une les MIB (pour voir quelles sont les MIB dont j'ai réellement besoin) mais impossible de revenir dans la configuration qui fonctionne.
    => dans le lien que tu m'a donné, il y a à priori des fichier .mib qui sont en conflis (je n'ai pas bien compris le principe de fonctionnement du chargement des .mib)

    C'est quoi le .my ?

    Tu sais pourquoi ça commence à 49 ? il doit bien y avoir une raison, non ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    Merci pour ta réponse

    En chargeant pleins de MIB, j'ai réussi à avoir un affichage correcte. Ensuite j'ai supprimer toutes les MIBs CISCO puis chargé une à une les MIB (pour voir quelles sont les MIB dont j'ai réellement besoin) mais impossible de revenir dans la configuration qui fonctionne.
    => dans le lien que tu m'a donné, il y a à priori des fichier .mib qui sont en conflis (je n'ai pas bien compris le principe de fonctionnement du chargement des .mib)

    C'est quoi le .my ?

    Tu sais pourquoi ça commence à 49 ? il doit bien y avoir une raison, non ?
    L'ordre de chargement des MIBs est important parce qu'il y a beaucoup d'imports de définitions, cf

    http://www.cisco.com/en/US/tech/tk64...800b4cee.shtml

    Quant aux .my, c'est une vieille habitude Cisco. Tu peux les renommer en .mib...

    Puis l'IfIndex qui démarre à 49, je sais pô

    Steph

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Merci mais il me semble que ce n'est pas ça le problème.

    Pour faire fonctionner correctement la ifTable sur des cisco, il faut a priori les mib suivantes :
    - RFC1213-MIB
    - IANAIfType-MIB

    Dans la mib IANAIfType-MIB (fichier ianaifty de CISCO), il y a la déclaration du type IANAifType qui permet de gérer toutes les valeurs du nœud ifType.
    Or dans la mib RFC1213-MIB (fichier RFC1213-MIB de CISCO), le type du noeud ifType est INTERGER et non pas IANAifType.
    => Je ne sais pas pourquoi mais en chargent les MIBs dans un certains ordre, ça fonctionnait chez moi (je pense que c'est un bug du logiciel)

    Finalement, en chargant la RFC1213-MIB ici, ça fonctionne car ifType est bien déclaré avec le type IANAifType.

    => tu penses que c'est réellement une erreur de CISCO ou c'est moi qui me trompe dans mon explication ?

    C'est normal que CISCO se permettent de redéfinir un fichier qui est une RFC ? ... les RFC sont pas sensés justement standardiser les choses (si tout le monde si met à redéinir les RFC, ça sert plus à rien alors les standards, non ?) ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    Merci mais il me semble que ce n'est pas ça le problème.

    Pour faire fonctionner correctement la ifTable sur des cisco, il faut a priori les mib suivantes :
    - RFC1213-MIB
    - IANAIfType-MIB

    Dans la mib IANAIfType-MIB (fichier ianaifty de CISCO), il y a la déclaration du type IANAifType qui permet de gérer toutes les valeurs du nœud ifType.
    Or dans la mib RFC1213-MIB (fichier RFC1213-MIB de CISCO), le type du noeud ifType est INTERGER et non pas IANAifType.
    => Je ne sais pas pourquoi mais en chargent les MIBs dans un certains ordre, ça fonctionnait chez moi (je pense que c'est un bug du logiciel)

    Finalement, en chargant la RFC1213-MIB ici, ça fonctionne car ifType est bien déclaré avec le type IANAifType.

    => tu penses que c'est réellement une erreur de CISCO ou c'est moi qui me trompe dans mon explication ?

    C'est normal que CISCO se permettent de redéfinir un fichier qui est une RFC ? ... les RFC sont pas sensés justement standardiser les choses (si tout le monde si met à redéinir les RFC, ça sert plus à rien alors les standards, non ?) ?
    J'avais oublié de te donner le lien vers le MIB Browser, je vois que tu l'as trouvé.

    Quant à la conformité aux RFC, je n'ai pas compris... Qu'est-ce qui n'est pas conforme au juste ?

    Parce que l'IANAIfType est une évolution du groupe Interfaces de la MIB-II (cf RFC1573). Quant à la numérotation de l'IfIndex, la norme impose simplement que ce soit un Integer.

    Steph

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Citation Envoyé par IP_Steph Voir le message
    Quant à la conformité aux RFC, je n'ai pas compris... Qu'est-ce qui n'est pas conforme au juste ?
    Ce que je veux dire c'est que ici, il y a la définition de la mib RFC1213 : dedans, il y a la définition de ifType :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
              ifType OBJECT-TYPE
                  SYNTAX  INTEGER {
                              other(1),          -- none of the following
                              regular1822(2),
                              hdh1822(3),
                              ddn-x25(4),
                              rfc877-x25(5),
                              ethernet-csmacd(6),
                              iso88023-csmacd(7),
                              iso88024-tokenBus(8),
                              iso88025-tokenRing(9),
                              iso88026-man(10),
                              starLan(11),
                              proteon-10Mbit(12),
                              proteon-80Mbit(13),
                              hyperchannel(14),
                              fddi(15),
                              lapb(16),
                              sdlc(17),
                              ds1(18),           -- T-1
                              e1(19),            -- european equiv. of T-1
                              basicISDN(20),
                              primaryISDN(21),   -- proprietary serial
                              propPointToPointSerial(22),
                              ppp(23),
                              softwareLoopback(24),
                              eon(25),            -- CLNP over IP [11]
                              ethernet-3Mbit(26),
                              nsip(27),           -- XNS over IP
                              slip(28),           -- generic SLIP
                              ultra(29),          -- ULTRA technologies
                              ds3(30),            -- T-3
                              sip(31),            -- SMDS
                              frame-relay(32)
                          }
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                          "The type of interface, distinguished according to
                          the physical/link protocol(s) immediately `below'
                          the network layer in the protocol stack."
                  ::= { ifEntry 3 }

    Sur le site de CISCO la définition de ifType dans la mib est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     	  ifType OBJECT-TYPE
     	      SYNTAX      IANAifType
     	      ACCESS  read-only
     	      STATUS      mandatory
     	      DESCRIPTION
             	      "The type of interface.  Additional values for ifType
     	               are assigned by the Internet Assigned Numbers
             	       Authority (IANA), through updating the syntax of the
     	               IANAifType textual convention."
     	      ::= { ifEntry 3 }
    => donc on n'est pas conforme à la définition de la RFC, non ?
    => en gros, j'ai eu un peu de chance de trouver ce qu'il fallait faire car en regardant uniquement la RFC1213, rien ne m'indiquait qu'il fallait que je fasse des changements

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/02/2013, 11h00
  2. [TFileStream] Problème de lecture de string
    Par Pedro dans le forum Langage
    Réponses: 6
    Dernier message: 28/06/2004, 13h06
  3. problème de lecture base de registre
    Par pafounet3 dans le forum MFC
    Réponses: 10
    Dernier message: 31/12/2003, 14h06
  4. [fread] Problème de lecture de buffer
    Par karl3i dans le forum C
    Réponses: 2
    Dernier message: 25/09/2003, 09h21
  5. Réponses: 4
    Dernier message: 23/07/2003, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo