Escolar Documentos
Profissional Documentos
Cultura Documentos
assis.tiago@gprt.ufpe.br
atof@cin.ufpe.br
July 23, 2012 2
Sigcomm
2013
Agosto, 2013
3
Abril, 2014
4
2015
Roteiro
• Introdução
• Elementos de uma rede tradicional
• O padrão OpenFlow
• O princípio de Redes Definidas por Software
• Cenários de aplicação
• O controlador SDN
• Exemplos de controladores existentes
6
Componentes de uma rede atual
7
Encaminhamento: selecionar um porto de saída baseado no endereço de destino e na tabela
de rotas
Endereço Porta
MACA 1
MACB 15
MACC 6
MACD MACA
MACD 13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
MACD MACA
8
Organização de um switch/roteador
10
Olhando um switch mais de perto
HP procurve 2824,
11 2003-2009
Olhando um switch mais de perto
12
Olhando um switch mais de perto
Muitas funções complexas
embutidas na infraestrutura
HW especializado de
encaminhamento de pacotes Bilhões de portas
lógicas
13
Componentes de uma rede atual
Arquitetura fechada, sem
facilidades para inserção Função
... Função
de novas funcionalidades (Aplic.) (Aplic.)
.
(“ossificada”) Sistema
Operacional Função Função
(Aplic.)
... (Aplic.)
Função Função HW especializado de
(Aplic.)
... (Aplic.) .
encaminhamento de Sistema
. pacotes
Sistema Operacional
Operacional HW especializado de
HW especializado de encaminhamento de
encaminhamento de pacotes
pacotes Função
... Função
(Aplic.) (Aplic.)
.
Função
... Função Sistema
(Aplic.) (Aplic.) Operacional
.
Sistema HW especializado de
Operacional encaminhamento de
HW especializado de pacotes
encaminhamento de 14
pacotes
Roteiro
• Introdução
• Elementos de uma rede tradicional
• O padrão OpenFlow
• O princípio de Redes Definidas por Software
• Cenários de aplicação
• O controlador SDN
• Exemplos de controladores existentes
16
OpenFlow e Redes Definidas por Software (SDN)
Uma nova forma de olhar para o problema:
• Dotar novamente o núcleo da rede de recursos de programação
Origens:
• Sane (2006), Ethane (2007): controle centralizado de regras de firewall
distribuídas em uma rede corporativa
17
A proposta de Redes Definidas por Software
Rothenberg
A proposta de SDN
Função
(Aplic.)
Função
(Aplic.)
Função
(Aplic.) .... Função
(Aplic.)
HW simplificado de
HW simplificado de
HW simplificado de encaminhamento de
encaminhamento de
encaminhamento de pacotes
pacotes
pacotes
HW simplificado de
encaminhamento de
pacotes
HW simplificado de
encaminhamento de
pacotes 21
A proposta de Redes Definidas por Software (com
OpenFlow)
Função
(Aplic.)
Função
(Aplic.)
Função
(Aplic.) .... Função
(Aplic.)
23
Roteiro
• Introdução
• Elementos de uma rede tradicional
• O padrão OpenFlow
• O princípio de Redes Definidas por Software
• Cenários de aplicação
• O controlador SDN
• Exemplos de controladores existentes
24
O padrão OpenFlow descreve um protocolo aberto que permite que aplicações em software possam
coordenar as tabelas de fluxo de diferentes dispositivos .
O protocolo OpenFlow é uma proposta para padronizar a comunicação entre um elemento externo
baseado em software, denominado controlador, e os dispositivos de redes (switch OpenFlow) na
arquitetura SDN
McKeown
Organização de um comutador (switch) OpenFlow
Controlador
OpenFlow Plano de controle
OpenFlow
26
Arquitetura OpenFlow
OpenFlow: entradas da tabela de encaminhamento (ou fluxo)
Caso não haja uma regra definida para um tipo de pacote (um fluxo), envia o pacote para o controlador
28
OpenFlow: entradas da tabela de encaminhamento
(OpenFlow 1.1)
29
OpenFlow: entradas da tabela de encaminhamento
30
OpenFlow: versões
32
OpenFlow já é realidade no mercado
Juniper EX Series
NEC ProgrammableFlow®
Infinera MultiGb OTN
34
Roteiro
• Introdução
• Elementos de uma rede tradicional
• O padrão OpenFlow
• O princípio de Redes Definidas por Software
• Cenários de aplicação
• O controlador SDN
• Exemplos de controladores existentes
36
SDN é legal, mas... o que eu faço com isso?
37
Controle de acesso
38
Gerência de redes
39
Redes Domiciliares
40
Gerência de energia
41
Comutador (switch) virtual distribuído
42
Aplicações: Roteador expansível (scale-out)
43
Desafios – problemas interessantes
44
Roteiro
• Introdução
• Elementos de uma rede tradicional
• O padrão OpenFlow
• O princípio de Redes Definidas por Software
• Cenários de aplicação
• O controlador SDN
• Exemplos de controladores existentes
45
Formas de organização do controlador e da rede
46
O controlador SDN
47
O controlador SDN
48
Controle Centralizado x Distribuído
49
Qual a unidade de identificação do tráfego?
51
Reativo x Proativo x Híbrido
53
Reativo x Proativo x Híbrido
54
Reativo x Proativo x Híbrido
Híbrido
● Combinação dos dois métodos
● Sempre que possível, utiliza o modo proativo, evitando latências
maiores na construção de uma entrada na tabela
● Para casos onde a flexibilidade é essencial, como uma decisão
dependente do estado da rede, utiliza o modo reativo
55
Controladores SDN: características a considerar
● Linguagem de programação
● Nível de Abstração
● Curva de aprendizado
● Tamanho da base de usuários
● Suporte (comunidade ou empresa)
● Foco:
● Southbound API ou Northbound API?
● Integração com ambientes de nuvem?
● Educação, pesquisa ou produção?
56
Northbound API X Southbound API
Principais controladores SDN
● NOX/POX
● Ryu
● Floodlight
● OpenDaylight
● Beacon
● Onix
● ONOS
Outros controladores:
https://www.sdxcentral.com/resources/sdn/sdn-controllers/open-source-sdn-controllers/
58
Roteiro
• Introdução
• Elementos de uma rede tradicional
• O padrão OpenFlow
• O princípio de Redes Definidas por Software
• Cenários de aplicação
• O controlador SDN
• Exemplos de controladores existentes
59
NOX
● Linux
● C++ e Python (“cola” para módulos C++)
● Cooperative multithreading
● Sistema de componentes
● Programação orientada a eventos
● Algumas aplicações distribuídas com o Software
61
POX
62
RYU
63
FloodLight
64
OpenDaylight
65
ONIX
de comutação
● Ao particionar e replicar a NIB entre máquinas, atinge alta
escalabilidade e confiabilidade
● Consistência entre máquinas é garantida pela implementação
66
ONOS
67
Controladores
NOX 1º Controlador construído; Muito Popular Mantido pela comunidade de pesquisa Stanford Python e C++
Dificil instalação e configuração
API deixa a desejar
POX Simples de implementar, flexível Ótimo para pesquisa, desempenho deficiente Python
Derivado do NOX Prototipação rápida
FloodLight Implementado para redes corporativas Deixa a desejar nos critérios de escalabilidade e Java
Permite integrar com redes não OpenFlow alto desempenho
Beacon Multithread. Controlador pode ser modificado Datacenter com 100 vSwitch + 20 switches Java
dinamicamente
Ryu Curva de aprendizado moderada, suporte a várias Documentação extensa, vários cases Python
versões do OF, integração com o OpenStack desenvolvidos, desempenho a desejar
ONIX Estado da rede em múltiplos controladores Projeto em conjunto com NEC, Google, Yahoo! C++, Python e
distribuídos; Código fechado Java
Network Information Base (NIB) Foco: Escalabilidade e confiabilidade
"Ethanol: Software Defined Networking for 802.11 Wireless Networks." IFIP/IEEE International
Symposium on Integrated Network Management (IM). 2015. 69
Redes Definidas por Software, segundo seus criadores