One of the issues with any home lab situation is that you often run out of funds before you run out of ideas, and that's a problem. Maybe you want to put in some extra managed switches to test out routing between VLANs, or play with a router you know will be one you run into at work. Whatever your reasoning, the want doesn't always mesh with the means, but that's okay.

What if I told you there's a way to virtualize almost any hardware configuration you want, as long as you can find the YAML files describing how they operate. That has a huge range of Cisco and other hardware, from routers, to firewalls, to switches, and more, that you can drag-and-drop into network diagrams with ease. It's not perfect, but it gives you a great learning platform with minimal setup.

It's called GNS3, and it's kind of a middleware for starting and running virtual machines that virtualize various networking appliances. You can make network diagrams and have them route packets around as if they were physical hardware. It's pretty awesome, even if it needs a UI overhaul for the 21st century. I use it to play with home lab ideas before planning new hardware purchases. It's also one of the best places to study for your CCNA or CCNP exams, as you can get the images for a bunch of Cisco appliances for relatively cheap, and import them into the program to simulate with.

GNS3 is awesome

Built for CCNA students, this software package lets you virtualize your home lab

GNS3 (or Graphical Network Simulator 3) is an awesome way to learn networking skills in a virtual environment. The cool thing about it isn't that you can put together simple lab setups like I've been playing around with, but that you can simulate entire enterprise networks in all their complexity. You can then send packets around and test your setup, just like if you had the physical architecture in front of you.

If you have a Cisco account, you can download a huge pack of virtual appliance files, but it'll cost you about $200. Or you could use Juniper networks devices again, if you have the right account. But you don't need to buy anything, as you can download open-source devices, like Linux routers, Linux Switches, OpenWrt, and many more. I've not found the need for the Cisco appliances yet, but maybe if I do go for a CCNA, that'll be worth picking up.

Let me play without hardware

I love the smell of virtual appliances in the morning

The beauty of GNS3 is that you can preload tons of network virtual machines, and the software will boot them up and connect them as if there were Ethernet cables in play. You drag in host computers, switches, other appliances, and preconfigured routers, then click another button to pull network connections between them, and tell the program which Ethernet ports to use. It's all really rather straightforward once you get the hang of it, but that's the power of the program, keeping the virtualized environment working underneath, so you, as the user, can focus on the topology.

Once that's done, you can select any individual appliance, log in to it with the virtual console, and set up a CLI to perform any of the configuration steps you'd do with the real thing. Subnets, VLAN tagging, adding broadcast, and any other things you'll need are all a few commands away. The best part is that these are the same steps and commands you'd use in a home lab environment, so you can make, break, and test away without worrying about bricking an expensive router.

👁 A Lenovo Z51-70 placed next to a server PC
5 essential firewall rules every home lab should have

Before you start playing with services and tools, here's what you should set up first.

It's full of learning

Even if it's heavily biased toward Cisco hardware

Once you've got the topology and the routing set up, you can really get to work. Any packets you can send on a real network will go around the GNS3 virtual ones, so you can take packet capture parcels and send them around to test firewall rules, or to brush up on Wireshark usage for analyzing network traffic, or poking at your IDS/IPS pairings.

Or you could do even more, like teaching yourself how to make Nmap scanners with Python, discover rogue DHCP on your network, or any real-world situations where your existing knowledge and practice could come in handy. I've only started scratching the surface of what it can do, and I look forward to playing with it more. And because it's been around for years, any problems or questions you have are probably answered already with a quick search, and there are no end of cool projects to build using it that have already been documented.

👁 WireGuard close-up shot
5 things I learned about networking while building my first smart home

I've been putting together a smart home over the past few months, and these are the most important things I've learned.

But it wasn't the easiest to get working

VMware is the gift that keeps on giving

I'll start by saying I don't have the best track record with virtual machines, even if some of my issues seem to stem from VMware changing how they support virtual machines for hobbyists at a whim. Which is a shame, because VMware is the best place to run GNS3's virtual server, well, okay it's the second best place other than a remote server that you own, because then you get more routing options to learn.

So, I had to use VirtualBox, which isn't always the best for things, and somehow I corrupted my installation a couple of times, but I got it working eventually. There's also EVE-NG, which is a more modern version of GNS3 that doesn't require the server-client model, which might be easier for some people to use. But again, that didn't work on the VMware player because it needed virtualized acceleration, and that only works on the paid version of VMware now.

GNS3 was built for network professionals to learn

I'm far from a network professional, but I do like learning, and keeping my home network humming along, which is why I started thrashing through some GNS3 lessons in the first place. I installed OpenWrt as my router instead of using one of the Linux options, but that's also because I wanted to reacquaint myself with OpenWrt as it's been a few years since I last touched it. The other thing to know is that GNS3 is open source and free, even if some of the network appliance images it uses aren't.