Seyed K. Fayazbakhsh Vyas Sekar Minlan Yu Jeff Mogul

Slides:



Advertisements
Similar presentations
New Directions in Enterprise Network Management Aditya Akella University of Wisconsin, Madison MSR Networking Summit June 2006.
Advertisements

Seyed K. Fayazbakhsh Vyas Sekar Minlan Yu Jeff Mogul
Practical and Incremental Convergence between SDN and Middleboxes 1 Zafar Qazi, Cheng-Chun Tu, Luis Chiang Vyas Sekar Rui Miao Minlan Yu.
Toward Practical Integration of SDN and Middleboxes
Logically Centralized Control Class 2. Types of Networks ISP Networks – Entity only owns the switches – Throughput: 100GB-10TB – Heterogeneous devices:
SIMPLE-fying Middlebox Policy Enforcement Using SDN
CPSC Network Layer4-1 IP addresses: how to get one? Q: How does a host get IP address? r hard-coded by system admin in a file m Windows: control-panel->network->configuration-
Nanxi Kang Princeton University
Programmable Measurement Architecture for Data Centers Minlan Yu University of Southern California 1.
Slick: A control plane for middleboxes Bilal Anwer, Theophilus Benson, Dave Levin, Nick Feamster, Jennifer Rexford Supported by DARPA through the U.S.
Toward Practical Convergence of Middleboxes and Software-Defined Networking Vyas Sekar Joint work with: Seyed Kaveh Fayazbakhsh, Zafar Qazi, Luis Chiang,
Practical and Incremental Convergence between SDN and Middleboxes 1 Zafar Qazi Cheng-Chun Tu Luis Chiang Vyas Sekar Rui Miao Minlan Yu.
VeriCon: Towards Verifying Controller Programs in SDNs (PLDI 2014) Thomas Ball, Nikolaj Bjorner, Aaron Gember, Shachar Itzhaky, Aleksandr Karbyshev, Mooly.
SDN and Openflow.
Scalable Flow-Based Networking with DIFANE 1 Minlan Yu Princeton University Joint work with Mike Freedman, Jennifer Rexford and Jia Wang.
Microsoft Virtual Academy Module 4 Creating and Configuring Virtual Machine Networks.
SIMPLE-fying Middlebox Policy Enforcement Using SDN Zafar Ayyub Qazi Cheng-Chun Tu Luis Chiang Vyas Sekar Rui Miao Minlan Yu.
Composing Software Defined Networks Jennifer Rexford Princeton University With Joshua Reich, Chris Monsanto, Nate Foster, and.
Software-Defined Networks Jennifer Rexford Princeton University.
Enforcing Network-Wide Policies in the Presence of Dynamic Middlebox Actions using FlowTags Seyed K. Fayazbakhsh *, Luis Chiang ¶, Vyas Sekar *, Minlan.
Extending SDN to Handle Dynamic Middlebox Actions via FlowTags (Full version to appear in NSDI’14) Seyed K. Fayazbakhsh, Luis Chiang, Vyas Sekar, Minlan.
ADV. NETWORK SECURITY CODY WATSON What’s in Your Dongle and Bank Account? Mandatory and Discretionary Protections of External Resources.
Programming Languages for Software Defined Networks Jennifer Rexford and David Walker Princeton University Joint work with the.
Aaron Gember, Theophilus Benson, Aditya Akella University of Wisconsin-Madison.
Improving Network Management with Software Defined Network Group 5 : z Xuling Wu z Haipeng Jiang z Sichen Wu z Aparna Sanil.
SIMPLE-fying Middlebox Policy Enforcement Using SDN
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Programming Languages COS 597E: Software Defined Networking.
FlowTags: Enforcing Network-Wide Policies in the Presence of Dynamic Middlebox Actions Author: Seyed Kaveh Fayazbakhsh, Vyas Sekar, Minlan Yu and Jeffrey.
SIMPLE-fying Middlebox Policy Enforcement Using SDN Zafar Ayyub Qazi, Cheng-Chun Tu, Luis Chiang Vyas Sekar, Rui Miao, Minlan Yu Presenter : ChoongHee.
Header Space Analysis: Static Checking for Networks Broadband Network Technology Integrated M.S. and Ph.D. Eun-Do Kim Network Standards Research Section.
BUZZ: Testing Context-Dependent Policies in Stateful Networks Seyed K. Fayaz, Tianlong Yu, Yoshiaki Tobioka, Sagar Chaki, Vyas Sekar.
Preliminaries: EE807 Software-defined Networked Computing KyoungSoo Park Department of Electrical Engineering KAIST.
Cooperative Caching in Wireless P2P Networks: Design, Implementation And Evaluation.
Software Defined Networking BY RAVI NAMBOORI. Overview  Origins of SDN.  What is SDN ?  Original Definition of SDN.  What = Why We need SDN ?  Conclusion.
Programming SDN 1 Problems with programming with POX.
Ready-to-Deploy Service Function Chaining for Mobile Networks
Translation Lookaside Buffer
Xin Li, Chen Qian University of Kentucky
Behrouz A. Forouzan TCP/IP Protocol Suite, 3rd Ed.
SDN Network Updates Minimum updates within a single switch
A Survey of Network Function Placement
Multi-layer software defined networking in GÉANT
Essentials of UrbanCode Deploy v6.1 QQ147
The DPIaaS Controller Prototype
Internet Indirection Infrastructure (i3)
sip-identity-04 Added new response codes for various conditions
Martin Casado, Nate Foster, and Arjun Guha CACM, October 2014
Containers: The new network endpoint
ETHANE: TAKING CONTROL OF THE ENTERPRISE
15-744: Computer Networking
NOX: Towards an Operating System for Networks
of Dynamic NFV-Policies
Web Caching? Web Caching:.
Cache Memory Presentation I
Software Defined Networking (SDN)
CS 457 – Lecture 10 Internetworking and IP
ONOS Drake Release September 2015.
Northbound API Dan Shmidt | January 2017
CS 31006: Computer Networks – The Routers
Software Defined Networking (SDN)
Toward Taming Policy Enforcement for SDN_______ in the RIGHT way_
DDoS Attack Detection under SDN Context
Software Defined Networking
ClosedFlow: OpenFlow-like Control over Proprietary Devices
Programmable Networks
Chapter 11: Network Address Translation for IPv4
Lecture 10, Computer Networks (198:552)
IP Control Gateway (IPCG)
BPSec: AD Review Comments and Responses
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

