Asignar una dirección IP estática a un invitado VirtualBox con una red NAT sin acceder al invitado

Asignar una dirección IP estática a un invitado VirtualBox con una red NAT sin acceder al invitado

Estoy usando VirtualBox 5.2.18 en Ubuntu Server 18.04. Tengo varias máquinas invitadas VirtualBox que comparten una red NAT intnet. Actualmente, intnettiene un servidor DHCP (configurado por VirtualBox) que asigna automáticamente IP dinámicas a los invitados. Esto funciona bien, pero me gustaría que el servidor DHCP asigne IP estáticas a invitados específicos según la dirección MAC de su interfaz de red. Se pueden configurar IP estáticas dentro de los invitados, pero eso lleva tiempo y depende del sistema operativo invitado. ¿Hay alguna manera, en VirtualBox, de asignar IP estáticas a los invitados?

Hay un ejecutable en la carpeta de instalación de VirtualBox llamado VBoxNetDHCP. A juzgar por el resultado de VBoxNetDHCP, parece permitir la asignación de IP estática por dirección MAC. Sin embargo, no puedo hacerlo funcionar y la documentación correspondiente es prácticamente inexistente.

Respuesta1

Normalmente, cuando hago cosas como esta (y lo hago mucho), tiendo a usar una máquina virtual que actúa como un servidor de red que hace cosas como DHCP, DNS, tanto almacenamiento en caché para el mundo como suplantación de identidad local fake.tld, etc.

La forma más sencilla es realizar una instalación básica y básica de Debian a través de la imagen netinstall: no seleccione ninguno de los grupos de paquetes que no sea la opción del servidor ssh y quizás las "utilidades estándar".

Una vez que esté en funcionamiento, para convertirlo en un servidor DHCP para su red interna de VM, instale el isc-dhcp-serverpaquete. Luego edita/etc/dhcp/dhcpd.conf

Aquí hay un ejemplo simple mío. Esto establece un tiempo de concesión corto (5 minutos), establece el dominio de búsqueda del cliente, etc. en "fake.tld", dirige sus consultas DNS a 192.168.1.2 y proporciona direcciones en el rango de 10.99.98.80-100 con 24 bits de máscara de red. Tenga en cuenta que la máquina virtual que realiza esto debe tener un adaptador configurado con una IP dentro de la subred 10.99.98.0/24.

Además del grupo general, le doy al dispositivo la dirección MAC de 80:c1:6e:2b:b6:cdun contrato de arrendamiento definido explícitamente (así como cualquier otro optioncomo un servidor DNS para usar, puerta de enlace, etc.) para la .110IP. Cualquiera de estos "arrendamientos estáticos" debe ser para direcciones FUERA de su rango dinámico, pero dentro de la subred configurada tanto en el archivo de configuración como en el adaptador de red de la máquina que aloja el servicio.

Cuando agrega un nuevo host y desea que tenga una IP específica, simplemente agregue otra sección de host; no es necesario que el nombre del host coincida con lo que envíe el cliente, pero sí debe ser único en el archivo. Después de haberlo agregado, reinicie el servicio.service isc-dhcp-server restart

ddns-update-style none;
option domain-name "fake.tld";
option domain-name-servers 192.168.1.2;
option domain-search "fake.tld";
default-lease-time 600;
max-lease-time 720;
authoritative;
log-facility local7;

subnet 10.99.98.0 netmask 255.255.255.0{
    range 10.99.98.80 10.99.98.100;
    option routers 10.99.98.1;
}

host lr-tv {
    hardware ethernet 80:c1:6e:2b:b6:cd;
    fixed-address 10.99.98.110;
    option routers 10.99.98.1;
    option domain-name-servers 192.168.1.2;
}

Respuesta2

Esto se puede hacer en el servidor DHCP interno de VBOX:

1.- Nombre de red FindOut para el servidor dhcp:

./VBoxManage list dhcpservers
NetworkName:    HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter
Dhcpd IP:       192.168.56.100
LowerIPAddress: 192.168.56.101
UpperIPAddress: 192.168.56.254
NetworkMask:    255.255.255.0
Enabled:        Yes
Global Configuration:
    minLeaseTime:     default
    defaultLeaseTime: default
    maxLeaseTime:     default
    Forced options:   None
    Suppressed opts.: None
        1/legacy: 255.255.255.0
Groups:               None
Individual Config:

2.- Necesitas también la dirección mac de la interfaz de tu VM

PS C:\Program Files\Oracle\VirtualBox> ./VBoxManage list vms
"accadev-ubuntu20.04" {2a98947e-4b8c-4bc3-9441-2b556d0b33a1}
"accadev-ansible01" {1d261714-9b49-47e2-a634-bc0677f5b707}

PS C:\Program Files\Oracle\VirtualBox> ./VBoxManage showvminfo accadev-ubuntu20.04 | Select-String -Pattern 'MAC'

NIC 1:                       MAC: 0800275452FB, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: 82543GC, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
NIC 2:                       MAC: 08002703E954, Attachment: Host-only Interface 'VirtualBox Host-Only Ethernet Adapter', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none

3.- Configurar Static Lease para esa MAC.

./VBoxManage dhcpserver modify --ifname "VirtualBox Host-Only Ethernet Adapter" --mac-address=08:00:27:f8:31:fa --fixed-address=192.168.56.20

4.- Reiniciar el servidor DHCP para aplicar cambios

./VBoxManage dhcpserver restart --ifname "VirtualBox Host-Only Ethernet Adapter"

Y eso es. Puede hacerlo no solo para redes de solo host sino para cualquier red Vbox con un servidor DHCP conectado

Referencia

Respuesta3

No necesita un software de servidor DHCP adicional, con la red NAT intnet, podemos configurar VirtualBox dhcpserver

VBoxManage dhcpserver add --netname intnet --ip 10.13.13.100 --netmask 255.255.255.0 --lowerip 10.13.13.101 --upperip 10.13.13.254 --enable

Copie la dirección MAC del invitado desde Configuración como se ve en la captura de pantalla

ingrese la descripción de la imagen aquí

Dentro de nuestro servidor dhcp, agreguemos una Individual Configsección

VBoxManage dhcpserver modify --netname intnet --mac-address=080027D23E28 --fixed-address=10.13.13.254

PD: Recuerdo que el servidor dhcp no pudo asignar la primera dirección IP del rango de nuestro subconjunto, luego probé la última IP y funcionó, desde entonces solo uso la última IP como estática.

Reinicie o inicie su VM invitada

En un invitado basado en Linux, puede verificar si DHCP asignó una IP, como desde la terminal

$ ip a

Si no ve una IP publicada, debe editar el archivo de configuración del adaptador, como

$ nano|vi /etc/sysconfig/network-scripts/ifcfg-[ethN|enp0sN]

Por lo general , agregar ONBOOT=yessoluciona este problema y, por supuesto, uno de los systemctl restart network systemctl restart network.servicereinicios shutdown -h now:)reboot now

información relacionada