Forum Linux.général snmpd et interfaces virtuelles

Posté par  .
Étiquettes :
0
4
mai
2006
Bonjour,

J'ai configuré, sur une machine équipé de fedora core 4, un demon snmp.Sur cette machine plusieurs interfaces virtuelles sont configurées. Or lorsque j'envoie une requête SNMP sur ce serveur en utilisant comme adresse IP destination une de ces interfaces virtuelles, la réponse utilise comme adresse source celle de l'interface principale et non celle de l'interface virtuelle d'où la requête est arrivé.
D'où ma question: Comment faire pour que la réponse à la requête utilise l'adresse IP de l'interface virtuelle comme adresse source?
J'espère avoir été assez clair.
Merci d'avance pour vos réponses.
JOko.
  • # Plus de détails

    Posté par  . Évalué à 1.

    C'est bizard, le man de snmpd ne semble pas indiquer de façon simple pour le binder directement sur une interface, il faut donc faire autrement.

    Tes interfaces virtuelles ont des ips qui appartiennent au même sous reseau ??

    Je suppose que la réponse est oui sinon tu n'aurais pas de problème :)
    Dans ce cas par défault, le noyau choisis la route la plus courte pour répondre à la requette snmp, comme toutes les routes ont le même poids (route -n, puis regarder la colone 'Metric'), il prend la première qui vient ce qui correspond dans ton cas à l'interface principale.
    Pour résoudre ton problème, il faut mettre en place une solution de load balancing [1]. Ca te permet de répartir la charge sur les différents liens. En cherchant avec google, j'ai trouvé pen [2] qui permet de faire du load balancing basé sur la couche applicative (il y a peut etre d'autres solutions).

    Si tu as plusieurs liens physique vers ton reseau, tu peux utiliser du channel bonding qui te permet de 'fusionner' plusieurs liens physques mais il faut que le switch supporte cette méthode.

    [1] http://lartc.org/howto/lartc.rpdb.multiple-links.html
    [2] http://siag.nu/pen/
    • [^] # Re: Plus de détails

      Posté par  . Évalué à 1.

      C'est bizard, le man de snmpd ne semble pas indiquer de façon simple pour le binder directement sur une interface, il faut donc faire autrement.
      Tes interfaces virtuelles ont des ips qui appartiennent au même sous reseau ??


      Oui, elles appartiennent au même subnet.

      Dans ce cas par défault, le noyau choisis la route la plus courte pour répondre à la requette snmp, comme toutes les routes ont le même poids (route -n, puis regarder la colone 'Metric'), il prend la première qui vient ce qui correspond dans ton cas à l'interface principale.

      Il n'ya qu'une route puisqu'elles appartiennent au même subnet et je ne vois pas comment les routes influent sur l'adresse IP source.

      Pour résoudre ton problème, il faut mettre en place une solution de load balancing [1]. Ca te permet de répartir la charge sur les différents liens. En cherchant avec google, j'ai trouvé pen [2] qui permet de faire du load balancing basé sur la couche applicative (il y a peut etre d'autres solutions).

      Voila un peu le contexte, en fait je réalise un outils automatiques de test de configuration de firewall. Or j'utilise le démon snmpd pour répondre à des requêtes UDP. Je suis parti de ftester qui est codé en perl, or dans ce code pour tester tcp, j'utilse la fonction send() du module Net::RawIP qui ne permet d'inspecter que la table principale donc les solutions à la iproute2 ne sont pas possibles.
      Et franchement, je ne vois pas trés bien ce que le load balancing peu m'apporté.....?????
      • [^] # Une première solution mais limité.....

        Posté par  . Évalué à 1.

        J'ai trouvé comment faire pour que ce soit l'adresse de l'interface virtuelle qui soit utilisé comme adresse source sur la réponse.
        Dans le fichier snmpd.conf, au lieu de mettre simplement les ports en écoute:
        agentaddress udp:53,161
        , il faut mettre en clair les adresses ip des interfaces virtuelles et les ports en écoute, comme suivant:
        agentaddress 192.168.1.2:53,192.168.1.3:53 etc...
        avec eth0 à 192.168.1.2 et eth0:0 à 192.168.1.3.
        Le problème c'est que cette solution est limité, je ne peux pas écouter sur toutes les adresses IP du subnet et donc sur toutes mes interfaces virtuelles car il semble avoir une limite.
        Comment fait on pour faire pour repousser cette limite ou pour l'annuler?
        Merci d'avance.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.