Natasha Gude, Teemu Koponen, Justin Pettit, Ben Pfaff, Martín Casado, Nick McKeown, Scott Shenker SIGCOMM CCR, 2008 Presented by Ye Tian for Course CS05112.

Slides:



Advertisements
Similar presentations
June 2007NSF Find Forensics and Attribution in Ethane Martin Casado Stanford University With: Michael Freedman, Justin Pettit, Jianying Luo, Natasha Gude,
Advertisements

Resonance: Dynamic Access Control in Enterprise Networks Ankur Nayak, Alex Reimers, Nick Feamster, Russ Clark School of Computer Science Georgia Institute.
1 Resonance: Dynamic Access Control in Enterprise Networks Ankur Nayak, Alex Reimers, Nick Feamster, Russ Clark School of Computer Science Georgia Institute.
Flow-based Management Language Tim Hinrichs Natasha Gude* Martín Casado John Mitchell Scott Shenker University of Chicago Stanford University ICSI/UC Berkeley.
1 Resonance: Dynamic Access Control in Enterprise Networks Ankur Nayak, Alex Reimers, Nick Feamster, Russ Clark School of Computer Science Georgia Institute.
Applying NOX to the Datacenter Arsalan Tavakoli, Martin Casado, Teemu Koponen, and Scott Shenker 10/22/2009Hot Topics in Networks Workshop 2009.
An Overview of Software-Defined Network Presenter: Xitao Wen.
11 TROUBLESHOOTING Chapter 12. Chapter 12: TROUBLESHOOTING2 OVERVIEW  Determine whether a network communications problem is related to TCP/IP.  Understand.
Ethane: Taking Control of the Enterprise
SDN and Openflow.
Scalable Flow-Based Networking with DIFANE 1 Minlan Yu Princeton University Joint work with Mike Freedman, Jennifer Rexford and Jia Wang.
June, 2006 Stanford 2006 Ethane: Addressing the Protection Problem in Enterprise Networks Martin Casado Michael Freedman Glen Gibb Lew Glendenning Dan.
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) SriramGopinath( )
What's inside a router? We have yet to consider the switching function of a router - the actual transfer of datagrams from a router's incoming links to.
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Internetworking.
Oct 26, 2004CS573: Network Protocols and Standards1 IP: Routing and Subnetting Network Protocols and Standards Autumn
Oct 21, 2004CS573: Network Protocols and Standards1 IP: Addressing, ARP, Routing Network Protocols and Standards Autumn
Chapter 23: ARP, ICMP, DHCP IS333 Spring 2015.
Chapter 9 Classification And Forwarding. Outline.
1 LAN switching and Bridges Relates to Lab 6. Covers interconnection devices (at different layers) and the difference between LAN switching (bridging)
Networking Components
Languages for Software-Defined Networks Nate Foster, Arjun Guha, Mark Reitblatt, and Alec Story, Cornell University Michael J. Freedman, Naga Praveen Katta,
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Software Stack COS 597E: Software Defined Networking.
1 LAN switching and Bridges Relates to Lab 6. Covers interconnection devices (at different layers) and the difference between LAN switching (bridging)
Understanding Networks Charles Zangla. Network Models Before I can explain how connections are made from across the country, I would like to provide you.
Virtual LANs. VLAN introduction VLANs logically segment switched networks based on the functions, project teams, or applications of the organization regardless.
FIREWALL TECHNOLOGIES Tahani al jehani. Firewall benefits  A firewall functions as a choke point – all traffic in and out must pass through this single.
Interior Gateway Routing Protocol (IGRP) is a distance vector interior routing protocol (IGP) invented by Cisco. It is used by routers to exchange routing.
CS426Fall 2010/Lecture 361 Computer Security CS 426 Lecture 36 Perimeter Defense and Firewalls.
Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, Jonathan Turner, SIGCOM CCR, 2008 Presented.
1 Internet Protocol: Forwarding IP Datagrams Chapter 7.
Configuring Routing and Remote Access(RRAS) and Wireless Networking
Firewall and Internet Access Mechanism that control (1)Internet access, (2)Handle the problem of screening a particular network or an organization from.
1 The Firewall Menu. 2 Firewall Overview The GD eSeries appliance provides multiple pre-defined firewall components/sections which you can configure uniquely.
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
 Network Segments  NICs  Repeaters  Hubs  Bridges  Switches  Routers and Brouters  Gateways 2.
