+ All Categories
Home > Documents > Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula...

Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula...

Date post: 07-Mar-2018
Category:
Upload: trandiep
View: 238 times
Download: 5 times
Share this document with a friend
90
Uma abordagem sistêmica para o desenvolvimento de pesquisas em Redes de Computadores Dorgival Guedes, Luiz Filipe Menezes Vieira, Marcos Menezes Vieira, Henrique Rodrigues e Rogério Vinhal Nunes Departamento de Ciência da Computação/UFMG Redes Definidas por Software Redes Definidas por Software
Transcript
Page 1: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

Uma abordagem sistêmica para o desenvolvimento de pesquisas em Redes de Computadores

Dorgival Guedes, Luiz Filipe Menezes Vieira, Marcos Menezes Vieira, Henrique Rodrigues e Rogério Vinhal Nunes

Departamento de Ciência da Computação/UFMG

Redes Definidas por SoftwareRedes Definidas por Software

Page 2: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

2

• A Internet é sem dúvida, um grande sucesso...

... mas esse sucesso se tornou um grande problema para sua evolução!

• “A Internet está calcificada (ossified)”° Muito investimento depende do seu funcionamento

° Economia de escala inviabiliza novas tecnologias

• Diversas soluções já foram propostas (p.ex. active nets, PlanetLab) mas tiveram alcance limitado

Page 3: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

3

Redes Definidas por Software (SDN)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 em uma rede corporativa

° OpenFlow (2008): extensão do princípio como uma forma de se programar os elementos de comutação da rede

Page 4: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

4

Redes Definidas por Software (SDN)Redes Definidas por Software (SDN)

• “SDN will allow us to innovate on our own” (N.M.)

• “A major change in paradigm” (S.S.)

• “The beginning of a software era in networking” (S.S.)

• “A common vision of making networking better through sw.” (M.C.)

• “Innovation is the true value proposition of SDN” (S.S.)

Page 5: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

5

Sucesso rápidoSucesso rápido

• Open Networking Foundation, 2011 (Stanford + UC Berkeley)

° Deutsche Telekom, Facebook, Google, Microsoft, Verizon, and Yahoo!

• Open Networking Summit (ONF)

• Open Networking Research Center, 2012

° CableLabs, Cisco, Ericsson, Google, Hewlett-Packard, Huawei, Intel, Juniper, NEC, NTT DOCOMO, Texas Instruments, VMware

Page 6: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

6

E o que este curso tem a ver com isso?E o que este curso tem a ver com isso?

• Apresentar os elementos principais de SDNs

• Exemplificar diversos modelos de programação possíveis

• Introduzir um controlador em mais detalhes

• Listar alguns exemplos de aplicação de SDNs

• Discutir desafios de pesquisa

Page 7: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

7

RoteiroRoteiro

• Introdução

• Componentes de uma rede definida por software (SDN)

• OpenFlow

• Particionamento de recursos (FlowVisor)

• Controladores de rede

• POX

• Aplicações

• Desafios de pesquisa

• Observações finais

Page 8: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

8

Componentes de uma SDNComponentes de uma SDN

Fonte: opennetsummit.org

Page 9: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

9

Componentes de uma SDNComponentes de uma SDN

Page 10: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

10

Componentes de uma SDNComponentes de uma SDN

• Elementos de comutação

° Plano de dados programável

• Divisor de recursos

° Divisão do espaço de endereçamento

• Controlador (sistema operacional de rede)

° Responsável pela visão global da rede

• Aplicações

° Implementação da função de controle

Page 11: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

11

RoteiroRoteiro

• Introdução

• Componentes de uma rede definida por software (SDN)

• OpenFlow

• Particionamento de recursos (FlowVisor)

• Controladores de rede

• POX

• Aplicações

• Desafios de pesquisa

• Observações finais

Page 12: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

12

Elementos de comutação programáveisElementos de comutação programáveis

• Chaveamento de pacotes eficiente (HW)

• Interface de programação para preenchimento da tabela de encaminhamento

• OpenFlow é a interface de programação que tem ganhado mais atenção recentemente° Mas outras opções são possíveis:

• Redes ativas (active networks)

• Chaveamento por labels (a la MPLS)

Page 13: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

13

OpenFlowOpenFlow

• Separação entre planos de dados e controle

• Protocolo de controle bem definido (seguro)

• Atuação através da tabela de fluxos

Page 14: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

14

OpenFlow: regras, ações e estatísticasOpenFlow: regras, ações e estatísticas

