Live data from Hacker News

Mininet: Emulating a network on your laptop

mininet.github.com

21–30 of 33 posts

Re: Mininet: Emulating a network on your laptop

#21
post #10
post #6

It seems to be a good tool for teaching networking. Back in school we used to do that with VDN (which is still maintained http://opale.u-clermont1.fr/vdn/wiki/doku.php ).

Yes, Mininet is used for networking courses in Stanford/Princeton. There are a number of programming assignments readily available for Mininet: https://github.com/mininet/mininet/wiki/Assignments

Wow reading through these assignments I'm blown away this is for a first year course. At this time in my first year half of the class couldn't handle an if statement. Wish I could of went to Stanford.

Re: Mininet: Emulating a network on your laptop

#22
post #10

Earlier quoted context omitted.

Yes, Mininet is used for networking courses in Stanford/Princeton. There are a number of programming assignments readily available for Mininet: https://github.com/mininet/mininet/wiki/Assignments

Wow reading through these assignments I'm blown away this is for a first year course. At this time in my first year half of the class couldn't handle an if statement. Wish I could of went to Stanford.

No worries! The Stanford undergraduate networking class was offered online last quarter. The videos are up here: http://networking.class.stanford.edu

Re: Mininet: Emulating a network on your laptop

#23
post #4

GNS3 is another tool for emulating a network. It is a graphical tool where you draw network diagrams, and nodes are emulated with Qemu/VirtualBox , Dynamips (Cisco hardware), or another emulator.

Seems like the major advantage of Mininet (vs GNS3) is that Mininet is based on light-weight virtualization, so that emulating large number of nodes should be more feasible. Of course the downside being that all the nodes are Linux-based

Re: Mininet: Emulating a network on your laptop

#24

When I was studying networking we used a network simulation tool called cnet[0], which has the nice property that it can do network simulation at different protocol layers as well as having different topologies. It can also simulate things like wide-area networks, noisy connections and so on. Most of the assignments built around cnet were of the form of "Here is a network protocol that is half-completed. Write the tr…

At the TU Ilmenau we used OMNeT++ (http://www.omnetpp.org/) which had the benefit of having built-in classes for statistics collection and looking at graphs while the simulation ran - mininet doesn't seem to offer such functionality (yet?). But then it sometimes felt like omnet had too many layers of indirection and C++ was not everybodys language of choice.

Our assignments were similar, I remember doing stuff with link state and distance vector routing, implementing parts of a tcp state machine and others.

Re: Mininet: Emulating a network on your laptop

#25
I kind of want to use this to build a hacking game. You get to use real world tools to uncover bits of story scattered across a virtual network. You could even write little "agents" that run on the nodes that cause traffic to happen between nodes, or react to things happening on the network.

Re: Mininet: Emulating a network on your laptop

#26
post #22

Earlier quoted context omitted.

Wow reading through these assignments I'm blown away this is for a first year course. At this time in my first year half of the class couldn't handle an if statement. Wish I could of went to Stanford.

No worries! The Stanford undergraduate networking class was offered online last quarter. The videos are up here: http://networking.class.stanford.edu

Thanks. I'd found those but what I'm really interested in are the course assignments which only seem to be available for the actual course. The first two are the only ones I can't find right now

Re: Mininet: Emulating a network on your laptop

#27
post #3
post #2

how does this work under the hood? in particular, how are the hosts emulated? by separate processes?

Yes. Virtual hosts are in isolated containers with their own pid and network namespace. So each host can have its own routing table, IP address, etc. without interfering with one another.

Mininet doesn't actually use PID namespaces yet. They warn that the PID namespace and host filesystem are shared: https://github.com/mininet/mininet/wiki/Introduction-to-Mini...

Re: Mininet: Emulating a network on your laptop

#28
post #4

GNS3 is another tool for emulating a network. It is a graphical tool where you draw network diagrams, and nodes are emulated with Qemu/VirtualBox , Dynamips (Cisco hardware), or another emulator.

There is also Marionnet, that runs virtual nodes using User-Mode Linux.

Re: Mininet: Emulating a network on your laptop

#29
post #22

Earlier quoted context omitted.

No worries! The Stanford undergraduate networking class was offered online last quarter. The videos are up here: http://networking.class.stanford.edu

Thanks. I'd found those but what I'm really interested in are the course assignments which only seem to be available for the actual course. The first two are the only ones I can't find right now

The first two programming assignments can be found here: http://www.scs.stanford.edu/10au-cs144/lab/reliable/reliable.... The 2012 assignments were the same.

Re: Mininet: Emulating a network on your laptop

#30
post #16

Earlier quoted context omitted.

It can mean different things to different people. If you're a distributed systems developer, you can use Mininet to create a topology and emulate the interaction of 100s of, say, bittorrent clients. If you're a graduate student in networking, you can use Mininet to experiment with your new routing protocol and compare it against existing ones such as OSPF, BGP, etc. You can also use it to put existing research papers…

I really like the example you give and am starting to ge the academic usage. Thanks for this reply!

You're welcome. There's a Mininet AMI too if you want to get started quickly!
Post reply on HN