Virtualización VirtualBox y Linux

Presentación de VirtualBox

VirtualBox es un software que se puede instalar en plataformas Windows y Linux que convierten al ordenador físico en un sistema anfitrión y, a través de un hardware "Virtual", permite la instalación de sistemas tantos operativos huésped como permita los recursos de la máquina física.

Estos sistemas operativos virtualizados se pueden ejecutar cuando sea necesario y de manera simultánea permitiendo, según cada configuración, la comunicación entre todas las máquinas e incluso Internet.

El aspecto del sistema en funcionamiento se puede ver en la siguiente imagen.

VirtualBox con tres máquinas virtuales funcionando

Se puede ver que sobre el sistema anfitrión Linux se ha creado una máquina virtual con Windows que está actualmente en ejecución.

Crear una máquina virtual

En las siguientes pantallas se ve como crear una máquina virtual con VirtualBox

Poner nombre a la máquina

Seleccionar la cantidad de memoria RAM asignada

Tipos de red VirtualBox

No Conectado

NAT

Red NAT

Adaptador Puente

Red Interna

Otros modos

Otras configuraciones de VirtualBox

Configuración de la Red NAT

Que es utilizada en modo Red NAT

Poniendo el ratón encima de la red NAT saldrá un resumen con la configuración elegida

Configuración Red Solo anfitrión

Es parecida a la del caso anterior

Se puede ver el resumen igual que en el caso anterior

Comportamiento Switch interno de VirtualBox

Clonado de discos y máquinas

No se puede copiar el disco de una máquina para crear una máquina nueva con el disco copia, ya que el disco lleva grabada la configuración de la máquina y su identificador único UID. VirtualBox tiene recursos para poder clonar una máquina a partir de otra cambiando los elementos necesarios para que su funcionamiento sea correcto.

Los pasos a dar son los siguientes.

Ir a preferencias

Ver los discos actuales

Seleccionar el disco a copiar

Marcar como disco origen

Seleccionar el tipo de disco a clonar

Indicar donde se va a guardar el disco copiado

Comenzar a crear la copia

Hay que crear una máquina nueva con el disco creado de esta manera

No olvidar cambiar el nombre de la máquina para no duplicar nombres en la red y no confundir los equipos al trabajar con ellos.

Cambio de nombre temporal. Es necesario iniciar la sesión con un nuevo login, con el comando bash o saliendo con exit y volviendo a entrar.

Comando bash

Para hacer el cambio permanente es necesario editar el archivo /etc/hosts y reiniciar el equipo después

Optimización para entornos gráficos

Para mejorar el rendimiento del sistema cuando se ejecutan sistemas linux de manera virtualizada hay que optimizar la máquina añadiendo recursos a la máquina virtual de la siguiente manera.

Aumentar el número de procesadores

Aumentar la memoria dedicada a la tarjeta gráfica

Poner una tarjeta de red más rápida que la de por defecto

Estado de virtualización de Linux

Cuando se está ejecutando una máquina virtual en VirtualBox se pueden utilizar de distintas maneras los recursos de optimización de la virtualización que ofrecen algunas máquinas físicas. Estas opciones normalmente hay que activarlas desde la BIOS de la máquina real, opciones como Intel-VT y AMD-V.

También se puede seleccionar que hardware virtual se utilizará para la tarjeta de red del equipo huesped.

Hay que elegir como se conectará el equipo a la red e interactuará con el resto de equipos.

Para saber si una máquina huésped está utilizando los recursos físicos del procesador en una máquina Linux se pueden utilizar los siguientes comandos:

  • dmesg | grep Hyper: Debe aparecer un mensaje indicando que se ha detectado el Hypervisor KVM
  • lsmod: Muestra los drivers cargados por le sistema operativo. La tarjeta de red se ve como "e1000" si se ha seleccionado la tarjeta de red Intel Pro1000 y "Virtio..." si se ha puesto como tarjeta de red la tarjeta paravirtualizada de VirtualBox. En este último caso la conexión de red funciona al límite físico de la tarjeta, en el caso de la Intel Pro 1000 no llega a transferir a más de unos 80Mbps.

Configuración IP en Linux

Los ficheros en donde se guarda la configuración de un sistema Linux son:

  • /etc/network/interfaces: Es donde se guarda la dirección IP, máscara de red y puerta de enlace.
  • /ect/resolv.conf: Es donde se guardan los servidores DNS que utilizará la máquina para la conversión de nombres a la dirección IP correspondiente.

Hay dos maneras de configurar las direcciones IP de un equipo Linux, la manera antigua con los comandos ifconfig y route de siempre, y la manera actual en la que se han sustituido por el comando ip.

A la vez que han cambiado los comandos para la configuración de red, también ha cambiado la manera de nombrar los dispositivos de red. Antes se denominaban eth0, eth1...

numerándolos en el orden que se detectaba en el arranque y ahora se numeran en función de la ranura de la placa base en la que está pinchada cada tarjeta de red con nombres similares a enp0s3

Esto último evita posibles vulnerabilidades del sistema que se podían producir cuando durante el arranque del sistema se cambiaba la Id de alguna tarjeta de red. Si esto sucedía se podían aplicar las reglas del firewall al revés de como estaban planificadas, con el consiguiente agujero de seguridad producido de manera inmediata.

Cambio correcto de IP

El orden en que se hace el cambio de la dirección IP de la máquina es muy importante, ya que sino se pueden producir fallos de configuración en la red completa, como doble asignación de IP o cambios repentinos de IP de manera inesperada.

Para cambiar de manera correcta la dirección IP hay que seguir los siguientes pasos.

  • Detener la tarjeta de red en cuestión: Comando ifdown enp0s3. El sistema lee el contenido antiguo de la configuración IP y a parte de desactivar el servicio de red elimina la IP que es estaba utilizando anteriormente. Solo en el caso de DHCP libera la IP utilizada IPRELEASE y mata al cliente de DHCP.
  • Cambiar la configuración IP de la tarjeta: Comando nano /etc/network/interfaces. Se pone la nueva configuración deseada.
  • Arrancar la tarjeta con la IP nueva: Comando ifup enp0s3. Se lee el nuevo fichero de configuración de red y se aplica en el sistema con las nuevas configuraciones introducidas.

Una manera incorrecta de cambiar la dirección IP sería la siguiente:

  • Cambiar la configuración IP de la tarjeta: Comando nano /etc/network/interfaces. Se pone la nueva configuración deseada.
  • Detener la tarjeta de red en cuestión: Comando ifdown enp0s3. El sistema lee el contenido del nuevo fichero de configuración de red, detiene el servicio, pero es incapaz de eliminar la dirección IP utilizada anteriormente ya que no ésta no está en el fichero de configuración. En el caso de DHCP no mata el proceso de DHCP y tampoco libera la IP que utilizaba antes para que la pueda utilizar otro equipo. No de detiene el servicio de manera correcta.
  • Arrancar la tarjeta con la IP nueva: Comando ifup enp0s3. Se lee el nuevo fichero de configuración de red y se añaden al sistema las nuevas configuración introducidas.

En este segundo caso se pueden producir dobles asignaciones de IP y la no liberación de la dirección IP cuando se utiliza DHCP

Otros comandos Linux

Añadiendo una segunda IP al equipo

Para saber como se llaman los interfaces de red ejecutar el comando ip address

Añadir una ruta

Cambio de IP en entorno gráfico

Otros comandos

  • poweroff: Apaga la máquina
  • nano: Editor de textos