SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Waltzing on that gentle
trade‐off between
internet routes and FIB
space, an SDN story
Network Engineer @Spotify
● +10 years in the network industry
● Python enthusiast
● Automation junkie
David Barroso
Principal Software Developer @pmacct
● +10 years measuring and correlating traffic flows
● Service Providers are his DNA
Paolo Lucente
Spotify is a commercial music streaming service
providing digital rights management-restricted
content from record labels [...] Paid "Premium"
subscriptions remove advertisements and allow
users to download music to listen to offline.
Source: http://en.wikipedia.org/wiki/Spotify
What is Spotify?
● Over 60 million monthly active users
● 15 million paid subscribers
● More than 30 million songs
● Around 20.000 songs added each day
● Available in 58 markets
Source: https://press.spotify.com/information/
Some facts about Spotify
● 4 major datacenters
● Stockholm
● London
● San Jose
● Ashburn
● Users are directed to the closest datacenter by
default.
● In case of fault or maintenance users can be
redirected to another datacenter.
Global Architecture of Spotify
RIB vs. FIB
● RIB (Routing Information Base)
● A representation in memory of all available paths and their attributes. This
information is fed by routing protocols.
● FIB (Forwarding Information Base)
● A copy of the RIB (usually in hardware) where some attributes are resolved
(like next-hop or outgoing interface)
RIB vs. FIB (cont’d)
● RIB (Routing Information Base)
● Virtually unlimited (limited only by the memory of the device)
● FIB (Forwarding Information Base)
● Limited by the underlying hardware.
● Between 64k-128k LPM prefixes in modern switches with commodity ASICs.
● Between 500k-1000k LPM prefixes in expensive routers/switches with customized ASICs.
RIB vs. FIB (cont’d)
● Typically there is a one to one mapping between RIB and FIB entries.
● The Internet is comprised of +512k prefixes.
● This means we need to support +512k FIB entries if we want to reach
the entire Internet.
When you travel...
● Do you carry an Atlas?
● Or do you carry a local map?
So…
● Why do I need all the prefixes?
● What if I only install the prefixes I really need?
Do we really need to reach the entire Internet?
● Spotify streams music to users.
● We typically serve users in the closest datacenter.
● Why would my datacenter in San Jose need to know how to reach
users in Poland?
Example: Stockholm Datacenter
● Total unique IPv4 prefixes (including transit): 519.000
● Prefixes coming from peers: 150.000
● Average prefixes active per day: approx. 16.000
● Average prefixes from peers active per day: approx. 2.000
Example: Stockholm Datacenter
● Green line shows the total amount
of prefixes that have been used at
least once
● Blue line the amount of new
prefixes required at a given time
● Total prefixes: 519.000
● Prefixes added within the first hour:
6412
● New prefixes added within the
second hour: 1818
● New prefixes added within the
second hour: 1242
● New prefixes added within the
tenth hour: 327
Example: Stockholm Datacenter
● Red line shows total bandwidth
● Blue line shows traffic with a
matching prefix in the FIB
● Purple line shows % of traffic
matched.
● When we start we match 0% of the
traffic.
● After the first iteration (6412 routes
added) we match 99.263%
● After that we go to 99.9%.
● New prefixes are most likely scans
Goal
● Pick only the routes I need from the RIB so I can fit them on the FIB of a
switch with commodity ASICs.
Motivation
Switches:
● Are cheaper.
● Have higher 10G density
● 256x10G in 2 RU or 48x10G + 2x100G in 1 RU vs 288 x 10G ports in 10 RU
● Consume less power
● 3.4W vs 33W per 10G port
SDN Internet Router key pieces:
Selective Route Download
Feature that allows you to pick a subset of the routes on the RIB and
install them on the FIB. Available in Cumulus (bird), Arista*, Juniper, some
Cisco routers and probably others.
* If you plan to try on Arista contact your SE.
SDN Internet Router key pieces:
pmacct
http://www.pmacct.net/
pmacct: BGP integration
pmacct introduced a Quagga-based BGP daemon:
● Implemented as a parallel thread within the collector
● Doesn’t send UPDATEs and WITHDRAWs whatsoever
● Behaves as a passive BGP neighbor
● Maintains per-peer BGP RIBs
● Supports 32-bit ASNs; IPv4, IPv6 and VPN families
● Supports ADD-PATH (draft-ietf-idr-add-paths)
Why BGP at the collector?
● Telemetry reports on forwarding-plane, and a bit more.
● Extended visibility into control-plane information
SDN Internet Router: overview
Internet
Switch
Transit/
Backbo
ne
IXP
pmacct
BGP Controller
Spotify AP
● Transit will send the default route to the
Internet Switch. The route is installed by
default in the FIB.
● We receive from the IXP all the peers´
prefixes. Those are not installed, they
are forwarded to pmacct and the BGP
Controller.
● Pmacct will receive in addition sFlow
data.
0.0.0.0/0
Peers’
prefixes
Peers’
prefixes
Peers’
prefixes
& sFlow
SDN Internet Router: pmacct
Internet
Switch
Transit
IXP
pmacct
BGP Controller
Spotify AP
● pmacct aggregates sFlow data using
the BGP information previously sent by
the Internet Switch.
● pmacct reports the flows aggregated by
BGP prefix to the BGP controller.
● The BGP controller will compute the
best TopN prefixes.
● The BGP controller instructs the Internet
switch to install those TopN* prefixes.
* N is a number close to the maximum number of entries
that the FIB of the Internet Switch can support.
1. This is the flow
information
aggregated per
prefix
3. Please,
install these
prefixes I
computed.
Peers’
prefixes
& sFlow
2. Compute best
TopN prefixes.
SDN Internet Router: Spotify’s AP
Internet
Switch
Transit
IXP
pmacct
BGP Controller
Spotify AP
● $USER connects to the service
● The application informs the access
point that $USER has connected and
requests that the $PREFIX containing
his/her $IP is installed on the FIB.
● It might be installed already as another user
within the same range might have
connected previously or because pmacct
reported that prefix as being one of the
TopN prefixes.
● The BGP controller instructs the Internet
Switch to install the prefix if necessary.
1. $USER connects with
$IP.
2. Please, make sure
$PREFIX containing $IP
is installed.
3. Install $PREFIX (if
it wasn’t already).
Considerations
The BGP controller updates a prefix list containing the prefixes that the
device must take from the RIB and install on the FIB.
● If a prefix is removed from the RIB it will be removed from the FIB by the
device.
● If the BGP controller fails the prefix list remains in the device. Allowing the
device to operate normally as per the last instructions.
“Warming up” the FIB is important if you don’t want to buy as much transit
capacity as peering capacity you have. You can:
● If your application supports it, move users by region to the new location.
● Precompute the FIB using the flow information from another location and the
BGP table from the new location before you start advertising your prefixes.
Present and Future
● Demo run in Stockholm connected to Netnod to gather information (no
actual changes performed on the Internet Router there).
● Pilot to be run very soon in a major IXP in Europe.
Simulation in Stockholm: N = 10.000 prefixes
● Green line shows the total amount
of prefixes that have been used at
least once
● Blue line the amount of new
prefixes required at a given time.
● Red line shows the amount of
prefixes removed.
Simulation in Stockholm: N = 10.000 prefixes
● Red line shows total bandwidth
● Blue line shows traffic with a
matching prefix in the FIB
● Purple line shows % of traffic
matched.
● With only 10.000 prefixes we
offload around 99% of the traffic at
all times.
Simulation in Stockholm: N = 30.000 prefixes
● Green line shows the total amount
of prefixes that have been used at
least once
● Blue line the amount of new
prefixes required at a given time.
● Red line shows the amount of
prefixes removed.
Simulation in Stockholm: N = 30.000 prefixes
● Red line shows total bandwidth
● Blue line shows traffic with a
matching prefix in the FIB
● Purple line shows % of traffic
matched.
● With only 30.000 prefixes we
offload around 99.9% of the traffic
at all times.
Do you want to peer with us?
● Find us at peeringDB. We are peering under as8403.
● Send an email to peering@spotify.com even if we are not present in
your location.
Email: dbarroso@spotify.com
URL: https://github.com/dbarrosop/sir
Documentation and configuration examples: http://sdn-
internet-router-sir.readthedocs.org/en/latest/
Questions?
Want to join the band?
Check out spotify.com/jobs or
@Spotifyjobs for more information.