Cópia local é mantida e identificada na mensagem para simplificar a resposta

Page 15: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

15

OpenFlow: tabela de fluxosOpenFlow: tabela de fluxos

PORT VLAN MAC Src

MAC Dst

Eth Type

IP Src IP Dst IP Prot

TCP sport

TCP dport

Ação

* * * 00:1f...

* * * * * * Porta 6

p3 vl1 00:20...

00:1f...

0800 1.2.3.4 5.6.7.8 4 1765 80 Porta 6

* * * * * * * * * 22 Drop

* * * * * * 5.6.7.8 * * * Porta 6

* vl1 00:1f...

* * * * * * Portas 6,7,8

Page 16: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

16

OpenFlow: implementaçõesOpenFlow: implementações

• Versões: 0.8, 1.0, 1.1, 1.2 (?), 1.3 (16/04/12)

• Switch OpenFlow em SW (aplicação)

• Implementação com NetFPGA

• Open vSwitch (kernel, eficiente)

• Open WRT (home, wireless)

• Implementações comerciais começam a surgir

Page 17: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

17

Open vSwitchOpen vSwitch

• Desenvolvido para ambientes virtualizados

• Alto desempenho em condições normais

• Possível opção para caminho de migração sem alteração do hardware instalado

• Problema de integração entre máquinas virtualizadas e máquinas físicas

Page 18: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

18

Open vSwitchOpen vSwitch

Page 19: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

19

RoteiroRoteiro

• Introdução

• Componentes de uma rede definida por software (SDN)

• OpenFlow

• Particionamento de recursos (FlowVisor)

• Controladores de rede

• POX

• Aplicações

• Desafios de pesquisa

• Observações finais

Page 20: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

20

Particionamento de recursos (FlowVisor)Particionamento de recursos (FlowVisor)

• Proxy OpenFlow que permite dividir o espaço de endereçamento de pacotes

• Semelhante ao conceito de virtualização de máquinas (slices)

• Solução para o problema de compartilhamento de infra-estrutura entre projetos diferentes

Page 21: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

21

Particionamento de recursos (FlowVisor)Particionamento de recursos (FlowVisor)

Page 22: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

22

Particionamento de recursos (FlowVisor)Particionamento de recursos (FlowVisor)

Page 23: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

23

Particionamento de recursos (FlowVisor)Particionamento de recursos (FlowVisor)

Page 24: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

24

RoteiroRoteiro

• Introdução

• Componentes de uma rede definida por software (SDN)

• OpenFlow

• Particionamento de recursos (FlowVisor)

• Controladores de rede

• POX

• Aplicações

• Desafios de pesquisa

• Observações finais

Page 25: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

25

Controladores SDN (SO de rede)Controladores SDN (SO de rede)

• Comunicam-se com os elementos de comutação que constituem a rede

• Criam a visão única (grafo anotado) da rede

• Oferecem uma interface de programação para o desenvolvedor

• Questão: nível de abstração e linguagem

Page 26: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

26

NOXNOX

• Primeiro controlador de SDN

• Desenvolvido pela Nicira em paralelo ao padrão OpenFlow (alta sinergia entre conceitos)

• Distribuído como GPL em 2008 (muito usado)

• Mantido pela comunidade de pesquisa

Page 27: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

27

NOXNOX

• Linux

• C++ and Python (“cola” para módulos C++)

• Cooperative multithreading

• Sistema de componentes

• Programação orientada a eventos

• Algumas aplicações distribuídas com o sw

Page 28: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

28

Nox: exemplo – repetidor simples Nox: exemplo – repetidor simples

• Simples repetidor na rede° Encaminha pacotes do porto 1 para o 2 e vice-versa

1 2

Controlador

Switch

Page 29: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

29

Nox: exemplo – repetidor simples Nox: exemplo – repetidor simples

29

def simple_repeater(): # Repeat Port 1 to Port 2 p1 = {IN_PORT:1} a1 = [(OFPAT_OUTPUT, PORT_2)] install(switch, p1, HIGH, a1) # Repeat Port 2 to Port 1 p2 = {IN_PORT:2} a2 = [(OFPAT_OUTPUT, PORT_1)] install(switch, p2, HIGH, a2)

Prioridade Padrão Ação ContadoresHIGH IN_PORT:1 OUTPUT:2 (0,0)

HIGH IN_PORT:2 OUTPUT:1 (0,0)

Programa NOX

Tabela de Fluxos

1 2

