redes definidas por software (sdn) e openflow

Download Redes Definidas por Software (SDN) e OpenFlow

If you can't read please download the document

Upload: anderson-weller

Post on 28-Nov-2014

3.371 views

Category:

Technology


3 download

DESCRIPTION

Redes Definidas por Software (SDN), OpenFlow e outros Controladores de Rede

TRANSCRIPT

  • 1. SDN Componentes OpenFlow Controladores Redes Definidas por Software (SDN), OpenFlow e outros Controladores de Rede Anderson Coelho Weller Universidade Estadual de Campinas Instituto de Computao 21 de outubro de 2013 Consideraes
  • 2. SDN Componentes OpenFlow Controladores Consideraes Agenda 1 SDN 2 Componentes 3 OpenFlow 4 Controladores 5 Consideraes 2/60
  • 3. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Introduo Redes Definidas por Software (SDN) um novo paradigma no desenvolvimento de pesquisas em redes de computadores Grande interesse tanto da rea acadmica quanto industrial Principalmente por causa do OpenFlow Porm, SDN muito mais do que OpenFlow 3/60
  • 4. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Introduo rea de redes encontra-se em situao complexa: Grande sucesso da rea Necessrio estabilidade na Internet Pesquisas com novos protocolos tornaram-se arriscadas Tornando as redes pouco flexveis 4/60
  • 5. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Introduo Mesmos pesquisas como a Internet2 Tm dificuldades em justificar a adoo em larga escala de suas novas tecnologias Devido ao grau de ruptura com as tecnologias atuais 5/60
  • 6. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Introduo Existem vrias pesquisas para a criao de redes com maiores recursos de programao Que permitam a insero gradual de novas tecnologias Exemplos: Active Networks PlanetLab GENI 6/60
  • 7. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Introduo Outra linha de pesquisa: Fazer pequenas modificaes nas operaes existentes Permitindo o desenvolvimento de hardware de alto desempenho Porm, possibilitando maior controle da rede (pelo administrador). 7/60
  • 8. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Introduo Exemplo prtico: Pequenas modificaes na operao de encaminhamento de pacotes (que precisa de alto desempenho) Popularizado pelo MPLS (Multi-protocol Label Switching) Chaveamento baseado em rtulos programveis 8/60
  • 9. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Origens A iniciativa mais bem sucedida foi o OpenFlow. Nele, os elementos de encaminhamento permitem: Acesso e controle da tabela de encaminhamento Utilizada pelo hardware Porm, a deciso sobre o destino de cada pacote pode ser transferida para um nvel superior 9/60
  • 10. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Origens Essa estrutura permite que a rede possa ser controlada atravs de aplicaes (software) Esse novo paradigma ficou conhecido como: SDN (Software Defined Networks) Redes Definidas por Software 10/60
  • 11. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Motivao Por que investir no SDN? Devido s diversas possibilidades de aplicao desse paradigma, tem atrado a ateno de pesquisadores e fabricantes. A comutao de pacotes no fica limitada aos princpios definidos pelo Ethernet ou IP. 11/60
  • 12. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Motivao Outros motivos: J existem implementaes funcionais do OpenFlow: Como processo de usurio Ou, integrado ao Kernel, para ambientes virtualizados (Open vSwitch) Vrios fabricantes j oferecem produtos com a interface OpenFlow: Juniper, NEC, HP, Netgear, Cisco, Ciena, etc. 12/60
  • 13. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Motivao Porm, o padro OpenFlow apenas uma parte das SDNs. Uma SDN pode apoiar-se no OpenFlow e criar novas aplicaes para controle dos elementos de comutao. 13/60
  • 14. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Motivao Essas aplicaes so conhecidas como: Controladores de Redes Sistemas Operacionais de Redes (Networks Hypervisors) 14/60
  • 15. SDN Componentes OpenFlow Controladores Consideraes Introduo SDN Motivao Os controladores de rede permitem: Acessar as interfaces de rede compatveis Gerar comandos de controle da infraestrutura de chaveamento O que possibilita (por exemplo): Criar novas polticas de segurana Controle e monitoramento de trfego mais sofisticados Vises diferentes para cada usurio de um Datacenter 15/60
  • 16. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN SDN Resumindo SDN: uma rede contendo um sistema de controle (software) Que disponibiliza mtodos para aplicativos de rede Realizarem o controle do mecanismo de encaminhamento dos elementos de comutao. 16/60
  • 17. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Estrutura do Software O software poderia ser uma aplicao monoltica. Mas, normalmente estruturado com: Um controlador geral E vrias aplicaes especficas 17/60
  • 18. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Estrutura do Software Outra possibilidade ter um divisor de vises: Com vrios Controladores E suas respectivas aplicaes 18/60
  • 19. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Estrutura geral de uma SDN Uma SDN composta pelos seguintes elementos: Elementos de comutao programveis Divisor de recursos / vises Controladores Aplicaes de rede 19/60
  • 20. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Elementos de comutao programveis Lembrando da operao de encaminhamento nas redes baseadas em pacotes: O pacote recebido pela interface Depois inspecionado feita consulta tabela de encaminhamento Qual o destino (MAC, IP, etc) Se destino foi identificado: Envia pacote para a porta de destino Se no foi encontrado: O pacote descartado, ou realizada uma operao Default 20/60
  • 21. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Elementos de comutao programveis O hardware atual realiza o encaminhamento com alto desempenho. problemtico acrescentar novas funcionalidades Ento, como uma SDN pode modificar a rede sem modificar o hardware? 21/60
  • 22. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Elementos de comutao programveis As SDNs se restringem manipulao simples de pacotes Baseado no conceito de fluxos Sequncia de pacotes com mesmos valores em seus atributos. Dessa forma, basta: Controlar o contedo da tabela de encaminhamento. E indicar ao hardware a ao a ser tomada, ao detectar um padro. 22/60
  • 23. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Divisores de recursos/vises Isso foi possvel pois: Manteve-se os Fluxos de Operao da rede E estendeu-se o tratamento para os Fluxos de Pesquisa 23/60
  • 24. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Divisores de recursos/vises Com novos tipos de pesquisa trabalhando em paralelo: possvel criar vises diferente da rede Cada uma com sua cota de recursos Seguindo o princpio de particionamento de trfego Internet 24/60
  • 25. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Controlador O que faz o elemento controlador ? Oculta os detalhes internos da rede Centraliza a comunicao com os elementos programveis Oferece uma viso unificada da rede 25/60
  • 26. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Controlador E pode trabalhar de forma distribuda Atravs da diviso dos elementos de viso Ou atravs de algoritmos distribudos 26/60
  • 27. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Controlador Existem vrios tipos de controladores diferentes Ryu NOX Flowvisor Routeflow Trema Maestro Beacon Onix 27/60
  • 28. SDN Componentes OpenFlow Controladores Consideraes Componentes de uma SDN Aplicaes de Rede So as funcionalidades acrescentadas s redes. Ex.: Solues de roteamento Controle de interao entre os comutadores Simulando um nico Switch ou Roteador IP Controle de acesso Gerncia de redes Gerncia de energia Comutador Virtual Roteador expansvel de alta capacidade Datacenters multi-usurios 28/60
  • 29. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow OpenFlow um padro aberto para SDN Funciona como um protocolo de comunicao entre: O controlador E os equipamentos 29/60
  • 30. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow OpenFlow A evoluo das SDNs est diretamente ligada ao sucesso do OpenFlow. Ele permite a realizao de pesquisas e testes de novos protocolos Em equipamentos de redes comerciais Em paralelo com a operao normal das redes Isso possvel atravs de uma API Que permite aos programadores controlar os elementos de encaminhamento de pacotes 30/60
  • 31. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Estrutura do OpenFlow Estrutura de um Switch tradicional [3]: 31/60
  • 32. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Estrutura do OpenFlow Estrutura de um Switch tradicional [3]: 32/60
  • 33. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Estrutura do OpenFlow Estrutura de um Switch OpenFlow-Hybrid: 33/60
  • 34. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Estrutura do OpenFlow Estrutura de um Switch OpenFlow-Only : 34/60
  • 35. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Estrutura do OpenFlow No OpenFlow existe uma separao bem definida entre: Plano de Dados Plano de Controle 35/60
  • 36. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow OpenFlow - Plano de Dados Cuida do encaminhamento de pacotes Utiliza regras simples (Chamada de Aes): Encaminhar pacote Alterar parte do cabealho Descartar pacote Encaminhar para o controlador (inspeo) 36/60
  • 37. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow OpenFlow - Plano de Controle Permite programar as entradas na tabela de encaminhamento Com padres que identifiquem: Os fluxos de interesse E as regras associadas a eles 37/60
  • 38. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow OpenFlow - Plano de Controle Esse mdulo de software pode ser implementado de forma independente (em algum ponto da rede) Ou trabalhar distribuidamente Controle Centralizado Controle Distribudo 38/60
  • 39. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow OpenFlow - Especificaes Requisitos do Switch [5]: Flow Tables OpenFlow Channel Tipos de Porta 39/60
  • 40. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow OpenFlow - Especificaes Tipos de Mensagens: Controller-to-Switch Asynchronous Symmetric 40/60
  • 41. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Estrutura Cada entrada da tabela de fluxo contm [5]: Match Fields: para comparar com o pacotes. Priority: prioridade do fluxo de entrada. Counters: estatsticas para o fluxo. Instructions: aes a realizar. Timeouts: tempo mximo ou tempo ocioso para excluir da tabela. Cookie: utilizado somente pelo controlador. 41/60
  • 42. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Exemplo da Tabela de Fluxo Um Switch OpenFlow utiliza memrias TCAM (Ternary Content-Addressable Memory ) para as tabelas de fluxo. Nelas os bits podem ser representados com: 0 (Zero) 1 (Um) * (No importa - Dont care) 42/60
  • 43. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Funcionamento Quando o switch recebe um pacote ele deve compar-lo com a sua tabela de fluxo. 43/60
  • 44. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Funcionamento Se o cabealho no for compatvel com nenhum fluxo em sua tabela, ele deve encaminhar o cabealho para o controlador. 44/60
  • 45. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Funcionamento Ao receber o cabealho, o controlador toma uma deciso: Enviar uma tabela de fluxos para o switch; Ou indicar uma ao para o pacote (por exemplo: descart-lo). 45/60
  • 46. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Estrutura de Match Fields I /* OXM Flow match field types for OpenFlow basic class ( oxm_class = O F P X M C _ O P E N F L O W _ B A S I C ) */ enum o x m _ o f b _ m a t c h _ f i e l d s { OFPXMT_OFB_IN_PORT = 0 , // Switch input port O F P X M T _ O F B _ I N _ P H Y _ P O R T = 1 , // Switch physical input port O F P X MT _ O F B _ M E T A D A T A = 2 , // Metadata passed between // tables OFPXMT_OFB_ETH_DST = 3 , // Ethernet destination // address OFPXMT_OFB_ETH_SRC = 4 , // Ethernet source address OFPXMT_OFB_ETH_TYPE = 5 , // Ethernet frame type OFPXMT_OFB_VLAN_VID = 6 , // VLAN id OFPXMT_OFB_VLAN_PCP = 7 , // VLAN priority OFPXMT_OFB_IP_DSCP = 8 , // IP DSCP (6 bits in ToS // field ) OFPXMT_OFB_IP_ECN = 9 , // IP ECN (2 bits in ToS // field ) O F P X MT _ O F B _ I P _ P R O T O = 10 , // IP protocol O F P X MT _ O F B _ I P V 4 _ S R C = 11 , // IPv4 source address O F P X MT _ O F B _ I P V 4 _ D S T = 12 , // IPv4 destination address 46/60
  • 47. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Estrutura de Match Fields II OFPXMT_OFB_TCP_SRC OFPXMT_OFB_TCP_DST OFPXMT_OFB_UDP_SRC OFPXMT_OFB_UDP_DST OFPXMT_OFB_SCTP_SRC OFPXMT_OFB_SCTP_DST OFPXMT_OFB_ICMPV4_TYPE OFPXMT_OFB_ICMPV4_CODE OFPXMT_OFB_ARP_OP OFPXMT_OFB_ARP_SPA OFPXMT_OFB_ARP_TPA OFPXMT_OFB_ARP_SHA = = = = = = = = = = = = 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , OFPXMT_OFB_ARP_THA = 25 , OFPXMT_OFB_IPV6_SRC OFPXMT_OFB_IPV6_DST OFPXMT_OFB_IPV6_FLABEL OFPXMT_OFB_ICMPV6_TYPE OFPXMT_OFB_ICMPV6_CODE = = = = = 26 , 27 , 28 , 29 , 30 , // // // // // // // // // // // // // // // // // // // // TCP source port TCP destination port UDP source port UDP destination port SCTP source port SCTP destination port ICMP type ICMP code ARP opcode ARP source IPv4 address ARP target IPv4 address ARP source hardware address ARP target hardware address IPv6 source address IPv6 destination address IPv6 Flow Label ICMPv6 type ICMPv6 code 47/60
  • 48. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Estrutura de Match Fields III OFPXMT_OFB_IPV6_ND_TARGET = OFPXMT_OFB_IPV6_ND_SLL = OFPXMT_OFB_IPV6_ND_TLL = OFPXMT_OFB_MPLS_LABEL = OFPXMT_OFB_MPLS_TC = O F P X MT _ O F P _ M P L S _ B O S = O F P X MT _ O F B _ P B B _ I S I D = OFPXMT_OFB_TUNNEL_ID = OFPXMT_OFB_IPV6_EXTHDR = OFPXMT_OFB_PBB_UCA 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , // // // // // // // // // // = 41 , // Target address for ND Source link - layer for ND Target link - layer for ND MPLS label MPLS TC MPLS BoS bit PBB I - SID Logical Port Metadata IPv6 Extension Header pseudo - field PBB UCA header field }; 48/60
  • 49. SDN Componentes OpenFlow Controladores Consideraes O padro OpenFlow Limitaes e futuras verses Desde a verso 1.0.0 (31/12/2009) at a atual 1.4.0 (14/10/2013, ver [5]), a especificao do OpenFlow j sofreu vrias modificaes. Porm, ainda existem algumas limitaes, por exemplo: Definio do padro para circuitos pticos e Definio de fluxos que englobe protocolos fora do modelo TCP/IP. A verso 2.0 est sendo formulada com o intuito de eliminar essas limitaes (entre outras). 49/60
  • 50. SDN Componentes OpenFlow Controladores Consideraes Controladores SDN Controladores de Rede Como apresentado, existem vrios tipos de controladores de rede, como exemplo temos: OpenFlow Reference Stanford/Nicira No projetado para ser extensvel RouteFlow CPqD (Brasil) Encaminhamento IP como um servio (quagga) NOX Nicira Desenvolvendo ativamente Ryu Nippon Telegraph and Telephone Corporation Framework 50/60
  • 51. SDN Componentes OpenFlow Controladores Consideraes Controladores SDN NOX o controlador original do OpenFlow. Possibilita o desenvolvimento de controladores em C++ ou Python Trabalha sobre o conceito de fluxos de dados Checa o primeiro pacote de cada fluxo E determina a poltica a ser aplicada 51/60
  • 52. SDN Componentes OpenFlow Controladores Consideraes Controladores SDN NOX um sistema operacional de rede simples Prov primitivas para: Gerenciamento dos eventos Funes para a comunicao com os switches Os mesmos desenvolvedores do NOX desenvolveram o POX, com a premissa dele ser completamente escrito em Python. 52/60
  • 53. SDN Componentes OpenFlow Controladores Consideraes Controladores SDN Ryu um Framework para desenvolvimento de aplicaes SDN, ao invs de um controlador monoltico [7]. Tem a filosofia de permitir um desenvolvimento gil. um software Open Source (Apache v2), totalmente escrito em Python. 53/60
  • 54. SDN Componentes OpenFlow Controladores Consideraes Controladores SDN Ryu Disponibiliza um conjunto de componentes para criao das aplicaes SDN Esses componentes disponibilizam: Interface para controle, consulta e gerao de eventos. Comunicao por troca de mensagens 54/60
  • 55. SDN Componentes OpenFlow Controladores Consideraes Controladores SDN Ryu As componentes e bibliotecas includas no Ryu so: 55/60
  • 56. SDN Componentes OpenFlow Controladores Consideraes Consideraes Finais A arquitetura SDN est apenas iniciando, porm h um grande interesse tanto acadmico quanto empresarial, devido as possibilidades que ela abre para o futuro das redes de computadores. OpenFlow foi a pea que alavancou a SDN e serve como base para vrios controladores atuais. Porm, no interesse dos fabricantes deixar seus equipamentos abertos para software de outra empresa. Consequentemente, todas esto trabalhando em seus prprios projetos. Mais detalhes sobre o assunto podem ser encontrados a partir das referncias bibliogrficas. 56/60
  • 57. SDN Componentes OpenFlow Controladores Consideraes Referncias Referncias I D. Guedes, L. F. M. Vieira, M. M. Vieira, H. Rodrigues, and R. V. Nunes, Redes definidas por software: uma abordagem sistmica para o desenvolvimento de pesquisas em redes de computadores, in Minicursos do XXX Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos - SBRC 2012, Ouro Preto, MG, April 2012, pp. 160210. [Online]. Available: http://sbrc2012.dcc.ufmg.br/app/p-04-f.html [Accessed: Sep. 16, 2013] N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and J. Turner, Openflow: Enabling innovation in campus networks, SIGCOMM Comput. Commun. Rev., vol. 38, no. 2, pp. 6974, March 2008. [Online]. Available: http://doi.acm.org/10.1145/1355734.1355746 [Accessed: Oct. 07, 2013] L. Bertholdo, Tecnologias, conceitos e servios emergentes: OpenFlow, PoP-RS/UFRGS, Ouro Preto MG, April 2012, 13o WRNP - Workshop RNP. [Online]. Available: http://www.pop-rs.rnp.br/arquivos/2012/WRNP_Openflow.pdf [Accessed: Oct. 17, 2013] ONF, OpenFlow - Specifications, Open Networking Foundation, 2013. [Online]. Available: https://www.opennetworking.org/sdn-resources/onf-specifications/openflow [Accessed: Sep. 30, 2013] , OpenFlow Switch Specification: Version 1.4.0 (Wire Protocol 0x05), Open Networking Foundation, October 2013. [Online]. Available: https://www.opennetworking.org/images/stories/downloads/sdnresources/onf-specifications/openflow/openflow-spec-v1.4.0.pdf [Accessed: Oct. 20, 2013] C. Marcondes, Projeto de Desenvolvimento em OpenFlow: Tutorial de OpenFlow, Universidade Federal de So Carlos (UFSCar), Julho 2011. [Online]. Available: http://www.inf.ufes.br/~magnos/IF/if_files/Tutorial.pdf [Accessed: Oct. 18, 2013] 57/60
  • 58. SDN Componentes OpenFlow Controladores Consideraes Referncias Referncias II OSRG, Build SDN agilely: Ryu, a component-based software-defined networking framework, Nippon Telegraph and Telephone Corporation - Open Source Software Computing Group, 2013. [Online]. Available: http://osrg.github.io/ryu/ [Accessed: Oct. 07, 2013] K. Ohmura, OpenStack/Quantum SDN-based network virtulization with Ryu, Nippon Telegraph and Telephone Corporation - Open Source Software Computing Group, May 2013, 31. [Online]. Available: http://osrg.github.io/ryu/slides/LinuxConJapan2013.pdf [Accessed: Oct. 07, 2013] 58/60
  • 59. SDN Componentes OpenFlow Controladores Agradecimentos Redes Definidas por Software (SDN), OpenFlow e outros Controladores de Rede Anderson Coelho Weller Consideraes
  • 60. SDN Componentes OpenFlow Controladores Consideraes Questo Pergunta sobre SDN A arquitetura SDN define uma nova forma de estruturar um sistema em rede, com isso, vrias pesquisas so realizadas para aproveitar essa organizao em aplicaes de redes de computadores. Sabendo disso, pesquise um desses tipos de aplicao que pode ser melhorado com a utilizao de uma SDN, e descreva sucintamente quais so as vantagens em relao a sua implementao tradicional. Para a pesquisa, utilize o artigo de Guedes et al. [1]. 60/60