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 :

proxy snmp avec un linux embarqué


Sujet :

Réseau

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut proxy snmp avec un linux embarqué
    Bonjour,

    J'utilise un linux embarqué dans un périphérique réseau fourni par linksys. Je cherche à en faire un proxy snmp. C'est à dire que je veux faire en sorte que les requètes qu'il reçoit soit automatiquement renvoyé sur la bonne machine.

    J'ai compilé et installé net-snmp sur le système, mais je dois maintenant faire le fichier de configuration (snmpd.conf). Seulement, je ne comprend pas bien le fonctionnement.

    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
    # define a simple view 'systemview', which includes everthing under .1.3.6.1
    view    systemview     included      .1
     
    # map 'public' community to the 'notConfigUser'
    com2sec notConfigUser  default       public
     
    # map 'notConfigUser' to 'notConfigGroup'
    group   notConfigGroup v1            notConfigUser
    group   notConfigGroup v2c           notConfigUser
     
    # give 'notConfigGroup' read access to objects in the view 'systemview'
    access  notConfigGroup ""            any       noauth    exact  systemview none none
     
    com2sec -Cn context1_1  notConfigUser default  192.168.1.1
     
    access  notConfigGroup context1_1 any noauth prefix systemview none none
     
    proxy -Cn context1_1 -v 2c -c public 192.168.1.1 .1
    Explication de ce que je veux faire :
    L'agent snmp qui va contacter ce périphérique va le faire en utilisant une autre communauté que public. Par exemple context1_1. Ainsi, le proxy va savoir qu'il doit contacter le périphérique ayant l'adresse 192.168.1.1 par la communauté public.
    Mon premier problème est de savoir si ceci fonctionne parce que mes tests ne fonctionne pas.
    Ensuite, ce proxy fait partie de plusieurs réseau à la fois (il a plusieurs interfaces réseaux ou des alias d'ip). Il me faut donc multiplier les 3 dernières lignes par autant qu'il y a de périphériques à surveiller. Et la mémoire disponible dans le périphérique ne permet pas de le faire, je suis limité à quelques centaines de lignes.
    Peut-on faire une sorte de script dans ce fichier pour diminuer sa taille?

    Pouvez-vous m'aider?

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut
    Personne n'a de solution ou je n'ai pas fait la demande dans le bon forum?

  3. #3
    Membre chevronné Avatar de mess-mate
    Inscrit en
    Septembre 2008
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 352
    Par défaut
    Bonjour, je suppose que tu as déjà cherché sur le net ?
    Sinon voici une petite doc: ici
    Pour la première question: je me suis jamais intéressé à net-snmp, je peux pas t'aider.
    Pour la deuxième question: c'est un fichier de configuration qui est ni plus ni moins qu'un fichier texte (lecture). Tu ne peux donc appeler ni y insérer un script vu que cela devrait être exécutable à moins que ce soit différent vu l'implementation de perl.
    Par contre tu peux réduire la taille en enlevant tout ce qui est superflus.

    Il y a pas de documentation à linksys ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut
    Merci pour cette réponse.

    Il n'y a aucune doc fourni par linksys étant donné que c'est moi qui ai rajouter net-snmp dans le modem puisqu'ils fournissent le code source.

    J'ai bien fait des recherches sur internet pour comprendre comment configurer un proxy snmp mais je n'en comprend pas complètement le paramétrage.

    J'ai trouvé ce site mais il ne parle pas de proxy. http://uuu.enseirb.fr/~kadionik/embe.../net-snmp.html

    J'ai aussi trouvé ce site : http://www.net-snmp.org/wiki/index.php/Snmpd_proxy et je me suis basé sur cette démonstration pour créer mon fichier mais je n'en comprend pas le fonctionnement. Je voudrais donc savoir si le bout de fichier de configuration que j'ai mis plus haut a une chance de fonctionner et surtout, je voudrais savoir comment faire pour le tester sachant que j'ai un accès au port console du modem et par telnet. Parce qu'actuellement, le daemon snmpd ne m'affiche rien dans la console. Je ne peux donc pas savoir exactement où est le problème.

    Je voulais en faire un firmware générique, c'est à dire qu'il puisse rediriger les requètes snmp vers n'importe quel périphérique du réseau local sans avoir a créer un nouveau firmware à chaque fois que j'ajoute un nouveau matériel sur le réseau. Je vais donc me limiter à une plage d'adresse.

  5. #5
    Membre chevronné Avatar de mess-mate
    Inscrit en
    Septembre 2008
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 352
    Par défaut
    Je sais pas sous quelle distribution cela fonctionne mais un exemple en support proxy:
    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
    proxy [-Cn contextname] [snmpcmd_args] host oid [remoteoid]
    
        This token specifies that any incoming requests under oid should be proxied to another host. If contextname is specified, it assigns the proxied tree to a particular context name within the local agent. This is the correct way to query multiple agents through a single proxy, by assigning each remote agent to a different context name.
    # assigns the entire mib tree on remotehost1 to the context of the
    # same name:
    proxy -Cn remotehost1 -v 1 -c public remotehost1 .1.3
    
    # same as preceding, but for remotehost 2
    proxy -Cn remotehost2 -v 1 -c public remotehost2 .1.3
    
    # proxies only the ucdavis enterprises tree to the remote host using 
    # snmpv1
    proxy -v 1 -c public remotehost .1.3.6.1.4.1.2021
    
    Pour une conversion éventuelle:
    
    # uses v3 to access remotehost and converts the remote .1.3.6.1.2.1.1
    # oid to local .1.3.6.1.3.10 oid (another way to access mulitple hosts
    # without using contexts)
    proxy -v 3 -l noAuthNoPriv -u user remotehost .1.3.6.1.3.10 .1.3.6.1.2.1.1
    Le model VASM par defaut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    com2sec public default public
    group public v1 public
    group public v2c public
    group public usm public
    view  all included .1
    access public "" any noauth exact all none none
    Et quelques exemples pour VACM:
    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
    # sec.name source community
    com2sec local localhost private
    com2sec mynet 10.10.10.0/24 public
    com2sec public default public
    com2sec6 mynet fec0::/64 public
     
    # sec.model sec.name
    group mygroup v1 mynet
    group mygroup v2c mynet
    group mygroup usm mynet
    group local v1 local
    group local v2c local
    group local usm local
    group public v1 public
    group public v2c public
    group public usm public
     
    # incl/excl subtree mask
    view all included .1 80
    view system included system fe
    view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
     
    # context sec.model sec.level prefix read write notify
    access mygroup "" any noauth exact mib2 none none
    access public "" any noauth exact system none none
    access local "" any noauth exact all all all
    Attention aux v1, 2c, 3.

    C'est à toi de voir si ta configuration en ce qui concerne plus haut correspond en adaptent les paramètres bien-sûr.
    Et faire le test. Tu pourrais pas utiliser des plages ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut
    Merci, je pense que je vais utiliser un fichier de configuration pour l'instant.
    J'ai trouver comment faire pour afficher des infos sur le routeur avec la commande suivante :

    /usr/sbin/snmpd -c /etc/snmp/snmpd.conf

    Et du coup j'ai ceci :
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    No log handling enabled - turning on stderr logging
    Encryption support not enabled.
    /etc/snmp/snmpd.conf: line 21: Warning: Unknown token: proxy.
    Encryption support not enabled.
    Encryption support not enabled.
    Configuration directives understood:
      In snmpd.conf and snmpd.local.conf:
        authtrapenable           1 | 2              (1 = enable, 2 = disable)
        trapsink                 host [community] [port]
        trap2sink                host [community] [port]
        informsink               host [community] [port]
        trapsess                 [snmpcmdargs] host
        trapcommunity            community-string
        agentuser                userid
        agentgroup               groupid
        agentaddress             SNMP bind address
        quit                     (1|yes|true|0|no|false)
        leave_pidfile            (1|yes|true|0|no|false)
        dontLogTCPWrappersConnects (1|yes|true|0|no|false)
        maxGetbulkRepeats        integerValue
        maxGetbulkResponses      integerValue
        injectHandler            injectHandler NAME INTONAME [BEFORE_OTHER_NAME]
        add_row                  table_name indexes... values...
        com2sec                  [-Cn CONTEXT] secName IPv4-network-address[/netmask] community
        com2secunix              [-Cn CONTEXT] secName sockpath community
        group                    name v1|v2c|usm|... security
        access                   name context model level prefix read write notify
        setaccess                name context model level prefix viewname viewval
        view                     name type subtree [mask]
        authcommunity            authtype1,authtype2 community [default|hostname|network/bits [oid|-V view]]
        authuser                 authtype1,authtype2 [-s secmodel] user [noauth|auth|priv [oid|-V view]]
        authgroup                authtype1,authtype2 [-s secmodel] group [noauth|auth|priv [oid|-V view]]
        authaccess               name authtype1,authtype2 [-s secmodel] group view [noauth|auth|priv [context|context*]]
        rwcommunity              community [default|hostname|network/bits [oid]]
        rocommunity              community [default|hostname|network/bits [oid]]
        rwuser                   user [noauth|auth|priv [oid]]
        rouser                   user [noauth|auth|priv [oid]]
        createUser               username [-e ENGINEID] (MD5|SHA) authpassphrase [DES [privpassphrase]]
        sysdescr                 description
        syslocation              location
        syscontact               contact-name
        sysname                  node-name
        sysservices              NUMBER
        sysobjectid              OID
        defDomain                application domain
        defTarget                application domain target
        engineID                 string
        engineIDType             num
        engineIDNic              string
      In snmp.conf and snmp.local.conf:
        doDebugging              (1|0)
        debugTokens              token[,token...]
        logTimestamp             (1|yes|true|0|no|false)
        printNumericEnums        (1|yes|true|0|no|false)
        printNumericOids         (1|yes|true|0|no|false)
        escapeQuotes             (1|yes|true|0|no|false)
        dontBreakdownOids        (1|yes|true|0|no|false)
        quickPrinting            (1|yes|true|0|no|false)
        numericTimeticks         (1|yes|true|0|no|false)
        oidOutputFormat          integerValue
        suffixPrinting           integerValue
        extendedIndex            (1|yes|true|0|no|false)
        printHexText             (1|yes|true|0|no|false)
        printValueOnly           (1|yes|true|0|no|false)
        dontPrintUnits           (1|yes|true|0|no|false)
        hexOutputLength          integerValue
        dumpPacket               (1|yes|true|0|no|false)
        reverseEncodeBER         (1|yes|true|0|no|false)
        defaultPort              integerValue
        defCommunity             string
        noTokenWarnings          (1|yes|true|0|no|false)
        noRangeCheck             (1|yes|true|0|no|false)
        persistentDir            string
        tempFilePattern          string
        noDisplayHint            (1|yes|true|0|no|false)
        16bitIDs                 (1|yes|true|0|no|false)
        clientaddr               string
        serverSendBuf            integerValue
        serverRecvBuf            integerValue
        clientSendBuf            integerValue
        clientRecvBuf            integerValue
        noPersistentLoad         (1|yes|true|0|no|false)
        noPersistentSave         (1|yes|true|0|no|false)
        defDomain                application domain
        defTarget                application domain target
        defSecurityModel         string
        defSecurityName          string
        defContext               string
        defPassphrase            string
        defAuthPassphrase        string
        defPrivPassphrase        string
        defAuthMasterKey         string
        defPrivMasterKey         string
        defAuthLocalizedKey      string
        defPrivLocalizedKey      string
        defVersion               1|2c|3
        defAuthType              MD5|SHA
        defPrivType              DES (AES support not available)
        defSecurityLevel         noAuthNoPriv|authNoPriv|authPriv
    #
    J'en déduis qu'il ne connait pas la requète proxy sachant que je n'ai aucun fichier de type mib dans mon modem.

    Je vais rechercher si la compilation de net-snmp n'a pas été complète.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 17/07/2013, 09h59
  2. Souci avec l'utilisation de Strapsnmp sur un linux embarqué
    Par megamario dans le forum Embarqué
    Réponses: 5
    Dernier message: 06/03/2013, 16h58
  3. "linux embarqué" probleme avec MAKEDEV
    Par mout551 dans le forum Embarqué
    Réponses: 5
    Dernier message: 24/11/2008, 14h51

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