Weitere ähnliche Inhalte

Was ist angesagt?

Bgp For Presentation
Bgp For PresentationBgp For Presentation
Bgp For Presentation
Alp isik
 
BGP
BGPBGP

Was ist angesagt? (20)

Bgp
BgpBgp
Bgp
 
How BGP Works
How BGP WorksHow BGP Works
How BGP Works
 
BIRD Routing Daemon
BIRD Routing DaemonBIRD Routing Daemon
BIRD Routing Daemon
 
Ipv6
Ipv6Ipv6
Ipv6
 
Bgp For Presentation
Bgp For PresentationBgp For Presentation
Bgp For Presentation
 
Introduction to IPv6
Introduction to IPv6Introduction to IPv6
Introduction to IPv6
 
BGP
BGPBGP
BGP
 
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
 
BGP
BGP BGP
BGP
 
Mobile computing Mobile Transport Layer
Mobile computing Mobile Transport LayerMobile computing Mobile Transport Layer
Mobile computing Mobile Transport Layer
 
BGP (border gateway routing protocol)
BGP (border gateway routing protocol)BGP (border gateway routing protocol)
BGP (border gateway routing protocol)
 
Bgp protocol
Bgp protocolBgp protocol
Bgp protocol
 
Improving the peering business case with RPKI
Improving the peering business case with RPKIImproving the peering business case with RPKI
Improving the peering business case with RPKI
 
