Nick Feamster Princeton University

Slides:



Advertisements
Similar presentations
Multihoming and Multi-path Routing
Advertisements

Multihoming and Multi-path Routing
Jennifer Rexford Princeton University MW 11:00am-12:20pm Logically-Centralized Control COS 597E: Software Defined Networking.
Logically Centralized Control Class 2. Types of Networks ISP Networks – Entity only owns the switches – Throughput: 100GB-10TB – Heterogeneous devices:
SDN Applications Jennifer Rexford Princeton University.
Programming Protocol-Independent Packet Processors
Jennifer Rexford Princeton University MW 11:00am-12:20pm Network Virtualization COS 597E: Software Defined Networking.
SDX: A Software-Defined Internet Exchange
Jennifer Rexford Princeton University
Slick: A control plane for middleboxes Bilal Anwer, Theophilus Benson, Dave Levin, Nick Feamster, Jennifer Rexford Supported by DARPA through the U.S.
Multi-Layer Switching Layers 1, 2, and 3. Cisco Hierarchical Model Access Layer –Workgroup –Access layer aggregation and L3/L4 services Distribution Layer.
OpenFlow-Based Server Load Balancing GoneWild
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.
Programming Abstractions for Software-Defined Networks Jennifer Rexford Princeton University.
SDN and Openflow.
Scalable Flow-Based Networking with DIFANE 1 Minlan Yu Princeton University Joint work with Mike Freedman, Jennifer Rexford and Jia Wang.
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) SriramGopinath( )
1 In VINI Veritas: Realistic and Controlled Network Experimentation Jennifer Rexford with Andy Bavier, Nick Feamster, Mark Huang, and Larry Peterson
DFence: Transparent Network-based Denial of Service Mitigation CSC7221 Advanced Topics in Internet Technology Presented by To Siu Sang Eric ( )
Stable Internet Routing Without Global Coordination Jennifer Rexford Princeton University Joint work with Lixin Gao (UMass-Amherst)
Anycast Jennifer Rexford Advanced Computer Networks Tuesdays/Thursdays 1:30pm-2:50pm.
1 Design and implementation of a Routing Control Platform Matthew Caesar, Donald Caldwell, Nick Feamster, Jennifer Rexford, Aman Shaikh, Jacobus van der.
A Routing Control Platform for Managing IP Networks Jennifer Rexford Princeton University
Economic Incentives in Internet Routing Jennifer Rexford Princeton University
Network Monitoring for Internet Traffic Engineering Jennifer Rexford AT&T Labs – Research Florham Park, NJ 07932
A Routing Control Platform for Managing IP Networks Jennifer Rexford Princeton University
SDX: A Software Defined Internet Exchange Arpit Gupta, Laurent Vanbever, Muhammad Shahbaz, Sean P. Donovan, Brandon Schlinker Nick Feamster, Jennifer Rexford,
Multipath Routing Jennifer Rexford Advanced Computer Networks Tuesdays/Thursdays 1:30pm-2:50pm.
Building a Strong Foundation for a Future Internet Jennifer Rexford ’91 Computer Science Department (and Electrical Engineering and the Center for IT Policy)
Putting the “Inter” in “Internet” Jennifer Rexford Princeton University 1.
Hash, Don’t Cache: Fast Packet Forwarding for Enterprise Edge Routers Minlan Yu Princeton University Joint work with Jennifer.
Jennifer Rexford Fall 2010 (TTh 1:30-2:50 in COS 302) COS 561: Advanced Computer Networks Stub.
FIREWALL TECHNOLOGIES Tahani al jehani. Firewall benefits  A firewall functions as a choke point – all traffic in and out must pass through this single.
Cellular Core Network Architecture
Enabling Innovation Inside the Network Jennifer Rexford Princeton University
Sponsored by the National Science Foundation Software Defined Exchanges: New Opportunities for Future Internet Research Mike Zink GREE-SC2014 July 21 st.
Software-Defined Networks Jennifer Rexford Princeton University.
VeriFlow: Verifying Network-Wide Invariants in Real Time
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks BGP.
Copyright 2013 Open Networking User Group. All Rights Reserved Confidential Not For Distribution Programming Abstractions for Software-Defined Networks.
Vytautas Valancius, Nick Feamster, Akihiro Nakao, and Jennifer Rexford.
SDX: A Software-Defined Internet eXchange Jennifer Rexford Princeton University
Programming Languages for Software Defined Networks Jennifer Rexford and David Walker Princeton University Joint work with the.
Evolving Toward a Self-Managing Network Jennifer Rexford Princeton University
High-Speed Policy-Based Packet Forwarding Using Efficient Multi-dimensional Range Matching Lakshman and Stiliadis ACM SIGCOMM 98.
Yaping Zhu with: Jennifer Rexford (Princeton University) Aman Shaikh and Subhabrata Sen (ATT Research) Route Oracle: Where Have.
Evolving Toward a Self-Managing Network Jennifer Rexford Princeton University
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.
John S. Otto Mario A. Sánchez John P. Rula Fabián E. Bustamante Northwestern, EECS.
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.
Jennifer Rexford Princeton University
The DPIaaS Controller Prototype
Whirlwind Tour Of Lectures So Far
SONATA: Scalable Streaming Analytics for Network Monitoring
6.829 Lecture 13: Software Defined Networking
Flexible and Scalable Systems for Network Management
Sonata Query-driven Streaming Network Telemetry
* Essential Network Security Book Slides.
DDoS Attack Detection under SDN Context
Software Defined Networking
Enabling Innovation Inside the Network
COS 561: Advanced Computer Networks
COS 561: Advanced Computer Networks
Programmable Networks
BGP Interactions Jennifer Rexford
BGP Instability Jennifer Rexford
Control-Data Plane Separation
Presentation transcript:

