Distribuire facilmente nuove VLAN in un ambiente di grandi dimensioni


20

In che modo le persone gestiscono la necessità di aggiungere VLAN a tutti gli switch sulla propria rete (o anche a un sottoinsieme di dispositivi)? Al momento stiamo aggiungendo circa 6 nuove VLAN a settimana e, man mano che la rete cresce, sta diventando un compito molto ingombrante e rischioso.

Risposte:


17

Ecco un modello di script davvero semplice in Perl per il telneting in un elenco di dispositivi (uno su ogni riga in un file chiamato devicelist.txt) e la configurazione di alcuni comandi. A seconda di cosa stai facendo, dovrebbe essere un buon inizio.

  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;
    }

Ecco alcuni dettagli in più su Net :: Telnet :: Cisco.


4
La mia unica avvertenza qui è piuttosto ovvia. Questo utilizza telnet e invia le tue password attraverso la rete in testo semplice. Suggerirei di usare SSH.
bigmstone,

12

Direi che hai un paio di opzioni:

  1. Manualmente. Richiede più tempo. Più sicuro? Dipende da chi fa la configurazione.
  2. Usa alcuni strumenti come Kiwi Cattools o Rancid, ecc. Molto più semplice, ma avresti bisogno di un qualche tipo di logica per verificare se la VLAN è già esistente o potresti rovinare la struttura dei nomi. Forse non è un grosso problema?
  3. Script it! Usa Perl, Python, Ruby o qualunque altra lingua tu abbia esperienza. Ci vuole del tempo per costruirlo, ma una volta fatto è possibile riutilizzare lo script per altre attività di configurazione. Sarebbe personalizzabile, ma dipende se sei a tuo agio con la codifica.
  4. Usa SNMP. Non l'ho mai provato. Richiederebbe RW sui dispositivi e non mi piace molto eseguire RW sui miei dispositivi di rete.

Hai qualche esempio di come è stato fatto lo script? Inoltre ho pensato che Rancid fosse solo per leggere, non per modificare?
SimonJGreen

2
Ho creato uno strumento qualche tempo fa in Python per l'esecuzione di comandi su più dispositivi con aspettativa. Ci vogliono due file CSV come argomenti. Uno con i comandi, uno con gli host. Può essere trovato su matthewstone.net/2013/03/easyexpect Sto anche lavorando a uno strumento molto più massiccio che è figlio di EasyExpect chiamato ZeroCLI. Non ancora fatto, ma mettendolo qui per completezza. github.com/mstone7699/ZeroCLI
bigmstone

1
Rancid è per il recupero, ma viene fornito anche con clogin e puoi usarlo per automatizzare gli accessi ai dispositivi. Prende anche un file come argomento in cui è possibile inserire comandi da inserire.
Daniel Dib,


11

La sfida che ora affronti è che stai entrando in un ambiente misto. Hai detto che ti stai muovendo verso Juniper da quando suppongo Cisco? In un ambiente Cisco puro VTP v3 con password sarebbe la strada da percorrere e supporta oltre 4k vlan. Nel mondo Juniper l'equivalente sarebbe GVRP .

Potresti essere in grado di utilizzare una qualche forma di gestione centralizzata come Puppet, come menzionato da Shane Madden, SolarWinds , HP OpenView e simili, ma avrai comunque due script da gestire.

Vorrei provare a mantenere le cose il più semplice possibile ( KISS ) per ora mentre passi da un fornitore all'altro. L'uso di VTP e GVRP sull'hardware appropriato è probabilmente la strada da percorrere e non aggiunge il costo potenziale per altre soluzioni o la complessità della gestione di un'altra cosa nuova.


7

È possibile che VTP sia la tua risposta. Come qualsiasi strumento "automatizzato", ha i suoi rischi, ma puoi mitigarli con una pianificazione adeguata. Dovresti anche fare qualche lettura per assicurarti di capire come funziona o puoi inavvertitamente creare i tuoi problemi (di nuovo, proprio come qualsiasi strumento automatizzato).

Vorrei raccomandare VTP versione 3, poiché questo può aiutare a proteggere da alcuni dei potenziali problemi e offre ulteriori vantaggi.

