Download presentation
Presentation is loading. Please wait.
Published byRaymond May Modified over 9 years ago
1
Networking Technologies for Cloud Computing USTC-INY5316 Instructor: Chi Zhang Fall 2014 Welcome to
2
Today’s agenda Introduction OpenFlow SDN applications SDN ecosystem and SDN standardization SDN development tools and business ramifications Future research directions 2
3
OpenFlow Introduction of OpenFlow Flow abstraction OpenFlow separation OpenFlow match process Secure channel Messages between controller and switch OpenFlow additions –Multiple table and Group table –Extensional match support and multiple controllers –More Flexible Table-Miss Support, per-flow meters and auxiliary connections 3
4
OpenFlow Introduction of OpenFlow Flow abstraction OpenFlow separation OpenFlow match process Secure channel Messages between controller and switch OpenFlow additions –Multiple table and Group table –Extensional match support and multiple controllers –More Flexible Table-Miss Support, per-flow meters and auxiliary connections 4
5
Where does OpenFlow fit in? The X86 instruction set of SDN 5
6
OpenFlow Introduction of OpenFlow Flow abstraction OpenFlow separation OpenFlow match process Secure channel Messages between controller and switch OpenFlow additions –Multiple table and Group table –Extensional match support and multiple controllers –More Flexible Table-Miss Support, per-flow meters and auxiliary connections 6
7
Flow abstraction 7 End – to – End Flow L4: TCP src/dst port L3: IP src/dst addr, IP proto L2.5: L2: Flow Identifiers Common Dest Flow L4: L3: IP dst prefix for China L2.5: L2:
8
Flow abstraction 8 Classification of packets that have a logical association Action & Maintaining Flow State Flow based Accounting & Resource Management What is a Flow? L4: L3: IP src prefix L2.5: L2: Flow Identifiers Common Src Flow L4: TCP dst port 80 L3: IP proto L2.5: L2: MAC src Web traffic from a Handset L4: L3: L2.5: MPLS Label ID L2: All packets between 2 routers
9
OpenFlow Introduction of OpenFlow Flow abstraction OpenFlow separation OpenFlow match process Secure channel Messages between controller and switch OpenFlow additions –Multiple table and Group table –Extensional match support and multiple controllers –More Flexible Table-Miss Support, per-flow meters and auxiliary connections 9
10
Traditional router architecture 10 Control plane Forwarding plane Management plane
11
Traditional switch component 11
12
OpenFlow separation 12 Drop
13
OpenFlow Introduction of OpenFlow Flow abstraction OpenFlow separation OpenFlow match process Secure channel Messages between controller and switch OpenFlow additions –Multiple table and Group table –Extensional match support and multiple controllers –More Flexible Table-Miss Support, per-flow meters and auxiliary connections 13
14
Flow matching process 14
15
OpenFlow 1.0 flow table 15 Classifier Action Modify Field Enqueue Forward NORMAL FLOOD Virtual Port Physical Port Forward Mandatory Action Optional Action Counters Classifier Action Counters Classifier Action Counters Classifier Action Counters … Flow Table OF1.0 style Ingress Port Ingress Port Ethernet SA DA Type IP SA DA Proto TCP/UDP Src VLAN ID Priority TOS Dst Virtual Port ALL CONTROLLER LOCAL TABLE IN_PORT Drop Header Fields Actions
16
Layer 2 to layer 4 16 Modify Field Enqueue Forward NORMAL FLOOD Virtual Port Physical Port Forward Mandatory Action Optional Action Virtual Port ALL CONTROLLER LOCAL TABLE IN_PORT Drop
17
Examples Switching * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action * 00:1f:.. *******port6 Flow Switching port3 Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action 00:20..00:1f..0800vlan11.2.3.45.6.7.841726480port6 Firewall * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action ********22drop 17
18
Examples Routing * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action *****5.6.7.8***port6 VLAN Switching * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action ** vlan1 ***** port6, port7, port9 00:1f.. 18
19
Packet Forwarding 19
20
OpenFlow Introduction of OpenFlow Flow abstraction OpenFlow separation OpenFlow match process Secure channel Messages between controller and switch OpenFlow additions –Multiple table and Group table –Extensional match support and multiple controllers –More Flexible Table-Miss Support, per-flow meters and auxiliary connections 20
21
The Controller-Switch Secure Channel The path used for communications between the OpenFlow controller and the OpenFlow device In-band secure channel –Messages from the port of the data plane –Packets will be handled by the OpenFlow packet- matching logic Out-of-band secure channel –Messages from the port which is not switched by the data plane 21
22
OpenFlow Introduction of OpenFlow Flow abstraction OpenFlow separation OpenFlow match process Secure channel Messages between controller and switch OpenFlow additions –Multiple table and Group table –Extensional match support and multiple controllers –More Flexible Table-Miss Support, per-flow meters and auxiliary connections 22
23
Messaging Between Controller and Switch Message between controller and switch starts with the OpenFlow header(specifies the version number, the message type, the length of the message, and the transaction ID of the message). Message categories: –Symmetric: be sent by either controller or the switch –Async: be sent from the switch to the controller –Controller- switch: be sent from the controller to the switch 23
24
Message Types Symmetric messages –HELLO: be exchanged after the secure channel has been established to determine the highest OpenFlow version number supported by the peers. –ECHO: ascertain that the connection is still alive and to measure the current latency or bandwidth of the connection –VENDOR: available for vendor-specific experimentation or enhancements 24
25
Message Types Async messages –PACKET_IN: The switch passes data packets back to the controller for exception handling. –FLOW_REMOVED: The switch can inform the controller that a flow entry is removed from the flow table. –PORT_STATUS: Be used to communicate changes in port status. –ERROR: Notify the controller of problems 25
26
Message Types Controller-switch (five subcategories) –Switch configuration: SET_CONFIG: set configuration parameters in the switch FEATURES: ask the switch about which features it supports GET_CONFIG: retrieve a switch’s configuration settings 26
27
Message Types –Command from controller PACKET_OUT: send data packets to the switch for forwarding out through the data plane FLOW_MOD: modify existing flow entries in the switch PORT_MOD: modify the status of an OpenFlow port –Statics STATS: be used to obtain the statistics from the switch –Barrier: BARRIER: be used by the controller to ensure that a particular OpenFlow command from the controller has finished executing on the switch 27
28
Message Types –Queue configuration QUEUE_GET_CONFIG: the controller learns from the switch how a given queue is configured. Note: –In the event that the HELLO protocol detects a loss of the connection between controller and switch, the switch should enter emergency mode and reset the TCP connection. At this time all flows are to be deleted except special flows that are marked as being part of the emergency flow cache. 28
29
Ports and Port Queues(v1.0) 29 OpenFlow support for multiple queues per port. These queues are generally served by scheduling algorithms that allow the provisioning of different quality of service (QoS) levels for different types of packets.
30
OpenFlow Introduction of OpenFlow Flow abstraction OpenFlow separation OpenFlow match process Secure channel Messages between controller and switch OpenFlow additions –1.1 Multiple table and Group table –1.2 Extensional match support and multiple controllers –1.3 More Flexible Table-Miss Support 、 per-flow meters and auxiliary connections 30
31
OpenFlow versions status 31
32
OpenFlow configuration protocol evolution 32
33
OpenFlow Introduction of OpenFlow Flow abstraction OpenFlow separation OpenFlow match process Secure channel Messages between controller and switch OpenFlow additions –Multiple table and Group table –Extensional match support and multiple controllers –More Flexible Table-Miss Support, per-flow meters and auxiliary connections 33
34
Multiple flow tables 34
35
Multiple flow tables 35
36
Group Table 36 A richer extension to the FLOOD option Consists of group entries, each entry consisting of one or more action buckets. Provide a more efficient way of handling the routing change Kind of action buckets: ALL 、 Select 、 Indirect 、 fast failover
37
Group table 37
38
Packet processing procedure 38
39
Controller Connection Failure Fail secure mode –The switch continues to operate as a normal V.1.1 switch except that all messages destined for the controller are dropped. Fail standalone mode –The switch additionally ceases its OpenFlow pipeline processing and continues to operate in its native, underlying switch or router mode. The controller may choose to delete existing flow entries and begin to configure the switch anew. 39
40
EX1: Forwarding with Multiple Flow Tables 40
41
EX2:Multicast Using V.1.1 Groups 41
42
OpenFlow Introduction of OpenFlow Flow abstraction OpenFlow separation OpenFlow match process Secure channel Messages between controller and switch OpenFlow additions –Multiple table and Group table –Extensional match support and multiple controllers –More Flexible Table-Miss Support 、 per-flow meters and auxiliary connections 42
43
OpenFlow 1.2 Additions 43
44
Extensible Match Support Sufficient richness in the packet-matching descriptors that the controller can encode the desired logic in the rules themselves. Expands the possibilities for match fields by allowing for multiple match classes. OpenFlow Extensible Match(OXM) descriptors Type-length-value(TLV)pairs can describe or define any of the header fields an OF switch would need to use for matching. 44
45
Multiple Controllers Switch may be configured to maintain simultaneous connections to multiple controllers. A controller may be one of three different roles relative to a switch: –Equal (allow the controller the full ability to program the switch) –Slave (only request data from the switch but make no modifications) –Master(only one switch could be in a master mode and all others be in slave mode) 45
46
OpenFlow Introduction of OpenFlow Flow abstraction OpenFlow separation OpenFlow match process Secure channel Messages between controller and switch OpenFlow additions –Multiple table and Group table –Extensional match support and multiple controllers –More flexible Table-Miss support, per-flow meters and auxiliary connections 46
47
OpenFlow 1.3 Additions(milestone) 47
48
More Flexible Table-Miss Support Program a table-miss flow entry into a switch Table-miss flow is the lowest priority The last flow entry that can be matched in the table 48
49
Per-Flow Meters( 计量表) 49 v.1.3 instructions may direct packets to a meter identified by its meter ID. Rate-limited meters The type determines the action to take when that meter band is processed. When a packet is processed by a meter, at most one band is used. This band is selected based on the highest bandwidth rate band that is lower than the current measured bandwidth. Duel level of counters
50
Auxiliary Connections V.1.3 allows multiple connections per communications channel. Lies in achieving greater overall throughput between the switch and the controller. The first connection in the channel is specified to be a TCP connection.UDP may be used for the secondary connections. Auxiliary connections can transmit packets in some special situations. 50
51
EX : Enforcing QoS via Meter Bands 51
52
THANK YOU ! Presenter: 王正琦 E-mail: wzqwzq@mail.ustc.edu.cnwzqwzq@mail.ustc.edu.cn If you have any suggestions or questions about OpenFlow, welcome to contact with me. 52
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.