彷徨えるフジワラ

年がら年中さまよってます

VirtualBox の OpenSolaris ゲストネットワーク設定手順(自分用)

VirtualBox 上で (Open)Solaris ゲストを稼動させる際に、以前は外部接続用の NAT 構成インタフェースも手動設定していたけど、どう考えてもこれは DHCP 管理の方が楽に決まっている。

というわけで、新規の Windows ホスト上で、新規の OpenSolaris ゲストを構築するに当たっては、以下の方針で設定を行うことに。

  1. NAT 構成用インタフェースは、外部接続用途で使用。設定は DHCP で実施。
  2. Host-only 構成用インタフェースは、ゲスト間連携(NFS や CIFS による共有等)や、ホストとの接続(ssh 等)で使用。設定は手動で実施。

とりあえず、インストール直後で、NAT 構成用インタフェースが NetWork Auto Magic(nwam) で自動構成されている OpenSolaris ゲストに対して、Host-only 構成用インタフェースを追加して再起動した状況からの手順を、備忘録代わりに残しておく。

共通設定

複数インタフェース管理が出来ない physical:nwam サービスを停止して、構成情報を手動で記述するための physical:default サービスを有効にする。

$ svcadm disable physical:nwam
$ svcadm enable physical:default

NAT 構成用インタフェースの設定

特定のインタフェースを DHCP 運用する場合、とりあえずは空の /etc/dhcp.IFNAME ファイルを作成する必要がある。IFNAME 部分は「インタフェース名」で、例えば今回の例では "e1000g0" となる。

$ echo > /etc/dhcp.e1000g0

それから、インタフェースをアクティブにするための設定として、空の /etc/hostname.e1000g0 ファイルを作成する必要がある。

$ echo > /etc/hostname.e1000g0

DHCP 管理対象の検出は /etc/dhcp.xxxx ファイルの有無で行われるが、/etc/hostname.xxxx ファイルが無いとインタフェースそのものが plumb/up されないので注意が必要。

内部ネットワーク構成用インタフェースの設定

Host-only ネットワーク(e1000g1)に関しては、以下のような内容のファイル /etc/hostname.e1000g1 を作成する。

$ echo '192.168.56.2 netmask 255.255.255.0' > /etc/hostname.e1000g1

ゲスト側アドレス(ここでは 192.168.56.2)を決定する際には、VirtualBox 管理 GUI の「ファイル」→「環境設定」→「ネットワーク」→「VirtualBox Host-Only Ethernet Adapter」→「編集」を辿って、Host-Only アダプタ用の固有ネットワーク設定を元に、同じネットワークのものを割り当てる必要がある。

ホスト実装次第なのかもしれないけれど、以前 OpenSolaris ホストで、ホスト/ゲスト両方のインタフェースに別のアドレスを手動で割り当てた際には、全く通信が出来なかったので、多分内部的な loopback 処理において、設定情報を基にした処理が行われているものと思われる。

ホスト→ゲスト接続の際はアドレス固定で繋ぐに決まっているので、設定画面を開いたついでと言っては何だけど、Host-only 向けの DHCP サーバ機能は切っておいた方が無難かも。

ゲスト側でもう一手間。

192.168.56.0/24 関連のホスト名解決の際に、外部 DNS への問い合わせが飛ばないように、/etc/inet/hosts へのエントリ追加を行っておく。

$ echo '192.168.56.1 vm-host' >> /etc/inet/hosts
$ echo '192.168.56.2 vm-opensolaris' >> /etc/inet/hosts

/etc/inet/networks に関しては、設定してもイマイチ役に立たないケースがあるので、とりあえず無視しても良いかな?