Nick Feamster Princeton University http://sdx.cs.princeton.edu SDX: A Software-Defined Internet Exchange Points Where We’ve Been, and Where We’re Going Nick Feamster Princeton University http://sdx.cs.princeton.edu Arpit Gupta, Rudiger Birkner, Laurent Vanbever, Marco Canini, Russ Clark, Sean Donovan, Scott Shenker, Ethan Katz-Bassett, Brandon Schlinker, Muhammad Shahbaz

Software Defined Networking Changing how we design & manage networks Data centers, backbones, enterprises, … But, so far, mostly inside these networks Network virtualization, traffic engineering, … In this talk: Fundamentally change interdomain traffic delivery Starting at the boundaries between domains

Interdomain Routing is Not Flexible Enough! Routing only on destination IP address blocks (No customization of routes by application or sender) Can only influence immediate neighbors (No ability to affect path selection remotely) Indirect control over packet forwarding (Indirect mechanisms to influence path selection) Enables only basic packet forwarding (Difficult to introduce new in-network services)

Valuable Wide-Area Services Application-specific peering Route video traffic one way, and non-video another Blocking denial-of-service traffic Dropping unwanted traffic further upstream Server load balancing Directing client requests to different data centers Steering through network functions Transcoders, scrubbers, caches, crypto, … Inbound traffic engineering Splitting incoming traffic over multiple peering links

Enter Software-Defined Networking Match packets on multiple header fields (not just destination IP address) Control entire networks with one program (not just immediate neighbors) Direct control over packet handling (not indirectly via routing protocol arcana) Perform a variety of actions on packets (beyond basic packet forwarding)

Deploy SDN at Internet Exchanges Leverage: SDN deployment even at single IXP can benefit tens to hundreds of providers Without providers deploying new equipment! Innovation hotbed: Incentives to innovate, as IXPs on front line of peering disputes Growing in numbers: 350-400 IXPs ~100 new IXPs established in past few years Content delivery Keep local traffic local (cost, performance, privacy/wiretapping)

“SDX: A Software-Defined Exchange Point” (SIGCOMM 2014) Arpit Gupta, Nick Feamster, Laurent Vanbever, Muhammad Shahbaz, Sean Donovan, Brandon Schlinker, Scott Shenker, Russ Clark, Ethan Katz-Bassett “An Industrial-scale Software Defined Internet Exchange Point” (NSDI 2016) Arpit Gupta, Robert MacDavid, Rudiger Birkner, Marco Canini, Nick Feamster, Jennifer Rexford, Laurent Vanbever

Conventional IXPs Route Server BGP Session IXP Switching Fabric So let’s first take a look as what a typical Exchange Point looks like. Exchange points have multiple participants. Their edge routers are connected to each other using using IXP’s switching fabric. These edge routers use the IXP’s route server to exchange BGP routes with each other. AS A Router AS B Router AS C Router