Puoi facilmente trovare centinaia di documenti cercando "vtp versione 3 configurazione" nel tuo motore di ricerca preferito.


Purtroppo abbiamo raggiunto il limite di 200 VLAN su VTP qualche tempo fa. Abbiamo anche iniziato a trasferirci a Juniper.
SimonJGreen

Con quale piattaforma stai colpendo un limite VTP di 200 VLAN?
Yosef Gunsburg,

1
Non ho mai sentito parlare di un limite VTP 200 VLAN e stiamo eseguendo oltre 200 VLAN tramite VTP. Mi piacerebbe sicuramente saperne di più su cosa intendi. Le versioni 1 e 2 VTP sono limitate all'uso solo delle VLAN 1-1001 come specificato da ISL, ma la versione 3 VTP arriva fino al punto1Q 4095. Esiste un limite al numero di VLAN locali che uno switch può supportare, ma non è possibile violarlo localmente anche in modalità trasparente.
Impara

1
l'utilizzo di VTP è piuttosto rischioso, è facile violare il tuo datacenter
Jan-Philipp

@ Jan-Philipp, per favore, spieghi la tua affermazione, invece di dire semplicemente "è rischioso"? Perché è rischioso, IYO?
pboin

7

Network Configuration Manager di Solarwind può eseguire script nei dispositivi IOS e in alcuni altri.

Fa anche cose come backup di configurazione notturni, rapporti di modifica e audit di configurazione. I loro prezzi non sono orribili ma stanno fondendo NCM con il loro Performance Monitor di rete Orion e non sono più sicuro che tu possa eseguire NCM separatamente.


Credo che NCM sia ancora offerto come prodotto autonomo, ma sta diventando sempre più integrato con NPM ad ogni nuova versione. Se si dispone di un ambiente di grandi dimensioni, NCM vale il suo peso solo per il reporting delle modifiche di backup e configurazione.
harrijs

6

Sembra che tu abbia un nucleo collassato. È corretto?

Un modo per gestire troppe modifiche basate sull'aggiunta di nuove VLAN è quello di avvicinare il confine L3 all'accesso. Richiede un po 'di lavoro in anticipo, ma se il tuo progetto è ben pianificato e pensato, dovrebbe rendere l'aggiunta di nuove VLAN un'attività da uno a tre dispositivi (a seconda che L3 si fermi ai livelli di distribuzione o di accesso).

Ci sono anche molti altri vantaggi che si ottengono da questo, tra cui una più rapida convergenza in caso di perdita del collegamento.


3

Uso ruby ​​con le gemme net-scp e net-ssh per automatizzare le attività con le nostre apparecchiature di rete. È uno script piuttosto breve per eseguire comandi (estratto, non un prodotto finito):

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

Tieni presente che dovresti avere una variabile loginPassword vuota. Se vuoto, utilizzerà la chiave pubblica RSA per l'accesso (supportato su piattaforme HP ProCurve e Cisco 15.X).

Usando qualcosa come git e alcuni brevi script, puoi organizzare tutte le configurazioni delle tue apparecchiature con differenze di modifiche e chi ha apportato le modifiche (supponendo che i tuoi ingegneri tirino le configurazioni e le commettano dopo che il lavoro è completato).

Inoltre, dovrebbe essere ovvio, ma per ogni evenienza, testare sempre il lavoro con script in un laboratorio prima di eseguire attrezzature di produzione. Soprattutto quando si eseguono comandi e si cambiano le configurazioni. Test, test, test.


0

se si utilizza lo stesso costruttore (ad esempio Cisco) per i dispositivi di rete, SecureCRT è la scelta migliore. è un client SSH che ti dà la possibilità di inviare comandi su più terminali al momento della vendita:

secrureCRT

per configurarlo: 1. connettiti a tutti i tuoi dispositivi in ​​diverse schede 2. vai alla visualizzazione 3. seleziona l'opzione "finestra di chat" 4. fai clic destro sulla finestra -> seleziona "invia chat a tutte le schede"


-1

L'uso può utilizzare NOC, NOC Project è il sistema OSS scalabile, ad alte prestazioni e open source per ISP. È possibile aggiungere facilmente VLAN attraverso l'intera rete.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.