Redes Definidas por Software (SDN), OpenFlow e outros Controladores de Rede
Citation preview
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
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