Einfache Bereitstellung neuer VLANs in einer großen Umgebung


20

Wie gehen die Benutzer mit der Notwendigkeit um, allen Switches in ihrem Netzwerk (oder sogar einer Teilmenge von Geräten) VLANs hinzuzufügen? Wir fügen zurzeit ungefähr 6 neue VLANs pro Woche hinzu. Mit dem Anwachsen des Netzwerks wird dies zu einer sehr umständlichen und riskanten Aufgabe.

Antworten:


17

Hier ist eine wirklich grundlegende Skriptvorlage in Perl zum Telneten in eine Liste von Geräten (eine in jeder Zeile in einer Datei mit dem Namen devicelist.txt) und zum Konfigurieren einiger Befehle. Je nachdem, was Sie gerade tun, sollte dies einen guten Start ermöglichen.

  use Net::Telnet::Cisco;

    # read in a list of devices
    my @devicelist;
    open(DATA, "<devicelist.txt") || die "Can't open file!";
    while (<DATA>) {
            chomp;
            push( @devicelist, $_);
    }

    # loop through the devices
    foreach $hostname (@devicelist)
    {
            # telnet to device
            my $cs = Net::Telnet::Cisco->new(Host => $hostname);

            # login, go enable, disable paging, go into config mode
            $cs->login( "username", "password" );
            $cs->enable( "enable_password" );
            $cs->cmd( 'terminal length 0' );
            $cs->cmd( 'config t' );

            # configure the device
            $cs->cmd( 'vlan 100, 200, 300' );
            $cs->cmd( 'interface Ethernet0' );
            $cs->cmd( ' switchport access vlan 100' );

            # exit config mode and write the config
            $cs->cmd( 'end' );
            $cs->cmd( 'wr mem' );

            # close the connection
            $cs->close;
    }

Hier finden Sie weitere Informationen zu Net :: Telnet :: Cisco.


4
Meine einzige Vorsicht hier ist ziemlich offensichtlich. Dies verwendet Telnet und sendet Ihre Passwörter im Klartext über das Netzwerk. Würde vorschlagen, SSH zu verwenden.
Bigmstone

12

Ich würde sagen, Sie haben ein paar Möglichkeiten:

  1. Manuell. Dauert die meiste Zeit. Am sichersten? Kommt auf den an, der die Konfiguration durchführt.
  2. Verwenden Sie ein Tool wie Kiwi Cattools oder Rancid usw. Viel einfacher, aber Sie würden eine Art Logik benötigen, um zu überprüfen, ob VLAN bereits vorhanden ist, oder Sie könnten die Namensstruktur durcheinander bringen. Vielleicht keine große Sache?
  3. Skript es! Verwenden Sie Perl, Python, Ruby oder eine andere Sprache, mit der Sie Erfahrung haben. Das Erstellen nimmt einige Zeit in Anspruch, aber sobald es abgeschlossen ist, können Sie das Skript für andere Konfigurationsaufgaben wiederverwenden. Es wäre anpassbar, aber es hängt davon ab, ob Sie mit der Programmierung vertraut sind.
  4. Verwenden Sie SNMP. Das habe ich nie versucht. Würde RW auf den Geräten erfordern und ich mag es nicht wirklich, RW auf meinen Netzwerkgeräten auszuführen.

Haben Sie Beispiele dafür, wie das Skript erstellt wird? Außerdem dachte ich, Rancid sei nur zum Lesen gedacht, nicht zum Modifizieren?
SimonJGreen

2
Ich habe vor einiger Zeit in Python ein Tool zum Ausführen von Befehlen auf mehreren Geräten mit Erwartung erstellt. Es werden zwei CSV-Dateien als Argumente verwendet. Einer mit Befehlen, einer mit Hosts. Kann unter matthewstone.net/2013/03/easyexpect gefunden werden. Ich arbeite auch an einem viel umfangreicheren Tool, das das Kind von EasyExpect ist und ZeroCLI heißt. Noch nicht fertig, aber der Vollständigkeit halber hier. github.com/mstone7699/ZeroCLI
bigmstone

