 I'm Marco Stronetti. I'm a student of computer science at the University of Pisa, and I'm here today to Yeah, can you hear me? Okay. I'm here today to talk about marionette that is Okay, it's a virtual natural laboratory for teaching purposes. Okay, fine, and Marionette allows you to virtualize a network That's why the name because it allows you to play with the GNU Linux distribution like they were puppets marionettes It's really that easy. So let's see some major features We got a nice and clean GUI that is really unique because there are a few projects of this kind with a GUI for that I think it's really important for students, especially for the first second year students of University and We have a hundred percent real experience. I think that's really it's I'm gonna stress this because Marionette doesn't emulate the single network tools So it doesn't emulate if a config or a p-tables and etcetera. It just emulates a machine So what you do with the machine Is gonna be valuable when you're gonna work on on the real world on the real machine. It's just the same So for students, it's really a good experience that we're gonna use in life And it is written entirely in OCaml. That is a strong type Functional language that is really cool. Though not famous. So if you want to talk about it We can later and of course it's open source. So it is released under the GPL version 2 or later license and Here is the Marionette interface as you can see here. I'm sorry. I have to look but I have to point so Here you can see the on the center. We have the network sketch that is always up to date image of the network topology and on the left we're gonna we have this buttons that allow us to add devices and Sorry Okay, with that menu we are allowed to add remove and modify devices as well as boot suspend or stop them and When for example, we want to add a device. We're gonna be Presented with a menu like this from which we can decide some sort of name or label For example for the machine. We have the amount of memory the number of internet interfaces and The Linux distribution we want to use as of now we support all the Debian but in future another distribution is not difficult so you don't want to welcome if you want to do that and Let's talk a little bit about the other devices. We have machines and hub switches routers and cables both straightforward and crossover and We have this little cloud that is a little particular it represents an unknown network So it can introduce some sort of delays or packet loss packet duplication, but we're gonna see them later And my favorite is the last one that is the day away It is when you plug your virtual network to this word plug You're gonna plug it to your host machines That means that you can connect the virtual network and the virtual network to a real network that is really cool because from then on you can From the outside from the real world You're gonna see the network as it as if it were real so you can give services, etc And on the other hand from within the virtual network You're gonna use the internet that mean you can browse The web or you can use the rpt system That means that in a matter of minutes you can get your machine set up with your favorite software that is really cool and Moreover another nice streak is that you can connect a virtual network for the real network to another virtual network and we streaky but it's Imagine the scenario you have two students working on their virtual networks and they can interact together To I don't know try some some sort of attack or some sort of just client server scenario That's really fun for students and let's see Let's see what happened when you click those to the Maria button. That is the startup everything You're gonna see like 5,000 pop-ups windows that gonna look like this you have an X term for each a machine And you have this low light interface for each natural device That this is really nice because those labs that you see for each at the net ports are not function Unfunctional they're real. They're really gonna blink each time a packet. It's network. It's a network card So it's a really valuable feedback for what's going on your network while it is running and Okay, here we have the anomalies tab that allows for each Device for each port both in world and outward to control the defects we are we're talking earlier So we have the control on the loss the duplication inverse beat and delays as you can see there I made an example I configured the two machines to ping each other and you can see there There is the dup. That means there is a duplication and in the bottom You can see that we have a 20% 23% of packet loss and an average time That is roughly the same as I as I said before So here we can really And reach the student experience with something that you don't really see often in real life. For example, I never saw the duplicate Stuff like that. So it's really useful for students Okay, moreover, we have the disk interface that allows you to through the disk tree to choose the snapshot of the of the Machines that you prefer for example, you can try different configuration file for your software be it Apache or I don't know or a routine a routine algorithm on whatever and you can Shut down the machine boot it up and see what changes well, and For those of you that really can't do without graphical application We'll have that because you can from within the machine you can Launch for example wire shark and he's going to use the X the X server of the host so you can use your graphical application Without really without any kind of trouble. That's your useful for students that maybe are not really comfortable with with a terminal interface Then we have the exam mode. The exam mode is really the only feature of marionette that is teaching specific. It allows you to present the the students with some kind of exercise or tests and The the cool thing is that when you stop the machines and you're in the student save his project In the machine will be triggered a script that save Some configuration file and his brush history file That means that if my teacher when you control and revise the exercises or the test if the network is not working as it is Maybe is just because the the student that but lack with a configuration file But he did a good job so it can really helps you to Understand there how it works during the test and Well, now let's simple talk about we presented a little of marionette a good overview I think and let's see why it started as you know every good piece of software starts because to scratch a developer personal each and Jean-François Lodot is the the founder of the project and the main develop the main developer the leader developer and He started that because he is a teacher of not a computer networks and found some some sort of problem While teaching his classes in laboratories for example adrenal functioning although they can be interesting as we saw them They always come up in runtimes for example during an exam or you have a long time to prepare to set up the network for the students X very expensive hardware for example Cisco staff is not really handy You have no no students have no way to test at home The what did they learned at lessons? They can't make some homework for example and Exercises and tests are really out to prepare and to revise after Students will always be able to exercise only a little network. You can't really have a 50 nodes in your laboratory And moreover each students Can practice only when they have access to the lab that is that means in only in certain times and only few students at the time All this stuff will disappear with my internet I mean in a number of minutes you can put up a network of 10 nodes and start to play with AP tables And it's really really easy and it's gonna be also fun Let's see where it was the project is was done it is It's been developed at the leap new department of the University of Paris trust where the servers now relies and that support the project We have it was done mainly it was started in 2005 Has an interface for the net good project, but it developed later in 2007 in what the internet that we are known now and Especially you have in six months during the time in which Lucas are you join the project it boosts it a lot and In 2008 see there was the here of the truth because the DVD was released the live DVD was released to like 200 students, so there was a major testing and other UTA that are Kind of a university in France started to use the Use the software and so we have we got a lot of feedback Right now. We're just cleaning up code and writing documentation and our tools and but we also have some new ideas coming out I Personally working on the developer documentation and the internationalization as you saw is French early So I'm not really doing a good job right now, but we had some major News last week. So I think in a couple of weeks We're gonna have maronettes in English French and Italian and you welcome to translate it in our languages as well Okay So I'm not one of the orders. I'm just a contributor the two orders are Jean Salodeau and Lucas alu Both are strong advocates of functional programming. That's why you come out and of free software Now, let's see a little how does really maronette work under the hood? Maronette takes advantages of a great number of free software projects that we love free software For the machines we use the UML user modeling and that's allow us to emulate both machines and routers There are nothing more than machine with a quagga software on it And we have the VDA project that's from Rensseldavoli that is here today And he is here for them and tomorrow is gonna give a lighting talk So come and see him and the video allows to emulate cable habs and switches and implements also all the defects That we saw the anomalies Then we are there the maronette network parts that is the core and that's manage all the processes that we saw so manages the machine Both machines and cables and there is the part of the GUI that is written in GTK plus for the interface and in the dot language for the natural sketch that we saw Let's see the cool stuff that maronette does We have the dynamic reconfiguration. That's really unique No other project of this kind allows you to dynamically reconfigure the networks. That means you can unplug Replug cables routers machines Shutdown devices and start them they'll up again, and you will see them the networks evolves in front of you That's really useful and really fun Then given the the big number of processes that Maronette brings up we needed to manage all this stuff So there is a manager of the concurrency of all this project and there is also a death monitor that control that check for Processes if he dies or something like that and maronette won't crash on you. So it's full tolerant Then we have the other defects in both part and why so as we saw earlier We have the gateway to connect to your machine. We have the distribution choice or at least we will and We have the car pluses parts file I don't know if you Familiar with that it allows you basically it allows us to save a lot of disk space because we are talking about files Glimpse distribution file system that means 300 megabytes. It's not really lightweight and Allows us also to make this snapshot that we saw earlier Then we have full GNUX binary compatibility that means that you're working on just a GNUX machine So you can just run on it whatever you like You can start whatever you like and that's really useful. So for testing your own projects your software Then we have the graphical application support as we saw earlier We have the GUI that allows you to set up The network and as you started it it allows you to have some feedback on what's going on We have the exam mode as we saw earlier and we have the file format that is just our archive compressed That is back and full compatible and we have Pinocchio There is a GNUX distribution of just 100 megabytes. So that's that's really short. It's cool and What we see for the future when current working working on Debian packaging That is almost done although we have some problems because we have some really I'm sorry. We have some really heavy stuff to package for example find system and we also rely on other software So we're waiting for the development cycle of VDE etc. So it's quite complicated We're working on machine file system to make them in smaller and We're working on international. I am working on internationalization or at least I'm trying and we have We are both in mind some advanced feature like full-on and firewall NAT and DCP for others And we're also thinking of new devices for example IP phone for SIP and stuff like that So I'm done. I hope you enjoyed it if you have any question just Meet me right now or five minutes if you have any question we can go outside and you can also try maronet if you wish Unfortunately, you can't easily install it right now. There is a guide to compile it. It's really really easy So any question is welcome. Thank you