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

Virtualized network with openvswitch
Virtualized network with openvswitchVirtualized network with openvswitch
Virtualized network with openvswitchSim Janghoon
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観Yamato Tanaka
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたakira6592
 
Troubleshooting BGP
Troubleshooting BGPTroubleshooting BGP
Troubleshooting BGPAPNIC
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Seung-Hoon Baek
 
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
 
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)Kentaro Ebisawa
 
IPv6 を始めてみた
IPv6 を始めてみたIPv6 を始めてみた
IPv6 を始めてみたmiki koganei
 
EBPF and Linux Networking
EBPF and Linux NetworkingEBPF and Linux Networking
EBPF and Linux NetworkingPLUMgrid
 
Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack Romana Project
 
Learn O11y from Grafana ecosystem.
Learn O11y from Grafana ecosystem.Learn O11y from Grafana ecosystem.
Learn O11y from Grafana ecosystem.HungWei Chiu
 
検証環境をGoBGPで極力仮想化してみた
検証環境をGoBGPで極力仮想化してみた検証環境をGoBGPで極力仮想化してみた
検証環境をGoBGPで極力仮想化してみたToshiya Mabuchi
 
Overview of kubernetes network functions
Overview of kubernetes network functionsOverview of kubernetes network functions
Overview of kubernetes network functionsHungWei Chiu
 
ネットワーク通信入門
ネットワーク通信入門ネットワーク通信入門
ネットワーク通信入門Yuki Suga
 
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-NetzwerkstackL2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-NetzwerkstackMaximilan Wilhelm
 
Cisco Live Milan 2015 - BGP advance
Cisco Live Milan 2015 - BGP advanceCisco Live Milan 2015 - BGP advance
Cisco Live Milan 2015 - BGP advanceBertrand Duvivier
 
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개OpenStack Korea Community
 
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
 

What's hot (20)

Virtualized network with openvswitch
Virtualized network with openvswitchVirtualized network with openvswitch
Virtualized network with openvswitch
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
 
Troubleshooting BGP
Troubleshooting BGPTroubleshooting BGP
Troubleshooting BGP
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
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
 
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
 
IPv6 を始めてみた
IPv6 を始めてみたIPv6 を始めてみた
IPv6 を始めてみた
 
EBPF and Linux Networking
EBPF and Linux NetworkingEBPF and Linux Networking
EBPF and Linux Networking
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack
 
Learn O11y from Grafana ecosystem.
Learn O11y from Grafana ecosystem.Learn O11y from Grafana ecosystem.
Learn O11y from Grafana ecosystem.
 
Deploying IPv6 on OpenStack
Deploying IPv6 on OpenStackDeploying IPv6 on OpenStack
Deploying IPv6 on OpenStack
 
検証環境をGoBGPで極力仮想化してみた
検証環境をGoBGPで極力仮想化してみた検証環境をGoBGPで極力仮想化してみた
検証環境をGoBGPで極力仮想化してみた
 
Overview of kubernetes network functions
Overview of kubernetes network functionsOverview of kubernetes network functions
Overview of kubernetes network functions
 
ネットワーク通信入門
ネットワーク通信入門ネットワーク通信入門
ネットワーク通信入門
 
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-NetzwerkstackL2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
 
Cisco Live Milan 2015 - BGP advance
Cisco Live Milan 2015 - BGP advanceCisco Live Milan 2015 - BGP advance
Cisco Live Milan 2015 - BGP advance
 
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
 
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
 

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 Network Interface Manager ifupdown2: The Ultimate Tool

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
 
Contemporary Linux Networking
Contemporary Linux NetworkingContemporary Linux Networking
Contemporary Linux NetworkingMaximilan Wilhelm
 
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
 
Centos failover link
Centos failover link Centos failover link
Centos failover link Ediga Watson
 

Similar to Network Interface Manager ifupdown2: The Ultimate Tool (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
 
Contemporary Linux Networking
Contemporary Linux NetworkingContemporary Linux Networking
Contemporary Linux Networking
 
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
 
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
 
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 (11)

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
 
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

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Recently uploaded (20)

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

Network Interface Manager ifupdown2: The Ultimate Tool

  • 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