# rm-rf.es

Añadir hosts virtuales a topologías de red de GNS3

Como muchos ya sabéis, 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. En su día ya lo expliqué en esta otra entrada: GNS3.

Cuando estamos trabajando con laboratorios de redes, es de gran utilidad disponer de uno o varios hosts/pc virtuales para realizar chequeos de conectividad (ping, traceroute…). En este punto, y para maquetas únicamente centradas en redes, no necesitamos una máquina virtual completa (Qemu/Virtualhost) sino un host para poder hacer ping/traceroute y chequear el estado de la red. Aquí es donde entra el Virtual PC Simulator, que integrado con GNS3 nos ofrece esta funcionalidad.

VPCS está disponible para Linux y Windows, en GNU/Linux lo bajamos, descomprimimos y a funcionar:

$  cd 0.21a/
$ chmod 755 vpcs32 vpcs64  # permisos de ejecución
$ ./vpcs32 # en mi caso uso la versión de 32 bits

Una vez arrancado VPCS podemos arrancar GNS3, donde tendremos que crear un nuevo símbolo tipo «computer» al que asignaremos el nombre que queramos (host, pc…) y le indicaremos el tipo «Cloud«:

Edit > Symbol Manager

Llegados a este punto ya podemos configurar el/los hosts como queramos. Para configurar IPs lo haremos en la Shell que se abre al ejecutar desde línea de comandos vpcs32. Como podéis ver, el símbolo ? nos muestra la ayuda:

VPCS[9]> ?

show                       Print the net configuration of PCs
d                          Switch to the PC[d], d is digit, range 1 to 9
history                    List the command history
ip [arguments]             Configure PC's IP settings
dhcp                       Configure host/gateway address using DHCP
arp                        Show arp table
ping address [options]     Ping the network host
tracert address [maxhops]  Print the route packets take to network host
echo [text]                Display text in output
clear [arguments]          Clear ip/ipv6, arp/neighbor cache
set [arguments]            Set hostname, connection port and echo on or off
load filename              Load the configuration/script from the file 'filename'
save filename              Save the configuration to the file 'filename'
ver                        Show version
?                          Print help
quit                       Quit program

En este caso estoy en el PC 9, por defecto se generan 9 PCs virtuales, podemos verlos con el comando show y cambiar de PC con PC[d]:

VPCS[9]> show

NAME IP/CIDR GATEWAY MAC LPORT RPORT
VPCS1 0.0.0.0/0 0.0.0.0 00:50:79:66:68:00 20000 30000
fe80::250:79ff:fe66:6800/64
VPCS2 0.0.0.0/0 0.0.0.0 00:50:79:66:68:01 20001 30001
fe80::250:79ff:fe66:6801/64
VPCS3 192.168.2.1/24 0.0.0.0 00:50:79:66:68:02 20002 30002
fe80::250:79ff:fe66:6802/64
2001:2::1/64
VPCS4 192.168.2.2/24 0.0.0.0 00:50:79:66:68:03 20003 30003
fe80::250:79ff:fe66:6803/64
2001:2::2/64
VPCS5 192.168.3.2/24 192.168.3.1 00:50:79:66:68:04 20004 30004
fe80::250:79ff:fe66:6804/64
2001:3::2/64
VPCS6 0.0.0.0/0 0.0.0.0 00:50:79:66:68:05 20005 30005
fe80::250:79ff:fe66:6805/64
VPCS7 0.0.0.0/0 0.0.0.0 00:50:79:66:68:06 20006 30006
fe80::250:79ff:fe66:6806/64
VPCS8 192.168.8.2/24 192.168.8.1 00:50:79:66:68:07 20007 30007
fe80::250:79ff:fe66:6807/64
2001:8::2/64
VPCS9 10.0.0.100/24 10.0.0.1 00:50:79:66:68:08 20008 30008
fe80::250:79ff:fe66:6808/64
2001:9::2/64

Configurar la IP de cada PC es sencillo, IP; GATEWAY y NETMASK en formato CIDR:

VPCS[9]> ip 10.0.0.100 10.0.0.1 24
PC9 : 10.0.0.100 255.255.255.0 gateway 10.0.0.1

Volvemos a GNS3, donde damos añadimos a la topología un hostname. Para configurarlo pinchamos en botón derecho y «Configure», luego en la pestaña NIO UDP es donde mapeamos cada uno de los PC a una interfaz de red virtual, los valores por defecto valen para el PC 1, así que para el 9 sumaremos 8 al puerto local y al remote port, el resto lo podemos dejar por defecto, podemos añadir tantas interfaces como queramos, simplemente recordad lo de los puertos:

A continuación podéis ver una topología sencilla, hemos configurado el router con la IP 10.0.0.1 en la interfaz FastEthernet 0/0, la cual está conectada a un Switch y el nuestro host al Switch.

En el momento que hemos levantado la interfaz del switch hemos podido verificar que hay conectividad y ping entre el host virtual y el router. Lo verificamos desde la shell de vpcs:

Router:

Router01(config-if)# no shutdown
00:01:04: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
00:01:05: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up

Host:

VPCS[9]> ping 10.0.0.1
host (10.0.0.1) not reachable

VPCS[9]> ping 10.0.0.1
10.0.0.1 icmp_seq=1 ttl=255 time=20.035 ms
10.0.0.1 icmp_seq=2 ttl=255 time=2.954 ms
10.0.0.1 icmp_seq=3 ttl=255 time=2.131 ms
10.0.0.1 icmp_seq=4 ttl=255 time=2.686 ms

O un traceroute, aunque en este caso sólo hay un salto:

VPCS[9]> tracert 10.0.0.1
traceroute to 10.0.0.1, 64 hops max, press Ctrl+C to stop
 1   10.0.0.1   4.527 ms  *  2.003 ms

También podemos verificar la conectividad inversa, del router al host:

Router01>ping 10.0.0.100

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.100, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/8 ms

Seguro que os es de utilidad para laboratorios y prácticas y os ahorráis la creación de máquinas virtuales.

Salir de la versión móvil