Network advice for virtual infrastructure
Apologies in advance for the long post, but I thought I'd put it all in one post as it all ties back to my overall infrastructure/network goals.
If what I am asking is far too broad for one post, please let me know if I should split these questions up into individual threads.
I am currently working on configuring a bunch of Linux based virtual machines for the following purposes:
- A mobile, virtual infrastructure running any services that are needed/wanted from time to time, all running within virtual guests on a laptop host initially, but any parts of which can later be ported to other hardware. For instance, once configured correctly, one or more virtual server could be ported onto other managed hardware and made available externally.
- Automated installation and configuration of this internal network and any of my physical machines that interact with it (have been reading about and/or setting up tools like fai, cfengine, puppet, etc. on a Debian guest).
- Run services securely on an internal network for learning/business purposes (eg wiki, media), with some services made available externally (web, collaboration server/services, media server).
To achieve this, I am working with the following:
- 2 laptops.
- Currently using Virtualbox for virtualization.
- Configured to acquire IP address by DHCP.
- Host #1:
- Currently running Windows XP (32-bit).
- Ultimately migrate base OS over to 64-bit Linux running as a virtual host (likely run Debian as the host OS, which I am currently learning using Virtualbox guests).
- 2 nics - 1 ethernet, 1 wlan.
- Host #2:
- Currently running Debian Squeeze (32-bit).
- 1 working wlan nic only (integrated ethernet faulty).
- Virtual Linux guests running on laptop host #1.
- Run 1 or more virtual servers (www, mail, nfs, svn).
- Run 1 or more virtual client/workstation guests (business, development, testing, different OS's, etc.).
- All virtual machines must have at least one static IP so their installation/configuration can be automated off virtual install/config server.
- All VMs can have 1 or more nics.
The general idea is to use the laptops solely as secure virtual hosts giving access to self-contained virtual guests offering different functionality/services. The virtual machines can then be ported to any hardware of my choice and in any location. For example, VMs could be transferred between laptops or onto a managed server in a different location.
To keep things simple in the early stages, I am aiming to set up:
- one test virtual server running a whole bunch of services (Debian Squeeze), and
- 2 test virtual clients (Debian Squeeze, Ubuntu).
The main issue is that I am in the early stages of learning how to do all this, and am particularly confused about how I could/should configure the networking .
At this stage, I am really looking for general ideas/suggestions/problems/obstacles given what I am trying to do. For example, could/should I:
- Create separate subdomains for the virtual servers and virtual clients?
- Maintain a /etc/hosts file centrally with automated distribution to all hosts using something like cfengine, or use something like BIND to configure a couple of nameservers?
- Run the laptops as nameservers for the virtual guests?
- Treat each laptop host as a DMZ and the virtual nodes as an internal network?
- Have all internet traffic pass through to the virtual guests via a virtual firewall/gateway/nat router?
- Configure the host laptops and/or virtual guests with 2 nics each - 1 dhcp for internet access, and 1 static for connecting to the install/config server and any internal network?
What other considerations should I be thinking about? What would be the best way to deal with name resolution? If setting up nameservers, is it possible to configure it for the sole purpose of resolving IPs/hostnames on an internal network? Can a private/fictitious domain name be used with any internal network, or must any domain name used be registered even if only used to resolve for the 192.168.1/24 namespace?
Thanks in advance.