Netdev 1.1 - Tutorials http://www.netdevconf.info/1.1/tags/tutorials en Tutorial: "nftables from ingress" (Pablo Neira Ayuso) http://www.netdevconf.info/1.1/tutorial-nftables-ingress-pablo-neira-ayuso <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><strong>Description</strong>: <p>nftables was merged to Linux kernel 3.13, being announced as an ongoing development effort to overcome the existing limitations of the popular {ip,ip6,arp,eb}tables userspace tools and the xtables kernel framework.</p> <p>nftables provides a new kernel framework for packet classification based on a virtual machine with an extensible network-specific instruction set that is accessible through a Netlink API. This comes with a new extended tracing infrastructure, dynamic ruleset updates through a 2-phase commit protocol, rule update monitoring, dynamic set instantiation to build flow tables.</p> <p>From userspace, the project provides libraries for third party applications and the userspace nft utility that provides an expressive and extensible compiler for our rule-based network language with a human-friendly syntax which comes with scripting support as well as an interactive native shell.</p> <p>Since 4.2, the Netfilter infrastructure now comes with a new ingress hook before prerouting that opens the window to adopt nftables to classify and filter traffic as alternative to tc. This tutorial introduces you to nf_tables features in general, and more specifically this will cover use-case examples from this new hook.</p> </div></div></div><div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Tags: </h3><ul class="links"><li class="taxonomy-term-reference-0" rel="dc:subject"><a href="/netdev/tags/tutorials" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Tutorials</a></li></ul></div> Wed, 13 Jan 2016 12:27:33 +0000 admin 62 at http://www.netdevconf.info/1.1 Tutorial: "Deploying MPLS with Linux" (Roopa Prabhu) http://www.netdevconf.info/1.1/tutorial-deploying-mpls-linux-roopa-prabhu <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><strong>Description</strong>: <p>The Linux kernel recently added a new MPLS datapath driver and API to configure MPLS fib. This tutorial introduces users to these recent MPLS developments in the Linux kernel and walks through the process of setting up and deploying MPLS with Linux.</p> <p>Agenda:</p> <ul> <li>A brief introduction to MPLS.</li> <li>Linux kernel MPLS infrastructure.</li> <li>Light weight tunnel infrastructure.</li> <li>MPLS ip tunnels using the light weight tunnel infrastructure.</li> <li>Deploying Linux MPLS LSP and LER routers.</li> <li>Futures.</li> </ul></div></div></div><div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Tags: </h3><ul class="links"><li class="taxonomy-term-reference-0" rel="dc:subject"><a href="/netdev/tags/tutorials" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Tutorials</a></li></ul></div> Fri, 25 Dec 2015 12:15:47 +0000 admin 45 at http://www.netdevconf.info/1.1 Tutorial: "Namespaces and CGroups, the basis of Linux containers" (Rami Rosen) http://www.netdevconf.info/1.1/tutorial-namespaces-and-cgroups-basis-linux-containers-rami-rosen <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><strong>Description</strong>: <p>It is clear to everyone that containers are getting a growing part in our world. This tutorial will describe the kernel infrastructure of Linux Container projects, namely the Namespaces and CGroups subsystems, focusing on its network aspects (like Network namespaces and CGouprs networking kernel modules).</p> <p>This is the suggested agenda of the talk:</p> <ul> <li>Background: Namespaces/CGroups, the basis of containers virtualization.</li> <li>Kernel Namespaces implementation.</li> <li>The 6 kernel namespaces - some implementation details.</li> <li>System calls for namespaces.</li> <li>Namespaces usage examples, especially detailed examples of network namespaces, the ip netns command, etc.</li> <li>CGroups kernel implementation.</li> <li>CGroups VFS.</li> <li>CGroups filesystem ops for handling cgroups examples.</li> <li>The CGroups implementation.</li> <li>3 CGroups userspace examples</li> <li>A very brief overview of Linux Containers projects and how they use Namespaces and CGroups.</li> <li>Summary.</li> </ul> <p>I gave this talk voluntarily three times in the past, in a LUG and in 2 meetups, and got a very good feedback from the audience. You can see the very detailed presentations here: <a href="http://haifux.org/lectures/299/">http://haifux.org/lectures/299/</a>.</p> <p>These are links to the talks in the two meetups I mentioned earlier:</p> <ul> <li><a href="http://www.meetup.com/Docker-Tel-Aviv/events/170674332/">http://www.meetup.com/Docker-Tel-Aviv/events/170674332/</a></li> <li><a href="http://www.meetup.com/Tel-Aviv-Yafo-Linux-Kernel-Meetup/events/226778388/">http://www.meetup.com/Tel-Aviv-Yafo-Linux-Kernel-Meetup/events/226778388/</a>.</li> </ul></div></div></div><div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Tags: </h3><ul class="links"><li class="taxonomy-term-reference-0" rel="dc:subject"><a href="/netdev/tags/tutorials" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Tutorials</a></li></ul></div> Wed, 23 Dec 2015 11:14:55 +0000 admin 43 at http://www.netdevconf.info/1.1 Tutorial: "Running Cellular Network Infrastructure on Linux" (Harald Welte) http://www.netdevconf.info/1.1/tutorial-running-cellular-network-infrastructure-linux-harald-welte <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><strong>Description</strong>: <p>Traditionally, much unlike the Ethernet/IP network, classic telecom infrastructure has been running proprietary hardware, operating systems and protocol stacks.</p> <p>In recent years, some Free Software projects have set out to implement some of the related protocol stacks and network elements on top of Linux, including the unrelated OpenBTS and OpenBSC projects, as well as the less known other members of the Osmocom umbrella project: OsmoBSC, OsmoNITB, OsmoBTS, OsmoPCU, OsmoSGSN, OpenGGSN, and many more.</p> <p>As signalling protocols tend to be complex and in many use cases the signalling performance is not super critical, those projects primarily implement the protocol stacks and network interfaces in user-space.</p> <p>This presentation will cover an overview of the many different projects out there, which of the cellular network elements they implement.</p></div></div></div><div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Tags: </h3><ul class="links"><li class="taxonomy-term-reference-0" rel="dc:subject"><a href="/netdev/tags/tutorials" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Tutorials</a></li></ul></div> Mon, 07 Dec 2015 19:29:29 +0000 admin 37 at http://www.netdevconf.info/1.1 Tutorial: "Ipset - a tool for faster, more efficient firewalling with iptables" (Jozsef Kadlecsik) http://www.netdevconf.info/1.1/tutorial-ipset-tool-faster-more-efficient-firewalling-iptables-jozsef-kadlecsik <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><strong>Description</strong>: <p>Building a firewall with netfilter/iptables is an easy task: there are countless of extensions and just imagination limits us. However, in practice the goal is to build a fast and efficient firewall, usually with a large number of rules and that is a not so trivial task. ipset comes to help in that case: most of the rules can be collapsed into fast matches in sets. In this tutorial ipset will be explained in details, both the features with which efficient firewalls can be built up and the internals which provides the fast evaluations.</p></div></div></div><div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Tags: </h3><ul class="links"><li class="taxonomy-term-reference-0" rel="dc:subject"><a href="/netdev/tags/tutorials" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Tutorials</a></li></ul></div> Mon, 30 Nov 2015 20:17:45 +0000 admin 34 at http://www.netdevconf.info/1.1 Tutorial: "Using SR-IOV on OpenStack" (Alexander Duyck) http://www.netdevconf.info/1.1/tutorial-using-sr-iov-openstack-alexander-duyck <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><strong>Description</strong>: <p>The purpose of this tutorial is to demonstrate the current state of the art in terms of Linux SR-IOV support. While OpenStack is used to configure the environment, the tutorial content is applicable for other uses of SR-IOV as well.</p> <p>The tutorial will provide clarity on what can be achieved with SR-IOV today.</p> <p>Issues found by the author in the OpenStack use case will be highlighted and work in progress to fix them will be discussed.</p> <p>Agenda:</p> <ul> <li>Introduction to SR-IOV 101.</li> <li>Present the current architecture of SR-IOV with on OpenStack.</li> <li>Demo SR-IOV enabled DevStack configuration.</li> </ul> <p>Discuss future plans including:</p> <ul> <li>SR-IOV Hotplug.</li> <li>Live Migration w/ VFs.</li> <li>Discuss limitations of SR-IOV.</li> <li>Lack of PF promiscuous support.</li> </ul></div></div></div><div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Tags: </h3><ul class="links"><li class="taxonomy-term-reference-0" rel="dc:subject"><a href="/netdev/tags/tutorials" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Tutorials</a></li></ul></div> Fri, 20 Nov 2015 13:26:13 +0000 admin 27 at http://www.netdevconf.info/1.1 Tutorial: "LibOS as a regression test framework for Linux networking" (Hajime Tazaki) http://www.netdevconf.info/1.1/tutorial-libos-regression-test-framework-linux-networking-hajime-tazaki <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><strong>Description</strong>: <p>Linux library operating system, a.k.a. LibOS, has been proposed in the linux-kernel communities with two specific applications and usecases, 1) regression testing environment with a network simulator, and 2) network stack personality with the ad-hoc replacement of network stack (i.e., NUSE). After the patch proposal and the presentation at the last netdev 0.1, it also got may feedback ranging from concerns about maintenance burden to future possibilities such as small operating systems for cloud (*1 *2).</p> <p>In this tutorial, we provide one of the interesting use case which is a regression testing framework of kernel network stack in userspace programs. With the simplicity of test scripts/programs written as a network simulator script, and the reproducibility by using virtual clock of network simulator, the testing framework is useful to check regressions in frequently-changing code bases: we have detected a couple of actual regressions during the growth of net-next repository.</p> <p>We will firstly introduce a brief overview of what LibOS is, its history including recent discussion with LKL (Linux kernel library), and updates including trial running on QEMU without booting kernel, vfs support etc (if everything goes well). Then go through how many regressions we have found with the tool, and how our testing framework is useful, how other testing framework couldn't detect such regressions, and then how we can implement our own test than our pre-installed tests. We are not going to discuss why we should apply test-driven-development (TDD) or what kind of software development process is great, etc, but will try to focus on presenting our experience of bug hunting and introduction to extend tests.</p> <p>Target audience is (of course) the developer of all of network stack subsystem (under net/ directory) and any people who are interested in testing of software in a large network with complex configurations. I'm not going to give a hands-on tutorial but give a material which everybody can follow the tutorial later.</p> <p>Reference:</p> <ul> <li>*1: <a href="http://lwn.net/Articles/639333/">http://lwn.net/Articles/639333/</a></li> <li>*2: <a href="http://www.linux-magazine.com/Issues/2015/176/Kernel-News">http://www.linux-magazine.com/Issues/2015/176/Kernel-News</a></li> </ul></div></div></div><div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Tags: </h3><ul class="links"><li class="taxonomy-term-reference-0" rel="dc:subject"><a href="/netdev/tags/tutorials" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Tutorials</a></li></ul></div> Fri, 20 Nov 2015 13:21:44 +0000 admin 26 at http://www.netdevconf.info/1.1 Tutorial: "In-tree support for 100G switch, no more SDK" (Elad Raz, Jiri Pirko) http://www.netdevconf.info/1.1/tutorial-tree-support-100g-switch-no-more-sdk-elad-raz-jiri-pirko <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><strong>Description</strong>: <p>Purpose of this tutorial is to demonstrate setup of 100G switch based on Mellanox Spectrum ASIC. There is no "SDK", no proprietary software, switch is running FOSS, namely Fedora distribution and upstream kernel, including switchdev-based mlxsw driver.</p> <p>Agenda:</p> <ul> <li>Quick HW and topology overview.</li> <li>Demonstrate mlxsw architecture based on switchdev kernel infrastructure.</li> <li>Demo with HW - Spectrum ASIC based switch - bootup, configuration of bridge, VLANs, bonding, run traffic, show statistics etc.</li> </ul></div></div></div><div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Tags: </h3><ul class="links"><li class="taxonomy-term-reference-0" rel="dc:subject"><a href="/netdev/tags/tutorials" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Tutorials</a></li></ul></div> Wed, 04 Nov 2015 18:44:15 +0000 admin 22 at http://www.netdevconf.info/1.1 Tutorial confirmed: "Using the VRF Implementation in Linux" (David Ahern) http://www.netdevconf.info/1.1/tutorial-confirmed-using-vrf-implementation-linux-david-ahern <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><strong>Description</strong>: <p>Support for Virtual Routing and Forwarding (VRF) was recently added to the Linux kernel. Core IPv4 support is in v4.3 and core IPv6 support is in v4.4. This tutorial introduces users to the VRF implementation, showing them how to create and configure VRFs, expectations for processes, and commands to show VRF based configuration and debugging. A few typical VRF use cases will be covered, such as basic management VRF, VRFs with VLANs, VRFs with MPLS and inter-VRF routing.</p></div></div></div><div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Tags: </h3><ul class="links"><li class="taxonomy-term-reference-0" rel="dc:subject"><a href="/netdev/tags/tutorials" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Tutorials</a></li></ul></div> Tue, 27 Oct 2015 11:00:55 +0000 admin 18 at http://www.netdevconf.info/1.1