Controlador

Switch

Page 30: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

30

TremaTrema

• Implementação de controladores OpenFlow

• Ruby e C

• Emulador OF integrado para testes

Page 31: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

31

MaestroMaestro

• Concebido como Sistema Operacional de rede

• Tenta explorar o paralelismo dentro de uma única máquina

Page 32: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

32

Flow Management Language(FML)Flow Management Language(FML)

• Linguagem declarativa (datalog)

• Permite especificar políticas de gerência e segurança

• Especifica um conjunto de regras com critérios complexos para definir precedência e resolver conflitos

Exemplo:

° Fluxo de VoIP com limite máximo de jitter e latência

Page 33: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

33

FreneticFrenetic

• Foco na programação de redes OpenFlow

• Oferece um nível de abstração mais alto

• Principais objetivos:° Permitir o desenvolvimento de consultas complexas

às tabelas de fluxos (regras, estatísticas)

° Simplificar a composição de regras

• Implementado sobre o NOX, em Python

Page 34: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

34

Frenetic: comparação com NOXFrenetic: comparação com NOX

def simple_repeater(): # Repeat Port 1 to Port 2 p1 = {IN_PORT:1} a1 = [(OFPAT_OUTPUT, PORT_2)] install(switch, p1, HIGH, a1) # Repeat Port 2 to Port 1 p2 = {IN_PORT:2} a2 = [(OFPAT_OUTPUT, PORT_1)] install(switch, p2, HIGH, a2)

Programa NOX do repetidor:

1 2

Controlador

Switch

• Para se acrescentar um monitor de tráfego Web, o código deve ser alterado e integrado

Page 35: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

35

Frenetic: comparação com NOXFrenetic: comparação com NOX

Programa NOX do repetidor com monitor

1 2

Controlador

Switch

Page 36: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

36

Frenetic: comparação com NOXFrenetic: comparação com NOX

Programa Frenetic

Page 37: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

37

OnixOnix

• Controlador que distribuir o estado da rede em múltiplos controladores distribuídos

• Network Information Base (NIB)° Estrutura de dados que representa a visão global da

rede através de um grafo

° Aplicações podem ler e escrever na NIB

° Automaticamente atualiza switches e controladores

Page 38: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

38

OnixOnix

• Projeto conjunto NEC, Google, Yahoo!° Código fechado, apenas descrito no artigo

• Network Information Base (NIB)

° Estrutura de dados que representa a visão global da rede através de um grafo

• Ênfase: escalabilidade e confiabilidade

Page 39: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

39

OnixOnix

• Controle da rede é feito alterando-se a NIB° Alterações se transformam em comandos para os

elementos de comutação

• Escalabilidade:° NIB é dividida entre controladores

• Confiabilidade (reliability):° NIB é replicada (mestre-escravo)

• Consistência:° Algoritmos de consenso em casos extremos

Page 40: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

40

ClickClick

• Compartilha o objetivo de permitir que equipamentos de rede sejam programáveis.

• Enfatiza a modularidade.

• Permite criar módulos de processamento de pacotes customizados.

• Porém, foca exclusivamente em switches de software (módulo do kernel do Linux).

• OpenFlowClick: interface OF para o Click.

Page 41: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

41

• Controlador OF para redes corporativas baseado na linguagem Java, licença Apache.

• Apoiado pela Big Switch Networks

• Módulos principais são escritos em Java ou Python° Módulos exportam serviços

• Permite integrar com redes não openflow.

• Compatível com a ferramenta de simulação Mininet

Page 42: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

42

Simple Network Access Control(SNAC)Simple Network Access Control(SNAC)

• Controlador OpenFlow que utiliza uma interface web.

• Provê uma ferramenta de monitoramento gráfico mas não é um ambiente de programação genérica

Page 43: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

43

Simple Network Access Control(SNAC)Simple Network Access Control(SNAC)

Page 44: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

44

NEC Programmable FlowNEC Programmable Flow

• Produto comercial

• Ferramenta centralizada de monitoramento

• Switches PF5420 e PF5820: ° compatíveis com OpenFlow

Page 45: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

45

MininetMininet

• Ferramenta de simulação de SDN

• Permite a rápida prototipação de grandes redes utilizando apenas um computador

Page 46: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

46

RoteiroRoteiro

• Introdução

• Componentes de uma rede definida por software (SDN)

• OpenFlow

• Particionamento de recursos (FlowVisor)

• Controladores de rede

• POX

• Aplicações

