martes, 5 de diciembre de 2023

0 - Configuración de la red en Vmware

Vmware Workstation dispone de 20 Switch virtuales que sirven para conectar máquinas virtuales. Los Switch 0, 1 y 8 tienen un comportamiento especial mientras que el resto son independientes es decir que cualquier máquina virtual que conectemos a ellos permanecerá completamente aislada, sin conexión con la máquina anfitriona, ni con otras máquinas externas.

Switch VMnet0 - Bridge


El Switch virtual 0 (VMnet0) hace la función de Puente entre la tarjeta de la maquina virtual y la tarjeta de la maquina física, por lo tanto nuestra maquina virtual podría conectarse con otras maquinas de la red y salir a Internet sin problema. Tanto la tarjeta de la máquina virtual como la tarjeta de la máquina física tendrán direcciones IP diferentes del mismo rango y visibles desde el exterior.


Modo Bridge


Switch VMnet8 - NAT


El Switch virtual 8 (VMnet8) crea un router virtual (NAT device) que de forma automática se encargará de que las direcciones IP de todas las tarjetas de red de las MV configuradas en NAT sean filtradas y traducidas para salir a través de la tarjeta física de la máquina real.

Bajo este sistema, las MV NAT pueden salir a Internet, sin embargo los ordenadores de la red externa (red del anfitrión) no podrán establecer conexión por defecto con las MV.

Este modo dispone de manera opcional de un servicio virtual propio DHCP que atenderá a las MV conectadas a través de NAT. Solo puede haber un interfaz virtual en modo NAT.


Modo NAT


Switch VMnet1 - Host Only


En este modo, (VMnet1) se crea una conexión entre entre las MV y la máquina física. El adaptador de las MV y el adaptador del anfitrión se encuentran conectados a una red privada y aislada del exterior. 

Las MV tienen conexión con el host pero no podrán salir a Internet. Este modo también dispone de un servicio virtual propio DHCP.

Modo Host only

Lan Segment


Esta configuración crea un segmento de red virtual. Cualquier máquina virtual que cuente con el mismo segmento de red que otra, podrá comunicarse con ella sin problemas.

Por ejemplo, si configuramos 3 máquinas virtuales en el mismo segmento de red dichas 3 máquinas estarán montadas en su propia red local virtual y tendrán comunicación directa entre ellas por red, pero será imposible que se comuniquen con cualquier otra máquina, ni con el host, ni con Internet.

Los segmentos de red los podemos crear desde el mismo botón “LAN Segments” que vemos en la pantalla de configuración de la red. Podemos crear tantos segmentos como queramos, y no importa el nombre que les pongamos.


Custom

Desde esta opción podemos indicar directamente a VMware que utilice una red virtual que hayamos creado anteriormente en el editor de redes de VMware. Si escogemos una red virtual no definida estaríamos creando un Lan segment.

domingo, 3 de diciembre de 2023

01 - Esquema MBR. Arranque BIOS

A la hora de dar formato a un disco duro, el estilo de tablas de particiones más conocido es MBR. Este estilo de formato lleva más de 30 años funcionando en la mayor parte de SO. Una de las principales limitaciones de MBR es el tamaño máximo de partición con el que puede trabajar: 2 TB. Además el número de particiones primarias que se pueden crear está limitado a 4. Si se quiere aumentar la cantidad de particiones debemos recurrir a una estrategia lógica denominada partición extendida donde se podrían crear un máximo de 23 particiones lógicas.

Registro maestro de arranque (MBR)

Cada disco duro tiene un sector inicial de 512 bytes conocido como MBR que contiene varias piezas fundamentales: Tabla de particiones, Código de arranque rudimentario y Firma de arranque.

Sector cero del Disco

Tabla de particiones


Es un conjunto de registros (máximo 4) de 16 bytes cada uno, ubicada en el MBR, cuya función es definir las posibles particiones primarias, almacenando información esencial: Sistema de ficheros, Tamaño, Sector de arranque, Marca de arranque etc. Sólo una partición debe tener la marca de arranque.

Bootstrap

Pequeña porción de código (440 bytes) que se encarga de buscar la partición activa en la tabla de particiones (sólo puede haber una activa). Una vez que la encuentra, busca al principio de dicha partición otra porción de código denominada sector de arranque y la carga en memoria.

Sector de arranque de la partición activa

El código de arranque del MBR lo podemos considerar como cargador de arranque de etapa 1 mientras que el código de arranque del sector de arranque de la partición activa, cargador de arranque de etapa 2

Firma de arranque

Son los dos bytes finales del MBR que la BIOS usa para saber si la unidad de arranque seleccionada es realmente arrancable o no. En un disco que contiene un código de arranque válido, los dos últimos bytes del MBR siempre deben ser 0x55 0xAA. Si no es así, asume que el disco no es arrancable y continúa con el siguiente dispositivo en la lista de orden de arranque que tenga configurada.

Si ningún dispositivo de la lista tiene la firma de inicio correcta, la BIOS muestra error "No hay ningún dispositivo de inicio disponible" o "Reiniciar y seleccionar el dispositivo de inicio adecuado".