FlowTags: Enforcing Network-Wide Policies in the Presence of Dynamic Middlebox Actions Seyed K. Fayazbakhsh Vyas Sekar Minlan Yu Jeff Mogul Hi today I am going to present a framework for extending SDN so that we can continue to effectively enforce policies even in the presence of dynamic middlebox actions such as NATs/proxies/Wan optimizers modifying traffic flows..

Middleboxes complicate policy enforcement in SDN Policy routing Access control Diagnostics Forensics Control Apps Logical view: Specify policy goals Admin Network OS Physical View A key advantage of SDN is the ability to logically specify some high level policy goal e.g., for routing or access control and then being able to enforce that in the data plane automatically. While this picture looks quite nice and there has been a lot of work fulfilling this vision, things get a bit murkier when you throw middleboxes like NATs, IDS, proxy etc into the picture .. The key challenge is that these bxes can dynamically modify traffic, sometimes depending on the past history of observed traffic, and such context may not be available to the SDN controller! Let us look at some simple examples to see why this is the case. Dynamic traffic-dependent modifications! e.g., NATs, proxies “Flow” Action … Data Plane

Example: Policy Routing H1: NAT  Firewall H2: NAT  IDS NAT IDS Firewall H1 Internet S1 S2 H2 Consider a very canonical middlebox specific policy routing example. Here we want traffic from host1 to go thru nat + firewall and traffic from host 2 to go thru nat/ids. The problem is that the NAT is going to dynamically modify srcips based on some proprietary logic. Thus its unclear how we can correctly setup forwarding Rules at S2 to direct the packets thru the right paths. How do we setup correct forwarding rules?

Example: Dynamic Dependence Web ACL: Block H2  xyz Proxy H1 Get xyz.com Cached response Response Internet To make matters worse, the actions of the middelbox may depend on stateful semantics -- for instance consider the example where we have a proxy and an web access control device .. And we want to block access from Host2 to xyz.com .. The trouble of course is that the proxy may return a cached response to H2 that violates our intent of blocking its access to xyz.com. Note that this is orthogonal to the previous examples .. There we didn’t have to worry abt traffoc dependent actions. Get xyz.com S1 S2 H2 Cached response Cached responses may violate policy

Strawman Solutions Careful placement? (i.e., manual) May not always be feasible Consolidating middleboxes? (e.g., CoMb) Just “punting” the problem Inferring flow mappings? (e.g., SIMPLE) Hard to reason about accuracy + high overhead The previous examples showed the diff ways in which mboxes can mess up our ability to implemente policies correctly. At first glance, there appear to be some seemingly natural strawman solutions to this problem .. . For instance, may we can make sure mboxes are placed to avoid such conflicts – e.g., run ids before nat?. The problem is that there are cases where there is no feasible placement and morever this manual/error prone – goes against the sdn philosophy of logical/physical decoupling Another option is to cosoldate –e.g., if we run both proxy and webacl on the same box then presumably we can avoid such problems? Thing is that this isnt really solving the problem .. That consolidated box wll have some shim policy routing layer that needs to address this Another idea is why don’t we correlate the incoming/outgoing traffic – its not reloiable especially not all mboxes follow a pkt in pkt out semantics. The key here is that none of these solutions are really tackling the root of the problem – the lack of visilibut into middlebox specific context – what mappings what internal modifications it did etc. Add more text to this slide .. Key missing piece: Lack of “visibility” into middlebox context

