ゲストにアクセスせずに NAT ネットワークを使用して VirtualBox ゲストに静的 IP アドレスを割り当てる

ゲストにアクセスせずに NAT ネットワークを使用して VirtualBox ゲストに静的 IP アドレスを割り当てる

Ubuntu Server 18.04 で VirtualBox 5.2.18 を使用しています。NAT ネットワークを共有する VirtualBox ゲスト マシンが複数ありますintnet。現在、intnetゲストに動的 IP を自動的に割り当てる DHCP サーバー (VirtualBox によってセットアップ) があります。これは問題なく動作しますが、DHCP サーバーがネットワーク インターフェイスの MAC アドレスに基づいて特定のゲストに静的 IP を割り当てるようにしたいと思います。静的 IP はゲスト内で設定できますが、時間がかかり、ゲスト OS に依存します。VirtualBox でゲストに静的 IP を割り当てる方法はありますか?

VirtualBox のインストール フォルダには、 という実行可能ファイルがありますVBoxNetDHCP。 の出力から判断するとVBoxNetDHCP、MAC アドレスによる静的 IP 割り当てが可能になるようです。ただし、これを動作させることはできず、それに関するドキュメントは事実上存在しません。

答え1

fake.tld通常、このようなことを行うときは (頻繁に行います)、DHCP、DNS (世界向けのキャッシュとローカルでのスプーフィングの両方) などを実行するネットワーク サーバーとして機能する VM を使用する傾向があります。

最も簡単な方法は、ネットインストール イメージを使用して Debian の基本的なベア インストールを実行することです。SSH サーバー オプションと「標準ユーティリティ」以外のパッケージ グループは選択しません。

起動したら、内部VMネットワークのDHCPサーバーにするためにパッケージをインストールしますisc-dhcp-server。次に編集します。/etc/dhcp/dhcpd.conf

ここに私の簡単な例を示します。これは、短いリース時間 (5 分) を設定し、クライアントの検索ドメインなどを "fake.tld" に設定し、DNS クエリを 192.168.1.2 に向け、24 ビットのネットマスクを使用して 10.99.98.80-100 の範囲のアドレスを配布します。これを実行する VM には、10.99.98.0/24 サブネット内の IP で構成されたアダプタが必要であることに注意してください。

一般的なプールに加えて、 IP 用に80:c1:6e:2b:b6:cd明示的に定義されたリースの MAC アドレス (およびoption使用する DNS サーバー、ゲートウェイなど) をデバイスに提供します.110。このような「静的リース」は、動的範囲の外側にあるアドレスである必要がありますが、構成ファイルとサービスをホストするマシンのネットワーク アダプターの両方で構成されたサブネット内にある必要があります。

新しいホストを追加し、特定のIPを割り当てたい場合は、別のホストスタンザを追加するだけです。ホスト名はクライアントが送信したものと一致する必要はありませんが、ファイル内で一意である必要があります。追加したら、サービスを再起動します。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;
}

答え2

これは内部 VBOX DHCP サーバーで実行できます。

1.- 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.- VMのインターフェースのMACアドレスも必要です

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.- その 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.- 変更を適用するにはDHCPサーバーを再起動します

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

以上です。ホストのみのネットワークだけでなく、DHCPサーバーが接続されたVboxネットワークでも実行できます。

参照

答え3

追加のDHCPサーバーソフトウェアは必要ありません。NATネットワークがあればintnet、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

スクリーンショットに示すように、設定からゲストのMACアドレスをコピーします。

ここに画像の説明を入力してください

dhcpserver内にIndividual Configセクションを追加しましょう

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

PS: dhcpserver がサブセットの範囲の最初の IP アドレスの割り当てに失敗したことを覚えています。その後、最後の IP を試してみたところうまくいきました。それ以来、最後の IP のみを静的に使用しています。

ゲストVMを再起動または起動する

Linuxベースのゲストでは、ターミナルなどからDHCPがIPを割り当てたかどうかを確認できます。

$ ip a

IPが解放されていない場合は、アダプタの設定ファイルを編集する必要があります。

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

通常、この問題は追加すると修正ONBOOT=yesされますが、もちろん再起動も必要systemctl restart network systemctl restart network.serviceですshutdown -h now:)reboot now

関連情報