Forum Programmation.shell mac vers port de switch

Posté par  .
Étiquettes : aucune
0
18
oct.
2005
Bonour tout le monde...

je suis en train d'essayer de faire un script qui me donnerais le port de
switch en fonction de la mac adresse entrée...

ça donnerais a peu pres ça:



echo $1
deck=$(snmpwalk -v 1 -c commRW@12 myequip .1.3.6.1.2.1.17.4.3.1.1 | grep "$1" | awk -F "." '{print $8"."$9"."$10"."$11}')
deck2=$(snmpwalk -v 1 -c commRW@12 myequip .1.3.6.1.2.1.17.4.3.1.2 | grep "$deck" | awk '{print $4}')
echo $deck2
deck3=$(snmpwalk -v 1 -c commRW@12 myequip .1.3.6.1.2.1.17.1.4.1.2.$deck2 | awk '{print $4}')
echo $deck3
snmpwalk -v 1 -c myequip ifName.$deck3




le problem est que la je part du principe que je "sais" que je suis
sur le vlan 12, en entrant dans le champs communauté:

commRW@12

Est il possible de faire un snmpwalk sur tout les vlans a votre connaissance...?


merci d'avance...!
  • # Bon alors

    Posté par  . Évalué à 3.

    Le nom de communauté est une sorte de mot de passe qui te permet d'aller lire l'arbre snmp. En général (enfin sur les switchs que je connais) les switchs répondent sur un vlan d'administration (en générale de 1) et disposent d'une liste d'ip autorisées à faire des requètes.
    Il faut donc d'abord que tu vérifie que tes commandes fonctionnent une à une.

    tu cherches à faire une relation mac/port pour cela tu n'as besoins que de l'oid : .1.3.6.1.2.1.17.4.3.1.2.0 qui te donne la liste des mac connues sous la forme .1.3.6.1.2.1.17.4.3.1.2.0.mac_convertie_en_decimal : N° du port relié à cette mac.
    tu as donc directement ta correspondance. Il faut faire attention car tu peux avoir beaucoup de mac sur le port d'uplink.

    Le sujet des vlans est plus complex puisqu'il dépend un peu des switchs. L'indexation des macs n'est pas du tout relié aux vlan. IL faut 2 oids pour déterminer si le port appartient à un vlan et si il est marqué taggué ou non.

    .1.3.6.1.2.1.17.7.1.4.3.1.2.vlan donne l'appartenance au vlan
    .1.3.6.1.2.1.17.7.1.4.3.1.4.vlan donne impose la marque untaggued
    pour les switchs HP au minimum. le retour de ces oids est une valeur hexa qu'il faut interpréter sous forme binaire avec le msb correspondant à l'état du premier port du switch

    Tu peux aussi utiliser le PVID pour avoir une idée du vlan .1.3.6.1.2.1.17.7.1.4.5.1.1
    • [^] # Re: Bon alors

      Posté par  . Évalué à 2.

      Bon, je sais, je ne suis pas l'initiateur de cette question, mais le sujet m'intéresse.
      D'abord, tu sors tout ça d'où ? Tu lis l'intégralité de la M.I.B. tous les soirs avant de dormir ? Bref, je suis impressionné.
      Je me pose une question similaire (enfin, dans le même ordre d'idée), concernant la table MIB de nos switch. Ce sont des 3com, si ça peut aider.
      Comment peut-on récupérer l'adresse IP connectée à chacun des ports du switch ?
      J'ai cherché un peu par moi-même, mais le www regorge (trop) d'informations concernant snmp et la MIB, ce qui fait que j'ai bien peur de passer très loin à côté de l'information que je cherche.
      J'ai voulu faire un essai avec ce que tu donnes, notemment avec .1.3.6.1.2.1.17.4.3.1.2.0, ce qui me donne 89 entrées là où mon switch ne dispose que de 24 ports. Je ne comprends pas trop, donc.
      Par ailleurs, j'ai fait un petit script php qui m'affiche les adresses MAC en hexa, mais je ne retrouve aucune de ces adresses mac sur mon réseau.
      Je n'y comprends donc rien de chez rien.
      Si tu as un peu de temps pour éclairer ma lanterne, merci par avance.
      P.S. Si un autre spécialiste veut s'y coller, je ne lui en voudrait pas !
      • [^] # Re: Bon alors

        Posté par  . Évalué à 3.

        D'abord, tu sors tout ça d'où ? Tu lis l'intégralité de la M.I.B. tous les soirs avant de dormir ?
        Euh d'un projet d'outil d'administration de réseau [1] qui utilise le snmp pour ouvrir/fermer et changer de vlan des ports. Oui j'ai lu quelques parties des MIB et c'est très chiant.

        Comment peut-on récupérer l'adresse IP connectée à chacun des ports du switch ?
        Un switch est un équipement de niveau 2 donc il n'a pas à accès aux IPs et n'en à pas besoins.
        un moyen de savoir qu'elle ip est derrière un port est de trouver sa mac et de faire un arping après. Si l'attribution des ips se fait par dhcp tu peux utiliser ton fichier de lease pour faire la correspondance.
        Peut etre que les sw 3com on une fonctionnalité pour les ips mais la il faut RTFM :)

        J'ai voulu faire un essai avec ce que tu donnes, notemment avec .1.3.6.1.2.1.17.4.3.1.2.0, ce qui me donne 89 entrées là où mon switch ne dispose que de 24 ports.
        le snmpwalk sur cet oid va donner l'ensemble des mac connues et le port sur lequel tu vas les trouver. Je suppose que ton switch est relié à d'autres dans ton réseau. il va donc y avoir en gros une mac par port et sur le port d'uplink toutes les autres macs du réseau.
        Si on considère un switch de 24 port sur un réseau qui comporte 200 machines, tu vas trouver en gros 200 macs dans l'arbre pour que le switch puisse router les trames vers le bon port ou vers le bon switch suivant dans le réseau.

        Par ailleurs, j'ai fait un petit script php qui m'affiche les adresses MAC en hexa, mais je ne retrouve aucune de ces adresses mac sur mon réseau.
        euh surement un pb dans ton script ou un pb d'interprétation du résultat.
        voici un ligne de résultat. la mac est sur le port 8
        SNMPv2-SMI::mib-2.17.4.3.1.2.0.17.47.107.195.113 = INTEGER: 8
        et ça correspond à la mac 00:11:2f:6b:c3:71
        Tu peux éventuellement trouver les macs des tes switchs que l'on a pas l'habitude de voir :)

        ERRATUM
        mon oid est .1.3.6.1.2.1.17.4.3.1.2 j'ai dis une connerie tout à l'heure avec le 0 :-|

        [1] http://forge.ec-lyon.fr/projects/bazadmin/ mais mieux vaut venir nous voir sur irc : #bazadmin sur rezosup.org
        • [^] # Re: Bon alors

          Posté par  . Évalué à 3.

          Merci !
          C'est très plaisant d'avoir une réponse aussi bien documentée lorsqu'on pose une question. Vraiment, chapeau bas, et encore merci.
          Je m'en vais tester tout ça dès demain (fonctionnaire oblige), mais ça ne me laisse augurer que du bon !

Suivre le flux des commentaires

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