Sizing your computer for GNS3 (and other network labs)
![thumbnail for this post](https://dosztal.com/blog/gns3-sizing/cover.png)
After getting familiar with GNS3 on an average PC, people typically realize the virtual network devices eat up their computer’s resources and an upgrade is unavoidable. This immediately leads to the question: what should I buy that is able to run my projects in the next few years and doesn’t cost a fortune?
We’ll go through the available options in this post.
The three pillars
When it comes to choosing your gear, you have to balance between three pillars:
- performance
- mobility
- price; except for our lucky “money doesn’t matter” colleagues :)
No matter which product(s) you choose, you’ll always have to make a balance between these.
Your requirements
The most crucial part in the process is defining your requirements. You can easily decide whether you need to carry your lab machine around and the money you’re willing to spend on it; but finding the right amount of CPU cores and RAM might be challenging.
My suggestion: Grab a sheet of paper, draw a typical topology you’re usually working on, add a few nodes for buffer, then calculate the computing requirements based on these numbers. To help you, I put together this calculator:
It contains all VM-based appliances available in GNS3. Grab a copy of this spreadsheet, enter the instance numbers for the node types you’re planning to run, and check the “Total” line.
What about containers?
Unfortunately containers don’t have fixed memory requirements; depending on the applications they can scale from a few MBs to GBs. Hence I can only give you the general tips: record the memory usage of your container in an average situation and add it to the rest of your calculation (with some buffer of course).
Options
Now that you know your limitations and requirements, it’s time too look at the available options. Here are some of them:
- All-round PCs: These device usually have 2-4 cores (Pentium, i3, maybe i5 CPUs) and 2-8 GB RAM.
- Laptops: The specs are similar to the all-round desktops but you can carry them around (obviously).
- Workstations: Today’s 1-2 sockets workstations, offering Xeon CPUs and sometimes up to 256 GB RAM, can run even the most complex labs. Their only drawback is the price tag; you definitely won’t like that. If you’re purchasing it for network labs only, you can skip the high performance GPUs to lower your bill. If you don’t need more than 128 GB RAM, you can choose a high-end gaming desktop (with i7/9 CPU) instead of a “real” workstation; at least you can play and work on the same computer. 😄
- Mobile workstations: They have better specs than a notebook but of course they don’t reach the performance of the desktop version. 1 CPU socket and usually a maximum of 64 GB RAM what they offer. Just like with the towers, don’t order a high-perf GPU is you’ll be running network labs only. TechRadar gives a nice overview of them.
- Servers: Obviously, I’m not talking about micro-servers with Atom CPUs here. A DL380 with 1-2 Xeon CPUs and up to hundreds of GBs of RAM can run multiple labs at the same time.
No matter what you choose, you should equip it with SSD; their prices have dropped and their performance Placing them on the previous Christmas tree looks like this:
![Options on the price-mobility-cost triangle](triangle2.png)
The +1 option
It’s 2017 and you’re still running your workload locally? Place your labs in the cloud! There’s one catch though: you need to choose a provider offering x86 bare-metal servers so OTC, AWS, Azure, and Google Cloud Platform are out of scope here. Who else you can choose? Here are two players:
- Packet: Well tested with GNS3, they even offer $25 in credit, and a special 30% discount on committed monthly usage when signing up.
- Scaleway: They offer very competitive prices for bare-metal hosting with SSD disks and you can deploy your own images too.
- AWS: They also offer bare metal instances (m5.metal, m5d.metal, r5.metal, r5d.metal, and z1d.metal) billed the same way as their VMs.
Example scenarios
Although I can’t describe every use case, I collected the usual ones here. If you have a setup that works fine please share your specs and a usual topology/scenario in this thread on the GNS3 forums.
GNS3 labs
You can download pre-configured labs from the GNS3 Marketplace. An average lab is made of 4-5 Dynamips/IOU nodes (+ some VPC hosts with very low memory usage), which means they can run on low-end desktops with a Pentium processor and 2GB RAM.
There are some advanced labs with 7-8 nodes too but, since they’re using Dynamips, their memory footprint is also low. You can work them with the above mentioned specs too.
CCNA R&S preparation
A typical CCNA lab uses around 5 routers and 4 switches. If you’re using the IOSv and IOSvL2 images and all these nodes are running, you’ll need 3 CPU cores and 5,632 MB (5x512 MB + 4x768 MB) of RAM to run your lab. Desktop computers and laptops can offer these resources without buying expensive hardware (e.g. gaming motherboards).
However if you have an old or a low-end box, the previous requirements can be way over your limits. In this case you can try IOU; you won’t be able to use all features that IOSv offers but the whole lab can fit in 2,304 MB.
CCIE SP lab
This is the other end of the scale. If you want to follow INE’s topology, you’ll need 5x XRv and 20 CSR1000v routers and a virtual switch. These devices will eat up 9 CPU cores and 77,668 MB RAM; welcome to the world of workstations (and high-end gaming PCs) and servers.
Fortinet NSE8
The NSE8 Certification Handbook lists the following devices used in the lab (I marked the products unavailable in GNS3 with red):
- FortiGate6.2.x +
- FortiAnalyzer6.2.x +
- FortiAuthenticator6.0.x +
- FortiManager6.2.x +
- FortiSandbox3.1.xxxFortiADC5.4.x +
- FortiWeb6.3.x +
- FortiMail6.2.x +
- FortiDDoS5.3.x +
- FortiAP6.2.x +
- FortiSwitch6.2.x +
- FortiSIEM5.2.x +
- FortiClient6.2.x +
Although the handbook doesn’t provide the exact number of devices, I assumed we have a fully redundant topology with 2 instances of every Fortinet product. In this case, the lab requires 9 CPU cores and 20-22 GB RAM (depending on the amount of memory you allocate for the servers). Workstations, mobile workstations, and servers are highly welcomed here.
Developing network automation
The wide range of products and their requirement makes it impossible to give a rule of thumb for these devices. Instead of calculating the exact CPU cores and memory usage, let’s focus on how a typical dev lab should look like. It usually has:
- a control node;
- optionally (an) orchestration system(s);
- a clos fabric made of at least 2 spines and 2 leafs (times 2 if you’re designing a DR setup);
- a few hosts to generate traffic, simulate host mobility, etc;
- a pair of firewalls and/or load balancers if you want to test L4/L7 service integration;
- optionally one or two border devices that connect your standardized environment to the rest of the world, plus their peers for receiving route advertisements.
I can only suggest what I already did in the “Your requirements” section: sketch your setup on a napkin, calculate the necessary amount of CPU cores and RAM, keep in mind your other requirements (mobility, availability, etc.), then choose a solution that can fit into your budget.
Some other scenarios
Here’s a non exhaustive list of a few other scenarios:
- If your employer has an ESXi server cluster, ask for a few slices for the GNS3 VM and run your labs remotely there. This way only the GUI will use a small portion of your desktop PC’s resources. Furthermore if you have remote access VPN to your corporate network, you can do your labs on your laptop from anywhere; just make sure you have enough bandwidth and the latency is not too high.
- Are you a student with low budget and lots of friends? Team up in your dorm: run the GUI on one desktop/laptop and create remote servers on the others! Not only the summarized computing power but the shared knowledge will help you achieving your goals.
- Running complex labs and only commuting between your home and your office but not traveling to other places? Use a mobile workstation.
- You should also think about how often do you need high computing & memory capacity. If a few IOU nodes can serve you in 90% of your work and you need to test IOS-XRv a few times in a year, you can go ahead with a plain notebook and a cloud VM that you only spin up a few times.
Summary
As you can see, you have plenty of options for your lab gear so knowing your expectations is the the key here. If you know what you can afford and what you want to do, picking the right gear is quite easy - but this is where most people fail.
Setting the goals too high (building the CCIE SP lab when moving for the first CCNA exam) or not planning with some buffer for future growth will result the same thing: wasted money and time.