SDX: A Software Defined Internet Exchange Arpit Gupta, Laurent Vanbever, Muhammad Shahbaz, Sean P. Donovan, Brandon Schlinker Nick Feamster, Jennifer Rexford,

Slides:



Advertisements
Similar presentations
SDN Applications Jennifer Rexford Princeton University.
Advertisements

SDX: A Software-Defined Internet Exchange
Jennifer Rexford Princeton University
1 Copyright  1999, Cisco Systems, Inc. Module10.ppt10/7/1999 8:27 AM BGP — Border Gateway Protocol Routing Protocol used between AS’s Currently Version.
Network Layer: Internet-Wide Routing & BGP Dina Katabi & Sam Madden.
© J. Liebeherr, All rights reserved 1 Border Gateway Protocol This lecture is largely based on a BGP tutorial by T. Griffin from AT&T Research.
Border Gateway Protocol Autonomous Systems and Interdomain Routing (Exterior Gateway Protocol EGP)
Fundamentals of Computer Networks ECE 478/578 Lecture #18: Policy-Based Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
1 Interdomain Routing Protocols. 2 Autonomous Systems An autonomous system (AS) is a region of the Internet that is administered by a single entity and.
Mini Introduction to BGP Michalis Faloutsos. What Is BGP?  Border Gateway Protocol BGP-4  The de-facto interdomain routing protocol  BGP enables policy.
Analysis of BGP Routing Tables
The Border Gateway Protocol (BGP) Sharad Jaiswal.
Internet Routing (COS 598A) Today: Interdomain Traffic Engineering Jennifer Rexford Tuesdays/Thursdays.
Network Monitoring for Internet Traffic Engineering Jennifer Rexford AT&T Labs – Research Florham Park, NJ 07932
Routing and Routing Protocols
Delivery, Forwarding, and Routing
Multipath Routing Jennifer Rexford Advanced Computer Networks Tuesdays/Thursdays 1:30pm-2:50pm.
Putting the “Inter” in “Internet” Jennifer Rexford Princeton University 1.
Computer Networks Layering and Routing Dina Katabi
Inter-domain Routing Outline Border Gateway Protocol.
Chapter 22 Network Layer: Delivery, Forwarding, and Routing
I-4 routing scalability Taekyoung Kwon Some slides are from Geoff Huston, Michalis Faloutsos, Paul Barford, Jim Kurose, Paul Francis, and Jennifer Rexford.
Software-Defined Networks Jennifer Rexford Princeton University.
Routing and Routing Protocols Routing Protocols Overview.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 2 v3.1 Module 6 Routing and Routing Protocols.
CS 3700 Networks and Distributed Systems Inter Domain Routing (It’s all about the Money) Revised 8/20/15.
Objectives: Chapter 5: Network/Internet Layer  How Networks are connected Network/Internet Layer Routed Protocols Routing Protocols Autonomous Systems.
Router and Routing Basics
10/8/2015CST Computer Networks1 IP Routing CST 415.
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks BGP.
Chapter 9. Implementing Scalability Features in Your Internetwork.
David Wetherall Professor of Computer Science & Engineering Introduction to Computer Networks Hierarchical Routing (§5.2.6)
Border Gateway Protocol (BGP) W.lilakiatsakun. BGP Basics (1) BGP is the protocol which is used to make core routing decisions on the Internet It involves.
More on Internet Routing A large portion of this lecture material comes from BGP tutorial given by Philip Smith from Cisco (ftp://ftp- eng.cisco.com/pfs/seminars/APRICOT2004.
SDX: A Software-Defined Internet eXchange Jennifer Rexford Princeton University
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429/556 Introduction to Computer Networks Inter-domain routing Some slides used with.
CCNA 2 Week 6 Routing Protocols. Copyright © 2005 University of Bolton Topics Static Routing Dynamic Routing Routing Protocols Overview.
CS 4396 Computer Networks Lab BGP. Inter-AS routing in the Internet: (BGP)
Evolving Toward a Self-Managing Network Jennifer Rexford Princeton University
Routing protocols. Static Routing Routes to destinations are set up manually Route may be up or down but static routes will remain in the routing tables.
1 Version 3.1 Module 6 Routed & Routing Protocols.
An internet is a combination of networks connected by routers. When a datagram goes from a source to a destination, it will probably pass through many.
Evolving Toward a Self-Managing Network Jennifer Rexford Princeton University
Routing in the Inernet Outcomes: –What are routing protocols used for Intra-ASs Routing in the Internet? –The Working Principle of RIP and OSPF –What is.
SDX: A Software-Defined Internet eXchange Jennifer Rexford Princeton University
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Programming Languages COS 597E: Software Defined Networking.
1 Border Gateway Protocol (BGP) and BGP Security Jeff Gribschaw Sai Thwin ECE 4112 Final Project April 28, 2005.
Nick Feamster Princeton University
Bringing External Connectivity and Experimenters to GENI Nick Feamster Georgia Tech.
1 Chapter 4: Internetworking (IP Routing) Dr. Rocky K. C. Chang 16 March 2004.
Inter-domain Routing Outline Border Gateway Protocol.
Border Gateway Protocol BGP-4 BGP environment How BGP works BGP information BGP administration.
ISDX: An Industrial-Scale Software-Defined IXP Arpit Gupta Princeton University Robert MacDavid, Rüdiger Birkner, Marco Canini,
Preliminaries: EE807 Software-defined Networked Computing KyoungSoo Park Department of Electrical Engineering KAIST.
1 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
Border Gateway Protocol
Forwarding and Routing IP Packets
COMP 3270 Computer Networks
Chapter 6 Delivery & Forwarding of IP Packets
BGP supplement Abhigyan Sharma.
CCNA 2 v3.1 Module 6 Routing and Routing Protocols
Lixin Gao ECE Dept. UMASS, Amherst
Module Summary BGP is a path-vector routing protocol that allows routing policy decisions at the AS level to be enforced. BGP is a policy-based routing.
BGP Overview BGP concepts and operation.
COS 561: Advanced Computer Networks
COS 561: Advanced Computer Networks
COMP/ELEC 429/556 Introduction to Computer Networks
BGP Instability Jennifer Rexford
Computer Networks Protocols
Control-Data Plane Separation
Presentation transcript:

SDX: A Software Defined Internet Exchange Arpit Gupta, Laurent Vanbever, Muhammad Shahbaz, Sean P. Donovan, Brandon Schlinker Nick Feamster, Jennifer Rexford, Scott Shenker, Russ Clark, Ethan Katz-Bassett

Border Gateway Protocol (BGP)  Border Gateway Protocol (BGP) o Exchange routing and reachability information between autonomous systems (AS) o Path vector protocol  Internet exchange point (IXP) o Physical location where multiple networks meet to exchange traffic and BGP routes o BGP-speaking border router is connected to a shared layer-two network and a BGP route server o More than 300 IXPs in the world

Issues with BGP  Routing only on destination IP prefix  Influence only over direct neighbors  Indirect expression of policy

SDX Challenges  Compelling applications  Programming abstractions  Scalable operation  Realistic deployment

SDX Applications  Application-specific peering  Inbound traffic engineering  Wide-area server load balancing  Redirection through middleboxes

Programming Abstractions  Each AS is given the illusion of its own virtual SDN switch  Ensures isolation between different participants  Each AS can run SDN applications that specify flexible policies for dropping, modifying, and forwarding the traffic  Policies of multiple ASes are combined into a single coherent policy for the physical switches

 Application-specific peering (AS A) (match(dstport = 80) >> fwd(B)) + (match(dstport = 443) >> fwd(C))  Inbound traffic engineering (AS B) (match(srcip = { /1}) >> fwd(B1)) + (match(srcip = { /1}) >> fwd(B2))  Combining policices (match(port=A1, dstport=80, srcip={ /1}) >> fwd(B1)) + (match(port=A1, dstport=80, srcip={ /1}) >> fwd(B2))

Wide-area server load balancing match(dstip= ) >> (match(srcip= /24) >> mod(dstip= )) + (match(srcip= /24) >> mod(dstip= ))

Integration with Interdomain Routing  SDX route server o collects the routes advertised by each participant BGP router o selects one best route for each prefix on behalf of each participant o re-advertises the best BGP route on the appropriate BGP sessions

Integration with Interdomain Routing  Overriding default BGP routes o rely on a default forwarding policy computed by BGP, override the policy as needed  Forwarding only along BGP-advertised paths o should not direct traffic to a next-hop AS that does not want to receive it  Grouping traffic based on BGP attributes o Example, forward all YouTube traffic to port (E1): YouTubePrefixes = RIB.filter(’as_path’,.*43515$) match(srcip={YouTubePrefixes}) >> fwd(E1)

Integration with Interdomain Routing  Originating BGP routes from the SDX o AS may want the SDX to originate routes for their IP prefixes announce ( /24) withdraw( /24)  Integrating SDX with existing infrastructure

Compilation by Policy Transformation  Enforcing isolation between participants o Each participant can only act on its own virtual switch o inbound policy: match() participant’s virtual port o outbound policy: match() participant’s physical ports PA = (match(port=A1) && match(dstport=80) >> fwd(B)) + (match(port=A1) && match(dstport=443) >> fwd(C)) PB = (match(port=B) && match(srcip={0/1}) >> fwd(B1)) + (match(port=B) && match(srcip={128/1}) >> fwd(B2))

Compilation by Policy Transformation  Enforcing consistency with BGP advertisements PA’ = (match(port=A1) && match(dstport=80) && (match(dstip=p1) || match(dstip=p2) || match(dstip=p3)) >> fwd(B)) + (match(port=A1) && match(dstport=443) && (match(dstip=p1) || match(dstip=p2) || match(dstip=p3) || match(dstip=p4)) >> fwd(C))

Compilation by Policy Transformation  Enforcing default forwarding using the best BGP route defA = (match(dstmac=MAC_B1) >> fwd(B)) + (match(dstmac=MAC_B2) >> fwd(B)) + (match(dstmac=MAC_C1) >> fwd(C)) + (match(port=A) >> modify(dstmac=MAC_A1) >> fwd(A1))

Compilation by Policy Transformation  Moving packets through the virtual topology o all augmented policies are composed into one main SDX policy SDX = (PA’’ + PB’’ + PC’’) >> (PA’’ + PB’’ + PC’’) o any packet that enters the SDX fabric either reaches the physical port of another participant or is dropped o No loops o Pyretic runtime will translate SDX policy to forwarding rules

Reducing Data-Plane State  Augmenting each participant’s policy with the BGP-learned prefixes could cause an explosion in the size of the final policy  global routing system has more than 500,000 IPv4 prefixes  Need to minimize the number of rules in the SDX switch o grouping prefixes with the same forwarding behavior into an equivalence class o implicitly tags the packets sent by each participant’s border router using a virtual MAC address

Grouping prefixes into equivalence classes  Forwarding Equivalence Class (FEC) is a set of IP prefixes that share the same forwarding behavior  conventional IP prefix aggregation does not work because prefixes p1 and p2 might not be contiguous IP address blocks  need a new way to combine prefixes

Offloading tagging to the participants’ border routers  use multi-stage Forwarding Information Base (FIB) for each participant  1 st table: matches on the destination IP prefix and tags packets with the associated FEC (use participant’s own border router)  2 nd table: matches on the tag and performs the forwarding actions associated with the FEC  we need: (1) a data-plane mechanism for tagging the packets (use MAC address) (2) a control-plane mechanism to instruct border router about which tag to use for each prefix (use BGP NextHop)

 Normally a router: o extracts next-hop IP address from the BGP route announcement o consults ARP table to translate the IP address to the corresponding MAC address o installs a forwarding-table entry that sets the destination MAC address before directing the packet to the output port  In SDX: o MAC address correspond to a virtual MAC address VMAC (FEC tag) o match on VMAC and perform the forwarding actions associated with the FEC o BGP next-hop IP address sent to the border router is called Virtual Next-Hop (VNH) o we can assign the same VNH to disjoint IP prefixes

Computing the virtual next hops  extracts the groups of IP prefixes for which the default behavior is affected in the same way by at least one SDX outbound policy  groups all the prefixes that had their default behavior overridden according to the default nexthop selected by the route server  combines the groups into one group C then computes C’ such that each element of C’ is the largest possible subset of elements of C with a non- empty intersection  No need to consider BGP prefixes that retain their default behavior

Reducing Control-Plane Computation  three computation-intensive operations o computing the VNHs o augmenting participants’ SDX policies o compiling the policies into forwarding rules  Optimizing initial compilation

Optimizing initial compilation policy_composed = (PA’’ + PB’’ + PC’’) >> (PA’’ + PB’’ + PC’’)  parallel-composition operator is distributive policy_composed = ((PA’’ >> PB’’)+(PA’’ >> PC’’))+ ((PB’’ >> PA’’)+(PB’’ >> PC’’))+ ((PC’’ >> PA’’)+(PC’’ >> PB’’))  Most SDX policies only concern a subset of the participants policy_composed = (PA’’ >> PB’’) + (PA’’ >> PC’’) + (PC’’ >> PB’’)  Most SDX policies are disjoint  Many policy idioms appear more than once in the global policy

Optimizing incremental updates  Prefixes that are likely to appear in SDX policies tend to be stable  Most BGP update bursts affect a small number of prefix groups  BGP bursts are separated by large periods with no changes 1)immediately creates a new VNH for p and recompiles the policy with a higher priority 2)Run optimal recompilation periodically in the background

Implementation

Application-Specific Peering

Wide-Area Load Balance

Prefixes and prefix groups

Forwarding rules and prefix groups

Initial compilation time

Questions