Estoy usando VirtualBox 5.2.18 en Ubuntu Server 18.04. Tengo varias máquinas invitadas VirtualBox que comparten una red NAT intnet
. Actualmente, intnet
tiene 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-server
paquete. 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:cd
un contrato de arrendamiento definido explícitamente (así como cualquier otro option
como un servidor DNS para usar, puerta de enlace, etc.) para la .110
IP. 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
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
Dentro de nuestro servidor dhcp, agreguemos una Individual Config
secció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=yes
soluciona este problema y, por supuesto, uno de los systemctl restart network
systemctl restart network.service
reinicios shutdown -h now
:)reboot now