CentOS7 最小構成でNAT+HostOnly接続する方法【VirtualBox】


概略

VirtualBox5.1+CentOS7でNAT・HostOnly接続設定する手順です。
HostOnlyアダプタ経由でのSSH接続が上手くいかずかなり苦戦しました。
ポイントは次の3点です。

  • ゲストOSのルートテーブルにHostOnlyサブネットを追加する
  • ゲストOSのIPアドレスは固定IPで設定する(DHCPをつかわない)
  • ホスト側ネットワーク設定は既定

上述のようにDHCPを使わない方法としています。
注意深く設定すればDHCPでも上手く設定する方法があるかもしれませんが、本稿は固定IPによるHostOnly接続方法の紹介です。

ホストOS側設定(HostOnlyネットワーク設定)

ホスト側のHostOnlyネットワーク設定を確認します。

VirtualBox環境設定より、「ネットワーク」>「ホストオンリーネットワーク」の設定を確認します。
この例ではアダプター名:「VirtualBox Host-Only Ethernet Adapter #2

IPv4アドレス・ネットマスクを確認します。
この例では「IPv4アドレス:192.168.56.1」「IPv4ネットマスク:255.255.255.0

DHCPは使用しません。

ゲストマシン ネットワーク設定

アダプター1には「割り当て:NAT」を設定します

アダプター2をつぎのように設定します。

  • 「割り当て:ホストオンリーアダプター
  • 「名前:VirtualBox Host-Only Ethernet Adapter #2(前述)」
  • 「MACアドレス」…ゲストマシン側NICのMACアドレスです(ゲストOS側の設定で迷ったらここで設定したMACアドレスと一致していることを確認する)

ゲストOS側設定(nmtui)

Edit a connection」よりゲストOS側アダプタのIPアドレス設定をおこないます。

enp0s8」(HostOnlyアダプタ)を選んで「Enter」キーで指定アダプタの設定を開始します。
(参考:「enp0s3」はNATアダプタ)
(参考:日本語ロケールではアダプタ名が文字化けすることがある。その場合はMACアドレスを確認しアダプタを識別する)

以下のように設定する。

  • IPv4 CONFIGURATION:Manual (既定値はAutomaticなので変更する)
  • Addresses:192.168.56.101/24 (固定IPアドレスおよび末尾に「/24」を付加する)
  • Never use this network for default route:✔
  • Require IPv4 addressing for this connection:✔

重要:上記「/24」のようにサブネット範囲を付記することで当該サブネットを行き先とするパケットは本アダプタへルーティングされるようルートテーブル・エントリが自動で追加される)

以下のように設定する。

  • Automatically connect:✔
  • Available to all users:✔

ゲストOS NIC再接続

下記コマンドまたはNICの切断・再接続によってNIC設定の変更をシステムに反映させます。

# systemctl restart network

結果確認

「ip r」コマンドの結果(ルートテーブル)

# ip r

「192.168.56.0/24」サブネットに対する送信パケットはenp0s8アダプタへ送るようルートが追加されています。(3行目)

default via 10.0.2.2 dev enp0s3  proto static  metric 100
10.0.2.0/24 dev enp0s3  proto kernel  scope link  src 10.0.2.15  metric 100
192.168.56.0/24 dev enp0s8  proto kernel  scope link  src 192.168.56.101  metric 100

上記設定が確認できたら外部からゲストマシンへアクセス(ping, SSH)できることを確認します。