記憶をたよりに書いているので、間違っていたらごめんなさい。
モチベーション
- 複数の仮想マシンを同じVLANに接続したい
- 説明のために、VLAN100とする
- 仮想マシンにはVLANを意識させたくない
- 設定が面倒なので
- NICは1枚
- IEEE802.1Qのtagged VLANを活用する
- ホストマシンにはVLAN100のIPアドレスを振りたくない
試した環境
ホストマシン: ubuntu 12.04.2 LTS 64bit
仮想マシン: ubuntu 12.04.2 LTS 64bit (vagrantの配布しているイメージを利用)
設定手順
-
ホストマシンにtagged VLAN用パッケージを導入する
sudo apt-get install vlan
-
ホストマシンのVLANの設定をする
# vlan用のモジュールを読み込む sudo modprobe 8021q # 再起動後にも有効になるようにする sudo vim /etc/modules ファイルの末尾に8021qと追記 # vlanのインターフェスを追加 # 例: eth0に対してVLAN id 100のタグをつけたパケットを流したいとき sudo vconfig add eth0 100
-
本当に追加されたかチェック
# うまくいっていれば、eth0.100というインタフェースが見える ifconfig # もし見えていなければ、以下のコマンドを試してみる # sudo ifconfig eth0.100 up
ここでVLAN id 100に対応するIPアドレスをeth0.100に割り当てる必要はない。
-
仮想マシンのネットワークを設定する
Virtual Boxの仮想マシンの設定でeth0.100とのブリッジ接続のインタフェースを追加する # CLI から設定する場合はVBoxManage modifyvm コマンドを活用すると思われる
-
仮想マシンを立ち上げて、ネットワークにつながるか確認する
仮想マシンにログインして、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等)でも同じように設定できそう