VirtualBox sure is a great virtualization tool; not yet at the level of VMWare, but it’s getting very close, and esp. for basic day-to-day programming, when all you need is an “alien” test/development system, it’s a very adequate tool to use, and rivals VMWare’s performance quite nicely, and it’s free as in beer.
One thing it still lags a bit behind is the amount of settings you can access from GUI; it’s not as much trouble of quantity as of organization.
Here is what my goal was – couple of Ubuntu 9.10 server installations, that are on a “local” network, and can “see” each other. Yes, that’s it. The purpose is obvious – test “production” platform to see how it works and scales. The host platform was Ubuntu 9.10 desktop edition (yeah, I’m neck deep in Ubuntu ;)).
Just a side note – Ubuntu 9.10 server edition surprised me on many points, my next desktop installation will probably be Ubuntu server itself; the ease of setup, loads of options, and the tiny initial disk and memory footprint are just lovable. Plus it comes with all the little bells and whistles that make life so much easier in desktop edition, and make you file at home!
OK, 3 virtual machines set up, each with 2 network adapters – Adapter 1 (eth0) – being the local network – Internal Network, called intnet by default, leaving it as is, and Adapter 2 (eth1) – NAT to Internet.
Now, ifconfig… Hmm, no eth0. It’s down (ifconfig -a sees eth0). dhclient refuses to talk to me… I mean, host. eth1 works like a charm, I have net, DHCP works just fine automatically on the system start up.
So, I turn them all off, switch to Host-Only network on Adapter 1 on all machines, fire them up. ifconfig still does not show eth0. But yay, dhclient grabs an address!… Oh, stop, it’s the same address on all 3 machines! Something’s rotten here.
So, I return to Internal Network, and grab a VBoxManage manual.
To make all this work, you need to create DHCP server for the machines, and configure it (why it’s not done, no idea):
VBoxManage dhcpserver add --netname intnet --ip 192.168.59.1 \ --netmask 255.255.255.0 --lowerip 192.168.59.2 --upperip 192.168.59.255
Above, 192.168.59.1 is IP of the DHCP server itself, the rest is obvious. You don’t even need to feed this to dhclient via -s option, VBox redirects it to this server automatically.
Yeah, that’s all, but for some, not obvious to me, reason, this is not done by VBox itself. I didn’t even create new network, it was implicitly selected by VBox. After this, dhclient grabs an address right away, unique for each machine, and ping is in rank of 1ms. Neato!
To end this with a tiny rant – why it’s not automated, VBox, why?!
Otherwise, great work, VBox! 🙂