IPv6 Entreprise Multihoming
IPv6 Entreprise MultihomingIPv6 Entreprise Multihoming
IPv6 Entreprise Multihoming
 
BGP Techniques for Network Operators
BGP Techniques for Network OperatorsBGP Techniques for Network Operators
BGP Techniques for Network Operators
 
Bgp Basic Labs
Bgp Basic LabsBgp Basic Labs
Bgp Basic Labs
 
Innovation is back in the transport and network layers
Innovation is back in the transport and network layersInnovation is back in the transport and network layers
Innovation is back in the transport and network layers
 
BGP Prime
BGP Prime BGP Prime
BGP Prime
 
CodiLime Tech Talk - Adam Kułagowski: IPv6 - introduction
CodiLime Tech Talk - Adam Kułagowski: IPv6 - introductionCodiLime Tech Talk - Adam Kułagowski: IPv6 - introduction
CodiLime Tech Talk - Adam Kułagowski: IPv6 - introduction
 
Ipv6 routing
Ipv6 routingIpv6 routing
Ipv6 routing
 

Andere mochten auch

PLNOG14: Network and Application Performance Monitoring - Bob Cronin
PLNOG14: Network and Application Performance Monitoring - Bob CroninPLNOG14: Network and Application Performance Monitoring - Bob Cronin
PLNOG14: Network and Application Performance Monitoring - Bob Cronin
PROIDEA
 
4Developers 2015: Startup - czy masz szansę? - Krzysztof Daniel
4Developers 2015: Startup - czy masz szansę? - Krzysztof Daniel4Developers 2015: Startup - czy masz szansę? - Krzysztof Daniel
4Developers 2015: Startup - czy masz szansę? - Krzysztof Daniel
PROIDEA
 

Andere mochten auch (20)

4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...
4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...
4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...
 
PLNOG14: Network and Application Performance Monitoring - Bob Cronin
PLNOG14: Network and Application Performance Monitoring - Bob CroninPLNOG14: Network and Application Performance Monitoring - Bob Cronin
PLNOG14: Network and Application Performance Monitoring - Bob Cronin
 
