260 likes | 351 Views
Wider Adaptation and Enhancement of OpenFlow. Othman Othman M.M. , Koji Okamura Kyushu University Proceedings of the 32 nd Asia-Pacific Advanced Network Meeting India, New Delhi, 2001/8/22. Outline:. Goal. Motivation. An attempt to solve the problem (3 enhancements).
E N D
Wider Adaptation and Enhancement of OpenFlow Othman Othman M.M. , Koji Okamura Kyushu University Proceedings of the 32ndAsia-Pacific Advanced Network Meeting India, New Delhi, 2001/8/22
Outline: • Goal. • Motivation. • An attempt to solve the problem (3 enhancements). • First: Network Equipment to Equipment flow installation. • Second: Low Level Header Description. • Third: Inactive Flows. • Flow Aggregation Algorithm. • Evaluation. • Conclusion.
1-Goal: • Improve OpenFlow. • Support self-reactive behavior. • Reduce load on controller. • Giving researchers more flexibility. • Step towards having wider adoption of OpenFlow.
2-Motivation: • Tight coupling between OpenFlow switch and controller. • Every thing is up to the controller. • Controller might be bottleneck. • number of flows that can be installed by the NOX controller as shown in [1] are 30K flow/sec, and the flow arrival rate in [2] that is 100K flow per second. • OpenFlow supports MAC, VLAN, IP, TCP, UDP. • Better to have; more room for researchers. [1].Tavakoli, A., Casado, M., Koponen, T., & Shenker, S. (n.d.). Applying NOX to the Datacenter. Proc. HotNets (October 2009). [2]. Kandula, S., Sengupta, S., Greenberg, A., Patel, P., & Chaiken, R. (2009). The nature of data center traffic: measurements & analysis. Proceedings of the 9th ACM SIGCOMM conference on Internet measurement conference (p. 202–208). ACM.
3-An attempt to solve the problem:(3 enhancements) • Network equipment to Network equipment Flow Programming: • To create traffic-aware self-reactive network. • Can be used to delegate some flows to less loaded network equipment. • To easily program whole network without loading controller. • Low level description of Headers: • To easily adopt new protocols. • To be able to program flows in very exact way. • New type of Flows: • Programed as inactive flows and later activated by the flow. • To provide the controller with a more relaxed way to handle precisely timed tasks. • Can cooperate with Device to Device programming.
3-1- First: Network Equipment to Equipment flow installation: Flows to manipulate headers in packets P P Packet P Packet P P P Packet • To reduce load off the controller. • Give the equipment ability to act by their own to reduce load off loaded equipment. • Alternative way to install flows to whole network (e-e propagation). Packet Packet Packet Fig1. Equipment overloaded, due to many flows to carry out. Packet P Packet PE Packet PE PE P P Fig2. Overloaded equipment delegates some flows to other equipment. Flows to manipulate headers in packets Fig3. Reduced load off the overloaded equipment.
3-2- Second: Low Level Header Description: • OpenFlow can deal with headers of: • Ethernet, IP, TCP, UDP, ICMP, ARP, VLAN • This limits the usage to those protocols. • Using Low level definition of header fields can be more usable in case of new protocols. Fig2: Low level description of headers Fig1: Fields from packets used to match against flow entries As shown in : OpenFlow Switch Specification Version 1.0.0, December 31, 2009
3-3- Third: Inactive Flows: • Original OpenFlow: flows activated by default, controller keeps track of time. • Initially installed as inactive. (not usable). • Activated on right time, by: • Explicit activation packet. • Activation Flow. • Preset time. Fig1. Migration and Redirection using OpenFlow. Fig3. Migration and Redirection using OpenFlow and Inactive Flows. Fig2. Delay due to controller overload in Migration. Inactive Flows Migration Migration Migration Migration Flows activation Migration Migration ?
4-1- Flow Aggregation Algorithm: Introduction: Flow Table • How to delegate flows? • Aggregate flows that have common features, and responsible for some portion of traffic. • i.e. to aggregate many flows to one. • Delegate the aggregated flows to other equipment. • Use Flow Aggregation Algorithm. • Overloaded equipment flows = original flows – delegated flows. Flow Aggregation Algorithm aggregated flow (one or more)
4-2- Inputs of the FAA. Flow Table • Input is Flow Table. • Flow table entry have one or more fields form Fig 1. • Src IP and Dst IP can be wildcarded as defined by OpenFlow Flow Aggregation Algorithm aggregated flow (one or more) Fig1: Fields from packets used to match against flow entries As shown in : OpenFlow Switch Specification Version 1.0.0, December 31, 2009
4-3-Outputs of the FAA. Flow Table • Aggregated Flow can use: • Parts of Src IP, Dst IP using wildcards. • Any other field as an exact match. Range of portions of total traffic e.g. (20%-30%) Flow Aggregation Algorithm aggregated flow (one or more) Fig1: Fields from packets used to match against flow entries As shown in : OpenFlow Switch Specification Version 1.0.0, December 31, 2009
4-4-Details of the FAA. Start Build Histograms for all Fields None Strict Aggregation percentage? Wide Aggregate SrcIP Strict None Wide Aggregate DstIP Wide Strict Find commonvalues from two wide aggregations. None, Wide Strict None Finish Fail
4-5-In-depth look:1- IP aggregation: Start Start 1 Build Histograms for all Fields Add the most significant bit of each IP in each flow to trie. If exist increment trie node counter. Else create node and increment counter • By Building a Trie. • Find length of wildcard. • Value of wildcarded IP. None Strict Aggregation %? 2 Wide Aggregate SrcIP Is aggregation successful? Yes Strict None 3 Wide Aggregate DstIP No Add the next less significant bit of each IP in each flow to trie. If exist increment trie node counter. Else create node and increment counter Is memory limit reached? None 4 No Strict 5 Wide Find commonvalues from two wide aggregations. Yes Mark the trie node that has the best ratio . 6 None, Wide Finish 7 Strict Finish Fail
4-6-In-depth look:2- Other aggregation: Start Build Histograms for all Fields • By building Histogram. Start 1 None Strict Aggregation %? Build Histogram 2 Wide Aggregate SrcIP Is aggregation successful? Strict None 3 Wide No Aggregate DstIP Yes Find nodes with right aggregation ratio None 4 Strict Wide Finish 7 Find commonvalues from two wide aggregations. None, Wide Strict Finish Fail
5- Evaluation: • Java Program to evaluate the efficiency of Flow Aggregation Algorithm. • FAA success rate of aggregation = 79.7 % • OMNet++ simulation to evaluate: • Controller load reduction . • Efficiency in reducing load off overloaded equipment. • Traffic generated due to the new enhancements.
6- Conclusion: • Aim to improve OpenFlow by reducing load off the controller, make it self-aware and self-reactive, enable researchers to support their own protocols, and enable an easier support for time critical functions. • Achieving goals by proposing 3 new enhancements to OpenFlow: • Network equipment to equipment flow installation. • Low level Header description. • Inactive flows. • Proposing Flow Aggregation Algorithm, to enable the enhancements. • Simulation shows the success rate of FAA is 79.7 %
Q & A: • Thanks for listening.
3- OpenFlow Overview: • Separates routing decision making (in controller) and the forwarding (in the switch or router). • Matching in the switch or router is done according to Layer 2, 3 and VLAN headers. Figure 1: OpenFlow switch (ref: Nick McKeown et al, “OpenFlow: enabling innovation in campus networks”)
3- OpenFlow Overview: • OpenFlow relies on the Flow-table, which is contains: • Header fields are the ones the incoming packet is matched against: • The actions can be : forwarding the packet to physical port, enqueue the packet in a physical port’s queue, dropping the packet or modifying incoming packet’s header fields Figure 1 Figure 2
6- First: Network Equipment to Equipment flow installation: Fig1. Regular way of installing flows. Controller installs to equipment one by one. Fig2. Network equipment install flows to each other. • To reduce load off the controller. • Alternative way to install flows to whole network (e-e propagation). Controller Controller
7- Second: Low Level Header Description: • OpenFlow can deal with headers of: • Ethernet • IP • TCP • UDP • ICMP • ARP • VLAN • This limits the usage to those protocols. Fig1: Flowchart showing how header fields are parsed for matching. As shown in : OpenFlow Switch Specification Version 1.0.0, December 31, 2009
8- Third: Inactive Flows: • Initially installed as inactive. (not usable). • Activated on right time to use by: • Explicit activation packet. • Activation Flow. • Preset time. • Can use e-e for activating other equipment. Server 10.10.10.1 Server 10.10.10.1 Candidate Server Candidate Server Server 10.10.10.1 Candidate Server Fig2. Programming inactive redirection And migrating server. Activating redirection when migration finishes Fig1. Before beginning Fig3. After migration and activation of redirections. Server Migration
8- Third: Inactive Flows: • Original OpenFlow: flows are activated by default (usable as soon as programmed). • Controller have to install redirections exactly on time for time-critical applications. • case of server migration. Fig1. Migration and Redirection using OpenFlow. Fig2. Delay due to controller overload in Migration and Redirection using OpenFlow. Migration Migration Migration Migration ?
Start Start Build Histograms for all Fields Build Histograms for all Fields None None Strict Strict Aggregation percentage? Aggregation percentage? Wide Wide Aggregate SrcIP Aggregate SrcIP Strict Strict None None Wide Wide Aggregate DstIP Aggregate DstIP None None Strict Strict Wide Wide Find commonvalues from two wide aggregations. Find commonvalues from two wide aggregations. None, Wide None, Wide Strict Strict Finish Finish Fail Fail
4-1-Introduction about flow aggregation algorithm (FAA). original flows (large #) • Goal: • To represent a large # of flows (original) by a single or few flows (aggregated). • In order to replace the original flows (large #) by the aggregated flow (one or more). • Assign the original flows (large #) to another network equipment. Flow Aggregation Algorithm aggregated flow (one or more)