GNS3, añadiendo hosts a nuestras topologías

5 minuto de lectura

logo_gns3_small

GNS3 es un simulador gráfico de redes que permite crear entornos de redes virtuales, topologías de red complejas y además tener la posibilidad de integrarlos con simuladores de IOS. Es uno de los simuladores que utilizamos en el módulo Planificación y Administración de Redes que impartimos en el ciclo formativo de Administración de Sistemas Informáticos en Red en el IES Gonzalo Nazareno.

Uno de los problemas que nos encontrábamos otros años aparecía a la hora de añadir un host a nuestra topología para poder realizar la pruebas de conectividad y encaminamiento que habíamos planteado a los alumnos. En realidad es necesario tener una máquina virtual completa en un sistema de virtualización independiente a GNS3 como puede ser  QEMU o VirtualBox, pero para nuestras prácticas no necesitamos una máquina completa, simplemente una “pequeña” máquina virtual que nos permita hacer ping/traceroute y chequear el estado de la red. Aquí es donde entra en juego el software Virtual PC Simulator, que integrado con GNS3 nos ofrece esta funcionalidad.

En el presente artículo, vamos a mostrar las distintas alternativas que tenemos para instalar GNS3 en una distribución GNU Linux Debian Wheezy, y a continuación vamos a ver el uso de Virtual PC Simulator para poder añadir hosts a las topologías que implementemos en GNS3.

Instalación de GNS3

Tenemos dos alternativas para instalar el programa. La más sencilla y que además instala todas las dependencias, es instalar el paquete que encontramos en los repositorios oficiales:

apt-get install gns3

En este caso instalamos la versión 0.8.3, si por cualquier razón necesitamos instalar la última versión, que en el momento de escribir este artículo es la 0.8.4 podemos bajarnos los paquete de la página oficial de GNS3 e instalarlo manualmente:

dpkg  dpkg -i dynamips_0.2.8-1~1_amd64.deb
dpkg -i gns3_0.8.4-1~1_all.deb

Como se puede observar utilizo la versión de 64 bits de dynamips. Durante este proceso puede ser necesario la instalación de algunos paquetes que son necesarios para la instalación de los dos paquetes que nos hemos bajado.

Configuración de GNS3

La primera vez que ejecutamos el programa, nos aparece un asistente para realizar la configuración básica de programa: establecer el idioma, los directorios de trabajo, comprobar que la instalación es correcta, y subir las imágenes de IOS que tengamos a nuestra disposición de los distintos modelos de router. En este último punto es muy importante establecer la variable IDLE PC que nos permite la optimización del consumo de recursos de sistema, para tener más información sobre este tema os sugiero la lectura del siguiente artículo. Una vez realizado esta configuración tenemos nuestro sistema totalmente funcional:

Virtual PC Simulator

Este programa pone a nuestra disposición 9 máquinas virtuales que consumen muy pocos recursos y que tienen una funcionalidad limitada.  Sin embargo son muy adecuadas para cubrir nuestras necesidades, ya que podremos configurar su direccionamiento ip y tendremos a nuestra disposición comandos como ping o trace.

Nos bajamos la última versión desde su página de descarga, en la actualidad la 0.5, en su versión de 64 bits. A continuación de damos permisos de ejecución y lo ejecutamos:

chmod 5 vpcs_0.5b0_Linux64
./vpcs_0.5b0_Linux64

En este punto ya podemos manejar nuestras máquinas virtuales, si escribimos ? en el prompt obtenemos la lista de comandos que podemos ejecutar:

VPCS]> ?

?                        Print help
! [command [args]]       Invoke an OS command with the 'args' as its arguments
<digit>                  Switch to the VPC<digit>. <digit> range 1 to 9
arp                      Shortcut for: show arp. Show arp table
clear [arguments]        Clear IPv4/IPv6, arp/neighbor cache, command history
dhcp [-options]          Shortcut for: ip dhcp. Get IPv4 address via DHCP
disconnect               Exit the telnet session (daemon mode)
echo <text>              Display <text> in output
help                     Print help
history                  Shortcut for: show history. List the command history
ip [arguments]           Configure VPC's IP settings
load <filename>          Load the configuration/script from the file <filename>
ping <host> [-options]   Ping the network <host> with ICMP (default) or TCP/UDP
quit                     Quit program
relay [arguments]        Relay packets between two UDP ports
rlogin [<ip>] <port>     Telnet to host relative to HOST PC
save <filename>          Save the configuration to the file <filename>
set [arguments]          Set VPC name, peer ports, dump options, echo on or off
show [arguments]         Print the information of VPCs (default). Try show ?
sleep <seconds>    Print <text> and pause the running script for <seconds>
trace <host> [-options]  Print the path packets take to network <host>
version                  Shortcut for: show version