JDD2015: Lucene - od wyszukiwarki po analizę danych - Zbyszko Papierski
JDD2015: Lucene - od wyszukiwarki po analizę danych - Zbyszko Papierski JDD2015: Lucene - od wyszukiwarki po analizę danych - Zbyszko Papierski
JDD2015: Lucene - od wyszukiwarki po analizę danych - Zbyszko Papierski
 
4Developers 2015: Mikroserwisy - szanse, dylematy i problemy - Łukasz Sowa
4Developers 2015: Mikroserwisy - szanse, dylematy i problemy - Łukasz Sowa4Developers 2015: Mikroserwisy - szanse, dylematy i problemy - Łukasz Sowa
4Developers 2015: Mikroserwisy - szanse, dylematy i problemy - Łukasz Sowa
 
JDD2015: ClassIndex - szybka alternatywa dla skanowania klas - Sławek Piotrowski
JDD2015: ClassIndex - szybka alternatywa dla skanowania klas - Sławek PiotrowskiJDD2015: ClassIndex - szybka alternatywa dla skanowania klas - Sławek Piotrowski
JDD2015: ClassIndex - szybka alternatywa dla skanowania klas - Sławek Piotrowski
 
4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian Grodzicki
4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian Grodzicki4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian Grodzicki
4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian Grodzicki
 
4Developers 2015: Minimalizowanie szkód powodowanych przez nowego członka w z...
4Developers 2015: Minimalizowanie szkód powodowanych przez nowego członka w z...4Developers 2015: Minimalizowanie szkód powodowanych przez nowego członka w z...
4Developers 2015: Minimalizowanie szkód powodowanych przez nowego członka w z...
 
JDD2015: Yes We Scan! Software Analysis Using jQAssistant And Neo4j - Dirk Ma...
JDD2015: Yes We Scan! Software Analysis Using jQAssistant And Neo4j - Dirk Ma...JDD2015: Yes We Scan! Software Analysis Using jQAssistant And Neo4j - Dirk Ma...
JDD2015: Yes We Scan! Software Analysis Using jQAssistant And Neo4j - Dirk Ma...
 
CONFidence2015: Who put the backdoor in my modem? - Ewerson (Crash) Guimaraes
CONFidence2015: Who put the backdoor in my modem? - Ewerson (Crash) Guimaraes CONFidence2015: Who put the backdoor in my modem? - Ewerson (Crash) Guimaraes
CONFidence2015: Who put the backdoor in my modem? - Ewerson (Crash) Guimaraes
 
PLNOG14: Network Automation - Sławomir Janukowicz
PLNOG14: Network Automation - Sławomir JanukowiczPLNOG14: Network Automation - Sławomir Janukowicz
PLNOG14: Network Automation - Sławomir Janukowicz
 
4Developers 2015: PHPNG kontra HHVM - Leszek Krupiński
4Developers 2015: PHPNG kontra HHVM - Leszek Krupiński4Developers 2015: PHPNG kontra HHVM - Leszek Krupiński
4Developers 2015: PHPNG kontra HHVM - Leszek Krupiński
 
4Developers 2015: Startup - czy masz szansę? - Krzysztof Daniel
4Developers 2015: Startup - czy masz szansę? - Krzysztof Daniel4Developers 2015: Startup - czy masz szansę? - Krzysztof Daniel
4Developers 2015: Startup - czy masz szansę? - Krzysztof Daniel
 
4Developers 2015: Dlaczego 99% firm, które tworzą API RESTowe kłamie? - Barte...
4Developers 2015: Dlaczego 99% firm, które tworzą API RESTowe kłamie? - Barte...4Developers 2015: Dlaczego 99% firm, które tworzą API RESTowe kłamie? - Barte...
4Developers 2015: Dlaczego 99% firm, które tworzą API RESTowe kłamie? - Barte...
 
