Emulab is a universally available time- and space-shared network emulator which achieves new levels of ease of use. Several hundred PCs in racks, combined with secure, user-friendly web-based tools, and driven by ns-compatible scripts or a Java GUI, allow you to remotely configure and control machines and links down to the hardware level. Packet loss, latency, bandwidth, queue sizes-all can be user-defined. Even the OS disk contents can be fully and securely replaced with custom images by any experimenter; Emulab can load ten or a hundred disks in less than two minutes. Emulab strives to preserve the control and ease of use of simulation, without sacrificing the realism of emulation and live network experimentation.

Links to help you get started: