One of the things I hear a lot from those who are just trying to get into Networking is that people think they need to have access to physical network devices to get hands-on experience. This is not true at all, and I want to clear that up to help people become aware of the possibilities and options.
It's been a long time since emulators have been available. Thanks to virtualization being so common for many years now (and they're quite mature), I don't see any reason why Network Engineers or aspiring ones should go out and buy a bunch of used routers and switches to build their lab. I also don't see any reason for paying money just to get hands-on with physical devices. The only time that this could probably be an exception is when preparing for an expert level certification. It can be a case to case basis and also a matter of preference.
To be clear, I'm not saying experience with physical devices is not important. In fact, you will need it in the real world. However, I don't think it's required when you're just starting out and learning. You'll eventually get that experience anyway somewhere down the road so just don't let it stop you from getting started.
The nice thing about having your own virtual lab is you can practice anytime and virtually anywhere you want. If you have it installed on your laptop, for example, then you really are mobile. The point is to be able to hop on to your lab and practice at will. This is so crucial when you're just starting out and don't have access to real network devices yet like when you're already on the job.
All you need is a computer with decent resources to run a virtual lab. This is the best investment you can put your money on when starting your learning journey. I don't really have any recommended specs as it's going to depend on how many virtual devices you plan to use, however, below are the specs of my own laptop:
- Processor - 2.3 GHz Intel Core i5 dual-core
- Memory - 16GB 2133 MHz
- Storage - 256GB SSD
Now here is the list of the most common virtual labs for networking (rated based on usability):
The one I use all the time is not on the list. I use Virtualbox which is primarily used as a virtual lab for servers, not necessarily for networking devices. However, since both of the Network OS that I like - JunOS and Cumulus Linux - are both available as Vagrant boxes, I just use the Virtualbox + Vagrant combination for my virtual lab. If you don't know yet, I specialize in Network Automation so these are the types of devices and the kind of setup I prefer. Sure you can integrate Virtualbox with GNS3 for example, but mine is just a personal thing. This kind of approach is not for everybody. There is no GUI or anything, you only have a configuration file written in Ruby.
For total beginners, you can try Packet Tracer first. It's an all in one package. It's all Cisco, of course, however, the biggest difference from the others is that it's just a simulator. It doesn't run an actual Network OS. For this same reason, GNS3 and EVE-NG are not recommended for total beginners since they require some more setup and configuration to get up and running. Primarily, you will need to provide the Network OS image to run and configure it to work properly. Although eventually, you will want to move to these more advanced virtual lab solutions as you upgrade your skills and gain experience. Your virtual lab requirements will grow over time and expand to other network device vendors such as Juniper (JunOS), Alcatel-Lucent (SROS) and etc. You'll definitely need something like GNS3 or EVE-NG, maybe even something like my Virtualbox + Vagrant setup.