Implementar fácilmente nuevas VLAN en un entorno grande

20

¿Cómo manejan las personas la necesidad de agregar VLAN a todos los conmutadores en su red (o incluso a un subconjunto de dispositivos)? Estamos agregando alrededor de 6 nuevas VLAN por semana en este momento y, a medida que la red crece, esto se está convirtiendo en una tarea muy engorrosa y riesgosa.

SimonJGreen
fuente

Respuestas:

17

Aquí hay una plantilla de script realmente básica en Perl para conectarse a una lista de dispositivos (uno en cada línea en un archivo llamado devicelist.txt) y configurar algunos comandos. Dependiendo exactamente de lo que esté haciendo, debería ser un buen comienzo.

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

Aquí hay algunos detalles más sobre Net :: Telnet :: Cisco también.

Mike Marotta
fuente
44
Mi única precaución aquí es bastante obvia. Esto usa telnet y envía sus contraseñas a través de la red en texto plano. Sugeriría usar SSH.
bigmstone
12

Yo diría que tienes un par de opciones:

  1. A mano. Toma la mayor parte del tiempo. Más seguro? Depende del que haga la configuración.
  2. Use alguna herramienta como Kiwi Cattools o Rancid, etc. Es mucho más fácil, pero necesitaría algún tipo de lógica para verificar si VLAN ya existe o podría estropear la estructura de nombres. Tal vez no es un gran problema?
  3. ¡Escríbelo! Use Perl, Python, Ruby o cualquier idioma con el que tenga experiencia. Toma tiempo construirlo, pero una vez que lo haya hecho, puede reutilizar el script para otras tareas de configuración. Sería personalizable, pero depende de si te sientes cómodo con la codificación.
  4. Utiliza SNMP. Nunca intenté esto. Requeriría RW en los dispositivos y realmente no me gusta ejecutar RW en mis dispositivos de red.
Daniel Dib
fuente
¿Tienes algún ejemplo de que se haga con guión? ¿También pensé que Rancid era solo para leer, no para modificar?
SimonJGreen
2
Construí una herramienta hace un tiempo en Python para ejecutar comandos contra múltiples dispositivos con esperar. Toma dos archivos CSV como argumentos. Uno con comandos, uno con hosts. Se puede encontrar en matthewstone.net/2013/03/easyexpect También estoy trabajando en una herramienta mucho más masiva que es el hijo de EasyExpect llamada ZeroCLI. Aún no se ha terminado, pero lo pongo aquí para completar. github.com/mstone7699/ZeroCLI
bigmstone
1
Rancid es para recuperar, pero también viene con clogin y puede usarlo para automatizar los inicios de sesión en los dispositivos. También toma un archivo como argumento donde puede poner comandos que deberían ingresarse.
Daniel Dib
11

El desafío que enfrenta ahora es que está entrando en un entorno mixto. ¿Mencionas que te estás moviendo hacia Juniper desde que supongo que Cisco? En un entorno puro de Cisco, VTP v3 con contraseñas sería el camino a seguir y admite más de 4k vlans. En el mundo de Juniper, el equivalente sería GVRP .

Es posible que pueda utilizar alguna forma de administración centralizada, como Puppet, como lo mencionaron Shane Madden, SolarWinds , HP OpenView, pero aún tendrá dos scripts para administrar.

Intentaría mantener las cosas lo más simples posible ( KISS ) por ahora mientras haces la transición de un proveedor a otro. El uso de VTP y GVRP en el hardware apropiado es probablemente el camino a seguir y no agrega el costo potencial para otras soluciones o la complejidad de administrar otra cosa nueva.

Peter
fuente
7

Puede ser que VTP sea tu respuesta. Como cualquier herramienta "automatizada", tiene sus riesgos, pero puede mitigarlos con una planificación adecuada. También debe leer un poco para asegurarse de que comprende cómo funciona o puede crear sus propios problemas sin darse cuenta (de nuevo, al igual que cualquier herramienta automatizada).

Recomendaría VTP versión 3, ya que esto puede ayudar a proteger de algunos de los posibles problemas y proporciona beneficios adicionales.

