Implantando facilmente novas VLANs em um ambiente grande

20

Como as pessoas lidam com a necessidade de adicionar VLANs a todos os comutadores da rede (ou mesmo a um subconjunto de dispositivos)? Estamos adicionando cerca de 6 novas VLANs por semana no momento e à medida que a rede cresce, isso está se tornando uma tarefa muito complicada e arriscada.

SimonJGreen
fonte

Respostas:

17

Aqui está um modelo de script realmente básico no Perl para telneting em uma lista de dispositivos (um em cada linha em um arquivo chamado devicelist.txt) e configurar alguns comandos. Dependendo exatamente do que você está fazendo, deve fornecer um bom começo.

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

Aqui estão mais alguns detalhes sobre o Net :: Telnet :: Cisco.

Mike Marotta
fonte
4
Minha única cautela aqui é bastante óbvia. Isso usa o telnet e envia suas senhas pela rede em texto sem formatação. Sugeriria usar SSH.
Bigmstone
12

Eu diria que você tem algumas opções:

  1. Manualmente. Leva mais tempo. Mais seguro? Depende de quem está fazendo a configuração.
  2. Use alguma ferramenta como Kiwi Cattools ou Rancid etc. Muito mais fácil, mas você precisaria de algum tipo de lógica para verificar se a VLAN já existe ou você pode atrapalhar a estrutura de nomes. Talvez não seja um grande negócio?
  3. Script it! Use Perl, Python, Ruby ou qualquer outra linguagem com a qual você tenha experiência. Demora algum tempo para compilá-lo, mas, uma vez feito, você poderá reutilizar o script para outras tarefas de configuração. Seria personalizável, mas depende se você estiver confortável com a codificação.
  4. Use SNMP. Nunca tentei isso. Exigiria RW nos dispositivos e eu realmente não gosto de executar o RW nos meus dispositivos de rede.
Daniel Dib
fonte
Você tem algum exemplo disso sendo feito com script? Também pensei que Rancid era apenas para ler, não para modificar?
SimonJGreen
2
Eu construí uma ferramenta há algum tempo no Python para executar comandos em vários dispositivos com expectativa. São necessários dois arquivos CSV como argumentos. Um com comandos, um com hosts. Pode ser encontrado em matthewstone.net/2013/03/easyexpect . Também estou trabalhando em uma ferramenta muito mais massiva, filha do EasyExpect, chamada ZeroCLI. Ainda não foi concluído, mas coloque-o aqui para ser completo. github.com/mstone7699/ZeroCLI
bigmstone
1
O Rancid é para recuperação, mas também vem com clogin e você pode usá-lo para automatizar logins nos dispositivos. Também leva um arquivo como argumento, no qual você pode colocar comandos que devem ser inseridos.
Daniel Dib
11

O desafio que você enfrenta agora é que está entrando em um ambiente misto. Você mencionou que está se mudando para Juniper, presumo Cisco? Em um ambiente Cisco puro, o VTP v3 com senhas seria o caminho a seguir e suporta mais de 4k vlans. No mundo da Juniper, o equivalente seria GVRP .

Você pode usar alguma forma de gerenciamento centralizado, como o Puppet, como mencionado por Shane Madden, SolarWinds , HP OpenView e outros, mas você ainda terá dois scripts para gerenciar.

Eu tentaria manter as coisas o mais simples possível ( KISS ) por enquanto, à medida que você passa de um fornecedor para outro. Usar o VTP e o GVRP no hardware apropriado provavelmente é o caminho a percorrer e não adiciona o custo potencial para outras soluções ou a complexidade de gerenciar outra coisa nova.

Pedro
fonte
7

Pode ser que o VTP seja sua resposta. Como qualquer ferramenta "automatizada", ela apresenta riscos, mas você pode atenuá-las com o planejamento adequado. Você também deve fazer algumas leituras para ter certeza de que entende como funciona ou, inadvertidamente, pode criar seus próprios problemas (novamente, como qualquer ferramenta automatizada).

Eu recomendaria o VTP versão 3, pois isso pode ajudar a proteger de alguns dos problemas em potencial e oferece benefícios adicionais.