4Developers: Jak nie zasnąć na telekonferencjach? - Paweł Wrzeszcz
4Developers: Jak nie zasnąć na telekonferencjach? - Paweł Wrzeszcz4Developers: Jak nie zasnąć na telekonferencjach? - Paweł Wrzeszcz
4Developers: Jak nie zasnąć na telekonferencjach? - Paweł Wrzeszcz
 
PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...
PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...
PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...
 
4Developers 2015: Stick to the rules - Consumer Driven Contracts - Marcin Grz...
4Developers 2015: Stick to the rules - Consumer Driven Contracts - Marcin Grz...4Developers 2015: Stick to the rules - Consumer Driven Contracts - Marcin Grz...
4Developers 2015: Stick to the rules - Consumer Driven Contracts - Marcin Grz...
 
DevOpsDays Warsaw 2015: Continuous Integration is Dead – Yegor Bugayenko
DevOpsDays Warsaw 2015: Continuous Integration is Dead – Yegor BugayenkoDevOpsDays Warsaw 2015: Continuous Integration is Dead – Yegor Bugayenko
DevOpsDays Warsaw 2015: Continuous Integration is Dead – Yegor Bugayenko
 
JDD2015: Panta rhei or Reactive Java in practice - Tomasz Kowalczewski
JDD2015: Panta rhei or Reactive Java in practice - Tomasz KowalczewskiJDD2015: Panta rhei or Reactive Java in practice - Tomasz Kowalczewski
JDD2015: Panta rhei or Reactive Java in practice - Tomasz Kowalczewski
 
Cumulus Linux 2.2 Overview
Cumulus Linux 2.2 OverviewCumulus Linux 2.2 Overview
Cumulus Linux 2.2 Overview
 
What is NetDevOps? How? Leslie Carr PuppetConf 2015
What is NetDevOps? How? Leslie Carr PuppetConf 2015What is NetDevOps? How? Leslie Carr PuppetConf 2015
What is NetDevOps? How? Leslie Carr PuppetConf 2015
 

Ähnlich wie PLNOG14: Waltzing on that gentle trade‐off between internet routes and FIB space, an SDN story - David Barroso, Paolo Lucente

High Speed Fiber Services and Challenges to the Core Network by Seiichi Kawamura
High Speed Fiber Services and Challenges to the Core Network by Seiichi KawamuraHigh Speed Fiber Services and Challenges to the Core Network by Seiichi Kawamura
High Speed Fiber Services and Challenges to the Core Network by Seiichi Kawamura
MyNOG
 
Study and Emulation of 10G-EPON with Triple Play
Study and Emulation of 10G-EPON with Triple PlayStudy and Emulation of 10G-EPON with Triple Play
Study and Emulation of 10G-EPON with Triple Play
Satya Prakash Rout
 

Ähnlich wie PLNOG14: Waltzing on that gentle trade‐off between internet routes and FIB space, an SDN story - David Barroso, Paolo Lucente (20)

Detecting Spoofing at IXPs
Detecting Spoofing at IXPsDetecting Spoofing at IXPs
Detecting Spoofing at IXPs
 
Detecting spoofing at IxP's
Detecting spoofing at IxP'sDetecting spoofing at IxP's
Detecting spoofing at IxP's
 
PLNOG 8: Rafał Szarecki - Telco Group Network
PLNOG 8: Rafał Szarecki - Telco Group Network PLNOG 8: Rafał Szarecki - Telco Group Network
PLNOG 8: Rafał Szarecki - Telco Group Network
 
BGP Multihoming Techniques
BGP Multihoming TechniquesBGP Multihoming Techniques
BGP Multihoming Techniques
 
PLNOG 7: Emil Gągała, Sławomir Janukowicz - carrier grade NAT
PLNOG 7: Emil Gągała,  Sławomir Janukowicz - carrier grade NAT PLNOG 7: Emil Gągała,  Sławomir Janukowicz - carrier grade NAT
PLNOG 7: Emil Gągała, Sławomir Janukowicz - carrier grade NAT
 
CCNA Based routing protocols
CCNA Based routing protocolsCCNA Based routing protocols
CCNA Based routing protocols
 
