0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VirtualBoxで特定のゲストに指定のIPアドレスを割り当てる

Last updated at Posted at 2024-12-29

はじめに

VirtualBoxの内臓DHCPサーバーを使って、VM名またはMACアドレスを指定して払い出すIPアドレスを指定することができる。

  • アダプタの種類は「ホストオンリーアダプター」
  • Vagrantを使わず自動化する時に役立つかもしれない。GuestAdditionsも不要。
  • MACアドレスとVM名(UUID)がセットで記録されるため、汎用性があるかは謎。

環境

  • VirtualBox 7.1.4
  • ホストOSはWindowsとおそらくLinuxのみ、macOSは不可
  • ゲストOSはDHCPが有効であればなんでもOK

設定方法

dhcpserverサブコマンドにfixed-addressを指定する。

# 指定のIPアドレスを割り当てる
VBoxManage dhcpserver modify --network "(アダプタ名)" --vm=(VM) --fixed-address=(設定したいIPアドレス)

--fixed-address=address
Fixed address assignment for a --vm or --mac-address configuration scope. Any empty address turns it back to dynamic address assignment.
VBoxManage dhcpserver

Pasted image 20241228175950.png

次のファイルに設定が反映される。

(UserHome)/.VirtualBox/VirtualBox.xml
(UserHome)/.VirtualBox/(アダプタ名).config

解除したい場合はfixed-addressを空にして実行する。

トラブルシューティング

仮想マシンが起動しなくなった

Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND).

ホストオンリーアダプタのプロパティを開いて「VirtualBox NDIS6 Bridged Networking Driver」をオフにしてアダプタを無効->オンにしてアダプタを有効にしたら直った。
Pasted image 20241228184118.png

参考)
VirtualBox で Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter' が出た時の対処 #VirtualBox - Qiita

指定したIPが割り当てられない

fixed-addressを設定する前に、既に一度IPが割り当てられているのかもしれない。
(UserHome)/.VirtualBox/(アダプタ名)-Dhcpd.leasesを確認してIPが割り当てられていたら、該当箇所(Lease mac=~)を削除してdhcpサーバーを再起動する。

# DHCPサーバーを再起動する
VBoxManager dhcpserver restart --network "(アダプタ名)"

(参考:アダプタ名を調べる方法)

VBoxManager list dhcpservers

やりたかった本当のこと

事の始まり

「Apple SiliconなMacで手軽にVirtualBoxの仮想マシンを作っては壊しをしたい。」
-> とりあえず、Vagrantを使いたい。

2024年9月にVirtualBoxがAppleSiliconに対応したVirtualBox7.1をリリース、2024年11月にVagrantがVirtualBox7.1に対応したが1、まだboxが全然無い。VirtualBoxがVMイメージをエクスポートできない影響なのかもしれない。23

せめてIPだけでもホスト側から操作して、SSHで接続さえできれば・・・
->どうやらVirtualBoxのDHCPを操作して指定のIPを配布できるらしい。

結論

(おそらく)「ホストオンリーアダプタ」でしか使用できない機能らしい4。最近のmacOSは「ホストオンリーアダプタ」をサポートしていないため実現できなかった。「ホストオンリーアダプタ」は互換性のためだけに残っているだけで利用できないとのこと。

Hosts running recent macOS versions do not support host-only adapters.

On macOS hosts, choose the Host-Only Network option when configuring a network adapter. The Host-Only Adapter option is provided for legacy support.

Virtual Networking

「ホストオンリーアダプタ」と「ホストオンリーネットワーク」

「ホスト<->ゲスト」や「ゲスト間」の通信可否は同じなので、使う分には違いを意識することはないのかもしれない。

ホストオンリーアダプタ ホストオンリーネットワーク
ホスト<->ゲスト 可能 可能
ゲスト<->ゲスト 可能 可能
DHCPサーバー オフにできる オフにできない
DHCPサーバーIP ホストと別 ホストと同じ
設定コマンド dhcpserver
hostonlyif
hostonlynet

「ホストオンリーネットワーク」のDHCPサーバーに指定のIPを配布する設定が調べた限り無さそう。
VBoxManage hostonlynet

GUI側もWindows版と異なり、DHCPサーバーという項目自体がない。
Pasted image 20241228195629.png

macOSのCLIからDHCPサーバー一覧を見ることはでき、Windows版と同じ設定がされてはいることが確認できる。(特にどこかに反映されるわけではない模様。)
Pasted image 20241228194917.png

おわりに

VMwareが無償になったので、Vagrant + VMwareを使うのが一番簡単なのかもしれない。

  1. vagrant/CHANGELOG.md at v2.4.3 · hashicorp/vagrant > provider/virtualbox: Add support for VirtualBox 7.1 [GH-13513]

  2. Box CentOS9 for VirtualBox with ARM architecture · Issue #1582 · chef/bento

  3. ちなみにエクスポートしようとすると、メモリリークするらしくクラッシュする(した。)

  4. 逆にWindowsは「ホストオンリーネットワーク」が無い。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?