Siguiendo con la instalación de VirtualBox, voy a ver si hago memoria sobra la configuración de la red. Los manuales suelen explicar el funcionamiento desde el punto de vista de una red con una sola tarjeta, como mi situación personal es de dos tarjetas de red (ethernet) vamos a generar un par de interfaces virtuales para poder operar.
Supongo (porque no lo he probado aún) que la configuración sería igual con una tarjeta ethernet (eth) y una tarjeta Wifi (como la que suelen traer de serie todos los portátiles).
Dentro de las posibles configuraciones podemos encontrar:
No conectado (Not Attached): Simplemente, VirtualBox reporta al sistema operativo que no tiene ninguna tarjeta de red.
NAT (Network Address Translation): En la configuración NAT la nueva maquina virtual coje las direcciones mediante DCHP, el primer adaptador de red tomará la dirección 10.0.2.0 y el segundo 1.0.3.0. Es posible redireccionar los puertos, pero para ello es necesario realizarlo con la herramienta VBoxManage desde la línea de comandos. Entre las limitaciones más importantes están que no es posible ver los recursos de una red Windows (desde la VM) y que no responde al PING desde la red (sólo se pueden redireccionar los protocolos TCP y UDP). Si queremos, por ejemplo, redireccionar el protocolo ssh a través de la red a la máquina virtual debemos, primero, especificar el puerto de la maquina anfitriona que queremos redirigir, en este caso el 2222, (ya que el puerto 22 esta ocupado por el anfitrión) y el nombre del servicio (guestssh, nombre elegido al azar). Ahora, mediante línea de comandos efectuamos la asociación con la imagen de la MV (todo en la misma línea).
VBoxManage setextradata "Linux Guest"
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "Linux Guest"
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "Linux Guest"
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222
Este método es muy engorroso, por lo que está bien para instalación inicial o de prueba, pero, al igual que en los routers, hay que ir definiendo cada uno de los puertos que queremos redirigir.
Interface Anfitrión (Host Interface): Esta es la opción mas recomendable ya que nos permite tener nuestra propia dirección de red (visible desde toda la red). Ahora me voy a centrar en una configuración permanente, de forma que siempre este activa. Para ello nos hace falta instalar un paquete adicional de utilidades.
sudo apt-get install bridge-utils uml-utilities
Ahora tenemos que configurar los interfaces de red, de forma que se le asignen direcciones a todos los interfaces, en el terminal escribimos:
sudo gedit /etc/network/interfaces
Y nos quedará un fichero (mas o menos) como este.
auto lo eth0 eth1 br0 br1
iface lo inet loopback
iface eth0 inet static
address 10.64.136.90
netmask 255.0.0.0
gateway 10.64.136.67
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.192
gateway 192.168.1.1
#Brige 0 -> ETH0 Intranet
iface br0 inet static
address 10.64.136.91
netmask 255.0.0.0
gateway 10.64.136.67
bridge_ports eth0
#Brige 1 -> ETH1 ADSL
iface br1 inet static
address 192.168.1.3
netmask 255.255.255.192
gateway 192.168.1.1
bridge_ports eth1
Obviamente, las direcciones seguramente serán diferentes, así como las máscaras de red o las puertas de enlace. Como puedes observar, las direcciones son estáticas, pero funcionarían de igual forma con direcciones dinámicas (DHCP).
Analicemos un poco el fichero en cuestión. El interfaz ETH0 (10.64.136.90) se le asociará el Bridge 0 (10.64.136.91) y al ETH1 (192.168.1.2) el Bridge 1 (192.168.1.3).
Una vez realizado esto, volvemos a reinicia el servicio de red.
sudo /etc/init.d/networking restart
Ahora creamos un interfaz virtual para que el usuario pueda utilizarlo (y le damos permisos)
sudo VBoxAddIF vbox0 <user> br0
sudo VBoxAddIF vbox1 <user> br1
De forma que <user> es el nombre del usuario que va a ejecutar la VM. Una vez realizados estos pasos deberemos tener una riestra de interfaces que nos quedará tal que así:
ifconfig
br0 Link encap:Ethernet HWaddr 00:08:C7:4B:54:2A
inet addr:10.64.136.91 Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::208:c7ff:fe4b:542a/64 Scope:Link
UP DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Metric:1
RX packets:158437 errors:0 dropped:0 overruns:0 frame:0
TX packets:4295 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:0
RX bytes:11158744 (10.6 MB) TX bytes:397364 (388.0 KB)
br1 Link encap:Ethernet HWaddr 00:1A:A0:C7:6A:CC
inet addr:192.168.1.3 Bcast:192.168.1.63 Mask:255.255.255.192
inet6 addr: fe80::21a:a0ff:fec7:6acc/64 Scope:Link
UP DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Metric:1
RX packets:98880 errors:0 dropped:0 overruns:0 frame:0
TX packets:67814 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:0
RX bytes:90502581 (86.3 MB) TX bytes:8971869 (8.5 MB)
eth0 Link encap:Ethernet HWaddr 00:08:C7:4B:54:2A
inet6 addr: fe80::208:c7ff:fe4b:542a/64 Scope:Link
UP DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Metric:1
RX packets:299344 errors:0 dropped:0 overruns:0 frame:0
TX packets:159150 errors:0 dropped:0 overruns:0 carrier:537
colisiones:1050 txqueuelen:1000
RX bytes:58350507 (55.6 MB) TX bytes:49333728 (47.0 MB)
eth1 Link encap:Ethernet HWaddr 00:1A:A0:C7:6A:CC
inet6 addr: fe80::21a:a0ff:fec7:6acc/64 Scope:Link
UP DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Metric:1
RX packets:98894 errors:0 dropped:0 overruns:0 frame:0
TX packets:67880 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:100
RX bytes:92516147 (88.2 MB) TX bytes:9453890 (9.0 MB)
Base address:0xecc0 Memory:80400000-80420000
lo Link encap:Bucle local
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK CORRIENDO MTU:16436 Metric:1
RX packets:439 errors:0 dropped:0 overruns:0 frame:0
TX packets:439 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:0
RX bytes:39358 (38.4 KB) TX bytes:39358 (38.4 KB)
vbox0 Link encap:Ethernet HWaddr 00:FF:BE:81:95:9A
inet6 addr: fe80::2ff:beff:fe81:959a/64 Scope:Link
UP DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Metric:1
RX packets:154846 errors:0 dropped:0 overruns:0 frame:0
TX packets:284755 errors:0 dropped:50 overruns:0 carrier:0
colisiones:0 txqueuelen:500
RX bytes:49246885 (46.9 MB) TX bytes:56174215 (53.5 MB)
vbox1 Link encap:Ethernet HWaddr 00:FF:03:10:36:F1
inet6 addr: fe80::2ff:3ff:fe10:36f1/64 Scope:Link
UP DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:22423 overruns:0 carrier:0
colisiones:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Y si consultamos las direcciones IP:
ip a
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:08:c7:4b:54:2a brd ff:ff:ff:ff:ff:ff
inet6 fe80::208:c7ff:fe4b:542a/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:1a:a0:c7:6a:cc brd ff:ff:ff:ff:ff:ff
inet6 fe80::21a:a0ff:fec7:6acc/64 scope link
valid_lft forever preferred_lft forever
4: br0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc noqueue
link/ether 00:08:c7:4b:54:2a brd ff:ff:ff:ff:ff:ff
inet 10.64.136.91/8 brd 10.255.255.255 scope global br0
inet6 fe80::208:c7ff:fe4b:542a/64 scope link
valid_lft forever preferred_lft forever
5: br1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc noqueue
link/ether 00:1a:a0:c7:6a:cc brd ff:ff:ff:ff:ff:ff
inet 192.168.1.3/26 brd 192.168.1.63 scope global br1
inet6 fe80::21a:a0ff:fec7:6acc/64 scope link
valid_lft forever preferred_lft forever
6: vbox0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 500
link/ether 00:ff:be:81:95:9a brd ff:ff:ff:ff:ff:ff
inet6 fe80::2ff:beff:fe81:959a/64 scope link
valid_lft forever preferred_lft forever
7: vbox1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 500
link/ether 00:ff:03:10:36:f1 brd ff:ff:ff:ff:ff:ff
inet6 fe80::2ff:3ff:fe10:36f1/64 scope link
valid_lft forever preferred_lft forever
Ahora debemos añadir la dirección correspondiente a la imagen de la máquina virtual correspondiente, para ello lo hacemos bien desde la línea de comandos:
sudo VBoxManage modifyvm "Maquina_Virtual" -hostifdev1 vbox0
O, más fácilmente, seleccionamos la opción correspondiente en el menú de Red, en el desplegable seleccionamos Interface Anfitrión (Host Interface) y en el nombre del Interfaz ponemos vbox0 (y para el segundo interfaz ponemos vbox1).
Hay que tener en cuenta que es necesario crear un interfaz anfitrión por cada una de las máquinas virtuales que vayamos a utilizar.
Red Interna (Internal Network): El funcionamiento es muy parecido al Interface Anfitrión (Host Interface) pero con la salvedad que sólo se puede comunicar con otras máquinas viruales que estén corriendo en el mismo host. Permite mayor velocidad y fiabilidad, pero no comunicación con el mundo exterior. La configuración la dejo para un posterior artículo.
Seguro que me dejo algo en el tintero, ya que la configuración la estoy haciendo casi de memoria, pero iré ampliando esta entrada en la medida que sea necesaria.
Mirando un blog encontre un tutorial muy simple de como configurar la red interna en virtualbox con una interfaz virtual de red para que cada vm tenga su ip fisica en la red, ya que como es algo no muy bien explicado en la documentacion oficial de virt...
Tracked: Feb 24, 00:57