Basic network flows; OpenFlow as a datapath programming standard

Slides:



Advertisements
Similar presentations
CSC458 Programming Assignment II: NAT Nov 7, 2014.
Advertisements

DOT – Distributed OpenFlow Testbed
Copyright 2014 Kenneth M. Chipps Ph.D. Software Defined Networking Lab Using Mininet and the POX Controller Last Update
An Overview of Software-Defined Network Presenter: Xitao Wen.
Software-Defined Networking, OpenFlow, and how SPARC applies it to the telecommunications domain Pontus Sköldström - Wolfgang John – Elisa Bellagamba November.
OpenFlow : Enabling Innovation in Campus Networks SIGCOMM 2008 Nick McKeown, Tom Anderson, et el. Stanford University California, USA Presented.
4-1 Network layer r transport segment from sending to receiving host r on sending side encapsulates segments into datagrams r on rcving side, delivers.
An Overview of Software-Defined Network
An Overview of Software-Defined Network Presenter: Xitao Wen.
Connecting LANs, Backbone Networks, and Virtual LANs
Chapter 4: Managing LAN Traffic
OpenFlow: Enabling Technology Transfer to Networking Industry Nikhil Handigol Nikhil Handigol Cisco Nerd.
Software-Defined Networks Jennifer Rexford Princeton University.
OpenFlow: Enabling Innovation in Campus Networks
Jon Turner, John DeHart, Fred Kuhns Computer Science & Engineering Washington University Wide Area OpenFlow Demonstration.
Sponsored by the National Science Foundation Tutorial: An Introduction to OpenFlow using POX GENI Engineering Conference 20 June 2014.
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
ECE 526 – Network Processing Systems Design Networking: protocols and packet format Chapter 3: D. E. Comer Fall 2008.
Mahindra-British Telecom Ltd. Exploiting Layer 2 By Balwant Rathore.
STORE AND FORWARD & CUT THROUGH FORWARD Switches can use different forwarding techniques— two of these are store-and-forward switching and cut-through.
Mininet and Openflow Labs. Install Mininet (do not do this in class) Download VirtualBox Download Xming for windows (X11) Download Mininet VM for linux-ubuntu.
Introduction to Mininet, Open vSwitch, and POX
3.6 Software-Defined Networks and OpenFlow
SDN and Beyond Ghufran Baig Mubashir Adnan Qureshi.
SDN basics and OpenFlow. Review some related concepts SDN overview OpenFlow.
Graciela Perera Department of Computer Science and Information Systems Slide 1 of 18 INTRODUCTION NETWORKING CONCEPTS AND ADMINISTRATION CSIS 3723 Graciela.
1 Computer Networks Chapter 5. Network layer The network layer is concerned with getting packets from the source all the way to the destination. Getting.
Chapter 3 Part 1 Switching and Bridging
Mininet and Openflow Labs
Chapter 3 Part 3 Switching and Bridging
Chapter 4 Network Layer: The Data Plane
CSC458 Programming Assignment II: NAT
Scaling the Network Chapters 3-4 Part 2
Exploiting Layer 2 By Balwant Rathore.
What I Learned From Mininet
Software defined networking: Experimental research on QoS
ETHANE: TAKING CONTROL OF THE ENTERPRISE
Scaling the Network: The Internet Protocol
CS4470 Computer Networking Protocols
Planning and Troubleshooting Routing and Switching
MAC Addresses and ARP 32-bit IP address:
Network Data Plane Part 2
Chapter 6 Delivery & Forwarding of IP Packets
Virtual LANs.
SDN Overview for UCAR IT meeting 19-March-2014
Net 323: NETWORK Protocols
SDN basics and OpenFlow
Chapter 3 Part 3 Switching and Bridging
CS 457 – Lecture 10 Internetworking and IP
Chapter 5 Network Layer: The Control Plane
What’s “Inside” a Router?
The Stanford Clean Slate Program
Software Defined Networking
Network Core and QoS.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 4: Planning and Configuring Routing and Switching.
Implementing an OpenFlow Switch on the NetFPGA platform
TCP/IP Protocol Suite: Review
1 ADDRESS RESOLUTION PROTOCOL (ARP) & REVERSE ADDRESS RESOLUTION PROTOCOL ( RARP) K. PALANIVEL Systems Analyst, Computer Centre Pondicherry University,
An Introduction to Software Defined Networking and OpenFlow
Chapter 4 Network Layer Computer Networking: A Top Down Approach 5th edition. Jim Kurose, Keith Ross Addison-Wesley, April Network Layer.
Chapter 3 Part 3 Switching and Bridging
Network Layer: Control/data plane, addressing, routers
CS4470 Computer Networking Protocols
Scaling the Network: The Internet Protocol
Ch 17 - Binding Protocol Addresses
CS434/534: Topics in Network Systems High-Level Programming for Programmable Networks Yang (Richard) Yang Computer Science Department Yale University.
Chapter 5 Network Layer: The Control Plane
Network Core and QoS.
An Introduction to Software Defined Networking and OpenFlow
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

