GNS3 es uno de los
simuladores, mas utilizados en el mercado de las telecomunicaciones, las
ventajas y facilidades con las que cuenta para poder virtualizar una topología
completa es impresionante.
Si tienes un proyecto
en puerta o algún cambio en una red que se encuentra en producción, puedes
agregar imágenes específicas de alguna versión de IOS Cisco (por decir una
marca) para simular la reacción y el impacto que se tendría en la red.
También puedes
practicar con laboratorios más precisos, e incluso replicar bugs ya
identificados por el fabricante.
Para comenzar a
utilizar esta herramienta, necesitas generar una cuenta gratuita para poder
descargar el software mas actualizado.
Es muy amplio el mundo
de GNS3, solo para que imagines un poco de lo que se puede hacer, te muestro
una pantalla de los appliance que se pueden importar al día de hoy (Mayo 2020)
Al ser una lista muy
grande, en resumen, son 138 appliance que se pueden utilizar. Este articulo no
tratará de cómo utilizarlos. Para eso ya existen los mismos foros de GNS3 que
te lo pueden explicar paso a paso.
Después de la
recomendación que te hago de utilizar GNS3, ahora te voy a decir una mala
noticia, es un programa muy demandante en cuanto a recursos, necesitamos muchas
virtualizaciones, lo cual, si no contamos con espacio en disco duro, velocidad
en procesador o RAM, vamos a terminar con un dolor de cabeza por no poder correr
alguna aplicación correctamente.
La recomendación que
te hago es adquirir un espacio en azure para poder trabajar esos laboratorios
de forma rápida y sin que tu maquina se sobrecaliente o sufras de lentitud.
Para ello, lo primero
que tenemos que hacer es crear una cuenta en Azure, necesitaremos un número
telefónico y una tarjeta de crédito. Antes de continuar con este artículo,
quisiera darle el crédito a NetworkChuck por su video
“CCNA Lab in the Azure Cloud for FREE! -
GNS3 Setup in Microsoft Azure”
Una vez que tengas tu
cuenta en Azure, deberás tener el acceso a un dashboard, que a mi punto de
vista esta muy detallado, si tienes experiencia con data center te agradara ver
toda la información que se puede mostrar, pero también si no tienes nada de experiencia
vas a tener que leer mas sobre este articulo o buscar algún video serio que te
explique bien la relación de costos.
Para la prueba que
vamos a realizar, vamos a utilizar un servicio gratuito, que es por 30 días, es
para que tu logres evaluar Azure y compres lo que usas.
Esa es una gran
ventaja que tiene Azure, que lleva un conteo de los recursos que se utiliza.
También es una
desventaja, porque si no estas familiarizado con estos servicios, deberas poner
mucha atención en las letras chiquitas. Por ejemplo, los costos que se pueden
generar por tener un servicio, son: costo por almacenamiento, costo por aumento
de procesador, costo por RAM, costo por servicio, costo por maquina virtual,
costo por recursos, costo por monitoreo, costo por alertas, costo por velocidad
en transmisión, costo consultas. Y podría seguir así pero no quiero quitarte
más ti tiempo.
Cuando generes tu
cuenta, por favor fíjate que es lo que estas utilizando. No queremos que a
vuelta del mes tu tarjeta de crédito se quede sobregirada.
Como mencione, la
prueba no tiene ningún costo durante los primeros 30 días. Esto talvez te ayude
a sacar ese proyecto que aun tienes detenido.
Te muestro algunas ventanas del portal de Azure
Una vez que tengas tu
dashboard, vamos a entrar a la línea de comandos, con powershell.
Se desplegará una
pantalla como la siguiente
Y es justo el momento
en que tienes que buscar el video de NetworkChuck para poder ver el código para
generar el servidor para GNS3.
el nombre del video que te menciono es:
CCNA Lab in the Azure Cloud for FREE! - GNS3 Setup in Microsoft Azure
En dado caso que no
quieras hacerlo aquí te dejo el código, donde tendremos que cambiar las
variables iniciales por las de nuestra preferencia, en el caso que pertenezcas
a America, la locación mantenla igual.
$location = 'southcentralus'
$user = "cbtnuggetsadmin"$password = convertto-securestring 'CBTNu$$ets!@#4' -asplaintext -force
$credential = new-object System.Management.Automation.PSCredential ($user, $password);
$domainname = "mygns3server"
new-azresourcegroup -name GNS3 -location $location
New-AzureRmNetworkSecurityGroup -Name GNS3
-ResourceGroupName GNS3 -Location $location
$nsg | Add-AzureRmNetworkSecurityRuleConfig -Name
Allow_All_the_things -Description "Let it all through" -Access Allow
-Protocol * -Direction Inbound -Priority 100 -SourceAddressPrefix *
-SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange * |
Set-AzureRmNetworkSecurityGroup
$password = convertto-securestring 'd3m0#!._4zur3' -asplaintext -force
$credential = new-object System.Management.Automation.PSCredential ($user, $password);
$domainname = "mygns3pavelbutzmann"
new-azvm -resourcegroup GNS3 -location $location -name
'GNS3-SERVER' -image UbuntuLTS -size 'Standard_D4s_v3' -securitygroupname GNS3
-credential $credential -DomainNameLabel $domainname
El $user y password
nos van a dar el acceso a nuestro servidor mediante SSH. Si no quieres
cambiarlos, no hay problema, solo recuérdalos para que puedas entrar a tu
servidor. En el caso del domainname, si vamos a cambiarlo, porque al menos en
este ejemplo, ese dominio lo está utilizando NetworkChuck para su laboratorio.
Te voy a poner el
ejemplo del laboratorio que yo genere, para que veas la diferencia
$location
= 'southcentralus'
$user
= "pavelbutzmann"$password = convertto-securestring 'd3m0#!._4zur3' -asplaintext -force
$credential = new-object System.Management.Automation.PSCredential ($user, $password);
$domainname = "mygns3pavelbutzmann"
new-azresourcegroup
-name GNS3 -location $location
New-AzureRmNetworkSecurityGroup
-Name GNS3 -ResourceGroupName GNS3 -Location $location
$nsg=Get-AzureRmNetworkSecurityGroup
-Name GNS3 -ResourceGroupName GNS3
$nsg
| Add-AzureRmNetworkSecurityRuleConfig -Name Allow_All_the_things -Description
"Let it all through" -Access Allow -Protocol * -Direction Inbound
-Priority 100 -SourceAddressPrefix * -SourcePortRange *
-DestinationAddressPrefix * -DestinationPortRange * |
Set-AzureRmNetworkSecurityGroup
new-azvm
-resourcegroup GNS3 -location $location -name 'GNS3-SERVER' -image UbuntuLTS
-size 'Standard_D4s_v3' -securitygroupname GNS3 -credential $credential
-DomainNameLabel $domainname
El siguiente paso es copiar ese codigo y pegarlo en el powershell de Azure.
A mí me solicitó la confirmación del "domainname", solo le tienes que dar enter.
y comenzará a generar la maquina virtual.
A mí me solicitó la confirmación del "domainname", solo le tienes que dar enter.
y comenzará a generar la maquina virtual.
cuando se termine este proceso nos arrojara la validacion de la instalacion con lo siguiente
Hasta este paso solo
preparamos la maquina virtual para poder instalar el servidor de GNS3, pero ya
tienes listo tu dominio con el cual podrás ingresar a tu servidor por SSH para
continuar con la instalación.
Vamos a buscar el
dominio de nuestra máquina virtual para poder hacer pruebas de conectividad y
disponibilidad.
En el dashboard principal abrimos los "Resource Groups" ya dea desde su icono en el dashboard o desplegando el menú que se encuentra del lado izquierdo superior.
Dentro vamos a ver 3 grupos de recursos que se generaron con las lineas de comando que pusimos en powershell. seleccionaremos el que dice GNS3
Dentro de GNS3 vamos a selecionar la "virtual machine" llamada GNS3-SERVER te puedes apoyar con los iconos para identificarla es la que parece un monitor.
Dentro de la informacion de la maquina virtual, vamos a buscar el DNS name
Del lado derecho de tu nombre de domino aparecera un boton para copiarlo rapido.
Vamos a iniciar el Command Prompt de nuestra maquina local, (CMD) tecleando la ventanita de windows en nuestro teclado y escirbiendo CMD para intentar hacer
un ping y validar la conectividad de nuestra maquina virtual
Si el ping es exitoso continua con la guia, de nos ser asi valida que tu maquina virtual se encuentre encendida.
Abre la aplicación de
tu preferencia para una conexión de SSH, puede ser alguna de las siguientes,
putty, securecrt, mobaxterm, etc.
Vas a conectarte
mediante el dominio que obtuvimos de la máquina virtual, así como el usuario y
contraseña que configuraste en el script.
Recuerda que es un servidor linux (Ubuntu 16.04.6), por lo que podremos tambien tener permisos de usuario raiz, pero sin la necesidad de teclear un password. solamente con sudo su (para esta maqueta no es necesario entrar en modo root)
Ahora vamos a copiar
el siguiente texto dentro de nuestra terminal
cd
/tmp
curl
https://raw.githubusercontent.com/GNS3/gns3-server/master/scripts/remote-install.sh
> gns3-remote-install.sh
sudo
bash gns3-remote-install.sh --with-iou --with-i386-repository
y comenzará el proceso
de instalación del Servidor de GNS3 remoto.
Es importante que
conoscas estos pasos, porque al menos en esta demostración, estamos utilizando
los servidores de azure para los recursos, pero si tu tienes un data center con
suficientes recursos, puedes evitar todo esto, instalar un Ubuntu server 16.04
y correr el mismo comando de instalación para el servidor GNS3, publicar tu
servicio o trabajarlo desde el corporativo y almacenar todos los proyectos
localmente.
Otra nota importante
es que este comando a mi me instalo la versión 2.1.21 de GNS3 server, por lo
que tu software local, es decir el GNS3-gui que instales en tu máquina, debe de ser
la versión 2.1.21 (empatar las versiones de tu servidor en azure con tu software de GNS3)
A mí me apareció el
error de incompatibilidad cuando estaba corriendo el servidor e intente
emparejar el software de GNS3.
Para descargar
versiones anteriores de GNS3, puedes utilizar la siguiente liga.
en el caso de utilizar
Windows como yo, deberás instalar la que diga GNS3-x.x.x-all-in-one.exe donde las x sustituyen a la versión que te
corresponda.
En mi caso yo instale
la versión GNS3-2.1.21-all-in-one.exe
Si quieres saber cuál
versión tiene instalada tu servidor teclea “gns3server -v”
Cuando tengamos listo
nuestro servidor e instalado nuestro GNS3-gui, vamos a proceder a configurarlo.
Primero vamos a ir a Help, setup wizard, para abrir el asistente.
Se abrirá esta
pantalla inicial y seleccionaremos utilizar un servidor remoto
Después vamos a pegar
el hostname del dominio al que hicimos ping, es decir el nombre de nuestra
maquina virtual, en mi caso es
mygns3pavelbutzmann.southcentralus.cloudapp.azure.com
el puerto ya esta
configurado, pero en caso de no ser asi, utilizaremos el 3080 TCP.
Dejaremos
deshabilitada la opción de autenticación.
Y damos next.
Mostrara una pantalla
donde viene el resumen de la configuración.
Si el servidor y el
GNS3-gui son de la misma versión y ambos se alcanza, nos aparecerá la siguiente
pantalla
Donde ya podremos
importar nuestros appliance.
Con esto deberíamos de
ver arriba nuestro servidor dentro del software GNS3-gui, y como ya es costumbre en la mayoría de las
versiones de GNS3, veremos el desempeño de nuestra maquina o servidor.
Ahora te preguntarás,
y cual es la diferencia a que lo tenga localmente en mi máquina:
1.- Tus proyectos
deberán ser almacenados en tu servidor remoto
2.- Los recursos que
se utilicen, serán solamente del servidor.
3.- deberás contar con
una estable conexión a internet obviamente, (en las pruebas que yo realice
tenía un enlace de 20Mb de descarga)
Vamos a ver los
recursos que puede consumir nuestro laboratorio si agregamos muchos
dispositivos, esto lo vamos a validar con el siguiente video.
Ahora solo me queda
decir: disfruta tu laboratorio de prueba, y si te decides por comprar el
espacio en azure, asegúrate siempre de apagar tu máquina virtual después de
utilizarla, puedes programar el apagado de tus maquinas a cierta hora, para no
te generen mas consumo del que realmente es.
Si quieres ver cuanto consumo puede generar en pesos, te recomiendo este video.


























No hay comentarios.:
Publicar un comentario