Configuracion de modos de red en VirtualBox
Cuando creamos una máquina virtual con VirtualBox la configuración de red que se establece la realiza el propio programa mediante una serie de valores por defecto. Si la máquina física en la que realizamos la virtualización tiene una configuración de red correcta y acceso a Internet, entonces nuestras máquinas virtuales también lo tendrán. Sin embargo, a nivel de red no tendremos conexión entre el equipo físico y los sistemas virtualizados, ni las máquinas virtuales tendrán conexión entre ellas. Este comportamiento por defecto podemos cambiarlo, lo que nos va a permitir crear diversas topologías de red que sirvan para interconectar nuestras máquinas de diversas formas.
Antes de proseguir, debemos tener claro una serie de conceptos referentes a los distintos elementos que vamos a manejar. A saber:
- Host anfitrión: es la máquina en la que se ejecuta VirtualBox, es decir, nuestra máquina física sobre la que se virtualizarán el resto de sistemas.
- Host invitado: es una máquina virtual.
- Red local: es la red a la que se encuentra conectado el host anfitrión, ya sea una red cableada o wi-fi.
- Red Interna: es un red virtual que se crea en nuestro equipo a la cual podemos conectar nuestras máquinas virtuales.
Para nuestras pruebas vamos a usar VirtualBox 6.1.34. En esta versión, si accedemos al apartado de “Configuración” de alguna máquina virtual que hayamos creado tendremos la opción de “Red”, cuya ventana tiene el siguiente aspecto:

Tenemos la posibilidad de definir cuatro adaptadores de red para cada máquina virtual (realmente se pueden definir ocho, pero en el modo gráfico está limitado a cuatro). En general, las propiedades que se pueden configurar para cada adaptador son bastante explicativas por sí mismas. Podemos habilitar o deshabilitar el adaptador, indicar el tipo de tarjeta que vamos a emular, asignar una dirección MAC a dicha tarjeta y simular si el cable de red está o no está conectado. La opción “Modo promiscuo” sólo estará disponible en función del tipo de red que elijamos en la opción “Conectado a” (no se permite para las opciones NAT y Controlador genérico).
La opción “Conectado a” establece el modo de red a utilizar y es la opción en la que tenemos que fijarnos si estamos interesados en cambiar la forma en que nuestra máquina virtual se conecta a la red y a qué tipo de red. Veamos las posibilidades que tenemos.
Modos de red
Los modos de red podemos entenderlos como la forma en que los adaptadores de red, es decir, las tarjetas de red que se virtualizan en cada máquina virtual, se conectan a una red determinada. Son los siguientes:
NAT
Es el modo por defecto que se aplica al crear una máquina virtual y permite el acceso a Internet si el host anfitrión lo tiene. Sin embargo, no tenemos acceso de red entre la máquina virtual y el host anfitrión. Gráficamente podríamos representar la red creada de la siguiente forma:

El interfaz de red de la máquina virtual queda configurado con la dirección IP 10.0.X.15/24, donde el valor X varía en función del adaptador de red al que esté asociada la dirección. Recordemos que podemos configurar cuatro adaptadores de red para una máquina virtual, los cuales empiezan a numerarse por el dos. Por tanto, si solo tenemos habilitado el primer adaptador la IP de nuestra máquina virtual será 10.0.2.15/24. Por otro lado, VirtualBox crea de forma virtual una serie de elementos de red para hacer funcional esta estructura de red.:
- un router NAT, con dirección IP 10.0.X.2
- un servidor DHCP, con dirección IP 10.0.X.3
- un servidor TFTP, con dirección IP 10.0.X.4
Cada máquina virtual ejecutada en este modo tiene su propia infraestructura de red por lo que son independientes entre sí y no accesibles entre ellas por red.
Como su nombre indica, este modo de red utiliza NAT (Network Address Translation) por lo que la máquina virtual no es accesible al quedar oculta tras el router NAT, ni siquiera para el equipo anfitrión. Sin embargo, podemos hacerla parcialmente accesible si configuramos la redirección de puertos del router. De esta forma, podemos tener un servicio abierto en la máquina virtual sin que se vea implicado el host anfitrión. Para realizar esta configuración solo tenemos que acceder a la pantalla que aparece al pulsar el botón “Reenvío de puertos” que tenemos en las opciones del Adaptador correspondiente.
Por último, este modo no permite el modo promiscuo del adaptador de red, por lo que no podremos utilizar ningún sniffer para analizar el tráfico de red.
Red NAT
Similar al anterior pero permitiendo que varias máquinas virtuales puedan conectarse al router NAT. Para ello es necesario definir previamente la red que va a ser utilizada, labor que puede realizarse accediendo a la opción Red de la ventana de Preferencias, la cual se encuentra dentro del menú Archivo de la pantalla principal de VirtualBox.