• Desafios de pesquisa

• Observações finais

Page 47: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

47

Por que mais um controlador?Por que mais um controlador?

• NOX se tornou o controlador mais popular

• A maior parte dos usuários usam só Python° Mas essa não era o objetivo inicial

Page 48: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

48

Por que mais um controlador?Por que mais um controlador?

Observação 1: NOX é difícil de instalar e manter

• Um número considerável de usuários tem problemas para compilar e executar o NOX° Montagem relativamente complexa, com um

número significativo de dependências

Page 49: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

49

Por que mais um controlador?Por que mais um controlador?

• Observação 2: a API Python não era ideal para aplicações completas° Afinal, o plano era usá-la só para integração

• Mas muitas aplicações foram desenvolvidas inteiramente em Python

• A integração com Python adicionou um custo considerável de manutenção e instalação° Desnecessário para quem quer apenas C++

Page 50: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

50

Por que mais um controlador?Por que mais um controlador?

• Facilidade de instalação é importante° Dependências devem ser escolhidas com cuidado

• Escolha uma linguagem° Integrar duas ou mais é difícil... “e ninguém quer”

• Remoção de Python do NOX simplifica tudo° E torna-o melhor para quem só quer C++

• Criação de um controlador em Python permite aproveitar as boas idéias e torná-las simples

Page 51: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

51

POXPOX

• Nova plataforma em Python puro° Poucas dependências

° Aproveita as qualidades do NOX

° Instalação fácil e flexibilidade no desenvolvimento

• Bom para pesquisa, não para desempenho° Mas melhor que NOX com Python!

Page 52: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

52

POXPOX

Fonte: Murphy Mccauley

Page 53: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

53

POXPOX

• Dependências: apenas Python (2.7)!

• Herda elementos do NOX° cooperative multithreading, components

° montagem e desmontagem de pacotes

• Interface OF bastante melhorada

Page 54: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

54

E o futuro do NOX?E o futuro do NOX?

• O NOX clássico continua disponível° Mas talvez tenha apenas correção de bugs

• Um novo fork está disponível (só C++)° Código mais limpo

° Deve ser o alvo do desenvolvimento em NOX

Page 55: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

55

POX: principais módulosPOX: principais módulos

• log: mensagens de erro, aviso e registro em geral

• lib: bibliotecas auxiliares, como:° threads

° manipulação de endereços

° processamento de pacotes

• openflow: implementação do protocolo

• core.py: criador do sistema

Page 56: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

56

POX: orientação a eventosPOX: orientação a eventos

• Qualquer módulo pode se registrar para ser informado de eventos e pode criar novos eventos para disparar

• Eventos básicos: packetIn e timers

Page 57: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

57

POXPOX

• Exemplo simples: construir um switch

1. git clone http://noxrepo.org/git/pox

2. cd pox

3. vim ext/switch.py # Escrever switch c/ aprendizado

4. ./pox.py switch

Page 58: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

58

POX: switch com aprendizadoPOX: switch com aprendizado

from pox.core import core

from pox.openflow.libopenflow_01 import *

log = core.getLogger()

macToPort = {}

# Funções definidas aqui

def launch ():

core.openflow.addListenerByName("PacketIn",

handle_PacketIn)

Page 59: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

59

POX: switch com aprendizadoPOX: switch com aprendizado

def handle_PacketIn (event):

packet = event.parse()

if packet.src not in macToPort:

macToPort[packet.src] = event.port

if packet.dst not in macToPort:

flood(event)

else:

installFlow(packet,event)

Page 60: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

60

POX: switch com aprendizadoPOX: switch com aprendizado

def flood(event):

msg = ofp_packet_out()

msg.actions.append(

ofp_action_output(port = OFPP_FLOOD))

msg.buffer_id = event.ofp.buffer_id

msg.in_port = event.port

event.connection.send(msg)

Page 61: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

61

POX: switch com aprendizadoPOX: switch com aprendizado

def installFlow(packet,event):

msg = ofp_flow_mod()

msg.match.dl_dst = packet.dst

msg.match.dl_src = packet.src

msg.buffer_id = event.ofp.buffer_id

msg.actions.append(

ofp_action_output(port = macToPort[packet.dst]))

event.connection.send(msg)

Page 62: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

62

Opções de projetoOpções de projeto

• Controle reativo x proativo° Quando um fluxo pode/deve ser configurado?

• Fluxos específicos x wildcards° Quando faz sentido usar “*” nas regras, ou não?