Puede encontrar fácilmente cientos de documentos buscando "configuración vtp versión 3" en el motor de búsqueda que elija.

YLearn
fuente
Desafortunadamente, alcanzamos el límite de 200 VLAN en VTP hace un tiempo. También hemos comenzado a mudarnos a Juniper.
SimonJGreen
¿Con qué plataforma estás alcanzando un límite de 200 VLAN VTP?
Yosef Gunsburg
1
Nunca he oído hablar de un límite de VLAN VTP 200, y estamos haciendo más de 200 VLAN a través de VTP. Definitivamente me gustaría saber más sobre lo que quieres decir. Las versiones 1 y 2 de VTP se limitan a usar solo las VLAN 1-1001 según lo especificado por ISL, pero la versión 3 de VTP sube al punto1Q 4095. Existe un límite para la cantidad de VLAN locales que puede admitir un conmutador, pero no puede violar esto localmente incluso en modo tansparent.
YLearn
1
usar VTP es bastante arriesgado, es fácil romper su centro de datos
Jan-Philipp
@ Jan-Philipp, ¿podría explicar su declaración, en lugar de decir "es arriesgado"? ¿Por qué es arriesgado, IYO?
pboin
7

El Administrador de configuración de red de Solarwind puede ejecutar scripts en dispositivos IOS y algunos otros.

También hace cosas como copias de seguridad de configuración nocturnas, informes de cambios y auditorías de configuración. Su precio no es horrible, pero están fusionando NCM con su Orion Network Performance Monitor y no estoy seguro de que pueda ejecutar NCM por separado.

Dave Noonan
fuente
Creo que NCM todavía se ofrece como un producto independiente, pero se está integrando más con NPM con cada nueva versión. Si tiene un entorno grande, NCM vale su peso solo para los informes de copia de seguridad y cambio de configuración.
Harrijs
6

Parece que tienes un núcleo colapsado. ¿Es eso correcto?

Una forma de lidiar con demasiados cambios basados ​​en agregar nuevas VLAN 'es acercar el límite L3 al acceso. Requiere un poco de trabajo por adelantado, pero si su diseño está bien planeado y pensado, debería hacer que agregar nuevas VLAN sea una tarea de uno a tres dispositivos (dependiendo de si L3 se detiene en las capas de Distribución o Acceso).

También hay muchos otros beneficios que obtienes de eso, incluida una convergencia más rápida en caso de pérdida de un enlace.

Jonathan Davis
fuente
3

Utilizo ruby ​​con las gemas net-scp y net-ssh para automatizar tareas con nuestro equipo de red. Es un script bastante corto para ejecutar comandos (extracto, no un producto terminado):

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

Tenga en cuenta que debe tener una variable en blanco loginPassword. Si está en blanco, usará su clave pública RSA para iniciar sesión (compatible con las plataformas HP ProCurve y Cisco 15.X).

Usando algo como git y algunos scripts cortos, puede organizar todas las configuraciones de su equipo con diferencias de cambios y quién realizó los cambios (suponiendo que sus ingenieros extraigan configuraciones y las confirmen después de que se complete el trabajo).

También debería ser evidente, pero por si acaso, siempre pruebe el trabajo programado en un laboratorio antes de ejecutarlo en el equipo de producción. Especialmente al ejecutar comandos y cambiar configuraciones. Prueba, prueba, prueba.

some_guy_long_gone
fuente
0

Si utiliza el mismo constructor (por ejemplo, Cisco) para sus dispositivos de red, SecureCRT es su mejor opción. Es un cliente SSH que le brinda la posibilidad de enviar comandos en múltiples terminales en el momento de la venta:

secrureCRT

para configurarlo: 1. conéctese a todos sus dispositivos en diferentes pestañas 2. vaya a la vista 3. marque la opción "ventana de chat" 4. haga clic derecho en la ventana -> marque "enviar chat a todas las pestañas"

Serpiente hernández
fuente
-1

El uso puede usar NOC, NOC Project es el sistema OSS escalable, de alto rendimiento y de código abierto para ISP. Puede agregar fácilmente VLAN a través de toda la red.

t3mp
fuente