Basic network flows; OpenFlow as a datapath programming standard http://zoo.cs.yale.edu/classes/cs434/ Geng Li 01/23/2017

CS434/534: Topics in Networked (Networking) Systems Basic Network Workflows; OpenFlow as a Datapath Programming Standard Geng Li Computer Science Department Yale University 205 Watson Email: geng.li@yale.edu http://zoo.cs.yale.edu/classes/cs434/

CS434/534: Topics in Networked (Networking) Systems High-Level Language for Programmable Networks http://zoo.cs.yale.edu/classes/cs434/ Y. Richard Yang 01/25/2017

Outline What is the data structure used in current systems? How is the data structure programmed currently? SDN and OpenFlow: abstraction and extension of current data structures a new way to program it How can the more general OF model be implemented efficiently?

Background: Current Model What happens when you visit mail.google.com

DNS: Domain Name System Translates domain names to the numerical IP addresses DNS cache in Web browser chrome://net-internals/#dns DNS cache in hosts file or the operating system hosts: %systemroot%\system32\drivers\etc (Windows) hosts: /etc/hosts (Linux) pconfig /displaydns (Windows) DNS servers

Domain Name Space … Query servers Root zone .org zone .com zone .cn zone others.com zone google.com zone others.google.com mail.google.com

After getting IP address TCP connection Transport layer (4) HTTP access Application layer (7)

Datapath: Example 1 (same network): A->B Look up dest address in routing table find dest is on same net Hand datagram to link layer to send inside a link-layer frame

Datapath: Example 2 (Different Networks): A-> E Look up dst address in routing table routing table: next hop router to dest is 223.1.1.4 Hand datagram to link layer to send to router 223.1.1.4 inside a link-layer frame

Look Inside a Router Two key router functions: run routing algorithms/protocol (RIP, OSPF, BGP) switching datagrams from incoming to outgoing ports

Input Port Functions

Output Ports Buffering required when datagrams arrive from fabric faster than the transmission rate Queueing (delay) and loss due to output port buffer overflow ! Scheduling and queue/buffer management choose among queued datagrams for transmission

Datapath: Example 2 (Different Networks): A-> E look up dest address in router’s forwarding table E on same network as router’s interface 223.1.2.9 link layer sends datagram to 223.1.2.3 inside link-layer frame via interface 223.1.2.9

Link Layer Services Framing Multiplexing/demultiplexing encapsulate datagram into frame, adding header, trailer and error detection/correction Multiplexing/demultiplexing frame headers to identify src, dest Media access control Forwarding/switching with a link-layer (Layer 2) domain in most link-layer, each adapter has a unique link layer address (also called MAC address) Reliable delivery between adjacent nodes we learned how to do this already ! seldom used on low bit error link (fiber, some twisted pair) common for wireless links: high error rates

Comparison of IP Address and MAC Address IP address is locator address depends on network to which an interface is attached introduces features for routing scalability IP address needs to be globally unique (if no NAT) MAC address is an identifier dedicated to a device flat MAC address does not need to be globally unique, but the current assignment ensures uniqueness

