GNS3 is a network simulator. It is used to build a virtual network with virtual computers, routers, switches, firewalls and many other network devices for testing. If the test is successful, the network topology can be implemented on the real world with real devices. It can also be used to learn networking. GNS3 supports CISCO IOS, Juniper emulation. This is one of the low cost way to set up a home lab and learn for the CISCO and Juniper certifications as well.