• Quem precisa ser configurado para um fluxo?° Tratamento em todos os switches x bordas

• Quais as abstrações certas no caso X?

Page 63: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

63

POX: um exemplo do que não fazerPOX: um exemplo do que não fazer

from pox.core import core

from pox.openflow.libopenflow_01 import *

def handle_PacketIn (event):

msg = ofp_flow_mod()

msg.match.dl_dst = event.parsed.src

msg.actions.append(ofp_action_output(port = event.port))

event.connection.send(msg)

msg = ofp_packet_out()

msg.actions.append(ofp_action_output(port = OFPP_FLOOD))

msg.buffer_id = event.ofp.buffer_id

msg.in_port = event.port event.connection.send(msg)

def launch ():

core.openflow.addListenerByName("PacketIn", handle_PacketIn)

Qual o problema com esta versão?

Page 64: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

64

RoteiroRoteiro

• Introdução

• Componentes de uma rede definida por software (SDN)

• OpenFlow

• Particionamento de recursos (FlowVisor)

• Controladores de rede

• POX

• Aplicações

• Desafios de pesquisa

• Observações finais

Page 65: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

65

Aplicações – e o que eu faço com isso?Aplicações – e o que eu faço com isso?

• Controle de acesso, segurança

• Gerência de redes

• Redes domiciliares

• Gerência de energia

• Comutador virtual distribuído

• Roteador expansível (scale-out)

• Datacenters multi-usuários

Page 66: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

66

Aplicações – controle de acesso Aplicações – controle de acesso

• Contexto que originou OF (Ethane)

• Implementação de políticas fica mais simples com a visão global° Visão de alto nível permite disassociar pessoas de

identificadores de hardware

• Substituição de middle-boxes

• Políticas podem se adaptar a cenários mais abrangentes° “A pode acessar B se estiver na rede X, mas não

se o acesso vier dos pontos de trabalho na área Y”

Page 67: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

67

Aplicações – Gerência de redesAplicações – Gerência de redes

• A visão global oferece uma forma simples de agregar informações sobre todos os eventos relevantes para a administração da rede

• A interface de programação dos switches oferece uma forma simples para atuar sobre o sistema° A escolha do nome “NIB” não parece aleatória...

Há uma relação forte com a área de gerência

Page 68: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

68

Aplicações – Redes DomiciliaresAplicações – Redes Domiciliares

• O que está acontecendo na minha rede?

• Padrões de tráfego doméstico podem ser mais reveladores para deteção de malware

• O controlador da rede pode exportar informações para um provedor de serviços de gerência e configuração

• A visão de todos os fluxos cria uma oportunidade para entender os padrões de acesso dos moradores e detectar desvios

Page 69: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

69

Aplicações – gerência de energiaAplicações – gerência de energia

• Técnicas de posicionamento e distribuição de carga se beneficiariam de um maior conhecimento do que passa pela rede

• Migração de VMs pode ser usado para distribuir carga. SDNs podem simplificar o processo de migração

Page 70: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

70

Aplicações – comutador virtual distribuídoAplicações – comutador virtual distribuído

• Em datacenters, o ambiente virtualizado pode permitir o uso de switches virtuais como base de instalação da SDN

• A visão global da rede podem ser usada para criar a abstração de um switch único interligando as VMs de um usuário

• Isolamento de tráfego pode se tornar mais simples

Page 71: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

71

Aplicações – Roteador expansível Aplicações – Roteador expansível (scale-out)(scale-out)

• Roteadores de borda de alta capacidade têm custo bastante elevado

• Um conjunto de switches controlados por uma SDN podem exportar a visão de um comutador único

• Um conjunto de rotas podem ser transformado em regras de encaminhamento entre switches que sejam agrupada para substituir o roteador

Page 72: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

72

Aplicações – Datacenters multi-usuáriosAplicações – Datacenters multi-usuários

• Um switch virtual pode ser usado como abstração para interligar as máquinas de um cliente

• Cada usuário (tenant) pode ser levado a enxergar a rede como um único switch que interliga suas máquinas

Page 73: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

73

RoteiroRoteiro

• Introdução

• Componentes de uma rede definida por software (SDN)

• OpenFlow

• Particionamento de recursos (FlowVisor)

• Controladores de rede

• POX

• Aplicações

• Desafios de pesquisa

• Observações finais

Page 74: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

74

Desafios – problemas interessantesDesafios – problemas interessantes

• Visão da rede/abstrações

• Virtualização