1
Rancid dient zum Abrufen, ist aber auch mit Clogin ausgestattet. Damit können Sie die Anmeldung an Geräten automatisieren. Es wird auch eine Datei als Argument verwendet, in die Sie die einzugebenden Befehle eingeben können.
Daniel Dib


11

Die Herausforderung, der Sie sich jetzt gegenübersehen, besteht darin, dass Sie sich in einer gemischten Umgebung befinden. Sie erwähnen, dass Sie sich von Cisco auf Juniper zubewegen? In einer reinen Cisco-Umgebung wäre VTP v3 mit Passwörtern der richtige Weg und unterstützt über 4.000 Vlans. In der Juniper-Welt wäre das Äquivalent GVRP .

Möglicherweise können Sie eine Form der zentralen Verwaltung verwenden, z. B. Puppet, wie von Shane Madden, SolarWinds , HP OpenView und anderen erwähnt, aber Sie müssen immer noch zwei Skripts verwalten.

Ich würde versuchen, die Dinge so einfach wie möglich zu halten ( KISS ), während Sie von einem Anbieter zu einem anderen wechseln. Die Verwendung von VTP und GVRP auf der entsprechenden Hardware ist wahrscheinlich der richtige Weg und erhöht nicht die potenziellen Kosten für andere Lösungen oder die Komplexität der Verwaltung einer anderen neuen Sache.


7

Möglicherweise ist VTP Ihre Antwort. Wie jedes "automatisierte" Tool birgt es Risiken, die Sie jedoch durch eine ordnungsgemäße Planung mindern können. Sie sollten auch etwas lesen, um sicherzustellen, dass Sie verstehen, wie es funktioniert, oder Sie können versehentlich Ihre eigenen Probleme erstellen (wieder wie bei jedem automatisierten Tool).

Ich würde VTP Version 3 empfehlen, da dies zum Schutz vor einigen potenziellen Problemen beitragen und zusätzliche Vorteile bieten kann.

Sie können problemlos Hunderte von Dokumenten finden, indem Sie in der Suchmaschine Ihrer Wahl nach "vtp version 3 configuration" suchen.


Leider haben wir vor einiger Zeit das 200-VLAN-Limit für VTP erreicht. Wir haben auch begonnen, zu Juniper zu wechseln.
SimonJGreen

Auf welcher Plattform erreichen Sie ein VTP-Limit von 200 VLAN?
Yosef Gunsburg

1
Ich habe noch nie von einem VTP 200 VLAN Limit gehört und wir machen über 200 VLANs über VTP. Ich würde auf jeden Fall gerne mehr darüber erfahren, was Sie meinen. VTP-Version 1 und 2 dürfen nur die von ISL festgelegten VLANs 1-1001 verwenden, VTP-Version 3 ist jedoch auf dot1Q 4095 beschränkt. Die Anzahl der lokalen VLANs, die ein Switch unterstützen kann, ist jedoch nicht begrenzt verletzen dies lokal auch im transparenten Modus.
YLearn

1
Die Verwendung von VTP ist sehr riskant und es ist leicht, Ihr Rechenzentrum zu beschädigen
Jan-Philipp

@ Jan-Philipp, würden Sie bitte Ihre Aussage erläutern, anstatt nur "es ist riskant" zu sagen? Warum ist es riskant, IYO?
Pboin

7

Der Network Configuration Manager von Solarwind kann Skripts auf IOS-Geräten und einigen anderen ausführen.

Außerdem werden nächtliche Konfigurationssicherungen, Änderungsberichte und Konfigurationsprüfungen durchgeführt. Ihre Preise sind nicht schrecklich, aber sie verschmelzen NCM mit ihrem Orion Network Performance Monitor und ich bin mir nicht sicher, ob Sie NCM nicht mehr separat ausführen können.