Al crear una nueva red, por defecto establece el rango de red 10.0.2.0/24 y habilita el DHCP, pero podemos cambiarlos por los valores que nos interesen. Tras ello, en la ventana de configuración del adaptador tendremos la opción de elegir la red creada al seleccionar este modo de conexión.
Adaptador puente
Con esta configuración tanto el host anfitrión como el host invitado comparten la misma red. Para conseguir esto VirtualBox crea un switch virtual al que se conectan ambos sistemas. Gráficamente tendríamos una red como la siguiente:

Si el host anfitrión tiene varias tarjetas de red hay que indicar cuál de ellas se va a utilizar para conectar a la red virtual. Si la tarjeta elegida tiene conexión a Internet la máquina virtual también la tendrá, en caso contrario no habrá salida al exterior e incluso se perderá la conexión entre anfitrión e invitado. Por otro lado, la dirección asignada a la tarjeta de red de la máquina virtual debe ser una perteneciente al rango de red al que pertenece el anfitrión y, lógicamente, que esté libre.
Red interna
Con esta configuración podemos conectar varias máquinas virtuales a una misma red interna, las cuales podrán comunicarse entre sí. Sin embargo, no será posible la comunicación con el host anfitrión y no tendremos acceso a Internet. Este escenario es especialmente útil para la realización de pruebas que puedan suponer un riesgo ya que al mantener totalmente aislada la máquina física de las máquinas virtuales evitamos la propagación de incidencias de seguridad.
Cuando queremos añadir una máquina virtual a una red debemos indicar el nombre dicha red. Por defecto, al seleccionar Red Interna como modo de conexión VirtualBox crea la red con nombre intnet.
Si queremos que la red tenga salida a Internet alguna de las máquinas virtuales debe actuar como un router para poder encaminar los paquetes de la red interna hacia el exterior. Para ello, dicha máquina deberá contar con dos adaptadores de red. Uno de ellos con la conexión a la red interna y el otro configurado como NAT o como adaptador puente. Un ejemplo sería el mostrado en la siguiente imagen:

Adaptador solo-anfitrión
Podríamos decir que es una especie de híbrido entre el modo Red Interna y el modo Adaptador puente. Por un lado, crea una red interna, pero con el añadido de que el host anfitrión puede conectarse a la red creada. Por otro lado, no es necesario crear un puente para establecer la conexión con el host anfitrión. Este último aspecto es importante porque evita que se pierda la conexión entre máquinas en caso de no tener conexión física en la tarjeta del anfitrión ya que, si se da este caso, VirtualBox actúa “apagando” el switch que conecta a las máquinas virtuales y al anfitrión. Con el modo solo-anfitrión no se pierda la conectividad pues no se utiliza la tarjeta física del anfitrión si no que se crea una tarjeta virtual la cual se conecta al mismo switch virtual al que se conectan las tarjetas de red del resto de máquinas virtuales.
Por defecto, existe un adaptador de red virtual ya creado con el nombre “VirtualBox Host-Only Ethernet Adapter”, el cual podemos configurar accediendo a la opción “Administrador de red anfitrión…” dentro del menú “Archivo” de la ventana principal de VirtualBox. En esta misma ventana podemos crear nuevos adaptadores de este tipo.

No conectado
Como su nombre indica, establece que el adaptador de red no está conectado a ninguna red. El efecto es similar a desmarcar la opción de “Cable conectado” en las propiedades del adaptador.