Sauvegarde des configurations Switches des Blade Center

IBM BladeCenter 4-GB Ethernet ModuleLes « BladeCenter 4-Port GB Ethernet Switch Module » sont des switches présents (au nombre de 1 ou 2) dans les Blade Center.

Ils disposent chacun de .. 18 interfaces :

  • 4 ports Gigabit Externes
  • 14 ports Gigabits Internes correspondant à une interface de chaque blade (ou lame)
  • Visualisation des ports externes et interne du switch 4-GB IBM BladeCenter
    Les 2 switches n’ont aucun mode commun, si ce n’est l’interface de management qui permet une administration out-of-band via le module d’administration du chassis.

    Si on veut faire de la haute-disponibilité réseau sur les serveurs lames, il faut au niveau du serveur réaliser un bonding ou teaming des 2 interfaces internes qui sont réliées au fond de panier de chacun des 2 switches.

    Par l’interface Web, il est possible de déclencher la sauvegarde TFTP de la configuration du switch.

    Interface Web de sauvegarde de la configuration par TFTP

    Afin de réaliser cela automatiquement1 (i.e de façon scriptée), nous avons examiné la séquence HTTP des requetes GET et POST aboutissant à cette sauvegarde : pour cela nous utilisons l’excellent outil HTTPWatch.

    Nous arrivons ainsi à réaliser une sauvegarde via curl (en 1 seule ligne) :

    curl --user USERID:PASSW0RD
    --data-ascii "FormSubmit_HiddenCommand=1&ConfigLog_File=1
    &UploadConfiguration_IPAddr=10.0.1.99
    &UploadConfiguration_FileName=swibm.conf
    &FormSubmit_StartUploadCfgFile=++Start++"
    --proxy monproxy:3128
    http://10.0.1.141/Forms/UploadConfiguration_Set
    --output /dev/null
    --verbose

    On notera que le login « USERID » et le password « PASSW0RD » (avec le chiffre 0) sont les crédentiels par défaut (configuration usine), que « 10.0.1.99″ est le serveur TFTP, que le nom du fichier à sauvegarder est « swibm » que le proxy utilisé est « monrpoxy » (port 3128), que l’adresse IP du switch IBM est « 10.0.1.141″.

    Il ne reste donc plus qu’à scripter cette requête HTTP en PERL (et introduire une boucle afin de traiter une liste de switches) :

    #!/usr/bin/perl
    use LWP::UserAgent;
    ## A decommenter en mode debug
    ##use LWP::Debug qw(+);

    my $ua = LWP::UserAgent->new;
    my $req= HTTP::Request->new;

    my $proxy="http://frigo:3128";
    my $uri ='/Forms/UploadConfiguration_Set';
    my $tftpserver='10.0.160.99';
    my $login='USERID';
    my $password='PASSW0RD';
    ## Tableau contenant les @IPs des switches à sauvegarder
    my @switches=('10.0.1.141','10.0.1.142');

    ## A decommenter si un proxy est utilisé
    ##$ua->proxy('http',$proxy);

    $|=1;

    foreach $switch (@switches) {

            $filename=$switch.'.conf';

            $req= HTTP::Request->new(POST => 'http://'.$switch.$uri);
            $req->authorization_basic('USERID','PASSW0RD');

            $req->content_type('application/x-www-form-urlencoded');
            ## En une seule ligne : attention pas de retour chariot !!
            $req->content('FormSubmit_HiddenCommand=1&ConfigLog_File=1&
                UploadConfiguration_IPAddr='
    .$tftpserver.'&
                UploadConfiguration_FileName='
    .$filename.'
                &FormSubmit_StartUploadCfgFile=++Start++'
    );

            ##my $res = $ua->request($req);
            print "Sauvegarde en tftp de $switch \
                     sur $tftpserver (fichier $filename)..."
    ;
            $res = $ua->request($req);
            ## A decommnenter en mode debug
            ## print $res->as_string;

            # Check the outcome of the response
            if ($res->code eq "303") {
                  print "OK\n";
            }
              else {
                 print "NOK :";
                 print $res->code."\n";
            }
    };

    A l’execution on obtient :

    # ./backupIBM.pl
    Sauvegarde en tftp de 10.0.1.141 sur 10.0.1.99 ...OK
    Sauvegarde en tftp de 10.0.1.142 sur 10.0.1.99 ...OK

    En conclusion nous pouvons remarquer :

  • que le téléchargement n’implique pas la sauvegarde en NVRAM de la configuration : en clair, c’est la startup-config et non la running-config qu’on télécharge
  • que cette méthode est générique et peut s’appliquer finalement à n’importe quel équipement ou scénario

    1. pour les équipements Cisco, on préfèrera utiliser la MIB propriétaire permettant de fournir ces éléments et de déclencher le téléchargement par des requêtes SNMPset; [back]

    Post to Twitter

    About SR

    Expert Réseau et Sécurité. Vous pouvez me contacter sur sreytan.(at).randco.fr
    This entry was posted in and tagged , , , . Bookmark the permalink.

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    *

    Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>