Deploying and Managing Network Services Over Programmable Virtual Networks
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO RICARDO LUIS DOS SANTOS Deploying and Managing Network Services over Programmable Virtual Networks Thesis presented in partial fulfillment of the requirements for the degree of Doctor of Computer Science Advisor: Prof. Dr. Lisandro Zambenedetti Granville Coadvisor: Prof.a Dr.a Liane M. Rockenbach Tarouco Porto Alegre September 2018 CIP – CATALOGING-IN-PUBLICATION Santos, Ricardo Luis dos Deploying and Managing Network Services over Pro- grammable Virtual Networks / Ricardo Luis dos Santos. – Porto Alegre: PPGC da UFRGS, 2018. 177 f.: il. Thesis (Ph.D.) – Universidade Federal do Rio Grande do Sul. Programa de Pós-Graduação em Computação, Porto Alegre, BR– RS, 2018. Advisor: Lisandro Zambenedetti Granville; Coadvisor: Liane M. Rockenbach Tarouco. 1. Network Programmability. 2. Network Marketplace. 3. Network Applications. 4. Programmable Virtual Networks. I. Granville, Lisandro Zambenedetti. II. Tarouco, Liane M. Rock- enbach. III. Título. UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Reitor: Prof. Rui Vicente Oppermann Vice-Reitor: Profa. Jane Fraga Tutikian Pró-Reitor de Pós-Graduação: Prof. Celso Giannetti Loureiro Chaves Diretor do Instituto de Informática: Profa. Carla Maria Dal Sasso Freitas Coordenador do PPGC: Prof. João Luiz Dihl Comba Bibliotecária-chefe do Instituto de Informática: Beatriz Regina Bastos Haro “I don’t believe in magic. I believe in hard work.” —RICHIE MCCAW (ALL BLACKS CAPTAIN) ACKNOWLEDGEMENTS Acknowledgements are written in Portuguese because of my family. Meus sinceros agradecimentos para todos aqueles que confiaram em mim e que me apoiaram nos mo- mentos mais difíceis, a saber, minha mãe, meu pai, meu irmão, minha namorada, meu orientador, os verdadeiros amigos, os colegas (de trabalho e da UFRGS) e também todos os conhecidos. Saibam que todos vocês tiveram uma parcela de suma importância e me ajudaram a seguir em frente. Ainda, gostaria de agradecer também todos aqueles que, em algum momento, duvidaram ou colocaram alguma barreira para eu atingir meus objetivos. Saibam que vocês me fortaleceram nos momentos que eu mais precisei. Muito obrigado! ABSTRACT Several companies and standardization bodies have attempted to define standards and find solutions for networks that support virtualization and programmability (also known as Programmable Virtual Networks - PVNs), such as Juniper Junos, Cisco ONE, OpenFlow, ETSI NFV, and IETF ForCES. These solutions provide an Execution Environment (EE) that supports the deployment of Network Applications (NetApps). However, in the case of PVNs, several tasks are complex and repetitive, mainly because the PVN owners must have an extensive knowledge of the device instructions to deploy and manage NetApps. A few years ago, Apple and Google overcame similar shortcomings by introducing online marketplaces. The successful paradigm for mobile application stores could be applied to the networking market, and this could help PVN owners to deploy and manage NetApps in their PVNs. In this thesis, we review the state-of-the-art of network programmability and virtualization, as well as discuss their main drawbacks. Following this, we analyze the historical background of marketplaces with regard to networking paradigms to define the essential design goals for a reference network marketplace. Thus, inspired by the main drawbacks and essential design goals, we propose the App2net ecosystem. App2net empowers PVN owners, who do not know the specific features of the underlying infras- tructure, to deploy and manage NetApps in PVNs formed of different EEs. We conducted a case study to evaluate our ecosystem, which contains all the steps for a third-party de- veloper to describe and publish an innovative network service. Then, we describe the main interactions for a PVN owner when deploying and managing this network service in a PVN with heterogenous EEs. Also, we implemented a prototype of App2net to evaluate the feasibility and the impact in terms of the distribution time, CPU usage, and network overhead. When the baseline results are taken into account, App2net demonstrates an ability to reduce the distribution time and the total network traffic generated. At the same time, our ecosystem increases the CPU usage (required to execute it) and also had mini- mal network overhead. Keywords: Network Programmability. Network Marketplace. Network Applications. Programmable Virtual Networks. Implantando e Gerenciando Serviços de Rede em Redes Virtuais Programáveis RESUMO Várias empresas e órgãos de normalização têm tentado definir padrões e buscar soluções para redes que suportam virtualização e programabilidade (também conhecidas como Re- des Virtuais Programáveis - Programmable Virtual Networks - PVNs), tais como Juni- per Junos, Cisco ONE, OpenFlow, ETSI NFV e IETF ForCES. Essas soluções fornecem um ambiente de execução (Execution Environment - EE) que suporta a implantação de Aplicações de Rede (Network Applications - NetApps). No entanto, no caso das PVNs, diversas tarefas são complexas e repetitivas, principalmente porque os proprietários de PVNs devem ter um amplo conhecimento das instruções dos dispositivos para implantar e gerenciar os NetApps. Há alguns anos, a Apple e o Google superaram deficiências se- melhantes ao introduzir lojas on-line. O paradigma de sucesso das lojas de aplicativos móveis poderia ser aplicado ao mercado de redes, e isso poderia auxiliar os proprietários de PVN a implantar e gerenciar NetApps em suas PVNs. Nesta tese, nós revisamos o es- tado da arte da virtualização e programabilidade de redes, bem como discutimos as suas principais desvantagens. Em seguida, nós analisamos o histórico das lojas em relação aos paradigmas de rede para definir os objetivos essenciais de projeto para uma loja de rede de referência. Assim, inspirados pelas principais desvantagens e pelos objetivos essenci- ais de projeto, nós propomos o ecosistema App2net. O App2net capacita os proprietários de PVN, que não conhecem os recursos específicos da infraestrutura subjacente, a im- plantar e gerenciar NetApps em PVNs formadas por diferentes EEs. Nós conduzimos um estudo de caso para avaliar nosso ecosistema, o qual contém todos os passos para um desenvolvedor terceirizado descrever e publicar um serviço de rede inovador. Então, nós descrevemos as principais interações para um proprietário de PVN, ao implantar e gerenciar este serviço de rede em uma PVN com EEs heterogêneos. Ainda, nós imple- mentamos um protótipo do App2net para avaliar a viabilidade e o impacto em termos do tempo de distribuição, uso de CPU e sobrecarga da rede. Quando os resultados de base são considerados, App2net demonstra uma habilidade para reduzir o tempo de distribui- ção e o tráfego total de rede gerado. Ao mesmo tempo, nosso ecosistema incrementa o uso da CPU (necessário para executá-lo) e também teve uma sobrecarga de rede mínima. Palavras-chave: Programabilidade de Redes. Loja de Rede. Aplicações de Rede. Redes Virtuais Programáveis.. LIST OF ABBREVIATIONS AND ACRONYMS 3G Third Generation 3GPP 3rd Generation Partnership Project 6Bone IPv6 Backbone ANTS Active Node Transfer System AON Application-Oriented Networking API Application Programming Interface app Application app2net Applications to Network ASIC Application Specific Integrated Circuits AWS Amazon Web Service CAIDA Center for Applied Internet Data Analysis CAPEX Capital Expenditure CE Control Element COTS Commercial Off-The-Shelf CPU Central Processing Unit DARPA Defense Advanced Research Projects Agency DB Database DDoS Distributed Denial-of-Service DoS Denial-of-Service DPI Deep Packet Inspection DSL Digital Subscriber Line EC2 Elastic Compute Cloud EE Execution Environment ETSI European Telecommunications Standards Institute FDM Frequency Division Multiplexing FE Forwarding Element FIFO First In First Out ForCES Forwarding and Control Element Separation FPGA Field Programmable Gate Array GB Gigabyte Gbps Gigabits per second GHz Gigahertz GRE Generic Routing Encapsulation HPE Hewlett-Packard Enterprise HTTP Hypertext Transfer Protocol IETF Internet Engineering Task Force iMPROVE Marketplace for Programmable Virtual Network IoT Internet of Things iOS iPhone Operating System IP Internet Protocol IPSec Internet Protocol Security IPv6 Internet Protocol version 6 ISG Industry Specification Group ISP Internet Service Provider IT Information Technology JDN Juniper Developer Network JPSM Juniper Professional Services Marketplace JSON JavaScript Object Notation JunOS Junos Operating System KB Kilobyte L2 Layer 2 L3 Layer 3 L1VPN Layer 1 Virtual Private Network L2VPN Layer 2 Virtual Private Network L3VPN Layer 3 Virtual Private Network LAN Local Area Network MANO Management & Orchestration MB Megabyte MBone Mutlticast Backbone MIB Management Information Base NACR Network Application Code Repository NAD Network Application Descriptor NAT Network Address Translation NetApp Network Application NETCONF Network configuration NetFPGA Network Field Programmable Gate Array NFV Network Functions Virtualization NIC Network Interface Card NIST National Institute of Standards and Technology NS2 Network Simulator version 2 NS3 Network Simulator version 3 NSD Network Service Descriptor NTP Network Time Protocol NVE Network Virtualization Environment ONE Open Network Environment ONF Open Network Foundation onePK Open Network Environment Platform Kit OPEX Operational Expenditure OPNFV Open Platform for Network Functions Virtualization OS Operating System OSI Open Systems Interconnection