• API para programação dos switches

• Especificação de aplicações

• Depuração

• Distribuição para desempenho e tol. falhas

Page 75: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

75

Desafios – Visão da redeDesafios – Visão da rede

• Qual a visão da rede que deve ser oferecida pelo controlador da SDN?

• Qual a melhor abstração para cada tipo de aplicação que pode existir sobre uma rede?

Page 76: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

76

Desafios – VirtualizaçãoDesafios – Virtualização

• FlowVisor oferece uma forma de dividir e isolar os recursos da rede, mas há outras

• Pode-se traçar um paralelo entre as diversas formas de virtualização de servidores, em diferentes níveis da arquitetura

Page 77: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

77

Desafios – API para programação dos Desafios – API para programação dos switchesswitches

• OpenFlow é apenas uma forma de se oferecer tal API° Que outros tipos de interface poderiam ser criados?

• É necessário que todos os nós exportem a mesma funcionalidade, ou pode-se trabalhar com modelos baseados em borda?

Page 78: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

78

Desafios – Especificação de aplicaçõesDesafios – Especificação de aplicações

• Qual a forma mais adequada de se programar um controlador de rede?° Frenetic e FML, por exemplo, usam modelos bem

diferentes

• Técnicas de representação de conhecimento de outras áreas poderiam ser úteis?° Ontologias, sistemas especialistas, etc...

Page 79: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

79

Desafios – Distribuição para desempenho Desafios – Distribuição para desempenho e tol. falhase tol. falhas

• A noção da visão global centralizada é apenas uma forma simples de se encarar o problema

• Como distribuir a visão da rede se aspectos de desempenho e confiabilidade são importantes?° Ônix é apenas um ponto no espaço de soluções

Page 80: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

80

Alguns projetos de pesquisaAlguns projetos de pesquisa

• Ripcord

• RouteFlow

• Elastic Tree

• Gatekeeper-ng

• POX@home

• Network Object Model

Page 81: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

81

RipcordRipcord

• Prototipação rápida de arquiteturas de rede para datacenters

Page 82: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

82

RouteFlowRouteFlow

Roteamento IP virtualizado sobre uma plataforma OpenFlow

Page 83: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

83

Elastic treeElastic tree

• Gerência de energia em redes de datacenter° Redes com grande número de links redundantes

• Desliga links ociosos quando adequado

Page 84: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

84

Gatekeeper-ngGatekeeper-ng

• Isolamento de tráfego em datacenters virtualizados ° Integração das ferramentas: POX, OpenStack

Compute, Open vSwitch e Gatekeeper

Page 85: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

85

POX@homePOX@home

• Aplicacão de um controlador POX ao ambiente da rede doméstica

• Detecção de falhas e anomalias

• Apoio à configuração e gerência automática

• Possibilidade de gerência remota

Page 86: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

86

Network Object Model (NOM)Network Object Model (NOM)

• Trabalho em andamento no POX

• Modelo orientado a objetos da visão global da rede° Possibilidade de organizações hierárquicas de

elementos virtualizados

° Desafio: integração com as abstrações existentes

Page 87: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

87

VirtualizaçãoVirtualização

• FlowVisor oferece uma forma simples de isolar partes da rede (virtualização) mas há outras.

• A visão da rede pode ser particionada no nível da abstração oferecida° Cada visão define suas regras

° Exigência de particionamento preciso de recursos continua a existir

Page 88: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

88

RoteiroRoteiro

• Introdução

• Componentes de uma rede definida por software (SDN)

• OpenFlow

• Particionamento de recursos (FlowVisor)

• Controladores de rede

• POX

• Aplicações

• Desafios de pesquisa

• Observações finais

Page 89: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

89

Observações finaisObservações finais

• O interesse da indústria e da comunidade científica está apenas começando

• O caminho ainda não está completamente delineado – há oportunidades e riscos

• Sites úteis: noxathome.org, noxrepo.org, openflow.org, openwrt.org,

openvswitch.org, opennetworking.org, opennetsummit.org

Page 90: Redes Definidas por Software - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~mmvieira/cc/slides/Aula 03 - sdn-sbrc2012.pdfde regras de firewall em uma rede corporativa ° OpenFlow (2008):

90

RoteiroRoteiro

• Introdução

• Componentes de uma rede definida por software (SDN)

• OpenFlow

• Particionamento de recursos (FlowVisor)

• Controladores de rede

• POX

• Aplicações

• Desafios de pesquisa

• Observações finais


Recommended