SDN Dev Group, Week 3 Aaron GemberAditya Akella University of Wisconsin-Madison 1 Floodlight Controller; Application Wishlist.
June, 2006 Stanford 2006 Ethane. June, 2006 Stanford 2006 Security and You  What does security mean to you?  Data on personal PC?  Data on family PC?
OpenFlow:Enabling Innovation in Campus Network
Institute of Technology Sligo - Dept of Computing Sem 2 Chapter 12 Routing Protocols.
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
Internet Protocol: Routing IP Datagrams Chapter 8.
Aaron Gember, Theophilus Benson, Aditya Akella University of Wisconsin-Madison.
STORE AND FORWARD & CUT THROUGH FORWARD Switches can use different forwarding techniques— two of these are store-and-forward switching and cut-through.
Networking Material taken mainly from HowStuffWorks.com.
M. Veeraraghavan (originals by J. Liebeherr) 1 Need for Routing in Ethernet switched networks What do bridges do if some LANs are reachable only in multiple.
OpenFlow MPLS and the Open Source Label Switched Router Department of Computer Science and Information Engineering, National Cheng Kung University, Tainan,
OpenFlow & NOX (& how the SDN era started) CCR 2008 Whitepapers Nick McKeown & Natasha Gude et al. Presented by: M. Asim Jamshed Some slides have been.
CSci8211: SDN Controller Design 1 Overview of SDN Controller Design  SDN Re-cap  SDN Controller Design: Case Studies  NOX Next Week:  ONIX  ONOS 
NOX: Towards an Operating System for Networks Author: Natasha Gude, Teemu Koponen, Justin Pettit, Ben Pfaff, Martín Casado, Nick McKeown and Scott Shenker.
1 LAN switching and Bridges Relates to Lab Outline Interconnection devices Bridges/LAN switches vs. Routers Bridges Learning Bridges Transparent.
Coping with Link Failures in Centralized Control Plane Architecture Maulik Desai, Thyagarajan Nandagopal.
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
Programming Assignment 2 Zilong Ye. Traditional router Control plane and data plane embed in a blackbox designed by the vendor high-seed switching fabric.
Sem 2 v2 Chapter 12: Routing. Routers can be configured to use one or more IP routing protocols. Two of these IP routing protocols are RIP and IGRP. After.
InterVLAN Routing 1. InterVLAN Routing 2. Multilayer Switching.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Programming SDN 1 Problems with programming with POX.
IP: Addressing, ARP, Routing
The DPIaaS Controller Prototype
Routing Jennifer Rexford.
ETHANE: TAKING CONTROL OF THE ENTERPRISE
NOX: Towards an Operating System for Networks
Overview of SDN Controller Design
Introduction to Networking
Virtual LANs.
CS 31006: Computer Networks – The Routers
Software Defined Networking (SDN)
Implementing an OpenFlow Switch on the NetFPGA platform
Programmable Networks
Presentation transcript:

Natasha Gude, Teemu Koponen, Justin Pettit, Ben Pfaff, Martín Casado, Nick McKeown, Scott Shenker SIGCOMM CCR, 2008 Presented by Ye Tian for Course CS05112

Overview Background and Motivation NOX Overview Programming Interface Example Applications Review

Background Enterprise network is complex, hard to manage Many devices Different vendors Various protocols Various services and requirements

An Analogy with OS In early days, programs were written in machine languages No common abstractions for the underlying physical resources. Programs are hard to write, port, reason about, and debug. Modern operating systems Facilitate program development Provide controlled access to high-level abstractions for resources

Motivation Networks are managed through low-level configuration of individual components. Blocking a user with ACL: need to known the user’s current IP address Forcing port 80 traffic to HTTP proxy requires extensive knowing the current network topology An enterprise network resembles a computer without an operating system, Network-dependent component configuration is similar to hardware-dependent machine-language programming.

Motivation Need a network operating system provides the ability to observe and control a network. Does not manage the network itself, but provides a programmatic interface. Applications implemented on top of the network operating system perform the actual management tasks.

Motivation What’s the difference? Presents programs with a centralized programming model; programs are written as if the entire network were present on a single machine. Programs are written in terms of high-level abstractions (e.g., user and host names), not low-level configuration parameters (e.g., IP and MAC addresses). The solution: NOX Available at

Overview Background and Motivation NOX Overview Programming Interface Example Applications Review

Components Primary components A set of switches: support OpenFlow abstraction One or more network- attached servers: run NOX softwares; can be thought of as involving several different controller processes and a single network view.

Granularity NOX’s network view: The switch-level topology; the locations of users, hosts, middle-boxes, and other network elements; and the services (e.g., HTTP or NFS) being offered. All bindings between names and addresses. Does not include the current state of network traffic.

Granularity Choosing the granularity involves trading off between scalability vs. flexibility. A centralized per-packet control: infeasible to implement across any sizable network. No scalability. Prefix-based routing table: not allow sufficient control, since all packets between two hosts would have to follow the same path. No flexibility. An intermediate flow-based granularity Once control is exerted on some packet, subsequent packets with the same header are treated in the same way.

Switch Abstraction Independent of the particular switch hardware. Support the flow-level control granularity. Switches are represented by flow tables with entries like: For each packet matching the specified header, the counters are updated and the appropriate actions taken. If a packet matches multiple flow entries, the entry with the highest priority is chosen.

