|
Virtualizacion: Virtualización de dispositivos de red router Cisco con GNS3 en Linux Ubuntu
Tutorial donde explicamos paso a paso y con capturas de pantalla (screetshot) cómo montar una infraestructura de red virtualizada con dispositivos de red de Cisco. Mostraremos cómo instalar GNS3 y realizaremos un escenario sencillo virtualizando dos routers. Virtualizaremos los routers en un equipo con Linux Ubuntu 12.04.
Introducción a GNS3El despliegue de infraestructuras de red requiere una cantidad no despreciable de equipamiento, conexiones de red que suelen conllevar un coste elevado. Esta herramienta de virtualización permite la creación de dispositivos de red virtuales así como interconectarlos para obtener una infraestructura de red. GNS3 (Graphical Network Simulator) es un emulador de redes que permite la virtualización de redes complejas. Al igual que otros emuladores tales como VMWare o VirtualBox son empleados para la virtualizar sistemas operativos (Windows, Linux, …), GNS3 es usado para la emulación de imágenes IOS (Internetwork Operating System) de routers Cisco. GNS3 es un front-end gráfico de Dynamips y Dynagen, los cuales son las herramientas que realmente permiten la emulación de IOS Cisco. Más, concretamente, Dynagen ofrece una interfaz de línea de comandos más simple a Dynamips, el cual es en última instancia, el responsable de la emulación de la IOS. Usando un simple editor de textos, un usuario podría crear su propio fichero de topología con la red a emular por Dynagen. Precisamente, GNS3 facilita este proceso creando para ello una sencilla interfaz gráfica que abstrae al usuario de los detalles de configuración del escenario: GNS3 es un emulador de código abierto (Open Source) multiplataforma que está disponible para Linux, Windows y Mac OS X. Para virtualizar los dispositivos de red (routers, switches, etc.) son necesarias las imágenes del sistema operativo IOS. Sin embargo, por restricciones de licencia, el simulador no viene con las IOS de routers Cisco, las cuales deben ser proporcionadas al simulador y pueden ser descargadas desde la URL:
Entre las características más importantes de GNS3, podemos destacar:
En nuestro laboratorio, GNS3 nos permite estudiar protocolos de red, hacer mirrors de desplieges reales de infraestructuras de red para probar efectos en los cambios de configuración, hacer investigaciones de seguridad (ataques DDoS, MitM, honey pots, etc.). Con GNS3 se pueden desplegar infraestructuras tan complejas como se necesite: Instalar GNS3 en la distribución Linux Ubuntu 12.04 LTSLa instalación de GNS3 está completamente automatizada para los distintos sistemas operativos (Linux, Windows y Mac OS). En Ubuntu podemos encontrar el paquete GNS3 directamente en el “Centro de Software de Ubuntu”: Sin embargo la versión que instala es la 0.7.4-1 (a fecha de 12/05/2013). En este tutorial instalaremos manualmente la última versión disponible (v0.8.3.1). Descarga de paquetes necesarios para instalar GNS3Es necesario descargar dos aplicaciones (GNS3 y Dynamips). Para este ejemplo las descargaremos en el subdirectorio GNS3 dentro la carpeta personal del usuario (/home/Alejandro/GNS3). Accederemos a la URL:
Y descargaremos el fichero que se ajuste al sistema operativo en que queramos instalar GNS3, en nuestro caso "GNS3 v0.8.3.1.tgz": Y accederemos a la URL:
Para descargar el fichero de instalación de Dynamips: "Dynamips 0.2.8-RC3-community binary for Linux (32 bit)": Instalar Dynamips y GNS3Debemos activar el atributo de ejecución del ejecutable Dynamips. Para ello abrimos una consola y nos dirigimos al directorio /home/Alejandro/GNS3 y ejecutamos el comando:
Descomprimirmos GNS3 con el comando:
Esto descomprime el fichero en la subcarpeta “GNS3-0.8.3.1-src”. Movemos el ejecutable de Dynamips dentro de la subcarpeta “GNS3-0.8.3.1-src” que se ha creado al descomprimir el archivo anterior con el comando:
Como último requisito necesitamos instalar QT4 ejecutando, como root, el comando:
Ahora ya tenemos todo listo para ejecutar GNS3. Accedemos a la carpeta GNS3 y lo ejecutamos con los comandos:
Configuración de GNS3La primera vez que se ejecuta GNS3 muestra un asistente de configuración. Pulsamos el botón “Ok” para cerrarlo puesto que configuraremos la aplicación del modo tradicional, desde el menú: Para trabajar con GNS3 debemos especificar los siguientes parámetros:
1. Ruta del ejecutable DynamipsAccedemos al menú “Edit” - ”Preferences”, o pulsamos la combinación de teclas “Mayús + Ctrl + P”. En la sección de “Dynamips” configuramos el campo “Executable path to Dynamips”: seleccionando el ejecutable de Dynamips que, en la sección anterior de este tutorial, habíamos movido dentro de la carpeta /home/Alejandro/GNS3/GNS3-0.8.3.1-src: Marcamos las siguientes opciones:
Para comprobar que la configuración es correcta pulsamos en “Test Settings”. Si todo es correcto mostrará a la derecha de este botón “Dynamips 0.2.8-RC3 successfully started” en color verde. Procedemos a aplicar y a aceptar los cambios: 2. Añadir la imagen IOS del router Cisco de la serie c3600 que vamos a utilizarComo comentamos al inicio de este tutorial, las imágenes IOS de Cisco no vienen con GNS3 por restricciones de licencia. Se pueden descargar de la página de Cisco, desde la URL:
En nuestro caso hemos obtenido el fichero IOS “C3660-I-Mz_20121-5_20T8.bin”, en nuestro caso descargado en la carpeta:
Para añadir la imagen IOS a GNS3 abrimos el menú “Edit” - ”IOS images and hypervisors” (Mayús + Ctrl + I). Mediante el campo “Image file” configuraremos la ruta de la imagen IOS: Seleccionamos la imagen IOS que hemos descargado previamente: GNS3 nos preguntará si queremos descomprimir la imagen, pulsamos en “Yes”:
Pulsamos el botón “Save”, que guardará la configuración y nos permitirá utilizar cuantas copias de este router virtual necesitemos, utilizando el mismo archivo de imagen de IOS: Al guardar nos advierte que el atributo IDLE PC no está configurado (“Warning: IDLE PC will have to be configured!”):
3. Configurar el Parámetro IDLE PCEl parámetro IDLE PC especifica la dirección de memoria donde se encuentran las instrucciones que representan un bucle que mantiene la ejecución en estado ocioso (idle). Si este parámetro no se configura, la ejecución de un solo router virtual consumiría el 100% de CPU, incluso cuando este router no está procesando tráfico de red. Los valores idlepc son particulares a una imagen IOS. Para encontrar el valor de la imagen IOS C3600 que estamos utilizando creamos una topología pulsando en el menú “File” - ”New blank topology”, y arrastramos desde la ventana “Node Types” un “Router c3600” hasta la ventana de trabajo: Arrancamos el router pulsando en “Start/Resume all devices”: Abrimos la consola del router. Cuando el sistema operativo IOS haya terminado de arrancar mostrará “Press enter to get the prompt”. Presionamos INTRO y esperamos a que termine de mostrar mensajes por la consola (unos dos o tres segundos): Ahora que el router se encuentra en estado ocioso, dejamos de un lado la consola del router y volvemos a la ventana de trabajo. Sobre el router pulsamos con el botón secundario del ratón y hacemos clic en “Idle PC”. Este comando analiza la imagen IOS para determinar aquellos puntos de código que representan un bucle que mantiene la ejecución en estado ocioso (idle): Tras terminar el proceso de análisis, GNS3 muestra una lista de posibles valores IDLE PC. Nos recomienda los valores de IDLE PC que van precedidos del símbolo asterisco (*). Abrimos el monitor del sistema y vamos aplicando uno a uno los valores IDLE PC, quedándonos con el que menos CPU consume: Una vez aplicada la optimización idlepc, Dynamips “duerme” al router virtual ocasionalmente cuando estos puntos del código son alcanzados. Como se puede observar, esta optimización reduce el consumo de CPU en el router sin reducir la funcionalidad en el router virtual: Si volvemos al menú “Edit”- ”IOS images and hypervisors” comprobamos que ha establecido el valor en el atributo “IDLE PC”:
Creación de un escenario en GNS3Ya tenemos GNS3 listo para construir cuantos escenarios queramos utilizando el router virtual Cisco C3660. Vamos a construir el más simple de ellos, dos routers interconectados entre sí con IP’s estáticas, y comprobaremos que están conectados mediante paquetes ICMPv4 Echo Request. Primero detenemos los routers que estén arrancados, mediante el menú “Control”- ”Stop all devices”. A continuación arrastramos un segundo Router C3600 a la ventana de trabajo (paso 1 en la imagen), y creamos un enlace entre los dos routers (paso 2) haciendo clic en el botón conmutable “Add a link”. Hacemos clic en el tipo de enlace "Manual": Hacemos clic sobre el router 1, y en el menú contextual que aparece seleccionamos el slot 0, puerto 0 (f0/0). Ahora hacemos clic en el router 2, y en el menú contextual también seleccionamos el slot 0, puerto 0 (f0/0). Una vez realizado el enlace hacemos clic, de nuevo, en “Add a link” para dejar de seguir creando enlaces. Arrancamos todos los routers (botón Start ) y vemos que el color de las interfaces pasa de estar en rojo a verde. Esto indica que están activas.
Configuración del router R1Para esta topología hemos diseñado una red punto a punto, con rango IP 192.168.100.0/30. Abrimos la consola del router R1 pulsando sobre él con el botón secundario, y seleccionado “Console”: Cuando esté listo pulsamos INTRO, y configuramos la IP estática en la interface FastEthernet0/0 introduciendo los siguientes comandos IOS (Cisco IOS tiene autocompletado al estilo UNIX, pulsando la tecla tabulador):
En IOS se dispone de 3 niveles de configuración, según el nivel estarán habilitados unos comandos u otros. “Enable” eleva el nivel de Usuario a Privilegiado, y “configure terminal” eleva el nivel de Privilegiado a Configurador. El nivel se puede ver observando el símbolo de prompt (R1>, R1#, y R1 (config) respectivamente): A continuación explicamos brevemente los comandos utilizados:
Configuración del router R2Igualmente configuramos el router R2, sólo variando la IP asignada:
Comprobar la conexión entre los routers virtualesPodemos comprobar que el router virtual R1 llega al R2 ejecutando el comando:
en su consola. Del mismo modo, ejecutando el comando:
comprobamos que R2 hace ping a R1: Guardar escenario GNS3Para guardar el escenario se necesitan dos pasos. El primero es guardar la topología (la distribución de los routers, la conexión entre ellos, las etiquetas textuales, etc.). Y el segundo es guardar el fichero de configuración de cada uno de los routers, de modo que, cuando abramos el escenario, los routers se arranquen con la configuración que persistimos en su momento. Para este ejemplo, creamos las carpetas:
para guardar la topología, y la carpeta:
donde guardaremos los ficheros de configuración de los routers. Para guardar la topología abrimos el menú “File” - “Save As…”, abrimos la carpeta:
le damos nombre a la topología “topologia1” y hacemos clic en “Save”. Esto creará el fichero “topologia1.net”, un fichero en texto plano que describe la topología: Para guardar las configuraciones de los routers Cisco, pulsamos en el botón “Import/Export Startup Configs” y seleccionamos “Extracting to a directory”: Seleccionamos el subdirectorio “/home/Alejandro/.gns3/Topologia1/configs” que creamos anteriormente, y guardamos GNS3 habrá creado un fichero de configuración por cada router virtual. Este fichero podríamos cargarlo en un router físico de Cisco (es perfectamente compatible): Con esto ya podemos cerrar GNS3. La próxima vez que ejecutemos GNS3 y abramos el escenario, se cargarán automáticamente los ficheros de configuración de los routers. Ejemplo de fichero de configuración de R1:
Artículos relacionados
CréditosArtículo realizado íntegramente por Alejandro Centenero y revisado por Alonsojpd miembro fundador del Proyecto AjpdSoft. Anuncios
Enviado el Jueves, 16 mayo a las 20:46:52 por ajpdsoft
|
|