Peering 101 - ABQNOG1 - May2023
Peering 101 - ABQNOG1 - May2023Peering 101 - ABQNOG1 - May2023
Peering 101 - ABQNOG1 - May2023
 
High Speed Fiber Services and Challenges to the Core Network by Seiichi Kawamura
High Speed Fiber Services and Challenges to the Core Network by Seiichi KawamuraHigh Speed Fiber Services and Challenges to the Core Network by Seiichi Kawamura
High Speed Fiber Services and Challenges to the Core Network by Seiichi Kawamura
 
PLNOG 13: Krzysztof Mazepa: BGP FlowSpec
PLNOG 13: Krzysztof Mazepa: BGP FlowSpecPLNOG 13: Krzysztof Mazepa: BGP FlowSpec
PLNOG 13: Krzysztof Mazepa: BGP FlowSpec
 
3hows
3hows3hows
3hows
 
Gtp load balancing 27.9.17
Gtp load balancing   27.9.17Gtp load balancing   27.9.17
Gtp load balancing 27.9.17
 
PLNOG 22 - Manfred Lang - Automatyzacja widoczności – dynamiczne podejście w ...
PLNOG 22 - Manfred Lang - Automatyzacja widoczności – dynamiczne podejście w ...PLNOG 22 - Manfred Lang - Automatyzacja widoczności – dynamiczne podejście w ...
PLNOG 22 - Manfred Lang - Automatyzacja widoczności – dynamiczne podejście w ...
 
BGP evolution -from SDN perspective
BGP evolution -from SDN perspectiveBGP evolution -from SDN perspective
BGP evolution -from SDN perspective
 
Study and Emulation of 10G-EPON with Triple Play
Study and Emulation of 10G-EPON with Triple PlayStudy and Emulation of 10G-EPON with Triple Play
Study and Emulation of 10G-EPON with Triple Play
 
BASIC TO ADVANCED NETWORKING TUTORIALS
BASIC TO ADVANCED NETWORKING TUTORIALSBASIC TO ADVANCED NETWORKING TUTORIALS
BASIC TO ADVANCED NETWORKING TUTORIALS
 
Protocols and the TCP/IP Protocol Suite
Protocols and the TCP/IP Protocol SuiteProtocols and the TCP/IP Protocol Suite
Protocols and the TCP/IP Protocol Suite
 
Pristine rina-sdk-icc-2016
Pristine rina-sdk-icc-2016Pristine rina-sdk-icc-2016
Pristine rina-sdk-icc-2016
 
An FPGA for high end Open Networking
An FPGA for high end Open NetworkingAn FPGA for high end Open Networking
An FPGA for high end Open Networking
 
IPv6 .pdf
IPv6 .pdfIPv6 .pdf
IPv6 .pdf
 
Solving QoS multicast routing problem using aco algorithm
Solving QoS multicast routing problem using aco algorithm Solving QoS multicast routing problem using aco algorithm
Solving QoS multicast routing problem using aco algorithm
 

Kürzlich hochgeladen

一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
ayvbos
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
ydyuyu
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
ydyuyu
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Monica Sydney
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
ayvbos
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Monica Sydney
 

Kürzlich hochgeladen (20)

一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
 
Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...
Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...
Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
 
Call girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girlsCall girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girls
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
 
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call GirlsMira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency Dallas
 

