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