ARP: Address Resolution Protocol ARP Table: IP/MAC address mappings ARP is “plug-and-play”: nodes create their ARP tables without intervention from net administrator A broadcast protocol: source broadcasts query frame, containing queried IP address all machines on LAN receive ARP query destination D receives ARP frame, replies frame sent to A’s MAC address (unicast)

Recall Earlier Routing Discussion Starting at A, given IP datagram addressed to E: look up net. address of E, find C link layer sends datagram to C inside link-layer frame; the dest. address should be C’s MAC address

Router vs. Switch Layer 3 routing: Match on IP Prefix Layer 2 switching: Match on MAC

Outline What are the data structure used in current systems?

Table, Table, Table Various of tables Look up Forward, switch, route… Fast-forwarding table 5-tuple to identify a flow (source IP address/port number, destination IP address/port number and the protocol) … Look up Forward, switch, route…

Outline What is the data structure used in current systems? How is the data structure programmed currently?

How the tables are computed? Routing algorithms/protocols Distance vector protocols RIP… Link state protocols OSPF… 1M 5M

Distributed Computing Distributed computing is hard, e.g., FLP Impossibility Theorem Arrow’s Impossibility Theorem Neighbors Network changes Interact with each other By relay Share local information

An Evolution View of Intradomain Routing Toward SDN Distance Vector Link State SDN Control Logically Central Link State notification/ management/ control protocol Dijkstra Distributed Bellman Ford Distributed Link State Datapath Distributed Bellman Ford Dijkstra Distributed Link State Dijkstra Distributed Bellman Ford Datapath Distributed Link State Datapath

Outline What is the data structure used in current systems? How is the data structure programmed currently? SDN and OpenFlow: abstraction and extension of current data structures a new way to program it

Software-Defined Networking (SDN) Directly programmable Agile Centrally managed Programmatically configured Open standards-based and vendor-neutral https://www.opennetworking.org/sdn-resources/sdn-definition

SDN: Separation of data and control planes Traditional Datapath Control SDN standard control protocol Datapath Control Datapath Control Datapath Control

SDN: Programmable Network Easy to generate, add, modify and remove the table in hardware Now just defining a centralized control function Configuration = Function(view) Source: Xinjie Chen, Pinging Lab

OpenFlow Controller What is OpenFlow? The first standard communications protocol defined between controller and switch. OpenFlow Controller Software OpenFlow Protocol Hardware

How does it work? – Matching and Action Controller installs packet-forwarding rules Datapath performs forwarding Packet coming Matching Action ?

OpenFlow: Flow table ? Flow Table contains a set of flow entries to apply to matching packets ? Flow Table

OpenFlow: Flow entry/rule match fields: to match against packets. These consist of the ingress port and packet headers, and optionally other pipeline fields such as metadata specified by a previous table. priority: matching precedence of the flow entry. counters: updated when packets are matched. instructions: to modify the action set or pipeline processing. timeouts: maximum amount of time or idle time before flow is expired by the switch. cookie: opaque data value chosen by the controller. May be used by the controller to filter flow entries affected by flow statistics, flow modification and flow deletion requests. Not used when processing packets. flags: flags alter the way flow entries are managed, for example the flag OFPFF_SEND_FLOW_REM triggers flow removed messages for that flow entry.

OpenFlow: Match Fields Action Stats Switch Port VLAN ID VLAN pcp MAC src MAC dst Eth type IP Src IP Dst IP ToS IP Prot L4 sport L4 dport + mask what fields to match Source: Scott Shenker, UC Berkeley

Examples Switching Flow Switching Firewall * Switch Port MAC src dst Eth type VLAN ID IP Src Dst Prot TCP sport dport Action 00:1f:.. port6 Flow Switching port3 00:20.. 00:1f.. 0800 vlan1 1.2.3.4 5.6.7.8 4 17264 80 Firewall 22 drop Source: Scott Shenker, UC Berkeley

Examples Routing VLAN Switching * Switch Port MAC src dst Eth type ID IP Src Dst Prot TCP sport dport Action 5.6.7.8 port6 VLAN Switching vlan1 port6, port7, port9 00:1f.. Source: Scott Shenker, UC Berkeley

