Weisen Sie einem VirtualBox-Gast mit einem NAT-Netzwerk eine statische IP-Adresse zu, ohne auf den Gast zuzugreifen

Weisen Sie einem VirtualBox-Gast mit einem NAT-Netzwerk eine statische IP-Adresse zu, ohne auf den Gast zuzugreifen

Ich verwende VirtualBox 5.2.18 auf Ubuntu Server 18.04. Ich habe mehrere VirtualBox-Gastmaschinen, die sich ein NAT-Netzwerk teilen intnet. Derzeit intnetgibt es einen DHCP-Server (eingerichtet von VirtualBox), der den Gästen automatisch dynamische IPs zuweist. Das funktioniert gut, aber ich möchte, dass der DHCP-Server bestimmten Gästen statische IPs basierend auf der MAC-Adresse ihrer Netzwerkschnittstelle zuweist. Statische IPs können innerhalb der Gäste festgelegt werden, aber das braucht Zeit und ist vom Gastbetriebssystem abhängig. Gibt es in VirtualBox eine Möglichkeit, den Gästen statische IPs zuzuweisen?

Im Installationsordner von VirtualBox befindet sich eine ausführbare Datei namens VBoxNetDHCP. Der Ausgabe von nach zu urteilen VBoxNetDHCP, scheint sie eine statische IP-Zuweisung per MAC-Adresse zu ermöglichen. Ich bekomme sie jedoch nicht zum Laufen und es gibt praktisch keine Dokumentation dazu.

Antwort1

Wenn ich solche Dinge mache (und ich mache sie oft), verwende ich normalerweise eine VM, die als Netzwerkserver fungiert und Dinge wie DHCP, DNS (sowohl Caching für die Welt als auch lokales Spoofing fake.tld) usw. erledigt.

Am einfachsten geht das, indem Sie eine grundlegende, nackte Installation von Debian über das Netinstall-Image durchführen. Wählen Sie dazu keine der Paketgruppen außer der SSH-Serveroption und eventuell „Standard-Dienstprogramme“ aus.

Sobald es läuft, installieren Sie das isc-dhcp-serverPaket, um es in einen DHCP-Server für Ihr internes VM-Netzwerk umzuwandeln. Bearbeiten Sie dann/etc/dhcp/dhcpd.conf

Hier ist ein einfaches Beispiel von mir. Dies legt eine kurze Leasingzeit (5 Minuten) fest, setzt die Client-Suchdomäne usw. auf „fake.tld“, richtet ihre DNS-Abfragen auf 192.168.1.2 und gibt Adressen im Bereich von 10.99.98.80-100 mit 24 Bit Netzmaske aus. Beachten Sie, dass die VM, die dies tut, einen Adapter haben muss, der mit einer IP innerhalb des Subnetzes 10.99.98.0/24 konfiguriert ist.

Zusätzlich zum allgemeinen Pool gebe ich dem Gerät mit der MAC-Adresse 80:c1:6e:2b:b6:cdeine explizit definierte Lease (sowie alle anderen optionwie einen zu verwendenden DNS-Server, Gateway usw.) für die .110IP. Solche „statischen Leases“ müssen für Adressen AUSSERHALB Ihres dynamischen Bereichs gelten, aber innerhalb des Subnetzes, das sowohl in der Konfigurationsdatei als auch auf dem Netzwerkadapter des Computers, der den Dienst hostet, konfiguriert ist.

Wenn Sie einen neuen Host hinzufügen und möchten, dass dieser eine bestimmte IP hat, fügen Sie einfach eine weitere Host-Strophe hinzu - der Hostname muss nicht mit dem übereinstimmen, was der Client sendet, aber er muss in der Datei eindeutig sein. Nachdem Sie ihn hinzugefügt haben, starten Sie den Dienst neu.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;
}

Antwort2

Dies kann im internen VBOX-DHCP-Server erfolgen:

1.- Finden Sie den Netzwerknamen für den DHCP-Server:

./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.- Sie benötigen auch die Mac-Adresse der Schnittstelle Ihrer 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.- Richten Sie eine statische Lease für diese MAC ein.

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

4.- Starten Sie den DHCP-Server neu, um die Änderungen zu übernehmen

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

Und das ist es. Sie können dies nicht nur für Host-Only-Netzwerke tun, sondern für jedes Vbox-Netzwerk mit angeschlossenem DHCP-Server.

Referenz

Antwort3

Sie benötigen keine zusätzliche DHCP-Serversoftware. Mit NAT Network intnetkönnen wir einen VirtualBox-DHCP-Server einrichten.

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

Kopieren Sie die MAC-Adresse des Gastes aus den Einstellungen, wie im Screenshot zu sehen

Bildbeschreibung hier eingeben

Fügen wir in unserem DHCP-Server einen Individual ConfigAbschnitt hinzu

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

PS: Ich erinnere mich, dass der DHCP-Server die erste IP-Adresse des Bereichs unserer Teilmenge nicht zuweisen konnte. Dann habe ich es mit der letzten IP versucht und es hat funktioniert. Seitdem verwende ich nur noch die letzte IP als statisch.

Starten Sie Ihre Gast-VM neu oder starten Sie sie

Auf einem Linux-basierten Gast können Sie überprüfen, ob DHCP eine IP zugewiesen hat, beispielsweise vom Terminal

$ ip a

Wenn Sie keine freigegebene IP sehen, müssen Sie die Adapterkonfigurationsdatei bearbeiten, z. B.

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

Normalerweise ONBOOT=yesbehebt das Hinzufügen dieses Problem und natürlich einer der Neustarts systemctl restart network systemctl restart network.service, shutdown -h now, reboot now:)

verwandte Informationen