To get command syntax help, please enter '?' as an argument of the command.

Podemos entrar en otra máquina escribiendo el número (de 1 a 9), por ejemplo para configurar el direccionamiento de la segunda máquina, indicamos la dirección ip, la puerta de enlace y la mascara de red:

VPCS]> 2
VPCS[2]> ip 10.0.0.2 10.0.0.1 24

Podemos ver la configuración de todas las máquinas con el comando show:

VPCS[2]> show

NAME   IP/MASK              GATEWAY           MAC                   LPORT  RHOST:PORT
VPCS1  0.0.0.0/0            0.0.0.0               00:50:79:66:68:00  20000  127.0.0.1:30000
       fe80::250:79ff:fe66:6800/64
VPCS2  10.0.0.2/24          10.0.0.1              00:50:79:66:68:01  20001  127.0.0.1:30001
       fe80::250:79ff:fe66:6801/64
VPCS3  0.0.0.0/0            0.0.0.0               00:50:79:66:68:02  20002  127.0.0.1:30002
       fe80::250:79ff:fe66:6802/64
VPCS4  0.0.0.0/0            0.0.0.0               00:50:79:66:68:03  20003  127.0.0.1:30003
       fe80::250:79ff:fe66:6803/64
VPCS5  0.0.0.0/0            0.0.0.0               00:50:79:66:68:04  20004  127.0.0.1:30004
       fe80::250:79ff:fe66:6804/64
VPCS6  0.0.0.0/0            0.0.0.0               00:50:79:66:68:05  20005  127.0.0.1:30005
       fe80::250:79ff:fe66:6805/64
VPCS7  0.0.0.0/0            0.0.0.0               00:50:79:66:68:06  20006  127.0.0.1:30006
       fe80::250:79ff:fe66:6806/64
VPCS8  0.0.0.0/0            0.0.0.0               00:50:79:66:68:07  20007  127.0.0.1:30007
       fe80::250:79ff:fe66:6807/64
VPCS9  0.0.0.0/0            0.0.0.0               00:50:79:66:68:08  20008  127.0.0.1:30008
       fe80::250:79ff:fe66:6808/64

Y podemos guardar la configuración de todas las máquinas con el comando save, para posteriormente recuperarlo con el comando load:

VPCS[2]> save configuracion.txt

Comunicando GNS3 con VPCS

Ahora es el momento de crear una nueva topología en GNS3 donde vamos a añadir un host y un router, (al cual le hemos añadido un slot FastEthernet 0/0). Si observamos la configuración del host, y nos vamos a la pestaña NIO UDP, observamos que tenemos una interfaz virtual de red que corresponde con cada una de las 9 máquinas que nos ofrece VPCS.

Por lo tanto a la hora de conectar el host y el router tendremos que escoger la interfaz virtual de red de la máquina virtual que nos interese, teniendo en cuenta que la del puerto remoto 20000 corresponde a la primera máquina, la del puerto remoto 20001 corresponde a la segunda máquina, y así consecutivamente. En nuestro caso tenemos configurado la segunda máquina por lo que conectamos a la interfaz nio_dup:30001:127.0.0.1:20001

A continuación vamos a configurar el direccionamiento ip del router:

R1>enable
R1#configure terminal
R1(config)#interface f0/0
R1(config-if)#ip add 192.168.1.254 255.255.255.0
R1(config-if)#no shutdown

Y ya estamos en disposición de realizar la pruebas de conectividad, por ejemplo desde la segunda máquina, nuestro host, podemos hacer ping al router:

VPCS]> ping 10.0.0.1
10.0.0.1 icmp_seq=1 ttl=255 time=19.976 ms
10.0.0.1 icmp_seq=2 ttl=255 time=7.125 ms
10.0.0.1 icmp_seq=3 ttl=255 time=7.409 ms

Del mismo modo desde le router podemos hacer ping al host:

img3

Bueno, espero que el presente artículo sea de utilidad sobre todo para nuestros alumnos del módulo de redes. Un saludo.

Comentar