SDX = SDN + IXP SDX Controller SDX BGP Session SDN Switch Compared to these IXPs, we replace the switching fabric with SDN switches and the route server with SDX controller. This SDX controller, subsumes router server’s behavior of exchanging BGP routes It also takes participant’s SDN specific policies as input, combines them together and pushes down the set of OF rules. AS A Router AS B Router AS C Router

SDX Architecture

Use Case: Prevent DDoS Attacks Attacker AS1 can remotely block attack traffic at SDX(es) AS 3 SDX 1 SDX 2 AS 2 AS 1 Victim

SDX-based DDoS protection vs. Traditional Defenses/Blackholing Remote influence Physical connectivity to SDX not required More specific Drop rules based on multiple header fields, source address, destination address, port number … Coordinated Drop rules can be coordinated across multiple IXPs There are bunch of other applications that are also possible with SDX and you find more details about them in the paper.

Inbound Traffic Engineering SDX Controller SDX AS A Router Now let’s consider another scenario where AS C’s policy is to receive HTTP traffic on C2. C1 C2 10.0.0.0/8 AS B Router AS C Routers

Inbound Traffic Engineering Incoming Data C1 C2 AS A Router AS B Router 10.0.0.0/8 AS C Routers Now let’s consider another scenario where AS C’s policy is to receive HTTP traffic on C2. Now such a fine grained policy is not possible with BGP Incoming Traffic Out Port Using BGP Using SDX dstport = 80 C1

Inbound Traffic Engineering Incoming Data C1 C2 AS A Router AS B Router 10.0.0.0/8 Enables fine-grained traffic engineering policies AS C Routers So SDX enables more direct & fine grained traffic control which is not possible in current networks. There are bunch of other applications that are also possible with SDX and you find more details about them in the paper. Incoming Traffic Out Port Using BGP Using SDX dstport = 80 C1 ? match(dstport =80) fwd(C1)

Experimental Evaluation BGP RIBs & update traces from large EU IXP 511 IXP participants 96 million peering routes for 300K IP prefixes 25K BGP updates for 2-hour duration

SDX Design Scenarios Unoptimized SDX paper (SIGCOMM’14) Data-plane policy in a single rule table SDX paper (SIGCOMM’14) Encoding outbound neighbor in BGP next-hop Single SDX rule table (OpenFlow 1.0) iSDX paper (in submission) Encoding BGP reachability in BGP next-hop Multi-stage SDX rule table Partitioning of forwarding equivalence computation

We Can Do This at IXP-Scale! BGP routes and updates for large EU IXP in a commodity hardware switch

What’s Happening? Running code SDX testbeds Ongoing deployment efforts Github available from http://sdx.cs.princeton.edu Used in Coursera course on SDN SDX testbeds Transit Portal for “in the wild” experiments Mininet for controller experiments Ongoing deployment efforts Inter-agency exchange (NSA) Large European IXP

What’s Next?

New Technologies at Each Part of the Control Loop Writing Rules and Actions Monitoring Analytics More fine-grained and programmable (INT) Customizable Actions Streaming capabilities, inference Programmable Switches Fully programmable data planes

New Technologies on the Horizon Fully programmable data planes Highly programmable, protocol-independent packet processing Better inference and decision-making, in real-time Scalable, high-speed, distributed stream processing

Fully-Programmable Data Planes: Protocol-Independent Packet Processing SDN Control Plane Configuring: Parser, tables, and control flow Populating: Installing and querying rules Parser & Table Configuration Rule Translator Compiler Two modes: (i) configuration and (ii) populating Compiler configures the parser, lays out the tables (cognizant of switch resources and capabilities), and translates the rules to map to the hardware tables The compiler could run directly on the switch (or at least some backend portion of the compiler would do so) Target Switch

Switch Customization with P4 Parser Programmable parser: translate to state machine Fixed parser: verify the description is consistent Control Flow Target-independent: table graph of dependencies Target-dependent: mapping to switch resources Actions Specification of custom actions Translation of actions into underlying source code Parser: Programmable parser: translate parser description into a state machine Fixed parser: verify that the parser description is consistent with the target processor Control program Table graph: dependencies on processing order, opportunities for parallelism Mapping to switch resources: physical tables, types of memory, sizes, combining tables Rule translation Verify rules agree with the types Translate rules into the physical tables