Você pode encontrar facilmente centenas de documentos pesquisando "vtp version 3 configuration" em seu mecanismo de pesquisa preferido.

YLearn
fonte
Infelizmente, atingimos o limite de 200 VLAN no VTP há um tempo atrás. Também começamos a nos mudar para Juniper.
SimonJGreen 14/05
Com qual plataforma você está atingindo um limite de 200 VLAN VTP?
Yosef Gunsburg
1
Eu nunca ouvi falar de um limite de VTP 200 VLAN e estamos executando mais de 200 VLANs através do VTP. Eu definitivamente gostaria de ouvir mais sobre o que você quer dizer. As versões 1 e 2 do VTP estão limitadas ao uso de VLANs 1-1001, conforme especificado pelo ISL, mas a versão 3 do VTP chega ao dot1Q 4095. Há um limite para o número de VLANs locais que um switch pode suportar, mas você não pode viole isso localmente, mesmo no modo tansparent.
YLearn
1
usando VTP é bastante arriscado, fácil de breake seu datacenter
Jan-Philipp
@ Jan-Philipp, você poderia explicar sua afirmação, em vez de apenas dizer "é arriscado"? Por que é arriscado, IYO?
Pboin
7

O Gerenciador de configuração de rede da Solarwind pode executar scripts em dispositivos IOS e outros.

Ele também realiza backups noturnos, relatórios de alterações e auditorias de configuração. Seus preços não são horríveis, mas eles estão mesclando o NCM com o Orion Network Performance Monitor e não tenho certeza de que você possa executar o NCM mais separadamente.

Dave Noonan
fonte
Acredito que o NCM ainda está sendo oferecido como um produto independente, mas está se tornando mais integrado ao NPM a cada novo lançamento. Se você possui um ambiente amplo, o NCM vale a pena apenas pelos relatórios de alterações de backup e configuração.
harrijs
6

Parece que você tem um núcleo em colapso. Isso está correto?

Uma maneira de lidar com muitas alterações com base na adição de novas VLANs é mover o limite L3 para mais perto do acesso. Isso requer algum trabalho inicial, mas se seu projeto for bem planejado e pensado, a adição de novas VLANs será uma tarefa de um a três dispositivos (dependendo se o L3 parar nas camadas de Distribuição ou Acesso).

Também existem muitos outros benefícios, incluindo convergência mais rápida no caso de um link perdido.

Jonathan Davis
fonte
3

Uso ruby ​​com as gemas net-scp e net-ssh para automatizar tarefas com nossos equipamentos de rede. É um script bastante curto para executar comandos (trecho, não um produto acabado):

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

Lembre-se de que você deve ter uma variável loginPassword em branco. Se estiver em branco, ele usará sua chave pública RSA para efetuar login (suportado nas plataformas HP ProCurve e Cisco 15.X).

Usando algo como git e alguns scripts curtos, você pode organizar todas as configurações de seu equipamento com diferenças de alterações e quem fez as alterações (assumindo que seus engenheiros puxem as configurações e as comprometem após o término do trabalho).

Também não é preciso dizer, mas por precaução, sempre teste o trabalho com script em um laboratório antes de executar no equipamento de produção. Especialmente ao executar comandos e alterar configurações. Teste, teste, teste.

some_guy_long_gone
fonte
0

se você usar o mesmo construtor (Cisco, por exemplo) para seus dispositivos de rede, o SecureCRT é sua melhor escolha. é um cliente SSH que oferece a possibilidade de enviar comandos em vários terminais no momento da venda:

secrureCRT

para configurar isso: 1. conecte-se a todos os seus dispositivos em abas diferentes 2. vá para ver 3. marque a opção "janela de bate-papo" 4. clique com o botão direito na janela -> marque "enviar bate-papo para todas as abas"

Cobra Hernandez
fonte
-1

Use pode usar NOC, NOC Project é o sistema OSS escalável, de alto desempenho e de código aberto para ISP. Você pode adicionar facilmente VLANs por toda a rede.

t3mp
fonte