El sector de arranque de la partición activa tiene también al final una comprobación de sector de arranque válido similar a la firma del MBR.

Proceso de arranque BIOS (MBR)

  • Se ejecuta el POST, unas rutinas almacenadas en BIOS que hacen un testeo para verificar e inicializar el hardware: placa, procesador, gráfica, RAM, teclado, etc. Justo después es posible el acceso a la BIOS.
  • La BIOS comprueba las unidades de almacenamiento disponibles y se selecciona una unidad de arranque (suele ser una unidad de disco).
  • Se carga el MBR de la unidad de arranque en memoria.
  • Se ejecuta el cargador de arranque de etapa 1 (el que esta en el MBR) que se encarga de consultar la tabla de particiones y localizar la partición activa.
  • Se carga el sector de arranque de dicha partición en memoria.
  • Se ejecuta el cargador de arranque de etapa 2  (el que está en el sector de arranque de la partición activa).
  • Se carga la configuración del cargador de arranque que suele estar almacenada en una base de datos.
  • El cargador de arranque muestra un menú con la lista de SO que pueden lanzarse (si es que hay varios).
  • El cargador de arranque localiza y carga el núcleo del SO y se inicia el sistema de forma desatendida.


Windows Bootmgr

Cada SO tiene su propio gestor de arranque, diseñado específicamente para leer su sistema de archivos y localizar el núcleo que debe cargarse para que se ejecute. Bootmgr es el gestor de arranque utilizado actualmente en Windows en versiones desktop y server. Es un gestor de arranque autónomo especialmente diseñado para ser compatible con las funcionalidades más nuevas de los SO modernos, como el arranque EFI y el particionado GPT.

Almacena su configuración en un archivo llamado BCD, abreviatura de Boot Configuration Database, una base de datos binaria que no se puede abrir y editar a mano pero si a través de comandos como bcdedit.exe y utilidades GUI fáciles de usar como EasyBCD para leer y modificar la lista de SO.

Casi todos los gestores de arranque, como Bootmgr o GRUB2, separan el ejecutable real del gestor de su configuración (base de datos que contiene información sobre los SO a cargar). De esta forma ofrecen soporte para cargar múltiples SO, un proceso conocido como "arranque dual" o "arranque múltiple".

sábado, 2 de diciembre de 2023

02 - Esquema GPT. Arranque UEFI

Esquema GPT

El nuevo estándar GPT (GUID Partition Table) está sustituyendo a MBR y está asociado con los nuevos sistemas UEFI. Su nombre viene de que a cada partición se le asocia un único identificador global, GUID. A día de hoy, GPT no tiene ningún límite más allá que los que establezcan los propios SO, tanto en tamaño de disco (mas de 2TB), como en número de particiones (por ejemplo, Windows tiene un límite de 128 particiones).


LBA= 512 bytes. LBA negativo= por el final

MBR heredado



Se ha mantenido un MBR al principio del disco para evitar que las herramientas antiguas de manejo de discos basados en MBR, que no reconocen GPT, se confundan y puedan estropear el disco. Este MBR de seguridad especifica, contiene una única entrada de partición que abarca toda la unidad GPT.


Cabecera de tabla de particiones (primaria)



Define el número y tamaño de las entradas de partición que conforman la tabla de particiones y los bloques de disco que pueden ser utilizados por el usuario.


Contiene el GUID del disco y registra su propio tamaño y localización (LBA 1), y el tamaño y la localización de la cabecera y tabla de la GPT secundarias (siempre en el último sector del disco).

Entradas de partición


Contienen el GUID, tipo, comienzo, final, nombre y otros atributos de partición.

Cabecera de tabla de particiones (secundaria)



Copia redundante de la cabecera de tabla de particiones primaria que sirve de seguridad para poderse recuperar en caso de error.

Consideraciones


Mientas que en MBR la tabla de particiones se almacena en el primer sector del disco, con los consiguientes problemas en caso de que dicho sector se pierda, corrompa o sobrescriba, con GPT obtendremos mayor seguridad en nuestro disco duro en cuanto a la pérdida de datos, ya que tenemos una copia de la propia tabla de particiones replicada en nuestro disco.

Arranque UEFI


El arranque UEFI es radicalmente opuesto a MBR.
  • Mantiene un cargador propio EFI (Extendible Firmware Interface) en una partición EFI de tipo FAT (Ej. en Windows 10 ocupa 100 MB y se etiqueta como Sistema)
  • Dispone también de un gestor de arranque propio que incorpora entradas según los SO que se vayan instalando en modo UEFI además de entradas tradicionales Legacy (compatibilidad con MBR).
  • Se ejecuta el cargador EFI y se pasa el control al dispositivo de la lista del gestor de arranque en el orden que esté establecido (si no fuera válido se pasaría al siguiente).

Ejemplo de gestor de arranque EFI

El cargador de arranque EFI es mucho más complejo y tiene mucho mayor conocimiento de los arranques posibles de los diferentes SO, de esa forma quedan integrados dentro del propio cargador acelerándose el proceso de carga del Kernel.


UEFI permite configurar el comportamiento de arranque del sistema desde el propio SO a través de herramientas como efibootmgr.