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

Développement Discussion :

Gérer les ports d'un switch HP


Sujet :

Développement

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 16
    Points : 20
    Points
    20
    Par défaut Gérer les ports d'un switch HP
    Bonjour

    Je dois effectuer une application en vb.net permettant d'ouvrir et de fermer des ports sur un switch HP procurve 2650.

    J'ai réussi à faire cela via des commandes Telnet, mais je rencontre énormément de problèmes. Je suis obligé de mettre un timer entre l'envoi de chaque commandes car le switch n'arrive pas à toutes les interpreter mais parfois meme avec les timer les commandes ne sont pas prises en compte.
    Je trouve cela très fastidieux (car je n'ai aucun moyen de savoir si la commande a été correctement passée) et très long (à cause des timers)pour ouvrir ou fermer un port.

    Existe-t-il un moyen pour faire cela beaucoup plus rapidement et sûrement ?

    L'interface Web du Switch permet de réaliser l'ouverture et la fermeture des ports, et c'est très rapide. J'aimerais donc savoir comment HP fait, car il faut que je réalise une appli similaire.

    Merci pour votre aide

  2. #2
    vic
    vic est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2002
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 431
    Points : 498
    Points
    498
    Par défaut
    Pourquoi n'utilises-tu pas plutot l'interface web dans ton programme VB ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 16
    Points : 20
    Points
    20
    Par défaut
    Je ne peux pas utiliser l'interface Web du switch, car chaque port va représenter une chambre, la personne qui va ouvrir utiliser le logiciel devra selectionner une chambre et decidera d'activer ou desactiver le port. Mais le problème c'est que les batiments ne comportent pas le meme nombre de chambre et certains on plus de 100 chambres, donc il va falloir deux switchs (je dispose de switch 26 et 50 ports), donc il est clair que les 50 premieres chambres auront le nurmero du port correpsondant sur le switch mais pour au dela de ce chiffre le numero des chambres et des ports sera différent, exemple la chambre 64 sera certainement sur le switch 2, port 14, de plus il n'y a pas réellement 50 ports de dispos puisqu'il faut relier les switchs entre eux. C'est pour ça qu'il faut un logiciel spécifique et puis la personne qui va gérer l'accès au réseau des chambres ne va pas savoir si la chambre x est sur le switch 1 ou 2 voir 3...

  4. #4
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Pfiou c'est compliqué

    En fait je pense que ce que vic a voulu dire c'est de programmer dans ton applic VB des requêtes HTTP En gros faire des GET ou des POST sur les bonnes URL avec les paramètres requis, en utilisant les sockets (ou bien au moyen d'une classe qui gère l'http à un plus haut niveau, je ne sais pas je ne connais pas du tout VB). Moi en tout cas c'est ce que je fais après avoir lu tes posts
    (et d'ailleurs je l'ai fait en C++ dans le cadre d'une applic similaire, c'est une solution qui marche bien)

    Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

    Pensez à consulter les FAQs et les cours et tutoriels.
    FAQ Linux - Cours et tutoriels Linux - FAQ PHP - Cours et tutoriels PHP
    Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.

    Je n'ai rien à voir avec la société www.ovh.com !

  5. #5
    vic
    vic est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2002
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 431
    Points : 498
    Points
    498
    Par défaut
    Oui voilà ovh c'est ce que je voulais dire, j'aurais du détailler

    Pour utiliser l'interface web il n'est pas nécéssaire d'avoir un navigateur web, le programme peut simuler ca. Il existe probablement des modules déjà tout faits pour ça.

  6. #6
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Le problème, c'est que la plupart des switches qui ont une interface web s'en servent pour intégrer une applet java.

    Pour les HP, je ne sais pas, mais pour les CISCO ou les 3COM, un dialogue GET/POST en HTTP n'est pas efficace

    C'est d'ailleurs un peu pour ça que les PERLiens ont tweaké un module Net::Telnet en Net::Telnet:Cisco. Ainsi, ils peuvent programmer directement les CISCO en Telnet.

    Peut être est il possible d'en faire autant avec les HP, à condition de bien connaitre le dialogue ...

    Bon courage.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  7. #7
    vic
    vic est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2002
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 431
    Points : 498
    Points
    498
    Par défaut
    Ah je n'avais pas pensé à ça. Les switchs enterasys (nettement moins haut de gamme ) qu'on utilise sur mon réseau ont une interface html simple basée sur des formulaires.

  8. #8
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Je ne savais pas qu'il y avait du java même dans les interfaces de config Reste à espérer que ce type de switch supporte telnet et à ce moment-là on peut très bien employer les sockets en telnet, ça ne change pas grand chose à l'idée fondamentalement

    Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

    Pensez à consulter les FAQs et les cours et tutoriels.
    FAQ Linux - Cours et tutoriels Linux - FAQ PHP - Cours et tutoriels PHP
    Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.

    Je n'ai rien à voir avec la société www.ovh.com !

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    J'ai déjà effectuer une application delphi qui sait gérer maintenant 2000 logements étudiants

    1* L'état du port est très facilement récupérable par le protocole SNMP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      switch.Community := 'community'; // d'origine : "public" 
      switch.Host := ip;
      Oid :='1.3.6.1.2.1.2.2.1.7.'+IntToStr(port);
      switch.Query.Clear;
      switch.Query.MIBAdd(Oid,'2',2);
      switch.Query.PDUType := PDUGetRequest;
      switch.SendQuery;
      if switch.Reply.ValueCount=1 then
        begin
        if switch.Reply.Value[0]='1' then ouvert:=True;
        if switch.Reply.Value[0]='2' then ouvert:=False;
        end;
    2* L'ouverture et la

    PS : Je travail sur des HP Procurve 2650
    J'utilise Getif 2.3.1 pour pouvoir lire et analyser la MIB du Switch
    J'utilise le composant TIDsnmp de Delphi et aussi le composant TIDtelnet par le suite (je te simplifie légèrement le code pour que ce soit plus compréhensible)

    2* Récupération d'information SNMP
    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
    OID de l'état du port (ouvert ou fermé):
    Oid :='1.3.6.1.2.1.2.2.1.7.(port);
    
    OID du status du port (connecté ou non) :
    Oid :='1.3.6.1.2.1.2.2.1.8.(port);
    
    OID pour le Vlan sur lequel il se trouve :
            switch.Query.Clear;
            Oid :='1.3.6.1.4.1.11.2.14.11.5.1.9.16.1.1.1.(vlan1).(port);
            switch.Query.MIBAdd(Oid,'');
            Oid :='1.3.6.1.4.1.11.2.14.11.5.1.9.16.1.1.3.(vlan2).(port);
            switch.Query.MIBAdd(Oid,'');
            Oid :='1.3.6.1.4.1.11.2.14.11.5.1.9.16.1.1.3.(vlan99).(port);
            switch.Query.MIBAdd(Oid,'');
            switch.Query.PDUType := PDUGetRequest;
            switch.SendQuery;
    3* La sécurité par @MAC et le changement de vlan se fait en telnet avec l'autre composant :
    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
    idTelnet.Disconnect;
    idTelnet.Host := ip;
    UserName := 'usr';
    psw:='xxxx';
    cmd1:='config';
    cmd2:='vlan '+(id_vlan)+' untagged '+(port);
    cmd3:='no port-security '+IntToStr(port);
    cmd4:='port-security '+IntToStr(port)+' learn-mode static action send-disable';
    cmd5:='write memory';
    cmd6:='exit';
    cmd7:='y';
    idTelnet.Connect;
    idTelnet.SendCh(#8);
    idTelnet.SendCh(#8);
    idTelnet.SendCh(#8);
    // envoi du login
    for i := 1 to length(UserName) do idTelnet.SendCh(UserName[i]);
    idTelnet.SendCh(#13);
    Sleep(200);
    // envoi du psw
    for i := 1 to length(psw) do  idTelnet.SendCh(psw[i]);
    idTelnet.SendCh(#13);
    Sleep(200);
    // va dans config
    for i := 1 to length(cmd1) do  idTelnet.SendCh(cmd1[i]);
    idTelnet.SendCh(#13);
    Sleep(200);
    // attribue le VLAN
    for i := 1 to length(cmd2) do  idTelnet.SendCh(cmd2[i]);
    idTelnet.SendCh(#13);
    Sleep(400);
    // ré-initialise la sécurité
    for i := 1 to length(cmd3) do  idTelnet.SendCh(cmd3[i]);
    idTelnet.SendCh(#13);
    Sleep(200);
    for i := 1 to length(cmd4) do  idTelnet.SendCh(cmd4[i]);
    idTelnet.SendCh(#13);
    Sleep(200);
    // sauvegarde de la configuration
    for i := 1 to length(cmd5) do  idTelnet.SendCh(cmd5[i]);
    idTelnet.SendCh(#13);
    Sleep(300);
    // quitter la session
    for i := 1 to length(cmd6) do  idTelnet.SendCh(cmd6[i]);
    idTelnet.SendCh(#13);
    Sleep(200);
    for i := 1 to length(cmd6) do  idTelnet.SendCh(cmd6[i]);
    idTelnet.SendCh(#13);
    Sleep(200);
    for i := 1 to length(cmd6) do  idTelnet.SendCh(cmd6[i]);
    idTelnet.SendCh(#13);
    Sleep(200);
    for i := 1 to length(cmd7) do  idTelnet.SendCh(cmd7[i]);
    idTelnet.SendCh(#13);
    Sleep(200);
    idTelnet.SendCh(#13);
    Sleep(200);
    idTelnet.Disconnect(True);
    il a fallu fait pas mal de test mais maintenant ça marche du feu de dieu

    j'espere que ca t 'aidera

Discussions similaires

  1. [Port série] Gérer les ports COM
    Par kloospet dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 28/03/2013, 06h42
  2. Gérer les portées des variables
    Par daydream123 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 01/04/2012, 15h33
  3. gérer les ouvertures de port par un browser
    Par ded jay dans le forum Développement Web en Java
    Réponses: 12
    Dernier message: 26/03/2009, 00h12
  4. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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