LoginSignup
38
40

More than 5 years have passed since last update.

vagrantでVirtualboxを使っている場合にnicを追加するときの話

Last updated at Posted at 2014-03-11

前置き:vagrantのネットワーク話

vagrantが相手をするproviderに依存せずnicの追加をする場合、たぶんこんな風に書いていると思います

Vagrant.configure("2") do |config|
  config.vm.network "private_network", ip: "192.168.50.4"
end

PRIVATE NETWORKS

上記の場合、virtualboxは、「ホストオンリーネットワーク」の中で「192.168.50.1」が設定されているvboxnetを探して接続します。
該当するネットワークアドレスを持つvboxnetが無い場合には、新規にホストオンリーネットワークを作成します。

油断すると、ホストオンリーネットワークが大量に作成されていると思います。

しかし、こいつ、名前の通り外に出れません。
また、デフォルトでは、VM間の通信も出来ません(拒否設定)

本題:NICの追加

vagrantで作成したVMにNICを追加する一般的なやり方は上記です。
しかし、これだと追加したネットワークは外部とやりとりできません。
通常は特に問題ないと思いますが、例えばNested VMなどをする場合に外部通信できるネットワークを追加したくなる場合が稀にあります。

vagrantの基本の書き方では、上記のprivate_networkするか、もうひとつのpublic_networkという書き方があります。
しかし、public_networkはホストのマシンのNICにbridgeするだけなので、あまり嬉しくない場合もあります。

そこで、virtualboxのネットワーク機構を直にいじる方法です。
事前にNATネットワークを作っておくと良いです。

NICを追加して、virtualboxのNatnetworkに接続し、VM間通信も許可する設定

ということで、こんな感じ

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.provider :virtualbox do |vb|
     vb.customize ["modifyvm", :id, "--nic2","natnetwork"]
     vb.customize ["modifyvm", :id, "--nictype2","82540EM"]
     vb.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]                  
  end
end

nicXという書き方で、アダプタを外部から操作します
上記を実行するとこんな感じ
nic.png

nic1は、もともと付いているnicでこいつをいじってしまうと、vagrantコマンドと通勤できなくなります。

他にもいろいろできると思います。このあたりの設定とにらめっこすれば・・・

virtualboxのネットワークの話は、以下の記事が参考になりました。

VirtualBox ネットワーク設定
http://iwsttty.hatenablog.com/entry/2013/12/08/194430

38
40
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
40