Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

Virtualizacion: Virtualización de dispositivos de red router Cisco con GNS3 en Linux Ubuntu
Redes de PCs


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 GNS3

El 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:

Introducción a GNS3

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:

http:/software.cisco.com/download/navigator.html

Entre las características más importantes de GNS3, podemos destacar:

  • Diseño gráfico de topologías de red a emular.
  • Emulación de redes Ethernet, ATM y switches Frame Relay.
  • Emulación de una gran variedad de IOS Cisco, JunOS, IPS y firewalls CISCO de tipo ASA y PIX.
  • Conexión de la red simulada a un entorno real.
  • Integración con Qemu y VirtualBox para emular hosts.
  • Captura de paquetes integrada usando Wireshark.

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:

Introducción a GNS3

 

Instalar GNS3 en la distribución Linux Ubuntu 12.04 LTS

La 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”:

Instalar GNS3 en la distribución Linux Ubuntu 12.04 LTS

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 GNS3

Es 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:

http://www.gns3.net/download

Y descargaremos el fichero que se ajuste al sistema operativo en que queramos instalar GNS3, en nuestro caso "GNS3 v0.8.3.1.tgz":

Descarga de paquetes necesarios para instalar GNS3

Y accederemos a la URL:

http://www.gns3.net/dynamips

Para descargar el fichero de instalación de Dynamips: "Dynamips 0.2.8-RC3-community binary for Linux (32 bit)":

Descarga de paquetes necesarios para instalar GNS3

 

Instalar Dynamips y GNS3

Debemos 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:

chmod 764 dynamips-0.2.8-RC3-community-x86.bin

Instalar Dynamips y GNS3

Descomprimirmos GNS3 con el comando:

tar xzvf GNS3-0.8.3.1-src.tar.gz

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:

mv dynamips-0.2.8-RC3-community-x86.bin GNS3-0.8.3.1-src

Instalar Dynamips y GNS3

Como último requisito necesitamos instalar QT4 ejecutando, como root, el comando:

apt-get install python-qt4

Instalar Dynamips y GNS3

Ahora ya tenemos todo listo para ejecutar GNS3. Accedemos a la carpeta GNS3 y lo ejecutamos con los comandos:

cd GNS3-0.8.3.1-src

./gns3

Instalar Dynamips y GNS3

 

Configuración de GNS3

La 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ú:

Configuración de GNS3

Para trabajar con GNS3 debemos especificar los siguientes parámetros:

  • La ruta del ejecutable de Dynamips.
  • Añadir la imagen IOS del router Cisco de la serie c3600 que vamos a utilizar.
  • Configurar el parámetro IDLE PC de la imagen IOS c3600.

 

1. Ruta del ejecutable Dynamips

Accedemos 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”:

1. Ruta del ejecutable 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:

Ruta del ejecutable Dynamips

Marcamos las siguientes opciones:

  • Automatic clean the working directory.
  • Enable ghost IOS support.
  • Enable mmap support.
  • Enable sparse memory support.

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:

Ruta del ejecutable Dynamips

2. Añadir la imagen IOS del router Cisco de la serie c3600 que vamos a utilizar

Como 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:

http://software.cisco.com/download/navigator.html

En nuestro caso hemos obtenido el fichero IOS “C3660-I-Mz_20121-5_20T8.bin”, en nuestro caso descargado en la carpeta:

/home/Alejandro/Descargas/Images

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:

2. Añadir la imagen IOS del router Cisco de la serie c3600 que vamos a utilizar

Seleccionamos la imagen IOS que hemos descargado previamente:

2. Añadir la imagen IOS del router Cisco de la serie c3600 que vamos a utilizar

GNS3 nos preguntará si queremos descomprimir la imagen, pulsamos en “Yes”:

2. Añadir la imagen IOS del router Cisco de la serie c3600 que vamos a utilizar

Con el texto: The IOS image is compressed. Would you like to uncompress it? This will create C3660-I-Mz_20121-5_20T8.image.

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:

2. Añadir la imagen IOS del router Cisco de la serie c3600 que vamos a utilizar

Al guardar nos advierte que el atributo IDLE PC no está configurado (“Warning: IDLE PC will have to be configured!”):

2. Añadir la imagen IOS del router Cisco de la serie c3600 que vamos a utilizar

 

3. Configurar el Parámetro IDLE PC

El 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:

3. Configurar el Parámetro IDLE PC

Arrancamos el router pulsando en “Start/Resume all devices”:

3. Configurar el Parámetro IDLE PC

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):

3. Configurar el Parámetro IDLE PC

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):

3. Configurar el Parámetro IDLE PC

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:

3. Configurar el Parámetro IDLE PC

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:

3. Configurar el Parámetro IDLE PC

Si volvemos al menú “Edit”- ”IOS images and hypervisors” comprobamos  que ha establecido el valor en el atributo “IDLE PC”:

3. Configurar el Parámetro IDLE PC

 

Creación de un escenario en GNS3

Ya 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":

Creación de un escenario en GNS3

Hacemos clic sobre el router 1, y en el menú contextual que aparece seleccionamos el slot 0, puerto 0 (f0/0).

Creación de un escenario en GNS3

Ahora hacemos clic en el router 2, y en el menú contextual también seleccionamos el slot 0, puerto 0 (f0/0).

Creación de un escenario en GNS3

Una vez realizado el enlace hacemos clic, de nuevo, en “Add a link” para dejar de seguir creando enlaces.

Creación de un escenario en GNS3

Arrancamos todos los routers (botón Start Creación de un escenario en GNS3) y vemos que el color de las interfaces pasa de estar en rojo a verde. Esto indica que están activas.

Creación de un escenario en GNS3

 

Configuración del router R1

Para 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”:

Configuración del router R1

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):

enable
configure terminal
interface FastEthernet 0/0
no shutdown
ip address 192.168.100.1 255.255.255.252
exit
exit
write

Configuración del router R1

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):

Configuración del router R1

A continuación explicamos brevemente los comandos utilizados:

  • Con el comando “interface FastEthernet 0/0” entramos a configurar la interface fast ethernet  del slot 0 puerto 0.
  • “no shutdown” activa la interface y la mantiene activa tras el reinicio del router.
  • “ip address” configura la IP estática, indicando la IP y la máscara de subred.
  • “exit” desciende un nivel de privilegios.
  • “write” guarda la configuración actual (alojada en la RAM del router) en la memoria no volátil NVRAM. Sin este comando perderíamos toda la configuración tras un reinicio del router virtual.

 

Configuración del router R2

Igualmente configuramos el router R2, sólo variando la IP asignada:

enable
configure terminal
interface FastEthernet 0/0
no shutdown
ip address 192.168.100.2 255.255.255.252
exit
exit
write

Configuración del router R2

 

Comprobar la conexión entre los routers virtuales

Podemos comprobar que el router virtual R1 llega al R2 ejecutando el comando:

ping 192.168.100.2

en su consola. Del mismo modo, ejecutando el comando:

ping 192.168.100.1

comprobamos que R2 hace ping a R1:

Comprobar la conexión entre los routers virtuales

 

Guardar escenario GNS3

Para 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:

/home/Alejandro/.gns3/Topologia1

para guardar la topología, y la carpeta:

/home/Alejandro/.gns3/Topologia1/configs

donde guardaremos los ficheros de configuración de los routers.

Para guardar la topología abrimos el menú “File” - “Save As…”, abrimos la carpeta:

/home/Alejandro/.gns3/Topologia1

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:

Guardar escenario GNS3

Para guardar las configuraciones de los routers Cisco, pulsamos en el botón “Import/Export Startup Configs” y seleccionamos “Extracting to a directory”:

Guardar escenario GNS3

Seleccionamos el subdirectorio “/home/Alejandro/.gns3/Topologia1/configs” que creamos anteriormente, y guardamos

Guardar escenario GNS3

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):

Guardar escenario GNS3

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:


!
version 12.1
no service single-slot-reload-enable
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Router
!
logging rate-limit console 10 except errors
!
ip subnet-zero
!
no ip finger
!
interface FastEthernet0/0
ip address 192.168.100.1 255.255.255.252
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
interface Ethernet1/0
no ip address
shutdown
half-duplex
!
interface Ethernet1/1
no ip address
shutdown
half-duplex
!
interface Ethernet1/2
no ip address
shutdown
half-duplex
!
interface Ethernet1/3
no ip address
shutdown
half-duplex
!
ip classless
no ip http server
!
line con 0
transport input none
line aux 0
line vty 0 4
!
end

 

 

Artículos relacionados

 

Créditos

Artículo realizado íntegramente por Alejandro Centenero y revisado por Alonsojpd miembro fundador del Proyecto AjpdSoft.

Artículo en inglés.


Anuncios


Enviado el Jueves, 16 mayo a las 20:46:52 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A