VirtualBox で,仮想マシンの仮想ネットワークインタフェースを,ホストOSにブリッジ接続

Oracle VM VirtualBox は,仮想マシンを実現するソフトウェアである.

仮想マシンのゲストOSへ外部から遠隔ログインできるようにするには, 仮想マシンの仮想ネットワークインタフェースをホストOSにブリッジ接続する設定が必要である.

目次

関連する外部ページ

VirtualBox の公式ページ: https://www.virtualbox.org/

ブリッジ接続とは

VirtualBox の初期設定では,ネットワーク接続方式としてNAT(Network Address Translation.ゲストOSのアドレスをホストOSのアドレスに変換して外部と通信する方式)が選択されている.NAT では,ゲストOSはホストOSを経由してネットワークに接続する.この場合,ゲストOSは外部ネットワークへアクセスできるが,外部からゲストOSへ直接アクセスすることはできない.

ブリッジ接続では,ゲストOSがホストOSと同じネットワークに直接接続される.ゲストOSは独立したIPアドレスを取得し,ネットワーク上の他のコンピュータと同等に扱われる.

ブリッジ接続のメリット

注意事項

VirtualBox の標準機能によるブリッジ接続

以下の手順は,VirtualBox の設定画面から行う標準的な方法である.ほとんどの場合,この方法で設定できる.

日本語版の場合

  1. 設定対象の仮想マシンを選択し,ネットワーク設定を開く
  2. 初期設定では NAT が選択されている
  3. 接続方式を「ブリッジアダプター」に変更する

英語版の場合

  1. 設定対象の仮想マシンを選択し,ネットワーク設定を開く
  2. 初期設定では NAT が選択されている
  3. 接続方式を「Bridged Adapter」に変更する

ホストOS側でブリッジを構成する場合(Ubuntu)

この方法は,ホストOS(Ubuntu)側でブリッジインタフェースを作成し,VirtualBox から利用する方法である.複数の仮想マシンで同一のブリッジを共有する場合や,ネットワーク構成を細かく制御したい場合に有用である.

現在の Ubuntu(18.04 以降)では,ネットワーク設定は Netplan で行う.Netplan は,YAML 形式の設定ファイルに記述した内容を反映させる仕組みである(旧来の /etc/network/interfaces による設定と,bridge-utils パッケージは現在のUbuntuのサーバOSでは標準ではない).以下では Netplan によるブリッジ構成を示す.

前提条件:この手順は,Linuxのネットワーク設定に関する基本的な知識を必要とする.

  1. ホストOSでブリッジを設定する

    /etc/netplan/ に設定ファイル(例:01-bridge.yaml)を作成し,以下のように記述する(eth0 を実際の物理インタフェース名に,IPアドレス等を環境に合わせて変更すること):

    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: false
      bridges:
        br0:
          interfaces:
            - eth0
          addresses:
            - 192.168.1.100/24
          routes:
            - to: default
              via: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]
          parameters:
            stp: false
            forward-delay: 0
    

    設定後,次のコマンドで設定を反映させる:

    sudo netplan apply
    

    設定の確認は以下のコマンドで行う:

    ip addr show br0
    

    br0 インタフェースが表示され,指定したIPアドレスが割り当てられていれば設定は成功である.

  2. VirtualBox でネットワークインタフェースを設定する

    VirtualBox を起動し,対象の仮想マシンのネットワーク設定で,「ブリッジアダプター」を選択し,接続先を手順1で作成した br0 に変更する.

  3. ゲストOS側でファイアウォールを設定する

    ゲストOSのファイアウォール設定で,必要なポートを開放する.SSH接続を行う場合は22番ポートを開放する.

  4. 動作確認を行う

    ホストからゲストへSSH接続を試行し,設定が正しく機能していることを確認する.