SlideShare a Scribd company logo
1 of 39
Download to read offline
v
ifupdown2 : The ultimate Network Interface Manager
Progress and Status
Julien Fortin - Cumulus Networks
July 5th, DebConf2016 - Cape Town, South Africa
1cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Outline
2
! Background & context
! What’s wrong with ifupdown?
! Ifupdown2 overview
! What’s new since October 2015 ?
! What’s next ?
! How to get started
! Questions
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
From intern to Member of Technical Staff
3
! Background as a Software Engineer
! EPITECH, class of 2016.
! Undergrand Internship at Cumulus
in 2014
! Hired in March 2016, joining the
ifupdown2 team
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
The Mother of Dragons
4
! Roopa Prabhu
! First commit Nov 2013, ~2k lines of Python
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
The Mother of Dragons
5
• 618 commits
• 18243 lines of python
! Roopa Prabhu
! First commit Nov 2013, ~2k lines of Python
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Cumulus Networks, an Operating System company
6
!Cumulus Linux
! Debian (jessie) based distribution for Network Switches
!Our Philosophy
! Manage your network switch as a server
! Use existing Linux tools to configure your network switches
!Contributing back to the community
! Cumulus is upstreaming a lot of networking kernel patches (e.g. netlink, stp
etc..)
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Debian’s ifupdown
! Default Network Interface Manager for Debian
! Configuration file : /etc/network/interfaces
! Network interfaces represented by “iface” sections
7
iface br100
bridge-ports swp1 swp2
bridge-stp on
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
What’s wrong with ifupdown?
8
! Code written in C (hard to maintain/extend)
! Does not understand interface dependency
! Problems with provisioning interfaces at scale
! No support for incremental changes to interface config
! No support to query/validate running configuration
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Our solution: ifupdown2
9
! New implementation in Python
! Backward compatibility with debian ifupdown
! Pluggable architecture with python add-on
modules
! Ordered Network Interface dependency
relationship handling
! Incremental changes and query live
configuration
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
ifupdown2 archi
10cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
ifupdown2 interface configuration graph dependency
11cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
! Dependency graph of all interfaces
! Uses topological sort to order
network interface configurations
! Execute interface configuration in
dependency order
ifupdown2 interface configuration graph dependency
12
Sorted interface list:

swp1, swp1.100, swp2, swp2.100, swp3, swp4, bond, bond.100, bridge100
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
! Dependency graph of all interfaces
! Uses topological sort to order
network interface configurations
! Execute interface configuration in
dependency order
ifquery: Troubleshooting network interface dependencies
13
▪$ ifquery br0 --print-dependency=list
▪br0 : ['bond1', 'bond2']
▪bond1 : ['swp32', 'swp33']
▪bond2 : ['swp30', 'swp31']
▪swp32 : None
▪swp33 : None
▪swp30 : None
▪swp31 : None
$ ifquery br0 --print-dependency=dot
/* Generated by GvGen v.0.9 (http://software.inl.fr/trac/wiki/
GvGen) */
digraph G {
compound=true;
node1 [label="br0"];
node2 [label="bond1"];
node3 [label="bond2"];
node4 [label="swp32"];
node5 [label="swp33"];
node6 [label="swp30"];
node7 [label="swp31"];
node1->node2; node1->node3; node2->node4;
node2->node5; node3->node6; node3->node7; }
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
14
ifquery - - check
! We extended ifquery to query and validate applied state of a network interface
Julien Fortin - ifupdown2 - DebConf2016
15
ifquery to persist running configuration
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Incremental changes on live configuration
16
! ifup/down work on already UP or DOWN interfaces
! Only applies the new changes without disturbing the
existing config on interface
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Example
17cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
ifreload
18
!Reloads the network interface configuration
! By running `ifdown` on interfaces that were removed from /etc/network/
interfaces (or the provided file)
! And running `ifup` on all interfaces currently present in the config file.
! Pretty convenient rather than using `service networking restart`
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
JSON API
19
! Supports interfaces imports and
queries in JSON format
! Enables easier integration with
automation/orchestration tools
$ ifquery br0
auto br0
iface br0 inet static
bridge-ports swp1.42 swp2.42
bridge-stp on
$ ifquery br0 —format=json
[
{
"auto": true,
"config": {
"bridge-ports": “swp1.42 swp2.42",
"bridge-stp": "on"
},
"addr_method": "static",
"name": "br0",
"addr_family": "inet"
}
]
$ ifup -a -t json -i /etc/network/interfaces.json
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Template support
20
Example: interfaces template to create
bridges for vlan 1000 to 1100:
! Simplify cookie-cutter interface
configurations with mako style
templates
http://www.makotemplates.org/
! Provides option to plug-in alternate
python template engines
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Python add-on modules for interface configuration
21
! address
! address virtual
! bond
! bridge
! bridgevlan
! dhcp
! ethtool
! link
! mstpctl
! usercmd
! vlan
! vrrpd
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
!Support for vlan filtering mode in the bridge driver
!New add-ons
! VXLAN
! VRF
!Performances
! Netlink
!Policy manager
! To set or override system defaults
What’s new since October 2015 ?
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
New bridge driver
23
!VLAN-aware Bridges
! New 802.1Q Linux kernel bridge driver enable vlan aware mode
!Helps with scale
! Avoids creating 802.1Q vlan netdevs. Bypass netdevs and assign vlan ids to
bridge ports
!ifupdown2
! Now supports vlan-aware or vlan-filtering bridges
! Continues to support traditional bridge configuration
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Example
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Virtual eXtensible LAN - VLANs
25
!The VXLAN protocol is a tunneling protocol designed to
solve the problem of limited VLAN IDs (4096)
! 24 bits VXLAN ID max value: 16,777,216
!Network overlay
! Encapsulation of layer 2 frames using layer 3 UDP packets.
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
VXLAN example
26cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Virtual Routing and Forwarding - VRF
27
!Linux Implementation
! Kernel v4.3 and forward
!Developed by Cumulus Networks for Linux
! Consistent API across all Linux Devices - switches and hosts
!IP technology that provides traffic isolation at layer 3 for
routing
! Similar to how VLANs provide isolation at layer 2
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
VRF example
28
red FIB
table 1001
swp1 swp2
OR
auto all
iface red
address 127.0.0.1/8
vrf-table auto
iface swp1
vrf red
iface swp2
vrf red
auto all
iface red
address 127.0.0.1/8
vrf-table auto
%for i in range(1,4):
iface swp${i}
vrf red
%endfor
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
New policy infrastructure
29
!Defining default value for add-ons
● There is the expectation that removing configuration parameters from the
networking config file (and doing an ifreload -a) will restore a default
parameter (if one exists)
! The JSON configuration will dictate default setting and behavior for each
modules implementing this policy configuration
Default location
! /var/lib/ifupdown2/policy.d/*.json
User location
! /etc/network/ifupdown2/policy.d/*.json ! By Sam Tannous from Cumulus
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Policy Manager example
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
The Netlink transition
31
!Ifupdown2 scale but we can do better
! We are using standard Linux tools, such as iproute2, for many operations
! Execution of external commands slow things down
!Netlink is the answer
! Netlink is a IPC mechanism primarily between the kernel and user space
processes.
! Moving from iproute2 to direct netlink drastically improve performances.
!Next : pure Netlink backend
! We plan on having a pure netlink backend with possibility to fall back on
iproute2 when netlink capabilities are not available.
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Python-nlmanager
32
!In-house python netlink library for networking ops
! By Daniel Walton from Cumulus.
!Soon available on Debian
! Right now the code is shipped within ifupdown2 package
http://repo3.cumulusnetworks.com/repo/pool/cumulus/p/python-nlmanager/
cumulusnetworks.com
Config size
33cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Debian upstreaming
34
!Ifupdown2 on debian sid and jessie-backports
! Since october 2015 thanks to our sponsor (Piotr) :
https://packages.debian.org/sid/ifupdown2
! Available on apt or download the deb file
echo “deb http://ftp.de.debian.org/debian sid main” >> /etc/apt/sources.list
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
What’s new?
!Next
! Ifupdown2 version 2.0 before code freeze in December
! Increase performances (netlink and other stuff)
! Fix bugs reported by the community and Cumulus clients.
Getting started
36
! Ifupdown2 on github : https://github.com/CumulusNetworks/ifupdown2
! Ifupdown2 documentation : https://cumulusnetworks.github.io/ifupdown2
! Cumulus Linux ships with ifupdown2 in releases 2.1 or greater :
https://cumulusnetworks.com
! Article comparing ifupdown and ifupdown2 : https://
support.cumulusnetworks.com/hc/en-us/articles/202933638-Comparing-
ifupdown2-Commands-with-ifupdown-Commands
! Get in touch with us :
julien@cumulusnetworks.com
roopa@cumulusnetworks.com
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
Example of contribution
37cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
38
>1.5M
Ports powered by Cumulus
Networks technology
465+companies across for 

main industry verticals
145Telecom /

Service Provider
139
Public / Private

Cloud
101Government / Education
/ R & D
81
SaaS / Web 2.0
ifupdown2 user base
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
© 2014 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its affiliates in
the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive
licensee of Linus Torvalds, owner of the mark on a world-wide basis.
Thank You!
39
Bringing the Linux Revolution to Networking
julien@cumulusnetworks.com
cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016

More Related Content

What's hot

OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to BottomKernel TLV
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたakira6592
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on LinuxEtsuji Nakai
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングTomoya Hibi
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向Yuya Rin
 
Understanding Open vSwitch
Understanding Open vSwitch Understanding Open vSwitch
Understanding Open vSwitch YongKi Kim
 
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたDockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたnpsg
 
Tutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting routerTutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting routerShu Sugimoto
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network InterfacesKernel TLV
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking WalkthroughThomas Graf
 
Vxlan deep dive session rev0.5 final
Vxlan deep dive session rev0.5   finalVxlan deep dive session rev0.5   final
Vxlan deep dive session rev0.5 finalKwonSun Bae
 
OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Diverajdeep
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)Kirill Tsym
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking ExplainedThomas Graf
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt AffinityについてTakuya ASADA
 
Understanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeUnderstanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeVictor Morales
 
Packet flow on openstack
Packet flow on openstackPacket flow on openstack
Packet flow on openstackAchhar Kalia
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptablesKernel TLV
 

What's hot (20)

OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to Bottom
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on Linux
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
Understanding Open vSwitch
Understanding Open vSwitch Understanding Open vSwitch
Understanding Open vSwitch
 
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたDockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
 
Tutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting routerTutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting router
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking Walkthrough
 
Vxlan deep dive session rev0.5 final
Vxlan deep dive session rev0.5   finalVxlan deep dive session rev0.5   final
Vxlan deep dive session rev0.5 final
 
OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Dive
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt Affinityについて
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
Understanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeUnderstanding kube proxy in ipvs mode
Understanding kube proxy in ipvs mode
 
Packet flow on openstack
Packet flow on openstackPacket flow on openstack
Packet flow on openstack
 
Dpdk performance
Dpdk performanceDpdk performance
Dpdk performance
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 

Viewers also liked

Manage your switches like servers
Manage your switches like serversManage your switches like servers
Manage your switches like serversCumulus Networks
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the TillermanCumulus Networks
 
Linux networking is Awesome!
Linux networking is Awesome!Linux networking is Awesome!
Linux networking is Awesome!Cumulus Networks
 
How deep is your buffer – Demystifying buffers and application performance
How deep is your buffer – Demystifying buffers and application performanceHow deep is your buffer – Demystifying buffers and application performance
How deep is your buffer – Demystifying buffers and application performanceCumulus Networks
 
July NYC Open Networking Meeup
July NYC Open Networking MeeupJuly NYC Open Networking Meeup
July NYC Open Networking MeeupCumulus Networks
 
Dreamhost deploying dreamcompute at scale
Dreamhost deploying dreamcompute at scaleDreamhost deploying dreamcompute at scale
Dreamhost deploying dreamcompute at scaleCumulus Networks
 
Cumulus Linux 2.5.5 What's New
Cumulus Linux 2.5.5 What's NewCumulus Linux 2.5.5 What's New
Cumulus Linux 2.5.5 What's NewCumulus Networks
 
Webinar-Linux Networking is Awesome
Webinar-Linux Networking is AwesomeWebinar-Linux Networking is Awesome
Webinar-Linux Networking is AwesomeCumulus Networks
 
Operationalizing BGP in the SDDC
Operationalizing BGP in the SDDCOperationalizing BGP in the SDDC
Operationalizing BGP in the SDDCCumulus Networks
 
Webinar: Network Automation [Tips & Tricks]
Webinar: Network Automation [Tips & Tricks]Webinar: Network Automation [Tips & Tricks]
Webinar: Network Automation [Tips & Tricks]Cumulus Networks
 
Operationalizing VRF in the Data Center
Operationalizing VRF in the Data CenterOperationalizing VRF in the Data Center
Operationalizing VRF in the Data CenterCumulus Networks
 
Demystifying Networking Webinar Series- Routing on the Host
Demystifying Networking Webinar Series- Routing on the HostDemystifying Networking Webinar Series- Routing on the Host
Demystifying Networking Webinar Series- Routing on the HostCumulus Networks
 
Network Architecture for Containers
Network Architecture for ContainersNetwork Architecture for Containers
Network Architecture for ContainersCumulus Networks
 
Microservices Network Architecture 101
Microservices Network Architecture 101Microservices Network Architecture 101
Microservices Network Architecture 101Cumulus Networks
 
Building Scalable Data Center Networks
Building Scalable Data Center NetworksBuilding Scalable Data Center Networks
Building Scalable Data Center NetworksCumulus Networks
 
Demystifying Networking: Data Center Networking Trends 2017
Demystifying Networking: Data Center Networking Trends 2017Demystifying Networking: Data Center Networking Trends 2017
Demystifying Networking: Data Center Networking Trends 2017Cumulus Networks
 
Modern Data Center Network Architecture - The house that Clos built
Modern Data Center Network Architecture - The house that Clos builtModern Data Center Network Architecture - The house that Clos built
Modern Data Center Network Architecture - The house that Clos builtCumulus Networks
 
How Quantum configures Virtual Networks under the Hood?
How Quantum configures Virtual Networks under the Hood?How Quantum configures Virtual Networks under the Hood?
How Quantum configures Virtual Networks under the Hood?Etsuji Nakai
 

Viewers also liked (20)

Manage your switches like servers
Manage your switches like serversManage your switches like servers
Manage your switches like servers
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the Tillerman
 
Cumulus Linux 2.5.3
Cumulus Linux 2.5.3Cumulus Linux 2.5.3
Cumulus Linux 2.5.3
 
Linux networking is Awesome!
Linux networking is Awesome!Linux networking is Awesome!
Linux networking is Awesome!
 
Cumulus Linux 2.5.4
Cumulus Linux 2.5.4Cumulus Linux 2.5.4
Cumulus Linux 2.5.4
 
How deep is your buffer – Demystifying buffers and application performance
How deep is your buffer – Demystifying buffers and application performanceHow deep is your buffer – Demystifying buffers and application performance
How deep is your buffer – Demystifying buffers and application performance
 
July NYC Open Networking Meeup
July NYC Open Networking MeeupJuly NYC Open Networking Meeup
July NYC Open Networking Meeup
 
Dreamhost deploying dreamcompute at scale
Dreamhost deploying dreamcompute at scaleDreamhost deploying dreamcompute at scale
Dreamhost deploying dreamcompute at scale
 
Cumulus Linux 2.5.5 What's New
Cumulus Linux 2.5.5 What's NewCumulus Linux 2.5.5 What's New
Cumulus Linux 2.5.5 What's New
 
Webinar-Linux Networking is Awesome
Webinar-Linux Networking is AwesomeWebinar-Linux Networking is Awesome
Webinar-Linux Networking is Awesome
 
Operationalizing BGP in the SDDC
Operationalizing BGP in the SDDCOperationalizing BGP in the SDDC
Operationalizing BGP in the SDDC
 
Webinar: Network Automation [Tips & Tricks]
Webinar: Network Automation [Tips & Tricks]Webinar: Network Automation [Tips & Tricks]
Webinar: Network Automation [Tips & Tricks]
 
Operationalizing VRF in the Data Center
Operationalizing VRF in the Data CenterOperationalizing VRF in the Data Center
Operationalizing VRF in the Data Center
 
Demystifying Networking Webinar Series- Routing on the Host
Demystifying Networking Webinar Series- Routing on the HostDemystifying Networking Webinar Series- Routing on the Host
Demystifying Networking Webinar Series- Routing on the Host
 
Network Architecture for Containers
Network Architecture for ContainersNetwork Architecture for Containers
Network Architecture for Containers
 
Microservices Network Architecture 101
Microservices Network Architecture 101Microservices Network Architecture 101
Microservices Network Architecture 101
 
Building Scalable Data Center Networks
Building Scalable Data Center NetworksBuilding Scalable Data Center Networks
Building Scalable Data Center Networks
 
Demystifying Networking: Data Center Networking Trends 2017
Demystifying Networking: Data Center Networking Trends 2017Demystifying Networking: Data Center Networking Trends 2017
Demystifying Networking: Data Center Networking Trends 2017
 
Modern Data Center Network Architecture - The house that Clos built
Modern Data Center Network Architecture - The house that Clos builtModern Data Center Network Architecture - The house that Clos built
Modern Data Center Network Architecture - The house that Clos built
 
How Quantum configures Virtual Networks under the Hood?
How Quantum configures Virtual Networks under the Hood?How Quantum configures Virtual Networks under the Hood?
How Quantum configures Virtual Networks under the Hood?
 

Similar to Ifupdown2: Network Interface Manager

The Switch as a Server - PuppetConf 2014
The Switch as a Server - PuppetConf 2014The Switch as a Server - PuppetConf 2014
The Switch as a Server - PuppetConf 2014Puppet
 
Switch as a Server - PuppetConf 2014 - Leslie Carr
Switch as a Server - PuppetConf 2014 - Leslie CarrSwitch as a Server - PuppetConf 2014 - Leslie Carr
Switch as a Server - PuppetConf 2014 - Leslie CarrCumulus Networks
 
Exercise 4c stp rapid pvst+ question
Exercise 4c   stp rapid pvst+ questionExercise 4c   stp rapid pvst+ question
Exercise 4c stp rapid pvst+ questionsufi1248
 
Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501robertguerra
 
Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501robertguerra
 
Puppetconf2011 small
Puppetconf2011 smallPuppetconf2011 small
Puppetconf2011 smallPuppet
 
How to configure i pv6 services in the fttb c (no hgws) scenario
How to configure i pv6 services in the fttb c (no hgws) scenarioHow to configure i pv6 services in the fttb c (no hgws) scenario
How to configure i pv6 services in the fttb c (no hgws) scenarioHuanetwork
 
20141102 VyOS 1.1.0 and NIFTY Cloud New Features
20141102 VyOS 1.1.0 and NIFTY Cloud New Features20141102 VyOS 1.1.0 and NIFTY Cloud New Features
20141102 VyOS 1.1.0 and NIFTY Cloud New Features雄也 日下部
 
Www ccnav5 net_ccna_3_v5_0_scaling_networks_final_exam_2013
Www ccnav5 net_ccna_3_v5_0_scaling_networks_final_exam_2013Www ccnav5 net_ccna_3_v5_0_scaling_networks_final_exam_2013
Www ccnav5 net_ccna_3_v5_0_scaling_networks_final_exam_2013Đồng Quốc Vương
 
Global SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, TaiwanGlobal SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, TaiwanFei Ji Siao
 
DragonFlow sdn based distributed virtual router for openstack neutron
DragonFlow sdn based distributed virtual router for openstack neutronDragonFlow sdn based distributed virtual router for openstack neutron
DragonFlow sdn based distributed virtual router for openstack neutronEran Gampel
 
Building your own sdn with debian linux salt stack and python
Building your own sdn with debian linux salt stack and pythonBuilding your own sdn with debian linux salt stack and python
Building your own sdn with debian linux salt stack and pythonMaximilan Wilhelm
 
Openstack Neutron & Interconnections with BGP/MPLS VPNs
Openstack Neutron & Interconnections with BGP/MPLS VPNsOpenstack Neutron & Interconnections with BGP/MPLS VPNs
Openstack Neutron & Interconnections with BGP/MPLS VPNsThomas Morin
 
Creating a firewall in UBUNTU
Creating a firewall in UBUNTUCreating a firewall in UBUNTU
Creating a firewall in UBUNTUMumbai University
 
Application-Based Routing
Application-Based RoutingApplication-Based Routing
Application-Based RoutingHungWei Chiu
 
Espresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom QuiggleEspresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom Quiggleconfluent
 
Praktikum Lab 14 - Switch Security Configuration.docx
Praktikum Lab 14 - Switch Security Configuration.docxPraktikum Lab 14 - Switch Security Configuration.docx
Praktikum Lab 14 - Switch Security Configuration.docxIhsan Ihsan
 
Centos failover link
Centos failover link Centos failover link
Centos failover link Ediga Watson
 

Similar to Ifupdown2: Network Interface Manager (20)

The Switch as a Server - PuppetConf 2014
The Switch as a Server - PuppetConf 2014The Switch as a Server - PuppetConf 2014
The Switch as a Server - PuppetConf 2014
 
Switch as a Server - PuppetConf 2014 - Leslie Carr
Switch as a Server - PuppetConf 2014 - Leslie CarrSwitch as a Server - PuppetConf 2014 - Leslie Carr
Switch as a Server - PuppetConf 2014 - Leslie Carr
 
Exercise 4c stp rapid pvst+ question
Exercise 4c   stp rapid pvst+ questionExercise 4c   stp rapid pvst+ question
Exercise 4c stp rapid pvst+ question
 
Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501
 
Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501
 
portfolio2
portfolio2portfolio2
portfolio2
 
Puppetconf2011 small
Puppetconf2011 smallPuppetconf2011 small
Puppetconf2011 small
 
How to configure i pv6 services in the fttb c (no hgws) scenario
How to configure i pv6 services in the fttb c (no hgws) scenarioHow to configure i pv6 services in the fttb c (no hgws) scenario
How to configure i pv6 services in the fttb c (no hgws) scenario
 
20141102 VyOS 1.1.0 and NIFTY Cloud New Features
20141102 VyOS 1.1.0 and NIFTY Cloud New Features20141102 VyOS 1.1.0 and NIFTY Cloud New Features
20141102 VyOS 1.1.0 and NIFTY Cloud New Features
 
Www ccnav5 net_ccna_3_v5_0_scaling_networks_final_exam_2013
Www ccnav5 net_ccna_3_v5_0_scaling_networks_final_exam_2013Www ccnav5 net_ccna_3_v5_0_scaling_networks_final_exam_2013
Www ccnav5 net_ccna_3_v5_0_scaling_networks_final_exam_2013
 
Global SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, TaiwanGlobal SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, Taiwan
 
DragonFlow sdn based distributed virtual router for openstack neutron
DragonFlow sdn based distributed virtual router for openstack neutronDragonFlow sdn based distributed virtual router for openstack neutron
DragonFlow sdn based distributed virtual router for openstack neutron
 
Building your own sdn with debian linux salt stack and python
Building your own sdn with debian linux salt stack and pythonBuilding your own sdn with debian linux salt stack and python
Building your own sdn with debian linux salt stack and python
 
Openstack Neutron & Interconnections with BGP/MPLS VPNs
Openstack Neutron & Interconnections with BGP/MPLS VPNsOpenstack Neutron & Interconnections with BGP/MPLS VPNs
Openstack Neutron & Interconnections with BGP/MPLS VPNs
 
IPS_3M_eng
IPS_3M_engIPS_3M_eng
IPS_3M_eng
 
Creating a firewall in UBUNTU
Creating a firewall in UBUNTUCreating a firewall in UBUNTU
Creating a firewall in UBUNTU
 
Application-Based Routing
Application-Based RoutingApplication-Based Routing
Application-Based Routing
 
Espresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom QuiggleEspresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom Quiggle
 
Praktikum Lab 14 - Switch Security Configuration.docx
Praktikum Lab 14 - Switch Security Configuration.docxPraktikum Lab 14 - Switch Security Configuration.docx
Praktikum Lab 14 - Switch Security Configuration.docx
 
Centos failover link
Centos failover link Centos failover link
Centos failover link
 

More from Cumulus Networks

Building a Layer 3 network with Cumulus Linux
Building a Layer 3 network with Cumulus LinuxBuilding a Layer 3 network with Cumulus Linux
Building a Layer 3 network with Cumulus LinuxCumulus Networks
 
Operationalizing EVPN in the Data Center: Part 2
Operationalizing EVPN in the Data Center: Part 2Operationalizing EVPN in the Data Center: Part 2
Operationalizing EVPN in the Data Center: Part 2Cumulus Networks
 
Demystifying EVPN in the data center: Part 1 in 2 episode series
Demystifying EVPN in the data center: Part 1 in 2 episode seriesDemystifying EVPN in the data center: Part 1 in 2 episode series
Demystifying EVPN in the data center: Part 1 in 2 episode seriesCumulus Networks
 
Best practices for network troubleshooting
Best practices for network troubleshootingBest practices for network troubleshooting
Best practices for network troubleshootingCumulus Networks
 
NetDevOps 202: Life After Configuration
NetDevOps 202: Life After ConfigurationNetDevOps 202: Life After Configuration
NetDevOps 202: Life After ConfigurationCumulus Networks
 
Cumulus Networks: Automating Network Configuration
Cumulus Networks: Automating Network ConfigurationCumulus Networks: Automating Network Configuration
Cumulus Networks: Automating Network ConfigurationCumulus Networks
 
Open Networking for Your OpenStack
Open Networking for Your OpenStackOpen Networking for Your OpenStack
Open Networking for Your OpenStackCumulus Networks
 
Mlag invisibile layer 2 redundancy
Mlag invisibile layer 2 redundancyMlag invisibile layer 2 redundancy
Mlag invisibile layer 2 redundancyCumulus Networks
 
Using linux to manage the entire rack
Using linux to manage the entire rackUsing linux to manage the entire rack
Using linux to manage the entire rackCumulus Networks
 
Open Hardware for All - Webinar March 25, 2015
Open Hardware for All - Webinar March 25, 2015Open Hardware for All - Webinar March 25, 2015
Open Hardware for All - Webinar March 25, 2015Cumulus Networks
 

More from Cumulus Networks (12)

Building a Layer 3 network with Cumulus Linux
Building a Layer 3 network with Cumulus LinuxBuilding a Layer 3 network with Cumulus Linux
Building a Layer 3 network with Cumulus Linux
 
Operationalizing EVPN in the Data Center: Part 2
Operationalizing EVPN in the Data Center: Part 2Operationalizing EVPN in the Data Center: Part 2
Operationalizing EVPN in the Data Center: Part 2
 
Demystifying EVPN in the data center: Part 1 in 2 episode series
Demystifying EVPN in the data center: Part 1 in 2 episode seriesDemystifying EVPN in the data center: Part 1 in 2 episode series
Demystifying EVPN in the data center: Part 1 in 2 episode series
 
Best practices for network troubleshooting
Best practices for network troubleshootingBest practices for network troubleshooting
Best practices for network troubleshooting
 
NetDevOps 202: Life After Configuration
NetDevOps 202: Life After ConfigurationNetDevOps 202: Life After Configuration
NetDevOps 202: Life After Configuration
 
Cumulus Networks: Automating Network Configuration
Cumulus Networks: Automating Network ConfigurationCumulus Networks: Automating Network Configuration
Cumulus Networks: Automating Network Configuration
 
Open Networking for Your OpenStack
Open Networking for Your OpenStackOpen Networking for Your OpenStack
Open Networking for Your OpenStack
 
Big data, better networks
Big data, better networksBig data, better networks
Big data, better networks
 
Mlag invisibile layer 2 redundancy
Mlag invisibile layer 2 redundancyMlag invisibile layer 2 redundancy
Mlag invisibile layer 2 redundancy
 
Using linux to manage the entire rack
Using linux to manage the entire rackUsing linux to manage the entire rack
Using linux to manage the entire rack
 
Big Data, Better Networks
Big Data, Better NetworksBig Data, Better Networks
Big Data, Better Networks
 
Open Hardware for All - Webinar March 25, 2015
Open Hardware for All - Webinar March 25, 2015Open Hardware for All - Webinar March 25, 2015
Open Hardware for All - Webinar March 25, 2015
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Ifupdown2: Network Interface Manager

  • 1. v ifupdown2 : The ultimate Network Interface Manager Progress and Status Julien Fortin - Cumulus Networks July 5th, DebConf2016 - Cape Town, South Africa 1cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 2. Outline 2 ! Background & context ! What’s wrong with ifupdown? ! Ifupdown2 overview ! What’s new since October 2015 ? ! What’s next ? ! How to get started ! Questions cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 3. From intern to Member of Technical Staff 3 ! Background as a Software Engineer ! EPITECH, class of 2016. ! Undergrand Internship at Cumulus in 2014 ! Hired in March 2016, joining the ifupdown2 team cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 4. The Mother of Dragons 4 ! Roopa Prabhu ! First commit Nov 2013, ~2k lines of Python cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 5. The Mother of Dragons 5 • 618 commits • 18243 lines of python ! Roopa Prabhu ! First commit Nov 2013, ~2k lines of Python cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 6. Cumulus Networks, an Operating System company 6 !Cumulus Linux ! Debian (jessie) based distribution for Network Switches !Our Philosophy ! Manage your network switch as a server ! Use existing Linux tools to configure your network switches !Contributing back to the community ! Cumulus is upstreaming a lot of networking kernel patches (e.g. netlink, stp etc..) cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 7. Debian’s ifupdown ! Default Network Interface Manager for Debian ! Configuration file : /etc/network/interfaces ! Network interfaces represented by “iface” sections 7 iface br100 bridge-ports swp1 swp2 bridge-stp on cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 8. What’s wrong with ifupdown? 8 ! Code written in C (hard to maintain/extend) ! Does not understand interface dependency ! Problems with provisioning interfaces at scale ! No support for incremental changes to interface config ! No support to query/validate running configuration cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 9. Our solution: ifupdown2 9 ! New implementation in Python ! Backward compatibility with debian ifupdown ! Pluggable architecture with python add-on modules ! Ordered Network Interface dependency relationship handling ! Incremental changes and query live configuration cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 11. ifupdown2 interface configuration graph dependency 11cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016 ! Dependency graph of all interfaces ! Uses topological sort to order network interface configurations ! Execute interface configuration in dependency order
  • 12. ifupdown2 interface configuration graph dependency 12 Sorted interface list:
 swp1, swp1.100, swp2, swp2.100, swp3, swp4, bond, bond.100, bridge100 cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016 ! Dependency graph of all interfaces ! Uses topological sort to order network interface configurations ! Execute interface configuration in dependency order
  • 13. ifquery: Troubleshooting network interface dependencies 13 ▪$ ifquery br0 --print-dependency=list ▪br0 : ['bond1', 'bond2'] ▪bond1 : ['swp32', 'swp33'] ▪bond2 : ['swp30', 'swp31'] ▪swp32 : None ▪swp33 : None ▪swp30 : None ▪swp31 : None $ ifquery br0 --print-dependency=dot /* Generated by GvGen v.0.9 (http://software.inl.fr/trac/wiki/ GvGen) */ digraph G { compound=true; node1 [label="br0"]; node2 [label="bond1"]; node3 [label="bond2"]; node4 [label="swp32"]; node5 [label="swp33"]; node6 [label="swp30"]; node7 [label="swp31"]; node1->node2; node1->node3; node2->node4; node2->node5; node3->node6; node3->node7; } cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 14. 14 ifquery - - check ! We extended ifquery to query and validate applied state of a network interface Julien Fortin - ifupdown2 - DebConf2016
  • 15. 15 ifquery to persist running configuration cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 16. Incremental changes on live configuration 16 ! ifup/down work on already UP or DOWN interfaces ! Only applies the new changes without disturbing the existing config on interface cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 18. ifreload 18 !Reloads the network interface configuration ! By running `ifdown` on interfaces that were removed from /etc/network/ interfaces (or the provided file) ! And running `ifup` on all interfaces currently present in the config file. ! Pretty convenient rather than using `service networking restart` cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 19. JSON API 19 ! Supports interfaces imports and queries in JSON format ! Enables easier integration with automation/orchestration tools $ ifquery br0 auto br0 iface br0 inet static bridge-ports swp1.42 swp2.42 bridge-stp on $ ifquery br0 —format=json [ { "auto": true, "config": { "bridge-ports": “swp1.42 swp2.42", "bridge-stp": "on" }, "addr_method": "static", "name": "br0", "addr_family": "inet" } ] $ ifup -a -t json -i /etc/network/interfaces.json cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 20. Template support 20 Example: interfaces template to create bridges for vlan 1000 to 1100: ! Simplify cookie-cutter interface configurations with mako style templates http://www.makotemplates.org/ ! Provides option to plug-in alternate python template engines cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 21. Python add-on modules for interface configuration 21 ! address ! address virtual ! bond ! bridge ! bridgevlan ! dhcp ! ethtool ! link ! mstpctl ! usercmd ! vlan ! vrrpd cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 22. !Support for vlan filtering mode in the bridge driver !New add-ons ! VXLAN ! VRF !Performances ! Netlink !Policy manager ! To set or override system defaults What’s new since October 2015 ? cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 23. New bridge driver 23 !VLAN-aware Bridges ! New 802.1Q Linux kernel bridge driver enable vlan aware mode !Helps with scale ! Avoids creating 802.1Q vlan netdevs. Bypass netdevs and assign vlan ids to bridge ports !ifupdown2 ! Now supports vlan-aware or vlan-filtering bridges ! Continues to support traditional bridge configuration cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 25. Virtual eXtensible LAN - VLANs 25 !The VXLAN protocol is a tunneling protocol designed to solve the problem of limited VLAN IDs (4096) ! 24 bits VXLAN ID max value: 16,777,216 !Network overlay ! Encapsulation of layer 2 frames using layer 3 UDP packets. cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 27. Virtual Routing and Forwarding - VRF 27 !Linux Implementation ! Kernel v4.3 and forward !Developed by Cumulus Networks for Linux ! Consistent API across all Linux Devices - switches and hosts !IP technology that provides traffic isolation at layer 3 for routing ! Similar to how VLANs provide isolation at layer 2 cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 28. VRF example 28 red FIB table 1001 swp1 swp2 OR auto all iface red address 127.0.0.1/8 vrf-table auto iface swp1 vrf red iface swp2 vrf red auto all iface red address 127.0.0.1/8 vrf-table auto %for i in range(1,4): iface swp${i} vrf red %endfor cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 29. New policy infrastructure 29 !Defining default value for add-ons ● There is the expectation that removing configuration parameters from the networking config file (and doing an ifreload -a) will restore a default parameter (if one exists) ! The JSON configuration will dictate default setting and behavior for each modules implementing this policy configuration Default location ! /var/lib/ifupdown2/policy.d/*.json User location ! /etc/network/ifupdown2/policy.d/*.json ! By Sam Tannous from Cumulus cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 30. Policy Manager example cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 31. The Netlink transition 31 !Ifupdown2 scale but we can do better ! We are using standard Linux tools, such as iproute2, for many operations ! Execution of external commands slow things down !Netlink is the answer ! Netlink is a IPC mechanism primarily between the kernel and user space processes. ! Moving from iproute2 to direct netlink drastically improve performances. !Next : pure Netlink backend ! We plan on having a pure netlink backend with possibility to fall back on iproute2 when netlink capabilities are not available. cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 32. Python-nlmanager 32 !In-house python netlink library for networking ops ! By Daniel Walton from Cumulus. !Soon available on Debian ! Right now the code is shipped within ifupdown2 package http://repo3.cumulusnetworks.com/repo/pool/cumulus/p/python-nlmanager/ cumulusnetworks.com
  • 34. Debian upstreaming 34 !Ifupdown2 on debian sid and jessie-backports ! Since october 2015 thanks to our sponsor (Piotr) : https://packages.debian.org/sid/ifupdown2 ! Available on apt or download the deb file echo “deb http://ftp.de.debian.org/debian sid main” >> /etc/apt/sources.list cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 35. What’s new? !Next ! Ifupdown2 version 2.0 before code freeze in December ! Increase performances (netlink and other stuff) ! Fix bugs reported by the community and Cumulus clients.
  • 36. Getting started 36 ! Ifupdown2 on github : https://github.com/CumulusNetworks/ifupdown2 ! Ifupdown2 documentation : https://cumulusnetworks.github.io/ifupdown2 ! Cumulus Linux ships with ifupdown2 in releases 2.1 or greater : https://cumulusnetworks.com ! Article comparing ifupdown and ifupdown2 : https:// support.cumulusnetworks.com/hc/en-us/articles/202933638-Comparing- ifupdown2-Commands-with-ifupdown-Commands ! Get in touch with us : julien@cumulusnetworks.com roopa@cumulusnetworks.com cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 37. Example of contribution 37cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 38. 38 >1.5M Ports powered by Cumulus Networks technology 465+companies across for 
 main industry verticals 145Telecom /
 Service Provider 139 Public / Private
 Cloud 101Government / Education / R & D 81 SaaS / Web 2.0 ifupdown2 user base cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016
  • 39. © 2014 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis. Thank You! 39 Bringing the Linux Revolution to Networking julien@cumulusnetworks.com cumulusnetworks.comJulien Fortin - ifupdown2 - DebConf2016