PLNOG14: Waltzing on that gentle trade‐off between internet routes and FIB space, an SDN story - David Barroso, Paolo Lucente

  • 1. Waltzing on that gentle trade‐off between internet routes and FIB space, an SDN story
  • 2. Network Engineer @Spotify ● +10 years in the network industry ● Python enthusiast ● Automation junkie David Barroso Principal Software Developer @pmacct ● +10 years measuring and correlating traffic flows ● Service Providers are his DNA Paolo Lucente
  • 3. Spotify is a commercial music streaming service providing digital rights management-restricted content from record labels [...] Paid "Premium" subscriptions remove advertisements and allow users to download music to listen to offline. Source: http://en.wikipedia.org/wiki/Spotify What is Spotify?
  • 4. ● Over 60 million monthly active users ● 15 million paid subscribers ● More than 30 million songs ● Around 20.000 songs added each day ● Available in 58 markets Source: https://press.spotify.com/information/ Some facts about Spotify
  • 5. ● 4 major datacenters ● Stockholm ● London ● San Jose ● Ashburn ● Users are directed to the closest datacenter by default. ● In case of fault or maintenance users can be redirected to another datacenter. Global Architecture of Spotify
  • 6. RIB vs. FIB ● RIB (Routing Information Base) ● A representation in memory of all available paths and their attributes. This information is fed by routing protocols. ● FIB (Forwarding Information Base) ● A copy of the RIB (usually in hardware) where some attributes are resolved (like next-hop or outgoing interface)
  • 7. RIB vs. FIB (cont’d) ● RIB (Routing Information Base) ● Virtually unlimited (limited only by the memory of the device) ● FIB (Forwarding Information Base) ● Limited by the underlying hardware. ● Between 64k-128k LPM prefixes in modern switches with commodity ASICs. ● Between 500k-1000k LPM prefixes in expensive routers/switches with customized ASICs.
  • 8. RIB vs. FIB (cont’d) ● Typically there is a one to one mapping between RIB and FIB entries. ● The Internet is comprised of +512k prefixes. ● This means we need to support +512k FIB entries if we want to reach the entire Internet.
  • 9. When you travel... ● Do you carry an Atlas? ● Or do you carry a local map? So… ● Why do I need all the prefixes? ● What if I only install the prefixes I really need?
  • 10. Do we really need to reach the entire Internet? ● Spotify streams music to users. ● We typically serve users in the closest datacenter. ● Why would my datacenter in San Jose need to know how to reach users in Poland?
  • 11. Example: Stockholm Datacenter ● Total unique IPv4 prefixes (including transit): 519.000 ● Prefixes coming from peers: 150.000 ● Average prefixes active per day: approx. 16.000 ● Average prefixes from peers active per day: approx. 2.000
  • 12. Example: Stockholm Datacenter ● Green line shows the total amount of prefixes that have been used at least once ● Blue line the amount of new prefixes required at a given time ● Total prefixes: 519.000 ● Prefixes added within the first hour: 6412 ● New prefixes added within the second hour: 1818 ● New prefixes added within the second hour: 1242 ● New prefixes added within the tenth hour: 327
  • 13. Example: Stockholm Datacenter ● Red line shows total bandwidth ● Blue line shows traffic with a matching prefix in the FIB ● Purple line shows % of traffic matched. ● When we start we match 0% of the traffic. ● After the first iteration (6412 routes added) we match 99.263% ● After that we go to 99.9%. ● New prefixes are most likely scans
  • 14. Goal ● Pick only the routes I need from the RIB so I can fit them on the FIB of a switch with commodity ASICs.
  • 15. Motivation Switches: ● Are cheaper. ● Have higher 10G density ● 256x10G in 2 RU or 48x10G + 2x100G in 1 RU vs 288 x 10G ports in 10 RU ● Consume less power ● 3.4W vs 33W per 10G port
  • 16. SDN Internet Router key pieces: Selective Route Download Feature that allows you to pick a subset of the routes on the RIB and install them on the FIB. Available in Cumulus (bird), Arista*, Juniper, some Cisco routers and probably others. * If you plan to try on Arista contact your SE.
  • 17. SDN Internet Router key pieces: pmacct http://www.pmacct.net/
  • 18. pmacct: BGP integration pmacct introduced a Quagga-based BGP daemon: ● Implemented as a parallel thread within the collector ● Doesn’t send UPDATEs and WITHDRAWs whatsoever ● Behaves as a passive BGP neighbor ● Maintains per-peer BGP RIBs ● Supports 32-bit ASNs; IPv4, IPv6 and VPN families ● Supports ADD-PATH (draft-ietf-idr-add-paths) Why BGP at the collector? ● Telemetry reports on forwarding-plane, and a bit more. ● Extended visibility into control-plane information
  • 19. SDN Internet Router: overview Internet Switch Transit/ Backbo ne IXP pmacct BGP Controller Spotify AP ● Transit will send the default route to the Internet Switch. The route is installed by default in the FIB. ● We receive from the IXP all the peers´ prefixes. Those are not installed, they are forwarded to pmacct and the BGP Controller. ● Pmacct will receive in addition sFlow data. 0.0.0.0/0 Peers’ prefixes Peers’ prefixes Peers’ prefixes & sFlow
  • 20. SDN Internet Router: pmacct Internet Switch Transit IXP pmacct BGP Controller Spotify AP ● pmacct aggregates sFlow data using the BGP information previously sent by the Internet Switch. ● pmacct reports the flows aggregated by BGP prefix to the BGP controller. ● The BGP controller will compute the best TopN prefixes. ● The BGP controller instructs the Internet switch to install those TopN* prefixes. * N is a number close to the maximum number of entries that the FIB of the Internet Switch can support. 1. This is the flow information aggregated per prefix 3. Please, install these prefixes I computed. Peers’ prefixes & sFlow 2. Compute best TopN prefixes.
  • 21. SDN Internet Router: Spotify’s AP Internet Switch Transit IXP pmacct BGP Controller Spotify AP ● $USER connects to the service ● The application informs the access point that $USER has connected and requests that the $PREFIX containing his/her $IP is installed on the FIB. ● It might be installed already as another user within the same range might have connected previously or because pmacct reported that prefix as being one of the TopN prefixes. ● The BGP controller instructs the Internet Switch to install the prefix if necessary. 1. $USER connects with $IP. 2. Please, make sure $PREFIX containing $IP is installed. 3. Install $PREFIX (if it wasn’t already).
  • 22. Considerations The BGP controller updates a prefix list containing the prefixes that the device must take from the RIB and install on the FIB. ● If a prefix is removed from the RIB it will be removed from the FIB by the device. ● If the BGP controller fails the prefix list remains in the device. Allowing the device to operate normally as per the last instructions. “Warming up” the FIB is important if you don’t want to buy as much transit capacity as peering capacity you have. You can: ● If your application supports it, move users by region to the new location. ● Precompute the FIB using the flow information from another location and the BGP table from the new location before you start advertising your prefixes.
  • 23. Present and Future ● Demo run in Stockholm connected to Netnod to gather information (no actual changes performed on the Internet Router there). ● Pilot to be run very soon in a major IXP in Europe.
  • 24. Simulation in Stockholm: N = 10.000 prefixes ● Green line shows the total amount of prefixes that have been used at least once ● Blue line the amount of new prefixes required at a given time. ● Red line shows the amount of prefixes removed.
  • 25. Simulation in Stockholm: N = 10.000 prefixes ● Red line shows total bandwidth ● Blue line shows traffic with a matching prefix in the FIB ● Purple line shows % of traffic matched. ● With only 10.000 prefixes we offload around 99% of the traffic at all times.
  • 26. Simulation in Stockholm: N = 30.000 prefixes ● Green line shows the total amount of prefixes that have been used at least once ● Blue line the amount of new prefixes required at a given time. ● Red line shows the amount of prefixes removed.
  • 27. Simulation in Stockholm: N = 30.000 prefixes ● Red line shows total bandwidth ● Blue line shows traffic with a matching prefix in the FIB ● Purple line shows % of traffic matched. ● With only 30.000 prefixes we offload around 99.9% of the traffic at all times.
  • 28. Do you want to peer with us? ● Find us at peeringDB. We are peering under as8403. ● Send an email to peering@spotify.com even if we are not present in your location.
  • 29. Email: dbarroso@spotify.com URL: https://github.com/dbarrosop/sir Documentation and configuration examples: http://sdn- internet-router-sir.readthedocs.org/en/latest/ Questions? Want to join the band? Check out spotify.com/jobs or @Spotifyjobs for more information.