User Tools

Site Tools


informatica:linux:gns3

gns3

gns3 dynamips cisco redes virtualización

Gns3 es un cliente gráfico para la simulación de redes con máquinas (enrutadores e intercambiadores) del fabricante cisco.

Instalación

Instalo GNS3 para la versión 5.0 (actualmente squeeze) de Debian:

aptitude update && aptitude install gns3

En la fecha en la que lo instalo (10/12/2009) el paquete está roto para la versión 'prueba' (squeeze).

Al intentar arrancar gns3:

(Con cualquier usuario)

gns3&
Violación de segmento

Si vemos el log:

dmesg | tail
[ 5546.751049] gns3[8529]: segfault at 5 ip 080882e5 sp bfd23930 error 4 in

python2.5[8048000+f8000]

Buscando por internet encuentro el siguiente informe de error (bug):

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=558680

Descargo manualmente los siguientes paquetes:

sip4_4.7.6-1_i386.deb
python-sip4_4.7.6-1_i386.deb
python-elementtree_1.2.6-14_all.deb
python-qt4-common_4.4.2-4_all.deb
python-qt4_4.4.2-4_i386.deb

De los siguientes sitios:

Y los instalo en el mismo orden el que los muestro, por cuestiones de dependencias:

dpkg -i sip4_4.7.6-1_i386.deb
...

Ahora ya puedo arrancar gns3:

IMPORTANTE: arrancar como superusuario (root), porque se necesitan esos permisos para poder interactuar más tarde con la interfaz de bucle invertido.

gns3&

Configuración de la nube

El elemento nube sirve para enlazar la red virtual con cualquier interfaz de red real de la máquina donde se ejecuta gns3. Para ello se requiere de una interfaz de bucle invertido (windows) o de un puente (GNU/linux).

En GNU/Linux no es posible enlazar directamente un router virtual a nuestra máquina por dos motivos:

  • Las bibliotecas libpcap y Winpcap son distintas.
  • Diferencias en las pilas de internet entre GNU/Linux y Windows (p.ej.NDIS)

Para más información:

http://www.gns3.net/phpBB/topic18.html

Para solucinarlo me he basado en el siguiente enlace:

http://joshatterbury.com/tutorials/configuring-dynamips-to-use-a-linux-tap-interface/

1. Crear una interfaz virtual (tap0) y un puente (br0) que enlace dicha interfaz virtual con nuestra interfaz de red (eth3 en mi caso).

Para hacer el trabajo más cómodo crearemos un guión para automatizar los pasos:

1.1 Crear el guión

nano /usr/local/crear_puente.sh

Con el siguiente contenido:

#!/bin/bash 

############# Variables #############

Tap="tap0" 
Interfaz="eth3" 
Ip_puente="192.168.1.30" 
Puerta_puente="192.168.1.1" 
Puente="br0" 
Mascara=24 

############# Comandos #############

# Creamos el puente
brctl addbr $Puente 
# Lo activamos
ip l s dev $Puente up 
# Create la interfaz de red virtual 
tunctl -t $Tap 
# La activamos
ip l s dev $Tap up 
# Añadimos al puente la interfaz virtual 
brctl addif $Puente $Tap 
# Añadimos al puente la interfaz de red
brctl addif $Puente $Interfaz 
# Eliminamos la ip de la interfaz de red y la ponemos en modo promiscuo
ifconfig $Interfaz 0.0.0.0 promisc 
# Configuramos el puente con la ip y máscara de subred que tenía la interfaz de red
ip a a $Ip_puente/$Mascara dev $Puente 
# Le asignamos la puerta de enlace al puente
ip r a default via $Puerta_puente

1.2 Grabamos y salimos

1.3 Lo hacemos ejecutable:

chmod +x /usr/local/crear_puente.sh

1.4 Para mayor comodidad creamos un guión para deshacer el puente:

nano /usr/local/quitar_puente.sh

Con el siguiente contenido:

#!/bin/bash 

Tap="tap0" 
Interfaz="eth3" 
Ip_puente="192.168.1.30" 
Puerta_puente="192.168.1.1" 
Puente="br0" 
Mascara=24 

####################################### 

ifconfig $Puente down 
brctl delif $Puente $Interfaz 
brctl delif $Puente $Tap 
brctl delbr $Puente 
tunctl -d $Tap 
ifconfig $Interfaz up 
ifconfig $Interfaz $Ip_puente/$Mascara 
route add default gw $Puerta_puente

1.5 Grabamos y salimos

1.6 Lo hacemos ejecutable:

chmod +x /usr/local/crear_puente.sh

1.7 Creamos el puente:

(Como root)

./usr/local/crear_puente.sh

Verificamos:

(Como root)

ifconfig
br0       Link encap:Ethernet  HWaddr 00:16:6f:a9:ad:3c  
          inet addr:192.168.1.30  Bcast:0.0.0.0  Mask:255.255.255.0 
          inet6 addr: fe80::1063:99ff:fef9:170f/64 Scope:Link 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:24 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:4459 (4.3 KiB) 

eth3      Link encap:Ethernet  HWaddr 00:16:6f:a9:ad:3c  
          inet6 addr: fe80::216:6fff:fea9:ad3c/64 Scope:Link 
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1 
          RX packets:50183 errors:1 dropped:1 overruns:0 frame:0 
          TX packets:42352 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:44744048 (42.6 MiB)  TX bytes:16718320 (15.9 MiB) 
          Interrupt:17 Base address:0x6000 Memory:dfcff000-dfcfffff 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0 
          inet6 addr: ::1/128 Scope:Host 
          UP LOOPBACK RUNNING  MTU:16436  Metric:1 
          RX packets:2499 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:2499 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0 
          RX bytes:158552 (154.8 KiB)  TX bytes:158552 (154.8 KiB) 

tap0      Link encap:Ethernet  HWaddr 2a:8f:ee:f9:65:33  
          inet6 addr: fe80::288f:eeff:fef9:6533/64 Scope:Link 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:180 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:71 errors:0 dropped:16 overruns:0 carrier:0 
          collisions:0 txqueuelen:500 
          RX bytes:18602 (18.1 KiB)  TX bytes:4817 (4.7 KiB) 

2. Configurar la nube para que salga por la interfaz tap0.

2.1 Ejecutamos gns3:

(Como root)

gns3&

2.2 Creamos una nube

2.3 Pulsamos dos veces sobre la nube

2.4 Seleccionamos la solapa 'NIO TAP'

2.5 En la caja de texto justo debajo de 'TAP interface (require root access)' teclear 'tap0'

2.6 Pulsar en el botón 'ADD'

2.7 Pulsar en el botón 'OK'

informatica/linux/gns3.txt · Last modified: 2015/04/13 20:19 by 127.0.0.1