Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to self-learn the following topics on Linux (preferably Fedora):

  1. Network programming (using sockets API), especially across proxies and firewalls

  2. Proxies (of various kinds like transparent, http, socks...),

  3. Firewalls (iptables) and 'basic' Linux security


  5. Network admininstration power tools: nc, socat (with all its options), ssh, openssl, etc

  6. etc.

Now, I know that, ideally, it would be best if I had 'enough' number of physical nodes and physical network equipment (routers, switches, etc) for this self-learning exercise. But, obviously, don't have the budget or the physical space, nor want to be wasteful -- especially, when things could perhaps be simulated/emulated in a Linux environment.

I have got one personal workstation, which is a single-homed Fedora desktop with 4GB memory, 200+ GB disk, and a 4-core CPU. I may be able to get 3 to 4 additional low-end Fedora workstations. But all of these -- including mine -- will always remain strictly behind our corporate firewall :-(

Now, I know I could use VirtualBox-based virtual nodes, but don't know if there are any better alternatives disk- and memory- footprint-wise.

Would you be able to give me some tips or suggestions on how to get started setting up this little budget- and space-constrained 'virtual lab' of mine? For example, how would I create virtual routers?

Has someone attempted this sort of thing before: namely, creating a virtual network lab behind a corporate firewall for learning/development/testing purposes?

I hope my question is not vague or too open-ended. Basically, right now, I don't know how to best leverage the Linux environment and the various 'goodies' it comes with, and buying physical devices only when it is absolutely necessary.

share|improve this question

closed as not constructive by EBGreen, Ƭᴇcʜιᴇ007, Synetech, Nifle, Spiff Sep 6 '12 at 17:53

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Tons of people build test labs all the time. What have you tried already, and what actual problem are you running into? IMO, as-is this question is too vague. – Ƭᴇcʜιᴇ007 Sep 5 '12 at 15:11
I know how to setup a VirtualBox node that uses NAT to share Internet with the host OS. But don't know how to create routers, for example. Are there any special Linux distributions that are more conducive to this exercise size/footprint-wise? I don't know, what is the minimal OS and packages I need to have to each virtual node instance. Having a minimal functional image would allow me to have more virtual nodes on a single physical node. Learning this by trial-and-error would be very tedious, which is why I asked. – Harry Sep 5 '12 at 15:24
up vote 0 down vote accepted

@techie007 kind of answered part of my question -- that "tons of people" are building such virtual labs "all the time."

Regarding special Linux distributions, I think Fedora 17 GUI installer comes with a 'Minimal' installation choice. Having installed Minimal, I additionally installed the following:

yum install man vim less openssh-clients openssh-server nc socat tcpdump ssldump wget curl

I'm able to specify merely 128M RAM for this VM; the disk usage with all of the above installed comes ~800M. When I actually run this VirtualBox VM, I see it taking ~200M RAM. Meaning, slightly more than the 128M specified -- Overhead of some sort...? maybe.

But the above footprint is enough to get me started enthusiastically. For sake of completeness, I'll return later to update information about setting up routers, etc.

share|improve this answer
Any updates. I am also trying to follow the same testing pattern. – Ibn Saeed Jun 16 '14 at 5:11

Not the answer you're looking for? Browse other questions tagged or ask your own question.