Ich glaube, dass NCM immer noch als eigenständiges Produkt angeboten wird, aber mit jeder neuen Version stärker in NPM integriert wird. Wenn Sie eine große Umgebung haben, lohnt sich NCM nur für die Berichterstellung über Sicherungen und Konfigurationsänderungen.
Harrijs

6

Es hört sich so an, als hättest du einen zusammengebrochenen Kern. Ist das korrekt?

Eine Möglichkeit, mit zu vielen Änderungen umzugehen, die auf dem Hinzufügen neuer VLANs basieren, besteht darin, die L3-Grenze näher an den Zugriff heranzuführen. Es erfordert einige Vorarbeiten, aber wenn Ihr Design gut geplant und durchdacht ist, sollte das Hinzufügen neuer VLANs zu einer Aufgabe mit ein bis drei Geräten werden (abhängig davon, ob L3 auf Distributions- oder Zugriffsebenen stoppt).

Es gibt eine Reihe weiterer Vorteile, die Sie daraus ziehen können, darunter eine schnellere Konvergenz im Falle eines Verbindungsverlusts.


3

Ich benutze Ruby mit den Edelsteinen net-scp und net-ssh, um Aufgaben mit unseren Netzwerkgeräten zu automatisieren. Es ist ein ziemlich kurzes Skript zum Ausführen von Befehlen (Auszug, kein fertiges Produkt):

begin
    Net::SSH.start(fqdn, username, :password => loginPassword) do |session|
        output = ""

        channel = session.open_channel do |ch|
            ch.send_channel_request "shell"
            ch.on_data do |ch, data|
                output += data
            end

            ch.send_data "conf t\n\r"
            #Some tasks here
            ch.send_data "exit\n\r" #Exit config mode
            ch.send_data "exit\n\r" #Exit device

        end

        # Wait for everything to complete
        channel.wait
    end
rescue Exception=>e
    errorOutput = fqdn + ": " + e.to_s
    puts errorOutput
    puts output
    return device
end
return output

Denken Sie daran, dass Sie eine leere loginPassword-Variable haben sollten. Wenn dieses Feld leer ist, wird Ihr öffentlicher RSA-Schlüssel für die Anmeldung verwendet (unterstützt auf HP ProCurve- und Cisco 15.X-Plattformen).

Mit etwas wie git und ein paar kurzen Skripten können Sie alle Ihre Gerätekonfigurationen mit verschiedenen Änderungen organisieren und festlegen, wer die Änderungen vorgenommen hat (vorausgesetzt, Ihre Ingenieure ziehen die Konfigurationen und schreiben sie fest, nachdem die Arbeit abgeschlossen ist).

Auch sollte es selbstverständlich sein, aber testen Sie Skripte immer in einem Labor, bevor Sie mit Produktionsgeräten arbeiten. Besonders beim Ausführen von Befehlen und Ändern von Konfigurationen. Test, Test, Test.


0

Wenn Sie denselben Konstruktor (z. B. Cisco) für Ihre Netzwerkgeräte verwenden, ist SecureCRT die beste Wahl. Es ist ein SSH-Client, mit dem Sie zum Verkaufszeitpunkt Befehle an mehrere Terminals senden können:

secrureCRT

So richten Sie das ein: 1. Stellen Sie in verschiedenen Registerkarten eine Verbindung zu allen Geräten her. 2. Gehen Sie zur Ansicht. 3. Aktivieren Sie die Option "Chat-Fenster". 4. Klicken Sie mit der rechten Maustaste auf das Fenster. -> Aktivieren Sie "Chat an alle Registerkarten senden".


-1

Verwendung kann NOC verwenden, NOC Project ist das skalierbare, leistungsstarke und Open-Source-OSS-System für ISP. Sie können problemlos VLANs über das gesamte Netzwerk hinzufügen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.