OpenFlow: Flow entry/rule “Open” is real; “Flow” is fake Flow are broadly defined are limited only by the capabilities of the particular implementation of the Flow Table

OpenFlow: Action Packet + byte counters Switch Port MAC src dst Eth type VLAN ID IP Src Dst Prot L4 sport dport Match Fields Action Stats Forward packet to zero or more ports Encapsulate and forward to controller Send to normal processing pipeline Modify Fields Any extensions you add! + mask what fields to match Packet + byte counters pcp ToS Source: Scott Shenker, UC Berkeley

OpenFlow: Table-miss No match is found??? A table-miss flow entry to process table misses May send packets to the controller, drop packets or direct packets to a subsequent table.

OpenFlow: Flow entry/rule Reactive First packet of flow triggers controller to insert flow entries Efficient use of flow table Every flow incurs small additional flow setup time If control connection lost, switch has limited utility Proactive Controller pre-populates flow table in switch Zero additional flow setup time Loss of control connection does not disrupt traffic Essentially requires aggregated (wildcard) rules

OpenFlow: Group table ? Flow Table Enables additional methods of forwarding Advanced But required ? Flow Table

OpenFlow: Group table A group table consists of group entries A group entry may consist of zero or more buckets A bucket typically contains actions that modify the packet and an output action that forwards it to a port

OpenFlow: Group table There are 4 group types All (Required)

OpenFlow: Group table There are 4 group types All (Required) Select (Optional)

OpenFlow: Group table There are 4 group types All (Required) Select (Optional) Fast failover (Optional)

OpenFlow: Group table There are 4 group types All (Required) Select (Optional) Fast failover (Optional) Indirect (Required)

OpenFlow: Meter Table ? Flow Table Enables OpenFlow to implement rate-limiting Each meter may have one or more meter bands. The bands define the behavior of the meters on packets for various ranges rate. ? Flow Table

OpenFlow: Multiple Flow Tables Pipeline Matching starts at the first flow table may continue to additional flow tables Why? ?

OpenFlow: Multiple Flow Tables Example: Cross product One Table Design ethSrc ethDst a1 p1 pn an p pn2 ethSrc ethDst Action a1 p1 a2 p2 .. … an pn2 n2 entries

OpenFlow: Multiple Flow Tables Example: Cross product Table 2 Table 1 regsrcSw ethDst Action y1 a1 p1,1 a2 p1,2 .. … yk an pk,n otherwise drop ethSrc Action a1 regsrcCond=y1 jump 2 a2 regsrcCond=y2 jump 2 .. … an regsrcCond=yk jump 2 otherwise drop Table 2 n + kn entries

OpenFlow: Protocol OpenFlow channel the interface that connects Switch to Controller OpenFlow protocol supports three message types controller-to-switch asynchronous symmetric

OpenFlow in the Real World Commercial OpenFlow switch – Physical Open vSwitch – Virtual

OpenFlow in the Real World Commercial OpenFlow switch – Physical Open vSwitch – Virtual

Open vSwitch Overview follow the same thought and idea of OpenFlow

Linux Bridge Design Simple forwarding Matches destination MAC address and forwards Packet never leaves kernel Source: Dean Pemberton, University of Oregon

Open vSwitch Design Decision about how to process packet made in userspace First packet of new flow goes to ovsvswitchd, following packets hit cached entry in kernel Source: Dean Pemberton, University of Oregon

ovs-vswitchd in Userspace Core component in the system: Communicates with outside world using OpenFlow Communicates with ovsdb-server using OVSDB protocol Communicates with kernel module over netlink Communicates with the system through netdev abstract interface Supports multiple independent datapaths (bridges) Packet classifier supports efficient flow lookup with wildcards and “explodes” these (possibly) wildcard rules for fast processing by the datapath Implements mirroring, bonding, and VLANs through modifications of the same flow table exposed through OpenFlow Checks datapath flow counters to handle flow expiration and stats requests Tools: ovs-ofctl, ovs-appctl

OVS Kernel Module Kernel module that handles switching and tunneling Fast cache of non-overlapping flows Designed to be fast and simple Packet comes in, if found, associated actions executed andcounters updated. Otherwise, sent to userspace Does no flow expiration Knows nothing of OpenFlow Implements tunnels Tools: ovs-dpctl

Userspace Processing Packet received from kernel Given to the classifier to look for matching flows accumulates actions If “normal” action included, accumulates actions from “normal” processing, such as L2 forwarding and bonding Actions accumulated from configured modules, such as mirroring Prior to 1.11, an exact match flow is generated with the accumulated actions and pushed down to the kernel module (along with the packet)

Kernel Processing Packet arrives and header fields extracted Header fields are hashed and used as an index into a set of large hash tables If entry found, actions applied to packet and counters are updated If entry is not found, packet sent to userspace and miss counter incremented

Mininet Machine-local virtual network great dev/testing tool Uses linux virtual network features Cheaper than VMs Arbitrary topologies, nodes

Mininet Rapidly prototype, develop and test Interestingly-sized networks (16-100 nodes) start up in seconds No lengthy lab reconfiguration or rebooting required Always-accessible network resources, in any topology, at essentially no cost Designs that work on Mininet transfer seamlessly to hardware for full speed operation

Mininet Repeatably test, analyze, and predict network behavior Easy replication of experimental and test results Examine effects of code or network changes before testing/deploying on hardware Allows automated system-level tests and experiments Recreate real-world network and test cases for a variety of topologies and configurations

Mininet Quickly get up and running Free and permissively licensed (BSD) Minimal hardware requirements Accessible to novices thanks to simple CLI Smooth learning curve thanks to walkthrough, tutorial, examples and API documentation Strong users and support community

Mininet Download: http://mininet.org/download/ Tutorial: https://github.com/mininet/openflow-tutorial/wiki

Some Commands sudo mn --topo single,3 --mac --switch ovsk --controller remote sh ovs-ofctl dump-flows s1 sh ovs-ofctl add-flow s1 in_port=1,actions=output:2 sh ovs-ofctl add-flow s1 in_port=2,actions=output:1 sh ovs-ofctl del-flows s1 sh ovs-ofctl add-flow s1 "priority=0,action=normal"sh ovs-ofctl add-flow s1 "priority=100,eth_type=0x800,ip_dst=10.0.0.1,action=drop” sh ovs-ofctl add-flow s1 "priority=100,eth_type=0x806,dl_dst=00:00:00:00:00:02,action=drop"

Mininet Basic commands: Display an xterm for switch s1 mininet> xterm s1 Inspect flow tables at switch xterm dpctl dump-flows tcp:127.0.0.1:6634 To view OpenFlow protocol messages, at mininet-VM xterm: sudo wireshark & Capture the interface to controller In wireshark filter box, enter filter to filter OpenFlow messages: of

Mininet Basic commands: Create a network consists of one OpenvSwitch, three hosts and is controlled by a remote controller with IP address 192.168.56.1 sudo mn --topo single,3 --controller remote,ip=192.168.56.1 --switch ovsk mininet> help mininet> dump nodes mininet> h1 ping h2

Outline What is the data structure used in current systems? How is the data structure programmed currently? SDN and OpenFlow: abstraction and extension of current data structures a new way to program it How can the more general OF model be implemented efficiently?

Pipeline Specialization Divide a single table into a pipeline, with specialization of types Exact match >> lpm >> ternanry Molnár L, Pongrácz G, Enyedi G, et al. Dataplane Specialization for High-performance OpenFlow Software Switching[C]//Proceedings of the 2016 conference on ACM SIGCOMM 2016 Conference. ACM, 2016: 539-552.

OpenFlow building blocks Monitoring/ debugging tools oflops ndb Firewall Traffic Engineering Load Balancing Mobility Applications Frenetic Floodlight OpenDayLight ONOS Ryu POX Controller OpenFlow Commercial Switches Software switches and experimental platforms NetFPGA Broadcom Ref. Switch HP, NEC, Pronto, Juniper.. and many more OpenFlow Switches OpenWRT OpenVSwitch