I think the perfect solution for Linux users: http://www.nrl.navy.mil/itd/ncs/products/core
I will keep this answer updated if I am wrong.
UPDATE: It works like a charm. Firewall rules can be set for each node. It does not use too much memory, so even large network topologies can be created. It is possible to run terminal-per-node. This way you can test many different scenarios to test your application. Good luck.
source share