Complete Paper
Total Page:16
File Type:pdf, Size:1020Kb
Washington University in St. Louis School of Engineering and Applied Science Department of Computer Science and Engineering Dissertation Examination Committee: Raj Jain, Chair Viktor Gruev Chenyang Lu Paul Min Mohammed Samaka Software Defined Application Delivery Networking by Subharthi Paul A dissertation presented to the Graduate School of Arts and Sciences of Washington University in partial fulfillment of the requirements for the degree of Doctor of Philosophy June 2014 Saint Louis, Missouri copyright by Subharthi Paul 2014 Contents List of Tables ::::::::::::::::::::::::::::::::::::::: iii List of Figures :::::::::::::::::::::::::::::::::::::: iv Acknowledgments :::::::::::::::::::::::::::::::::::: vii Abstract :::::::::::::::::::::::::::::::::::::::::: x 1 Introduction :::::::::::::::::::::::::::::::::::::: 1 1.1 Objectives . 4 1.2 Approach . 5 1.3 Contribution . 10 1.4 Potential Impact . 11 1.5 Organization . 15 2 Background :::::::::::::::::::::::::::::::::::::: 17 2.1 What does Software-Defined mean? . 17 2.2 Software-Defined Networking (SDN) . 22 2.3 Application-Delivery Networking (ADN) . 25 2.3.1 Virtual compute, network and storage infrastructures . 27 2.3.2 Middleboxes and Middleware . 38 2.4 Next-generation Internet . 59 2.4.1 ID-locator split architectures . 60 2.4.2 Internet 3.0 . 65 2.4.3 Future Internet Architectures (FIA) projects . 72 2.5 Other Related Work . 79 3 AppFabric High-level Architecture ::::::::::::::::::::::: 82 3.1 High-level Ideas . 82 3.1.1 Horizontal integration Platform . 82 3.1.2 Separation of control and data planes . 86 3.1.3 ID/Locator Split . 93 3.2 High-level Goal . 95 4 OpenADN: The AppFabric Data Plane ::::::::::::::::::::: 97 i 4.1 OpenADN: Architectural Requirements . 98 4.2 OpenADN: Architecture . 109 5 Lighthouse: The AppFabric Control and Management Plane System :: 122 5.1 The Management Subsystem . 125 5.2 The Control Subsystem . 130 5.2.1 The Global Controller . 130 5.2.2 The Local Controller . 134 6 AppFabric Prototype :::::::::::::::::::::::::::::::: 138 6.1 High-level Design Issues . 138 6.2 AppFabric Prototype: Structure . 143 6.3 AppFabric Prototype: Management Plane Configurations . 145 6.3.1 Configuring the AppFabric Service Workflow (ASW) . 146 6.3.2 Configuring the AppFabric Application Cloud (AAC) . 159 6.4 AppFabric Prototype: The OpenADN Data Plane . 165 6.4.1 AppFabric Service Conduit (ASC) Abstraction . 166 6.4.2 The common packet and message switching substrate . 174 6.5 AppFabric Prototype: Lighthouse Control/Management Plane . 185 6.5.1 The Global Controller and Central Manager modules . 187 6.5.2 The Local Controller . 190 6.5.3 The Name Server . 192 6.6 Prototype Validation . 193 6.6.1 Validating Functionality . 194 6.6.2 Performance Benchmarking . 208 7 Summary and Future Work :::::::::::::::::::::::::::: 218 References ::::::::::::::::::::::::::::::::::::::::: 223 Vita ::::::::::::::::::::::::::::::::::::::::::::: 234 ii List of Tables 2.1 Middlebox Deployment in a large Enterprise Environment [120] . 39 6.1 Top-level Directory Structure of the AppFabric Code . 145 6.2 Attributes for a general node configuration and their meanings . 149 6.3 Attributes for service configuration and their meanings . 152 6.4 Attributes for the classifier configuration and their meanings . 156 iii List of Figures 1.1 Virtual Software-Defined Infrastructure . 3 1.2 A Schematic View of the AppFabric Platform . 6 1.3 Schematic representation of an AppFabric Service Workflow . 8 1.4 Schematic representation of an AppFabric Application Cloud . 9 1.5 Distribute/Aggregate Topology for Iot/CPS use cases . 12 1.6 Network Function Virtualization (NFV) use case . 14 1.7 Virtual Worlds use case . 15 2.1 Schematic Diagram of the OpenStack Architecture . 20 2.2 Software Defined Networking (SDN) Architecture . 22 2.3 Schematic Representation of an Application Delivery Controller . 26 2.4 Full Virtualization . 29 2.5 Para-Virtualization . 30 2.6 Hardware-assisted Virtualization . 31 2.7 Three Approaches to NIC Virtualization . 36 2.8 IEEE 802.1BR bridge port extension . 37 2.9 Virtual Machines on different VLANs . 38 2.10 Middlebox Deployment in Enterprise Datacenters . 43 2.11 Application Delivery Controller Deployment in an Enterprise Datacenter . 44 2.12 Under-the-Cloud (UtC) Application Delivery Services [101] . 45 2.13 Over-the-Cloud (OtC) Application Delivery Services [101] . 46 2.14 Hybrid (private-public) Application Deployment . 48 2.15 Multi-Enterprise Datacenter Application Deployment . 49 2.16 Multi-Cloud Datacenter Application Deployment . 50 2.17 Subjective Plot of Opportunity-vs-Difficulty . 51 2.18 IBM autonomic Computing: Structure of an Autonomic Element [67] . 54 2.19 Schematic Representation of an Enterprise Service Bus (ESB) . 57 2.20 Centralized Broker Architecture . 58 2.21 Distributed Broker Architecture . 59 2.22 Internet Generations . 66 2.23 Organization of "Objects" in Internet 3.0 . 68 2.24 Internet 3.0 POPs enhanced with Context Routers . 70 2.25 Context Router Design . 71 2.26 The new "narrow waist" of NDN (right) compared to the current Internet (left) ....................................... 73 iv 2.27 MobilityFirst Architecture . 75 2.28 NEBULA Architecture . 77 2.29 XIA Components and Interactions . 78 3.1 Schematic Representation of an Application Delivery Network (ADN) . 84 3.2 High-level Architecture of AppFabric showing the distributed data plane, hi- erarchical control plane and centralized management plane . 92 3.3 PONA is part of the Internet 3.0 Architecture (redrawn from Fig. 2.23) . 94 3.4 AppFabric Distributed Virtual Switch . 95 4.1 AppFabric Distributed Virtual Switch (reproduction of Fig. 3.4 ) . 98 4.2 Middlebox Deployment in Enterprise Datacenters (reproduction of Fig. 2.10) 101 4.3 Middlebox Deployment in Cloud Datacenters . 102 4.4 High-level Schematic Representation of the OpenADN Design . 109 4.5 Generic ADVS Port . 110 4.6 An Example AppFabric Service Workflow . 116 4.7 Configuration of Nested Tunnels in OpenADN for the AppFabric Service Workflow in Fig. 4.6 . 118 5.1 Lighthouse Interfaces . 124 5.2 Schematic Representation of the Global Manager . 126 5.3 Sites and Zones . 128 5.4 Schematic Representation of the Global Controller . 131 5.5 Schematic Representation of the pPort . 132 5.6 Schematic Representation of the Local Controller . 134 5.7 Schematic Representation of an AppFabric VM . 135 6.1 Schematic representation of an AppFabric Service Workflow. Reproduction of Fig. 1.3 from chap. 1 . 147 6.2 Service Node Configuration . 149 6.3 Service Graph corresponding to Listing. 6.3 . 153 6.4 Message Routing . 154 6.5 Class Diagram of the Classifier System . 157 6.6 AppFabric Application Cloud(reproduction of Fig. 1.4) . 159 6.7 Sites and Zones (reproduced from Fig. 5.3) . 161 6.8 AppFabric Distributed Virtual Switch (reproduction of Fig. 3.4) . 166 6.9 AppFabric Service Conduit Abstraction . 167 6.10 sPort - Service Port . 169 6.11 AppFabric Gateway Node - pPort interface . 170 6.12 tPort Interfaces . 173 6.13 2-level Switching in tPort . 174 6.14 Layer 3.5 and Layer 4.5 Tunelling . 176 v 6.15 Case 1. Between two message-level services on the same host . 177 6.16 Case 2. Between two message-level services with one or more intermediary packet-level services . 178 6.17 Host Interfaces . 179 6.18 tPort Switch . 180 6.19 Case 3: Between two message-level services on different hosts . 181 6.20 Case 4: Between two message-level services on different hosts thorough a packet level service . 183 6.21 OpenADN: Overall Architecture (as implemented) . 184 6.22 OpenADN: Overall Architecture (future implementation) . 185 6.23 High-level Architecture of AppFabric showing the distributed data plane, hi- erarchical control plane and centralized management plane (reproduction of Fig. 3.2) . 186 6.24 Class Diagram of the Global Controller . 188 6.25 Class Diagram of the Local Controller . 191 6.26 Emulation Scenario 1 . ..