Switch Abstraction Basic set of OpenFlow actions Forward as default (i.e., forward as if NOX were not present) Forward out specified interface Deny Forward to a controller process Modify various packet header fields (e.g., VLAN tags, source and destination IP address and port).

Operation At the switch, If an incoming packet matches a flow entry at a switch Updates the appropriate counters and applies the corresponding actions. If doesn’t match: Forwarded to a controller process. Two cases: 1. These packets often are the first packet of a flow 2. The controller processes may choose to receive all packets from certain protocols. (e.g., DNS)

Operation NOX applications use flow-initiations and other forwarded traffic to Observe: Construct the network view. Use DNS, DHCP, LLDP, and flow-initiations to construct the network view, including both the network topology and the set of name-address bindings. Control: Determine whether to forward traffic, and, if so, which route. Develop access-control and routing applications that determine if a flow should be allowed, compute an appropriate L2 route, install flow entries in all the switches along the path, and then return the packet to the originating switch

Scaling Events in NOX Packet arrivals: millions per sec. Flow initiations: one or more orders of magnitude less than the packet arrival rate. Changes in the network view: tens of events per second for networks of thousands of hosts. Persistency : The only network state that is global consistent is the network view, can be handled by the centralized controller. Neither packet state nor flow state are part of the network view, can be kept in local storage.

Scaling Use parallelism to handle events that occur on rapid timescales A single controller process running on a generic PC can currently handle 100,000 flow initiations per second, more than sufficient for the large campus networks we’ve measured in previous work Implementation status Implemented with Python and C++, 32,000 lines. Run in user space. Manage an internal network of roughly 30 hosts for over 6 months.

Overview Background and Motivation NOX Overview Programming Interface Example Applications Review

Programmatic Interface Events Use a set of handlers that are registered to execute when a particular event happens. Some events are generated directly by OpenFlow messages. Other events are generated by NOX applications as a result of processing these low-level events and/or other application-generated events.

Programmatic Interface Network View and Namespace NOX includes a number of “base” applications that construct the network view and maintain a high-level namespace that can be used by other applications. Allow applications to be written in a topology independent manner. High-level declarations can be “compiled” against the network view to produce low-level lookup functions that are enforced per-packet. The worst result of a poorly written application is performance degradation, not incorrect function.

Programmatic Interface Control Management applications exert network control through OpenFlow. OpenFlow will not include custom per-packet processing (e.g., deep packet inspection). NOX applications can direct traffic through specialized middle-boxes Higher-Level Services A set of “system libraries” to provide efficient implementations of functions common to many network applications.

Overview Background and Motivation NOX Overview Programming Interface Example Applications Review

Example 1: User-based VLAN Tagging VLAN

Example 1: User-based VLAN Tagging # On user authentication, statically setup VLAN tagging # rules at the user’s first hop switch def setup_user_vlan(dp, user, port, host): vlanid = user_to_vlan_function(user) # For packets from the user, add a VLAN tag attr_out[IN_PORT] = port attr_out[DL_SRC] = nox.reverse_resolve(host).mac action_out = [(nox.OUTPUT, (0, nox.FLOOD)), (nox.ADD_VLAN, (vlanid))] install_datapath_flow(dp, attr_out, action_out) # For packets to the user with the VLAN tag, remove it attr_in[DL_DST] = nox.reverse_resolve(host).mac attr_in[DL_VLAN] = vlanid action_in = [(nox.OUTPUT, (0, nox.FLOOD)), (nox.DEL_VLAN)] install_datapath_flow(dp, attr_in, action_in) nox.register_for_user_authentication(setup_user_vlan)

Simplistic Scan Detection Count the number of unique L2 and L3 destinations a host tries to contact that have not authenticated. Detect scanning hosts by tracking the number of unique, unknown L2 and L3 destinations attempted by a single host.

Simplistic Scan Detection scans = defaultdict(dict) def check_for_scans(dp, inport, packet): dstid = nox.resolve_host_dest(packet) if dstid == None: scans[packet.l2.srcaddr][packet.l2.dstaddr] = 1 if packet.l3 != None: scans[packet.l2.srcaddr][packet.l3.dstaddr] = 1 if len(scans[packet.l2.srcaddr].keys()) > THRESHOLD: print nox.resolve_user_source_name(packet) print nox.resolve_host_source_name(packet) # To be called on all packet-in events nox.register_for_packet_in(check_for_scans)

Ethane Two requirements of Ethane 1. Require knowledge of the principals on the network (e.g., users, nodes) 2. Requires control over routing at the granularity of flow, 7- tuple (source user, source host, first-hop switch, protocol, destination user, destination host, last-hop switch) Both natively supported by NOX How to efficiently check flows against the policy? Linear lookup, not efficient enough Dynamically construct efficient lookup trees from the policy declarations.

Review Why flow-based granularity is better than the packet- level and the prefix-level ones? In NOX, which is the global network view, which is not? Switch-level topology Name binding Traffic