Edited at

virtual boxの仮想マシンがtagged VLANのネットワークに接続する方法

More than 5 years have passed since last update.

記憶をたよりに書いているので、間違っていたらごめんなさい。


モチベーション


  • 複数の仮想マシンを同じVLANに接続したい


    • 説明のために、VLAN100とする



  • 仮想マシンにはVLANを意識させたくない


    • 設定が面倒なので



  • NICは1枚


    • IEEE802.1Qのtagged VLANを活用する



  • ホストマシンにはVLAN100のIPアドレスを振りたくない


試した環境

ホストマシン: ubuntu 12.04.2 LTS 64bit

仮想マシン: ubuntu 12.04.2 LTS 64bit (vagrantの配布しているイメージを利用)


設定手順



  1. ホストマシンにtagged VLAN用パッケージを導入する

    sudo apt-get install vlan
    



  2. ホストマシンのVLANの設定をする

    # vlan用のモジュールを読み込む
    
    sudo modprobe 8021q
    # 再起動後にも有効になるようにする
    sudo vim /etc/modules
    ファイルの末尾に8021qと追記
    # vlanのインターフェスを追加
    # 例: eth0に対してVLAN id 100のタグをつけたパケットを流したいとき
    sudo vconfig add eth0 100



  3. 本当に追加されたかチェック

    # うまくいっていれば、eth0.100というインタフェースが見える
    
    ifconfig

    # もし見えていなければ、以下のコマンドを試してみる
    # sudo ifconfig eth0.100 up

    ここでVLAN id 100に対応するIPアドレスをeth0.100に割り当てる必要はない。




  4. 仮想マシンのネットワークを設定する

    Virtual Boxの仮想マシンの設定でeth0.100とのブリッジ接続のインタフェースを追加する
    
    # CLI から設定する場合はVBoxManage modifyvm コマンドを活用すると思われる



  5. 仮想マシンを立ち上げて、ネットワークにつながるか確認する

    仮想マシンにログインして、DHCPでよければDHCP、固定IPアドレスならIPアドレスを割り当てる。

    ubuntuのネットワークをCLIで設定する場合は /etc/network/interfaces を編集する。

    仮想マシン上でroute コマンドで、default gatewayが複数存在しないか確認する(仮想マシンに複数nicを設定している場合はよくはまる)。

    vagrantのページからダウンロードできるprecise64は、/etc/rc.d/rc.local でデフォルトゲートウェイの設定を行っているので、ここを修正する必要があるかも。




課題


  • ホストマシン再起動時にvlanのインタフェースが消えてしまうので、vconfig add, ifconfig up をもう一度やる必要がある

/etc/network/intefaces にeth0.100を構成する設定を追加すればよいという記述を見るが、うまくいかない。


そのほか


  • ほかの仮想化環境(vmplayer等)でも同じように設定できそう