GNS3 is a free, open-source tool for testing network configurations, proposed changes, or preparing for Cisco certification. GNS3 uses a combination of technologies to produce a testing environment - VirtualBox, Dynamips, and Qemu. The difficult part is acquiring IOS image files as Cisco limits downloads now to SmartNet contracts, e.g. if you own the device you can access the respective IOS or NX-OS files. GNS uses the files to virtualize the network devices.