FlowTags: High-level Idea Middleboxes “help” with the lack of visibility Add FlowTags to packets to bridge gaps NAT gives IP mappings; Proxy gives cache hit/miss Middleboxes “produce” + “consume” FlowTags Switches only “consume” FlowTags Our high-level idea with this work is to essentially address the root of the problem rather than some ad hoc workarounds. Our vision is a world where middelboxes also embrace SDN and help with the lack of bisibilty . Specifixlaly they add what we call “FlowTags” to the packet headers to bridge the gaps in our visiligyt. e.g., in our examples the nat will give private-public ip mappings or the proxy may expose cache hit/miss state in the header Note that middleboxes are both producers and consumers of flowtags -- they generate them and use them to implement their semantics Switches are passive consumers and use this in their forwarding logic.

FlowTags Architecture Overview Control Apps Existing Interfaces e.g., OpenFlow Controller FlowTags API FlowTags Enhanced Middleboxes Config SDN enabled Switches FlowTable “decouple” Analaogous to SDN apis like openflow, we envision new flowtags api that will programmatically install tag-related rules in these mboxes. finally we need analogous control apps for tag rule generation and policy verification .. e.g., NAT exposes mappings Proxy gives hit/miss state IDS uses tags to disambiguate

FlowTags Southbound API FlowTags Controller FlowMatch, Action RqstTag(Pkt,Context) FlowMatch, {Tags} RqstAction(Pkt + Tags) TagsActionTable H1 TagsFlowTable Proxy ACL S2 S1 Pkt Let us look a bit more in depth at what this new southbound api may look like .. Let us consider this example topology where we have a proxy in conjunction with the access control device. As we discussed earlier mboxes are both produces/consumers – in this case the proxy is a producer that has the tagsflowtable and the acl is the consusumer which has an actions table . Let us assume both are empty. When a proxy receives a pkt and processes it, it queries the conrtoller for the tag addition rule – here it will give addl contexst such as cache hit.miss state to the controller. The controller then returns a flowmach pattern and the tags that need to be added .. Which may be reused for future pkts as well . The proxy adds this tag to the pkt. When the acl device receives the pkt with the tag, it sends a msg to the controller to request a suitable set of action rules – e.g., block/drop this pkt or fwd it and the controler again installs a flowmatch pattehr with an action. Pkt w/ Tags Internet H2 8

Policy Implementation via FlowTags Policy: Block H2  xyz TagsFlowTable TagsActionTable H1, MISS  1 H1, HIT  2 H2, MISS  3 H2, HIT  4 Tag Src Action 4 H2 Block H1 Proxy ACL S2 S1 Internet Let us walk through an end to end example combining some of the things we have seen .. Suppose our policy here is to block host2 from accessing xyz and ratelimit wan bandwidth for all srces. As discussed the problem here is two fold .. The src that we see at S2 will be the proxy ip second, if there is a cached response it may bypass the acl device. So in this case we need tags to disambiguate both srces and provide hit/miss information. In this case the tagflowtable on the proxy will map these scenarios with some encoded tags. The forwarding rules of S1/S2 will now use tag information in addition to traditional flow match/interface fields to decide where to steer this pkt. Finally. When we come to the ACL/ratelimiting deivce, it has actions corresponding to the various scenars – for tags 1 hich are misses from host 1it will just do rate limitn. For tag 4, it will implement blocking w/o ratelimitng and for tag3 it will do both. Note that tag2 will not even be seen at acl since it’s a hit from H1. Input Tag Out Proxy 2 H1 1,3,4 S2 Input Tag Out S1 1,3,4 ACL 4 1,3 Internet H2

FlowTags Proof-of-Concept Using Squid (> over 100,000 lines of code) About 30 lines of code to add FlowTags support Manually identify code chokepoints Validated use-cases with examples As a proof of concept we have initially modified squid to add flowtags support .. We do this by identifying code chokepoints where we need to add the relevant Hooks and we have validated the examples in this tlak and a few more in the paper.

Conclusions Middleboxes make policy enforcement hard Dynamic modifications are hard to account for FlowTags can make “flow context” visible Minimal modifications to middleboxes No changes to switch/switch APIs Enabler for new verification and forensic tasks Simpler HSA; Dynamic policies; Correlating logs Early promise, but many challenges remain E.g., How many bits? Automatic patches? Control apps? To summairze the motivation for this work is that the dynamic modifications by mboxes make it hard to implement policies efficiently .. Its a bit weird because policy compliance is in fact a key driver for mbox adoptin. Our vision is to have a clean mechanism to address this visibility gaps rather than ad hoc heuristics … we emvision adding flowtags will impose minimal changes To mboxes .. And moreoever no changes to exisitng sdn switches and their apis. The overall vision here is tha such a mechanism can be an anabler for new policy verification and forensic functions and potentially simplify existing SDN tools as well .. Our proof of concept and examples are promising but we have quite a disance to go before this is “real” -- there are many challenges that we don’t quite know how to adrdress eyet – do we hae enough space with exsting header bits, how do we utomaitclaly patch this support into exisitng mvox software? How do we syamteically model the dynamic actions to genertate tagging rulets etc.