Mininet is a project at Stanford that provides an API to emulate a multi-node network on a single machine. It uses linux containers and namespaces for configuration/resource isolation.<p>Project page: <a href="http://www.openflowswitch.org/foswiki/bin/view/OpenFlow/Mininet" rel="nofollow">http://www.openflowswitch.org/foswiki/bin/view/OpenFlow/Mini...</a><p>Paper: <a href="http://conferences.sigcomm.org/hotnets/2010/papers/a19-lantz.pdf" rel="nofollow">http://conferences.sigcomm.org/hotnets/2010/papers/a19-lantz...</a><p>Other similar projects:<p><pre><code> * http://clownix.net/
* http://www-x.antd.nist.gov/nistnet/</code></pre>
Do be aware that your linux loopback has an MTU an order of magnitude greater than ethernet, so your latency sensitive TCP startup times are not going to behave the same.
Could anyone explain why that would be desirable? Is it to test out a website design that you are hosting locally, and you want it to "feel" right? Something else?
qdiscs in linux have always seems something of an underdocumented dark art to me. I've used HTB to slow down packets that I mark with iptable rules, but that's about as fancy as I can get. Does anybody know of some nice documentation about this stuff that isn't a decade old? ;)
For those on FreeBSD dummynet was perhaps one of the most useful traffic shapers I've ever used. I had a router built on FreeBSD going strong for more than 3 years on an old pentium 90 that would route traffic like no ones business.