 So, if you just tuned the VDA channel, let me give you a review of the previous chapters. So, what's VDA? VDA is virtual distributed internet and it's a networking standard since 2004. So, we are quite grown up. We support virtual distributed internet is supported by KAMU, KVM, virtual box users and many others. And in the last two years, three years, we have completely rebuilt all the code. We have already coded everything from scratch. And VDA4, the new version, has many interesting features. But instead of listing the features from the slide, I think that we can see it in a more pictorial way. I've depicted all the items, all the entities as jigsaw puzzle ties. And each kind of boundary is a different API or protocol. So, the new idea is this, libvdplug4, which is a library that is compatible, backwards compatible with all the tools, virtual machines that are already supporting VDA. But on the same time, this libvdplug4 has plugins. And so you can use VDA to create virtual networks using very different technologies. I, in my mind, this kind of libvdplug4 library is something like SFP, the small form factor plug-in socket. I mean, in your physical switches, you have this kind of ports that can have some kind of transceivers that adapt this general-purpose port to your needs, either copper or fibers or whatsoever. Translate this concept from the physical world to the logical world to the virtual world. And what you get? So, you get this, and then we return back. You can have a plug-in that can be connected to a virtual switch. You can have a plug-in which is a hub. You can have another plug-in which is a switch. Or you can have a plug-in which is null, like DevNull. It's very useful, like DevNull, because you can use this plug-in to change the behavior of different tools. And you can have a plug-in which is a top plug-in, so you can connect the virtual world to the real world, to the running operating systems by creating a virtual top interface. And as you can see from this slide, let's have a look back. The new idea is that you can load and use each kind of plug-in using a kind of descriptor, locator, which is similar to the URL for the web. You have the technology and a description, parameters, which are specific for each technology. For example, this is the null, the VD2 compatible form, the top, the new VXVD, Slip, and so on. One interesting tool is the tool named the VD plug, which actually is just a tool which can have a VD4 client and a plug-in and converts all the communication to a standard stream, and an input standard output, so you can use a tool like the double pipe to connect to plugs. Or you can have the plug having two slots for the VD plug entities to create a cable. But I think it's nicer to see examples because an example works much more than a thousand words. Okay, look at this architecture. I wanted to connect two KBM machines to a single topper. So I create a topper and I assign this top to a user so that this will be the single, the only command needing root access. Then I connect the topper to a plug-in, which is a switch. And now I have a switch which is represented by this path. And then I can run as many KBM KMO virtual box machines connected to that switch just by naming the name of the switch, the part of the switch. And this is the architecture you gain. Okay, so let's go on. We have much more plug-ins. You have a plug-in that gives the input to a program. We have a plug-in that runs Slip. Slip is an emulator of network. So using Slip, you are connected to the internet, but all the connection, all the network traffic coming from the virtual world appears to the world as it were generated by this process. So you can connect your network to the internet as clients without any root access. We have UDP, we have Unisockets. For example, I want to run a KBM machine on my Linux box here. And I want this KBM machine to be connected to the world using the networking of a remote machine where I have just user access. I have no root access. And I can do this just by a single command because KBM and the UVDL, sorry, the locator is command This type of command, I have the command to run the remote VD plug. VXVD is a very nice tool because it creates a lot of clouds. I think that the best way to introduce you to the concept of VXVD is this sentence. Apps of the same multicast address flock together. So you can scatter your virtual networking, your virtual network application, your virtual machines throughout your local network. And as soon as you give the same multicast address to some of them, they are connected to a virtual local network. No infrastructure to their configuration. And as I showed last year, it is as performant as VXLan. So it's fast. But let us move on. This is history and I have spent 10 minutes of my 30 minutes for history. Move on. We have VXVD, which is VXVD. But with access control, we have designed nested with the plug. So plug where you can insert further plug, for example, encryption plugs. So you can use the whole infrastructure. You can decide whether to use VXVD or Slip or whatsoever. You can add cryptography, you can play with the virtual lines. But, okay. I think that the most important new feature it is. VDNS and a twerking space. So instead of running an entire virtual machine or inside of filing against a lot of comments, there is a very simple way to create a networking space where you can run your application. So you have the same kind of insulation from the networking point of view you had with a virtual machine. But it's, I mean just networking insulation. But it's very light. You can have this VDNS with just one socket. And for example, you can create a networking environment to connect your application to a virtual machine of yours using a point-to-point communication. But what is more interesting is, okay, that you can use, merging the two concepts, the local outer cloud and the VDNS space. You can create a network of night spaces. So you can have processes into networking night spaces running all over your local outer network and they are connected together on virtual networks. You can have, if you are a data center, you can have processes of your customers running where you need them, where your load balancing policy says that it's better to run them and they are connected together in a transparent way. But as you can have VDNS with one socket, you can have VDNS with multiple sockets. So this can be used to connect virtual networks together. So using standard tools, IP tables to masquerade the IP address or to packet filtering, shaping DSP servers. And you can run all this stuff into a night space and in that way this kind of night space became a virtual network function. So you connect virtual networks, you add networking management, networking processing functions, but the new point is that you don't need the new tools, you don't need new software because you are using all the stuff which is already in your Linux kernel. This is a kind of an example. If you want to connect your stuff to the internet, on one point you have to connect your entire infrastructure to the internet. One point, maybe more points. In this example, I've connected this box using Tupper to a VDNS multi which has two different sockets. One is connected to the Tupper, the other is connected to a local earth cloud and this is connected to another router, shape, whatsoever, and this creates a second layer of networking to virtual machines other namespaces or what you want. So I've told this, you can run all this stuff. Let me start from this, then we'll turn back to the final demo. There is a physical network. You have firewall, routers, switches, and machines. So there is a big deal of network virtualization. Then the second step was to have virtual machines. Virtual machines, you need to connect virtual machines, what is in yellow is virtual. So yeah, virtual machines are connected to virtual switches. Our old VDNS switch or VStack or whatsoever are virtual switches. Into a Linux box I put Tux to remember the operating system. And the remaining part of the architecture was physical. So network function virtualization, you have a function like routers, that can be processed instead of physical devices. And this is a step towards generalization, maintainability, because you can update the firmware, like I say in this way, of this router in a very simple way. It's a general solution. But the step, the final step is to completely decouple the physical structure from the logical structure. All the switches, there are switches in the physical world, which are completely related to the switches in the virtual world. You don't have any virtual switch at all, because they are distributed. VXVD creates the local outer cloud. And so you have the firewall, which is a virtual network function, running on an A space, a router, which is another virtual network function in another namespace. And you have namespaces and virtual machines spread, scattered all over your data center. This is the point. So I have the slides. I could try to do it live. So I get the risk of demos. So, okay, oops. Okay, first of all, I have... How many? 10. Okay, problems. Okay, first of all, I have to set up the gateway to the internet. To set up the gateway to the internet, I have to create the tent up first time it needs. So I create the tent up now alongside all my real interfaces on my laptop, there is TAPR. So I did a standard way to create a networking infrastructure in an old way. So I create a bridge. So I bring all the interfaces of the bridges up. I create a... I give an IP address to my bridge. And this is the old way to create the connection to the internet. From now on, I'm working on only using BLE. And you can notice that because I will not use SUDO anymore. The first thing I do, I start this with DNS. Okay. Let me show you the command before typing return. Okay. Okay, this is the command. Within a space, multiple interfaces. So please look at simple as the syntax. First, UVDL, TAPTOPER. So the first interface is connected here. The second is connected to this VXVD network. VXVD with connected. I could add other locators. And I'll just have a namespace with having as many interfaces as you need. Okay. There is a quite long prompt because I'm a user. But I've entered a username space. And inside the username space as a user, I have ambient capabilities. So now I have the ambient capability to bind service so to create sockets and imports less than 123. 1,023, sorry. I can create broadcasts. But the more important, I am net admin. So as a user, I can create, I can give IP addresses, define routing and so on. And it is what I'm going to do just now. So as you can see inside, inside and in space, I have just three VDE networks. They are connected to TAPTOP. They are connected to this network. They are connected to that network. Now using standard configuration comments as a user, I can bring up the networking. And okay. It is working. I can ping my bridge. But now I can use the standard stuff. And this is the simplest example I have in mind. So create nothing. Creating a masquerading router. Using the standard command I used on a real Linux box. So I have enabled IP forward. And I have, using IP tables, I have added a rule saying that all the traffic routed towards BD0 must be nut, masqueraded. Okay. So I can create another. This window actually is on my laptop. But this window could be the window running, a shell running on any other host of the local network. Okay. I forgot I have to give an address Let us say that the network 10, 10, 10 we are in Brussels, so 10, 10 is quite famous. So 10, 10, 10 is the network connected to the virtual network, the VXVD network. So we can create a BD in space on the other machine. Connected to that virtual network, bring up the interface, give another address but now I use a static address but if you have a DSP server on the virtual router you can have your address provided in a dynamic way. Create this. And now I am connected up here. Okay. If I have just one more minute let me see if... Actually, maybe I am not connected with the entire machine to the internet. So if down there... I am connecting my laptop to the internet. I hope there is Wi-Fi available here. Okay. Let me see. It is not working but there is some trouble somewhere. Anyway, it should work because I wanted to... There is something... For sure I forgot something but the idea... I was on an internal machine. I had to cross this and enter the network. I can assure you it works and in this way you can have the gateway to the internet. This is the only part in which you need to be root. All the other stuff can be implemented, can be logically implemented as a user. Okay. That's all. Are there questions? So are there any questions? Please. Okay. So I am going to repeat the question because I am hardly... So the gentleman was asking if the slides will be available afterwards and if there will be a way to repeat the demo afterwards I am interested. Two times yes, the slides are already available on the page of this presentation at Forstum. So you can have the slides quite quickly now. If you have time, we can have a demo side-by-side using a table around Forstum. Okay. Super. Everybody is interested. I can give a public demo. So it's time for one more question. Why 10? So... 10 is a famous character of cartoon which is famous. If you go around Brussels, there are entire walls painted with all the customer of this comic strip. Okay. Okay. Thank you very much.