Compiling to Target Switches Software switches Directly map the table graph to switch tables Recompile switch with new parse/match/action Hardware switches with RAM and TCAM RAM: hash table for tables with exact match TCAM: for tables with wildcards in the match Switches with parallel tables Analyze table graph for possible concurrency

New Technologies at Each Part of the Control Loop Writing Rules and Actions Monitoring Analytics More fine-grained and programmable (INT) Customizable Actions Streaming capabilities, inference Programmable Switches Fully programmable data planes

In-Band Network Telemetry (INT) Network elements collect, report, modify state in-real time as data packets go through switch. Writing state into packets (switch, in, out) tuples Latency Link Utilization Dynamic counters based on different hash buckets Dynamic actions based on counter thresholds Dynamic rule creation Reactive probing

Better Monitoring #1: Congestion Localization Today, localizing the source of congestion is challenging, for a number of reasons Difficult to measure from end hosts ISPs have (mostly good) information, but do not want to divulge all of it (e.g., congestion to specific peers)

Ingress/Egress Latency With INT Could send a train of packets with accurate timing information affixed as those packets traverse the network. Kim et al., “In-Band Network Telemetry via Programmable Data Planes”, ACM SIGCOMM (Demo Session) August 2015.

Better Monitoring #2: Security Example: DNS reflection Attacks Attacker spoofs source IP of DNS request to open resolver, often from many locations (Larger) responses go to victim Deployment at IXP may provide useful choke point. Can monitor for: Spikes in lookups from IPs, for domains …remediation, rate limiting may be possible

What Else May Be Possible/Useful with INT at SDXes In-band traceroute/topology discovery Per-hop latency/loss/utilization recording Active probing based on counter thresholds Dynamic redirection of traffic flows …

New Technologies at Each Part of the Control Loop Writing Rules and Actions Monitoring Analytics More fine-grained and programmable (INT) Customizable Actions Streaming capabilities, inference Programmable Switches Fully programmable data planes

Detecting Malicious ASes Through Rewiring Snapshots taken 3 months apart Malicious ASes tend to change connectivity more aggressively than legit ASes Konte et al. “ASwatch: A Reputation System to Expose Bulletproof Hosting ASes”, ACM SIGCOMM, August 2015.

BGP routing dynamics Advertise 52.34.21.0/24 Withdraw 52.34.21.0/24 Malicious activity Malicious AS Malicious AS Malicious AS Malicious ASes routing dynamics are driven by illicit operations e.g. short-lived announcements to perform malicious actions In contrast legit ASes dynamics are driven by policy changes, traffic engineering decisions

Fragmentation and churn of advertised prefixes 109.196.143/24 62.123.14/24 109.196.141/24 85.124.23/16 42.10.14/23 131.124.14/23 92.112.112/23 52.34.21/24 31.145.14/24 Malicious AS Malicious AS Malicious ASes rotate their advertised prefixes, e.g. to avoid evasion, blacklisting Advertise large number of non-contiguous prefixes

Idea: Real-Time Routing Decisions Based on Complex Inputs Cassandra RIBs Kafka Spouts Input Local Output NetFlow Records BGP Update FetchPath BestPath UpdatePath UpdateDP Storm Bolts IPS Alerts Process 100K BGP update burst within 50 ms

SDX Platform Running code SDX testbeds Ongoing deployment efforts Github available from http://sdx.cs.princeton.edu Used in Coursera course on SDN SDX testbeds Transit Portal for “in the wild” experiments Mininet for controller experiments Ongoing deployment efforts Inter-agency exchange (NSA) Large European IXP So far we have developed a prototype of SDX. We have two different types of SDX testbeds. One uses Transit portal to bring live traffic to the SDX switch and the other uses virtual containers in Mininet to emulate edge routers. We also have a demo after this session which shows how we develop two applications using SDX and how they interoperate with each other. You can find more details about this testbed from our github repo. We also have instructions for users to get started with SDX and try out their own new applications.

Conclusion The Internet is changing SDN can speed innovation Ongoing New challenges for content delivery Increasing importance of IXPs SDN can speed innovation New capabilities and abstractions Ongoing Operational deployments Looking forward… Protocol-independent switches High-rate stream processing